akkoma/priv/static/static/js/2.eefa7ccf1b294cd5d8f6.js.map

1 line
348 KiB
Plaintext

{"version":3,"sources":["webpack:///./src/components/importer/importer.vue?d395","webpack:///./src/components/exporter/exporter.vue?537f","webpack:///./src/components/autosuggest/autosuggest.vue?8acb","webpack:///./src/components/block_card/block_card.vue?a8c3","webpack:///./src/components/mute_card/mute_card.vue?336c","webpack:///./src/components/domain_mute_card/domain_mute_card.vue?e2f9","webpack:///./src/components/selectable_list/selectable_list.vue?793a","webpack:///./src/components/settings_modal/tabs/mutes_and_blocks_tab.scss?8059","webpack:///./src/components/settings_modal/helpers/modified_indicator.vue?669b","webpack:///./src/components/settings_modal/helpers/server_side_indicator.vue?f8f8","webpack:///./src/components/settings_modal/helpers/choice_setting.vue?2690","webpack:///./src/components/settings_modal/tabs/security_tab/mfa_backup_codes.vue?e13c","webpack:///./src/components/settings_modal/tabs/security_tab/mfa.vue?6215","webpack:///./src/components/image_cropper/image_cropper.vue?75b0","webpack:///./src/components/settings_modal/tabs/profile_tab.scss?3d82","webpack:///./src/components/color_input/color_input.scss?2d00","webpack:///./src/components/color_input/color_input.vue?c3ff","webpack:///./src/components/shadow_control/shadow_control.vue?4f4d","webpack:///./src/components/font_control/font_control.vue?a4dd","webpack:///./src/components/contrast_ratio/contrast_ratio.vue?232d","webpack:///./src/components/settings_modal/tabs/theme_tab/preview.vue?5bb1","webpack:///./src/components/settings_modal/tabs/theme_tab/theme_tab.scss?36c1","webpack:///./src/components/settings_modal/settings_modal_content.scss?5d58","webpack:///./src/components/settings_modal/tabs/data_import_export_tab.vue","webpack:///./src/components/importer/importer.vue","webpack:///./src/components/importer/importer.js","webpack:///./src/components/importer/importer.vue?12a4","webpack:///./src/components/exporter/exporter.vue","webpack:///./src/components/exporter/exporter.js","webpack:///./src/components/exporter/exporter.vue?bc56","webpack:///./src/components/settings_modal/tabs/data_import_export_tab.js","webpack:///./src/components/settings_modal/tabs/data_import_export_tab.vue?1279","webpack:///./src/components/settings_modal/tabs/mutes_and_blocks_tab.vue","webpack:///./src/components/autosuggest/autosuggest.vue","webpack:///./src/components/autosuggest/autosuggest.js","webpack:///./src/components/autosuggest/autosuggest.vue?c3ac","webpack:///./src/components/block_card/block_card.vue","webpack:///./src/components/block_card/block_card.js","webpack:///./src/components/block_card/block_card.vue?2c3e","webpack:///./src/components/mute_card/mute_card.vue","webpack:///./src/components/mute_card/mute_card.js","webpack:///./src/components/mute_card/mute_card.vue?640c","webpack:///./src/components/domain_mute_card/domain_mute_card.vue","webpack:///./src/components/domain_mute_card/domain_mute_card.js","webpack:///./src/components/domain_mute_card/domain_mute_card.vue?4954","webpack:///./src/components/selectable_list/selectable_list.vue","webpack:///./src/components/selectable_list/selectable_list.js","webpack:///./src/components/selectable_list/selectable_list.vue?e339","webpack:///./src/hocs/with_subscription/with_subscription.jsx","webpack:///./src/components/settings_modal/tabs/mutes_and_blocks_tab.js","webpack:///./src/components/settings_modal/tabs/mutes_and_blocks_tab.vue?0036","webpack:///./src/components/settings_modal/tabs/notifications_tab.vue","webpack:///./src/components/settings_modal/helpers/boolean_setting.vue","webpack:///./src/components/settings_modal/helpers/modified_indicator.vue","webpack:///./src/components/settings_modal/helpers/modified_indicator.vue?185b","webpack:///./src/components/settings_modal/helpers/server_side_indicator.vue","webpack:///./src/components/settings_modal/helpers/server_side_indicator.vue?5efa","webpack:///./src/components/settings_modal/helpers/boolean_setting.js","webpack:///./src/components/settings_modal/helpers/boolean_setting.vue?de4a","webpack:///./src/components/settings_modal/helpers/shared_computed_object.js","webpack:///./src/components/settings_modal/tabs/notifications_tab.js","webpack:///./src/components/settings_modal/tabs/notifications_tab.vue?656b","webpack:///./src/components/settings_modal/tabs/filtering_tab.vue","webpack:///./src/components/settings_modal/helpers/choice_setting.vue","webpack:///./src/components/settings_modal/helpers/choice_setting.js","webpack:///./src/components/settings_modal/helpers/choice_setting.vue?4d79","webpack:///./src/components/settings_modal/helpers/integer_setting.vue","webpack:///./src/components/settings_modal/helpers/integer_setting.js","webpack:///./src/components/settings_modal/helpers/integer_setting.vue?11fa","webpack:///./src/components/settings_modal/tabs/filtering_tab.js","webpack:///./src/components/settings_modal/tabs/filtering_tab.vue?75c6","webpack:///./src/components/settings_modal/tabs/security_tab/security_tab.vue","webpack:///./src/components/settings_modal/tabs/security_tab/mfa.vue","webpack:///./src/components/settings_modal/tabs/security_tab/mfa_backup_codes.vue","webpack:///./src/components/settings_modal/tabs/security_tab/mfa_backup_codes.js","webpack:///./src/components/settings_modal/tabs/security_tab/mfa_backup_codes.vue?02be","webpack:///./src/components/settings_modal/tabs/security_tab/mfa_totp.vue","webpack:///./src/components/settings_modal/tabs/security_tab/confirm.js","webpack:///./src/components/settings_modal/tabs/security_tab/confirm.vue?7300","webpack:///./src/components/settings_modal/tabs/security_tab/confirm.vue","webpack:///./src/components/settings_modal/tabs/security_tab/mfa_totp.js","webpack:///./src/components/settings_modal/tabs/security_tab/mfa.js","webpack:///./src/components/settings_modal/tabs/security_tab/mfa_totp.vue?3e9f","webpack:///./src/components/settings_modal/tabs/security_tab/mfa.vue?4581","webpack:///./src/components/settings_modal/tabs/security_tab/security_tab.js","webpack:///./src/components/settings_modal/tabs/security_tab/security_tab.vue?f4d0","webpack:///./src/components/settings_modal/tabs/profile_tab.vue","webpack:///./src/components/image_cropper/image_cropper.vue","webpack:///./src/components/image_cropper/image_cropper.js","webpack:///./src/components/image_cropper/image_cropper.vue?aa5f","webpack:///./src/components/settings_modal/tabs/profile_tab.js","webpack:///./src/components/settings_modal/tabs/profile_tab.vue?650d","webpack:///./src/components/settings_modal/tabs/general_tab.vue","webpack:///./src/components/settings_modal/tabs/general_tab.js","webpack:///./src/components/settings_modal/tabs/general_tab.vue?5ffb","webpack:///./src/components/settings_modal/tabs/version_tab.vue","webpack:///./src/services/version/version.service.js","webpack:///./src/components/settings_modal/tabs/version_tab.js","webpack:///./src/components/settings_modal/tabs/version_tab.vue?2afb","webpack:///./src/components/settings_modal/tabs/theme_tab/theme_tab.vue","webpack:///./src/components/color_input/color_input.vue","webpack:///./src/components/color_input/color_input.vue?602f","webpack:///./src/components/range_input/range_input.vue","webpack:///./src/components/range_input/range_input.vue?4741","webpack:///./src/components/opacity_input/opacity_input.vue","webpack:///./src/components/opacity_input/opacity_input.vue?db4a","webpack:///./src/components/shadow_control/shadow_control.vue","webpack:///./src/components/shadow_control/shadow_control.js","webpack:///./src/components/shadow_control/shadow_control.vue?74ae","webpack:///./src/components/font_control/font_control.vue","webpack:///./src/components/font_control/font_control.js","webpack:///./src/components/font_control/font_control.vue?6c0b","webpack:///./src/components/contrast_ratio/contrast_ratio.vue","webpack:///./src/components/contrast_ratio/contrast_ratio.vue?a879","webpack:///./src/components/settings_modal/tabs/theme_tab/preview.vue","webpack:///./src/components/settings_modal/tabs/theme_tab/preview.vue?166c","webpack:///./src/components/settings_modal/tabs/theme_tab/theme_tab.js","webpack:///./src/components/settings_modal/tabs/theme_tab/theme_tab.vue?0d26","webpack:///./src/components/settings_modal/settings_modal_content.js","webpack:///./src/components/settings_modal/settings_modal_content.vue?5ef5","webpack:///./src/components/settings_modal/settings_modal_content.vue"],"names":["class","library","add","faCircleNotch","faTimes","Importer","props","submitHandler","type","Function","required","submitButtonLabel","String","successMessage","errorMessage","data","file","error","success","submitting","methods","change","this","$refs","input","files","submit","dismiss","then","ref","spin","icon","$t","Exporter","getContent","filename","default","exportButtonLabel","processingMessage","processing","process","content","fileToDownload","document","createElement","setAttribute","encodeURIComponent","style","display","body","appendChild","click","removeChild","setTimeout","size","DataImportExportTab","activeTab","newDomainToMute","created","$store","dispatch","components","Checkbox","computed","mapState","backendInteractor","state","api","user","users","currentUser","getFollowsContent","exportFriends","id","generateExportableUsersContent","getBlocksContent","fetchBlocks","getMutesContent","fetchMutes","importFollows","status","Error","importBlocks","importMutes","map","is_local","screen_name","location","hostname","join","label","submit-handler","success-message","error-message","get-content","export-button-label","query","filter","placeholder","term","timeout","results","resultsVisible","filtered","watch","val","fetchResults","clearTimeout","onInputClick","onClickOutside","length","item","BlockCard","progress","getters","findUser","userId","relationship","blocked","blocking","BasicUserCard","unblockUser","blockUser","disabled","MuteCard","muted","muting","unmuteUser","muteUser","DomainMuteCard","ProgressButton","domainMutes","includes","domain","unmuteDomain","muteDomain","SelectableList","List","items","Array","getKey","selected","allKeys","filteredSelected","key","indexOf","allSelected","noneSelected","someSelected","isSelected","toggle","checked","push","splice","toggleAll","value","slice","model-value","indeterminate","get-key","empty","withSubscription","fetch","select","childPropName","additionalPropNames","WrappedComponent","Object","keys","getComponentProps","v","concat","loading","fetchedData","$props","refresh","isEmpty","fetchData","render","children","$slots","BlockList","get","MuteList","DomainMuteList","MutesAndBlocks","TabSwitcher","Autosuggest","knownDomains","instance","activateTab","tabName","filterUnblockedUsers","userIds","reject","filterUnMutedUsers","queryUserIds","blockUsers","ids","unblockUsers","muteUsers","unmuteUsers","filterUnMutedDomains","urls","url","queryKnownDomains","Promise","resolve","toLowerCase","unmuteDomains","domains","scrollable-tabs","user-id","row","i","header","faWrench","Popover","trigger","aria-label","faServer","ModifiedIndicator","ServerSideIndicator","pathDefault","path","split","firstSegment","rest","$parent","undefined","defaultState","isServerSide","startsWith","isChanged","matchesExpertLevel","expert","expertLevel","update","e","changed","server-side","SharedComputedObject","configDefaultState","defaultConfig","reduce","acc","mergedConfig","set","name","serverSideConfigDefaultState","serverSideConfig","useStreamingApi","console","NotificationsTab","notificationSettings","notification_settings","BooleanSetting","updateNotificationSettings","settings","Select","options","option","Boolean","min","Number","parseInt","target","for","step","FilteringTab","muteWordsStringLocal","muteWords","replyVisibilityOptions","mode","ChoiceSetting","IntegerSetting","muteWordsString","word","notificationVisibility","handler","deep","replyVisibility","streaming","hideFilteredStatuses","backupCodes","inProgress","codes","ready","displayTitle","code","Confirm","confirm","$emit","cancel","currentPassword","deactivate","isActivated","totp","doActivate","cancelDeactivate","doDeactivate","confirmDeactivate","mfaDisableOTP","password","res","Mfa","available","enabled","setupState","setupOTPState","getNewCodes","otpSettings","provisioning_uri","otpConfirmToken","readyInit","RecoveryCodes","VueQrcode","canSetupOTP","setupInProgress","backupCodesPrepared","setupOTPInProgress","completedOTP","prepareOTP","confirmOTP","confirmNewBackupCodes","activateOTP","fetchBackupCodes","generateMfaBackupCodes","getBackupCodes","confirmBackupCodes","cancelBackupCodes","setupOTP","mfaSetupOTP","doConfirmOTP","mfaConfirmOTP","token","completeSetup","fetchSettings","cancelSetup","settingsMFA","result","mounted","backup-codes","width","SecurityTab","newEmail","changeEmailError","changeEmailPassword","changedEmail","deletingAccount","deleteAccountConfirmPasswordInput","deleteAccountError","changePasswordInputs","changedPassword","changePasswordError","pleromaBackend","oauthTokens","tokens","oauthToken","appName","app_name","validUntil","Date","valid_until","toLocaleDateString","localeService","internalToBrowserLocale","$i18n","locale","confirmDelete","deleteAccount","$router","changePassword","params","newPassword","newPasswordConfirmation","logout","changeEmail","email","replace","revokeToken","window","t","autocomplete","ImageCropper","Element","cropperOptions","aspectRatio","autoCropArea","viewMode","movable","zoomable","guides","mimes","saveButtonLabel","saveWithoutCroppingButtonlabel","cancelButtonLabel","cropper","dataUrl","saveText","saveWithoutCroppingText","cancelText","destroy","cropping","pickImage","createCropper","Cropper","img","getTriggerDOM","querySelector","readFile","fileInput","reader","FileReader","onload","readAsDataURL","addEventListener","beforeUnmount","removeEventListener","src","alt","accept","faPlus","ProfileTab","newName","name_unescaped","newBio","unescape","description","newLocked","locked","newFields","fields","field","showRole","show_role","role","bot","pickAvatarBtnVisible","bannerUploading","backgroundUploading","banner","bannerPreview","background","backgroundPreview","emailLanguage","language","ScopeSelector","EmojiInput","InterfaceLanguageSwitcher","emojiUserSuggestor","suggestor","emoji","customEmoji","store","emojiSuggestor","userSuggestor","fieldsLimits","maxFields","defaultAvatar","server","defaultBanner","isDefaultAvatar","baseAvatar","profile_image_url","isDefaultBanner","baseBanner","cover_photo","isDefaultBackground","background_image","avatarImgSrc","profile_image_url_original","bannerImgSrc","updateProfile","note","display_name","fields_attributes","el","internalToBackendLocale","merge","commit","changeVis","visibility","newDefaultScope","addField","deleteField","index","event","$delete","uploadFile","slot","filesize","fileSizeFormatService","fileSizeFormat","allowedsize","messageKey","messageArgs","num","filesizeunit","unit","allowedsizeunit","level","resetAvatar","submitAvatar","resetBanner","submitBanner","resetBackground","submitBackground","that","updateAvatar","avatar","avatarName","updateProfileImages","displayUploadError","getCroppedCanvas","toBlob","message","enable-emoji-picker","suggest","_","hide-emoji-button","prompt-text","set-language","title","$event","serverSide_hideFollowers","serverSide_hideFollows","faGlobe","GeneralTab","subjectLineOptions","conversationDisplayOptions","conversationOtherRepliesButtonOptions","mentionLinkDisplayOptions","thirdColumnModeOptions","loopSilentAvailable","getOwnPropertyDescriptor","HTMLVideoElement","prototype","HTMLMediaElement","postFormats","postContentOptions","format","instanceSpecificPanelPresent","showInstanceSpecificPanel","instanceWallpaperUsed","instanceShoutboxPresent","shoutAvailable","interfaceLanguage","changeDefaultScope","conversationDisplay","hideNsfw","loopVideo","mentionLinkDisplay","show-all","user-default","serverSide_defaultScope","initial-scope","on-scope-change","VersionTab","backendVersion","frontendVersion","frontendVersionLink","backendVersionLink","versionString","matches","match","href","modelValue","fallback","showOptionalTickbox","emits","present","validColor","hex2rgb","transparentColor","computedColor","max","hardMax","hardMin","faChevronDown","faChevronUp","toModel","object","x","y","blur","spread","inset","color","alpha","selectedId","cValue","ColorInput","OpacityInput","del","Math","moveUp","moveDn","beforeUpdate","anyShadows","anyShadowsFallback","currentFallback","moveUpValid","moveDnValid","usingFallback","rgb","boxShadow","getCssShadow","shadow","fixed-width","show-optional-tickbox","scope","keypath","tag","lValue","availableOptions","noInherit","dValue","family","isCustom","preset","faAdjust","faExclamationTriangle","faThumbsUp","large","contrast","hint","levelVal","aaa","aa","context","ratio","text","hint_18pt","laaa","laa","faStar","faRetweet","faReply","v1OnlyNames","themeImporter","newImporter","validator","importValidator","onImport","onImportFailure","themeExporter","newExporter","getExportedObject","exportedTheme","availableStyles","selectedTheme","theme","themeWarning","tempImportFile","engineVersion","previewShadows","previewColors","previewRadii","previewFonts","shadowsInvalid","colorsInvalid","radiiInvalid","keepColor","keepShadows","keepOpacity","keepRoundness","keepFonts","SLOT_INHERITANCE","OPACITIES","shadowSelected","shadowsLocal","fontsLocal","btnRadiusLocal","inputRadiusLocal","checkboxRadiusLocal","panelRadiusLocal","avatarRadiusLocal","avatarAltRadiusLocal","attachmentRadiusLocal","tooltipRadiusLocal","chatMessageRadiusLocal","self","getThemes","promises","all","entries","k","themes","themesComplete","loadThemeFromLocalStorage","shadowsAvailable","themeWarningHelp","pre","origin","themeEngineVersion","noActionsPossible","CURRENT_VERSION","selectedVersion","isArray","currentColors","currentOpacity","currentRadii","btn","checkbox","panel","avatarAlt","tooltip","attachment","chatMessage","preview","composePreset","previewTheme","colors","opacity","radii","shadows","fonts","previewContrast","bg","colorsConverted","ratios","slotIsBaseText","textColor","layer","variant","opacitySlot","getOpacitySlot","textColors","layers","getLayers","textColorKey","newKey","toUpperCase","getContrastRatioLayers","toPrecision","warn","previewRules","rules","values","DEFAULT_SHADOWS","sort","currentShadowOverriden","currentShadow","currentShadowFallback","assign","themeValid","saveEverything","source","_pleroma_theme_version","isActive","tabSwitcher","RangeInput","ContrastRatio","ShadowControl","FontControl","Preview","loadTheme","fileVersion","forceUseSource","dismissWarning","version","snapshotEngineVersion","versionsMatch","sourceSnapshotMismatch","forcedSourceLoad","normalizeLocalState","forceLoadLocalStorage","forceLoad","forceSnapshot","confirmLoadSource","customTheme","customThemeSource","themeData","setCustomTheme","updatePreviewColorsAndShadows","generateColors","generateShadows","mod","importTheme","importData","exportTheme","exportData","parsed","forceSource","clearAll","clearV1","$data","endsWith","forEach","clearRoundness","clearOpacity","clearShadows","clearFonts","colors2to3","fg","fgColorLocal","rgb2hex","textColorLocal","Set","hex","isNaN","shadows2to3","generateRadii","getOwnPropertyNames","generateFonts","fontsInvalid","find","s","log","bgColorLocal","linkColorLocal","cRedColorLocal","cGreenColorLocal","cBlueColorLocal","cOrangeColorLocal","bgOpacityLocal","bgText","accentColorLocal","link","accent","bgLink","fgTextColorLocal","fgText","fgLinkColorLocal","fgLink","bgCRed","bgCBlue","bgCGreen","bgCOrange","postLinkColorLocal","postLink","postGreentextColorLocal","cGreen","postGreentext","alertErrorColorLocal","alertError","alertErrorTextColorLocal","alertErrorText","alertWarningColorLocal","alertWarning","alertWarningTextColorLocal","alertWarningText","alertNeutralColorLocal","alertNeutral","alertNeutralTextColorLocal","alertNeutralText","alertOpacityLocal","alert","badgeNotificationColorLocal","badgeNotification","badgeNotificationTextColorLocal","badgeNotificationText","panelColorLocal","panelOpacityLocal","panelTextColorLocal","panelText","panelLinkColorLocal","panelLink","topBarColorLocal","topBar","topBarTextColorLocal","topBarText","topBarLinkColorLocal","topBarLink","inputColorLocal","inputOpacityLocal","inputTextColorLocal","inputText","btnColorLocal","btnOpacityLocal","btnTextColorLocal","btnText","btnPanelTextColorLocal","btnPanelText","btnTopBarTextColorLocal","btnTopBarText","btnPressedColorLocal","btnPressed","btnPressedTextColorLocal","btnPressedText","btnPressedPanelTextColorLocal","btnPressedPanelText","btnPressedTopBarTextColorLocal","btnPressedTopBarText","btnDisabledColorLocal","btnDisabled","btnDisabledTextColorLocal","btnDisabledText","btnDisabledPanelTextColorLocal","btnDisabledPanelText","btnDisabledTopBarTextColorLocal","btnDisabledTopBarText","btnToggledColorLocal","btnToggled","btnToggledTextColorLocal","btnToggledText","btnToggledPanelTextColorLocal","btnToggledPanelText","btnToggledTopBarTextColorLocal","btnToggledTopBarText","tabColorLocal","tab","tabTextColorLocal","tabText","tabActiveTextColorLocal","tabActiveText","borderColorLocal","border","borderOpacityLocal","faintColorLocal","faint","faintLinkColorLocal","faintLink","panelFaintColorLocal","panelFaint","faintOpacityLocal","underlayColorLocal","underlay","underlayOpacityLocal","wallpaperColorLocal","wallpaper","pollColorLocal","poll","pollTextColorLocal","pollText","iconColorLocal","highlightColorLocal","highlight","highlightTextColorLocal","highlightText","highlightLinkColorLocal","highlightLink","popoverColorLocal","popover","popoverOpacityLocal","popoverTextColorLocal","popoverText","popoverLinkColorLocal","popoverLink","selectedPostColorLocal","selectedPost","selectedPostTextColorLocal","selectedPostText","selectedPostLinkColorLocal","selectedPostLink","selectedMenuColorLocal","selectedMenu","selectedMenuTextColorLocal","selectedMenuText","selectedMenuLinkColorLocal","selectedMenuLink","chatBgColorLocal","chatMessageIncomingBgColorLocal","chatMessageIncomingTextColorLocal","chatMessageIncomingLinkColorLocal","chatMessageIncomingBorderColorLocal","chatMessageOutgoingBgColorLocal","chatMessageOutgoingTextColorLocal","chatMessageOutgoingLinkColorLocal","chatMessageOutgoingBorderColorLocal","hard-min","interface","no-inherit","post","postCode","to","faUser","faFilter","faPaintBrush","faBell","faDownload","faEyeSlash","faInfo","SettingsModalContent","MutesAndBlocksTab","ThemeTab","isLoggedIn","open","settingsModalState","bodyLock","onOpen","targetTab","settingsModalTargetTab","tabIndex","findIndex","elm","setTab","side-tab-bar","body-scroll-lock","data-tab-name","fullHeight"],"mappings":"olBAAA,Q,iCCAA,Q,iCCAA,Q,iCCAA,Q,iCCAA,Q,iCCAA,Q,iCCAA,Q,uDCAA,Q,iCCAA,Q,iCCAA,Q,iCCAA,Q,iCCAA,Q,iCCAA,Q,iCCAA,Q,iCCAA,Q,iCCAA,Q,iCCAA,Q,iCCAA,Q,iCCAA,Q,iCCAA,Q,iCCAA,Q,iCCAA,Q,iCCAA,Q,sMCISA,MAAM,gB,GASNA,MAAM,gB,GAQNA,MAAM,gB,GASNA,MAAM,gB,GAQNA,MAAM,gB,GASNA,MAAM,gB,6BC9CRA,MAAM,Y,wBA6BE,IACT,YAAG,KAAM,K,wBAWA,IACT,YAAG,KAAM,K,kBCrCfC,IAAQC,IACNC,IACAC,MAGF,IAqCeC,EArCE,CACfC,MAAO,CACLC,cAAe,CACbC,KAAMC,SACNC,UAAU,GAEZC,kBAAmB,CAAEH,KAAMI,QAC3BC,eAAgB,CAAEL,KAAMI,QACxBE,aAAc,CAAEN,KAAMI,SAExBG,KAVe,WAWb,MAAO,CACLC,KAAM,KACNC,OAAO,EACPC,SAAS,EACTC,YAAY,IAGhBC,QAAS,CACPC,OADO,WAELC,KAAKN,KAAOM,KAAKC,MAAMC,MAAMC,MAAM,IAErCC,OAJO,WAIG,WACRJ,KAAKK,UACLL,KAAKH,YAAa,EAClBG,KAAKf,cAAce,KAAKN,MACrBY,MAAK,WAAQ,EAAKV,SAAU,KAD/B,OAES,WAAQ,EAAKD,OAAQ,KAF9B,SAGW,WAAQ,EAAKE,YAAa,MAEvCQ,QAZO,WAaLL,KAAKJ,SAAU,EACfI,KAAKL,OAAQ,K,yBClCJ,MAFkB,IAAgB,EAAQ,CAAC,CAAC,S,yEFNzD,YA6CM,MA7CN,EA6CM,CA5CJ,YAMO,aALL,YAIC,SAHCY,IAAI,QACJrB,KAAK,OACJ,SAAM,oBAAE,EAAAa,QAAA,EAAAA,UAAA,K,YAIL,EAAU,Y,cADlB,YAKE,G,MAHArB,MAAM,qBACN8B,KAAA,GACAC,KAAK,mB,cAEP,YAMS,U,MAJP/B,MAAM,qBACL,QAAK,oBAAE,EAAA0B,QAAA,EAAAA,UAAA,K,YAEL,EAAAf,mBAAqB,EAAAqB,GAAG,oBAAD,IAEjB,EAAO,S,cAAlB,YAWM,SAVJ,YAOS,UANPhC,MAAM,kBACL,QAAK,oBAAE,EAAA2B,SAAA,EAAAA,WAAA,K,CAER,YAEE,GADAI,KAAK,Y,EAIT,YAA2D,wBAAlD,EAAAlB,gBAAkB,EAAAmB,GAAG,qBAAD,MAEf,EAAK,O,cAArB,YAWM,SAVJ,YAOS,UANPhC,MAAM,kBACL,QAAK,oBAAE,EAAA2B,SAAA,EAAAA,WAAA,K,CAER,YAEE,GADAI,KAAK,Y,EAIT,YAAuD,wBAA9C,EAAAjB,cAAgB,EAAAkB,GAAG,mBAAD,M,kCG3C1BhC,MAAM,Y,UCEbC,IAAQC,IACNC,KAGF,IAqCe8B,EArCE,CACf3B,MAAO,CACL4B,WAAY,CACV1B,KAAMC,SACNC,UAAU,GAEZyB,SAAU,CACR3B,KAAMI,OACNwB,QAAS,cAEXC,kBAAmB,CAAE7B,KAAMI,QAC3B0B,kBAAmB,CAAE9B,KAAMI,SAE7BG,KAbe,WAcb,MAAO,CACLwB,YAAY,IAGhBnB,QAAS,CACPoB,QADO,WACI,WACTlB,KAAKiB,YAAa,EAClBjB,KAAKY,aACFN,MAAK,SAACa,GACL,IAAMC,EAAiBC,SAASC,cAAc,KAC9CF,EAAeG,aAAa,OAAQ,iCAAmCC,mBAAmBL,IAC1FC,EAAeG,aAAa,WAAY,EAAKV,UAC7CO,EAAeK,MAAMC,QAAU,OAC/BL,SAASM,KAAKC,YAAYR,GAC1BA,EAAeS,QACfR,SAASM,KAAKG,YAAYV,GAE1BW,YAAW,WAAQ,EAAKd,YAAa,IAAS,W,OC7BzC,MAFkB,IAAgB,EAAQ,CAAC,CAAC,S,yEFNzD,YAiBM,MAjBN,EAiBM,CAhBO,EAAU,Y,cAArB,YAQM,SAPJ,YAIE,GAHAR,KAAK,eACLuB,KAAK,KACLxB,KAAA,KAGF,YAAiE,wBAAxD,EAAAQ,mBAAqB,EAAAN,GAAG,wBAAD,O,cAElC,YAMS,U,MAJPhC,MAAM,qBACL,QAAK,oBAAE,EAAAwC,SAAA,EAAAA,WAAA,K,YAEL,EAAAH,mBAAqB,EAAAL,GAAG,oBAAD,U,6OGXhC,IAyEeuB,EAzEa,CAC1BxC,KAD0B,WAExB,MAAO,CACLyC,UAAW,UACXC,gBAAiB,KAGrBC,QAP0B,WAQxBpC,KAAKqC,OAAOC,SAAS,gBAEvBC,WAAY,CACVxD,WACA4B,WACA6B,cAEFC,S,iWAAU,CAAF,GACHC,YAAS,CACVC,kBAAmB,SAACC,GAAD,OAAWA,EAAMC,IAAIF,mBACxCG,KAAM,SAACF,GAAD,OAAWA,EAAMG,MAAMC,gBAGjClD,QAAS,CACPmD,kBADO,WAEL,OAAOjD,KAAK2C,kBAAkBO,cAAc,CAAEC,GAAInD,KAAK8C,KAAKK,KACzD7C,KAAKN,KAAKoD,iCAEfC,iBALO,WAML,OAAOrD,KAAK2C,kBAAkBW,cAC3BhD,KAAKN,KAAKoD,iCAEfG,gBATO,WAUL,OAAOvD,KAAK2C,kBAAkBa,aAC3BlD,KAAKN,KAAKoD,iCAEfK,cAbO,SAaQ/D,GACb,OAAOM,KAAK2C,kBAAkBc,cAAc,CAAE/D,SAC3CY,MAAK,SAACoD,GACL,IAAKA,EACH,MAAM,IAAIC,MAAM,cAIxBC,aArBO,SAqBOlE,GACZ,OAAOM,KAAK2C,kBAAkBiB,aAAa,CAAElE,SAC1CY,MAAK,SAACoD,GACL,IAAKA,EACH,MAAM,IAAIC,MAAM,cAIxBE,YA7BO,SA6BMnE,GACX,OAAOM,KAAK2C,kBAAkBkB,YAAY,CAAEnE,SACzCY,MAAK,SAACoD,GACL,IAAKA,EACH,MAAM,IAAIC,MAAM,cAIxBP,+BArCO,SAqCyBL,GAE9B,OAAOA,EAAMe,KAAI,SAAChB,GAEhB,OAAIA,GAAQA,EAAKiB,SAGRjB,EAAKkB,YAAc,IAAMC,SAASC,SAEpCpB,EAAKkB,eACXG,KAAK,SClEC,MAFkB,IAAgB,EAAQ,CAAC,CAAC,S,qGRJzD,YAsDM,OArDHC,MAAO,EAAA1D,GAAG,oC,CAEX,YAQM,MARN,EAQM,CAPJ,YAA2C,sBAApC,EAAAA,GAAG,2BAAD,GACT,YAA4D,qBAAtD,EAAAA,GAAG,8CAAD,GACR,YAIE,GAHC2D,iBAAgB,EAAAZ,cAChBa,kBAAiB,EAAA5D,GAAG,6BACpB6D,gBAAe,EAAA7D,GAAG,iC,+DAGvB,YAOM,MAPN,EAOM,CANJ,YAA2C,sBAApC,EAAAA,GAAG,2BAAD,GACT,YAIE,GAHC8D,cAAa,EAAAvB,kBACdpC,SAAS,cACR4D,sBAAqB,EAAA/D,GAAG,kC,gDAG7B,YAQM,MARN,EAQM,CAPJ,YAA0C,sBAAnC,EAAAA,GAAG,0BAAD,GACT,YAAyD,qBAAnD,EAAAA,GAAG,2CAAD,GACR,YAIE,GAHC2D,iBAAgB,EAAAT,aAChBU,kBAAiB,EAAA5D,GAAG,4BACpB6D,gBAAe,EAAA7D,GAAG,gC,+DAGvB,YAOM,MAPN,EAOM,CANJ,YAA0C,sBAAnC,EAAAA,GAAG,0BAAD,GACT,YAIE,GAHC8D,cAAa,EAAAnB,iBACdxC,SAAS,aACR4D,sBAAqB,EAAA/D,GAAG,iC,gDAG7B,YAQM,MARN,EAQM,CAPJ,YAAyC,sBAAlC,EAAAA,GAAG,yBAAD,GACT,YAAwD,qBAAlD,EAAAA,GAAG,0CAAD,GACR,YAIE,GAHC2D,iBAAgB,EAAAR,YAChBS,kBAAiB,EAAA5D,GAAG,2BACpB6D,gBAAe,EAAA7D,GAAG,+B,+DAGvB,YAOM,MAPN,EAOM,CANJ,YAAyC,sBAAlC,EAAAA,GAAG,yBAAD,GACT,YAIE,GAHC8D,cAAa,EAAAjB,gBACd1C,SAAS,YACR4D,sBAAqB,EAAA/D,GAAG,gC,+ES9CtBhC,MAAM,sB,GAkBFA,MAAM,gB,eAkCR0F,MAAM,S,GACJ1F,MAAM,sB,GAkBFA,MAAM,gB,eAiCVA,MAAM,oB,GAkBFA,MAAM,gB,yEC7HrBA,MAAM,e,6BAUJA,MAAM,uBCbZ,IAEe,IACbM,MAAO,CACL0F,MAAO,CACLxF,KAAMC,SACNC,UAAU,GAEZuF,OAAQ,CACNzF,KAAMC,UAERyF,YAAa,CACX1F,KAAMI,OACNwB,QAAS,cAGbrB,KAda,WAeX,MAAO,CACLoF,KAAM,GACNC,QAAS,KACTC,QAAS,GACTC,gBAAgB,IAGpBvC,SAAU,CACRwC,SADQ,WAEN,OAAOjF,KAAK2E,OAAS3E,KAAK2E,OAAO3E,KAAK+E,SAAW/E,KAAK+E,UAG1DG,MAAO,CACLL,KADK,SACCM,GACJnF,KAAKoF,aAAaD,KAGtBrF,QAAS,CACPsF,aADO,SACOP,GAAM,WAClBQ,aAAarF,KAAK8E,SAClB9E,KAAK8E,QAAU/C,YAAW,WACxB,EAAKgD,QAAU,GACXF,GACF,EAAKH,MAAMG,GAAMvE,MAAK,SAACyE,GAAc,EAAKA,QAAUA,OAxCjC,MA4CzBO,aAVO,WAWLtF,KAAKgF,gBAAiB,GAExBO,eAbO,WAcLvF,KAAKgF,gBAAiB,K,OCvCb,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,6FFNzD,YAmBM,MAnBN,GAmBM,C,YAfJ,YAKC,S,qCAJU,EAAI,QACZJ,YAAa,EAAAA,YACdlG,MAAM,oBACL,QAAK,oBAAE,EAAA4G,cAAA,EAAAA,gBAAA,K,iBAHC,EAAAT,QAMH,EAAAG,gBAAkB,EAAAC,SAASO,OAAS,G,cAD5C,YAQM,MARN,GAQM,E,gBAJJ,YAGE,qBAFe,EAAAP,SAARQ,GADT,YAGE,oBADCA,KAAMA,K,mCAfM,EAAAF,sB,UGAZ7G,MAAM,gC,6CCqCAgH,GArCG,CAChB1G,MAAO,CAAC,UACRS,KAFgB,WAGd,MAAO,CACLkG,UAAU,IAGdlD,SAAU,CACRK,KADQ,WAEN,OAAO9C,KAAKqC,OAAOuD,QAAQC,SAAS7F,KAAK8F,SAE3CC,aAJQ,WAKN,OAAO/F,KAAKqC,OAAOuD,QAAQG,aAAa/F,KAAK8F,SAE/CE,QAPQ,WAQN,OAAOhG,KAAK+F,aAAaE,WAG7B1D,WAAY,CACV2D,oBAEFpG,QAAS,CACPqG,YADO,WACQ,WACbnG,KAAK2F,UAAW,EAChB3F,KAAKqC,OAAOC,SAAS,cAAetC,KAAK8C,KAAKK,IAAI7C,MAAK,WACrD,EAAKqF,UAAW,MAGpBS,UAPO,WAOM,WACXpG,KAAK2F,UAAW,EAChB3F,KAAKqC,OAAOC,SAAS,YAAatC,KAAK8C,KAAKK,IAAI7C,MAAK,WACnD,EAAKqF,UAAW,Q,OCxBT,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,kFFNzD,YA6BkB,GA7BA7C,KAAM,EAAAA,MAAI,C,oBAC1B,IA2BM,CA3BN,YA2BM,MA3BN,GA2BM,CAzBI,EAAO,S,cADf,YAYS,U,MAVPpE,MAAM,qBACL2H,SAAU,EAAAV,SACV,QAAK,oBAAE,EAAAQ,aAAA,EAAAA,eAAA,K,CAEQ,EAAQ,U,cAAxB,YAEW,a,wBADN,EAAAzF,GAAG,+BAAD,I,oBAEP,YAEW,a,wBADN,EAAAA,GAAG,sBAAD,I,4BAGT,YAYS,U,MAVPhC,MAAM,qBACL2H,SAAU,EAAAV,SACV,QAAK,oBAAE,EAAAS,WAAA,EAAAA,aAAA,K,CAEQ,EAAQ,U,cAAxB,YAEW,a,wBADN,EAAA1F,GAAG,6BAAD,I,oBAEP,YAEW,a,wBADN,EAAAA,GAAG,oBAAD,I,gDGxBNhC,MAAM,+B,gCCAf,IAqCe4H,GArCE,CACftH,MAAO,CAAC,UACRS,KAFe,WAGb,MAAO,CACLkG,UAAU,IAGdlD,SAAU,CACRK,KADQ,WAEN,OAAO9C,KAAKqC,OAAOuD,QAAQC,SAAS7F,KAAK8F,SAE3CC,aAJQ,WAKN,OAAO/F,KAAKqC,OAAOuD,QAAQG,aAAa/F,KAAK8F,SAE/CS,MAPQ,WAQN,OAAOvG,KAAK+F,aAAaS,SAG7BjE,WAAY,CACV2D,oBAEFpG,QAAS,CACP2G,WADO,WACO,WACZzG,KAAK2F,UAAW,EAChB3F,KAAKqC,OAAOC,SAAS,aAActC,KAAK8F,QAAQxF,MAAK,WACnD,EAAKqF,UAAW,MAGpBe,SAPO,WAOK,WACV1G,KAAK2F,UAAW,EAChB3F,KAAKqC,OAAOC,SAAS,WAAYtC,KAAK8F,QAAQxF,MAAK,WACjD,EAAKqF,UAAW,Q,OCxBT,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,kFFNzD,YA6BkB,GA7BA7C,KAAM,EAAAA,MAAI,C,oBAC1B,IA2BM,CA3BN,YA2BM,MA3BN,GA2BM,CAzBI,EAAK,O,cADb,YAYS,U,MAVPpE,MAAM,qBACL2H,SAAU,EAAAV,SACV,QAAK,oBAAE,EAAAc,YAAA,EAAAA,cAAA,K,CAEQ,EAAQ,U,cAAxB,YAEW,a,wBADN,EAAA/F,GAAG,8BAAD,I,oBAEP,YAEW,a,wBADN,EAAAA,GAAG,qBAAD,I,4BAGT,YAYS,U,MAVPhC,MAAM,qBACL2H,SAAU,EAAAV,SACV,QAAK,oBAAE,EAAAe,UAAA,EAAAA,YAAA,K,CAEQ,EAAQ,U,cAAxB,YAEW,a,wBADN,EAAAhG,GAAG,4BAAD,I,oBAEP,YAEW,a,wBADN,EAAAA,GAAG,mBAAD,I,gDGzBRhC,MAAM,oB,IACJA,MAAM,2B,cCuBAiI,GAvBQ,CACrB3H,MAAO,CAAC,UACRuD,WAAY,CACVqE,qBAEFnE,SAAU,CACRK,KADQ,WAEN,OAAO9C,KAAKqC,OAAOO,MAAMG,MAAMC,aAEjCuD,MAJQ,WAKN,OAAOvG,KAAK8C,KAAK+D,YAAYC,SAAS9G,KAAK+G,UAG/CjH,QAAS,CACPkH,aADO,WAEL,OAAOhH,KAAKqC,OAAOC,SAAS,eAAgBtC,KAAK+G,SAEnDE,WAJO,WAKL,OAAOjH,KAAKqC,OAAOC,SAAS,aAActC,KAAK+G,W,OCXtC,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,iFFNzD,YAwBM,MAxBN,GAwBM,CAvBJ,YAEM,MAFN,GAEM,YADD,EAAAA,QAAM,GAGH,EAAK,O,cADb,YASiB,G,MAPdlF,MAAO,EAAAmF,aACRtI,MAAM,sB,CAGWiH,SAAQ,YACvB,IAA4C,C,wBAAzC,EAAAjF,GAAG,qCAAD,K,oBAFP,IAAmC,C,wBAAhC,EAAAA,GAAG,4BAA6B,IACnC,K,kCAIF,YASiB,G,MAPdmB,MAAO,EAAAoF,WACRvI,MAAM,sB,CAGWiH,SAAQ,YACvB,IAA0C,C,wBAAvC,EAAAjF,GAAG,mCAAD,K,oBAFP,IAAiC,C,wBAA9B,EAAAA,GAAG,0BAA2B,IACjC,K,mCGpBChC,MAAM,mB,UAGPA,MAAM,0B,IAEDA,MAAM,oC,IASNA,MAAM,kC,IAgBFA,MAAM,oC,ICkCNwI,GA9DQ,CACrB3E,WAAY,CACV4E,K,MAAAA,EACA3E,cAEFxD,MAAO,CACLoI,MAAO,CACLlI,KAAMmI,MACNvG,QAAS,iBAAM,KAEjBwG,OAAQ,CACNpI,KAAMC,SACN2B,QAAS,SAAA2E,GAAI,OAAIA,EAAKtC,MAG1B1D,KAfqB,WAgBnB,MAAO,CACL8H,SAAU,KAGd9E,SAAU,CACR+E,QADQ,WAEN,OAAOxH,KAAKoH,MAAMtD,IAAI9D,KAAKsH,SAE7BG,iBAJQ,WAIY,WAClB,OAAOzH,KAAKwH,QAAQ7C,QAAO,SAAA+C,GAAG,OAAoC,IAAhC,EAAKH,SAASI,QAAQD,OAE1DE,YAPQ,WAQN,OAAO5H,KAAKyH,iBAAiBjC,SAAWxF,KAAKoH,MAAM5B,QAErDqC,aAVQ,WAWN,OAAwC,IAAjC7H,KAAKyH,iBAAiBjC,QAE/BsC,aAbQ,WAcN,OAAQ9H,KAAK4H,cAAgB5H,KAAK6H,eAGtC/H,QAAS,CACPiI,WADO,SACKtC,GACV,OAA6D,IAAtDzF,KAAKyH,iBAAiBE,QAAQ3H,KAAKsH,OAAO7B,KAEnDuC,OAJO,SAICC,EAASxC,GACf,IAAMiC,EAAM1H,KAAKsH,OAAO7B,GAEpBwC,IADejI,KAAK+H,WAAWL,KAE7BO,EACFjI,KAAKuH,SAASW,KAAKR,GAEnB1H,KAAKuH,SAASY,OAAOnI,KAAKuH,SAASI,QAAQD,GAAM,KAIvDU,UAfO,SAeIC,GAEPrI,KAAKuH,SADHc,EACcrI,KAAKwH,QAAQc,MAAM,GAEnB,M,OClDT,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,iGFNzD,YA8CM,MA9CN,GA8CM,CA5CI,EAAAlB,MAAM5B,OAAS,G,cADvB,YAmBM,MAnBN,GAmBM,CAfJ,YAQM,MARN,GAQM,CAPJ,YAMW,GALR+C,cAAa,EAAAX,YACbY,cAAe,EAAAV,aACf,sBAAoB,EAAAM,W,qBAErB,IAAsC,C,wBAAnC,EAAA1H,GAAG,+BAAD,K,gEAGT,YAKM,MALN,GAKM,CAJJ,YAGE,mBADC6G,SAAU,EAAAE,wB,mBAIjB,YAwBO,GAvBJL,MAAO,EAAAA,MACPqB,UAAS,EAAAnB,Q,CAEO7B,KAAI,YACnB,EADsBA,UAAI,CAC1B,YAcM,OAbJ/G,MAAK,aAAC,6BAA4B,uCACe,EAAAqJ,WAAWtC,O,CAE5D,YAKM,MALN,GAKM,CAJJ,YAGE,GAFC8C,cAAa,EAAAR,WAAWtC,GACxB,sBAAoBwC,GAAW,EAAAD,OAAOC,EAASxC,I,gDAGpD,YAGE,iBADCA,KAAMA,K,KAIIiD,MAAK,YACpB,IAAqB,CAArB,YAAqB,oB,4qBGhC7B/J,IAAQC,IACNC,KAGF,IA0Ee8J,GA1EU,SAAC,GAAD,IACvBC,EADuB,EACvBA,MACAC,EAFuB,EAEvBA,OAFuB,IAGvBC,qBAHuB,MAGP,UAHO,MAIvBC,2BAJuB,MAID,GAJC,SAKnB,SAACC,GACL,IACMhK,EADgBiK,OAAOC,KAAKC,aAAkBH,IACxBrE,QAAO,SAAAyE,GAAC,OAAIA,IAAMN,KAAeO,OAAON,GAEpE,MAAO,CACL/J,MAAO,GAAF,YACAA,GADA,CAEH,YAEFS,KALK,WAMH,MAAO,CACL6J,SAAS,EACT3J,OAAO,IAGX8C,SAAU,CACR8G,YADQ,WAEN,OAAOV,EAAO7I,KAAKwJ,OAAQxJ,KAAKqC,UAGpCD,QAhBK,YAiBCpC,KAAKyJ,SAAWC,KAAQ1J,KAAKuJ,eAC/BvJ,KAAK2J,aAGT7J,QAAS,CACP6J,UADO,WACM,WACN3J,KAAKsJ,UACRtJ,KAAKsJ,SAAU,EACftJ,KAAKL,OAAQ,EACbiJ,EAAM5I,KAAKwJ,OAAQxJ,KAAKqC,QACrB/B,MAAK,WACJ,EAAKgJ,SAAU,KAFnB,OAIS,WACL,EAAK3J,OAAQ,EACb,EAAK2J,SAAU,QAKzBM,OArCK,WAsCH,GAAK5J,KAAKL,OAAUK,KAAKsJ,QAcvB,gCACa,6BADb,CAEKtJ,KAAKL,MAAL,yBACeK,KAAK2J,UADpB,MACqC,eADrC,CACoD3J,KAAKU,GAAG,2BAD5D,+BAEqB,gBAFrB,QAfL,I,EAAM1B,EAAQ,SACTgB,KAAKwJ,QADC,UAERV,EAAgB9I,KAAKuJ,cAElBM,EAAW7J,KAAK8J,OACtB,gCACa,qBADb,eAE0B9K,G,EACnB6K,E,6FAAAA,EAHP,2BAGOA,aC3DTE,GAAYpB,GAAiB,CACjCC,MAAO,SAAC5J,EAAOqD,GAAR,OAAmBA,EAAOC,SAAS,gBAC1CuG,OAAQ,SAAC7J,EAAOqD,GAAR,OAAmB2H,KAAI3H,EAAOO,MAAMG,MAAMC,YAAa,WAAY,KAC3E8F,cAAe,SAHCH,CAIfzB,IAEG+C,GAAWtB,GAAiB,CAChCC,MAAO,SAAC5J,EAAOqD,GAAR,OAAmBA,EAAOC,SAAS,eAC1CuG,OAAQ,SAAC7J,EAAOqD,GAAR,OAAmB2H,KAAI3H,EAAOO,MAAMG,MAAMC,YAAa,UAAW,KAC1E8F,cAAe,SAHAH,CAIdzB,IAEGgD,GAAiBvB,GAAiB,CACtCC,MAAO,SAAC5J,EAAOqD,GAAR,OAAmBA,EAAOC,SAAS,qBAC1CuG,OAAQ,SAAC7J,EAAOqD,GAAR,OAAmB2H,KAAI3H,EAAOO,MAAMG,MAAMC,YAAa,cAAe,KAC9E8F,cAAe,SAHMH,CAIpBzB,IA0GYiD,GAxGQ,CACrB1K,KADqB,WAEnB,MAAO,CACLyC,UAAW,YAGfE,QANqB,WAOnBpC,KAAKqC,OAAOC,SAAS,eACrBtC,KAAKqC,OAAOC,SAAS,oBAEvBC,WAAY,CACV6H,gBACAL,aACAE,YACAC,kBACAxE,aACAY,YACAK,kBACAC,oBACAyD,eACA7H,cAEFC,SAAU,CACR6H,aADQ,WAEN,OAAOtK,KAAKqC,OAAOO,MAAM2H,SAASD,cAEpCxH,KAJQ,WAKN,OAAO9C,KAAKqC,OAAOO,MAAMG,MAAMC,cAGnClD,QAAS,CACP2D,cADO,SACQ/D,GACb,OAAOM,KAAKqC,OAAOO,MAAMC,IAAIF,kBAAkBc,cAAc,CAAE/D,SAC5DY,MAAK,SAACoD,GACL,IAAKA,EACH,MAAM,IAAIC,MAAM,cAIxBC,aATO,SASOlE,GACZ,OAAOM,KAAKqC,OAAOO,MAAMC,IAAIF,kBAAkBiB,aAAa,CAAElE,SAC3DY,MAAK,SAACoD,GACL,IAAKA,EACH,MAAM,IAAIC,MAAM,cAIxBP,+BAjBO,SAiByBL,GAE9B,OAAOA,EAAMe,KAAI,SAAChB,GAEhB,OAAIA,GAAQA,EAAKiB,SAGRjB,EAAKkB,YAAc,IAAMC,SAASC,SAEpCpB,EAAKkB,eACXG,KAAK,OAEVqG,YA7BO,SA6BMC,GACXzK,KAAKkC,UAAYuI,GAEnBC,qBAhCO,SAgCeC,GAAS,WAC7B,OAAOC,KAAOD,GAAS,SAAC7E,GAEtB,OADqB,EAAKzD,OAAOuD,QAAQG,aAAa,EAAKD,QACvCG,UAAYH,IAAW,EAAKhD,KAAKK,OAGzD0H,mBAtCO,SAsCaF,GAAS,WAC3B,OAAOC,KAAOD,GAAS,SAAC7E,GAEtB,OADqB,EAAKzD,OAAOuD,QAAQG,aAAa,EAAKD,QACvCU,QAAUV,IAAW,EAAKhD,KAAKK,OAGvD2H,aA5CO,SA4COpG,GACZ,OAAO1E,KAAKqC,OAAOC,SAAS,cAAe,CAAEoC,UAC1CpE,MAAK,SAACyC,GAAD,OAAWe,KAAIf,EAAO,UAEhCgI,WAhDO,SAgDKC,GACV,OAAOhL,KAAKqC,OAAOC,SAAS,aAAc0I,IAE5CC,aAnDO,SAmDOD,GACZ,OAAOhL,KAAKqC,OAAOC,SAAS,eAAgB0I,IAE9CE,UAtDO,SAsDIF,GACT,OAAOhL,KAAKqC,OAAOC,SAAS,YAAa0I,IAE3CG,YAzDO,SAyDMH,GACX,OAAOhL,KAAKqC,OAAOC,SAAS,cAAe0I,IAE7CI,qBA5DO,SA4DeC,GAAM,WAC1B,OAAOA,EAAK1G,QAAO,SAAA2G,GAAG,OAAK,EAAKxI,KAAK+D,YAAYC,SAASwE,OAE5DC,kBA/DO,SA+DY7G,GAAO,WACxB,OAAO,IAAI8G,SAAQ,SAACC,EAASb,GAC3Ba,EAAQ,EAAKnB,aAAa3F,QAAO,SAAA2G,GAAG,OAAIA,EAAII,cAAc5E,SAASpC,WAGvEiH,cApEO,SAoEQC,GACb,OAAO5L,KAAKqC,OAAOC,SAAS,gBAAiBsJ,M,OCzHpC,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,sTlBNzD,YAsJe,GArJZC,mBAAiB,EAClBnN,MAAM,wB,qBAEN,IAiDM,CAjDN,YAiDM,OAjDA0F,MAAO,EAAA1D,GAAG,wB,CACd,YAYM,MAZN,EAYM,CAXJ,YAUc,GATXiE,OAAQ,EAAA+F,qBACRhG,MAAO,EAAAoG,aACPlG,YAAa,EAAAlE,GAAG,kC,qBAKb,GAHiB,CACnB,YAEE,GADCoL,UAASC,EAAItG,M,iEAKtB,YAkCY,GAjCTgE,SAAS,EACThB,UAASuD,GAAKA,G,CAEEC,OAAM,YACrB,EADwB1E,cAAQ,CAChC,YAqBM,MArBN,EAqBM,CAnBIA,EAAS/B,OAAS,G,cAD1B,YASiB,G,MAPf9G,MAAM,wCACLmD,MAAK,IAAQ,EAAAkJ,WAAWxD,I,CAGR5B,SAAQ,YACvB,IAAoC,C,wBAAjC,EAAAjF,GAAG,6BAAD,K,oBAFP,IAA2B,C,wBAAxB,EAAAA,GAAG,oBAAqB,IAC3B,K,yCAKM6G,EAAS/B,OAAS,G,cAD1B,YASiB,G,MAPf9G,MAAM,qBACLmD,MAAK,IAAQ,EAAAoJ,aAAa1D,I,CAGV5B,SAAQ,YACvB,IAAsC,C,wBAAnC,EAAAjF,GAAG,+BAAD,K,oBAFP,IAA6B,C,wBAA1B,EAAAA,GAAG,sBAAuB,IAC7B,K,6CAMW+E,KAAI,YACnB,EADsBA,UAAI,CAC1B,YAA6B,GAAjBqG,UAASrG,GAAI,sBAEViD,MAAK,YACpB,IAA8B,C,wBAA3B,EAAAhI,GAAG,uBAAD,K,0BAKX,YA8FM,OA9FA0D,MAAO,EAAA1D,GAAG,uB,CACd,YA4Fe,Q,oBA3Fb,IAiDM,CAjDN,YAiDM,MAjDN,EAiDM,CAhDJ,YAYM,MAZN,EAYM,CAXJ,YAUc,GATXiE,OAAQ,EAAAkG,mBACRnG,MAAO,EAAAoG,aACPlG,YAAa,EAAAlE,GAAG,iC,qBAKb,GAHiB,CACnB,YAEE,GADCoL,UAASC,EAAItG,M,iEAKtB,YAkCW,GAjCRgE,SAAS,EACThB,UAASuD,GAAKA,G,CAEEC,OAAM,YACrB,EADwB1E,cAAQ,CAChC,YAqBM,MArBN,EAqBM,CAnBIA,EAAS/B,OAAS,G,cAD1B,YASiB,G,MAPf9G,MAAM,qBACLmD,MAAK,IAAQ,EAAAqJ,UAAU3D,I,CAGP5B,SAAQ,YACvB,IAAmC,C,wBAAhC,EAAAjF,GAAG,4BAAD,K,oBAFP,IAA0B,C,wBAAvB,EAAAA,GAAG,mBAAoB,IAC1B,K,yCAKM6G,EAAS/B,OAAS,G,cAD1B,YASiB,G,MAPf9G,MAAM,qBACLmD,MAAK,IAAQ,EAAAsJ,YAAY5D,I,CAGT5B,SAAQ,YACvB,IAAqC,C,wBAAlC,EAAAjF,GAAG,8BAAD,K,oBAFP,IAA4B,C,wBAAzB,EAAAA,GAAG,qBAAsB,IAC5B,K,6CAMW+E,KAAI,YACnB,EADsBA,UAAI,CAC1B,YAA4B,GAAjBqG,UAASrG,GAAI,sBAETiD,MAAK,YACpB,IAA6B,C,wBAA1B,EAAAhI,GAAG,sBAAD,K,sBAKX,YAuCM,OAvCA0D,MAAO,EAAA1D,GAAG,0B,CACd,YAYM,MAZN,EAYM,CAXJ,YAUc,GATXiE,OAAQ,EAAAyG,qBACR1G,MAAO,EAAA6G,kBACP3G,YAAa,EAAAlE,GAAG,kC,qBAKb,GAHiB,CACnB,YAEE,GADCqG,OAAQgF,EAAItG,M,gEAKrB,YAwBiB,GAvBdgE,SAAS,EACThB,UAASuD,GAAKA,G,CAEEC,OAAM,YACrB,EADwB1E,cAAQ,CAChC,YAWM,MAXN,EAWM,CATIA,EAAS/B,OAAS,G,cAD1B,YASiB,G,MAPf9G,MAAM,qBACLmD,MAAK,IAAQ,EAAA8J,cAAcpE,I,CAGX5B,SAAQ,YACvB,IAA4C,C,wBAAzC,EAAAjF,GAAG,qCAAD,K,oBAFP,IAAmC,C,wBAAhC,EAAAA,GAAG,4BAA6B,IACnC,K,6CAMW+E,KAAI,YACnB,EADsBA,UAAI,CAC1B,YAAiC,GAAhBsB,OAAQtB,GAAI,qBAEdiD,MAAK,YACpB,IAA6B,C,wBAA1B,EAAAhI,GAAG,sBAAD,K,2EmB/IVhC,MAAM,gB,IAELA,MAAM,gB,IAMJA,MAAM,mB,IACFA,MAAM,S,IACRA,MAAM,e,UA2CdA,MAAM,gB,IAGFA,MAAM,gB,IAmBPA,MAAM,gB,gBC1EXA,MAAM,kB,UASFA,MAAM,S,eAGD,IACP,YAAG,KAAM,K,6DCbXA,MAAM,qB,eAKqB,O,IAQlBA,MAAM,oB,aAanBC,IAAQC,IACNsN,MAGa,QACb3J,WAAY,CAAE4J,oBACdnN,MAAO,CAAC,Y,OC1BK,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,oFDLjD,EAAO,S,cADf,YAoBO,OApBP,GAoBO,CAhBL,YAeU,GAdRoN,QAAQ,SAAO,CAEEA,QAAO,YAAC,IAEvB,C,GAAA,YAGE,GAFA3L,KAAK,SACJ4L,aAAY,EAAA3L,GAAG,6B,yBAGHS,QAAO,YACtB,IAEM,CAFN,YAEM,MAFN,GAEM,YADD,EAAAT,GAAG,6BAAD,K,gDEdXhC,MAAM,uB,eAKqB,O,IAQlBA,MAAM,sBAanBC,IAAQC,IACN0N,MAGa,QACb/J,WAAY,CAAE4J,oBACdnN,MAAO,CAAC,e,OC1BK,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,oFDLjD,EAAU,Y,cADlB,YAoBO,OApBP,GAoBO,CAhBL,YAeU,GAdRoN,QAAQ,SAAO,CAEEA,QAAO,YAAC,IAEvB,C,GAAA,YAGE,GAFA3L,KAAK,SACJ4L,aAAY,EAAA3L,GAAG,iC,yBAGHS,QAAO,YACtB,IAEM,CAFN,YAEM,MAFN,GAEM,YADD,EAAAT,GAAG,iCAAD,K,gCEbA,IACb6B,WAAY,CACVC,aACA+J,qBACAC,wBAEFxN,MAAO,CACL,OACA,WACA,UAEFyD,SAAU,CACRgK,YADQ,WAEN,MAAgCzM,KAAK0M,KAAKC,MAAM,KAAhD,UAAOC,EAAP,KAAwBC,EAAxB,WACA,MAAO,CAACD,EAAe,gBAAhB,YAAmCC,IAAM1I,KAAK,MAEvDvB,MALQ,WAMN,IAAMyF,EAAQ,KAAIrI,KAAK8M,QAAS9M,KAAK0M,MACrC,YAAcK,IAAV1E,EACKrI,KAAKgN,aAEL3E,GAGX2E,aAbQ,WAcN,OAAO,KAAIhN,KAAK8M,QAAS9M,KAAKyM,cAEhCQ,aAhBQ,WAiBN,OAAOjN,KAAK0M,KAAKQ,WAAW,gBAE9BC,UAnBQ,WAoBN,OAAQnN,KAAK0M,KAAKQ,WAAW,gBAAkBlN,KAAK4C,QAAU5C,KAAKgN,cAErEI,mBAtBQ,WAuBN,OAAQpN,KAAKqN,QAAU,IAAMrN,KAAK8M,QAAQQ,cAG9CxN,QAAS,CACPyN,OADO,SACCC,GACN,KAAIxN,KAAK8M,QAAS9M,KAAK0M,KAAMc,MCpCpB,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,qINHjD,EAAkB,oB,cAD1B,YAiBQ,QAjBR,GAiBQ,CAbN,YAY2G,GAXxGjF,cAAa,EAAA3F,MACbyD,SAAU,EAAAA,SACV,sBAAmB,EAAAkH,Q,qBAEpB,IAKO,CAJG,EAAAzD,OAAOhJ,S,cADjB,YAKO,OALP,GAKO,CADL,YAAQ,uB,sBAGV,YAA0C,GAAtB2M,QAAS,EAAAN,WAAS,oBAAI,YAAmD,GAA7BO,cAAa,EAAAT,cAAY,0B,gsBOd/F,IAiDeU,GAjDc,qBAAC,UAC5B7K,KAD2B,WAEzB,OAAO9C,KAAKqC,OAAOO,MAAMG,MAAMC,cAG9BiG,OAAOC,KAAK0E,MACZ9J,KAAI,SAAA4D,GAAG,MAAI,CACVA,EAAM,eACN,WACE,OAAO1H,KAAKqC,OAAOuD,QAAQiI,cAAcnG,QAG5CoG,QAAO,SAACC,EAAD,mBAAOrG,EAAP,KAAYW,EAAZ,eAAC,MAA4B0F,GAA7B,UAAmCrG,EAAMW,MAAU,KAE1DY,OAAOC,KAAK0E,MACZ9J,KAAI,SAAA4D,GAAG,MAAI,CAACA,EAAK,CAChBsC,IADgB,WACP,OAAOhK,KAAKqC,OAAOuD,QAAQoI,aAAatG,IACjDuG,IAFgB,SAEX5F,GACHrI,KAAKqC,OAAOC,SAAS,YAAa,CAAE4L,KAAMxG,EAAKW,gBAGlDyF,QAAO,SAACC,EAAD,mBAAOrG,EAAP,KAAYW,EAAZ,eAAC,MAA4B0F,GAA7B,UAAmCrG,EAAMW,MAAU,KAC1DY,OAAOC,KAAKiF,MACZrK,KAAI,SAAA4D,GAAG,MAAI,CAAC,cAAgBA,EAAK,CAChCsC,IADgC,WACvB,OAAOhK,KAAKqC,OAAOO,MAAMwL,iBAAiB1G,IACnDuG,IAFgC,SAE3B5F,GACHrI,KAAKqC,OAAOC,SAAS,sBAAuB,CAAE4L,KAAMxG,EAAKW,gBAG5DyF,QAAO,SAACC,EAAD,mBAAOrG,EAAP,KAAYW,EAAZ,eAAC,MAA4B0F,GAA7B,UAAmCrG,EAAMW,MAAU,KA7BlC,IA+B3BgG,gBAAiB,CACfrE,IADe,WACN,OAAOhK,KAAKqC,OAAOuD,QAAQoI,aAAaK,iBACjDJ,IAFe,SAEV5F,GAAO,YACMA,EACZrI,KAAKqC,OAAOC,SAAS,sBACrBtC,KAAKqC,OAAOC,SAAS,wBAEjBhC,MAAK,WACX,EAAK+B,OAAOC,SAAS,YAAa,CAAE4L,KAAM,kBAAmB7F,aAD/D,OAES,SAACmF,GACRc,QAAQ3O,MAAM,4CAA6C6N,GAC3D,EAAKnL,OAAOC,SAAS,uBACrB,EAAKD,OAAOC,SAAS,YAAa,CAAE4L,KAAM,kBAAmB7F,OAAO,Y,+NC3C5E,IAyBekG,GAzBU,CACvB9O,KADuB,WAErB,MAAO,CACLyC,UAAW,UACXsM,qBAAsBxO,KAAKqC,OAAOO,MAAMG,MAAMC,YAAYyL,sBAC1DtM,gBAAiB,KAGrBI,WAAY,CACVmM,mBAEFjM,S,mWAAU,EACRK,KADQ,WAEN,OAAO9C,KAAKqC,OAAOO,MAAMG,MAAMC,cAE9B2K,MAEL7N,QAAS,CACP6O,2BADO,WAEL3O,KAAKqC,OAAOO,MAAMC,IAAIF,kBACnBgM,2BAA2B,CAAEC,SAAU5O,KAAKwO,0BChBtC,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,iFVJzD,YAgFM,OAhFApK,MAAO,EAAA1D,GAAG,2B,CACd,YAiDM,MAjDN,GAiDM,CAhDJ,YAA0D,sBAAnD,EAAAA,GAAG,0CAAD,GACT,YA8CK,KA9CL,GA8CK,CA7CH,YAIK,WAHH,YAEiB,GAFDgM,KAAK,8CAA4C,C,oBAC/D,IAA8D,C,wBAA3D,EAAAhM,GAAG,uDAAD,K,QAGT,YAuCK,KAvCL,GAuCK,CAtCH,YAAuE,OAAvE,GAAuE,YAAhD,EAAAA,GAAG,qCAAD,GACzB,YAoCK,KApCL,GAoCK,CAnCH,YAIK,WAHH,YAEiB,GAFDgM,KAAK,gCAA8B,C,oBACjD,IAAkD,C,wBAA/C,EAAAhM,GAAG,2CAAD,K,QAGT,YAIK,WAHH,YAEiB,GAFDgM,KAAK,kCAAgC,C,oBACnD,IAAoD,C,wBAAjD,EAAAhM,GAAG,6CAAD,K,QAGT,YAIK,WAHH,YAEiB,GAFDgM,KAAK,kCAAgC,C,oBACnD,IAAoD,C,wBAAjD,EAAAhM,GAAG,6CAAD,K,QAGT,YAIK,WAHH,YAEiB,GAFDgM,KAAK,mCAAiC,C,oBACpD,IAAqD,C,wBAAlD,EAAAhM,GAAG,8CAAD,K,QAGT,YAIK,WAHH,YAEiB,GAFDgM,KAAK,gCAA8B,C,oBACjD,IAAkD,C,wBAA/C,EAAAhM,GAAG,2CAAD,K,QAGT,YAIK,WAHH,YAEiB,GAFDgM,KAAK,yCAAuC,C,oBAC1D,IAA4D,C,wBAAzD,EAAAhM,GAAG,qDAAD,K,QAGT,YAIK,WAHH,YAEiB,GAFDgM,KAAK,gCAA8B,C,oBACjD,IAAkD,C,wBAA/C,EAAAhM,GAAG,2CAAD,K,gBAST,EAAA4M,YAAc,G,cADtB,YAuBM,MAvBN,GAuBM,CAnBJ,YAA0D,sBAAnD,EAAA5M,GAAG,0CAAD,GACT,YAiBK,KAjBL,GAiBK,CAhBH,YAOK,WANH,YAKiB,GAJfgM,KAAK,uBACLW,OAAO,K,qBAEP,IAAkD,C,wBAA/C,EAAA3M,GAAG,2CAAD,K,QAGT,YAOK,WANH,YAKiB,GAJfgM,KAAK,iCACLW,OAAO,K,qBAEP,IAAoE,C,wBAAjE,EAAA3M,GAAG,6DAAD,K,gCAKb,YAGM,MAHN,GAGM,CAFJ,YAA8C,qBAAxC,EAAAA,GAAG,gCAAD,GACR,YAA+C,qBAAzC,EAAAA,GAAG,iCAAD,M,iCW7ELhC,MAAM,gB,IAELA,MAAM,gB,UA6FVA,MAAM,gB,IAGFA,MAAM,gB,6DCjGZA,MAAM,iB,eAEE,IACR,YAAG,KAAM,K,0BCFE,IACb6D,WAAY,CACVsM,YACAtC,qBACAC,wBAEFxN,MAAO,CACL,OACA,WACA,UACA,UAEFyD,SAAU,CACRgK,YADQ,WAEN,MAAgCzM,KAAK0M,KAAKC,MAAM,KAAhD,UAAOC,EAAP,KAAwBC,EAAxB,WACA,MAAO,CAACD,EAAe,gBAAhB,YAAmCC,IAAM1I,KAAK,MAEvDvB,MALQ,WAMN,IAAMyF,EAAQ,KAAIrI,KAAK8M,QAAS9M,KAAK0M,MACrC,YAAcK,IAAV1E,EACKrI,KAAKgN,aAEL3E,GAGX2E,aAbQ,WAcN,OAAO,KAAIhN,KAAK8M,QAAS9M,KAAKyM,cAEhCQ,aAhBQ,WAiBN,OAAOjN,KAAK0M,KAAKQ,WAAW,gBAE9BC,UAnBQ,WAoBN,OAAQnN,KAAK0M,KAAKQ,WAAW,gBAAkBlN,KAAK4C,QAAU5C,KAAKgN,cAErEI,mBAtBQ,WAuBN,OAAQpN,KAAKqN,QAAU,IAAMrN,KAAK8M,QAAQQ,cAG9CxN,QAAS,CACPyN,OADO,SACCC,GACN,KAAIxN,KAAK8M,QAAS9M,KAAK0M,KAAMc,M,OCnCpB,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,mIFLjD,EAAkB,oB,cAD1B,YAsBQ,QAtBR,GAsBQ,CAlBN,YAAQ,oB,GAER,YAaS,GAZNjF,cAAa,EAAA3F,MACbyD,SAAU,EAAAA,SACV,sBAAmB,EAAAkH,Q,qBAGlB,IAAyB,E,gBAD3B,YAOS,qBANU,EAAAuB,QAAVC,I,cADT,YAOS,UALNrH,IAAKqH,EAAOrH,IACZW,MAAO0G,EAAO1G,O,YAEZ0G,EAAO3K,OAAQ,IAClB,YAAG2K,EAAO1G,QAAU,EAAA2E,aAAe,EAAAtM,GAAG,oCAAsC,IAAvC,Q,iEAGzC,YAA0C,GAAtB+M,QAAS,EAAAN,WAAS,oBACtC,YAAmD,GAA7BO,cAAa,EAAAT,cAAY,2B,uCGnB/CvO,MAAM,kB,6DAcL,IACD,YAAG,KAAM,KChBE,QACb6D,WAAY,CACVgK,sBAEFvN,MAAO,CACL0N,KAAMpN,OACN+G,SAAU2I,QACVC,IAAKC,OACL7B,OAAQ,CAAC6B,OAAQ5P,SAEnBmD,SAAU,CACRgK,YADQ,WAEN,MAAgCzM,KAAK0M,KAAKC,MAAM,KAAhD,UAAOC,EAAP,KAAwBC,EAAxB,WACA,MAAO,CAACD,EAAe,gBAAhB,YAAmCC,IAAM1I,KAAK,MAEvDvB,MALQ,WAMN,IAAMyF,EAAQ,KAAIrI,KAAK8M,QAAS9M,KAAK0M,MACrC,YAAcK,IAAV1E,EACKrI,KAAKgN,aAEL3E,GAGX2E,aAbQ,WAcN,OAAO,KAAIhN,KAAK8M,QAAS9M,KAAKyM,cAEhCU,UAhBQ,WAiBN,OAAOnN,KAAK4C,QAAU5C,KAAKgN,cAE7BI,mBAnBQ,WAoBN,OAAQpN,KAAKqN,QAAU,IAAMrN,KAAK8M,QAAQQ,cAG9CxN,QAAS,CACPyN,OADO,SACCC,GACN,KAAIxN,KAAK8M,QAAS9M,KAAK0M,KAAMyC,SAAS3B,EAAE4B,OAAO/G,WC9BtC,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,sEFHjD,EAAkB,oB,cAD1B,YAmBO,OAnBP,GAmBO,CAfL,YAEQ,SAFAgH,IAAK,EAAA3C,MAAI,CACf,YAAQ,qB,MAEV,YASC,SAREvJ,GAAI,EAAAuJ,KACLhO,MAAM,eACNQ,KAAK,SACLoQ,KAAK,IACJjJ,SAAU,EAAAA,SACV4I,IAAK,EAAAA,KAAO,EACZ5G,MAAO,EAAAzF,MACP,SAAM,oBAAE,EAAA2K,QAAA,EAAAA,UAAA,K,eAGX,YAA0C,GAAtBE,QAAS,EAAAN,WAAS,uB,4lBGZ1C,IAgDeoC,GAhDM,CACnB9P,KADmB,WACX,WACN,MAAO,CACL+P,qBAAsBxP,KAAKqC,OAAOuD,QAAQoI,aAAayB,UAAUtL,KAAK,MACtEuL,uBAAwB,CAAC,MAAO,YAAa,QAAQ5L,KAAI,SAAA6L,GAAI,MAAK,CAChEjI,IAAKiI,EACLtH,MAAOsH,EACPvL,MAAO,EAAK1D,GAAL,oCAAqCiP,UAIlDpN,WAAY,CACVmM,kBACAkB,iBACAC,mBAEFpN,SAAU,SACLkL,MADG,IAENmC,gBAAiB,CACf9F,IADe,WAEb,OAAOhK,KAAKwP,sBAEdvB,IAJe,SAIV5F,GACHrI,KAAKwP,qBAAuBnH,EAC5BrI,KAAKqC,OAAOC,SAAS,YAAa,CAChC4L,KAAM,YACN7F,MAAO,KAAOA,EAAMsE,MAAM,OAAO,SAACoD,GAAD,OAAU,KAAKA,GAAMvK,OAAS,WAMvEN,MAAO,CACL8K,uBAAwB,CACtBC,QADsB,SACb5H,GACPrI,KAAKqC,OAAOC,SAAS,YAAa,CAChC4L,KAAM,yBACN7F,MAAOrI,KAAKqC,OAAOuD,QAAQoI,aAAagC,0BAG5CE,MAAM,GAERC,gBAVK,WAWHnQ,KAAKqC,OAAOC,SAAS,oBC3CZ,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,gJRJzD,YA2GM,OA3GA8B,MAAO,EAAA1D,GAAG,uB,CACd,YA4FM,MA5FN,GA4FM,CA3FJ,YAAmC,sBAA5B,EAAAA,GAAG,mBAAD,GACT,YAyFK,KAzFL,GAyFK,CAxFH,YAmCK,WAlCH,YAEiB,GAFDgM,KAAK,wBAAsB,C,oBACzC,IAA2C,C,wBAAxC,EAAAhM,GAAG,oCAAD,K,MAEP,YA8BK,MA7BHhC,MAAK,aAAC,0BAAyB,YACV,EAAA0R,e,CAErB,YAOK,WANH,YAKiB,GAJd/J,SAAU,EAAAgK,qBACX3D,KAAK,yB,qBAEL,IAA+C,C,wBAA5C,EAAAhM,GAAG,wCAAD,K,uBAGT,YAQK,WANK,EAAI,M,cADZ,YAMiB,G,MAJd2F,SAAU,EAAAgK,qBACX3D,KAAK,oB,qBAEL,IAAuC,C,wBAApC,EAAAhM,GAAG,gCAAD,K,2CAGT,YAQK,WANK,EAAI,M,cADZ,YAMiB,G,MAJd2F,SAAU,EAAAgK,qBACX3D,KAAK,kB,qBAEL,IAAqC,C,wBAAlC,EAAAhM,GAAG,8BAAD,K,iDAKb,YAIK,WAHH,YAEiB,GAFDgM,KAAK,mBAAiB,C,oBACpC,IAAmC,C,wBAAhC,EAAAhM,GAAG,4BAAD,K,QAGT,YAIK,WAHH,YAEiB,GAFDgM,KAAK,iBAAe,C,oBAClC,IAAoC,C,wBAAjC,EAAAhM,GAAG,6BAAD,K,QAGT,YAIK,WAHH,YAEiB,GAFDgM,KAAK,qBAAmB,C,oBACtC,IAAwC,C,wBAArC,EAAAhM,GAAG,iCAAD,K,QAID,EAAI,M,cADZ,YAOgB,G,MALdyC,GAAG,kBACHuJ,KAAK,kBACJoC,QAAS,EAAAY,wB,qBAEV,IAAwC,C,wBAArC,EAAAhP,GAAG,iCAAD,K,wCAEP,YAQK,WAPH,YAAwC,sBAAjC,EAAAA,GAAG,wBAAD,G,YACT,YAIE,YAHAyC,GAAG,Y,qCACM,EAAe,mBACxBzE,MAAM,iB,gBADG,EAAAoR,mBAGX,YAAqD,uBAA7C,EAAApP,GAAG,mCAAD,KAEZ,YAAyC,sBAAlC,EAAAA,GAAG,yBAAD,GACT,YAQK,WAPH,YAMiB,GALfgM,KAAK,gBACLW,OAAO,IACN4B,IAAK,G,qBAEN,IAAmC,C,wBAAhC,EAAAvO,GAAG,4BAAD,K,QAGT,YAIK,WAHH,YAEiB,GAFDgM,KAAK,mBAAiB,C,oBACpC,IAA2C,C,wBAAxC,EAAAhM,GAAG,oCAAD,K,QAGT,YAIK,WAHH,YAEiB,GAFDgM,KAAK,yBAAuB,C,oBAC1C,IAA8C,C,wBAA3C,EAAAhM,GAAG,uCAAD,K,YAML,EAAA4M,YAAc,G,cADtB,YAYM,MAZN,GAYM,CARJ,YAA2C,sBAApC,EAAA5M,GAAG,2BAAD,GACT,YAMK,KANL,GAMK,CALH,YAIK,WAHH,YAEiB,GAFDgM,KAAK,iBAAe,C,oBAClC,IAAoC,C,wBAAjC,EAAAhM,GAAG,6BAAD,K,kESrGRhC,MAAM,gB,eAiCNA,MAAM,gB,qCAwCNA,MAAM,gB,IAEFA,MAAM,gB,GAKP,YAAM,mB,IAUFA,MAAM,W,mBAabA,MAAM,gB,4DCtGXA,MAAM,6B,IAEDA,MAAM,e,UAOPA,MAAM,gB,GASN,YAAI,mB,0BAsBKA,MAAM,W,qCAsCNA,MAAM,a,IACJA,MAAM,W,IAaNA,MAAM,U,IAaJA,MAAM,uB,UAgBTA,MAAM,e,sDC3HjBA,MAAM,oB,0BAMJA,MAAM,iB,IAGLA,MAAM,gBCVD,QACbM,MAAO,CACLsR,YAAa,CACXpR,KAAM+J,OACNnI,QAAS,iBAAO,CACdyP,YAAY,EACZC,MAAO,OAIb/Q,KAAM,iBAAO,IACbgD,SAAU,CACR8N,WADQ,WACQ,OAAOvQ,KAAKsQ,YAAYC,YACxCE,MAFQ,WAEG,OAAOzQ,KAAKsQ,YAAYE,MAAMhL,OAAS,GAClDkL,aAHQ,WAGU,OAAO1Q,KAAKuQ,YAAcvQ,KAAKyQ,S,OCLtC,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,2CFNzD,YAkBM,MAlBN,GAkBM,CAjBM,EAAY,c,cAAtB,YAEK,oBADA,EAAA/P,GAAG,gCAAD,I,mBAEE,EAAU,Y,cAAnB,YAA0E,mBAAlD,EAAAA,GAAG,0CAAD,I,mBACV,EAAK,O,cAArB,YAYW,aAXT,YAEI,IAFJ,GAEI,YADC,EAAAA,GAAG,wCAAD,GAEP,YAOK,KAPL,GAOK,E,gBANH,YAKK,qBAJY,EAAA4P,YAAYE,MAApBG,I,cADT,YAKK,MAHFjJ,IAAKiJ,GAAI,YAEPA,GAAI,K,iDGbRjS,MAAM,e,0BAkCTA,MAAM,e,sCCpCZ,IAQekS,GARC,CACd5R,MAAO,CAAC,YACRS,KAAM,iBAAO,IACbK,QAAS,CACP+Q,QADO,WACM7Q,KAAK8Q,MAAM,YACxBC,OAFO,WAEK/Q,KAAK8Q,MAAM,aCEZ,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,2CCJzD,YAgBM,YAfJ,YAAQ,oBACR,YAMS,UALPpS,MAAM,qBACL2H,SAAU,EAAAA,SACV,QAAK,oBAAE,EAAAwK,SAAA,EAAAA,WAAA,K,YAEL,EAAAnQ,GAAG,oBAAD,MAEP,YAMS,UALPhC,MAAM,qBACL2H,SAAU,EAAAA,SACV,QAAK,oBAAE,EAAA0K,QAAA,EAAAA,UAAA,K,YAEL,EAAArQ,GAAG,mBAAD,Y,+NCZI,QACb1B,MAAO,CAAC,YACRS,KAAM,iBAAO,CACXE,OAAO,EACPqR,gBAAiB,GACjBC,YAAY,EACZV,YAAY,IAEdhO,WAAY,CACV,QAAWqO,IAEbnO,S,mWAAU,EACRyO,YADQ,WAEN,OAAOlR,KAAK4O,SAASuC,OAEpBzO,YAAS,CACVC,kBAAmB,SAACC,GAAD,OAAWA,EAAMC,IAAIF,sBAG5C7C,QAAS,CACPsR,WADO,WAELpR,KAAK8Q,MAAM,aAEbO,iBAJO,WAIerR,KAAKiR,YAAa,GACxCK,aALO,WAMLtR,KAAKL,MAAQ,KACbK,KAAKiR,YAAa,GAEpBM,kBATO,WASc,WACnBvR,KAAKL,MAAQ,KACbK,KAAKuQ,YAAa,EAClBvQ,KAAK2C,kBAAkB6O,cAAc,CACnCC,SAAUzR,KAAKgR,kBAEd1Q,MAAK,SAACoR,GACL,EAAKnB,YAAa,EACdmB,EAAI/R,MACN,EAAKA,MAAQ+R,EAAI/R,OAGnB,EAAKsR,YAAa,EAClB,EAAKH,MAAM,qB,+NCtCrB,IAoJea,GApJH,CACVlS,KAAM,iBAAO,CACXmP,SAAU,CACRgD,WAAW,EACXC,SAAS,EACTV,MAAM,GAERW,WAAY,CACVlP,MAAO,GACPmP,cAAe,IAEjBzB,YAAa,CACX0B,aAAa,EACbzB,YAAY,EACZC,MAAO,IAETyB,YAAa,CACXC,iBAAkB,GAClBxK,IAAK,IAEPsJ,gBAAiB,KACjBmB,gBAAiB,KACjBxS,MAAO,KACPyS,WAAW,IAEb7P,WAAY,CACV,iBAAkB8P,GAClB,YC5B6B,IAAgB,GAAQ,CAAC,CAAC,S,0ENJzD,YAuCM,YAtCJ,YAkBM,MAlBN,GAkBM,CAjBJ,YAA6C,0BAAlC,EAAA3R,GAAG,qBAAD,GAEJ,EAAAwQ,Y,kCADT,YAMS,U,MAJPxS,MAAM,qBACL,QAAK,oBAAE,EAAA0S,YAAA,EAAAA,cAAA,K,YAEL,EAAA1Q,GAAG,mBAAD,IAIC,EAAW,a,cADnB,YAOS,U,MALPhC,MAAM,qBACL2H,SAAU,EAAA4K,WACV,QAAK,oBAAE,EAAAK,cAAA,EAAAA,gBAAA,K,YAEL,EAAA5Q,GAAG,oBAAD,O,qBAKD,EAAU,Y,cADlB,YAWU,G,MATP2F,SAAU,EAAAkK,WACV,UAAS,EAAAgB,kBACT,SAAQ,EAAAF,kB,qBAET,IAAsD,C,wBAAnD,EAAA3Q,GAAG,+CAAgD,KACtD,G,YAAA,YAGC,S,qCAFU,EAAe,mBACxBxB,KAAK,Y,gBADI,EAAA8R,qB,gEAKL,EAAK,O,cADb,YAKM,MALN,GAKM,YADD,EAAArR,OAAK,I,yBKJV,O,OAAU2S,EACV,QAAW1B,IAEbnO,S,mWAAU,EACR8P,YADQ,WAEN,OACGvS,KAAKwS,iBAAmBxS,KAAKyS,qBAC5BzS,KAAK4O,SAASiD,WACZ7R,KAAK4O,SAASuC,OAASnR,KAAK0S,oBAEpCF,gBAPQ,WAQN,MAAiC,KAA1BxS,KAAK8R,WAAWlP,OAA0C,aAA1B5C,KAAK8R,WAAWlP,OAEzD8P,mBAVQ,WAWN,MAAiC,aAA1B1S,KAAK8R,WAAWlP,QAAyB5C,KAAK2S,cAEvDC,WAbQ,WAcN,MAAyC,YAAlC5S,KAAK8R,WAAWC,eAEzBc,WAhBQ,WAiBN,MAAyC,YAAlC7S,KAAK8R,WAAWC,eAEzBY,aAnBQ,WAoBN,MAAyC,cAAlC3S,KAAK8R,WAAWC,eAEzBU,oBAtBQ,WAuBN,OAAQzS,KAAKsQ,YAAYC,YAAcvQ,KAAKsQ,YAAYE,MAAMhL,OAAS,GAEzEsN,sBAzBQ,WA0BN,OAAO9S,KAAKsQ,YAAY0B,cAEvBtP,YAAS,CACVC,kBAAmB,SAACC,GAAD,OAAWA,EAAMC,IAAIF,sBAI5C7C,QAAS,CACPiT,YADO,WAEA/S,KAAK4O,SAASiD,UACjB7R,KAAK8R,WAAWlP,MAAQ,iBACxB5C,KAAKgT,qBAGTA,iBAPO,WAOa,WAIlB,OAHAhT,KAAKsQ,YAAYC,YAAa,EAC9BvQ,KAAKsQ,YAAYE,MAAQ,GAElBxQ,KAAK2C,kBAAkBsQ,yBAC3B3S,MAAK,SAACoR,GACL,EAAKpB,YAAYE,MAAQkB,EAAIlB,MAC7B,EAAKF,YAAYC,YAAa,MAGpC2C,eAjBO,WAkBLlT,KAAKsQ,YAAY0B,aAAc,GAEjCmB,mBApBO,WAoBe,WACpBnT,KAAKgT,mBAAmB1S,MAAK,SAACoR,GAC5B,EAAKpB,YAAY0B,aAAc,MAGnCoB,kBAzBO,WA0BLpT,KAAKsQ,YAAY0B,aAAc,GAIjCqB,SA9BO,WA8BK,WACVrT,KAAK8R,WAAWlP,MAAQ,WACxB5C,KAAK8R,WAAWC,cAAgB,UAChC/R,KAAK2C,kBAAkB2Q,cACpBhT,MAAK,SAACoR,GACL,EAAKO,YAAcP,EACnB,EAAKI,WAAWC,cAAgB,cAGtCwB,aAvCO,WAuCS,WACdvT,KAAKL,MAAQ,KACbK,KAAK2C,kBAAkB6Q,cAAc,CACnCC,MAAOzT,KAAKmS,gBACZV,SAAUzR,KAAKgR,kBAEd1Q,MAAK,SAACoR,GACDA,EAAI/R,MACN,EAAKA,MAAQ+R,EAAI/R,MAGnB,EAAK+T,oBAIXA,cAtDO,WAuDL1T,KAAK8R,WAAWC,cAAgB,WAChC/R,KAAK8R,WAAWlP,MAAQ,WACxB5C,KAAKgR,gBAAkB,KACvBhR,KAAKL,MAAQ,KACbK,KAAK2T,iBAEPC,YA7DO,WA8DL5T,KAAK8R,WAAWC,cAAgB,GAChC/R,KAAK8R,WAAWlP,MAAQ,GACxB5C,KAAKgR,gBAAkB,KACvBhR,KAAKL,MAAQ,MAKTgU,cAtEC,WAsEgB,uIACF,EAAKhR,kBAAkBkR,cADrB,YACjBC,EADiB,QAEVnU,MAFU,wDAGrB,EAAKiP,SAAWkF,EAAOlF,SACvB,EAAKA,SAASgD,WAAY,EAJL,kBAKdkC,GALc,+CAQzBC,QA9IU,WA8IC,WACT/T,KAAK2T,gBAAgBrT,MAAK,WACxB,EAAK8R,WAAY,O,OE7IR,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,+IXLjD,EAAAA,WAAa,EAAAxD,SAASgD,W,cAD9B,YAqIM,MArIN,GAqIM,CAjIJ,YAEM,MAFN,GAEM,CADJ,YAAuC,sBAAhC,EAAAlR,GAAG,uBAAD,KAGX,YA4HM,YA1HK,EAAA8R,gB,kCADT,YAuCM,MAvCN,GAuCM,CAlCJ,YAAwD,sBAAjD,EAAA9R,GAAG,wCAAD,GACT,YAIE,GAHCkO,SAAU,EAAAA,SACV,aAAY,EAAA+E,cACZ,WAAU,EAAAZ,a,iDAEb,GAEW,EAAAnE,SAAgB,S,cAA3B,YAyBM,UAtBK,EAAAkE,sB,kCADT,YAGE,G,MADCkB,eAAc,EAAA1D,a,0BAGR,EAAAwC,sB,kCADT,YAMS,U,MAJPpU,MAAM,qBACL,QAAK,oBAAE,EAAAwU,gBAAA,EAAAA,kBAAA,K,YAEL,EAAAxS,GAAG,6CAAD,IAGI,EAAqB,uB,cAAhC,YAUM,UATJ,YAQU,GAPP2F,SAAU,EAAAiK,YAAYC,WACtB,UAAS,EAAA4C,mBACT,SAAQ,EAAAC,mB,qBAET,IAEI,CAFJ,YAEI,IAFJ,GAEI,YADC,EAAA1S,GAAG,+CAAD,K,2FAOJ,EAAe,iB,cAA1B,YAiFM,UA9EJ,YAA2C,sBAApC,EAAAA,GAAG,2BAAD,GAGA,EAAAgS,mB,kCADT,YAGE,G,MADCsB,eAAc,EAAA1D,a,0BAIT,EAAW,a,cADnB,YAMS,U,MAJP5R,MAAM,qBACL,QAAK,oBAAE,EAAAkV,aAAA,EAAAA,eAAA,K,YAEL,EAAAlT,GAAG,mBAAD,I,mBAIC,EAAW,a,cADnB,YAMS,U,MAJPhC,MAAM,qBACL,QAAK,oBAAE,EAAA2U,UAAA,EAAAA,YAAA,K,YAEL,EAAA3S,GAAG,2BAAD,I,mBAGS,EAAkB,oB,cAAlC,YAsDW,aArDA,EAAU,Y,cAAnB,YAAoE,mBAA5C,EAAAA,GAAG,oCAAD,I,mBAEf,EAAU,Y,cAArB,YAkDM,UAjDJ,YAgDM,MAhDN,GAgDM,CA/CJ,YAWM,MAXN,GAWM,CAVJ,YAA4C,sBAArC,EAAAA,GAAG,4BAAD,GACT,YAAyC,qBAAnC,EAAAA,GAAG,2BAAD,GACR,YAGE,GAFC2H,MAAO,EAAA4J,YAAYC,iBACnBpD,QAAS,CAAEmF,MAAO,M,kBAErB,YAGI,qBAFC,EAAAvT,GAAG,kCAAmC,KACzC,YAAG,EAAAuR,YAAYvK,KAAG,KAItB,YAiCM,MAjCN,GAiCM,CAhCJ,YAAmC,sBAA5B,EAAAhH,GAAG,mBAAD,GACT,YAA2C,qBAArC,EAAAA,GAAG,6BAAD,G,YACR,YAGC,S,qCAFU,EAAe,mBACxBxB,KAAK,Q,gBADI,EAAAiT,mBAIX,YAA8D,qBAAxD,EAAAzR,GAAG,+CAAgD,IAAC,G,YAC1D,YAGC,S,qCAFU,EAAe,mBACxBxB,KAAK,Y,gBADI,EAAA8R,mBAGX,YAaM,MAbN,GAaM,CAZJ,YAKS,UAJPtS,MAAM,qBACL,QAAK,oBAAE,EAAA6U,cAAA,EAAAA,gBAAA,K,YAEL,EAAA7S,GAAG,oCAAD,GAEP,YAKS,UAJPhC,MAAM,qBACL,QAAK,oBAAE,EAAAkV,aAAA,EAAAA,eAAA,K,YAEL,EAAAlT,GAAG,mBAAD,KAID,EAAK,O,cADb,YAKM,MALN,GAKM,YADD,EAAAf,OAAK,I,iIYpBXuU,GArGK,CAClBzU,KADkB,WAEhB,MAAO,CACL0U,SAAU,GACVC,kBAAkB,EAClBC,oBAAqB,GACrBC,cAAc,EACdC,iBAAiB,EACjBC,kCAAmC,GACnCC,oBAAoB,EACpBC,qBAAsB,CAAE,GAAI,GAAI,IAChCC,iBAAiB,EACjBC,qBAAqB,IAGzBxS,QAfkB,WAgBhBpC,KAAKqC,OAAOC,SAAS,gBAEvBC,WAAY,CACVqE,oBACA+K,OACAnP,cAEFC,SAAU,CACRK,KADQ,WAEN,OAAO9C,KAAKqC,OAAOO,MAAMG,MAAMC,aAEjC6R,eAJQ,WAKN,OAAO7U,KAAKqC,OAAOO,MAAM2H,SAASsK,gBAEpCC,YAPQ,WAOO,WACb,OAAO9U,KAAKqC,OAAOO,MAAMkS,YAAYC,OAAOjR,KAAI,SAAAkR,GAC9C,MAAO,CACL7R,GAAI6R,EAAW7R,GACf8R,QAASD,EAAWE,SACpBC,WAAY,IAAIC,KAAKJ,EAAWK,aAAaC,mBAAmBC,KAAcC,wBAAwB,EAAKC,MAAMC,eAKzH5V,QAAS,CACP6V,cADO,WAEL3V,KAAKuU,iBAAkB,GAEzBqB,cAJO,WAIU,WACf5V,KAAKqC,OAAOO,MAAMC,IAAIF,kBAAkBiT,cAAc,CAAEnE,SAAUzR,KAAKwU,oCACpElU,MAAK,SAACoR,GACc,YAAfA,EAAIhO,QACN,EAAKrB,OAAOC,SAAS,UACrB,EAAKuT,QAAQ3N,KAAK,CAAEgG,KAAM,UAE1B,EAAKuG,mBAAqB/C,EAAI/R,UAItCmW,eAfO,WAeW,WACVC,EAAS,CACbtE,SAAUzR,KAAK0U,qBAAqB,GACpCsB,YAAahW,KAAK0U,qBAAqB,GACvCuB,wBAAyBjW,KAAK0U,qBAAqB,IAErD1U,KAAKqC,OAAOO,MAAMC,IAAIF,kBAAkBmT,eAAeC,GACpDzV,MAAK,SAACoR,GACc,YAAfA,EAAIhO,QACN,EAAKiR,iBAAkB,EACvB,EAAKC,qBAAsB,EAC3B,EAAKsB,WAEL,EAAKvB,iBAAkB,EACvB,EAAKC,oBAAsBlD,EAAI/R,WAIvCwW,YAjCO,WAiCQ,WACPJ,EAAS,CACbK,MAAOpW,KAAKmU,SACZ1C,SAAUzR,KAAKqU,qBAEjBrU,KAAKqC,OAAOO,MAAMC,IAAIF,kBAAkBwT,YAAYJ,GACjDzV,MAAK,SAACoR,GACc,YAAfA,EAAIhO,QACN,EAAK4Q,cAAe,EACpB,EAAKF,kBAAmB,IAExB,EAAKE,cAAe,EACpB,EAAKF,iBAAmB1C,EAAI/R,WAIpCuW,OAjDO,WAkDLlW,KAAKqC,OAAOC,SAAS,UACrBtC,KAAK6V,QAAQQ,QAAQ,MAEvBC,YArDO,SAqDMnT,GACPoT,OAAO1F,QAAP,UAAkB7Q,KAAKyV,MAAMe,EAAE,yBAA/B,OACFxW,KAAKqC,OAAOC,SAAS,cAAea,MC7F7B,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,sEdJzD,YAyIM,OAzIAiB,MAAO,EAAA1D,GAAG,0B,CACd,YA+BM,MA/BN,GA+BM,CA9BJ,YAA0C,sBAAnC,EAAAA,GAAG,0BAAD,GACT,YAOM,YANJ,YAAqC,qBAA/B,EAAAA,GAAG,uBAAD,G,YACR,YAIC,S,qCAHU,EAAQ,YACjBxB,KAAK,QACLuX,aAAa,S,gBAFJ,EAAAtC,cAKb,YAOM,YANJ,YAA4C,qBAAtC,EAAAzT,GAAG,8BAAD,G,YACR,YAIC,S,qCAHU,EAAmB,uBAC5BxB,KAAK,WACLuX,aAAa,oB,gBAFJ,EAAApC,yBAKb,YAKS,UAJP3V,MAAM,qBACL,QAAK,oBAAE,EAAAyX,aAAA,EAAAA,eAAA,K,YAEL,EAAAzV,GAAG,kBAAD,GAEE,EAAY,c,cAArB,YAEI,mBADC,EAAAA,GAAG,2BAAD,I,oBAE8B,IAArB,EAAA0T,kB,cAAhB,YAGW,aAFT,YAA8C,qBAAxC,EAAA1T,GAAG,gCAAD,GACR,YAA6B,qBAAvB,EAAA0T,kBAAgB,I,0BAI1B,YAsCM,MAtCN,GAsCM,CArCJ,YAA6C,sBAAtC,EAAA1T,GAAG,6BAAD,GACT,YAMM,YALJ,YAA4C,qBAAtC,EAAAA,GAAG,8BAAD,G,YACR,YAGC,S,qCAFU,EAAAgU,qBAAqB,GAAD,GAC7BxV,KAAK,Y,gBADI,EAAAwV,qBAAqB,QAIlC,YAMM,YALJ,YAAwC,qBAAlC,EAAAhU,GAAG,0BAAD,G,YACR,YAGC,S,qCAFU,EAAAgU,qBAAqB,GAAD,GAC7BxV,KAAK,Y,gBADI,EAAAwV,qBAAqB,QAIlC,YAMM,YALJ,YAAgD,qBAA1C,EAAAhU,GAAG,kCAAD,G,YACR,YAGC,S,qCAFU,EAAAgU,qBAAqB,GAAD,GAC7BxV,KAAK,Y,gBADI,EAAAwV,qBAAqB,QAIlC,YAKS,UAJPhW,MAAM,qBACL,QAAK,oBAAE,EAAAoX,gBAAA,EAAAA,kBAAA,K,YAEL,EAAApV,GAAG,kBAAD,GAEE,EAAe,iB,cAAxB,YAEI,mBADC,EAAAA,GAAG,8BAAD,KAE+B,IAAxB,EAAAkU,qB,cAAd,YAEI,mBADC,EAAAlU,GAAG,mCAAD,I,mBAEE,EAAmB,qB,cAA5B,YAEI,mBADC,EAAAkU,qBAAmB,I,qBAI1B,YA4BM,MA5BN,GA4BM,CA3BJ,YAA0C,sBAAnC,EAAAlU,GAAG,0BAAD,GACT,YAyBQ,QAzBR,GAyBQ,CAxBN,YAMQ,cALN,YAIK,WAHH,YAAsC,sBAA/B,EAAAA,GAAG,sBAAD,GACT,YAAyC,sBAAlC,EAAAA,GAAG,yBAAD,GACT,OAGJ,YAgBQ,e,gBAfN,YAcK,qBAbkB,EAAAoU,YAAdE,I,cADT,YAcK,MAZFtN,IAAKsN,EAAW7R,I,CAEjB,YAAiC,sBAA1B6R,EAAWC,SAAO,GACzB,YAAoC,sBAA7BD,EAAWG,YAAU,GAC5B,YAOK,KAPL,GAOK,CANH,YAKS,UAJPzW,MAAM,qBACL,QAAK,GAAE,EAAA4X,YAAYtB,EAAW7R,K,YAE5B,EAAAzC,GAAG,0BAAD,Y,YAOjB,YAAO,GACP,YAgCM,MAhCN,GAgCM,CA/BJ,YAA4C,sBAArC,EAAAA,GAAG,4BAAD,GACC,EAAA6T,gB,kCAAV,YAEI,mBADC,EAAA7T,GAAG,wCAAD,IAEI,EAAe,iB,cAA1B,YAaM,UAZJ,YAAuD,qBAAjD,EAAAA,GAAG,yCAAD,GACR,YAAiC,qBAA3B,EAAAA,GAAG,mBAAD,G,YACR,YAGC,S,qCAFU,EAAiC,qCAC1CxB,KAAK,Y,gBADI,EAAAsV,qCAGX,YAKS,UAJP9V,MAAM,qBACL,QAAK,oBAAE,EAAAkX,eAAA,EAAAA,iBAAA,K,YAEL,EAAAlV,GAAG,4BAAD,M,oBAGuB,IAAvB,EAAA+T,oB,cAAT,YAEI,mBADC,EAAA/T,GAAG,kCAAD,I,mBAEE,EAAkB,oB,cAA3B,YAEI,mBADC,EAAA+T,oBAAkB,I,mBAGd,EAAAF,gB,kCADT,YAMS,U,MAJP7V,MAAM,qBACL,QAAK,oBAAE,EAAAiX,eAAA,EAAAA,iBAAA,K,YAEL,EAAAjV,GAAG,kBAAD,O,oBetINhC,MAAM,e,IACJA,MAAM,gB,2IAwGNA,MAAM,gB,IAENA,MAAM,qB,IAGJA,MAAM,4B,4BAiCRA,MAAM,gB,IAEJA,MAAM,6B,uCAwCRA,MAAM,gB,IAEJA,MAAM,6B,uCAwCRA,MAAM,gB,IAELA,MAAM,gB,uDCrOTA,MAAM,iB,eAEFA,MAAM,iC,eAQNA,MAAM,iC,4JCJjBC,IAAQC,IACNC,KAGF,IAuHe6X,GAvHM,CACnB1X,MAAO,CACLoN,QAAS,CACPlN,KAAM,CAACI,OAAQiX,OAAOI,SACtBvX,UAAU,GAEZH,cAAe,CACbC,KAAMC,SACNC,UAAU,GAEZwX,eAAgB,CACd1X,KAAM+J,OADQ,mBAGZ,MAAO,CACL4N,YAAa,EACbC,aAAc,EACdC,SAAU,EACVC,SAAS,EACTC,UAAU,EACVC,QAAQ,KAIdC,MAAO,CACLjY,KAAMI,OACNwB,QAAS,6DAEXsW,gBAAiB,CACflY,KAAMI,QAER+X,+BAAgC,CAC9BnY,KAAMI,QAERgY,kBAAmB,CACjBpY,KAAMI,SAGVG,KArCmB,WAsCjB,MAAO,CACL8X,aAASxK,EACTyK,aAASzK,EACTlM,cAAUkM,EACVlN,YAAY,IAGhB4C,SAAU,CACRgV,SADQ,WAEN,OAAOzX,KAAKoX,iBAAmBpX,KAAKU,GAAG,uBAEzCgX,wBAJQ,WAKN,OAAO1X,KAAKqX,gCAAkCrX,KAAKU,GAAG,wCAExDiX,WAPQ,WAQN,OAAO3X,KAAKsX,mBAAqBtX,KAAKU,GAAG,0BAG7CZ,QAAS,CACP8X,QADO,WAED5X,KAAKuX,SACPvX,KAAKuX,QAAQK,UAEf5X,KAAKC,MAAMC,MAAMmI,MAAQ,GACzBrI,KAAKwX,aAAUzK,EACf/M,KAAK8Q,MAAM,UAEb1Q,OATO,WASkB,WAAjByX,IAAiB,yDACvB7X,KAAKH,YAAa,EAClBG,KAAKf,cAAc4Y,GAAY7X,KAAKuX,QAASvX,KAAKN,MAC/CY,MAAK,kBAAM,EAAKsX,aADnB,SAEW,WACP,EAAK/X,YAAa,MAGxBiY,UAjBO,WAkBL9X,KAAKC,MAAMC,MAAM2B,SAEnBkW,cApBO,WAqBL/X,KAAKuX,QAAU,IAAIS,KAAQhY,KAAKC,MAAMgY,IAAKjY,KAAK4W,iBAElDsB,cAvBO,WAwBL,MAA+B,WAAxB,KAAOlY,KAAKoM,SAAuBpM,KAAKoM,QAAU/K,SAAS8W,cAAcnY,KAAKoM,UAEvFgM,SA1BO,WA0BK,WACJC,EAAYrY,KAAKC,MAAMC,MAC7B,GAAuB,MAAnBmY,EAAUlY,OAAuC,MAAtBkY,EAAUlY,MAAM,GAAY,CACzDH,KAAKN,KAAO2Y,EAAUlY,MAAM,GAC5B,IAAImY,EAAS,IAAI/B,OAAOgC,WACxBD,EAAOE,OAAS,SAAChL,GACf,EAAKgK,QAAUhK,EAAE4B,OAAO0E,OACxB,EAAKhD,MAAM,SAEbwH,EAAOG,cAAczY,KAAKN,MAC1BM,KAAK8Q,MAAM,UAAW9Q,KAAKN,KAAM4Y,MAIvCvE,QAhGmB,WAkGjB,IAAM3H,EAAUpM,KAAKkY,gBAChB9L,EAGHA,EAAQsM,iBAAiB,QAAS1Y,KAAK8X,WAFvC9X,KAAK8Q,MAAM,QAAS,+BAAgC,QAKpC9Q,KAAKC,MAAMC,MACnBwY,iBAAiB,SAAU1Y,KAAKoY,WAE5CO,cAAe,WAEb,IAAMvM,EAAUpM,KAAKkY,gBACjB9L,GACFA,EAAQwM,oBAAoB,QAAS5Y,KAAK8X,WAE1B9X,KAAKC,MAAMC,MACnB0Y,oBAAoB,SAAU5Y,KAAKoY,Y,OCrHlC,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,yEFNzD,YA6CM,MA7CN,GA6CM,CA5CO,EAAO,S,cAAlB,YAqCM,UApCJ,YAOM,MAPN,GAOM,CANJ,YAKC,OAJC7X,IAAI,MACHsY,IAAK,EAAArB,QACNsB,IAAI,GACH,OAAI,gCAAO,EAAAf,eAAA,EAAAA,iBAAA,GAAa,Y,cAG7B,YA2BM,MA3BN,GA2BM,CA1BJ,YAME,UALArZ,MAAM,qBACNQ,KAAK,SACJmH,SAAU,EAAAxG,WACV,QAAK,eAAE,EAAAO,U,YACR,YAAiB,a,WAEnB,YAME,UALA1B,MAAM,qBACNQ,KAAK,SACJmH,SAAU,EAAAxG,WACV,QAAK,oBAAE,EAAA+X,SAAA,EAAAA,WAAA,I,YACR,YAAmB,e,WAErB,YAME,UALAlZ,MAAM,qBACNQ,KAAK,SACJmH,SAAU,EAAAxG,WACV,QAAK,eAAE,EAAAO,QAAO,I,YACf,YAAgC,4B,WAG1B,EAAU,Y,cADlB,YAIE,G,MAFAI,KAAA,GACAC,KAAK,kB,2CAIX,YAKC,SAJCF,IAAI,QACJrB,KAAK,OACLR,MAAM,0BACLqa,OAAQ,EAAA5B,O,uoBGtBfxY,IAAQC,IACNE,KACAka,IACAna,KAGF,IAyOeoa,GAzOI,CACjBxZ,KADiB,WAEf,MAAO,CACLyZ,QAASlZ,KAAKqC,OAAOO,MAAMG,MAAMC,YAAYmW,eAC7CC,OAAQC,KAASrZ,KAAKqC,OAAOO,MAAMG,MAAMC,YAAYsW,aACrDC,UAAWvZ,KAAKqC,OAAOO,MAAMG,MAAMC,YAAYwW,OAC/CC,UAAWzZ,KAAKqC,OAAOO,MAAMG,MAAMC,YAAY0W,OAAO5V,KAAI,SAAA6V,GAAK,MAAK,CAAEzL,KAAMyL,EAAMzL,KAAM7F,MAAOsR,EAAMtR,UACrGuR,SAAU5Z,KAAKqC,OAAOO,MAAMG,MAAMC,YAAY6W,UAC9CC,KAAM9Z,KAAKqC,OAAOO,MAAMG,MAAMC,YAAY8W,KAC1CC,IAAK/Z,KAAKqC,OAAOO,MAAMG,MAAMC,YAAY+W,IACzCC,sBAAsB,EACtBC,iBAAiB,EACjBC,qBAAqB,EACrBC,OAAQ,KACRC,cAAe,KACfC,WAAY,KACZC,kBAAmB,KACnBC,cAAeva,KAAKqC,OAAOO,MAAMG,MAAMC,YAAYwX,UAAY,KAGnEjY,WAAY,CACVkY,mBACA/D,gBACAgE,gBACArQ,eACAzD,oBACApE,aACAkM,kBACAiM,gCAEFlY,SAAU,OACRK,KADQ,WAEN,OAAO9C,KAAKqC,OAAOO,MAAMG,MAAMC,cAE9B2K,MAJG,IAKNiN,mBALQ,WAMN,OAAOC,aAAU,CACfC,MAAO,GAAF,YACA9a,KAAKqC,OAAOO,MAAM2H,SAASuQ,OAD3B,KAEA9a,KAAKqC,OAAOO,MAAM2H,SAASwQ,cAEhCC,MAAOhb,KAAKqC,UAGhB4Y,eAdQ,WAeN,OAAOJ,aAAU,CAAEC,MAAO,GAAF,YACnB9a,KAAKqC,OAAOO,MAAM2H,SAASuQ,OADR,KAEnB9a,KAAKqC,OAAOO,MAAM2H,SAASwQ,iBAGlCG,cApBQ,WAqBN,OAAOL,aAAU,CAAEG,MAAOhb,KAAKqC,UAEjC8Y,aAvBQ,WAwBN,OAAOnb,KAAKqC,OAAOO,MAAM2H,SAAS4Q,cAEpCC,UA1BQ,WA2BN,OAAOpb,KAAKmb,aAAenb,KAAKmb,aAAaC,UAAY,GAE3DC,cA7BQ,WA8BN,OAAOrb,KAAKqC,OAAOO,MAAM2H,SAAS+Q,OAAStb,KAAKqC,OAAOO,MAAM2H,SAAS8Q,eAExEE,cAhCQ,WAiCN,OAAOvb,KAAKqC,OAAOO,MAAM2H,SAAS+Q,OAAStb,KAAKqC,OAAOO,MAAM2H,SAASgR,eAExEC,gBAnCQ,WAoCN,IAAMC,EAAazb,KAAKqC,OAAOO,MAAM2H,SAAS8Q,cAC9C,OAASrb,KAAKqC,OAAOO,MAAMG,MAAMC,YAAY0Y,mBAC7C1b,KAAKqC,OAAOO,MAAMG,MAAMC,YAAY0Y,kBAAkB5U,SAAS2U,IAEjEE,gBAxCQ,WAyCN,IAAMC,EAAa5b,KAAKqC,OAAOO,MAAM2H,SAASgR,cAC9C,OAASvb,KAAKqC,OAAOO,MAAMG,MAAMC,YAAY6Y,aAC7C7b,KAAKqC,OAAOO,MAAMG,MAAMC,YAAY6Y,YAAY/U,SAAS8U,IAE3DE,oBA7CQ,WA8CN,OAAS9b,KAAKqC,OAAOO,MAAMG,MAAMC,YAAY+Y,kBAE/CC,aAhDQ,WAiDN,IAAMnD,EAAM7Y,KAAKqC,OAAOO,MAAMG,MAAMC,YAAYiZ,2BAChD,OAASpD,GAAO7Y,KAAKqb,eAEvBa,aApDQ,WAqDN,IAAMrD,EAAM7Y,KAAKqC,OAAOO,MAAMG,MAAMC,YAAY6Y,YAChD,OAAShD,GAAO7Y,KAAKub,iBAGzBzb,QAAS,CACPqc,cADO,WACU,WACTpG,EAAS,CACbqG,KAAMpc,KAAKoZ,OACXI,OAAQxZ,KAAKuZ,UAGb8C,aAAcrc,KAAKkZ,QACnBoD,kBAAmBtc,KAAKyZ,UAAU9U,QAAO,SAAA4X,GAAE,OAAU,MAANA,KAC/CxC,IAAK/Z,KAAK+Z,IACVF,UAAW7Z,KAAK4Z,UAId5Z,KAAKua,gBACPxE,EAAOyE,SAAWjF,KAAciH,wBAAwBxc,KAAKua,gBAG/Dva,KAAKqC,OAAOO,MAAMC,IAAIF,kBACnBwZ,cAAc,CAAEpG,WAChBzV,MAAK,SAACwC,GACL,EAAK2W,UAAUtR,OAAOrF,EAAK4W,OAAOlU,QAClCiX,KAAM,EAAKhD,UAAW3W,EAAK4W,QAC3B,EAAKrX,OAAOqa,OAAO,cAAe,CAAC5Z,IACnC,EAAKT,OAAOqa,OAAO,iBAAkB5Z,OAG3C6Z,UA3BO,SA2BIC,GACT5c,KAAK6c,gBAAkBD,GAEzBE,SA9BO,WA+BL,OAAI9c,KAAKyZ,UAAUjU,OAASxF,KAAKob,YAC/Bpb,KAAKyZ,UAAUvR,KAAK,CAAEgG,KAAM,GAAI7F,MAAO,MAChC,IAIX0U,YArCO,SAqCMC,EAAOC,GAClBjd,KAAKkd,QAAQld,KAAKyZ,UAAWuD,IAE/BG,WAxCO,SAwCKC,EAAM5P,GAAG,WACb9N,EAAO8N,EAAE4B,OAAOjP,MAAM,GAC5B,GAAKT,EACL,GAAIA,EAAKsC,KAAOhC,KAAKqC,OAAOO,MAAM2H,SAAS6S,EAAO,SAAlD,CACE,IAAMC,EAAWC,KAAsBC,eAAe7d,EAAKsC,MACrDwb,EAAcF,KAAsBC,eAAevd,KAAKqC,OAAOO,MAAM2H,SAAS6S,EAAO,UAC3Fpd,KAAKqC,OAAOC,SAAS,mBAAoB,CACvCmb,WAAY,uBACZC,YAAa,CACX1d,KAAKU,GAAG,4BAA6B,CACnC2c,SAAUA,EAASM,IACnBC,aAAcP,EAASQ,KACvBL,YAAaA,EAAYG,IACzBG,gBAAiBN,EAAYK,QAGjCE,MAAO,cAbX,CAkBA,IAAMzF,EAAS,IAAIC,WACnBD,EAAOE,OAAS,YAAgB,IACxBP,EADwB,EAAb7I,OACE0E,OACnB,EAAKsJ,EAAO,WAAanF,EACzB,EAAKmF,GAAQ1d,GAEf4Y,EAAOG,cAAc/Y,KAEvBse,YArEO,WAsEazH,OAAO1F,QAAQ7Q,KAAKU,GAAG,mCAEvCV,KAAKie,kBAAalR,EAAW,KAGjCmR,YA3EO,WA4Ea3H,OAAO1F,QAAQ7Q,KAAKU,GAAG,mCAEvCV,KAAKme,aAAa,KAGtBC,gBAjFO,WAkFa7H,OAAO1F,QAAQ7Q,KAAKU,GAAG,uCAEvCV,KAAKqe,iBAAiB,KAG1BJ,aAvFO,SAuFO1G,EAAS7X,GACrB,IAAM4e,EAAOte,KACb,OAAO,IAAIwL,SAAQ,SAACC,EAASb,GAC3B,SAAS2T,EAAcC,EAAQC,GAC7BH,EAAKjc,OAAOO,MAAMC,IAAIF,kBAAkB+b,oBAAoB,CAAEF,SAAQC,eACnEne,MAAK,SAACwC,GACLwb,EAAKjc,OAAOqa,OAAO,cAAe,CAAC5Z,IACnCwb,EAAKjc,OAAOqa,OAAO,iBAAkB5Z,GACrC2I,OAJJ,OAMS,SAAC9L,GACN2e,EAAKK,mBAAmBhf,GACxBiL,EAAOjL,MAIT4X,EACFA,EAAQqH,mBAAmBC,QAAO,SAACpf,GAAD,OAAU8e,EAAa9e,EAAMC,EAAKwO,QAAOxO,EAAKR,MAEhFqf,EAAa7e,EAAMA,EAAKwO,UAI9BiQ,aA9GO,SA8GOhE,GAAQ,YACfna,KAAKoa,eAA4B,KAAXD,KAE3Bna,KAAKia,iBAAkB,EACvBja,KAAKqC,OAAOO,MAAMC,IAAIF,kBAAkB+b,oBAAoB,CAAEvE,WAC3D7Z,MAAK,SAACwC,GACL,EAAKT,OAAOqa,OAAO,cAAe,CAAC5Z,IACnC,EAAKT,OAAOqa,OAAO,iBAAkB5Z,GACrC,EAAKsX,cAAgB,QAJzB,MAMSpa,KAAK2e,oBANd,SAOW,WAAQ,EAAK1E,iBAAkB,OAE5CoE,iBA3HO,SA2HWhE,GAAY,YACvBra,KAAKsa,mBAAoC,KAAfD,KAE/Bra,KAAKka,qBAAsB,EAC3Bla,KAAKqC,OAAOO,MAAMC,IAAIF,kBAAkB+b,oBAAoB,CAAErE,eAC3D/Z,MAAK,SAACb,GACL,EAAK4C,OAAOqa,OAAO,cAAe,CAACjd,IACnC,EAAK4C,OAAOqa,OAAO,iBAAkBjd,GACrC,EAAK6a,kBAAoB,QAJ7B,MAMSta,KAAK2e,oBANd,SAOW,WAAQ,EAAKzE,qBAAsB,OAEhDyE,mBAxIO,SAwIahf,GAClBK,KAAKqC,OAAOC,SAAS,mBAAoB,CACvCmb,WAAY,uBACZC,YAAa,CAAC/d,EAAMmf,SACpBf,MAAO,a,OCtPA,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,2OLNzD,YAgSM,MAhSN,GAgSM,CA/RJ,YAuGM,MAvGN,GAuGM,CAtGJ,YAAsC,sBAA/B,EAAArd,GAAG,sBAAD,GACT,YAAgC,qBAA1B,EAAAA,GAAG,kBAAD,GACR,YAUa,G,WATF,EAAAwY,Q,qCAAA,EAAO,WAChB6F,sBAAA,GACCC,QAAS,EAAA/D,gB,qBAEV,IAIC,C,YAJD,YAIC,SAHC9X,GAAG,W,qCACM,EAAO,WAChBzE,MAAM,gB,gBADG,EAAAwa,a,iCAIb,YAA+B,qBAAzB,EAAAxY,GAAG,iBAAD,GACR,YASa,G,WARF,EAAA0Y,O,qCAAA,EAAM,UACf2F,sBAAA,GACCC,QAAS,EAAApE,oB,qBAEV,IAGE,C,YAHF,YAGE,Y,qCAFS,EAAM,UACflc,MAAM,qB,gBADG,EAAA0a,Y,iCAIK,UAAT,EAAAU,MAA6B,cAAT,EAAAA,M,cAA7B,YASI,QARF,YAOW,G,WAPQ,EAAAF,S,qCAAA,EAAQ,a,qBACzB,IAEW,CAFc,UAAT,EAAAE,M,cAAhB,YAEW,a,wBADN,EAAApZ,GAAG,8BAAD,I,wBAEkB,cAAT,EAAAoZ,M,cAAhB,YAEW,a,wBADN,EAAApZ,GAAG,kCAAD,I,uEAIA,EAAA0a,UAAY,G,cAAvB,YAgDM,UA/CJ,YAAgD,qBAA1C,EAAA1a,GAAG,kCAAD,I,gBACR,YAqCM,qBApCa,EAAA+Y,UAAS,CAAlBwF,EAAGjT,K,cADb,YAqCM,OAnCHtE,IAAKsE,EACNtN,MAAM,kB,CAEN,YAUa,G,WATF,EAAA+a,UAAUzN,GAAGkC,K,yBAAb,EAAAuL,UAAUzN,GAAO,OAC1B+S,sBAAA,GACAG,oBAAA,GACCF,QAAS,EAAA9D,e,qBAEV,IAGC,C,YAHD,YAGC,S,yBAFU,EAAAzB,UAAUzN,GAAO,OACzBpH,YAAa,EAAAlE,GAAG,iC,iBADR,EAAA+Y,UAAUzN,GAAGkC,U,0DAI1B,YAUa,G,WATF,EAAAuL,UAAUzN,GAAG3D,M,yBAAb,EAAAoR,UAAUzN,GAAQ,QAC3B+S,sBAAA,GACAG,oBAAA,GACCF,QAAS,EAAA9D,e,qBAEV,IAGC,C,YAHD,YAGC,S,yBAFU,EAAAzB,UAAUzN,GAAQ,QAC1BpH,YAAa,EAAAlE,GAAG,kC,iBADR,EAAA+Y,UAAUzN,GAAG3D,W,0DAI1B,YASS,UARP3J,MAAM,gDACL,QAAK,GAAE,EAAAqe,YAAY/Q,I,CAIZ,EAAAyN,UAAUjU,OAAS,G,cAD3B,YAGE,G,MADA/E,KAAK,W,oCAKH,EAAAgZ,UAAUjU,OAAS,EAAA4V,W,cAD3B,YAOS,U,MALP1c,MAAM,mDACL,QAAK,oBAAE,EAAAoe,UAAA,EAAAA,YAAA,K,CAER,YAAsB,GAAdrc,KAAK,S,YAAS,IACtB,YAAG,EAAAC,GAAG,sCAAD,M,yCAGT,YAII,UAHF,YAEW,G,WAFQ,EAAAqZ,I,qCAAA,EAAG,Q,qBACpB,IAAwB,C,wBAArB,EAAArZ,GAAG,iBAAD,K,yBAGT,YAMI,UALF,YAIE,GAHCye,cAAa,EAAAze,GAAG,2BAChB8Z,SAAU,EAAAD,cACV6E,eAAcja,GAAO,EAAAoV,cAAgBpV,G,oDAG1C,YAMS,UALNkB,SAAU,EAAA6S,SAA8B,IAAnB,EAAAA,QAAQ1T,OAC9B9G,MAAM,qBACL,QAAK,oBAAE,EAAAyd,eAAA,EAAAA,iBAAA,K,YAEL,EAAAzb,GAAG,kBAAD,QAGT,YAqCM,MArCN,GAqCM,CApCJ,YAAoC,sBAA7B,EAAAA,GAAG,oBAAD,GACT,YAEI,IAFJ,GAEI,YADC,EAAAA,GAAG,qCAAD,GAEP,YAgBM,MAhBN,GAgBM,CAfJ,YAGC,OAFEmY,IAAK,EAAA/V,KAAKmZ,2BACXvd,MAAM,kB,YAGC,EAAA8c,iBAAmB,EAAAxB,sB,cAD5B,YAUS,U,MARNqF,MAAO,EAAA3e,GAAG,yBACV,QAAK,oBAAE,EAAAsd,aAAA,EAAAA,eAAA,IACRtf,MAAM,gC,CAEN,YAGE,GAFA+B,KAAK,QACLvB,KAAK,Y,4BAIX,YAA0C,qBAApC,EAAAwB,GAAG,4BAAD,G,YACR,YAOS,UALPyC,GAAG,cACHzE,MAAM,qBACNQ,KAAK,U,YAEF,EAAAwB,GAAG,4BAAD,M,KALG,EAAAsZ,wBAOV,YAKE,GAJA5N,QAAQ,eACP/H,iBAAgB,EAAA4Z,aAChB,OAAI,eAAE,EAAAjE,sBAAqB,GAC3B,QAAK,iBAAE,EAAAA,sBAAqB,I,6BAGjC,YAyCM,MAzCN,GAyCM,CAxCJ,YAA4C,sBAArC,EAAAtZ,GAAG,4BAAD,GACT,YAaM,MAbN,GAaM,CAZJ,YAA6B,OAAvBmY,IAAK,EAAA/V,KAAK+Y,a,WAEP,EAAAF,gB,kCADT,YAUS,U,MARPjd,MAAM,+BACL2gB,MAAO,EAAA3e,GAAG,iCACV,QAAK,sBAAE,EAAAwd,aAAA,EAAAA,eAAA,K,CAER,YAGE,GAFAzd,KAAK,QACLvB,KAAK,Y,SAIX,YAAkD,qBAA5C,EAAAwB,GAAG,oCAAD,GAEA,EAAa,e,cADrB,YAIC,O,MAFChC,MAAM,4BACLma,IAAK,EAAAuB,e,+BAER,YAKM,YAJJ,YAGC,SAFClb,KAAK,OACJ,SAAM,iBAAE,EAAAie,WAAW,SAAUmC,K,WAI1B,EAAe,iB,cADvB,YAKE,G,MAHA5gB,MAAM,YACN8B,KAAA,GACAC,KAAK,kBAGM,EAAa,e,cAD1B,YAMS,U,MAJP/B,MAAM,qBACL,QAAK,iBAAE,EAAAyf,aAAa,EAAAhE,U,YAElB,EAAAzZ,GAAG,kBAAD,I,qBAGT,YAyCM,MAzCN,GAyCM,CAxCJ,YAAgD,sBAAzC,EAAAA,GAAG,gCAAD,GACT,YAaM,MAbN,GAaM,CAZJ,YAAkC,OAA5BmY,IAAK,EAAA/V,KAAKiZ,kB,WAEP,EAAAD,oB,kCADT,YAUS,U,MARPpd,MAAM,+BACL2gB,MAAO,EAAA3e,GAAG,qCACV,QAAK,sBAAE,EAAA0d,iBAAA,EAAAA,mBAAA,K,CAER,YAGE,GAFA3d,KAAK,QACLvB,KAAK,Y,SAIX,YAAsD,qBAAhD,EAAAwB,GAAG,wCAAD,GAEA,EAAiB,mB,cADzB,YAIC,O,MAFChC,MAAM,4BACLma,IAAK,EAAAyB,mB,+BAER,YAKM,YAJJ,YAGC,SAFCpb,KAAK,OACJ,SAAM,iBAAE,EAAAie,WAAW,aAAcmC,K,WAI9B,EAAmB,qB,cAD3B,YAKE,G,MAHA5gB,MAAM,YACN8B,KAAA,GACAC,KAAK,kBAGM,EAAiB,mB,cAD9B,YAMS,U,MAJP/B,MAAM,qBACL,QAAK,iBAAE,EAAA2f,iBAAiB,EAAAhE,c,YAEtB,EAAA3Z,GAAG,kBAAD,I,qBAGT,YA4DM,MA5DN,GA4DM,CA3DJ,YAA6C,sBAAtC,EAAAA,GAAG,6BAAD,GACT,YAyDK,KAzDL,GAyDK,CAxDH,YAIK,WAHH,YAEiB,GAFDgM,KAAK,qBAAmB,C,oBACtC,IAA6C,C,wBAA1C,EAAAhM,GAAG,sCAAD,K,QAGT,YAIK,WAHH,YAEiB,GAFDgM,KAAK,2BAAyB,C,oBAC5C,IAAiC,C,wBAA9B,EAAAhM,GAAG,0BAAD,K,QAGT,YAIK,WAHH,YAEiB,GAFDgM,KAAK,iCAA+B,C,oBAClD,IAAyC,C,wBAAtC,EAAAhM,GAAG,kCAAD,K,QAGT,YAIK,WAHH,YAEiB,GAFDgM,KAAK,4BAA0B,C,oBAC7C,IAA+C,C,wBAA5C,EAAAhM,GAAG,wCAAD,K,QAGT,YAiBK,WAhBH,YAEiB,GAFDgM,KAAK,4BAA0B,C,oBAC7C,IAA+C,C,wBAA5C,EAAAhM,GAAG,wCAAD,K,MAEP,YAYK,MAXHhC,MAAK,aAAC,0BAAyB,YACV,EAAA6gB,8B,CAErB,YAOK,WANH,YAKiB,GAJf7S,KAAK,gCACJrG,UAAW,EAAAkZ,0B,qBAEZ,IAAqD,C,wBAAlD,EAAA7e,GAAG,8CAAD,K,6BAKb,YAiBK,WAhBH,YAEiB,GAFDgM,KAAK,0BAAwB,C,oBAC3C,IAA6C,C,wBAA1C,EAAAhM,GAAG,sCAAD,K,MAEP,YAYK,MAXHhC,MAAK,aAAC,0BAAyB,YACV,EAAA8gB,4B,CAErB,YAOK,WANH,YAKiB,GAJf9S,KAAK,8BACJrG,UAAW,EAAAmZ,wB,qBAEZ,IAAmD,C,wBAAhD,EAAA9e,GAAG,4CAAD,K,8DMxRZhC,MAAM,gB,IAELA,MAAM,gB,qCA2HPA,MAAM,gB,IAELA,MAAM,gB,UAYNA,MAAM,2B,IAuEJA,MAAM,2B,UAyCFA,MAAM,e,IA0BZA,MAAM,2B,sDAgEVA,MAAM,gB,IAGFA,MAAM,gB,IAEC2Q,IAAI,e,0OC/UrB1Q,IAAQC,IACN6gB,KAGF,IA6EeC,GA7EI,CACjBjgB,KADiB,WACT,WACN,MAAO,CACLkgB,mBAAoB,CAAC,QAAS,OAAQ,SAAS7b,KAAI,SAAA6L,GAAI,MAAK,CAC1DjI,IAAKiI,EACLtH,MAAOsH,EACPvL,MAAO,EAAK1D,GAAL,gCAA0C,UAATiP,EAAmB,WAAaA,QAE1EiQ,2BAA4B,CAAC,OAAQ,UAAU9b,KAAI,SAAA6L,GAAI,MAAK,CAC1DjI,IAAKiI,EACLtH,MAAOsH,EACPvL,MAAO,EAAK1D,GAAL,wCAAyCiP,QAElDkQ,sCAAuC,CAAC,QAAS,UAAU/b,KAAI,SAAA6L,GAAI,MAAK,CACtEjI,IAAKiI,EACLtH,MAAOsH,EACPvL,MAAO,EAAK1D,GAAL,qDAAsDiP,QAE/DmQ,0BAA2B,CAAC,QAAS,kBAAmB,QAAQhc,KAAI,SAAA6L,GAAI,MAAK,CAC3EjI,IAAKiI,EACLtH,MAAOsH,EACPvL,MAAO,EAAK1D,GAAL,wCAAyCiP,QAElDoQ,uBAAwB,CAAC,OAAQ,gBAAiB,YAAYjc,KAAI,SAAA6L,GAAI,MAAK,CACzEjI,IAAKiI,EACLtH,MAAOsH,EACPvL,MAAO,EAAK1D,GAAL,qCAAsCiP,QAE/CqQ,oBAEA/W,OAAOgX,yBAAyBC,iBAAiBC,UAAW,gBAE5DlX,OAAOgX,yBAAyBG,iBAAiBD,UAAW,gCAE5DlX,OAAOgX,yBAAyBG,iBAAiBD,UAAW,iBAGhE5d,WAAY,CACVmM,kBACAkB,iBACAC,kBACA8K,+BACAF,mBACAjO,wBAEF/J,S,mWAAU,EACR4d,YADQ,WAEN,OAAOrgB,KAAKqC,OAAOO,MAAM2H,SAAS8V,aAAe,IAEnDC,mBAJQ,WAIc,WACpB,OAAOtgB,KAAKqgB,YAAYvc,KAAI,SAAAyc,GAAM,MAAK,CACrC7Y,IAAK6Y,EACLlY,MAAOkY,EACPnc,MAAO,EAAK1D,GAAL,oCAAqC6f,EAArC,YAGXC,6BAXQ,WAW0B,OAAOxgB,KAAKqC,OAAOO,MAAM2H,SAASkW,2BACpEC,sBAZQ,WAaN,OAAO1gB,KAAKqC,OAAOO,MAAM2H,SAAS8P,aAC/Bra,KAAKqC,OAAOO,MAAMG,MAAMC,YAAY+Y,kBAEzC4E,wBAhBQ,WAgBqB,OAAO3gB,KAAKqC,OAAOO,MAAM2H,SAASqW,gBAC/DpG,SAAU,CACRxQ,IAAK,WAAc,OAAOhK,KAAKqC,OAAOuD,QAAQoI,aAAa6S,mBAC3D5S,IAAK,SAAU9I,GACbnF,KAAKqC,OAAOC,SAAS,YAAa,CAAE4L,KAAM,oBAAqB7F,MAAOlD,OAGvEwI,MAEL7N,QAAS,CACPghB,mBADO,SACazY,GAClBrI,KAAKqC,OAAOC,SAAS,sBAAuB,CAAE4L,KAAM,eAAgB7F,aClF3D,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,yRFJzD,YAibM,OAjbAjE,MAAO,EAAA1D,GAAG,qB,CACd,YA4HM,MA5HN,GA4HM,CA3HJ,YAAuC,sBAAhC,EAAAA,GAAG,uBAAD,GACT,YAyHK,KAzHL,GAyHK,CAxHH,YAMK,WALH,YAIE,GAHCye,cAAa,EAAAze,GAAG,8BAChB8Z,SAAU,EAAAA,SACV4E,eAAcja,GAAO,EAAAqV,SAAWrV,G,oDAG3B,EAA4B,8B,cAAtC,YAIK,SAHH,YAEiB,GAFDuH,KAAK,WAAS,C,oBAC5B,IAA6B,C,wBAA1B,EAAAhM,GAAG,sBAAD,K,4BAGT,YAIK,WAHH,YAEiB,GAFDgM,KAAK,gBAAc,C,oBACjC,IAAkC,C,wBAA/B,EAAAhM,GAAG,2BAAD,K,QAGC,EAAqB,uB,cAA/B,YAIK,SAHH,YAEiB,GAFDgM,KAAK,yBAAuB,C,oBAC1C,IAAmC,C,wBAAhC,EAAAhM,GAAG,4BAAD,K,4BAGT,YAIK,WAHH,YAEiB,GAFDgM,KAAK,YAAU,C,oBAC7B,IAA8B,C,wBAA3B,EAAAhM,GAAG,uBAAD,K,QAGT,YAiBK,WAhBH,YAEiB,GAFDgM,KAAK,aAAW,C,oBAC9B,IAA8B,C,wBAA3B,EAAAhM,GAAG,uBAAD,K,MAEP,YAYK,MAXHhC,MAAK,aAAC,0BAAyB,YACV,EAAA0R,e,CAErB,YAOK,WANH,YAKiB,GAJf1D,KAAK,mBACJrG,UAAW,EAAA+J,W,qBAEZ,IAAuC,C,wBAApC,EAAA1P,GAAG,gCAAD,K,6BAKb,YAOK,WANH,YAKiB,GAJfgM,KAAK,kBACLW,OAAO,K,qBAEP,IAAoC,C,wBAAjC,EAAA3M,GAAG,6BAAD,K,QAGT,YAOK,WANH,YAKiB,GAJfgM,KAAK,mBACLW,OAAO,K,qBAEP,IAAsC,C,wBAAnC,EAAA3M,GAAG,+BAAD,K,QAGT,YAIK,WAHH,YAEiB,GAFDgM,KAAK,wBAAsB,C,oBACzC,IAA2C,C,wBAAxC,EAAAhM,GAAG,oCAAD,K,QAGT,YAIK,WAHH,YAEiB,GAFDgM,KAAK,kBAAgB,C,oBACnC,IAAoC,C,wBAAjC,EAAAhM,GAAG,6BAAD,K,QAGT,YASK,WAPK,EAAI,M,cADZ,YAOgB,G,MALdyC,GAAG,kBACHuJ,KAAK,kBACJoC,QAAS,EAAAiR,wB,qBAEV,IAAsC,C,wBAAnC,EAAArf,GAAG,+BAAD,K,0CAGT,YAIK,WAHH,YAEiB,GAFDgM,KAAK,qBAAmB,C,oBACtC,IAAwC,C,wBAArC,EAAAhM,GAAG,iCAAD,K,QAGT,YAIK,WAHH,YAEiB,GAFDgM,KAAK,sBAAoB,C,oBACvC,IAAyC,C,wBAAtC,EAAAhM,GAAG,kCAAD,K,QAGT,YAIK,WAHH,YAEiB,GAFDgM,KAAK,sBAAoB,C,oBACvC,IAAyC,C,wBAAtC,EAAAhM,GAAG,kCAAD,K,QAGT,YAOK,WANH,YAKiB,GAJfgM,KAAK,0BACLW,OAAO,K,qBAEP,IAA4C,C,wBAAzC,EAAA3M,GAAG,qCAAD,K,QAGT,YAOK,WANH,YAKiB,GAJfgM,KAAK,6BACLW,OAAO,K,qBAEP,IAAkD,C,wBAA/C,EAAA3M,GAAG,2CAAD,K,QAGC,EAAuB,yB,cAAjC,YAOK,SANH,YAKiB,GAJfgM,KAAK,eACLW,OAAO,K,qBAEP,IAAkC,C,wBAA/B,EAAA3M,GAAG,2BAAD,K,gCAKb,YAoNM,MApNN,GAoNM,CAnNJ,YAA4C,sBAArC,EAAAA,GAAG,4BAAD,GACT,YAiNK,KAjNL,GAiNK,CAhNH,YAQK,WAPH,YAMgB,GALdyC,GAAG,sBACHuJ,KAAK,sBACJoC,QAAS,EAAA8Q,4B,qBAEV,IAAyC,C,wBAAtC,EAAAlf,GAAG,kCAAD,K,sBAIuB,WAAxB,EAAAqgB,qB,cADR,YAoCK,KApCL,GAoCK,CAhCH,YAIK,WAHH,YAEiB,GAFDrU,KAAK,4BAA0B,C,oBAC7C,IAAkC,C,wBAA/B,EAAAhM,GAAG,2BAAD,K,QAGT,YAOK,WANH,YAKiB,GAJfgM,KAAK,gCACJW,OAAQ,G,qBAET,IAAwC,C,wBAArC,EAAA3M,GAAG,iCAAD,K,QAGT,YAQK,WAPH,YAMiB,GALfgM,KAAK,mBACJuC,IAAK,EACL5B,OAAQ,G,qBAET,IAAwC,C,wBAArC,EAAA3M,GAAG,iCAAD,K,QAGT,YASK,WARH,YAOgB,GANdyC,GAAG,iCACHuJ,KAAK,iCACJoC,QAAS,EAAA+Q,sCACTxS,OAAQ,G,qBAET,IAAsD,C,wBAAnD,EAAA3M,GAAG,+CAAD,K,4CAIX,YAIK,WAHH,YAEiB,GAFDgM,KAAK,8BAA4B,C,oBAC/C,IAAqC,C,wBAAlC,EAAAhM,GAAG,8BAAD,K,QAGT,YAOK,WANH,YAKiB,GAJfgM,KAAK,2BACLW,OAAO,K,qBAEP,IAAgD,C,wBAA7C,EAAA3M,GAAG,yCAAD,K,QAGT,YAQK,WANK,EAAI,M,cADZ,YAMiB,G,MAJfgM,KAAK,8BACLW,OAAO,K,qBAEP,IAA6C,C,wBAA1C,EAAA3M,GAAG,sCAAD,K,4BAGT,YAAyC,sBAAlC,EAAAA,GAAG,yBAAD,GACT,YAOK,WANH,YAKiB,GAJfgM,KAAK,gBACLW,OAAO,K,qBAEP,IAAoC,C,wBAAjC,EAAA3M,GAAG,6BAAD,K,QAGT,YAIK,WAHH,YAEiB,GAFDgM,KAAK,YAAU,C,oBAC7B,IAAsC,C,wBAAnC,EAAAhM,GAAG,+BAAD,K,QAGT,YAmBK,KAnBL,GAmBK,CAlBH,YAQK,WAPH,YAMiB,GALfgM,KAAK,eACLW,OAAO,IACNhH,UAAW,EAAA2a,U,qBAEZ,IAAmC,C,wBAAhC,EAAAtgB,GAAG,4BAAD,K,uBAGT,YAQK,WAPH,YAMiB,GALfgM,KAAK,kBACLW,OAAO,IACNhH,UAAW,EAAA2a,U,qBAEZ,IAAuC,C,wBAApC,EAAAtgB,GAAG,gCAAD,K,yBAIX,YA2BK,WA1BH,YAKiB,GAJfgM,KAAK,YACLW,OAAO,K,qBAEP,IAA+B,C,wBAA5B,EAAA3M,GAAG,wBAAD,K,MAEP,YAmBK,MAlBHhC,MAAK,aAAC,0BAAyB,YACV,EAAA0R,e,CAErB,YAcK,WAbH,YAMiB,GALf1D,KAAK,sBACLW,OAAO,IACNhH,UAAW,EAAA4a,YAAc,EAAAjB,qB,qBAE1B,IAA2C,C,wBAAxC,EAAAtf,GAAG,oCAAD,K,qBAGE,EAAAsf,oB,kCADT,YAKM,MALN,GAKM,CADJ,YAAuB,GAAfvf,KAAK,U,YAAU,KAAE,YAAG,EAAAC,GAAG,kCAAD,S,KAKtC,YAOK,WANH,YAKiB,GAJfgM,KAAK,oBACLW,OAAO,K,qBAEP,IAAyC,C,wBAAtC,EAAA3M,GAAG,kCAAD,K,QAGT,YAA2C,sBAApC,EAAAA,GAAG,2BAAD,GACT,YAQK,WAPH,YAMgB,GALdyC,GAAG,qBACHuJ,KAAK,qBACJoC,QAAS,EAAAgR,2B,qBAEV,IAAyC,C,wBAAtC,EAAApf,GAAG,kCAAD,K,sBAGT,YAWK,KAXL,GAWK,CAR8B,UAAvB,EAAAwgB,oB,cAAV,YAOK,SANH,YAKiB,GAJfxU,KAAK,yBACLW,OAAO,K,qBAEP,IAA8C,C,wBAA3C,EAAA3M,GAAG,uCAAD,K,8BAIX,YAOK,WANH,YAKiB,GAJfgM,KAAK,YACLW,OAAO,K,qBAEP,IAAgC,C,wBAA7B,EAAA3M,GAAG,yBAAD,K,QAGT,YAIK,WAHH,YAEiB,GAFDgM,KAAK,yBAAuB,C,oBAC1C,IAA6C,C,wBAA1C,EAAAhM,GAAG,sCAAD,K,QAGT,YAOK,WANH,YAKiB,GAJfgM,KAAK,wBACLW,OAAO,K,qBAEP,IAA6C,C,wBAA1C,EAAA3M,GAAG,sCAAD,K,QAGC,EAAI,M,cAAd,YAOK,SANH,YAKiB,GAJfgM,KAAK,uBACLW,OAAO,K,qBAEP,IAA4C,C,wBAAzC,EAAA3M,GAAG,qCAAD,K,4BAGC,EAAA4M,YAAc,G,cAAxB,YAEK,oBADA,EAAA5M,GAAG,iBAAD,I,mBAEP,YAOK,WANH,YAKiB,GAJfgM,KAAK,YACLW,OAAO,K,qBAEP,IAA8B,C,wBAA3B,EAAA3M,GAAG,uBAAD,K,QAGC,EAAI,M,cAAd,YAOK,SANH,YAKiB,GAJfgM,KAAK,sBACLW,OAAO,K,qBAEP,IAA8B,C,wBAA3B,EAAA3M,GAAG,uBAAD,K,gCAOL,EAAI,M,cADZ,YA4FM,MA5FN,GA4FM,CAxFJ,YAAuC,sBAAhC,EAAAA,GAAG,uBAAD,GACT,YAsFK,KAtFL,GAsFK,CArFH,YAWK,WAVH,YASQ,QATR,GASQ,C,wBARH,EAAAA,GAAG,yBAA0B,IAAC,eAA2C,GAArBgN,eAAa,IACpE,YAME,GALAhP,MAAM,iBACLyiB,YAAU,EACVC,eAAc,EAAAC,wBACdC,gBAAe,EAAAD,wBACfE,kBAAiB,EAAAT,oB,+DAIxB,YAKK,WAHH,YAEiB,GAFDpU,KAAK,sBAAoB,C,oBACvC,IAAyC,C,wBAAtC,EAAAhM,GAAG,kCAAD,K,QAGT,YAOK,WANH,YAKiB,GAJfgM,KAAK,YACLW,OAAO,K,qBAEP,IAA+B,C,wBAA5B,EAAA3M,GAAG,wBAAD,K,QAGT,YAOK,WANH,YAKiB,GAJfgM,KAAK,yBACLW,OAAO,K,qBAEP,IAA8C,C,wBAA3C,EAAA3M,GAAG,uCAAD,K,QAGT,YASK,WARH,YAOgB,GANdyC,GAAG,sBACHuJ,KAAK,sBACJoC,QAAS,EAAA6Q,mBACVtS,OAAO,K,qBAEP,IAA0C,C,wBAAvC,EAAA3M,GAAG,mCAAD,K,sBAGC,EAAA2f,YAAY7a,OAAS,G,cAA/B,YAQK,SAPH,YAMgB,GALdrC,GAAG,kBACHuJ,KAAK,kBACJoC,QAAS,EAAAwR,oB,qBAEV,IAA6C,C,wBAA1C,EAAA5f,GAAG,sCAAD,K,0CAGT,YAOK,WANH,YAKiB,GAJfgM,KAAK,oBACLW,OAAO,K,qBAEP,IAAwC,C,wBAArC,EAAA3M,GAAG,iCAAD,K,QAGT,YAOK,WANH,YAKiB,GAJfgM,KAAK,0BACLW,OAAO,K,qBAEP,IAA4C,C,wBAAzC,EAAA3M,GAAG,qCAAD,K,QAGT,YAOK,WANH,YAKiB,GAJfgM,KAAK,6BACLW,OAAO,K,qBAEP,IAAkD,C,wBAA/C,EAAA3M,GAAG,2CAAD,K,QAGT,YAOK,WANH,YAKiB,GAJfgM,KAAK,WACLW,OAAO,K,qBAEP,IAA8B,C,wBAA3B,EAAA3M,GAAG,uBAAD,K,kEG3aRhC,MAAM,gB,IACLA,MAAM,gB,IAGFA,MAAM,e,gBAWNA,MAAM,e,YChBb,ICsBQ8iB,GAlBI,CACjB/hB,KADiB,WAEf,IAAM8K,EAAWvK,KAAKqC,OAAOO,MAAM2H,SACnC,MAAO,CACLkX,eAAgBlX,EAASkX,eACzBC,gBAAiBnX,EAASmX,kBAG9Bjf,SAAU,CACRkf,oBADQ,WAEN,MAbqB,wDAaO3hB,KAAK0hB,iBAEnCE,mBAJQ,WAKN,MAfqB,sDDFEC,ECiBmB7hB,KAAKyhB,gBDf7CK,EAAUD,EAAcE,MADhB,aAEGD,EAAQ,GAAK,IAHH,IAAAD,EAErBC,KEIO,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,2CHJzD,YA2BM,OA3BA1d,MAAO,EAAA1D,GAAG,2B,CACd,YAyBM,MAzBN,GAyBM,CAxBJ,YAuBK,KAvBL,GAuBK,CAtBH,YAUK,WATH,YAAmD,qBAA7C,EAAAA,GAAG,qCAAD,GACR,YAOK,KAPL,GAOK,CANH,YAKK,WAJH,YAGyB,KAFtBshB,KAAM,EAAAJ,mBACPxS,OAAO,U,YACL,EAAAqS,gBAAc,YAIxB,YAUK,WATH,YAAoD,qBAA9C,EAAA/gB,GAAG,sCAAD,GACR,YAOK,KAPL,GAOK,CANH,YAKK,WAJH,YAG0B,KAFvBshB,KAAM,EAAAL,oBACPvS,OAAO,U,YACL,EAAAsS,iBAAe,iB,oBIrB1BhjB,MAAM,a,IACJA,MAAM,qB,IACJA,MAAM,a,UAGPA,MAAM,iB,IAEDA,MAAM,iB,IAGNA,MAAM,W,IAuCRA,MAAM,O,IACJA,MAAM,W,IAGP2Q,IAAI,kBACJ3Q,MAAM,U,iBAqBLA,MAAM,iB,IAgBVA,MAAM,qB,IACHA,MAAM,e,IAKNA,MAAM,e,IAKNA,MAAM,e,IAKNA,MAAM,e,IAKNA,MAAM,e,iBAiBLA,MAAM,c,IAEJA,MAAM,sB,IAiBRA,MAAM,c,IAiCNA,MAAM,c,IAqBNA,MAAM,c,IAcNA,MAAM,c,iBAqBNA,MAAM,c,IAeNA,MAAM,c,IAuENA,MAAM,c,IAmBNA,MAAM,c,IAmCNA,MAAM,c,IAuBNA,MAAM,c,IAsBNA,MAAM,c,IAqHNA,MAAM,c,IAuBNA,MAAM,c,IAeNA,MAAM,c,IA0BNA,MAAM,c,IAeNA,MAAM,c,IASNA,MAAM,c,IAeNA,MAAM,c,IASNA,MAAM,c,IAuBNA,MAAM,c,IA6BNA,MAAM,c,IAuBNA,MAAM,c,IAuBNA,MAAM,c,iBAiENA,MAAM,c,iBAuFNA,MAAM,8B,IACJA,MAAM,oB,iBAiBNA,MAAM,Y,IAEP2Q,IAAI,WACJ3Q,MAAM,S,eAGA,IACR,YAAG,KAAM,K,GAQT,YAGE,SAFAA,MAAM,iBACN2Q,IAAI,Y,uBAqBN,YAAkC,YAA5B,yBAAqB,G,GAQ3B,YAAwB,YAAlB,eAAW,G,GACjB,YAA0B,YAApB,iBAAa,G,GACnB,YAAkB,YAAZ,SAAK,G,GAOX,YAAuB,YAAjB,cAAU,G,iBAUf3Q,MAAM,c,IA0CVA,MAAM,mB,uFCj/BRA,MAAM,2B,oEAoBPA,MAAM,wBAcC,QACb6D,WAAY,CACVC,cAEFxD,MAAO,CAELkP,KAAM,CACJ9O,UAAU,EACVF,KAAMI,QAGR8E,MAAO,CACLhF,UAAU,EACVF,KAAMI,QAIR2iB,WAAY,CACV7iB,UAAU,EACVF,KAAMI,OACNwB,aAASiM,GAGXmV,SAAU,CACR9iB,UAAU,EACVF,KAAMI,OACNwB,aAASiM,GAGX1G,SAAU,CACRjH,UAAU,EACVF,KAAM8P,QACNlO,SAAS,GAGXqhB,oBAAqB,CACnB/iB,UAAU,EACVF,KAAM8P,QACNlO,SAAS,IAGbshB,MAAO,CAAC,qBACR3f,SAAU,CACR4f,QADQ,WAEN,YAAkC,IAApBriB,KAAKiiB,YAErBK,WAJQ,WAKN,OAAOC,aAAQviB,KAAKiiB,YAAcjiB,KAAKkiB,WAEzCM,iBAPQ,WAQN,MAA2B,gBAApBxiB,KAAKiiB,YAEdQ,cAVQ,WAWN,OAAOziB,KAAKiiB,YAAcjiB,KAAKiiB,WAAW/U,WAAW,S,cC/F5C,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,2EDPzD,YA6CM,OA5CJxO,MAAK,aAAC,4BAA2B,WACZ,EAAA2jB,SAAW,EAAAhc,a,CAEhC,YAKQ,SAJLgJ,IAAK,EAAAnB,KACNxP,MAAM,S,YAEH,EAAA0F,OAAK,WAGkB,IAAb,EAAA8d,UAA4B,EAAAC,qB,cAD3C,YAME,G,MAJC5Z,cAAa,EAAA8Z,QACbhc,SAAU,EAAAA,SACX3H,MAAM,MACL,sBAAiB,eAAE,EAAAoS,MAAM,yBAA2C,IAAf,EAAAmR,WAA6B,EAAAC,cAAWnV,K,uDAEhG,YA2BM,MA3BN,GA2BM,CA1BJ,YAOC,SANE5J,GAAI,EAAA+K,KAAO,KACZxP,MAAM,qBACNQ,KAAK,OACJmJ,MAAO,EAAA4Z,YAAc,EAAAC,SACrB7b,UAAW,EAAAgc,SAAW,EAAAhc,SACtB,QAAK,eAAE,EAAAyK,MAAM,oBAAqBwO,EAAOlQ,OAAO/G,S,YAG3C,EAAU,Y,cADlB,YAQC,S,MANElF,GAAI,EAAA+K,KACLxP,MAAM,uBACNQ,KAAK,QACJmJ,MAAO,EAAA4Z,YAAc,EAAAC,SACrB7b,UAAW,EAAAgc,SAAW,EAAAhc,SACtB,QAAK,eAAE,EAAAyK,MAAM,oBAAqBwO,EAAOlQ,OAAO/G,S,gCAG3C,EAAgB,kB,cADxB,YAGE,MAHF,K,mBAKQ,EAAa,e,cADrB,YAIE,O,MAFA3J,MAAM,oBACL+C,MAAK,6BAAoB,EAAAygB,Y,sLEOnB,QACbljB,MAAO,CACL,OAAQ,aAAc,WAAY,WAAY,QAAS,MAAO,MAAO,OAAQ,UAAW,WAE1FojB,MAAO,CAAC,qBACR3f,SAAU,CACR4f,QADQ,WAEN,YAAkC,IAApBriB,KAAKiiB,cClDV,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,2CDJzD,YA6CM,OA5CJvjB,MAAK,aAAC,8BAA6B,WACd,EAAA2jB,SAAW,EAAAhc,a,CAEhC,YAKQ,SAJLgJ,IAAK,EAAAnB,KACNxP,MAAM,S,YAEH,EAAA0F,OAAK,WAGkB,IAAb,EAAA8d,U,cADf,YAOC,S,MALE/e,GAAI,EAAA+K,KAAO,KACZxP,MAAM,MACNQ,KAAK,WACJ+I,QAAS,EAAAoa,QACT,SAAM,eAAE,EAAAvR,MAAM,oBAAsB,EAAAuR,aAAqBtV,EAAX,EAAAmV,Y,qCAGrB,IAAb,EAAAA,U,cADf,YAIE,S,MAFAxjB,MAAM,QACL2Q,IAAK,EAAAnB,KAAO,M,+BAEf,YAUC,SATE/K,GAAI,EAAA+K,KACLxP,MAAM,eACNQ,KAAK,QACJmJ,MAAO,EAAA4Z,YAAc,EAAAC,SACrB7b,UAAW,EAAAgc,SAAW,EAAAhc,SACtBqc,IAAK,EAAAA,KAAO,EAAAC,SAAW,IACvB1T,IAAK,EAAAA,KAAO,EAAA2T,SAAW,EACvBtT,KAAM,EAAAA,MAAQ,EACd,QAAK,eAAE,EAAAwB,MAAM,oBAAqBwO,EAAOlQ,OAAO/G,S,YAEnD,YAUC,SATElF,GAAI,EAAA+K,KACLxP,MAAM,eACNQ,KAAK,SACJmJ,MAAO,EAAA4Z,YAAc,EAAAC,SACrB7b,UAAW,EAAAgc,SAAW,EAAAhc,SACtBqc,IAAK,EAAAC,QACL1T,IAAK,EAAA2T,QACLtT,KAAM,EAAAA,MAAQ,EACd,QAAK,eAAE,EAAAwB,MAAM,oBAAqBwO,EAAOlQ,OAAO/G,S,kEEVxC,QACb9F,WAAY,CACVC,cAEFxD,MAAO,CACL,OAAQ,aAAc,WAAY,YAEpCojB,MAAO,CAAC,qBACR3f,SAAU,CACR4f,QADQ,WAEN,YAAkC,IAApBriB,KAAKiiB,cCrCV,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,2EDJzD,YA4BM,OA3BJvjB,MAAK,aAAC,gCAA+B,WAChB,EAAA2jB,SAAW,EAAAhc,a,CAEhC,YAKQ,SAJLgJ,IAAK,EAAAnB,KACNxP,MAAM,S,YAEH,EAAAgC,GAAG,kCAAD,WAGqB,IAAb,EAAAwhB,U,cADf,YAME,G,MAJC3Z,cAAa,EAAA8Z,QACbhc,SAAU,EAAAA,SACX3H,MAAM,MACL,sBAAiB,eAAE,EAAAoS,MAAM,oBAAsB,EAAAuR,aAAqBtV,EAAX,EAAAmV,Y,uDAE5D,YAUC,SATE/e,GAAI,EAAA+K,KACLxP,MAAM,eACNQ,KAAK,SACJmJ,MAAO,EAAA4Z,YAAc,EAAAC,SACrB7b,UAAW,EAAAgc,SAAW,EAAAhc,SACvBqc,IAAI,IACJzT,IAAI,IACJK,KAAK,MACJ,QAAK,eAAE,EAAAwB,MAAM,oBAAqBwO,EAAOlQ,OAAO/G,S,8BEtB9C3J,MAAM,4B,oCAWFA,MAAM,Q,oBAWRA,MAAM,kB,oCAgBJA,MAAM,Q,oBAaVA,MAAM,gB,iHAiEL2Q,IAAI,QACJ3Q,MAAM,S,mBAYR,YAGE,SAFAA,MAAM,iBACN2Q,IAAI,S,6BAQJA,IAAI,SACJ3Q,MAAM,S,oDA2BN2Q,IAAI,SACJ3Q,MAAM,S,mCAsCR,YAA2B,YAArB,kBAAc,G,qkBCtM5BC,IAAQC,IACNikB,IACAC,IACAhkB,KACAka,KAGF,IAAM+J,GAAU,eAACC,EAAD,uDAAU,GAAV,WACdC,EAAG,EACHC,EAAG,EACHC,KAAM,EACNC,OAAQ,EACRC,OAAO,EACPC,MAAO,UACPC,MAAO,GACJP,IAGU,IAKbhkB,MAAO,CACL,aAAc,WAAY,SAE5BojB,MAAO,CAAC,qBACR3iB,KATa,WAUX,MAAO,CACL+jB,WAAY,EAEZC,QAASzjB,KAAKiiB,YAAcjiB,KAAKkiB,UAAY,IAAIpe,IAAIif,MAGzDxgB,WAAY,CACVmhB,cACAC,gBACA9U,aAEF/O,QAAS,CACPlB,IADO,WAELoB,KAAKyjB,OAAOvb,KAAK6a,GAAQ/iB,KAAKuH,WAC9BvH,KAAKwjB,WAAaxjB,KAAKyjB,OAAOje,OAAS,GAEzCoe,IALO,WAML5jB,KAAKyjB,OAAOtb,OAAOnI,KAAKwjB,WAAY,GACpCxjB,KAAKwjB,WAAoC,IAAvBxjB,KAAKyjB,OAAOje,YAAeuH,EAAY8W,KAAKnB,IAAI1iB,KAAKwjB,WAAa,EAAG,IAEzFM,OATO,WAUL,IAAM9M,EAAUhX,KAAKyjB,OAAOtb,OAAOnI,KAAKwjB,WAAY,GAAG,GACvDxjB,KAAKyjB,OAAOtb,OAAOnI,KAAKwjB,WAAa,EAAG,EAAGxM,GAC3ChX,KAAKwjB,YAAc,GAErBO,OAdO,WAeL,IAAM/M,EAAUhX,KAAKyjB,OAAOtb,OAAOnI,KAAKwjB,WAAY,GAAG,GACvDxjB,KAAKyjB,OAAOtb,OAAOnI,KAAKwjB,WAAa,EAAG,EAAGxM,GAC3ChX,KAAKwjB,YAAc,IAGvBQ,aAzCa,WA0CXhkB,KAAKyjB,OAASzjB,KAAKiiB,YAAcjiB,KAAKkiB,UAExCzf,SAAU,CACRwhB,WADQ,WAEN,OAAOjkB,KAAKyjB,OAAOje,OAAS,GAE9B0e,mBAJQ,WAKN,OAAOlkB,KAAKkiB,SAAS1c,OAAS,GAEhC+B,SAPQ,WAQN,OAAIvH,KAAKyQ,OAASzQ,KAAKikB,WACdjkB,KAAKyjB,OAAOzjB,KAAKwjB,YAEjBT,GAAQ,KAGnBoB,gBAdQ,WAeN,OAAInkB,KAAKyQ,OAASzQ,KAAKkkB,mBACdlkB,KAAKkiB,SAASliB,KAAKwjB,YAEnBT,GAAQ,KAGnBqB,YArBQ,WAsBN,OAAOpkB,KAAKyQ,OAASzQ,KAAKwjB,WAAa,GAEzCa,YAxBQ,WAyBN,OAAOrkB,KAAKyQ,OAASzQ,KAAKwjB,WAAaxjB,KAAKyjB,OAAOje,OAAS,GAE9D6c,QA3BQ,WA4BN,OAAOriB,KAAKyQ,YAC8B,IAAjCzQ,KAAKyjB,OAAOzjB,KAAKwjB,cACvBxjB,KAAKskB,eAEVA,cAhCQ,WAiCN,YAAkC,IAApBtkB,KAAKiiB,YAErBsC,IAnCQ,WAoCN,OAAOhC,aAAQviB,KAAKuH,SAAS+b,QAE/B7hB,MAtCQ,WAuCN,OAAOzB,KAAKyQ,MAAQ,CAClB+T,UAAWC,aAAazkB,KAAKkiB,WAC3B,M,OC3GK,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,mLFNzD,YAqNM,OApNJxjB,MAAK,aAAC,iBAAgB,WACD,EAAA2jB,Y,CAErB,YAiDM,MAjDN,GAiDM,CAhDJ,YAoBM,OAnBHhc,UAAW,EAAAgc,QACZ3jB,MAAM,mB,aAEN,YAKC,S,qCAJU,EAAA6I,SAAU,KAClBlB,UAAW,EAAAgc,QACZ3jB,MAAM,eACNQ,KAAK,U,iBAHI,EAAAqI,SAAS2b,KAKpB,YASM,MATN,GASM,C,YARJ,YAOC,S,qCANU,EAAA3b,SAAU,KAClBlB,UAAW,EAAAgc,QACZ3jB,MAAM,cACNQ,KAAK,QACLwjB,IAAI,KACJzT,IAAI,O,iBALK,EAAA1H,SAAS2b,Q,MASxB,YAKM,MALN,GAKM,CAJJ,YAGE,OAFAxkB,MAAM,gBACL+C,MAAK,YAAE,EAAAA,Q,UAGZ,YAoBM,OAnBH4E,UAAW,EAAAgc,QACZ3jB,MAAM,mB,aAEN,YAKC,S,qCAJU,EAAA6I,SAAU,KAClBlB,UAAW,EAAAgc,QACZ3jB,MAAM,eACNQ,KAAK,U,iBAHI,EAAAqI,SAAS0b,KAKpB,YASM,MATN,GASM,C,YARJ,YAOC,S,qCANU,EAAA1b,SAAU,KAClBlB,UAAW,EAAAgc,QACZ3jB,MAAM,cACNQ,KAAK,QACLwjB,IAAI,KACJzT,IAAI,O,iBALK,EAAA1H,SAAS0b,Q,QAW1B,YA6JM,MA7JN,GA6JM,CA5JJ,YA0DM,OAzDH5c,SAAU,EAAAie,cACX5lB,MAAM,4B,CAEN,YAaS,GAZPyE,GAAG,kB,WACM,EAAAqgB,W,qCAAA,EAAU,cACnB9kB,MAAM,kBACL2H,UAAW,EAAAoK,OAAS,EAAA6T,e,qBAGnB,IAAiC,E,gBADnC,YAMS,qBALmB,EAAAb,OAAM,CAAxBiB,EAAQ1H,K,cADlB,YAMS,UAJNtV,IAAKsV,EACL3U,MAAO2U,G,YAEL,EAAAtc,GAAG,mCAAoC,CAAE2H,MAAO2U,KAAK,Q,0CAG5D,YASS,UARPte,MAAM,qBACL2H,UAAW,EAAAoK,QAAU,EAAA4R,QACrB,QAAK,oBAAE,EAAAuB,KAAA,EAAAA,OAAA,K,CAER,YAGE,GAFAe,cAAA,GACAlkB,KAAK,W,MAGT,YASS,UARP/B,MAAM,qBACL2H,UAAW,EAAA+d,YACX,QAAK,oBAAE,EAAAN,QAAA,EAAAA,UAAA,K,CAER,YAGE,GAFAa,cAAA,GACAlkB,KAAK,gB,MAGT,YASS,UARP/B,MAAM,qBACL2H,UAAW,EAAAge,YACX,QAAK,oBAAE,EAAAN,QAAA,EAAAA,UAAA,K,CAER,YAGE,GAFAY,cAAA,GACAlkB,KAAK,kB,MAGT,YASS,UARP/B,MAAM,qBACL2H,SAAU,EAAAie,cACV,QAAK,oBAAE,EAAA1lB,KAAA,EAAAA,OAAA,K,CAER,YAGE,GAFA+lB,cAAA,GACAlkB,KAAK,U,aAIX,YAsBM,OArBH4F,UAAW,EAAAgc,QACZ3jB,MAAM,+B,CAEN,YAKQ,QALR,GAKQ,YADH,EAAAgC,GAAG,iCAAD,G,YAEP,YAOC,SANCyC,GAAG,Q,qCACM,EAAAoE,SAAc,SACtBlB,UAAW,EAAAgc,QACZnU,KAAK,QACLxP,MAAM,cACNQ,KAAK,Y,iBAJI,EAAAqI,SAAS8b,SAMpB,I,MAKF,YA2BM,OA1BHhd,UAAW,EAAAgc,QACZ3jB,MAAM,8B,CAEN,YAKQ,QALR,GAKQ,YADH,EAAAgC,GAAG,gCAAD,G,YAEP,YASC,SARCyC,GAAG,O,uCACM,EAAAoE,SAAa,QACrBlB,UAAW,EAAAgc,QACZnU,KAAK,OACLxP,MAAM,cACNQ,KAAK,QACLwjB,IAAI,KACJzT,IAAI,K,iBANK,EAAA1H,SAAS4b,Q,YAQpB,YAMC,S,uCALU,EAAA5b,SAAa,QACrBlB,UAAW,EAAAgc,QACZ3jB,MAAM,eACNQ,KAAK,SACL+P,IAAI,K,iBAJK,EAAA1H,SAAS4b,S,MAOtB,YA0BM,OAzBH9c,UAAW,EAAAgc,QACZ3jB,MAAM,gC,CAEN,YAKQ,QALR,GAKQ,YADH,EAAAgC,GAAG,kCAAD,G,YAEP,YASC,SARCyC,GAAG,S,uCACM,EAAAoE,SAAe,UACvBlB,UAAW,EAAAgc,QACZnU,KAAK,SACLxP,MAAM,cACNQ,KAAK,QACLwjB,IAAI,KACJzT,IAAI,O,iBANK,EAAA1H,SAAS6b,U,YAQpB,YAKC,S,uCAJU,EAAA7b,SAAe,UACvBlB,UAAW,EAAAgc,QACZ3jB,MAAM,eACNQ,KAAK,U,iBAHI,EAAAqI,SAAS6b,W,MAMtB,YAOE,G,WANS,EAAA7b,SAAS+b,M,uCAAT,EAAA/b,SAAc,SACtBlB,UAAW,EAAAgc,QACXje,MAAO,EAAA1D,GAAG,+BACVwhB,SAAU,EAAAiC,gBAAgBb,MAC1BsB,yBAAuB,EACxB1W,KAAK,U,qDAEP,YAGE,G,WAFS,EAAA3G,SAASgc,M,uCAAT,EAAAhc,SAAc,SACtBlB,UAAW,EAAAgc,S,kCAEd,YAMS,GALPwC,MAAM,SACNC,QAAQ,gCACRC,IAAI,K,qBAEJ,IAA2B,CAA3B,K,+EG5LF,IACF,YAAG,KAAM,K,uBCrBE,QACbxiB,WAAY,CACVsM,aAEF7P,MAAO,CACL,OAAQ,QAAS,aAAc,WAAY,UAAW,cAExDojB,MAAO,CAAC,qBACR3iB,KARa,WASX,MAAO,CACLulB,OAAQhlB,KAAKiiB,WACbgD,iBAAkB,CAChBjlB,KAAKklB,UAAY,GAAK,UACtB,UAFgB,YAGZllB,KAAK8O,SAAW,IAHJ,CAIhB,QACA,YACA,eACAnK,QAAO,SAAAsa,GAAC,OAAIA,OAGlB+E,aArBa,WAsBXhkB,KAAKglB,OAAShlB,KAAKiiB,YAErBxf,SAAU,CACR4f,QADQ,WAEN,YAA8B,IAAhBriB,KAAKglB,QAErBG,OAJQ,WAKN,OAAOnlB,KAAKglB,QAAUhlB,KAAKkiB,UAAY,IAEzCkD,OAAQ,CACNpb,IADM,WAEJ,OAAOhK,KAAKmlB,OAAOC,QAErBnX,IAJM,SAID7E,GACH,KAAIpJ,KAAKglB,OAAQ,SAAU5b,GAC3BpJ,KAAK8Q,MAAM,oBAAqB9Q,KAAKglB,UAGzCK,SAhBQ,WAiBN,MAAuB,WAAhBrlB,KAAKslB,QAEdA,OAAQ,CACNtb,IADM,WAEJ,MAAoB,UAAhBhK,KAAKolB,QACW,eAAhBplB,KAAKolB,QACW,cAAhBplB,KAAKolB,QACW,YAAhBplB,KAAKolB,OACAplB,KAAKolB,OAEL,UAGXnX,IAXM,SAWD7E,GACHpJ,KAAKolB,OAAe,WAANhc,EAAiB,GAAKA,M,OCjD7B,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,yEFNzD,YA6CM,OA5CJ1K,MAAK,aAAC,6BAA4B,QAChB,EAAA2mB,a,CAElB,YAKQ,SAJLhW,IAAgB,WAAX,EAAAiW,OAAsB,EAAApX,KAAO,EAAAA,KAAO,iBAC1CxP,MAAM,S,YAEH,EAAA0F,OAAK,WAGkB,IAAb,EAAA8d,U,cADf,YAOC,S,MALE/e,GAAI,EAAA+K,KAAO,KACZxP,MAAM,uBACNQ,KAAK,WACJ+I,QAAS,EAAAoa,QACT,SAAM,eAAE,EAAAvR,MAAM,yBAA2C,IAAf,EAAAmR,WAA6B,EAAAC,cAAWnV,K,qCAGzD,IAAb,EAAAmV,U,cADf,YAIE,S,MAFAxjB,MAAM,QACL2Q,IAAK,EAAAnB,KAAO,M,kCAGf,YAaS,GAZN/K,GAAI,EAAA+K,KAAO,iB,WACH,EAAAoX,O,qCAAA,EAAM,UACdjf,UAAW,EAAAgc,QACZ3jB,MAAM,iB,qBAGJ,IAAkC,E,gBADpC,YAMS,qBALU,EAAAumB,iBAAVlW,I,cADT,YAMS,UAJNrH,IAAKqH,EACL1G,MAAO0G,G,YAEM,WAAXA,EAAsB,EAAArO,GAAG,+BAAiCqO,GAAM,Q,+CAI/D,EAAQ,S,2BADhB,YAMC,S,MAJE5L,GAAI,EAAA+K,K,qCACI,EAAM,UACfxP,MAAM,cACNQ,KAAK,Q,kBAFI,EAAAkmB,U,2CGvCX1mB,MAAM,kB,4FA0CVC,IAAQC,IACN2mB,IACAC,IACAC,MAGa,QACbzmB,MAAO,CACL0mB,MAAO,CACLtmB,UAAU,EACVF,KAAM8P,QACNlO,SAAS,GAIX6kB,SAAU,CACRvmB,UAAU,EACVF,KAAM+J,OACNnI,QAAS,iBAAO,MAGpB2B,SAAU,CACRmjB,KADQ,WAEN,IAAMC,EAAW7lB,KAAK2lB,SAASG,IAAM,MAAS9lB,KAAK2lB,SAASI,GAAK,KAAO,MAClEhI,EAAQ/d,KAAKU,GAAL,+CAAgDmlB,IACxDG,EAAUhmB,KAAKU,GAAG,+CAClBulB,EAAQjmB,KAAK2lB,SAASO,KAC5B,OAAOlmB,KAAKU,GAAG,sCAAuC,CAAEqd,QAAOiI,UAASC,WAE1EE,UARQ,WASN,IAAMN,EAAW7lB,KAAK2lB,SAASS,KAAO,MAASpmB,KAAK2lB,SAASU,IAAM,KAAO,MACpEtI,EAAQ/d,KAAKU,GAAL,+CAAgDmlB,IACxDG,EAAUhmB,KAAKU,GAAG,+CAClBulB,EAAQjmB,KAAK2lB,SAASO,KAC5B,OAAOlmB,KAAKU,GAAG,sCAAuC,CAAEqd,QAAOiI,UAASC,a,OCtE/D,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,2DDLjD,EAAQ,U,cADhB,YAiCO,OAjCP,GAiCO,CA7BL,YAaO,QAZJ5G,MAAO,EAAAuG,KACRlnB,MAAM,U,CAEM,EAAAinB,SAAY,K,cAAxB,YAEO,WADL,YAA2B,GAAnBllB,KAAK,iB,oBAEF,EAAAklB,SAASG,KAAO,EAAAH,SAASI,I,cAAtC,YAEO,WADL,YAAwB,GAAhBtlB,KAAK,c,mBAEF,EAAAklB,SAASG,KAAQ,EAAAH,SAASI,G,kCAAvC,YAEO,WADL,YAAsC,GAA9BtlB,KAAK,6B,MAIT,EAAAklB,UAAY,EAAAD,O,cADpB,YAcO,Q,MAZLhnB,MAAM,SACL2gB,MAAO,EAAA8G,W,CAEI,EAAAR,SAAa,M,cAAzB,YAEO,WADL,YAA2B,GAAnBllB,KAAK,iB,oBAEF,EAAAklB,SAASS,MAAQ,EAAAT,SAASU,K,cAAvC,YAEO,WADL,YAAwB,GAAhB5lB,KAAK,c,mBAEF,EAAAklB,SAASS,MAAS,EAAAT,SAASU,I,kCAAxC,YAEO,WADL,YAAsC,GAA9B5lB,KAAK,6B,8DE9Bd/B,MAAM,qB,GACT,YAAyC,OAApCA,MAAM,6BAA2B,S,IACjCA,MAAM,e,IACJA,MAAM,iB,IACJA,MAAM,S,GAET,YAEO,QAFDA,MAAM,4BAA2B,QAEvC,G,IAEIA,MAAM,S,IAGNA,MAAM,e,IAGJA,MAAM,sB,IAIXA,MAAM,oC,IACJA,MAAM,Q,GACT,YAEM,OAFDA,MAAM,sBAAqB,iBAEhC,G,IACKA,MAAM,W,IAMD+C,MAAA,uC,IAGHA,MAAA,uB,IAKA/C,MAAM,S,IA6BVA,MAAM,c,GACT,YAEM,OAFDA,MAAM,cAAa,SAExB,G,IACKA,MAAM,W,IAOJ+C,MAAA,4B,GAMT,YAAyB,OAApB/C,MAAM,aAAW,S,IAEhBA,MAAM,e,iBAQPA,MAAM,W,IACHA,MAAM,Y,GACV,YAIC,SAHCyE,GAAG,mBACH8E,QAAQ,WACR/I,KAAK,Y,aAEAmQ,IAAI,oB,IAEL3Q,MAAM,sBAkBxBC,IAAQC,IACNE,KACAwnB,KACAC,IACAC,KAGa,U,OCzHA,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,iGDNzD,YA8GM,MA9GN,GA8GM,CA7GJ,GACA,YA2GM,MA3GN,GA2GM,CA1GJ,YAgBM,MAhBN,GAgBM,CAfJ,YAKM,MALN,GAKM,C,wBAJD,EAAA9lB,GAAG,kCAAmC,IACzC,QAIF,YAEO,OAFP,GAEO,YADF,EAAAA,GAAG,wCAAD,GAEP,YAEO,OAFP,GAEO,YADF,EAAAA,GAAG,iCAAD,GAEP,YAES,SAFT,GAES,YADJ,EAAAA,GAAG,kCAAD,KAGT,YAwFM,MAxFN,GAwFM,CAvFJ,YA6CM,MA7CN,GA6CM,CA5CJ,GAGA,YAwCM,MAxCN,GAwCM,CAvCJ,YAEK,sBADA,EAAAA,GAAG,mCAAD,GAGP,YAOS,GAPDmkB,MAAM,SAASC,QAAQ,+B,qBAC7B,IAEO,CAFP,YAEO,OAFP,GAEO,YADF,EAAApkB,GAAG,gCAAD,GAEP,YAEI,IAFJ,GAEI,YADC,EAAAA,GAAG,gCAAD,K,MAIT,YAyBM,MAzBN,GAyBM,CAxBJ,YAKE,GAJAikB,cAAA,GACAljB,MAAA,uBACA/C,MAAM,8BACN+B,KAAK,UAEP,YAKE,GAJAkkB,cAAA,GACAljB,MAAA,wBACA/C,MAAM,8BACN+B,KAAK,YAEP,YAKE,GAJAkkB,cAAA,GACAljB,MAAA,yBACA/C,MAAM,8BACN+B,KAAK,SAEP,YAKE,GAJAkkB,cAAA,GACAljB,MAAA,sBACA/C,MAAM,8BACN+B,KAAK,gBAMb,YAgBM,MAhBN,GAgBM,CAfJ,GAGA,YAWM,MAXN,GAWM,CAVJ,YASS,GARPqkB,QAAQ,oCACRC,IAAI,OACJrmB,MAAM,QACNmmB,MAAM,U,qBAEN,IAEI,CAFJ,YAEI,IAFJ,GAEI,YADC,EAAAnkB,GAAG,sCAAD,K,UAKb,GAEA,YAEO,OAFP,GAEO,YADF,EAAAA,GAAG,iCAAD,GAEP,YAGC,SAFE2H,MAAO,EAAA3H,GAAG,gCACXxB,KAAK,Q,WAGP,YAYM,MAZN,GAYM,CAXJ,YAOO,OAPP,GAOO,CANL,GAKA,YAAiF,QAAjF,GAAiF,YAAhD,EAAAwB,GAAG,oCAAD,KAErC,YAES,SAFT,GAES,YADJ,EAAAA,GAAG,kCAAD,e,qkBEhEjB,IAAM+lB,GAAc,CAClB,KACA,KACA,OACA,OACA,OACA,SACA,QACA,WACA3iB,KAAI,SAAAmb,GAAC,OAAIA,EAAI,gBAUA,IACbxf,KADa,WACL,WACN,iBACEinB,cAAeC,aAAY,CACzBC,UAAW5mB,KAAK6mB,gBAChBC,SAAU9mB,KAAK8mB,SACfC,gBAAiB/mB,KAAK+mB,kBAExBC,cAAeC,aAAY,CACzBpmB,SAAU,gBACVqmB,kBAAmB,kBAAM,EAAKC,iBAEhCC,gBAAiB,GACjB7f,SAAU,GACV8f,cAAernB,KAAKqC,OAAOuD,QAAQoI,aAAasZ,MAChDC,kBAAcxa,EACdya,oBAAgBza,EAChB0a,cAAe,EAEfC,eAAgB,GAChBC,cAAe,GACfC,aAAc,GACdC,aAAc,GAEdC,gBAAgB,EAChBC,eAAe,EACfC,cAAc,EAEdC,WAAW,EACXC,aAAa,EACbC,aAAa,EACbC,eAAe,EACfC,WAAW,GAERpf,OAAOC,KAAKof,MACZxkB,KAAI,SAAA4D,GAAG,MAAI,CAACA,EAAK,OACjBoG,QAAO,SAACC,EAAD,mBAAOrG,EAAP,KAAYvC,EAAZ,eAAC,MAA0B4I,GAA3B,UAAkCrG,EAAM,aAAgBvC,MAAQ,KAEvE8D,OAAOC,KAAKqf,MACZzkB,KAAI,SAAA4D,GAAG,MAAI,CAACA,EAAK,OACjBoG,QAAO,SAACC,EAAD,mBAAOrG,EAAP,KAAYvC,EAAZ,eAAC,MAA0B4I,GAA3B,UAAkCrG,EAAM,eAAkBvC,MAAQ,KAtC9E,IAwCEqjB,oBAAgBzb,EAChB0b,aAAc,GACdC,WAAY,GAEZC,eAAgB,GAChBC,iBAAkB,GAClBC,oBAAqB,GACrBC,iBAAkB,GAClBC,kBAAmB,GACnBC,qBAAsB,GACtBC,sBAAuB,GACvBC,mBAAoB,GACpBC,uBAAwB,MAG5B/mB,QAzDa,WA0DX,IAAMgnB,EAAOppB,KAEbqpB,eACG/oB,MAAK,SAACgpB,GACL,OAAO9d,QAAQ+d,IACbtgB,OAAOugB,QAAQF,GACZxlB,KAAI,4BAAE2lB,EAAF,iBAAcnpB,MAAK,SAAAoR,GAAG,MAAI,CAAC+X,EAAG/X,aAGxCpR,MAAK,SAAAopB,GAAM,OAAIA,EAAO5b,QAAO,SAACC,EAAD,GAAiB,gBAAV0b,EAAU,KAAPrgB,EAAO,KAC7C,OAAIA,EACF,SACK2E,GADL,UAEG0b,EAAIrgB,IAGA2E,IAER,OACFzN,MAAK,SAACqpB,GACLP,EAAKhC,gBAAkBuC,MAG7B5V,QAjFa,WAkFX/T,KAAK4pB,iCAC8B,IAAxB5pB,KAAKwoB,iBACdxoB,KAAKwoB,eAAiBxoB,KAAK6pB,iBAAiB,KAGhDpnB,SAAU,CACRqnB,iBADQ,WAEN,GAAK9pB,KAAKunB,aAAV,CACA,IAAM/Q,EAAIxW,KAAKU,GACTqpB,EAAM,gCACZ,EAKI/pB,KAAKunB,aAJPyC,EADF,EACEA,OACAC,EAFF,EAEEA,mBACA/qB,EAHF,EAGEA,KACAgrB,EAJF,EAIEA,kBAEF,GAAe,SAAXF,EAAmB,CAErB,GAA2B,IAAvBC,GAAqC,kBAAT/qB,EAC9B,OAAOsX,EAAEuT,EAAM,eAEjB,GAAIE,EAAqBE,KACvB,OAAO3T,EAAEuT,EAAM,2BAA6B,IAGpCvT,EADJ0T,EACMH,EAAM,mBACNA,EAAM,oBAGlB,GAAIE,EAAqBE,KACvB,OAAO3T,EAAEuT,EAAM,2BAA6B,IAGpCvT,EADJ0T,EACMH,EAAM,mBACNA,EAAM,yBAGb,GAAe,iBAAXC,EAA2B,CACpC,GAAa,6BAAT9qB,EACF,OAAOsX,EAAEuT,EAAM,4BAGjB,GAA2B,IAAvBE,EACF,OAAOzT,EAAEuT,EAAM,oBAGjB,GAAIE,EAAqBE,KACvB,OAAO3T,EAAEuT,EAAM,iBAAmB,IAG1BvT,EADJ0T,EACMH,EAAM,wBACNA,EAAM,2BAIlB,GAAIE,EAAqBE,KACvB,OAAO3T,EAAEuT,EAAM,eAAiB,IAGxBvT,EADJ0T,EACMH,EAAM,wBACNA,EAAM,8BAKtBK,gBA5DQ,WA6DN,OAAO/iB,MAAMgjB,QAAQrqB,KAAKqnB,eAAiB,EAAI,GAEjDiD,cA/DQ,WA+DS,WACf,OAAOrhB,OAAOC,KAAKof,MAChBxkB,KAAI,SAAA4D,GAAG,MAAI,CAACA,EAAK,EAAKA,EAAM,kBAC5BoG,QAAO,SAACC,EAAD,mBAAOrG,EAAP,KAAYvC,EAAZ,eAAC,MAA0B4I,GAA3B,UAAkCrG,EAAOvC,MAAQ,KAE7DolB,eApEQ,WAoEU,WAChB,OAAOthB,OAAOC,KAAKqf,MAChBzkB,KAAI,SAAA4D,GAAG,MAAI,CAACA,EAAK,EAAKA,EAAM,oBAC5BoG,QAAO,SAACC,EAAD,mBAAOrG,EAAP,KAAYvC,EAAZ,eAAC,MAA0B4I,GAA3B,UAAkCrG,EAAOvC,MAAQ,KAE7DqlB,aAzEQ,WA0EN,MAAO,CACLC,IAAKzqB,KAAK2oB,eACVzoB,MAAOF,KAAK4oB,iBACZ8B,SAAU1qB,KAAK6oB,oBACf8B,MAAO3qB,KAAK8oB,iBACZtK,OAAQxe,KAAK+oB,kBACb6B,UAAW5qB,KAAKgpB,qBAChB6B,QAAS7qB,KAAKkpB,mBACd4B,WAAY9qB,KAAKipB,sBACjB8B,YAAa/qB,KAAKmpB,yBAGtB6B,QAtFQ,WAuFN,OAAOC,aAAcjrB,KAAK2nB,cAAe3nB,KAAK4nB,aAAc5nB,KAAK0nB,eAAgB1nB,KAAK6nB,eAExFqD,aAzFQ,WA0FN,OAAKlrB,KAAKgrB,QAAQ1D,MAAM6D,OACjBnrB,KAAKgrB,QAAQ1D,MADmB,CAAE6D,OAAQ,GAAIC,QAAS,GAAIC,MAAO,GAAIC,QAAS,GAAIC,MAAO,KAInGC,gBA9FQ,WA+FN,IACE,IAAKxrB,KAAKkrB,aAAaC,OAAOM,GAAI,MAAO,GACzC,IAAMN,EAASnrB,KAAKkrB,aAAaC,OAC3BC,EAAUprB,KAAKkrB,aAAaE,QAClC,IAAKD,EAAOM,GAAI,MAAO,GACvB,IASMC,EAAkBziB,OAAOugB,QAAQ2B,GAAQrd,QAAO,SAACC,EAAD,OA5MxCuV,EA4MwC,YAAO5b,EAAP,KAAYW,EAAZ,eAAC,MAA4B0F,GAA7B,UAAmCrG,GA5M3E4b,EA4M8Fjb,GA3MxG6E,WAAW,OAAmB,gBAAVoW,EACrBA,EAEAf,aAAQe,OAwM4G,IAEjHqI,EAAS1iB,OAAOugB,QAAQlB,MAAkBxa,QAAO,SAACC,EAAD,GAAuB,gBAAhBrG,EAAgB,KAAXW,EAAW,KACtEujB,EAAyB,SAARlkB,GAA0B,SAARA,EAIzC,KAHmBkkB,GACA,WAAjB,KAAOvjB,IAAgC,OAAVA,GAAkBA,EAAMwjB,WAEtC,OAAO9d,EACxB,MAA2B6d,EAAiB,CAAEE,MAAO,MAASzjB,EAAtDyjB,EAAR,EAAQA,MAAOC,EAAf,EAAeA,QACT1R,EAAa0R,GAAWD,EACxBE,EAAcC,aAAe5R,GAC7B6R,EAAa,CACjBxkB,GADc,YAEK,OAAf2S,EAAsB,CAAC,OAAQ,SAAU,QAAS,WAAa,KAG/D8R,EAASC,aACbN,EACAC,GAAWD,EACXE,EACAN,EACAN,GAGF,gBACKrd,GACAme,EAAWpe,QAAO,SAACC,EAAKse,GACzB,IAAMC,EAASV,EACX,KAAOS,EAAa,GAAGE,cAAgBF,EAAa/jB,MAAM,GAC1D+jB,EACJ,gBACKte,GADL,UAEGue,EAASE,aACRd,EAAgBW,GAChBF,EACAT,EAAgBW,QAGnB,OAEJ,IAEH,OAAOpjB,OAAOugB,QAAQmC,GAAQ7d,QAAO,SAACC,EAAD,GAAiB,IAnDvCkY,EAmDuC,YAAVwD,EAAU,KAAPrgB,EAAO,KAAqB,OAAnB2E,EAAI0b,GAnDlC,CACxBvD,MADaD,EAmDwD7c,GAlDzDqjB,YAAY,GAAK,KAE7B1G,GAAIE,GAAS,IACbH,IAAKG,GAAS,EAEdI,IAAKJ,GAAS,EACdG,KAAMH,GAAS,KA4CiElY,IAAO,IACzF,MAAOP,GACPc,QAAQoe,KAAK,8BAA+Blf,KAGhDmf,aA5JQ,WA6JN,OAAK3sB,KAAKgrB,QAAQ4B,MACX,eACF3jB,OAAO4jB,OAAO7sB,KAAKgrB,QAAQ4B,QADzB,CAEL,qBACA,kDACAzoB,KAAK,KALyB,IAOlC0lB,iBApKQ,WAqKN,OAAO5gB,OAAOC,KAAK4jB,MAAiBC,QAEtCC,uBAAwB,CACtBhjB,IADsB,WAEpB,QAAShK,KAAKitB,eAEhBhf,IAJsB,SAIjB9I,GACCA,EACFnF,KAAKyoB,aAAazoB,KAAKwoB,gBAAkBxoB,KAAKktB,sBAAsBppB,KAAI,SAAAmb,GAAC,OAAIhW,OAAOkkB,OAAO,GAAIlO,aAExFjf,KAAKyoB,aAAazoB,KAAKwoB,kBAIpC0E,sBAnLQ,WAoLN,OAAQltB,KAAKkrB,aAAaI,SAAW,IAAItrB,KAAKwoB,iBAEhDyE,cAAe,CACbjjB,IADa,WAEX,OAAOhK,KAAKyoB,aAAazoB,KAAKwoB,iBAEhCva,IAJa,SAIR7E,GACHpJ,KAAKyoB,aAAazoB,KAAKwoB,gBAAkBpf,IAG7CgkB,WA9LQ,WA+LN,OAAQptB,KAAK8nB,iBAAmB9nB,KAAK+nB,gBAAkB/nB,KAAKgoB,cAE9Db,cAjMQ,WAkMN,IAAMkG,IACHrtB,KAAKqoB,WACLroB,KAAKkoB,aACLloB,KAAKmoB,aACLnoB,KAAKooB,eACLpoB,KAAKioB,WAGFqF,EAAS,CACbrD,mBAAoBE,MAwBtB,OArBInqB,KAAKqoB,WAAagF,KACpBC,EAAO/B,MAAQvrB,KAAK0oB,aAElB1oB,KAAKkoB,aAAemF,KACtBC,EAAOhC,QAAUtrB,KAAKyoB,eAEpBzoB,KAAKmoB,aAAekF,KACtBC,EAAOlC,QAAUprB,KAAKuqB,iBAEpBvqB,KAAKioB,WAAaoF,KACpBC,EAAOnC,OAASnrB,KAAKsqB,gBAEnBtqB,KAAKooB,eAAiBiF,KACxBC,EAAOjC,MAAQrrB,KAAKwqB,cAQf,CAEL+C,uBAAwB,EAAGjG,MAPf,IACZ2C,mBAAoBE,MACjBnqB,KAAKkrB,cAK0BoC,WAGtCE,SAxOQ,WAyON,IAAMC,EAAcztB,KAAK8M,QACzB,QAAO2gB,GAAcA,EAAYD,SAAS,WAG9CjrB,WAAY,CACVmhB,cACAC,gBACA+J,cACAC,iBACAC,iBACAC,eACAzjB,gBACA0jB,WACAtrB,aACAqM,aAEF/O,QAAS,CACPiuB,UADO,WAOL/D,GAEA,IANE1C,EAMF,EANEA,MACAgG,EAKF,EALEA,OACwBU,EAI1B,EAJET,uBAGFU,EACA,wDAEA,GADAjuB,KAAKkuB,kBACAZ,IAAWhG,EACd,MAAM,IAAI3jB,MAAM,2BAElB,IAAMwqB,EAAsB,iBAAXnE,GAA8B1C,EAAM6D,OAEjD6C,EADA,KAEEI,GAAyB9G,GAAS,IAAI2C,mBACtCA,GAAsBqD,GAAU,IAAIrD,oBAAsB,EAC1DoE,EAAgBpE,IAAuBE,KACvCmE,OACMvhB,IAAVua,QACava,IAAXugB,GACArD,IAAuBmE,EAIrBG,EAAoBjB,GAAUW,IAAoB3G,EAClD+G,IAAkBC,GACnBC,GACW,OAAZJ,GACW,aAAXnE,IAEEsE,GAAqC,iBAAXtE,EAC5BhqB,KAAKunB,aAAe,CAClByC,SACAC,qBACA/qB,KAAM,4BAEEooB,EAOA+G,IACVruB,KAAKunB,aAAe,CAClByC,SACAE,mBAAoBoD,EACpBrD,qBACA/qB,KAAM,kBAXRc,KAAKunB,aAAe,CAClByC,SACAE,mBAAmB,EACnBD,qBACA/qB,KAAM,4BAWZc,KAAKwuB,oBAAoBlH,EAAO6G,EAASb,EAAQiB,IAEnDE,sBAzDO,WA0DLzuB,KAAK4pB,2BAA0B,IAEjCsE,eA5DO,WA6DLluB,KAAKunB,kBAAexa,EACpB/M,KAAKwnB,oBAAiBza,GAExB2hB,UAhEO,WAkEL,OADmB1uB,KAAKunB,aAAhByC,QAEN,IAAK,eACHhqB,KAAK4pB,2BAA0B,GAC/B,MACF,IAAK,OACH5pB,KAAK8mB,SAAS9mB,KAAKwnB,gBAAgB,GAGvCxnB,KAAKkuB,kBAEPS,cA5EO,WA8EL,OADmB3uB,KAAKunB,aAAhByC,QAEN,IAAK,eACHhqB,KAAK4pB,2BAA0B,GAAO,GACtC,MACF,IAAK,OACHtb,QAAQ3O,MAAM,mDAGlBK,KAAKkuB,kBAEPtE,0BAxFO,WAwFsE,IAAlDgF,EAAkD,wDAAvBD,EAAuB,wDAC3E,EAGI3uB,KAAKqC,OAAOuD,QAAQoI,aAFTsZ,EADf,EACEuH,YACmBvB,EAFrB,EAEEwB,kBAEGxH,GAAUgG,EAQbttB,KAAK+tB,UACH,CACEzG,QACAgG,OAAQqB,EAAgBrH,EAAQgG,GAElC,eACAsB,GAZF5uB,KAAK+tB,UACH/tB,KAAKqC,OAAOO,MAAM2H,SAASwkB,UAC3B,WACAH,IAaNI,eA/GO,WAgHLhvB,KAAKqC,OAAOC,SAAS,YAAa,CAChC4L,KAAM,cACN7F,MAAO,IACL4hB,mBAAoBE,MACjBnqB,KAAKkrB,gBAGZlrB,KAAKqC,OAAOC,SAAS,YAAa,CAChC4L,KAAM,oBACN7F,MAAO,CACL4hB,mBAAoBE,KACpBmB,QAAStrB,KAAKyoB,aACd8C,MAAOvrB,KAAK0oB,WACZ0C,QAASprB,KAAKuqB,eACdY,OAAQnrB,KAAKsqB,cACbe,MAAOrrB,KAAKwqB,iBAIlByE,8BAnIO,WAoILjvB,KAAK2nB,cAAgBuH,aAAe,CAClC9D,QAASprB,KAAKuqB,eACdY,OAAQnrB,KAAKsqB,gBAEftqB,KAAK0nB,eAAiByH,aACpB,CAAE7D,QAAStrB,KAAKyoB,aAAc2C,QAASprB,KAAKkrB,aAAaE,QAASnB,mBAAoBjqB,KAAKynB,eAC3FznB,KAAK2nB,cAAcL,MAAM6D,OACzBnrB,KAAK2nB,cAAcyH,MAGvBC,YA9IO,WA8IUrvB,KAAK0mB,cAAc4I,cACpCC,YA/IO,WA+IUvvB,KAAKgnB,cAAcwI,cACpC1I,SAhJO,SAgJG2I,GAA6B,IAArBC,EAAqB,wDACrC1vB,KAAKwnB,eAAiBiI,EACtBzvB,KAAK+tB,UAAU0B,EAAQ,OAAQC,IAEjC3I,gBApJO,SAoJUjT,GACf9T,KAAKqC,OAAOC,SAAS,mBAAoB,CAAEmb,WAAY,kCAAmCM,MAAO,WAEnG8I,gBAvJO,SAuJU4I,GACf,IAAMtB,EAAUsB,EAAOlC,uBACvB,OAAOY,GAAW,GAAKA,GAAW,GAEpCwB,SA3JO,WA4JL3vB,KAAK4pB,6BAIPgG,QAhKO,WAgKI,WACT3mB,OAAOC,KAAKlJ,KAAK6vB,OACdlrB,QAAO,SAAAsa,GAAC,OAAIA,EAAE6Q,SAAS,eAAiB7Q,EAAE6Q,SAAS,mBACnDnrB,QAAO,SAAAsa,GAAC,OAAKwH,GAAY3f,SAASmY,MAClC8Q,SAAQ,SAAAroB,GACP,EAAKmoB,MAAMnoB,QAAOqF,MAIxBijB,eAzKO,WAyKW,WAChB/mB,OAAOC,KAAKlJ,KAAK6vB,OACdlrB,QAAO,SAAAsa,GAAC,OAAIA,EAAE6Q,SAAS,kBACvBC,SAAQ,SAAAroB,GACP,EAAKmoB,MAAMnoB,QAAOqF,MAIxBkjB,aAjLO,WAiLS,WACdhnB,OAAOC,KAAKlJ,KAAK6vB,OACdlrB,QAAO,SAAAsa,GAAC,OAAIA,EAAE6Q,SAAS,mBACvBC,SAAQ,SAAAroB,GACP,EAAKmoB,MAAMnoB,QAAOqF,MAIxBmjB,aAzLO,WA0LLlwB,KAAKyoB,aAAe,IAGtB0H,WA7LO,WA8LLnwB,KAAK0oB,WAAa,IAgBpB8F,oBA9MO,SA8MclH,GAAiD,IAChEpnB,EADgE,OAA1CiuB,EAA0C,uDAAhC,EAAGb,EAA6B,uCAArBoC,EAAqB,6DAE9C,IAAXpC,IACLoC,GAAepC,EAAOrD,qBAAuBE,OAC/CjqB,EAAQotB,EACRa,EAAUb,EAAOrD,oBAKnB/pB,EAAQonB,EAGV,IAAM+D,EAAQnrB,EAAMmrB,OAASnrB,EACvBkrB,EAAUlrB,EAAMkrB,QAChBE,EAAUprB,EAAMorB,SAAW,GAC3BC,EAAQrrB,EAAMqrB,OAAS,GACvBJ,EAAUjrB,EAAM+pB,mBAElB/pB,EAAMirB,QAAUjrB,EADhBkwB,aAAWlwB,EAAMirB,QAAUjrB,GAuB/B,GApBgB,IAAZiuB,IACEjuB,EAAMiuB,UAASA,EAAUjuB,EAAMiuB,cAER,IAAhBhD,EAAOjF,WAA6C,IAAdiF,EAAOkF,KACtDlC,EAAU,QAGe,IAAhBhD,EAAOjF,WAA6C,IAAdiF,EAAOkF,KACtDlC,EAAU,IAIdnuB,KAAKynB,cAAgB0G,EAGL,IAAZA,IACFnuB,KAAKswB,aAAeC,aAAQpF,EAAOV,KACnCzqB,KAAKwwB,eAAiBD,aAAQpF,EAAOkF,MAGlCrwB,KAAKioB,UAAW,CACnBjoB,KAAK4vB,UACL,IAAM1mB,EAAO,IAAIunB,IAAgB,IAAZtC,EAAgBllB,OAAOC,KAAKof,MAAoB,IACrD,IAAZ6F,GAA6B,OAAZA,GACnBjlB,EACGtK,IAAI,MACJA,IAAI,QACJA,IAAI,QACJA,IAAI,SACJA,IAAI,UACJA,IAAI,WAGTsK,EAAK6mB,SAAQ,SAAAroB,GACX,IAAM4b,EAAQ6H,EAAOzjB,GACfgpB,EAAMH,aAAQpF,EAAOzjB,IAC3B,EAAKA,EAAM,cAAwB,QAARgpB,EAAgBpN,EAAQoN,KAInDtF,IAAYprB,KAAKmoB,cACnBnoB,KAAKiwB,eACLhnB,OAAOugB,QAAQ4B,GAAS2E,SAAQ,YAAY,gBAAVtG,EAAU,KAAPrgB,EAAO,KACtC,MAAOA,GAAmC8F,OAAOyhB,MAAMvnB,KAC3D,EAAKqgB,EAAI,gBAAkBrgB,OAI1BpJ,KAAKooB,gBACRpoB,KAAKgwB,iBACL/mB,OAAOugB,QAAQ6B,GAAO0E,SAAQ,YAAY,gBAAVtG,EAAU,KAAPrgB,EAAO,KAElC1B,EAAM+hB,EAAEqG,SAAS,UAAYrG,EAAE9c,MAAM,UAAU,GAAK8c,EAC1D,EAAK/hB,EAAM,eAAiB0B,MAI3BpJ,KAAKkoB,cACRloB,KAAKkwB,eAEHlwB,KAAKyoB,aADS,IAAZ0F,EACkByC,aAAYtF,EAAStrB,KAAKkrB,aAAaE,SAEvCE,EAEtBtrB,KAAKwoB,eAAiBxoB,KAAK6pB,iBAAiB,IAGzC7pB,KAAKqoB,YACRroB,KAAKmwB,aACLnwB,KAAK0oB,WAAa6C,KAIxBrmB,MAAO,CACLslB,aADK,WAEH,IACExqB,KAAK4nB,aAAeiJ,aAAc,CAAExF,MAAOrrB,KAAKwqB,eAChDxqB,KAAKgoB,cAAe,EACpB,MAAOxa,GACPxN,KAAKgoB,cAAe,EACpB1Z,QAAQoe,KAAKlf,KAGjBib,aAAc,CACZxY,QADY,WAEV,GAA8D,IAA1DhH,OAAO6nB,oBAAoB9wB,KAAK2nB,eAAeniB,OACnD,IACExF,KAAKivB,gCACLjvB,KAAK8nB,gBAAiB,EACtB,MAAOta,GACPxN,KAAK8nB,gBAAiB,EACtBxZ,QAAQoe,KAAKlf,KAGjB0C,MAAM,GAERwY,WAAY,CACVzY,QADU,WAER,IACEjQ,KAAK6nB,aAAekJ,aAAc,CAAExF,MAAOvrB,KAAK0oB,aAChD1oB,KAAKgxB,cAAe,EACpB,MAAOxjB,GACPxN,KAAKgxB,cAAe,EACpB1iB,QAAQoe,KAAKlf,KAGjB0C,MAAM,GAERoa,cAnCK,WAoCH,IACEtqB,KAAKivB,gCACLjvB,KAAK+nB,eAAgB,EACrB/nB,KAAK8nB,gBAAiB,EACtB,MAAOta,GACPxN,KAAK+nB,eAAgB,EACrB/nB,KAAK8nB,gBAAiB,EACtBxZ,QAAQoe,KAAKlf,KAGjB+c,eA9CK,WA+CH,IACEvqB,KAAKivB,gCACL,MAAOzhB,GACPc,QAAQoe,KAAKlf,KAGjBjG,SArDK,WAqDO,WACVvH,KAAKqnB,cAAgBpe,OAAOugB,QAAQxpB,KAAKonB,iBAAiB6J,MAAK,YAAY,gBAAPC,GAAO,WACzE,OAAI7pB,MAAMgjB,QAAQ6G,IAChB5iB,QAAQ6iB,IAAID,EAAE,KAAO,EAAK3pB,SAAU,EAAKA,UAClC2pB,EAAE,KAAO,EAAK3pB,UAEd2pB,EAAEhjB,OAAS,EAAK3G,YAExB,IAEL8f,cA/DK,WAgEHrnB,KAAKkuB,iBACwB,IAAzBluB,KAAKoqB,iBACFpqB,KAAKooB,eACRpoB,KAAKgwB,iBAGFhwB,KAAKkoB,aACRloB,KAAKkwB,eAGFlwB,KAAKmoB,aACRnoB,KAAKiwB,eAGFjwB,KAAKioB,YACRjoB,KAAK4vB,UAEL5vB,KAAKoxB,aAAepxB,KAAKqnB,cAAc,GACvCrnB,KAAKswB,aAAetwB,KAAKqnB,cAAc,GACvCrnB,KAAKwwB,eAAiBxwB,KAAKqnB,cAAc,GACzCrnB,KAAKqxB,eAAiBrxB,KAAKqnB,cAAc,GACzCrnB,KAAKsxB,eAAiBtxB,KAAKqnB,cAAc,GACzCrnB,KAAKuxB,iBAAmBvxB,KAAKqnB,cAAc,GAC3CrnB,KAAKwxB,gBAAkBxxB,KAAKqnB,cAAc,GAC1CrnB,KAAKyxB,kBAAoBzxB,KAAKqnB,cAAc,KAErCrnB,KAAKoqB,iBAAmB,GACjCpqB,KAAKwuB,oBAAoBxuB,KAAKqnB,cAAcC,MAAO,EAAGtnB,KAAKqnB,cAAciG,W,OC3wBlE,OAFkB,IAAgB,GAAQ,CAAC,CAAC,S,mWlBNzD,YAkhCM,MAlhCN,GAkhCM,CAjhCJ,YAsHM,MAtHN,GAsHM,CArHJ,YAwFM,MAxFN,GAwFM,CAtFI,EAAY,c,cADpB,YA6CM,MA7CN,GA6CM,CAzCJ,YAEM,MAFN,GAEM,YADD,EAAAxD,kBAAgB,GAErB,YAqCM,MArCN,GAqCM,CApCkC,6BAAtB,EAAAvC,aAAaroB,M,cAA7B,YAaW,aAZT,YAKS,UAJPR,MAAM,qBACL,QAAK,oBAAE,EAAAgwB,WAAA,EAAAA,aAAA,K,YAEL,EAAAhuB,GAAG,uCAAD,GAEP,YAKS,UAJPhC,MAAM,qBACL,QAAK,oBAAE,EAAAiwB,eAAA,EAAAA,iBAAA,K,YAEL,EAAAjuB,GAAG,yCAAD,I,KAGY,EAAA6mB,aAA8B,mB,cACjD,YAKS,U,MAJP7oB,MAAM,qBACL,QAAK,oBAAE,EAAAwvB,gBAAA,EAAAA,kBAAA,K,YAEL,EAAAxtB,GAAG,oBAAD,K,cAGT,YAaW,aAZT,YAKS,UAJPhC,MAAM,qBACL,QAAK,oBAAE,EAAAgwB,WAAA,EAAAA,aAAA,K,YAEL,EAAAhuB,GAAG,uCAAD,GAEP,YAKS,UAJPhC,MAAM,qBACL,QAAK,oBAAE,EAAAwvB,gBAAA,EAAAA,kBAAA,K,YAEL,EAAAxtB,GAAG,uCAAD,I,6BAKb,YAwCM,MAxCN,GAwCM,CAvCJ,YAwBM,MAxBN,GAwBM,C,wBAvBD,EAAAA,GAAG,qBAAsB,IAC5B,eAqBQ,QArBR,GAqBQ,CAjBN,YAgBS,GAfPyC,GAAG,kB,WACM,EAAAoE,S,qCAAA,EAAQ,YACjB7I,MAAM,mB,qBAGJ,IAAgC,E,gBADlC,YAUS,qBATS,EAAA0oB,gBAAT3lB,I,cADT,YAUS,UARNiG,IAAKjG,EAAMyM,KACX7F,MAAO5G,EAAMyM,MAAQzM,EAAM,GAC3BA,MAAK,a,gBAAyC,EAAK,KAAQ,EAAM,OAAS,EAAM,QAAQ,OAAO,G,MAA+B,EAAK,KAAQ,EAAM,OAAS,EAAM,QAAQ,OAAO,Q,YAK7KA,EAAM,IAAMA,EAAMyM,MAAI,S,mCAKjC,YAaM,MAbN,GAaM,CAZJ,YAKS,UAJPxP,MAAM,qBACL,QAAK,oBAAE,EAAA2wB,aAAA,EAAAA,eAAA,K,YAEL,EAAA3uB,GAAG,0BAAD,GAEP,YAKS,UAJPhC,MAAM,qBACL,QAAK,oBAAE,EAAA6wB,aAAA,EAAAA,eAAA,K,YAEL,EAAA7uB,GAAG,0BAAD,SAKb,YA2BM,MA3BN,GA2BM,CA1BJ,YAIO,OAJP,GAIO,CAHL,YAEW,G,WAFQ,EAAAunB,U,qCAAA,EAAS,c,qBAC1B,IAA8C,C,wBAA3C,EAAAvnB,GAAG,uCAAD,K,yBAGT,YAIO,OAJP,GAIO,CAHL,YAEW,G,WAFQ,EAAAwnB,Y,qCAAA,EAAW,gB,qBAC5B,IAAgD,C,wBAA7C,EAAAxnB,GAAG,yCAAD,K,yBAGT,YAIO,OAJP,GAIO,CAHL,YAEW,G,WAFQ,EAAAynB,Y,uCAAA,EAAW,gB,qBAC5B,IAAgD,C,wBAA7C,EAAAznB,GAAG,yCAAD,K,yBAGT,YAIO,OAJP,GAIO,CAHL,YAEW,G,WAFQ,EAAA0nB,c,uCAAA,EAAa,kB,qBAC9B,IAAkD,C,wBAA/C,EAAA1nB,GAAG,2CAAD,K,yBAGT,YAIO,OAJP,GAIO,CAHL,YAEW,G,WAFQ,EAAA2nB,U,uCAAA,EAAS,c,qBAC1B,IAA8C,C,wBAA3C,EAAA3nB,GAAG,uCAAD,K,yBAGT,YAAyD,qBAAnD,EAAAA,GAAG,2CAAD,OAIZ,YAAiC,GAAvBe,MAAK,YAAE,EAAAkrB,e,iCAEjB,YAi4Ba,UAh4BX,YA+3Be,GA/3BDjlB,IAAI,eAAa,C,oBAC7B,IA0GM,CA1GN,YA0GM,OAzGHtD,MAAO,EAAA1D,GAAG,2CACXhC,MAAM,mB,CAEN,YAgBM,MAhBN,GAgBM,CAfJ,YAAsC,qBAAhC,EAAAgC,GAAG,wBAAD,GACR,YAaM,MAbN,GAaM,CAZJ,YAKS,UAJPhC,MAAM,qBACL,QAAK,sBAAE,EAAAuxB,cAAA,EAAAA,gBAAA,K,YAEL,EAAAvvB,GAAG,0CAAD,GAEP,YAKS,UAJPhC,MAAM,qBACL,QAAK,sBAAE,EAAAkxB,SAAA,EAAAA,WAAA,K,YAEL,EAAAlvB,GAAG,sCAAD,OAIX,YAA2C,qBAArC,EAAAA,GAAG,6BAAD,GACR,YAAsD,sBAA/C,EAAAA,GAAG,sCAAD,GACT,YAgCM,MAhCN,GAgCM,CA/BJ,YAIE,G,WAHS,EAAA0wB,a,uCAAA,EAAY,gBACrBljB,KAAK,UACJ9J,MAAO,EAAA1D,GAAG,wB,+BAEb,YAIE,G,WAHS,EAAAgxB,e,uCAAA,EAAc,kBACvBxjB,KAAK,YACJgU,SAAU,EAAAgJ,aAAaE,QAAQK,I,kCAElC,YAIE,G,WAHS,EAAA+E,e,uCAAA,EAAc,kBACvBtiB,KAAK,YACJ9J,MAAO,EAAA1D,GAAG,kB,+BAEb,YAAoD,GAApCilB,SAAU,EAAA6F,gBAAgBmG,Q,qBAC1C,YAME,G,WALS,EAAAC,iB,uCAAA,EAAgB,oBACzB1jB,KAAK,cACJgU,SAAU,EAAAgJ,aAAaC,OAAO0G,KAC9BztB,MAAO,EAAA1D,GAAG,mBACVkkB,6BAAiD,IAAnB,EAAAyM,gB,kEAEjC,YAME,G,WALS,EAAAA,e,uCAAA,EAAc,kBACvBnjB,KAAK,YACJgU,SAAU,EAAAgJ,aAAaC,OAAO2G,OAC9B1tB,MAAO,EAAA1D,GAAG,kBACVkkB,6BAAmD,IAArB,EAAAgN,kB,kEAEjC,YAAoD,GAApCjM,SAAU,EAAA6F,gBAAgBuG,Q,uBAE5C,YAmBM,MAnBN,GAmBM,CAlBJ,YAIE,G,WAHS,EAAAzB,a,uCAAA,EAAY,gBACrBpiB,KAAK,UACJ9J,MAAO,EAAA1D,GAAG,wB,+BAEb,YAKE,G,WAJS,EAAAsxB,iB,uCAAA,EAAgB,oBACzB9jB,KAAK,cACJ9J,MAAO,EAAA1D,GAAG,iBACVwhB,SAAU,EAAAgJ,aAAaC,OAAO8G,Q,0CAEjC,YAKE,G,WAJS,EAAAC,iB,uCAAA,EAAgB,oBACzBhkB,KAAK,cACJ9J,MAAO,EAAA1D,GAAG,kBACVwhB,SAAU,EAAAgJ,aAAaC,OAAOgH,Q,0CAEjC,YAA+D,qBAAzD,EAAAzxB,GAAG,iDAAD,KAEV,YAAsD,sBAA/C,EAAAA,GAAG,sCAAD,GACT,YAaM,MAbN,GAaM,CAZJ,YAIE,G,WAHS,EAAA4wB,e,uCAAA,EAAc,kBACvBpjB,KAAK,YACJ9J,MAAO,EAAA1D,GAAG,kB,+BAEb,YAAoD,GAApCilB,SAAU,EAAA6F,gBAAgB4G,Q,qBAC1C,YAIE,G,WAHS,EAAAZ,gB,uCAAA,EAAe,mBACxBtjB,KAAK,aACJ9J,MAAO,EAAA1D,GAAG,mB,+BAEb,YAAqD,GAArCilB,SAAU,EAAA6F,gBAAgB6G,S,uBAE5C,YAaM,MAbN,GAaM,CAZJ,YAIE,G,WAHS,EAAAd,iB,uCAAA,EAAgB,oBACzBrjB,KAAK,cACJ9J,MAAO,EAAA1D,GAAG,oB,+BAEb,YAAsD,GAAtCilB,SAAU,EAAA6F,gBAAgB8G,U,qBAC1C,YAIE,G,WAHS,EAAAb,kB,uCAAA,EAAiB,qBAC1BvjB,KAAK,eACJ9J,MAAO,EAAA1D,GAAG,qB,+BAEb,YAAuD,GAAvCilB,SAAU,EAAA6F,gBAAgB+G,W,uBAE5C,YAA2C,qBAArC,EAAA7xB,GAAG,6BAAD,I,MAGV,YA+jBM,OA9jBH0D,MAAO,EAAA1D,GAAG,6CACXhC,MAAM,mB,CAEN,YAcM,MAdN,GAcM,CAbJ,YAAsC,qBAAhC,EAAAgC,GAAG,wBAAD,GACR,YAKS,UAJPhC,MAAM,qBACL,QAAK,sBAAE,EAAAuxB,cAAA,EAAAA,gBAAA,K,YAEL,EAAAvvB,GAAG,0CAAD,GAEP,YAKS,UAJPhC,MAAM,qBACL,QAAK,sBAAE,EAAAkxB,SAAA,EAAAA,WAAA,K,YAEL,EAAAlvB,GAAG,sCAAD,KAGT,YAsEM,MAtEN,GAsEM,CArEJ,YAAwD,sBAAjD,EAAAA,GAAG,wCAAD,GACT,YAKE,G,WAJS,EAAA8xB,mB,uCAAA,EAAkB,sBAC3BtkB,KAAK,gBACJgU,SAAU,EAAAgJ,aAAaC,OAAO2G,OAC9B1tB,MAAO,EAAA1D,GAAG,mB,0CAEb,YAAsD,GAAtCilB,SAAU,EAAA6F,gBAAgBiH,U,qBAC1C,YAKE,G,WAJS,EAAAC,wB,uCAAA,EAAuB,2BAChCxkB,KAAK,qBACJgU,SAAU,EAAAgJ,aAAaC,OAAOwH,OAC9BvuB,MAAO,EAAA1D,GAAG,uB,0CAEb,YAA2D,GAA3CilB,SAAU,EAAA6F,gBAAgBoH,e,qBAC1C,YAAyD,sBAAlD,EAAAlyB,GAAG,yCAAD,GACT,YAKE,G,WAJS,EAAAmyB,qB,uCAAA,EAAoB,wBAC7B3kB,KAAK,aACJ9J,MAAO,EAAA1D,GAAG,8CACVwhB,SAAU,EAAAgJ,aAAaC,OAAO2H,Y,0CAEjC,YAKE,G,WAJS,EAAAC,yB,uCAAA,EAAwB,4BACjC7kB,KAAK,iBACJ9J,MAAO,EAAA1D,GAAG,iBACVwhB,SAAU,EAAAgJ,aAAaC,OAAO6H,gB,0CAEjC,YAGE,GAFCrN,SAAU,EAAA6F,gBAAgBwH,eAC3BtN,MAAA,I,qBAEF,YAKE,G,WAJS,EAAAuN,uB,uCAAA,EAAsB,0BAC/B/kB,KAAK,eACJ9J,MAAO,EAAA1D,GAAG,gDACVwhB,SAAU,EAAAgJ,aAAaC,OAAO+H,c,0CAEjC,YAKE,G,WAJS,EAAAC,2B,uCAAA,EAA0B,8BACnCjlB,KAAK,mBACJ9J,MAAO,EAAA1D,GAAG,iBACVwhB,SAAU,EAAAgJ,aAAaC,OAAOiI,kB,0CAEjC,YAGE,GAFCzN,SAAU,EAAA6F,gBAAgB4H,iBAC3B1N,MAAA,I,qBAEF,YAKE,G,WAJS,EAAA2N,uB,uCAAA,EAAsB,0BAC/BnlB,KAAK,eACJ9J,MAAO,EAAA1D,GAAG,gDACVwhB,SAAU,EAAAgJ,aAAaC,OAAOmI,c,0CAEjC,YAKE,G,WAJS,EAAAC,2B,uCAAA,EAA0B,8BACnCrlB,KAAK,mBACJ9J,MAAO,EAAA1D,GAAG,iBACVwhB,SAAU,EAAAgJ,aAAaC,OAAOqI,kB,0CAEjC,YAGE,GAFC7N,SAAU,EAAA6F,gBAAgBgI,iBAC3B9N,MAAA,I,qBAEF,YAIE,G,WAHS,EAAA+N,kB,uCAAA,EAAiB,qBAC1BvlB,KAAK,eACJgU,SAAU,EAAAgJ,aAAaE,QAAQsI,O,oCAGpC,YAkBM,MAlBN,GAkBM,CAjBJ,YAAyD,sBAAlD,EAAAhzB,GAAG,yCAAD,GACT,YAKE,G,WAJS,EAAAizB,4B,uCAAA,EAA2B,+BACpCzlB,KAAK,oBACJ9J,MAAO,EAAA1D,GAAG,qDACVwhB,SAAU,EAAAgJ,aAAaC,OAAOyI,mB,0CAEjC,YAKE,G,WAJS,EAAAC,gC,uCAAA,EAA+B,mCACxC3lB,KAAK,wBACJ9J,MAAO,EAAA1D,GAAG,iBACVwhB,SAAU,EAAAgJ,aAAaC,OAAO2I,uB,0CAEjC,YAGE,GAFCnO,SAAU,EAAA6F,gBAAgBsI,sBAC3BpO,MAAA,I,uBAGJ,YAkCM,MAlCN,GAkCM,CAjCJ,YAAgE,sBAAzD,EAAAhlB,GAAG,gDAAD,GACT,YAKE,G,WAJS,EAAAqzB,gB,uCAAA,EAAe,mBACxB7lB,KAAK,aACJgU,SAAU,EAAAgJ,aAAaC,OAAOR,MAC9BvmB,MAAO,EAAA1D,GAAG,wB,0CAEb,YAKE,G,WAJS,EAAAszB,kB,uCAAA,EAAiB,qBAC1B9lB,KAAK,eACJgU,SAAU,EAAAgJ,aAAaE,QAAQT,MAC/BtkB,SAA8B,gBAApB,EAAA0tB,iB,6CAEb,YAKE,G,WAJS,EAAAE,oB,uCAAA,EAAmB,uBAC5B/lB,KAAK,iBACJgU,SAAU,EAAAgJ,aAAaC,OAAO+I,UAC9B9vB,MAAO,EAAA1D,GAAG,kB,0CAEb,YAGE,GAFCilB,SAAU,EAAA6F,gBAAgB0I,UAC3BxO,MAAA,I,qBAEF,YAKE,G,WAJS,EAAAyO,oB,uCAAA,EAAmB,uBAC5BjmB,KAAK,iBACJgU,SAAU,EAAAgJ,aAAaC,OAAOiJ,UAC9BhwB,MAAO,EAAA1D,GAAG,mB,0CAEb,YAGE,GAFCilB,SAAU,EAAA6F,gBAAgB4I,UAC3B1O,MAAA,I,uBAGJ,YAsBM,MAtBN,GAsBM,CArBJ,YAA2D,sBAApD,EAAAhlB,GAAG,2CAAD,GACT,YAKE,G,WAJS,EAAA2zB,iB,uCAAA,EAAgB,oBACzBnmB,KAAK,cACJgU,SAAU,EAAAgJ,aAAaC,OAAOmJ,OAC9BlwB,MAAO,EAAA1D,GAAG,wB,0CAEb,YAKE,G,WAJS,EAAA6zB,qB,uCAAA,EAAoB,wBAC7BrmB,KAAK,kBACJgU,SAAU,EAAAgJ,aAAaC,OAAOqJ,WAC9BpwB,MAAO,EAAA1D,GAAG,kB,0CAEb,YAAwD,GAAxCilB,SAAU,EAAA6F,gBAAgBgJ,Y,qBAC1C,YAKE,G,WAJS,EAAAC,qB,uCAAA,EAAoB,wBAC7BvmB,KAAK,kBACJgU,SAAU,EAAAgJ,aAAaC,OAAOuJ,WAC9BtwB,MAAO,EAAA1D,GAAG,mB,0CAEb,YAAwD,GAAxCilB,SAAU,EAAA6F,gBAAgBkJ,Y,uBAE5C,YAqBM,MArBN,GAqBM,CApBJ,YAA0D,sBAAnD,EAAAh0B,GAAG,0CAAD,GACT,YAKE,G,WAJS,EAAAi0B,gB,uCAAA,EAAe,mBACxBzmB,KAAK,aACJgU,SAAU,EAAAgJ,aAAaC,OAAOjrB,MAC9BkE,MAAO,EAAA1D,GAAG,wB,0CAEb,YAKE,G,WAJS,EAAAk0B,kB,uCAAA,EAAiB,qBAC1B1mB,KAAK,eACJgU,SAAU,EAAAgJ,aAAaE,QAAQlrB,MAC/BmG,SAA8B,gBAApB,EAAAsuB,iB,6CAEb,YAKE,G,WAJS,EAAAE,oB,uCAAA,EAAmB,uBAC5B3mB,KAAK,iBACJgU,SAAU,EAAAgJ,aAAaC,OAAO2J,UAC9B1wB,MAAO,EAAA1D,GAAG,kB,0CAEb,YAAuD,GAAvCilB,SAAU,EAAA6F,gBAAgBsJ,W,uBAE5C,YAoHM,MApHN,GAoHM,CAnHJ,YAA2D,sBAApD,EAAAp0B,GAAG,2CAAD,GACT,YAKE,G,WAJS,EAAAq0B,c,uCAAA,EAAa,iBACtB7mB,KAAK,WACJgU,SAAU,EAAAgJ,aAAaC,OAAOV,IAC9BrmB,MAAO,EAAA1D,GAAG,wB,0CAEb,YAKE,G,WAJS,EAAAs0B,gB,uCAAA,EAAe,mBACxB9mB,KAAK,aACJgU,SAAU,EAAAgJ,aAAaE,QAAQX,IAC/BpkB,SAA4B,gBAAlB,EAAA0uB,e,6CAEb,YAKE,G,WAJS,EAAAE,kB,uCAAA,EAAiB,qBAC1B/mB,KAAK,eACJgU,SAAU,EAAAgJ,aAAaC,OAAO+J,QAC9B9wB,MAAO,EAAA1D,GAAG,kB,0CAEb,YAAqD,GAArCilB,SAAU,EAAA6F,gBAAgB0J,S,qBAC1C,YAKE,G,WAJS,EAAAC,uB,uCAAA,EAAsB,0BAC/BjnB,KAAK,oBACJgU,SAAU,EAAAgJ,aAAaC,OAAOiK,aAC9BhxB,MAAO,EAAA1D,GAAG,gD,0CAEb,YAA0D,GAA1CilB,SAAU,EAAA6F,gBAAgB4J,c,qBAC1C,YAKE,G,WAJS,EAAAC,wB,uCAAA,EAAuB,2BAChCnnB,KAAK,qBACJgU,SAAU,EAAAgJ,aAAaC,OAAOmK,cAC9BlxB,MAAO,EAAA1D,GAAG,2C,0CAEb,YAA2D,GAA3CilB,SAAU,EAAA6F,gBAAgB8J,e,qBAC1C,YAA2D,sBAApD,EAAA50B,GAAG,2CAAD,GACT,YAKE,G,WAJS,EAAA60B,qB,uCAAA,EAAoB,wBAC7BrnB,KAAK,kBACJgU,SAAU,EAAAgJ,aAAaC,OAAOqK,WAC9BpxB,MAAO,EAAA1D,GAAG,wB,0CAEb,YAKE,G,WAJS,EAAA+0B,yB,uCAAA,EAAwB,4BACjCvnB,KAAK,sBACJgU,SAAU,EAAAgJ,aAAaC,OAAOuK,eAC9BtxB,MAAO,EAAA1D,GAAG,kB,0CAEb,YAA4D,GAA5CilB,SAAU,EAAA6F,gBAAgBkK,gB,qBAC1C,YAKE,G,WAJS,EAAAC,8B,uCAAA,EAA6B,iCACtCznB,KAAK,2BACJgU,SAAU,EAAAgJ,aAAaC,OAAOyK,oBAC9BxxB,MAAO,EAAA1D,GAAG,gD,0CAEb,YAAiE,GAAjDilB,SAAU,EAAA6F,gBAAgBoK,qB,qBAC1C,YAKE,G,WAJS,EAAAC,+B,uCAAA,EAA8B,kCACvC3nB,KAAK,4BACJgU,SAAU,EAAAgJ,aAAaC,OAAO2K,qBAC9B1xB,MAAO,EAAA1D,GAAG,2C,0CAEb,YAAkE,GAAlDilB,SAAU,EAAA6F,gBAAgBsK,sB,qBAC1C,YAA4D,sBAArD,EAAAp1B,GAAG,4CAAD,GACT,YAKE,G,WAJS,EAAAq1B,sB,uCAAA,EAAqB,yBAC9B7nB,KAAK,mBACJgU,SAAU,EAAAgJ,aAAaC,OAAO6K,YAC9B5xB,MAAO,EAAA1D,GAAG,wB,0CAEb,YAKE,G,WAJS,EAAAu1B,0B,uCAAA,EAAyB,6BAClC/nB,KAAK,uBACJgU,SAAU,EAAAgJ,aAAaC,OAAO+K,gBAC9B9xB,MAAO,EAAA1D,GAAG,kB,0CAEb,YAKE,G,WAJS,EAAAy1B,+B,uCAAA,EAA8B,kCACvCjoB,KAAK,4BACJgU,SAAU,EAAAgJ,aAAaC,OAAOiL,qBAC9BhyB,MAAO,EAAA1D,GAAG,gD,0CAEb,YAKE,G,WAJS,EAAA21B,gC,uCAAA,EAA+B,mCACxCnoB,KAAK,6BACJgU,SAAU,EAAAgJ,aAAaC,OAAOmL,sBAC9BlyB,MAAO,EAAA1D,GAAG,2C,0CAEb,YAA2D,sBAApD,EAAAA,GAAG,2CAAD,GACT,YAKE,G,WAJS,EAAA61B,qB,uCAAA,EAAoB,wBAC7BroB,KAAK,kBACJgU,SAAU,EAAAgJ,aAAaC,OAAOqL,WAC9BpyB,MAAO,EAAA1D,GAAG,wB,0CAEb,YAKE,G,WAJS,EAAA+1B,yB,uCAAA,EAAwB,4BACjCvoB,KAAK,sBACJgU,SAAU,EAAAgJ,aAAaC,OAAOuL,eAC9BtyB,MAAO,EAAA1D,GAAG,kB,0CAEb,YAA4D,GAA5CilB,SAAU,EAAA6F,gBAAgBkL,gB,qBAC1C,YAKE,G,WAJS,EAAAC,8B,uCAAA,EAA6B,iCACtCzoB,KAAK,2BACJgU,SAAU,EAAAgJ,aAAaC,OAAOyL,oBAC9BxyB,MAAO,EAAA1D,GAAG,gD,0CAEb,YAAiE,GAAjDilB,SAAU,EAAA6F,gBAAgBoL,qB,qBAC1C,YAKE,G,WAJS,EAAAC,+B,uCAAA,EAA8B,kCACvC3oB,KAAK,4BACJgU,SAAU,EAAAgJ,aAAaC,OAAO2L,qBAC9B1yB,MAAO,EAAA1D,GAAG,2C,0CAEb,YAAkE,GAAlDilB,SAAU,EAAA6F,gBAAgBsL,sB,uBAE5C,YAsBM,MAtBN,GAsBM,CArBJ,YAAwD,sBAAjD,EAAAp2B,GAAG,wCAAD,GACT,YAKE,G,WAJS,EAAAq2B,c,uCAAA,EAAa,iBACtB7oB,KAAK,WACJgU,SAAU,EAAAgJ,aAAaC,OAAO6L,IAC9B5yB,MAAO,EAAA1D,GAAG,wB,0CAEb,YAKE,G,WAJS,EAAAu2B,kB,uCAAA,EAAiB,qBAC1B/oB,KAAK,eACJgU,SAAU,EAAAgJ,aAAaC,OAAO+L,QAC9B9yB,MAAO,EAAA1D,GAAG,kB,0CAEb,YAAqD,GAArCilB,SAAU,EAAA6F,gBAAgB0L,S,qBAC1C,YAKE,G,WAJS,EAAAC,wB,uCAAA,EAAuB,2BAChCjpB,KAAK,qBACJgU,SAAU,EAAAgJ,aAAaC,OAAOiM,cAC9BhzB,MAAO,EAAA1D,GAAG,kB,0CAEb,YAA2D,GAA3CilB,SAAU,EAAA6F,gBAAgB4L,e,uBAE5C,YAcM,MAdN,GAcM,CAbJ,YAA2D,sBAApD,EAAA12B,GAAG,2CAAD,GACT,YAKE,G,WAJS,EAAA22B,iB,uCAAA,EAAgB,oBACzBnpB,KAAK,cACJgU,SAAU,EAAAgJ,aAAaC,OAAOmM,OAC9BlzB,MAAO,EAAA1D,GAAG,gC,0CAEb,YAKE,G,WAJS,EAAA62B,mB,uCAAA,EAAkB,sBAC3BrpB,KAAK,gBACJgU,SAAU,EAAAgJ,aAAaE,QAAQkM,OAC/BjxB,SAA+B,gBAArB,EAAAgxB,kB,+CAGf,YAyBM,MAzBN,GAyBM,CAxBJ,YAA8D,sBAAvD,EAAA32B,GAAG,8CAAD,GACT,YAKE,G,WAJS,EAAA82B,gB,uCAAA,EAAe,mBACxBtpB,KAAK,aACJgU,SAAU,EAAAgJ,aAAaC,OAAOsM,MAC9BrzB,MAAO,EAAA1D,GAAG,kB,0CAEb,YAKE,G,WAJS,EAAAg3B,oB,uCAAA,EAAmB,uBAC5BxpB,KAAK,iBACJgU,SAAU,EAAAgJ,aAAaC,OAAOwM,UAC9BvzB,MAAO,EAAA1D,GAAG,mB,0CAEb,YAKE,G,WAJS,EAAAk3B,qB,uCAAA,EAAoB,wBAC7B1pB,KAAK,kBACJgU,SAAU,EAAAgJ,aAAaC,OAAO0M,WAC9BzzB,MAAO,EAAA1D,GAAG,gD,0CAEb,YAIE,G,WAHS,EAAAo3B,kB,uCAAA,EAAiB,qBAC1B5pB,KAAK,eACJgU,SAAU,EAAAgJ,aAAaE,QAAQqM,O,oCAGpC,YAcM,MAdN,GAcM,CAbJ,YAA4D,sBAArD,EAAA/2B,GAAG,4CAAD,GACT,YAKE,G,WAJS,EAAAq3B,mB,uCAAA,EAAkB,sBAC3B7pB,KAAK,WACJ9J,MAAO,EAAA1D,GAAG,2CACVwhB,SAAU,EAAAgJ,aAAaC,OAAO6M,U,0CAEjC,YAKE,G,WAJS,EAAAC,qB,uCAAA,EAAoB,wBAC7B/pB,KAAK,kBACJgU,SAAU,EAAAgJ,aAAaE,QAAQ4M,SAC/B3xB,SAAmC,gBAAzB,EAAA4xB,sB,+CAGf,YAQM,MARN,GAQM,CAPJ,YAA6D,sBAAtD,EAAAv3B,GAAG,6CAAD,GACT,YAKE,G,WAJS,EAAAw3B,oB,uCAAA,EAAmB,uBAC5BhqB,KAAK,YACJ9J,MAAO,EAAA1D,GAAG,4CACVwhB,SAAU,EAAAgJ,aAAaC,OAAOgN,W,4CAGnC,YAcM,MAdN,GAcM,CAbJ,YAAwD,sBAAjD,EAAAz3B,GAAG,wCAAD,GACT,YAKE,G,WAJS,EAAA03B,e,uCAAA,EAAc,kBACvBlqB,KAAK,OACJ9J,MAAO,EAAA1D,GAAG,uBACVwhB,SAAU,EAAAgJ,aAAaC,OAAOkN,M,0CAEjC,YAKE,G,WAJS,EAAAC,mB,uCAAA,EAAkB,sBAC3BpqB,KAAK,WACJ9J,MAAO,EAAA1D,GAAG,iBACVwhB,SAAU,EAAAgJ,aAAaC,OAAOoN,U,4CAGnC,YAQM,MARN,GAQM,CAPJ,YAAyD,sBAAlD,EAAA73B,GAAG,yCAAD,GACT,YAKE,G,WAJS,EAAA83B,e,uCAAA,EAAc,kBACvBtqB,KAAK,OACJ9J,MAAO,EAAA1D,GAAG,wCACVwhB,SAAU,EAAAgJ,aAAaC,OAAO1qB,M,4CAGnC,YAsBM,MAtBN,GAsBM,CArBJ,YAA6D,sBAAtD,EAAAC,GAAG,6CAAD,GACT,YAKE,G,WAJS,EAAA+3B,oB,uCAAA,EAAmB,uBAC5BvqB,KAAK,YACJ9J,MAAO,EAAA1D,GAAG,uBACVwhB,SAAU,EAAAgJ,aAAaC,OAAOuN,W,0CAEjC,YAKE,G,WAJS,EAAAC,wB,uCAAA,EAAuB,2BAChCzqB,KAAK,gBACJ9J,MAAO,EAAA1D,GAAG,iBACVwhB,SAAU,EAAAgJ,aAAaC,OAAOyN,e,0CAEjC,YAA2D,GAA3CjT,SAAU,EAAA6F,gBAAgBoN,e,qBAC1C,YAKE,G,WAJS,EAAAC,wB,uCAAA,EAAuB,2BAChC3qB,KAAK,gBACJ9J,MAAO,EAAA1D,GAAG,kBACVwhB,SAAU,EAAAgJ,aAAaC,OAAO2N,e,0CAEjC,YAA2D,GAA3CnT,SAAU,EAAA6F,gBAAgBsN,e,uBAE5C,YA4BM,MA5BN,GA4BM,CA3BJ,YAA2D,sBAApD,EAAAp4B,GAAG,2CAAD,GACT,YAKE,G,WAJS,EAAAq4B,kB,uCAAA,EAAiB,qBAC1B7qB,KAAK,UACJ9J,MAAO,EAAA1D,GAAG,uBACVwhB,SAAU,EAAAgJ,aAAaC,OAAO6N,S,0CAEjC,YAKE,G,WAJS,EAAAC,oB,uCAAA,EAAmB,uBAC5B/qB,KAAK,iBACJgU,SAAU,EAAAgJ,aAAaE,QAAQ4N,QAC/B3yB,SAAkC,gBAAxB,EAAA4yB,qB,6CAEb,YAKE,G,WAJS,EAAAC,sB,uCAAA,EAAqB,yBAC9BhrB,KAAK,cACJ9J,MAAO,EAAA1D,GAAG,iBACVwhB,SAAU,EAAAgJ,aAAaC,OAAOgO,a,0CAEjC,YAAyD,GAAzCxT,SAAU,EAAA6F,gBAAgB2N,a,qBAC1C,YAKE,G,WAJS,EAAAC,sB,uCAAA,EAAqB,yBAC9BlrB,KAAK,cACJ9J,MAAO,EAAA1D,GAAG,kBACVwhB,SAAU,EAAAgJ,aAAaC,OAAOkO,a,0CAEjC,YAAyD,GAAzC1T,SAAU,EAAA6F,gBAAgB6N,a,uBAE5C,YAsBM,MAtBN,GAsBM,CArBJ,YAAgE,sBAAzD,EAAA34B,GAAG,gDAAD,GACT,YAKE,G,WAJS,EAAA44B,uB,uCAAA,EAAsB,0BAC/BprB,KAAK,eACJ9J,MAAO,EAAA1D,GAAG,uBACVwhB,SAAU,EAAAgJ,aAAaC,OAAOoO,c,0CAEjC,YAKE,G,WAJS,EAAAC,2B,uCAAA,EAA0B,8BACnCtrB,KAAK,mBACJ9J,MAAO,EAAA1D,GAAG,iBACVwhB,SAAU,EAAAgJ,aAAaC,OAAOsO,kB,0CAEjC,YAA8D,GAA9C9T,SAAU,EAAA6F,gBAAgBiO,kB,qBAC1C,YAKE,G,WAJS,EAAAC,2B,uCAAA,EAA0B,8BACnCxrB,KAAK,mBACJ9J,MAAO,EAAA1D,GAAG,kBACVwhB,SAAU,EAAAgJ,aAAaC,OAAOwO,kB,0CAEjC,YAA8D,GAA9ChU,SAAU,EAAA6F,gBAAgBmO,kB,uBAE5C,YAsBM,MAtBN,GAsBM,CArBJ,YAAgE,sBAAzD,EAAAj5B,GAAG,gDAAD,GACT,YAKE,G,WAJS,EAAAk5B,uB,uCAAA,EAAsB,0BAC/B1rB,KAAK,eACJ9J,MAAO,EAAA1D,GAAG,uBACVwhB,SAAU,EAAAgJ,aAAaC,OAAO0O,c,0CAEjC,YAKE,G,WAJS,EAAAC,2B,uCAAA,EAA0B,8BACnC5rB,KAAK,mBACJ9J,MAAO,EAAA1D,GAAG,iBACVwhB,SAAU,EAAAgJ,aAAaC,OAAO4O,kB,0CAEjC,YAA8D,GAA9CpU,SAAU,EAAA6F,gBAAgBuO,kB,qBAC1C,YAKE,G,WAJS,EAAAC,2B,uCAAA,EAA0B,8BACnC9rB,KAAK,mBACJ9J,MAAO,EAAA1D,GAAG,kBACVwhB,SAAU,EAAAgJ,aAAaC,OAAO8O,kB,0CAEjC,YAA8D,GAA9CtU,SAAU,EAAA6F,gBAAgByO,kB,uBAE5C,YA0DM,MA1DN,GA0DM,CAzDJ,YAAgC,sBAAzB,EAAAv5B,GAAG,gBAAD,GACT,YAKE,G,WAJS,EAAAw5B,iB,uCAAA,EAAgB,oBACzBhsB,KAAK,cACJgU,SAAU,EAAAgJ,aAAaC,OAAOM,GAC9BrnB,MAAO,EAAA1D,GAAG,wB,0CAEb,YAAiE,sBAA1D,EAAAA,GAAG,iDAAD,GACT,YAKE,G,WAJS,EAAAy5B,gC,uCAAA,EAA+B,mCACxCjsB,KAAK,6BACJgU,SAAU,EAAAgJ,aAAaC,OAAOM,GAC9BrnB,MAAO,EAAA1D,GAAG,wB,0CAEb,YAKE,G,WAJS,EAAA05B,kC,uCAAA,EAAiC,qCAC1ClsB,KAAK,+BACJgU,SAAU,EAAAgJ,aAAaC,OAAOjF,KAC9B9hB,MAAO,EAAA1D,GAAG,kB,0CAEb,YAKE,G,WAJS,EAAA25B,kC,uCAAA,EAAiC,qCAC1CnsB,KAAK,+BACJgU,SAAU,EAAAgJ,aAAaC,OAAO0G,KAC9BztB,MAAO,EAAA1D,GAAG,mB,0CAEb,YAKE,G,WAJS,EAAA45B,oC,uCAAA,EAAmC,uCAC5CpsB,KAAK,qCACJgU,SAAU,EAAAgJ,aAAaC,OAAOkF,GAC9BjsB,MAAO,EAAA1D,GAAG,+C,0CAEb,YAAiE,sBAA1D,EAAAA,GAAG,iDAAD,GACT,YAKE,G,WAJS,EAAA65B,gC,yCAAA,EAA+B,mCACxCrsB,KAAK,6BACJgU,SAAU,EAAAgJ,aAAaC,OAAOM,GAC9BrnB,MAAO,EAAA1D,GAAG,wB,0CAEb,YAKE,G,WAJS,EAAA85B,kC,yCAAA,EAAiC,qCAC1CtsB,KAAK,+BACJgU,SAAU,EAAAgJ,aAAaC,OAAOjF,KAC9B9hB,MAAO,EAAA1D,GAAG,kB,0CAEb,YAKE,G,WAJS,EAAA+5B,kC,yCAAA,EAAiC,qCAC1CvsB,KAAK,+BACJgU,SAAU,EAAAgJ,aAAaC,OAAO0G,KAC9BztB,MAAO,EAAA1D,GAAG,mB,0CAEb,YAKE,G,WAJS,EAAAg6B,oC,yCAAA,EAAmC,uCAC5CxsB,KAAK,qCACJgU,SAAU,EAAAgJ,aAAaC,OAAOM,GAC9BrnB,MAAO,EAAA1D,GAAG,+C,mDAKjB,YAqFM,OApFH0D,MAAO,EAAA1D,GAAG,mCACXhC,MAAM,oB,CAEN,YAQM,MARN,GAQM,CAPJ,YAAsC,qBAAhC,EAAAgC,GAAG,wBAAD,GACR,YAKS,UAJPhC,MAAM,qBACL,QAAK,wBAAE,EAAAsxB,gBAAA,EAAAA,kBAAA,K,YAEL,EAAAtvB,GAAG,sCAAD,KAGT,YAOE,G,WANS,EAAAioB,e,yCAAA,EAAc,kBACvBza,KAAK,YACJ9J,MAAO,EAAA1D,GAAG,sBACVwhB,SAAU,EAAAgJ,aAAaG,MAAMZ,IAC9B/H,IAAI,KACJiY,WAAS,K,0CAEX,YAOE,G,WANS,EAAA/R,iB,yCAAA,EAAgB,oBACzB1a,KAAK,cACJ9J,MAAO,EAAA1D,GAAG,wBACVwhB,SAAU,EAAAgJ,aAAaG,MAAMnrB,MAC9BwiB,IAAI,IACJiY,WAAS,K,0CAEX,YAOE,G,WANS,EAAA9R,oB,yCAAA,EAAmB,uBAC5B3a,KAAK,iBACJ9J,MAAO,EAAA1D,GAAG,2BACVwhB,SAAU,EAAAgJ,aAAaG,MAAMX,SAC9BhI,IAAI,KACJiY,WAAS,K,0CAEX,YAOE,G,WANS,EAAA7R,iB,yCAAA,EAAgB,oBACzB5a,KAAK,cACJ9J,MAAO,EAAA1D,GAAG,wBACVwhB,SAAU,EAAAgJ,aAAaG,MAAMV,MAC9BjI,IAAI,KACJiY,WAAS,K,0CAEX,YAOE,G,WANS,EAAA5R,kB,yCAAA,EAAiB,qBAC1B7a,KAAK,eACJ9J,MAAO,EAAA1D,GAAG,yBACVwhB,SAAU,EAAAgJ,aAAaG,MAAM7M,OAC9BkE,IAAI,KACJiY,WAAS,K,0CAEX,YAOE,G,WANS,EAAA3R,qB,yCAAA,EAAoB,wBAC7B9a,KAAK,kBACJ9J,MAAO,EAAA1D,GAAG,4BACVwhB,SAAU,EAAAgJ,aAAaG,MAAMT,UAC9BlI,IAAI,KACJiY,WAAS,K,0CAEX,YAOE,G,WANS,EAAA1R,sB,yCAAA,EAAqB,yBAC9B/a,KAAK,mBACJ9J,MAAO,EAAA1D,GAAG,6BACVwhB,SAAU,EAAAgJ,aAAaG,MAAMP,WAC9BpI,IAAI,KACJiY,WAAS,K,0CAEX,YAOE,G,WANS,EAAAzR,mB,yCAAA,EAAkB,sBAC3Bhb,KAAK,gBACJ9J,MAAO,EAAA1D,GAAG,0BACVwhB,SAAU,EAAAgJ,aAAaG,MAAMR,QAC9BnI,IAAI,KACJiY,WAAS,K,0CAEX,YAOE,G,WANS,EAAAxR,uB,yCAAA,EAAsB,0BAC/Bjb,KAAK,oBACJ9J,MAAO,EAAA1D,GAAG,8BACVwhB,SAAU,EAAAgJ,aAAaG,MAAMN,aAAe,EAC7CrI,IAAI,KACJiY,WAAS,K,iDAIb,YAiFM,OAhFHv2B,MAAO,EAAA1D,GAAG,qCACXhC,MAAM,oB,CAEN,YA4CM,MA5CN,GA4CM,CA3CJ,YAgBM,MAhBN,GAgBM,C,wBAfD,EAAAgC,GAAG,qCAAsC,IAC5C,YAAG,KAAM,IACT,eAYS,GAXPyC,GAAG,kB,WACM,EAAAqlB,e,yCAAA,EAAc,kBACvB9pB,MAAM,mB,qBAGJ,IAAkC,E,gBADpC,YAMS,qBALU,EAAAmrB,iBAAVnF,I,cADT,YAMS,UAJNhd,IAAKgd,EACLrc,MAAOqc,G,YAEL,EAAAhkB,GAAG,qCAAuCgkB,IAAM,Q,iCAIzD,YAmBM,MAnBN,GAmBM,CAlBJ,YAKQ,QALR,GAKQ,YADH,EAAAhkB,GAAG,oCAAD,G,eAGP,YAMC,SALCyC,GAAG,W,yCACM,EAAsB,0BAC/B+K,KAAK,WACLxP,MAAM,iBACNQ,KAAK,Y,gBAHI,EAAA8tB,0BAKX,KAKF,YAKS,UAJPtuB,MAAM,qBACL,QAAK,wBAAE,EAAAwxB,cAAA,EAAAA,gBAAA,K,YAEL,EAAAxvB,GAAG,sCAAD,KAGT,YAIE,G,WAHS,EAAAusB,c,yCAAA,EAAa,iBACrBxc,QAAS,EAAAyc,sBACThL,SAAU,EAAAgL,uB,0CAEiB,WAAnB,EAAA1E,gBAAkD,iBAAnB,EAAAA,gB,cAA1C,YA0BM,UAzBJ,YAMS,GALP3D,MAAM,SACNC,QAAQ,wDACRC,IAAI,K,qBAEJ,IAAkC,CAAlC,K,MAEF,YAAkE,qBAA5D,EAAArkB,GAAG,oDAAD,GACR,YAQS,GAPPmkB,MAAM,SACNC,QAAQ,wDACRC,IAAI,K,qBAEJ,IAAwB,CAAxB,GACA,GACA,K,MAEF,YAMS,GALPF,MAAM,SACNC,QAAQ,mDACRC,IAAI,K,qBAEJ,IAAuB,CAAvB,K,MAEF,YAAiE,qBAA3D,EAAArkB,GAAG,mDAAD,M,0BAIZ,YAsCM,OArCH0D,MAAO,EAAA1D,GAAG,mCACXhC,MAAM,mB,CAEN,YAQM,MARN,GAQM,CAPJ,YAA4C,qBAAtC,EAAAgC,GAAG,8BAAD,GACR,YAKS,UAJPhC,MAAM,qBACL,QAAK,wBAAE,EAAAyxB,YAAA,EAAAA,cAAA,K,YAEL,EAAAzvB,GAAG,sCAAD,KAGT,YAME,G,WALS,EAAAgoB,WAAWkS,U,yCAAX,EAAAlS,WAAoB,aAC7Bxa,KAAK,KACJ9J,MAAO,EAAA1D,GAAG,6CACVwhB,SAAU,EAAAgJ,aAAaK,MAAMqP,UAC9BC,aAAW,K,0CAEb,YAKE,G,WAJS,EAAAnS,WAAWxoB,M,yCAAX,EAAAwoB,WAAgB,SACzBxa,KAAK,QACJ9J,MAAO,EAAA1D,GAAG,yCACVwhB,SAAU,EAAAgJ,aAAaK,MAAMrrB,O,0CAEhC,YAKE,G,WAJS,EAAAwoB,WAAWoS,K,yCAAX,EAAApS,WAAe,QACxBxa,KAAK,OACJ9J,MAAO,EAAA1D,GAAG,wCACVwhB,SAAU,EAAAgJ,aAAaK,MAAMuP,M,0CAEhC,YAKE,G,WAJS,EAAApS,WAAWqS,S,yCAAX,EAAArS,WAAmB,YAC5Bxa,KAAK,WACJ9J,MAAO,EAAA1D,GAAG,4CACVwhB,SAAU,EAAAgJ,aAAaK,MAAMwP,U,iEAO9B,EAAQ,U,cADhB,YAmBW,K,MAjBTC,GAAG,uB,CAEH,YAcM,MAdN,GAcM,CAbJ,YAMS,UALPt8B,MAAM,4BACL2H,UAAW,EAAA+mB,WACX,QAAK,wBAAE,EAAA4B,gBAAA,EAAAA,kBAAA,K,YAEL,EAAAtuB,GAAG,kBAAD,MAEP,YAKS,UAJPhC,MAAM,qBACL,QAAK,wBAAE,EAAAixB,UAAA,EAAAA,YAAA,K,YAEL,EAAAjvB,GAAG,kCAAD,Q,yBmBv/Bf/B,IAAQC,IACNsN,KACA+uB,KACAC,IACAC,IACAC,IACAC,IACAC,IACAC,KAGF,IAoDeC,GApDc,CAC3Bj5B,WAAY,CACV6H,gBAEAnI,sBACAw5B,qBACAltB,oBACAgB,gBACA2E,eACA+E,cACAyG,cACA8B,cACAka,aAEFj5B,SAAU,CACRk5B,WADQ,WAEN,QAAS37B,KAAKqC,OAAOO,MAAMG,MAAMC,aAEnC44B,KAJQ,WAKN,MAA0D,WAAnD57B,KAAKqC,OAAOO,MAAZ,UAA4Bi5B,oBAErCC,SAPQ,WAQN,MAA0D,YAAnD97B,KAAKqC,OAAOO,MAAZ,UAA4Bi5B,qBAGvC/7B,QAAS,CACPi8B,OADO,WAEL,IAAMC,EAAYh8B,KAAKqC,OAAOO,MAAZ,UAA4Bq5B,uBAE9C,GAAID,EAAW,CACb,IAAME,EAAWl8B,KAAKC,MAAMwtB,YAAY3jB,OAAvB,UAAwCqyB,WAAU,SAAAC,GACjE,OAAOA,EAAIp9B,OAASo9B,EAAIp9B,MAAM,mBAAqBg9B,KAEjDE,GAAY,GACdl8B,KAAKC,MAAMwtB,YAAY4O,OAAOH,GAKlCl8B,KAAKqC,OAAOC,SAAS,iCAGzByR,QA1C2B,WA2CzB/T,KAAK+7B,UAEP72B,MAAO,CACL02B,KAAM,SAAUvzB,GACVA,GAAOrI,KAAK+7B,Y,OC3EtB,MAAM,GAA2B,IAAgB,GAAQ,CAAC,CAAC,S,kWCNzD,YA4Ee,GA3Ebx7B,IAAI,cACJ7B,MAAM,wBACL49B,gBAAc,EACdzwB,mBAAiB,EACjB0wB,mBAAkB,EAAAT,U,qBAEnB,IAMM,CANN,YAMM,OALH13B,MAAO,EAAA1D,GAAG,oBACXD,KAAK,SACL+7B,gBAAc,W,CAEd,YAAc,I,KAGR,EAAU,Y,cADlB,YAOM,O,MALHp4B,MAAO,EAAA1D,GAAG,wBACXD,KAAK,OACL+7B,gBAAc,W,CAEd,YAAc,I,yBAGR,EAAU,Y,cADlB,YAOM,O,MALHp4B,MAAO,EAAA1D,GAAG,yBACXD,KAAK,OACL+7B,gBAAc,Y,CAEd,YAAe,I,yBAEjB,YAMM,OALHp4B,MAAO,EAAA1D,GAAG,sBACXD,KAAK,SACL+7B,gBAAc,a,CAEd,YAAgB,I,KAElB,YAMM,OALHp4B,MAAO,EAAA1D,GAAG,kBACXD,KAAK,cACL+7B,gBAAc,S,CAEd,YAAY,I,KAGN,EAAU,Y,cADlB,YAOM,O,MALHp4B,MAAO,EAAA1D,GAAG,0BACXD,KAAK,OACL+7B,gBAAc,iB,CAEd,YAAoB,I,yBAGd,EAAU,Y,cADlB,YAOM,O,MALHp4B,MAAO,EAAA1D,GAAG,mCACXD,KAAK,WACL+7B,gBAAc,oB,CAEd,YAAuB,I,yBAGjB,EAAU,Y,cADlB,YAQM,O,MANHp4B,MAAO,EAAA1D,GAAG,6BACV+7B,YAAY,EACbh8B,KAAK,YACL+7B,gBAAc,kB,CAEd,YAAqB,I,yBAEvB,YAMM,OALHp4B,MAAO,EAAA1D,GAAG,0BACXD,KAAK,OACL+7B,gBAAc,W,CAEd,YAAc,I,wCDlEL","file":"static/js/2.eefa7ccf1b294cd5d8f6.js","sourcesContent":["export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/dist/index.js??ref--2!./importer.vue?vue&type=style&index=0&id=24f20fa0&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/dist/index.js??ref--2!./exporter.vue?vue&type=style&index=0&id=6357fe6a&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/dist/index.js??ref--2!./autosuggest.vue?vue&type=style&index=0&id=105e6799&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/dist/index.js??ref--2!./block_card.vue?vue&type=style&index=0&id=0f5ac826&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/dist/index.js??ref--2!./mute_card.vue?vue&type=style&index=0&id=5e3199a7&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/dist/index.js??ref--2!./domain_mute_card.vue?vue&type=style&index=0&id=0b8ac930&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/dist/index.js??ref--2!./selectable_list.vue?vue&type=style&index=0&id=356e33d2&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js!../../../../node_modules/sass-loader/lib/loader.js!./mutes_and_blocks_tab.scss?vue&type=style&index=0&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js!../../../../node_modules/sass-loader/lib/loader.js!../../../../node_modules/vue-loader/dist/index.js??ref--2!./modified_indicator.vue?vue&type=style&index=0&id=be0aa34e&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js!../../../../node_modules/sass-loader/lib/loader.js!../../../../node_modules/vue-loader/dist/index.js??ref--2!./server_side_indicator.vue?vue&type=style&index=0&id=35bf7f91&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js!../../../../node_modules/sass-loader/lib/loader.js!../../../../node_modules/vue-loader/dist/index.js??ref--2!./choice_setting.vue?vue&type=style&index=0&id=36cf5d2e&lang=scss\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js!../../../../../node_modules/sass-loader/lib/loader.js!../../../../../node_modules/vue-loader/dist/index.js??ref--2!./mfa_backup_codes.vue?vue&type=style&index=0&id=1284fe74&lang=scss\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js!../../../../../node_modules/sass-loader/lib/loader.js!../../../../../node_modules/vue-loader/dist/index.js??ref--2!./mfa.vue?vue&type=style&index=0&id=c62074fa&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/dist/index.js??ref--2!./image_cropper.vue?vue&type=style&index=0&id=0bac39f0&lang=scss\"","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js!../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js!../../../../node_modules/sass-loader/lib/loader.js!./profile_tab.scss?vue&type=style&index=0&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/lib/loader.js!./color_input.scss?vue&type=style&index=0&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/dist/index.js??ref--2!./color_input.vue?vue&type=style&index=1&id=54780100&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/dist/index.js??ref--2!./shadow_control.vue?vue&type=style&index=0&id=02a2d813&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/dist/index.js??ref--2!./font_control.vue?vue&type=style&index=0&id=ceed00ba&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/lib/loader.js!../../../node_modules/vue-loader/dist/index.js??ref--2!./contrast_ratio.vue?vue&type=style&index=0&id=6d90b7c4&lang=scss\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js!../../../../../node_modules/sass-loader/lib/loader.js!../../../../../node_modules/vue-loader/dist/index.js??ref--2!./preview.vue?vue&type=style&index=0&id=1d72aedf&lang=scss\"","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../../node_modules/css-loader/index.js!../../../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js!../../../../../node_modules/sass-loader/lib/loader.js!./theme_tab.scss?vue&type=style&index=0&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js!../../../node_modules/sass-loader/lib/loader.js!./settings_modal_content.scss?vue&type=style&index=0&lang=scss\"","<template>\n <div\n :label=\"$t('settings.data_import_export_tab')\"\n >\n <div class=\"setting-item\">\n <h2>{{ $t('settings.follow_import') }}</h2>\n <p>{{ $t('settings.import_followers_from_a_csv_file') }}</p>\n <Importer\n :submit-handler=\"importFollows\"\n :success-message=\"$t('settings.follows_imported')\"\n :error-message=\"$t('settings.follow_import_error')\"\n />\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.follow_export') }}</h2>\n <Exporter\n :get-content=\"getFollowsContent\"\n filename=\"friends.csv\"\n :export-button-label=\"$t('settings.follow_export_button')\"\n />\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.block_import') }}</h2>\n <p>{{ $t('settings.import_blocks_from_a_csv_file') }}</p>\n <Importer\n :submit-handler=\"importBlocks\"\n :success-message=\"$t('settings.blocks_imported')\"\n :error-message=\"$t('settings.block_import_error')\"\n />\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.block_export') }}</h2>\n <Exporter\n :get-content=\"getBlocksContent\"\n filename=\"blocks.csv\"\n :export-button-label=\"$t('settings.block_export_button')\"\n />\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.mute_import') }}</h2>\n <p>{{ $t('settings.import_mutes_from_a_csv_file') }}</p>\n <Importer\n :submit-handler=\"importMutes\"\n :success-message=\"$t('settings.mutes_imported')\"\n :error-message=\"$t('settings.mute_import_error')\"\n />\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.mute_export') }}</h2>\n <Exporter\n :get-content=\"getMutesContent\"\n filename=\"mutes.csv\"\n :export-button-label=\"$t('settings.mute_export_button')\"\n />\n </div>\n </div>\n</template>\n\n<script src=\"./data_import_export_tab.js\"></script>\n<!-- <style lang=\"scss\" src=\"./profile.scss\"></style> -->\n","<template>\n <div class=\"importer\">\n <form>\n <input\n ref=\"input\"\n type=\"file\"\n @change=\"change\"\n >\n </form>\n <FAIcon\n v-if=\"submitting\"\n class=\"importer-uploading\"\n spin\n icon=\"circle-notch\"\n />\n <button\n v-else\n class=\"btn button-default\"\n @click=\"submit\"\n >\n {{ submitButtonLabel || $t('importer.submit') }}\n </button>\n <div v-if=\"success\">\n <button\n class=\"button-unstyled\"\n @click=\"dismiss\"\n >\n <FAIcon\n icon=\"times\"\n />\n </button>\n {{ ' ' }}\n <span>{{ successMessage || $t('importer.success') }}</span>\n </div>\n <div v-else-if=\"error\">\n <button\n class=\"button-unstyled\"\n @click=\"dismiss\"\n >\n <FAIcon\n icon=\"times\"\n />\n </button>\n {{ ' ' }}\n <span>{{ errorMessage || $t('importer.error') }}</span>\n </div>\n </div>\n</template>\n\n<script src=\"./importer.js\"></script>\n\n<style lang=\"scss\">\n.importer {\n &-uploading {\n font-size: 1.5em;\n margin: 0.25em;\n }\n}\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCircleNotch,\n faTimes\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch,\n faTimes\n)\n\nconst Importer = {\n props: {\n submitHandler: {\n type: Function,\n required: true\n },\n submitButtonLabel: { type: String },\n successMessage: { type: String },\n errorMessage: { type: String }\n },\n data () {\n return {\n file: null,\n error: false,\n success: false,\n submitting: false\n }\n },\n methods: {\n change () {\n this.file = this.$refs.input.files[0]\n },\n submit () {\n this.dismiss()\n this.submitting = true\n this.submitHandler(this.file)\n .then(() => { this.success = true })\n .catch(() => { this.error = true })\n .finally(() => { this.submitting = false })\n },\n dismiss () {\n this.success = false\n this.error = false\n }\n }\n}\n\nexport default Importer\n","import { render } from \"./importer.vue?vue&type=template&id=24f20fa0\"\nimport script from \"./importer.js?vue&type=script&lang=js\"\nexport * from \"./importer.js?vue&type=script&lang=js\"\n\nimport \"./importer.vue?vue&type=style&index=0&id=24f20fa0&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"exporter\">\n <div v-if=\"processing\">\n <FAIcon\n icon=\"circle-notch\"\n size=\"lg\"\n spin\n />\n\n <span>{{ processingMessage || $t('exporter.processing') }}</span>\n </div>\n <button\n v-else\n class=\"btn button-default\"\n @click=\"process\"\n >\n {{ exportButtonLabel || $t('exporter.export') }}\n </button>\n </div>\n</template>\n\n<script src=\"./exporter.js\"></script>\n\n<style lang=\"scss\">\n.exporter {\n &-processing {\n margin: 0.25em;\n }\n}\n</style>\n","import { library } from '@fortawesome/fontawesome-svg-core'\nimport { faCircleNotch } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch\n)\n\nconst Exporter = {\n props: {\n getContent: {\n type: Function,\n required: true\n },\n filename: {\n type: String,\n default: 'export.csv'\n },\n exportButtonLabel: { type: String },\n processingMessage: { type: String }\n },\n data () {\n return {\n processing: false\n }\n },\n methods: {\n process () {\n this.processing = true\n this.getContent()\n .then((content) => {\n const fileToDownload = document.createElement('a')\n fileToDownload.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(content))\n fileToDownload.setAttribute('download', this.filename)\n fileToDownload.style.display = 'none'\n document.body.appendChild(fileToDownload)\n fileToDownload.click()\n document.body.removeChild(fileToDownload)\n // Add delay before hiding processing state since browser takes some time to handle file download\n setTimeout(() => { this.processing = false }, 2000)\n })\n }\n }\n}\n\nexport default Exporter\n","import { render } from \"./exporter.vue?vue&type=template&id=6357fe6a\"\nimport script from \"./exporter.js?vue&type=script&lang=js\"\nexport * from \"./exporter.js?vue&type=script&lang=js\"\n\nimport \"./exporter.vue?vue&type=style&index=0&id=6357fe6a&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import Importer from 'src/components/importer/importer.vue'\nimport Exporter from 'src/components/exporter/exporter.vue'\nimport Checkbox from 'src/components/checkbox/checkbox.vue'\nimport { mapState } from 'vuex'\n\nconst DataImportExportTab = {\n data () {\n return {\n activeTab: 'profile',\n newDomainToMute: ''\n }\n },\n created () {\n this.$store.dispatch('fetchTokens')\n },\n components: {\n Importer,\n Exporter,\n Checkbox\n },\n computed: {\n ...mapState({\n backendInteractor: (state) => state.api.backendInteractor,\n user: (state) => state.users.currentUser\n })\n },\n methods: {\n getFollowsContent () {\n return this.backendInteractor.exportFriends({ id: this.user.id })\n .then(this.generateExportableUsersContent)\n },\n getBlocksContent () {\n return this.backendInteractor.fetchBlocks()\n .then(this.generateExportableUsersContent)\n },\n getMutesContent () {\n return this.backendInteractor.fetchMutes()\n .then(this.generateExportableUsersContent)\n },\n importFollows (file) {\n return this.backendInteractor.importFollows({ file })\n .then((status) => {\n if (!status) {\n throw new Error('failed')\n }\n })\n },\n importBlocks (file) {\n return this.backendInteractor.importBlocks({ file })\n .then((status) => {\n if (!status) {\n throw new Error('failed')\n }\n })\n },\n importMutes (file) {\n return this.backendInteractor.importMutes({ file })\n .then((status) => {\n if (!status) {\n throw new Error('failed')\n }\n })\n },\n generateExportableUsersContent (users) {\n // Get addresses\n return users.map((user) => {\n // check is it's a local user\n if (user && user.is_local) {\n // append the instance address\n // eslint-disable-next-line no-undef\n return user.screen_name + '@' + location.hostname\n }\n return user.screen_name\n }).join('\\n')\n }\n }\n}\n\nexport default DataImportExportTab\n","import { render } from \"./data_import_export_tab.vue?vue&type=template&id=492b1b68\"\nimport script from \"./data_import_export_tab.js?vue&type=script&lang=js\"\nexport * from \"./data_import_export_tab.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <tab-switcher\n :scrollable-tabs=\"true\"\n class=\"mutes-and-blocks-tab\"\n >\n <div :label=\"$t('settings.blocks_tab')\">\n <div class=\"usersearch-wrapper\">\n <Autosuggest\n :filter=\"filterUnblockedUsers\"\n :query=\"queryUserIds\"\n :placeholder=\"$t('settings.search_user_to_block')\"\n >\n <template v-slot=\"row\">\n <BlockCard\n :user-id=\"row.item\"\n />\n </template>\n </Autosuggest>\n </div>\n <BlockList\n :refresh=\"true\"\n :get-key=\"i => i\"\n >\n <template v-slot:header=\"{selected}\">\n <div class=\"bulk-actions\">\n <ProgressButton\n v-if=\"selected.length > 0\"\n class=\"btn button-default bulk-action-button\"\n :click=\"() => blockUsers(selected)\"\n >\n {{ $t('user_card.block') }}\n <template v-slot:progress>\n {{ $t('user_card.block_progress') }}\n </template>\n </ProgressButton>\n <ProgressButton\n v-if=\"selected.length > 0\"\n class=\"btn button-default\"\n :click=\"() => unblockUsers(selected)\"\n >\n {{ $t('user_card.unblock') }}\n <template v-slot:progress>\n {{ $t('user_card.unblock_progress') }}\n </template>\n </ProgressButton>\n </div>\n </template>\n <template v-slot:item=\"{item}\">\n <BlockCard :user-id=\"item\" />\n </template>\n <template v-slot:empty>\n {{ $t('settings.no_blocks') }}\n </template>\n </BlockList>\n </div>\n\n <div :label=\"$t('settings.mutes_tab')\">\n <tab-switcher>\n <div label=\"Users\">\n <div class=\"usersearch-wrapper\">\n <Autosuggest\n :filter=\"filterUnMutedUsers\"\n :query=\"queryUserIds\"\n :placeholder=\"$t('settings.search_user_to_mute')\"\n >\n <template v-slot=\"row\">\n <MuteCard\n :user-id=\"row.item\"\n />\n </template>\n </Autosuggest>\n </div>\n <MuteList\n :refresh=\"true\"\n :get-key=\"i => i\"\n >\n <template v-slot:header=\"{selected}\">\n <div class=\"bulk-actions\">\n <ProgressButton\n v-if=\"selected.length > 0\"\n class=\"btn button-default\"\n :click=\"() => muteUsers(selected)\"\n >\n {{ $t('user_card.mute') }}\n <template v-slot:progress>\n {{ $t('user_card.mute_progress') }}\n </template>\n </ProgressButton>\n <ProgressButton\n v-if=\"selected.length > 0\"\n class=\"btn button-default\"\n :click=\"() => unmuteUsers(selected)\"\n >\n {{ $t('user_card.unmute') }}\n <template v-slot:progress>\n {{ $t('user_card.unmute_progress') }}\n </template>\n </ProgressButton>\n </div>\n </template>\n <template v-slot:item=\"{item}\">\n <MuteCard :user-id=\"item\" />\n </template>\n <template v-slot:empty>\n {{ $t('settings.no_mutes') }}\n </template>\n </MuteList>\n </div>\n\n <div :label=\"$t('settings.domain_mutes')\">\n <div class=\"domain-mute-form\">\n <Autosuggest\n :filter=\"filterUnMutedDomains\"\n :query=\"queryKnownDomains\"\n :placeholder=\"$t('settings.type_domains_to_mute')\"\n >\n <template v-slot=\"row\">\n <DomainMuteCard\n :domain=\"row.item\"\n />\n </template>\n </Autosuggest>\n </div>\n <DomainMuteList\n :refresh=\"true\"\n :get-key=\"i => i\"\n >\n <template v-slot:header=\"{selected}\">\n <div class=\"bulk-actions\">\n <ProgressButton\n v-if=\"selected.length > 0\"\n class=\"btn button-default\"\n :click=\"() => unmuteDomains(selected)\"\n >\n {{ $t('domain_mute_card.unmute') }}\n <template v-slot:progress>\n {{ $t('domain_mute_card.unmute_progress') }}\n </template>\n </ProgressButton>\n </div>\n </template>\n <template v-slot:item=\"{item}\">\n <DomainMuteCard :domain=\"item\" />\n </template>\n <template v-slot:empty>\n {{ $t('settings.no_mutes') }}\n </template>\n </DomainMuteList>\n </div>\n </tab-switcher>\n </div>\n </tab-switcher>\n</template>\n\n<script src=\"./mutes_and_blocks_tab.js\"></script>\n<style lang=\"scss\" src=\"./mutes_and_blocks_tab.scss\"></style>\n","<template>\n <div\n v-click-outside=\"onClickOutside\"\n class=\"autosuggest\"\n >\n <input\n v-model=\"term\"\n :placeholder=\"placeholder\"\n class=\"autosuggest-input\"\n @click=\"onInputClick\"\n >\n <div\n v-if=\"resultsVisible && filtered.length > 0\"\n class=\"autosuggest-results\"\n >\n <slot\n v-for=\"item in filtered\"\n :item=\"item\"\n />\n </div>\n </div>\n</template>\n\n<script src=\"./autosuggest.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.autosuggest {\n position: relative;\n\n &-input {\n display: block;\n width: 100%;\n }\n\n &-results {\n position: absolute;\n left: 0;\n top: 100%;\n right: 0;\n max-height: 400px;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-style: solid;\n border-width: 1px;\n border-color: $fallback--border;\n border-color: var(--border, $fallback--border);\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.6);\n box-shadow: var(--panelShadow);\n overflow-y: auto;\n z-index: 1;\n }\n}\n</style>\n","const debounceMilliseconds = 500\n\nexport default {\n props: {\n query: { // function to query results and return a promise\n type: Function,\n required: true\n },\n filter: { // function to filter results in real time\n type: Function\n },\n placeholder: {\n type: String,\n default: 'Search...'\n }\n },\n data () {\n return {\n term: '',\n timeout: null,\n results: [],\n resultsVisible: false\n }\n },\n computed: {\n filtered () {\n return this.filter ? this.filter(this.results) : this.results\n }\n },\n watch: {\n term (val) {\n this.fetchResults(val)\n }\n },\n methods: {\n fetchResults (term) {\n clearTimeout(this.timeout)\n this.timeout = setTimeout(() => {\n this.results = []\n if (term) {\n this.query(term).then((results) => { this.results = results })\n }\n }, debounceMilliseconds)\n },\n onInputClick () {\n this.resultsVisible = true\n },\n onClickOutside () {\n this.resultsVisible = false\n }\n }\n}\n","import { render } from \"./autosuggest.vue?vue&type=template&id=105e6799\"\nimport script from \"./autosuggest.js?vue&type=script&lang=js\"\nexport * from \"./autosuggest.js?vue&type=script&lang=js\"\n\nimport \"./autosuggest.vue?vue&type=style&index=0&id=105e6799&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <basic-user-card :user=\"user\">\n <div class=\"block-card-content-container\">\n <button\n v-if=\"blocked\"\n class=\"btn button-default\"\n :disabled=\"progress\"\n @click=\"unblockUser\"\n >\n <template v-if=\"progress\">\n {{ $t('user_card.unblock_progress') }}\n </template>\n <template v-else>\n {{ $t('user_card.unblock') }}\n </template>\n </button>\n <button\n v-else\n class=\"btn button-default\"\n :disabled=\"progress\"\n @click=\"blockUser\"\n >\n <template v-if=\"progress\">\n {{ $t('user_card.block_progress') }}\n </template>\n <template v-else>\n {{ $t('user_card.block') }}\n </template>\n </button>\n </div>\n </basic-user-card>\n</template>\n\n<script src=\"./block_card.js\"></script>\n\n<style lang=\"scss\">\n.block-card-content-container {\n margin-top: 0.5em;\n text-align: right;\n button {\n width: 10em;\n }\n}\n</style>\n","import BasicUserCard from '../basic_user_card/basic_user_card.vue'\n\nconst BlockCard = {\n props: ['userId'],\n data () {\n return {\n progress: false\n }\n },\n computed: {\n user () {\n return this.$store.getters.findUser(this.userId)\n },\n relationship () {\n return this.$store.getters.relationship(this.userId)\n },\n blocked () {\n return this.relationship.blocking\n }\n },\n components: {\n BasicUserCard\n },\n methods: {\n unblockUser () {\n this.progress = true\n this.$store.dispatch('unblockUser', this.user.id).then(() => {\n this.progress = false\n })\n },\n blockUser () {\n this.progress = true\n this.$store.dispatch('blockUser', this.user.id).then(() => {\n this.progress = false\n })\n }\n }\n}\n\nexport default BlockCard\n","import { render } from \"./block_card.vue?vue&type=template&id=0f5ac826\"\nimport script from \"./block_card.js?vue&type=script&lang=js\"\nexport * from \"./block_card.js?vue&type=script&lang=js\"\n\nimport \"./block_card.vue?vue&type=style&index=0&id=0f5ac826&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <basic-user-card :user=\"user\">\n <div class=\"mute-card-content-container\">\n <button\n v-if=\"muted\"\n class=\"btn button-default\"\n :disabled=\"progress\"\n @click=\"unmuteUser\"\n >\n <template v-if=\"progress\">\n {{ $t('user_card.unmute_progress') }}\n </template>\n <template v-else>\n {{ $t('user_card.unmute') }}\n </template>\n </button>\n <button\n v-else\n class=\"btn button-default\"\n :disabled=\"progress\"\n @click=\"muteUser\"\n >\n <template v-if=\"progress\">\n {{ $t('user_card.mute_progress') }}\n </template>\n <template v-else>\n {{ $t('user_card.mute') }}\n </template>\n </button>\n </div>\n </basic-user-card>\n</template>\n\n<script src=\"./mute_card.js\"></script>\n\n<style lang=\"scss\">\n.mute-card-content-container {\n margin-top: 0.5em;\n text-align: right;\n button {\n width: 10em;\n }\n}\n</style>\n","import BasicUserCard from '../basic_user_card/basic_user_card.vue'\n\nconst MuteCard = {\n props: ['userId'],\n data () {\n return {\n progress: false\n }\n },\n computed: {\n user () {\n return this.$store.getters.findUser(this.userId)\n },\n relationship () {\n return this.$store.getters.relationship(this.userId)\n },\n muted () {\n return this.relationship.muting\n }\n },\n components: {\n BasicUserCard\n },\n methods: {\n unmuteUser () {\n this.progress = true\n this.$store.dispatch('unmuteUser', this.userId).then(() => {\n this.progress = false\n })\n },\n muteUser () {\n this.progress = true\n this.$store.dispatch('muteUser', this.userId).then(() => {\n this.progress = false\n })\n }\n }\n}\n\nexport default MuteCard\n","import { render } from \"./mute_card.vue?vue&type=template&id=5e3199a7\"\nimport script from \"./mute_card.js?vue&type=script&lang=js\"\nexport * from \"./mute_card.js?vue&type=script&lang=js\"\n\nimport \"./mute_card.vue?vue&type=style&index=0&id=5e3199a7&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"domain-mute-card\">\n <div class=\"domain-mute-card-domain\">\n {{ domain }}\n </div>\n <ProgressButton\n v-if=\"muted\"\n :click=\"unmuteDomain\"\n class=\"btn button-default\"\n >\n {{ $t('domain_mute_card.unmute') }}\n <template v-slot:progress>\n {{ $t('domain_mute_card.unmute_progress') }}\n </template>\n </ProgressButton>\n <ProgressButton\n v-else\n :click=\"muteDomain\"\n class=\"btn button-default\"\n >\n {{ $t('domain_mute_card.mute') }}\n <template v-slot:progress>\n {{ $t('domain_mute_card.mute_progress') }}\n </template>\n </ProgressButton>\n </div>\n</template>\n\n<script src=\"./domain_mute_card.js\"></script>\n\n<style lang=\"scss\">\n.domain-mute-card {\n flex: 1 0;\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 0.6em 1em 0.6em 0;\n\n &-domain {\n margin-right: 1em;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n button {\n width: 10em;\n }\n\n .autosuggest-results & {\n padding-left: 1em;\n }\n}\n</style>\n","import ProgressButton from '../progress_button/progress_button.vue'\n\nconst DomainMuteCard = {\n props: ['domain'],\n components: {\n ProgressButton\n },\n computed: {\n user () {\n return this.$store.state.users.currentUser\n },\n muted () {\n return this.user.domainMutes.includes(this.domain)\n }\n },\n methods: {\n unmuteDomain () {\n return this.$store.dispatch('unmuteDomain', this.domain)\n },\n muteDomain () {\n return this.$store.dispatch('muteDomain', this.domain)\n }\n }\n}\n\nexport default DomainMuteCard\n","import { render } from \"./domain_mute_card.vue?vue&type=template&id=0b8ac930\"\nimport script from \"./domain_mute_card.js?vue&type=script&lang=js\"\nexport * from \"./domain_mute_card.js?vue&type=script&lang=js\"\n\nimport \"./domain_mute_card.vue?vue&type=style&index=0&id=0b8ac930&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"selectable-list\">\n <div\n v-if=\"items.length > 0\"\n class=\"selectable-list-header\"\n >\n <div class=\"selectable-list-checkbox-wrapper\">\n <Checkbox\n :model-value=\"allSelected\"\n :indeterminate=\"someSelected\"\n @update:model-value=\"toggleAll\"\n >\n {{ $t('selectable_list.select_all') }}\n </Checkbox>\n </div>\n <div class=\"selectable-list-header-actions\">\n <slot\n name=\"header\"\n :selected=\"filteredSelected\"\n />\n </div>\n </div>\n <List\n :items=\"items\"\n :get-key=\"getKey\"\n >\n <template v-slot:item=\"{item}\">\n <div\n class=\"selectable-list-item-inner\"\n :class=\"{ 'selectable-list-item-selected-inner': isSelected(item) }\"\n >\n <div class=\"selectable-list-checkbox-wrapper\">\n <Checkbox\n :model-value=\"isSelected(item)\"\n @update:model-value=\"checked => toggle(checked, item)\"\n />\n </div>\n <slot\n name=\"item\"\n :item=\"item\"\n />\n </div>\n </template>\n <template v-slot:empty>\n <slot name=\"empty\" />\n </template>\n </List>\n </div>\n</template>\n\n<script src=\"./selectable_list.js\"></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n\n.selectable-list {\n &-item-inner {\n display: flex;\n align-items: center;\n\n > * {\n min-width: 0;\n }\n }\n\n &-item-selected-inner {\n background-color: $fallback--lightBg;\n background-color: var(--selectedMenu, $fallback--lightBg);\n color: var(--selectedMenuText, $fallback--text);\n --faint: var(--selectedMenuFaintText, $fallback--faint);\n --faintLink: var(--selectedMenuFaintLink, $fallback--faint);\n --lightText: var(--selectedMenuLightText, $fallback--lightText);\n --icon: var(--selectedMenuIcon, $fallback--icon);\n }\n\n &-header {\n display: flex;\n align-items: center;\n padding: 0.6em 0;\n border-bottom: 2px solid;\n border-bottom-color: $fallback--border;\n border-bottom-color: var(--border, $fallback--border);\n\n &-actions {\n flex: 1;\n }\n }\n\n &-checkbox-wrapper {\n padding: 0 10px;\n flex: none;\n }\n}\n</style>\n","import List from '../list/list.vue'\nimport Checkbox from '../checkbox/checkbox.vue'\n\nconst SelectableList = {\n components: {\n List,\n Checkbox\n },\n props: {\n items: {\n type: Array,\n default: () => []\n },\n getKey: {\n type: Function,\n default: item => item.id\n }\n },\n data () {\n return {\n selected: []\n }\n },\n computed: {\n allKeys () {\n return this.items.map(this.getKey)\n },\n filteredSelected () {\n return this.allKeys.filter(key => this.selected.indexOf(key) !== -1)\n },\n allSelected () {\n return this.filteredSelected.length === this.items.length\n },\n noneSelected () {\n return this.filteredSelected.length === 0\n },\n someSelected () {\n return !this.allSelected && !this.noneSelected\n }\n },\n methods: {\n isSelected (item) {\n return this.filteredSelected.indexOf(this.getKey(item)) !== -1\n },\n toggle (checked, item) {\n const key = this.getKey(item)\n const oldChecked = this.isSelected(key)\n if (checked !== oldChecked) {\n if (checked) {\n this.selected.push(key)\n } else {\n this.selected.splice(this.selected.indexOf(key), 1)\n }\n }\n },\n toggleAll (value) {\n if (value) {\n this.selected = this.allKeys.slice(0)\n } else {\n this.selected = []\n }\n }\n }\n}\n\nexport default SelectableList\n","import { render } from \"./selectable_list.vue?vue&type=template&id=356e33d2\"\nimport script from \"./selectable_list.js?vue&type=script&lang=js\"\nexport * from \"./selectable_list.js?vue&type=script&lang=js\"\n\nimport \"./selectable_list.vue?vue&type=style&index=0&id=356e33d2&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","// eslint-disable-next-line no-unused\nimport { h } from 'vue'\nimport isEmpty from 'lodash/isEmpty'\nimport { getComponentProps } from '../../services/component_utils/component_utils'\nimport './with_subscription.scss'\n\nimport { FontAwesomeIcon as FAIcon } from '@fortawesome/vue-fontawesome'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCircleNotch\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch\n)\n\nconst withSubscription = ({\n fetch, // function to fetch entries and return a promise\n select, // function to select data from store\n childPropName = 'content', // name of the prop to be passed into the wrapped component\n additionalPropNames = [] // additional prop name list of the wrapper component\n}) => (WrappedComponent) => {\n const originalProps = Object.keys(getComponentProps(WrappedComponent))\n const props = originalProps.filter(v => v !== childPropName).concat(additionalPropNames)\n\n return {\n props: [\n ...props,\n 'refresh' // boolean saying to force-fetch data whenever created\n ],\n data () {\n return {\n loading: false,\n error: false\n }\n },\n computed: {\n fetchedData () {\n return select(this.$props, this.$store)\n }\n },\n created () {\n if (this.refresh || isEmpty(this.fetchedData)) {\n this.fetchData()\n }\n },\n methods: {\n fetchData () {\n if (!this.loading) {\n this.loading = true\n this.error = false\n fetch(this.$props, this.$store)\n .then(() => {\n this.loading = false\n })\n .catch(() => {\n this.error = true\n this.loading = false\n })\n }\n }\n },\n render () {\n if (!this.error && !this.loading) {\n const props = {\n ...this.$props,\n [childPropName]: this.fetchedData\n }\n const children = this.$slots\n return (\n <div class=\"with-subscription\">\n <WrappedComponent {...props}>\n {children}\n </WrappedComponent>\n </div>\n )\n } else {\n return (\n <div class=\"with-subscription-loading\">\n {this.error\n ? <a onClick={this.fetchData} class=\"alert error\">{this.$t('general.generic_error')}</a>\n : <FAIcon spin icon=\"circle-notch\"/>\n }\n </div>\n )\n }\n }\n }\n}\n\nexport default withSubscription\n","import get from 'lodash/get'\nimport map from 'lodash/map'\nimport reject from 'lodash/reject'\nimport Autosuggest from 'src/components/autosuggest/autosuggest.vue'\nimport TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'\nimport BlockCard from 'src/components/block_card/block_card.vue'\nimport MuteCard from 'src/components/mute_card/mute_card.vue'\nimport DomainMuteCard from 'src/components/domain_mute_card/domain_mute_card.vue'\nimport SelectableList from 'src/components/selectable_list/selectable_list.vue'\nimport ProgressButton from 'src/components/progress_button/progress_button.vue'\nimport withSubscription from 'src/components/../hocs/with_subscription/with_subscription'\nimport Checkbox from 'src/components/checkbox/checkbox.vue'\n\nconst BlockList = withSubscription({\n fetch: (props, $store) => $store.dispatch('fetchBlocks'),\n select: (props, $store) => get($store.state.users.currentUser, 'blockIds', []),\n childPropName: 'items'\n})(SelectableList)\n\nconst MuteList = withSubscription({\n fetch: (props, $store) => $store.dispatch('fetchMutes'),\n select: (props, $store) => get($store.state.users.currentUser, 'muteIds', []),\n childPropName: 'items'\n})(SelectableList)\n\nconst DomainMuteList = withSubscription({\n fetch: (props, $store) => $store.dispatch('fetchDomainMutes'),\n select: (props, $store) => get($store.state.users.currentUser, 'domainMutes', []),\n childPropName: 'items'\n})(SelectableList)\n\nconst MutesAndBlocks = {\n data () {\n return {\n activeTab: 'profile'\n }\n },\n created () {\n this.$store.dispatch('fetchTokens')\n this.$store.dispatch('getKnownDomains')\n },\n components: {\n TabSwitcher,\n BlockList,\n MuteList,\n DomainMuteList,\n BlockCard,\n MuteCard,\n DomainMuteCard,\n ProgressButton,\n Autosuggest,\n Checkbox\n },\n computed: {\n knownDomains () {\n return this.$store.state.instance.knownDomains\n },\n user () {\n return this.$store.state.users.currentUser\n }\n },\n methods: {\n importFollows (file) {\n return this.$store.state.api.backendInteractor.importFollows({ file })\n .then((status) => {\n if (!status) {\n throw new Error('failed')\n }\n })\n },\n importBlocks (file) {\n return this.$store.state.api.backendInteractor.importBlocks({ file })\n .then((status) => {\n if (!status) {\n throw new Error('failed')\n }\n })\n },\n generateExportableUsersContent (users) {\n // Get addresses\n return users.map((user) => {\n // check is it's a local user\n if (user && user.is_local) {\n // append the instance address\n // eslint-disable-next-line no-undef\n return user.screen_name + '@' + location.hostname\n }\n return user.screen_name\n }).join('\\n')\n },\n activateTab (tabName) {\n this.activeTab = tabName\n },\n filterUnblockedUsers (userIds) {\n return reject(userIds, (userId) => {\n const relationship = this.$store.getters.relationship(this.userId)\n return relationship.blocking || userId === this.user.id\n })\n },\n filterUnMutedUsers (userIds) {\n return reject(userIds, (userId) => {\n const relationship = this.$store.getters.relationship(this.userId)\n return relationship.muting || userId === this.user.id\n })\n },\n queryUserIds (query) {\n return this.$store.dispatch('searchUsers', { query })\n .then((users) => map(users, 'id'))\n },\n blockUsers (ids) {\n return this.$store.dispatch('blockUsers', ids)\n },\n unblockUsers (ids) {\n return this.$store.dispatch('unblockUsers', ids)\n },\n muteUsers (ids) {\n return this.$store.dispatch('muteUsers', ids)\n },\n unmuteUsers (ids) {\n return this.$store.dispatch('unmuteUsers', ids)\n },\n filterUnMutedDomains (urls) {\n return urls.filter(url => !this.user.domainMutes.includes(url))\n },\n queryKnownDomains (query) {\n return new Promise((resolve, reject) => {\n resolve(this.knownDomains.filter(url => url.toLowerCase().includes(query)))\n })\n },\n unmuteDomains (domains) {\n return this.$store.dispatch('unmuteDomains', domains)\n }\n }\n}\n\nexport default MutesAndBlocks\n","import { render } from \"./mutes_and_blocks_tab.vue?vue&type=template&id=d98eb706\"\nimport script from \"./mutes_and_blocks_tab.js?vue&type=script&lang=js\"\nexport * from \"./mutes_and_blocks_tab.js?vue&type=script&lang=js\"\n\nimport \"./mutes_and_blocks_tab.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div :label=\"$t('settings.notifications')\">\n <div class=\"setting-item\">\n <h2>{{ $t('settings.notification_setting_filters') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <BooleanSetting path=\"serverSide_blockNotificationsFromStrangers\">\n {{ $t('settings.notification_setting_block_from_strangers') }}\n </BooleanSetting>\n </li>\n <li class=\"select-multiple\">\n <span class=\"label\">{{ $t('settings.notification_visibility') }}</span>\n <ul class=\"option-list\">\n <li>\n <BooleanSetting path=\"notificationVisibility.likes\">\n {{ $t('settings.notification_visibility_likes') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"notificationVisibility.repeats\">\n {{ $t('settings.notification_visibility_repeats') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"notificationVisibility.follows\">\n {{ $t('settings.notification_visibility_follows') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"notificationVisibility.mentions\">\n {{ $t('settings.notification_visibility_mentions') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"notificationVisibility.moves\">\n {{ $t('settings.notification_visibility_moves') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"notificationVisibility.emojiReactions\">\n {{ $t('settings.notification_visibility_emoji_reactions') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"notificationVisibility.polls\">\n {{ $t('settings.notification_visibility_polls') }}\n </BooleanSetting>\n </li>\n </ul>\n </li>\n </ul>\n </div>\n\n <div\n v-if=\"expertLevel > 0\"\n class=\"setting-item\"\n >\n <h2>{{ $t('settings.notification_setting_privacy') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <BooleanSetting\n path=\"webPushNotifications\"\n expert=\"1\"\n >\n {{ $t('settings.enable_web_push_notifications') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"serverSide_webPushHideContents\"\n expert=\"1\"\n >\n {{ $t('settings.notification_setting_hide_notification_contents') }}\n </BooleanSetting>\n </li>\n </ul>\n </div>\n <div class=\"setting-item\">\n <p>{{ $t('settings.notification_mutes') }}</p>\n <p>{{ $t('settings.notification_blocks') }}</p>\n </div>\n </div>\n</template>\n\n<script src=\"./notifications_tab.js\"></script>\n<!-- <style lang=\"scss\" src=\"./profile.scss\"></style> -->\n","<template>\n <label\n v-if=\"matchesExpertLevel\"\n class=\"BooleanSetting\"\n >\n <Checkbox\n :model-value=\"state\"\n :disabled=\"disabled\"\n @update:modelValue=\"update\"\n >\n <span\n v-if=\"!!$slots.default\"\n class=\"label\"\n >\n <slot />\n </span>\n {{ ' ' }}\n <ModifiedIndicator :changed=\"isChanged\" /><ServerSideIndicator :server-side=\"isServerSide\" /> </Checkbox>\n </label>\n</template>\n\n<script src=\"./boolean_setting.js\"></script>\n","<template>\n <span\n v-if=\"changed\"\n class=\"ModifiedIndicator\"\n >\n <Popover\n trigger=\"hover\"\n >\n <template v-slot:trigger>\n &nbsp;\n <FAIcon\n icon=\"wrench\"\n :aria-label=\"$t('settings.setting_changed')\"\n />\n </template>\n <template v-slot:content>\n <div class=\"modified-tooltip\">\n {{ $t('settings.setting_changed') }}\n </div>\n </template>\n </Popover>\n </span>\n</template>\n\n<script>\nimport Popover from 'src/components/popover/popover.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faWrench } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faWrench\n)\n\nexport default {\n components: { Popover },\n props: ['changed']\n}\n</script>\n\n<style lang=\"scss\">\n.ModifiedIndicator {\n display: inline-block;\n position: relative;\n\n .modified-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n }\n}\n</style>\n","import { render } from \"./modified_indicator.vue?vue&type=template&id=be0aa34e\"\nimport script from \"./modified_indicator.vue?vue&type=script&lang=js\"\nexport * from \"./modified_indicator.vue?vue&type=script&lang=js\"\n\nimport \"./modified_indicator.vue?vue&type=style&index=0&id=be0aa34e&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <span\n v-if=\"serverSide\"\n class=\"ServerSideIndicator\"\n >\n <Popover\n trigger=\"hover\"\n >\n <template v-slot:trigger>\n &nbsp;\n <FAIcon\n icon=\"server\"\n :aria-label=\"$t('settings.setting_server_side')\"\n />\n </template>\n <template v-slot:content>\n <div class=\"serverside-tooltip\">\n {{ $t('settings.setting_server_side') }}\n </div>\n </template>\n </Popover>\n </span>\n</template>\n\n<script>\nimport Popover from 'src/components/popover/popover.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport { faServer } from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faServer\n)\n\nexport default {\n components: { Popover },\n props: ['serverSide']\n}\n</script>\n\n<style lang=\"scss\">\n.ServerSideIndicator {\n display: inline-block;\n position: relative;\n\n .serverside-tooltip {\n margin: 0.5em 1em;\n min-width: 10em;\n text-align: center;\n }\n}\n</style>\n","import { render } from \"./server_side_indicator.vue?vue&type=template&id=35bf7f91\"\nimport script from \"./server_side_indicator.vue?vue&type=script&lang=js\"\nexport * from \"./server_side_indicator.vue?vue&type=script&lang=js\"\n\nimport \"./server_side_indicator.vue?vue&type=style&index=0&id=35bf7f91&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { get, set } from 'lodash'\nimport Checkbox from 'src/components/checkbox/checkbox.vue'\nimport ModifiedIndicator from './modified_indicator.vue'\nimport ServerSideIndicator from './server_side_indicator.vue'\nexport default {\n components: {\n Checkbox,\n ModifiedIndicator,\n ServerSideIndicator\n },\n props: [\n 'path',\n 'disabled',\n 'expert'\n ],\n computed: {\n pathDefault () {\n const [firstSegment, ...rest] = this.path.split('.')\n return [firstSegment + 'DefaultValue', ...rest].join('.')\n },\n state () {\n const value = get(this.$parent, this.path)\n if (value === undefined) {\n return this.defaultState\n } else {\n return value\n }\n },\n defaultState () {\n return get(this.$parent, this.pathDefault)\n },\n isServerSide () {\n return this.path.startsWith('serverSide_')\n },\n isChanged () {\n return !this.path.startsWith('serverSide_') && this.state !== this.defaultState\n },\n matchesExpertLevel () {\n return (this.expert || 0) <= this.$parent.expertLevel\n }\n },\n methods: {\n update (e) {\n set(this.$parent, this.path, e)\n }\n }\n}\n","import { render } from \"./boolean_setting.vue?vue&type=template&id=12d9142b\"\nimport script from \"./boolean_setting.js?vue&type=script&lang=js\"\nexport * from \"./boolean_setting.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defaultState as configDefaultState } from 'src/modules/config.js'\nimport { defaultState as serverSideConfigDefaultState } from 'src/modules/serverSideConfig.js'\n\nconst SharedComputedObject = () => ({\n user () {\n return this.$store.state.users.currentUser\n },\n // Getting values for default properties\n ...Object.keys(configDefaultState)\n .map(key => [\n key + 'DefaultValue',\n function () {\n return this.$store.getters.defaultConfig[key]\n }\n ])\n .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {}),\n // Generating computed values for vuex properties\n ...Object.keys(configDefaultState)\n .map(key => [key, {\n get () { return this.$store.getters.mergedConfig[key] },\n set (value) {\n this.$store.dispatch('setOption', { name: key, value })\n }\n }])\n .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {}),\n ...Object.keys(serverSideConfigDefaultState)\n .map(key => ['serverSide_' + key, {\n get () { return this.$store.state.serverSideConfig[key] },\n set (value) {\n this.$store.dispatch('setServerSideOption', { name: key, value })\n }\n }])\n .reduce((acc, [key, value]) => ({ ...acc, [key]: value }), {}),\n // Special cases (need to transform values or perform actions first)\n useStreamingApi: {\n get () { return this.$store.getters.mergedConfig.useStreamingApi },\n set (value) {\n const promise = value\n ? this.$store.dispatch('enableMastoSockets')\n : this.$store.dispatch('disableMastoSockets')\n\n promise.then(() => {\n this.$store.dispatch('setOption', { name: 'useStreamingApi', value })\n }).catch((e) => {\n console.error('Failed starting MastoAPI Streaming socket', e)\n this.$store.dispatch('disableMastoSockets')\n this.$store.dispatch('setOption', { name: 'useStreamingApi', value: false })\n })\n }\n }\n})\n\nexport default SharedComputedObject\n","import BooleanSetting from '../helpers/boolean_setting.vue'\nimport SharedComputedObject from '../helpers/shared_computed_object.js'\n\nconst NotificationsTab = {\n data () {\n return {\n activeTab: 'profile',\n notificationSettings: this.$store.state.users.currentUser.notification_settings,\n newDomainToMute: ''\n }\n },\n components: {\n BooleanSetting\n },\n computed: {\n user () {\n return this.$store.state.users.currentUser\n },\n ...SharedComputedObject()\n },\n methods: {\n updateNotificationSettings () {\n this.$store.state.api.backendInteractor\n .updateNotificationSettings({ settings: this.notificationSettings })\n }\n }\n}\n\nexport default NotificationsTab\n","import { render } from \"./notifications_tab.vue?vue&type=template&id=e4b944ee\"\nimport script from \"./notifications_tab.js?vue&type=script&lang=js\"\nexport * from \"./notifications_tab.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div :label=\"$t('settings.filtering')\">\n <div class=\"setting-item\">\n <h2>{{ $t('settings.posts') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <BooleanSetting path=\"hideFilteredStatuses\">\n {{ $t('settings.hide_filtered_statuses') }}\n </BooleanSetting>\n <ul\n class=\"setting-list suboptions\"\n :class=\"[{disabled: !streaming}]\"\n >\n <li>\n <BooleanSetting\n :disabled=\"hideFilteredStatuses\"\n path=\"hideWordFilteredPosts\"\n >\n {{ $t('settings.hide_wordfiltered_statuses') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n v-if=\"user\"\n :disabled=\"hideFilteredStatuses\"\n path=\"hideMutedThreads\"\n >\n {{ $t('settings.hide_muted_threads') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n v-if=\"user\"\n :disabled=\"hideFilteredStatuses\"\n path=\"hideMutedPosts\"\n >\n {{ $t('settings.hide_muted_posts') }}\n </BooleanSetting>\n </li>\n </ul>\n </li>\n <li>\n <BooleanSetting path=\"muteBotStatuses\">\n {{ $t('settings.mute_bot_posts') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"hidePostStats\">\n {{ $t('settings.hide_post_stats') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"hideBotIndication\">\n {{ $t('settings.hide_bot_indication') }}\n </BooleanSetting>\n </li>\n <ChoiceSetting\n v-if=\"user\"\n id=\"replyVisibility\"\n path=\"replyVisibility\"\n :options=\"replyVisibilityOptions\"\n >\n {{ $t('settings.replies_in_timeline') }}\n </ChoiceSetting>\n <li>\n <h3>{{ $t('settings.wordfilter') }}</h3>\n <textarea\n id=\"muteWords\"\n v-model=\"muteWordsString\"\n class=\"resize-height\"\n />\n <div>{{ $t('settings.filtering_explanation') }}</div>\n </li>\n <h3>{{ $t('settings.attachments') }}</h3>\n <li>\n <IntegerSetting\n path=\"maxThumbnails\"\n expert=\"1\"\n :min=\"0\"\n >\n {{ $t('settings.max_thumbnails') }}\n </IntegerSetting>\n </li>\n <li>\n <BooleanSetting path=\"hideAttachments\">\n {{ $t('settings.hide_attachments_in_tl') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"hideAttachmentsInConv\">\n {{ $t('settings.hide_attachments_in_convo') }}\n </BooleanSetting>\n </li>\n </ul>\n </div>\n <div\n v-if=\"expertLevel > 0\"\n class=\"setting-item\"\n >\n <h2>{{ $t('settings.user_profiles') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <BooleanSetting path=\"hideUserStats\">\n {{ $t('settings.hide_user_stats') }}\n </BooleanSetting>\n </li>\n </ul>\n </div>\n </div>\n</template>\n<script src=\"./filtering_tab.js\"></script>\n","<template>\n <label\n v-if=\"matchesExpertLevel\"\n class=\"ChoiceSetting\"\n >\n <slot />\n {{ ' ' }}\n <Select\n :model-value=\"state\"\n :disabled=\"disabled\"\n @update:modelValue=\"update\"\n >\n <option\n v-for=\"option in options\"\n :key=\"option.key\"\n :value=\"option.value\"\n >\n {{ option.label }}\n {{ option.value === defaultState ? $t('settings.instance_default_simple') : '' }}\n </option>\n </Select>\n <ModifiedIndicator :changed=\"isChanged\" />\n <ServerSideIndicator :server-side=\"isServerSide\" />\n </label>\n</template>\n\n<script src=\"./choice_setting.js\"></script>\n\n<style lang=\"scss\">\n.ChoiceSetting {\n}\n</style>\n","import { get, set } from 'lodash'\nimport Select from 'src/components/select/select.vue'\nimport ModifiedIndicator from './modified_indicator.vue'\nimport ServerSideIndicator from './server_side_indicator.vue'\nexport default {\n components: {\n Select,\n ModifiedIndicator,\n ServerSideIndicator\n },\n props: [\n 'path',\n 'disabled',\n 'options',\n 'expert'\n ],\n computed: {\n pathDefault () {\n const [firstSegment, ...rest] = this.path.split('.')\n return [firstSegment + 'DefaultValue', ...rest].join('.')\n },\n state () {\n const value = get(this.$parent, this.path)\n if (value === undefined) {\n return this.defaultState\n } else {\n return value\n }\n },\n defaultState () {\n return get(this.$parent, this.pathDefault)\n },\n isServerSide () {\n return this.path.startsWith('serverSide_')\n },\n isChanged () {\n return !this.path.startsWith('serverSide_') && this.state !== this.defaultState\n },\n matchesExpertLevel () {\n return (this.expert || 0) <= this.$parent.expertLevel\n }\n },\n methods: {\n update (e) {\n set(this.$parent, this.path, e)\n }\n }\n}\n","import { render } from \"./choice_setting.vue?vue&type=template&id=36cf5d2e\"\nimport script from \"./choice_setting.js?vue&type=script&lang=js\"\nexport * from \"./choice_setting.js?vue&type=script&lang=js\"\n\nimport \"./choice_setting.vue?vue&type=style&index=0&id=36cf5d2e&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <span\n v-if=\"matchesExpertLevel\"\n class=\"IntegerSetting\"\n >\n <label :for=\"path\">\n <slot />\n </label>\n <input\n :id=\"path\"\n class=\"number-input\"\n type=\"number\"\n step=\"1\"\n :disabled=\"disabled\"\n :min=\"min || 0\"\n :value=\"state\"\n @change=\"update\"\n >\n {{ ' ' }}\n <ModifiedIndicator :changed=\"isChanged\" />\n </span>\n</template>\n\n<script src=\"./integer_setting.js\"></script>\n","import { get, set } from 'lodash'\nimport ModifiedIndicator from './modified_indicator.vue'\nexport default {\n components: {\n ModifiedIndicator\n },\n props: {\n path: String,\n disabled: Boolean,\n min: Number,\n expert: [Number, String]\n },\n computed: {\n pathDefault () {\n const [firstSegment, ...rest] = this.path.split('.')\n return [firstSegment + 'DefaultValue', ...rest].join('.')\n },\n state () {\n const value = get(this.$parent, this.path)\n if (value === undefined) {\n return this.defaultState\n } else {\n return value\n }\n },\n defaultState () {\n return get(this.$parent, this.pathDefault)\n },\n isChanged () {\n return this.state !== this.defaultState\n },\n matchesExpertLevel () {\n return (this.expert || 0) <= this.$parent.expertLevel\n }\n },\n methods: {\n update (e) {\n set(this.$parent, this.path, parseInt(e.target.value))\n }\n }\n}\n","import { render } from \"./integer_setting.vue?vue&type=template&id=481281d5\"\nimport script from \"./integer_setting.js?vue&type=script&lang=js\"\nexport * from \"./integer_setting.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { filter, trim } from 'lodash'\nimport BooleanSetting from '../helpers/boolean_setting.vue'\nimport ChoiceSetting from '../helpers/choice_setting.vue'\nimport IntegerSetting from '../helpers/integer_setting.vue'\n\nimport SharedComputedObject from '../helpers/shared_computed_object.js'\n\nconst FilteringTab = {\n data () {\n return {\n muteWordsStringLocal: this.$store.getters.mergedConfig.muteWords.join('\\n'),\n replyVisibilityOptions: ['all', 'following', 'self'].map(mode => ({\n key: mode,\n value: mode,\n label: this.$t(`settings.reply_visibility_${mode}`)\n }))\n }\n },\n components: {\n BooleanSetting,\n ChoiceSetting,\n IntegerSetting\n },\n computed: {\n ...SharedComputedObject(),\n muteWordsString: {\n get () {\n return this.muteWordsStringLocal\n },\n set (value) {\n this.muteWordsStringLocal = value\n this.$store.dispatch('setOption', {\n name: 'muteWords',\n value: filter(value.split('\\n'), (word) => trim(word).length > 0)\n })\n }\n }\n },\n // Updating nested properties\n watch: {\n notificationVisibility: {\n handler (value) {\n this.$store.dispatch('setOption', {\n name: 'notificationVisibility',\n value: this.$store.getters.mergedConfig.notificationVisibility\n })\n },\n deep: true\n },\n replyVisibility () {\n this.$store.dispatch('queueFlushAll')\n }\n }\n}\n\nexport default FilteringTab\n","import { render } from \"./filtering_tab.vue?vue&type=template&id=19e8a013\"\nimport script from \"./filtering_tab.js?vue&type=script&lang=js\"\nexport * from \"./filtering_tab.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div :label=\"$t('settings.security_tab')\">\n <div class=\"setting-item\">\n <h2>{{ $t('settings.change_email') }}</h2>\n <div>\n <p>{{ $t('settings.new_email') }}</p>\n <input\n v-model=\"newEmail\"\n type=\"email\"\n autocomplete=\"email\"\n >\n </div>\n <div>\n <p>{{ $t('settings.current_password') }}</p>\n <input\n v-model=\"changeEmailPassword\"\n type=\"password\"\n autocomplete=\"current-password\"\n >\n </div>\n <button\n class=\"btn button-default\"\n @click=\"changeEmail\"\n >\n {{ $t('settings.save') }}\n </button>\n <p v-if=\"changedEmail\">\n {{ $t('settings.changed_email') }}\n </p>\n <template v-if=\"changeEmailError !== false\">\n <p>{{ $t('settings.change_email_error') }}</p>\n <p>{{ changeEmailError }}</p>\n </template>\n </div>\n\n <div class=\"setting-item\">\n <h2>{{ $t('settings.change_password') }}</h2>\n <div>\n <p>{{ $t('settings.current_password') }}</p>\n <input\n v-model=\"changePasswordInputs[0]\"\n type=\"password\"\n >\n </div>\n <div>\n <p>{{ $t('settings.new_password') }}</p>\n <input\n v-model=\"changePasswordInputs[1]\"\n type=\"password\"\n >\n </div>\n <div>\n <p>{{ $t('settings.confirm_new_password') }}</p>\n <input\n v-model=\"changePasswordInputs[2]\"\n type=\"password\"\n >\n </div>\n <button\n class=\"btn button-default\"\n @click=\"changePassword\"\n >\n {{ $t('settings.save') }}\n </button>\n <p v-if=\"changedPassword\">\n {{ $t('settings.changed_password') }}\n </p>\n <p v-else-if=\"changePasswordError !== false\">\n {{ $t('settings.change_password_error') }}\n </p>\n <p v-if=\"changePasswordError\">\n {{ changePasswordError }}\n </p>\n </div>\n\n <div class=\"setting-item\">\n <h2>{{ $t('settings.oauth_tokens') }}</h2>\n <table class=\"oauth-tokens\">\n <thead>\n <tr>\n <th>{{ $t('settings.app_name') }}</th>\n <th>{{ $t('settings.valid_until') }}</th>\n <th />\n </tr>\n </thead>\n <tbody>\n <tr\n v-for=\"oauthToken in oauthTokens\"\n :key=\"oauthToken.id\"\n >\n <td>{{ oauthToken.appName }}</td>\n <td>{{ oauthToken.validUntil }}</td>\n <td class=\"actions\">\n <button\n class=\"btn button-default\"\n @click=\"revokeToken(oauthToken.id)\"\n >\n {{ $t('settings.revoke_token') }}\n </button>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n <mfa />\n <div class=\"setting-item\">\n <h2>{{ $t('settings.delete_account') }}</h2>\n <p v-if=\"!deletingAccount\">\n {{ $t('settings.delete_account_description') }}\n </p>\n <div v-if=\"deletingAccount\">\n <p>{{ $t('settings.delete_account_instructions') }}</p>\n <p>{{ $t('login.password') }}</p>\n <input\n v-model=\"deleteAccountConfirmPasswordInput\"\n type=\"password\"\n >\n <button\n class=\"btn button-default\"\n @click=\"deleteAccount\"\n >\n {{ $t('settings.delete_account') }}\n </button>\n </div>\n <p v-if=\"deleteAccountError !== false\">\n {{ $t('settings.delete_account_error') }}\n </p>\n <p v-if=\"deleteAccountError\">\n {{ deleteAccountError }}\n </p>\n <button\n v-if=\"!deletingAccount\"\n class=\"btn button-default\"\n @click=\"confirmDelete\"\n >\n {{ $t('settings.save') }}\n </button>\n </div>\n </div>\n</template>\n\n<script src=\"./security_tab.js\"></script>\n<!-- <style lang=\"scss\" src=\"./profile.scss\"></style> -->\n","<template>\n <div\n v-if=\"readyInit && settings.available\"\n class=\"setting-item mfa-settings\"\n >\n <div class=\"mfa-heading\">\n <h2>{{ $t('settings.mfa.title') }}</h2>\n </div>\n\n <div>\n <div\n v-if=\"!setupInProgress\"\n class=\"setting-item\"\n >\n <!-- Enabled methods -->\n <h3>{{ $t('settings.mfa.authentication_methods') }}</h3>\n <totp-item\n :settings=\"settings\"\n @deactivate=\"fetchSettings\"\n @activate=\"activateOTP\"\n />\n <br>\n\n <div v-if=\"settings.enabled\">\n <!-- backup codes block-->\n <recovery-codes\n v-if=\"!confirmNewBackupCodes\"\n :backup-codes=\"backupCodes\"\n />\n <button\n v-if=\"!confirmNewBackupCodes\"\n class=\"btn button-default\"\n @click=\"getBackupCodes\"\n >\n {{ $t('settings.mfa.generate_new_recovery_codes') }}\n </button>\n\n <div v-if=\"confirmNewBackupCodes\">\n <confirm\n :disabled=\"backupCodes.inProgress\"\n @confirm=\"confirmBackupCodes\"\n @cancel=\"cancelBackupCodes\"\n >\n <p class=\"warning\">\n {{ $t('settings.mfa.warning_of_generate_new_codes') }}\n </p>\n </confirm>\n </div>\n </div>\n </div>\n\n <div v-if=\"setupInProgress\">\n <!-- setup block-->\n\n <h3>{{ $t('settings.mfa.setup_otp') }}</h3>\n\n <recovery-codes\n v-if=\"!setupOTPInProgress\"\n :backup-codes=\"backupCodes\"\n />\n\n <button\n v-if=\"canSetupOTP\"\n class=\"btn button-default\"\n @click=\"cancelSetup\"\n >\n {{ $t('general.cancel') }}\n </button>\n\n <button\n v-if=\"canSetupOTP\"\n class=\"btn button-default\"\n @click=\"setupOTP\"\n >\n {{ $t('settings.mfa.setup_otp') }}\n </button>\n\n <template v-if=\"setupOTPInProgress\">\n <i v-if=\"prepareOTP\">{{ $t('settings.mfa.wait_pre_setup_otp') }}</i>\n\n <div v-if=\"confirmOTP\">\n <div class=\"setup-otp\">\n <div class=\"qr-code\">\n <h4>{{ $t('settings.mfa.scan.title') }}</h4>\n <p>{{ $t('settings.mfa.scan.desc') }}</p>\n <qrcode\n :value=\"otpSettings.provisioning_uri\"\n :options=\"{ width: 200 }\"\n />\n <p>\n {{ $t('settings.mfa.scan.secret_code') }}:\n {{ otpSettings.key }}\n </p>\n </div>\n\n <div class=\"verify\">\n <h4>{{ $t('general.verify') }}</h4>\n <p>{{ $t('settings.mfa.verify.desc') }}</p>\n <input\n v-model=\"otpConfirmToken\"\n type=\"text\"\n >\n\n <p>{{ $t('settings.enter_current_password_to_confirm') }}:</p>\n <input\n v-model=\"currentPassword\"\n type=\"password\"\n >\n <div class=\"confirm-otp-actions\">\n <button\n class=\"btn button-default\"\n @click=\"doConfirmOTP\"\n >\n {{ $t('settings.mfa.confirm_and_enable') }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"cancelSetup\"\n >\n {{ $t('general.cancel') }}\n </button>\n </div>\n <div\n v-if=\"error\"\n class=\"alert error\"\n >\n {{ error }}\n </div>\n </div>\n </div>\n </div>\n </template>\n </div>\n </div>\n </div>\n</template>\n\n<script src=\"./mfa.js\"></script>\n<style lang=\"scss\">\n@import '../../../../_variables.scss';\n.mfa-settings {\n .mfa-heading, .method-item {\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n align-items: baseline;\n }\n\n .warning {\n color: $fallback--cOrange;\n color: var(--cOrange, $fallback--cOrange);\n }\n\n .setup-otp {\n display: flex;\n justify-content: center;\n flex-wrap: wrap;\n .qr-code {\n flex: 1;\n padding-right: 10px;\n }\n .verify { flex: 1; }\n .error { margin: 4px 0 0 0; }\n .confirm-otp-actions {\n button {\n width: 15em;\n margin-top: 5px;\n }\n\n }\n }\n}\n</style>\n","<template>\n <div class=\"mfa-backup-codes\">\n <h4 v-if=\"displayTitle\">\n {{ $t('settings.mfa.recovery_codes') }}\n </h4>\n <i v-if=\"inProgress\">{{ $t('settings.mfa.waiting_a_recovery_codes') }}</i>\n <template v-if=\"ready\">\n <p class=\"alert warning\">\n {{ $t('settings.mfa.recovery_codes_warning') }}\n </p>\n <ul class=\"backup-codes\">\n <li\n v-for=\"code in backupCodes.codes\"\n :key=\"code\"\n >\n {{ code }}\n </li>\n </ul>\n </template>\n </div>\n</template>\n<script src=\"./mfa_backup_codes.js\"></script>\n<style lang=\"scss\">\n@import '../../../../_variables.scss';\n\n.mfa-backup-codes {\n .warning {\n color: $fallback--cOrange;\n color: var(--cOrange, $fallback--cOrange);\n }\n .backup-codes {\n font-family: var(--postCodeFont, monospace);\n }\n}\n</style>\n","export default {\n props: {\n backupCodes: {\n type: Object,\n default: () => ({\n inProgress: false,\n codes: []\n })\n }\n },\n data: () => ({}),\n computed: {\n inProgress () { return this.backupCodes.inProgress },\n ready () { return this.backupCodes.codes.length > 0 },\n displayTitle () { return this.inProgress || this.ready }\n }\n}\n","import { render } from \"./mfa_backup_codes.vue?vue&type=template&id=1284fe74\"\nimport script from \"./mfa_backup_codes.js?vue&type=script&lang=js\"\nexport * from \"./mfa_backup_codes.js?vue&type=script&lang=js\"\n\nimport \"./mfa_backup_codes.vue?vue&type=style&index=0&id=1284fe74&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div>\n <div class=\"method-item\">\n <strong>{{ $t('settings.mfa.otp') }}</strong>\n <button\n v-if=\"!isActivated\"\n class=\"btn button-default\"\n @click=\"doActivate\"\n >\n {{ $t('general.enable') }}\n </button>\n\n <button\n v-if=\"isActivated\"\n class=\"btn button-default\"\n :disabled=\"deactivate\"\n @click=\"doDeactivate\"\n >\n {{ $t('general.disable') }}\n </button>\n </div>\n\n <confirm\n v-if=\"deactivate\"\n :disabled=\"inProgress\"\n @confirm=\"confirmDeactivate\"\n @cancel=\"cancelDeactivate\"\n >\n {{ $t('settings.enter_current_password_to_confirm') }}:\n <input\n v-model=\"currentPassword\"\n type=\"password\"\n >\n </confirm>\n <div\n v-if=\"error\"\n class=\"alert error\"\n >\n {{ error }}\n </div>\n </div>\n</template>\n<script src=\"./mfa_totp.js\"></script>\n","const Confirm = {\n props: ['disabled'],\n data: () => ({}),\n methods: {\n confirm () { this.$emit('confirm') },\n cancel () { this.$emit('cancel') }\n }\n}\nexport default Confirm\n","import { render } from \"./confirm.vue?vue&type=template&id=232a09eb\"\nimport script from \"./confirm.js?vue&type=script&lang=js\"\nexport * from \"./confirm.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div>\n <slot />\n <button\n class=\"btn button-default\"\n :disabled=\"disabled\"\n @click=\"confirm\"\n >\n {{ $t('general.confirm') }}\n </button>\n <button\n class=\"btn button-default\"\n :disabled=\"disabled\"\n @click=\"cancel\"\n >\n {{ $t('general.cancel') }}\n </button>\n </div>\n</template>\n\n<script src=\"./confirm.js\">\n</script>\n","import Confirm from './confirm.vue'\nimport { mapState } from 'vuex'\n\nexport default {\n props: ['settings'],\n data: () => ({\n error: false,\n currentPassword: '',\n deactivate: false,\n inProgress: false // progress peform request to disable otp method\n }),\n components: {\n 'confirm': Confirm\n },\n computed: {\n isActivated () {\n return this.settings.totp\n },\n ...mapState({\n backendInteractor: (state) => state.api.backendInteractor\n })\n },\n methods: {\n doActivate () {\n this.$emit('activate')\n },\n cancelDeactivate () { this.deactivate = false },\n doDeactivate () {\n this.error = null\n this.deactivate = true\n },\n confirmDeactivate () { // confirm deactivate TOTP method\n this.error = null\n this.inProgress = true\n this.backendInteractor.mfaDisableOTP({\n password: this.currentPassword\n })\n .then((res) => {\n this.inProgress = false\n if (res.error) {\n this.error = res.error\n return\n }\n this.deactivate = false\n this.$emit('deactivate')\n })\n }\n }\n}\n","import RecoveryCodes from './mfa_backup_codes.vue'\nimport TOTP from './mfa_totp.vue'\nimport Confirm from './confirm.vue'\nimport VueQrcode from '@chenfengyuan/vue-qrcode'\nimport { mapState } from 'vuex'\n\nconst Mfa = {\n data: () => ({\n settings: { // current settings of MFA\n available: false,\n enabled: false,\n totp: false\n },\n setupState: { // setup mfa\n state: '', // state of setup. '' -> 'getBackupCodes' -> 'setupOTP' -> 'complete'\n setupOTPState: '' // state of setup otp. '' -> 'prepare' -> 'confirm' -> 'complete'\n },\n backupCodes: {\n getNewCodes: false,\n inProgress: false, // progress of fetch codes\n codes: []\n },\n otpSettings: { // pre-setup setting of OTP. secret key, qrcode url.\n provisioning_uri: '',\n key: ''\n },\n currentPassword: null,\n otpConfirmToken: null,\n error: null,\n readyInit: false\n }),\n components: {\n 'recovery-codes': RecoveryCodes,\n 'totp-item': TOTP,\n 'qrcode': VueQrcode,\n 'confirm': Confirm\n },\n computed: {\n canSetupOTP () {\n return (\n (this.setupInProgress && this.backupCodesPrepared) ||\n this.settings.enabled\n ) && !this.settings.totp && !this.setupOTPInProgress\n },\n setupInProgress () {\n return this.setupState.state !== '' && this.setupState.state !== 'complete'\n },\n setupOTPInProgress () {\n return this.setupState.state === 'setupOTP' && !this.completedOTP\n },\n prepareOTP () {\n return this.setupState.setupOTPState === 'prepare'\n },\n confirmOTP () {\n return this.setupState.setupOTPState === 'confirm'\n },\n completedOTP () {\n return this.setupState.setupOTPState === 'completed'\n },\n backupCodesPrepared () {\n return !this.backupCodes.inProgress && this.backupCodes.codes.length > 0\n },\n confirmNewBackupCodes () {\n return this.backupCodes.getNewCodes\n },\n ...mapState({\n backendInteractor: (state) => state.api.backendInteractor\n })\n },\n\n methods: {\n activateOTP () {\n if (!this.settings.enabled) {\n this.setupState.state = 'getBackupcodes'\n this.fetchBackupCodes()\n }\n },\n fetchBackupCodes () {\n this.backupCodes.inProgress = true\n this.backupCodes.codes = []\n\n return this.backendInteractor.generateMfaBackupCodes()\n .then((res) => {\n this.backupCodes.codes = res.codes\n this.backupCodes.inProgress = false\n })\n },\n getBackupCodes () { // get a new backup codes\n this.backupCodes.getNewCodes = true\n },\n confirmBackupCodes () { // confirm getting new backup codes\n this.fetchBackupCodes().then((res) => {\n this.backupCodes.getNewCodes = false\n })\n },\n cancelBackupCodes () { // cancel confirm form of new backup codes\n this.backupCodes.getNewCodes = false\n },\n\n // Setup OTP\n setupOTP () { // prepare setup OTP\n this.setupState.state = 'setupOTP'\n this.setupState.setupOTPState = 'prepare'\n this.backendInteractor.mfaSetupOTP()\n .then((res) => {\n this.otpSettings = res\n this.setupState.setupOTPState = 'confirm'\n })\n },\n doConfirmOTP () { // handler confirm enable OTP\n this.error = null\n this.backendInteractor.mfaConfirmOTP({\n token: this.otpConfirmToken,\n password: this.currentPassword\n })\n .then((res) => {\n if (res.error) {\n this.error = res.error\n return\n }\n this.completeSetup()\n })\n },\n\n completeSetup () {\n this.setupState.setupOTPState = 'complete'\n this.setupState.state = 'complete'\n this.currentPassword = null\n this.error = null\n this.fetchSettings()\n },\n cancelSetup () { // cancel setup\n this.setupState.setupOTPState = ''\n this.setupState.state = ''\n this.currentPassword = null\n this.error = null\n },\n // end Setup OTP\n\n // fetch settings from server\n async fetchSettings () {\n let result = await this.backendInteractor.settingsMFA()\n if (result.error) return\n this.settings = result.settings\n this.settings.available = true\n return result\n }\n },\n mounted () {\n this.fetchSettings().then(() => {\n this.readyInit = true\n })\n }\n}\nexport default Mfa\n","import { render } from \"./mfa_totp.vue?vue&type=template&id=5466d3a1\"\nimport script from \"./mfa_totp.js?vue&type=script&lang=js\"\nexport * from \"./mfa_totp.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { render } from \"./mfa.vue?vue&type=template&id=c62074fa\"\nimport script from \"./mfa.js?vue&type=script&lang=js\"\nexport * from \"./mfa.js?vue&type=script&lang=js\"\n\nimport \"./mfa.vue?vue&type=style&index=0&id=c62074fa&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import ProgressButton from 'src/components/progress_button/progress_button.vue'\nimport Checkbox from 'src/components/checkbox/checkbox.vue'\nimport Mfa from './mfa.vue'\nimport localeService from 'src/services/locale/locale.service.js'\n\nconst SecurityTab = {\n data () {\n return {\n newEmail: '',\n changeEmailError: false,\n changeEmailPassword: '',\n changedEmail: false,\n deletingAccount: false,\n deleteAccountConfirmPasswordInput: '',\n deleteAccountError: false,\n changePasswordInputs: [ '', '', '' ],\n changedPassword: false,\n changePasswordError: false\n }\n },\n created () {\n this.$store.dispatch('fetchTokens')\n },\n components: {\n ProgressButton,\n Mfa,\n Checkbox\n },\n computed: {\n user () {\n return this.$store.state.users.currentUser\n },\n pleromaBackend () {\n return this.$store.state.instance.pleromaBackend\n },\n oauthTokens () {\n return this.$store.state.oauthTokens.tokens.map(oauthToken => {\n return {\n id: oauthToken.id,\n appName: oauthToken.app_name,\n validUntil: new Date(oauthToken.valid_until).toLocaleDateString(localeService.internalToBrowserLocale(this.$i18n.locale))\n }\n })\n }\n },\n methods: {\n confirmDelete () {\n this.deletingAccount = true\n },\n deleteAccount () {\n this.$store.state.api.backendInteractor.deleteAccount({ password: this.deleteAccountConfirmPasswordInput })\n .then((res) => {\n if (res.status === 'success') {\n this.$store.dispatch('logout')\n this.$router.push({ name: 'root' })\n } else {\n this.deleteAccountError = res.error\n }\n })\n },\n changePassword () {\n const params = {\n password: this.changePasswordInputs[0],\n newPassword: this.changePasswordInputs[1],\n newPasswordConfirmation: this.changePasswordInputs[2]\n }\n this.$store.state.api.backendInteractor.changePassword(params)\n .then((res) => {\n if (res.status === 'success') {\n this.changedPassword = true\n this.changePasswordError = false\n this.logout()\n } else {\n this.changedPassword = false\n this.changePasswordError = res.error\n }\n })\n },\n changeEmail () {\n const params = {\n email: this.newEmail,\n password: this.changeEmailPassword\n }\n this.$store.state.api.backendInteractor.changeEmail(params)\n .then((res) => {\n if (res.status === 'success') {\n this.changedEmail = true\n this.changeEmailError = false\n } else {\n this.changedEmail = false\n this.changeEmailError = res.error\n }\n })\n },\n logout () {\n this.$store.dispatch('logout')\n this.$router.replace('/')\n },\n revokeToken (id) {\n if (window.confirm(`${this.$i18n.t('settings.revoke_token')}?`)) {\n this.$store.dispatch('revokeToken', id)\n }\n }\n }\n}\n\nexport default SecurityTab\n","import { render } from \"./security_tab.vue?vue&type=template&id=dc4ec0ae\"\nimport script from \"./security_tab.js?vue&type=script&lang=js\"\nexport * from \"./security_tab.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"profile-tab\">\n <div class=\"setting-item\">\n <h2>{{ $t('settings.name_bio') }}</h2>\n <p>{{ $t('settings.name') }}</p>\n <EmojiInput\n v-model=\"newName\"\n enable-emoji-picker\n :suggest=\"emojiSuggestor\"\n >\n <input\n id=\"username\"\n v-model=\"newName\"\n class=\"name-changer\"\n >\n </EmojiInput>\n <p>{{ $t('settings.bio') }}</p>\n <EmojiInput\n v-model=\"newBio\"\n enable-emoji-picker\n :suggest=\"emojiUserSuggestor\"\n >\n <textarea\n v-model=\"newBio\"\n class=\"bio resize-height\"\n />\n </EmojiInput>\n <p v-if=\"role === 'admin' || role === 'moderator'\">\n <Checkbox v-model=\"showRole\">\n <template v-if=\"role === 'admin'\">\n {{ $t('settings.show_admin_badge') }}\n </template>\n <template v-if=\"role === 'moderator'\">\n {{ $t('settings.show_moderator_badge') }}\n </template>\n </Checkbox>\n </p>\n <div v-if=\"maxFields > 0\">\n <p>{{ $t('settings.profile_fields.label') }}</p>\n <div\n v-for=\"(_, i) in newFields\"\n :key=\"i\"\n class=\"profile-fields\"\n >\n <EmojiInput\n v-model=\"newFields[i].name\"\n enable-emoji-picker\n hide-emoji-button\n :suggest=\"userSuggestor\"\n >\n <input\n v-model=\"newFields[i].name\"\n :placeholder=\"$t('settings.profile_fields.name')\"\n >\n </EmojiInput>\n <EmojiInput\n v-model=\"newFields[i].value\"\n enable-emoji-picker\n hide-emoji-button\n :suggest=\"userSuggestor\"\n >\n <input\n v-model=\"newFields[i].value\"\n :placeholder=\"$t('settings.profile_fields.value')\"\n >\n </EmojiInput>\n <button\n class=\"delete-field button-unstyled -hover-highlight\"\n @click=\"deleteField(i)\"\n >\n <!-- TODO something is wrong with v-show here -->\n <FAIcon\n v-if=\"newFields.length > 1\"\n icon=\"times\"\n />\n </button>\n </div>\n <button\n v-if=\"newFields.length < maxFields\"\n class=\"add-field faint button-unstyled -hover-highlight\"\n @click=\"addField\"\n >\n <FAIcon icon=\"plus\" />\n {{ $t(\"settings.profile_fields.add_field\") }}\n </button>\n </div>\n <p>\n <Checkbox v-model=\"bot\">\n {{ $t('settings.bot') }}\n </Checkbox>\n </p>\n <p>\n <interface-language-switcher\n :prompt-text=\"$t('settings.email_language')\"\n :language=\"emailLanguage\"\n :set-language=\"val => emailLanguage = val\"\n />\n </p>\n <button\n :disabled=\"newName && newName.length === 0\"\n class=\"btn button-default\"\n @click=\"updateProfile\"\n >\n {{ $t('settings.save') }}\n </button>\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.avatar') }}</h2>\n <p class=\"visibility-notice\">\n {{ $t('settings.avatar_size_instruction') }}\n </p>\n <div class=\"current-avatar-container\">\n <img\n :src=\"user.profile_image_url_original\"\n class=\"current-avatar\"\n >\n <button\n v-if=\"!isDefaultAvatar && pickAvatarBtnVisible\"\n :title=\"$t('settings.reset_avatar')\"\n @click=\"resetAvatar\"\n class=\"button-unstyled reset-button\"\n >\n <FAIcon\n icon=\"times\"\n type=\"button\"\n />\n </button>\n </div>\n <p>{{ $t('settings.set_new_avatar') }}</p>\n <button\n v-show=\"pickAvatarBtnVisible\"\n id=\"pick-avatar\"\n class=\"button-default btn\"\n type=\"button\"\n >\n {{ $t('settings.upload_a_photo') }}\n </button>\n <image-cropper\n trigger=\"#pick-avatar\"\n :submit-handler=\"submitAvatar\"\n @open=\"pickAvatarBtnVisible=false\"\n @close=\"pickAvatarBtnVisible=true\"\n />\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.profile_banner') }}</h2>\n <div class=\"banner-background-preview\">\n <img :src=\"user.cover_photo\">\n <button\n v-if=\"!isDefaultBanner\"\n class=\"button-unstyled reset-button\"\n :title=\"$t('settings.reset_profile_banner')\"\n @click=\"resetBanner\"\n >\n <FAIcon\n icon=\"times\"\n type=\"button\"\n />\n </button>\n </div>\n <p>{{ $t('settings.set_new_profile_banner') }}</p>\n <img\n v-if=\"bannerPreview\"\n class=\"banner-background-preview\"\n :src=\"bannerPreview\"\n >\n <div>\n <input\n type=\"file\"\n @change=\"uploadFile('banner', $event)\"\n >\n </div>\n <FAIcon\n v-if=\"bannerUploading\"\n class=\"uploading\"\n spin\n icon=\"circle-notch\"\n />\n <button\n v-else-if=\"bannerPreview\"\n class=\"btn button-default\"\n @click=\"submitBanner(banner)\"\n >\n {{ $t('settings.save') }}\n </button>\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.profile_background') }}</h2>\n <div class=\"banner-background-preview\">\n <img :src=\"user.background_image\">\n <button\n v-if=\"!isDefaultBackground\"\n class=\"button-unstyled reset-button\"\n :title=\"$t('settings.reset_profile_background')\"\n @click=\"resetBackground\"\n >\n <FAIcon\n icon=\"times\"\n type=\"button\"\n />\n </button>\n </div>\n <p>{{ $t('settings.set_new_profile_background') }}</p>\n <img\n v-if=\"backgroundPreview\"\n class=\"banner-background-preview\"\n :src=\"backgroundPreview\"\n >\n <div>\n <input\n type=\"file\"\n @change=\"uploadFile('background', $event)\"\n >\n </div>\n <FAIcon\n v-if=\"backgroundUploading\"\n class=\"uploading\"\n spin\n icon=\"circle-notch\"\n />\n <button\n v-else-if=\"backgroundPreview\"\n class=\"btn button-default\"\n @click=\"submitBackground(background)\"\n >\n {{ $t('settings.save') }}\n </button>\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.account_privacy') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <BooleanSetting path=\"serverSide_locked\">\n {{ $t('settings.lock_account_description') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"serverSide_discoverable\">\n {{ $t('settings.discoverable') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"serverSide_allowFollowingMove\">\n {{ $t('settings.allow_following_move') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"serverSide_hideFavorites\">\n {{ $t('settings.hide_favorites_description') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"serverSide_hideFollowers\">\n {{ $t('settings.hide_followers_description') }}\n </BooleanSetting>\n <ul\n class=\"setting-list suboptions\"\n :class=\"[{disabled: !serverSide_hideFollowers}]\"\n >\n <li>\n <BooleanSetting\n path=\"serverSide_hideFollowersCount\"\n :disabled=\"!serverSide_hideFollowers\"\n >\n {{ $t('settings.hide_followers_count_description') }}\n </BooleanSetting>\n </li>\n </ul>\n </li>\n <li>\n <BooleanSetting path=\"serverSide_hideFollows\">\n {{ $t('settings.hide_follows_description') }}\n </BooleanSetting>\n <ul\n class=\"setting-list suboptions\"\n :class=\"[{disabled: !serverSide_hideFollows}]\"\n >\n <li>\n <BooleanSetting\n path=\"serverSide_hideFollowsCount\"\n :disabled=\"!serverSide_hideFollows\"\n >\n {{ $t('settings.hide_follows_count_description') }}\n </BooleanSetting>\n </li>\n </ul>\n </li>\n </ul>\n </div>\n </div>\n</template>\n\n<script src=\"./profile_tab.js\"></script>\n<style lang=\"scss\" src=\"./profile_tab.scss\"></style>\n","<template>\n <div class=\"image-cropper\">\n <div v-if=\"dataUrl\">\n <div class=\"image-cropper-image-container\">\n <img\n ref=\"img\"\n :src=\"dataUrl\"\n alt=\"\"\n @load.stop=\"createCropper\"\n >\n </div>\n <div class=\"image-cropper-buttons-wrapper\">\n <button\n class=\"button-default btn\"\n type=\"button\"\n :disabled=\"submitting\"\n @click=\"submit()\"\n v-text=\"saveText\"\n />\n <button\n class=\"button-default btn\"\n type=\"button\"\n :disabled=\"submitting\"\n @click=\"destroy\"\n v-text=\"cancelText\"\n />\n <button\n class=\"button-default btn\"\n type=\"button\"\n :disabled=\"submitting\"\n @click=\"submit(false)\"\n v-text=\"saveWithoutCroppingText\"\n />\n <FAIcon\n v-if=\"submitting\"\n spin\n icon=\"circle-notch\"\n />\n </div>\n </div>\n <input\n ref=\"input\"\n type=\"file\"\n class=\"image-cropper-img-input\"\n :accept=\"mimes\"\n >\n </div>\n</template>\n\n<script src=\"./image_cropper.js\"></script>\n\n<style lang=\"scss\">\n.image-cropper {\n &-img-input {\n display: none;\n }\n\n &-image-container {\n position: relative;\n\n img {\n display: block;\n max-width: 100%;\n }\n }\n\n &-buttons-wrapper {\n margin-top: 10px;\n\n button {\n margin-top: 5px;\n }\n }\n}\n</style>\n","import Cropper from 'cropperjs'\nimport 'cropperjs/dist/cropper.css'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faCircleNotch\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faCircleNotch\n)\n\nconst ImageCropper = {\n props: {\n trigger: {\n type: [String, window.Element],\n required: true\n },\n submitHandler: {\n type: Function,\n required: true\n },\n cropperOptions: {\n type: Object,\n default () {\n return {\n aspectRatio: 1,\n autoCropArea: 1,\n viewMode: 1,\n movable: false,\n zoomable: false,\n guides: false\n }\n }\n },\n mimes: {\n type: String,\n default: 'image/png, image/gif, image/jpeg, image/bmp, image/x-icon'\n },\n saveButtonLabel: {\n type: String\n },\n saveWithoutCroppingButtonlabel: {\n type: String\n },\n cancelButtonLabel: {\n type: String\n }\n },\n data () {\n return {\n cropper: undefined,\n dataUrl: undefined,\n filename: undefined,\n submitting: false\n }\n },\n computed: {\n saveText () {\n return this.saveButtonLabel || this.$t('image_cropper.save')\n },\n saveWithoutCroppingText () {\n return this.saveWithoutCroppingButtonlabel || this.$t('image_cropper.save_without_cropping')\n },\n cancelText () {\n return this.cancelButtonLabel || this.$t('image_cropper.cancel')\n }\n },\n methods: {\n destroy () {\n if (this.cropper) {\n this.cropper.destroy()\n }\n this.$refs.input.value = ''\n this.dataUrl = undefined\n this.$emit('close')\n },\n submit (cropping = true) {\n this.submitting = true\n this.submitHandler(cropping && this.cropper, this.file)\n .then(() => this.destroy())\n .finally(() => {\n this.submitting = false\n })\n },\n pickImage () {\n this.$refs.input.click()\n },\n createCropper () {\n this.cropper = new Cropper(this.$refs.img, this.cropperOptions)\n },\n getTriggerDOM () {\n return typeof this.trigger === 'object' ? this.trigger : document.querySelector(this.trigger)\n },\n readFile () {\n const fileInput = this.$refs.input\n if (fileInput.files != null && fileInput.files[0] != null) {\n this.file = fileInput.files[0]\n let reader = new window.FileReader()\n reader.onload = (e) => {\n this.dataUrl = e.target.result\n this.$emit('open')\n }\n reader.readAsDataURL(this.file)\n this.$emit('changed', this.file, reader)\n }\n }\n },\n mounted () {\n // listen for click event on trigger\n const trigger = this.getTriggerDOM()\n if (!trigger) {\n this.$emit('error', 'No image make trigger found.', 'user')\n } else {\n trigger.addEventListener('click', this.pickImage)\n }\n // listen for input file changes\n const fileInput = this.$refs.input\n fileInput.addEventListener('change', this.readFile)\n },\n beforeUnmount: function () {\n // remove the event listeners\n const trigger = this.getTriggerDOM()\n if (trigger) {\n trigger.removeEventListener('click', this.pickImage)\n }\n const fileInput = this.$refs.input\n fileInput.removeEventListener('change', this.readFile)\n }\n}\n\nexport default ImageCropper\n","import { render } from \"./image_cropper.vue?vue&type=template&id=0bac39f0\"\nimport script from \"./image_cropper.js?vue&type=script&lang=js\"\nexport * from \"./image_cropper.js?vue&type=script&lang=js\"\n\nimport \"./image_cropper.vue?vue&type=style&index=0&id=0bac39f0&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import unescape from 'lodash/unescape'\nimport merge from 'lodash/merge'\nimport ImageCropper from 'src/components/image_cropper/image_cropper.vue'\nimport ScopeSelector from 'src/components/scope_selector/scope_selector.vue'\nimport fileSizeFormatService from 'src/components/../services/file_size_format/file_size_format.js'\nimport ProgressButton from 'src/components/progress_button/progress_button.vue'\nimport EmojiInput from 'src/components/emoji_input/emoji_input.vue'\nimport suggestor from 'src/components/emoji_input/suggestor.js'\nimport Autosuggest from 'src/components/autosuggest/autosuggest.vue'\nimport Checkbox from 'src/components/checkbox/checkbox.vue'\nimport InterfaceLanguageSwitcher from 'src/components/interface_language_switcher/interface_language_switcher.vue'\nimport BooleanSetting from '../helpers/boolean_setting.vue'\nimport SharedComputedObject from '../helpers/shared_computed_object.js'\nimport localeService from 'src/services/locale/locale.service.js'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes,\n faPlus,\n faCircleNotch\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes,\n faPlus,\n faCircleNotch\n)\n\nconst ProfileTab = {\n data () {\n return {\n newName: this.$store.state.users.currentUser.name_unescaped,\n newBio: unescape(this.$store.state.users.currentUser.description),\n newLocked: this.$store.state.users.currentUser.locked,\n newFields: this.$store.state.users.currentUser.fields.map(field => ({ name: field.name, value: field.value })),\n showRole: this.$store.state.users.currentUser.show_role,\n role: this.$store.state.users.currentUser.role,\n bot: this.$store.state.users.currentUser.bot,\n pickAvatarBtnVisible: true,\n bannerUploading: false,\n backgroundUploading: false,\n banner: null,\n bannerPreview: null,\n background: null,\n backgroundPreview: null,\n emailLanguage: this.$store.state.users.currentUser.language || ''\n }\n },\n components: {\n ScopeSelector,\n ImageCropper,\n EmojiInput,\n Autosuggest,\n ProgressButton,\n Checkbox,\n BooleanSetting,\n InterfaceLanguageSwitcher\n },\n computed: {\n user () {\n return this.$store.state.users.currentUser\n },\n ...SharedComputedObject(),\n emojiUserSuggestor () {\n return suggestor({\n emoji: [\n ...this.$store.state.instance.emoji,\n ...this.$store.state.instance.customEmoji\n ],\n store: this.$store\n })\n },\n emojiSuggestor () {\n return suggestor({ emoji: [\n ...this.$store.state.instance.emoji,\n ...this.$store.state.instance.customEmoji\n ] })\n },\n userSuggestor () {\n return suggestor({ store: this.$store })\n },\n fieldsLimits () {\n return this.$store.state.instance.fieldsLimits\n },\n maxFields () {\n return this.fieldsLimits ? this.fieldsLimits.maxFields : 0\n },\n defaultAvatar () {\n return this.$store.state.instance.server + this.$store.state.instance.defaultAvatar\n },\n defaultBanner () {\n return this.$store.state.instance.server + this.$store.state.instance.defaultBanner\n },\n isDefaultAvatar () {\n const baseAvatar = this.$store.state.instance.defaultAvatar\n return !(this.$store.state.users.currentUser.profile_image_url) ||\n this.$store.state.users.currentUser.profile_image_url.includes(baseAvatar)\n },\n isDefaultBanner () {\n const baseBanner = this.$store.state.instance.defaultBanner\n return !(this.$store.state.users.currentUser.cover_photo) ||\n this.$store.state.users.currentUser.cover_photo.includes(baseBanner)\n },\n isDefaultBackground () {\n return !(this.$store.state.users.currentUser.background_image)\n },\n avatarImgSrc () {\n const src = this.$store.state.users.currentUser.profile_image_url_original\n return (!src) ? this.defaultAvatar : src\n },\n bannerImgSrc () {\n const src = this.$store.state.users.currentUser.cover_photo\n return (!src) ? this.defaultBanner : src\n }\n },\n methods: {\n updateProfile () {\n const params = {\n note: this.newBio,\n locked: this.newLocked,\n // Backend notation.\n /* eslint-disable camelcase */\n display_name: this.newName,\n fields_attributes: this.newFields.filter(el => el != null),\n bot: this.bot,\n show_role: this.showRole\n /* eslint-enable camelcase */\n }\n\n if (this.emailLanguage) {\n params.language = localeService.internalToBackendLocale(this.emailLanguage)\n }\n\n this.$store.state.api.backendInteractor\n .updateProfile({ params })\n .then((user) => {\n this.newFields.splice(user.fields.length)\n merge(this.newFields, user.fields)\n this.$store.commit('addNewUsers', [user])\n this.$store.commit('setCurrentUser', user)\n })\n },\n changeVis (visibility) {\n this.newDefaultScope = visibility\n },\n addField () {\n if (this.newFields.length < this.maxFields) {\n this.newFields.push({ name: '', value: '' })\n return true\n }\n return false\n },\n deleteField (index, event) {\n this.$delete(this.newFields, index)\n },\n uploadFile (slot, e) {\n const file = e.target.files[0]\n if (!file) { return }\n if (file.size > this.$store.state.instance[slot + 'limit']) {\n const filesize = fileSizeFormatService.fileSizeFormat(file.size)\n const allowedsize = fileSizeFormatService.fileSizeFormat(this.$store.state.instance[slot + 'limit'])\n this.$store.dispatch('pushGlobalNotice', {\n messageKey: 'upload.error.message',\n messageArgs: [\n this.$t('upload.error.file_too_big', {\n filesize: filesize.num,\n filesizeunit: filesize.unit,\n allowedsize: allowedsize.num,\n allowedsizeunit: allowedsize.unit\n })\n ],\n level: 'error'\n })\n return\n }\n // eslint-disable-next-line no-undef\n const reader = new FileReader()\n reader.onload = ({ target }) => {\n const img = target.result\n this[slot + 'Preview'] = img\n this[slot] = file\n }\n reader.readAsDataURL(file)\n },\n resetAvatar () {\n const confirmed = window.confirm(this.$t('settings.reset_avatar_confirm'))\n if (confirmed) {\n this.submitAvatar(undefined, '')\n }\n },\n resetBanner () {\n const confirmed = window.confirm(this.$t('settings.reset_banner_confirm'))\n if (confirmed) {\n this.submitBanner('')\n }\n },\n resetBackground () {\n const confirmed = window.confirm(this.$t('settings.reset_background_confirm'))\n if (confirmed) {\n this.submitBackground('')\n }\n },\n submitAvatar (cropper, file) {\n const that = this\n return new Promise((resolve, reject) => {\n function updateAvatar (avatar, avatarName) {\n that.$store.state.api.backendInteractor.updateProfileImages({ avatar, avatarName })\n .then((user) => {\n that.$store.commit('addNewUsers', [user])\n that.$store.commit('setCurrentUser', user)\n resolve()\n })\n .catch((error) => {\n that.displayUploadError(error)\n reject(error)\n })\n }\n\n if (cropper) {\n cropper.getCroppedCanvas().toBlob((data) => updateAvatar(data, file.name), file.type)\n } else {\n updateAvatar(file, file.name)\n }\n })\n },\n submitBanner (banner) {\n if (!this.bannerPreview && banner !== '') { return }\n\n this.bannerUploading = true\n this.$store.state.api.backendInteractor.updateProfileImages({ banner })\n .then((user) => {\n this.$store.commit('addNewUsers', [user])\n this.$store.commit('setCurrentUser', user)\n this.bannerPreview = null\n })\n .catch(this.displayUploadError)\n .finally(() => { this.bannerUploading = false })\n },\n submitBackground (background) {\n if (!this.backgroundPreview && background !== '') { return }\n\n this.backgroundUploading = true\n this.$store.state.api.backendInteractor.updateProfileImages({ background })\n .then((data) => {\n this.$store.commit('addNewUsers', [data])\n this.$store.commit('setCurrentUser', data)\n this.backgroundPreview = null\n })\n .catch(this.displayUploadError)\n .finally(() => { this.backgroundUploading = false })\n },\n displayUploadError (error) {\n this.$store.dispatch('pushGlobalNotice', {\n messageKey: 'upload.error.message',\n messageArgs: [error.message],\n level: 'error'\n })\n }\n }\n}\n\nexport default ProfileTab\n","import { render } from \"./profile_tab.vue?vue&type=template&id=d5067dba\"\nimport script from \"./profile_tab.js?vue&type=script&lang=js\"\nexport * from \"./profile_tab.js?vue&type=script&lang=js\"\n\nimport \"./profile_tab.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div :label=\"$t('settings.general')\">\n <div class=\"setting-item\">\n <h2>{{ $t('settings.interface') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <interface-language-switcher\n :prompt-text=\"$t('settings.interfaceLanguage')\"\n :language=\"language\"\n :set-language=\"val => language = val\"\n />\n </li>\n <li v-if=\"instanceSpecificPanelPresent\">\n <BooleanSetting path=\"hideISP\">\n {{ $t('settings.hide_isp') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"sidebarRight\">\n {{ $t('settings.right_sidebar') }}\n </BooleanSetting>\n </li>\n <li v-if=\"instanceWallpaperUsed\">\n <BooleanSetting path=\"hideInstanceWallpaper\">\n {{ $t('settings.hide_wallpaper') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"stopGifs\">\n {{ $t('settings.stop_gifs') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"streaming\">\n {{ $t('settings.streaming') }}\n </BooleanSetting>\n <ul\n class=\"setting-list suboptions\"\n :class=\"[{disabled: !streaming}]\"\n >\n <li>\n <BooleanSetting\n path=\"pauseOnUnfocused\"\n :disabled=\"!streaming\"\n >\n {{ $t('settings.pause_on_unfocused') }}\n </BooleanSetting>\n </li>\n </ul>\n </li>\n <li>\n <BooleanSetting\n path=\"useStreamingApi\"\n expert=\"1\"\n >\n {{ $t('settings.useStreamingApi') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"virtualScrolling\"\n expert=\"1\"\n >\n {{ $t('settings.virtual_scrolling') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"disableStickyHeaders\">\n {{ $t('settings.disable_sticky_headers') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"showScrollbars\">\n {{ $t('settings.show_scrollbars') }}\n </BooleanSetting>\n </li>\n <li>\n <ChoiceSetting\n v-if=\"user\"\n id=\"thirdColumnMode\"\n path=\"thirdColumnMode\"\n :options=\"thirdColumnModeOptions\"\n >\n {{ $t('settings.third_column_mode') }}\n </ChoiceSetting>\n </li>\n <li>\n <BooleanSetting path=\"minimalScopesMode\">\n {{ $t('settings.minimal_scopes_mode') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"sensitiveByDefault\">\n {{ $t('settings.sensitive_by_default') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"sensitiveIfSubject\">\n {{ $t('settings.sensitive_if_subject') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"alwaysShowNewPostButton\"\n expert=\"1\"\n >\n {{ $t('settings.always_show_post_button') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"autohideFloatingPostButton\"\n expert=\"1\"\n >\n {{ $t('settings.autohide_floating_post_button') }}\n </BooleanSetting>\n </li>\n <li v-if=\"instanceShoutboxPresent\">\n <BooleanSetting\n path=\"hideShoutbox\"\n expert=\"1\"\n >\n {{ $t('settings.hide_shoutbox') }}\n </BooleanSetting>\n </li>\n </ul>\n </div>\n <div class=\"setting-item\">\n <h2>{{ $t('settings.post_look_feel') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <ChoiceSetting\n id=\"conversationDisplay\"\n path=\"conversationDisplay\"\n :options=\"conversationDisplayOptions\"\n >\n {{ $t('settings.conversation_display') }}\n </ChoiceSetting>\n </li>\n <ul\n v-if=\"conversationDisplay !== 'linear'\"\n class=\"setting-list suboptions\"\n >\n <li>\n <BooleanSetting path=\"conversationTreeAdvanced\">\n {{ $t('settings.tree_advanced') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"conversationTreeFadeAncestors\"\n :expert=\"1\"\n >\n {{ $t('settings.tree_fade_ancestors') }}\n </BooleanSetting>\n </li>\n <li>\n <IntegerSetting\n path=\"maxDepthInThread\"\n :min=\"3\"\n :expert=\"1\"\n >\n {{ $t('settings.max_depth_in_thread') }}\n </IntegerSetting>\n </li>\n <li>\n <ChoiceSetting\n id=\"conversationOtherRepliesButton\"\n path=\"conversationOtherRepliesButton\"\n :options=\"conversationOtherRepliesButtonOptions\"\n :expert=\"1\"\n >\n {{ $t('settings.conversation_other_replies_button') }}\n </ChoiceSetting>\n </li>\n </ul>\n <li>\n <BooleanSetting path=\"collapseMessageWithSubject\">\n {{ $t('settings.collapse_subject') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"emojiReactionsOnTimeline\"\n expert=\"1\"\n >\n {{ $t('settings.emoji_reactions_on_timeline') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n v-if=\"user\"\n path=\"serverSide_stripRichContent\"\n expert=\"1\"\n >\n {{ $t('settings.no_rich_text_description') }}\n </BooleanSetting>\n </li>\n <h3>{{ $t('settings.attachments') }}</h3>\n <li>\n <BooleanSetting\n path=\"useContainFit\"\n expert=\"1\"\n >\n {{ $t('settings.use_contain_fit') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"hideNsfw\">\n {{ $t('settings.nsfw_clickthrough') }}\n </BooleanSetting>\n </li>\n <ul class=\"setting-list suboptions\">\n <li>\n <BooleanSetting\n path=\"preloadImage\"\n expert=\"1\"\n :disabled=\"!hideNsfw\"\n >\n {{ $t('settings.preload_images') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"useOneClickNsfw\"\n expert=\"1\"\n :disabled=\"!hideNsfw\"\n >\n {{ $t('settings.use_one_click_nsfw') }}\n </BooleanSetting>\n </li>\n </ul>\n <li>\n <BooleanSetting\n path=\"loopVideo\"\n expert=\"1\"\n >\n {{ $t('settings.loop_video') }}\n </BooleanSetting>\n <ul\n class=\"setting-list suboptions\"\n :class=\"[{disabled: !streaming}]\"\n >\n <li>\n <BooleanSetting\n path=\"loopVideoSilentOnly\"\n expert=\"1\"\n :disabled=\"!loopVideo || !loopSilentAvailable\"\n >\n {{ $t('settings.loop_video_silent_only') }}\n </BooleanSetting>\n <div\n v-if=\"!loopSilentAvailable\"\n class=\"unavailable\"\n >\n <FAIcon icon=\"globe\" />! {{ $t('settings.limited_availability') }}\n </div>\n </li>\n </ul>\n </li>\n <li>\n <BooleanSetting\n path=\"playVideosInModal\"\n expert=\"1\"\n >\n {{ $t('settings.play_videos_in_modal') }}\n </BooleanSetting>\n </li>\n <h3>{{ $t('settings.mention_links') }}</h3>\n <li>\n <ChoiceSetting\n id=\"mentionLinkDisplay\"\n path=\"mentionLinkDisplay\"\n :options=\"mentionLinkDisplayOptions\"\n >\n {{ $t('settings.mention_link_display') }}\n </ChoiceSetting>\n </li>\n <ul\n class=\"setting-list suboptions\"\n >\n <li v-if=\"mentionLinkDisplay === 'short'\">\n <BooleanSetting\n path=\"mentionLinkShowTooltip\"\n expert=\"1\"\n >\n {{ $t('settings.mention_link_show_tooltip') }}\n </BooleanSetting>\n </li>\n </ul>\n <li>\n <BooleanSetting\n path=\"useAtIcon\"\n expert=\"1\"\n >\n {{ $t('settings.use_at_icon') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting path=\"mentionLinkShowAvatar\">\n {{ $t('settings.mention_link_show_avatar') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"mentionLinkFadeDomain\"\n expert=\"1\"\n >\n {{ $t('settings.mention_link_fade_domain') }}\n </BooleanSetting>\n </li>\n <li v-if=\"user\">\n <BooleanSetting\n path=\"mentionLinkBoldenYou\"\n expert=\"1\"\n >\n {{ $t('settings.mention_link_bolden_you') }}\n </BooleanSetting>\n </li>\n <h3 v-if=\"expertLevel > 0\">\n {{ $t('settings.fun') }}\n </h3>\n <li>\n <BooleanSetting\n path=\"greentext\"\n expert=\"1\"\n >\n {{ $t('settings.greentext') }}\n </BooleanSetting>\n </li>\n <li v-if=\"user\">\n <BooleanSetting\n path=\"mentionLinkShowYous\"\n expert=\"1\"\n >\n {{ $t('settings.show_yous') }}\n </BooleanSetting>\n </li>\n </ul>\n </div>\n\n <div\n v-if=\"user\"\n class=\"setting-item\"\n >\n <h2>{{ $t('settings.composing') }}</h2>\n <ul class=\"setting-list\">\n <li>\n <label for=\"default-vis\">\n {{ $t('settings.default_vis') }} <ServerSideIndicator :server-side=\"true\" />\n <ScopeSelector\n class=\"scope-selector\"\n :show-all=\"true\"\n :user-default=\"serverSide_defaultScope\"\n :initial-scope=\"serverSide_defaultScope\"\n :on-scope-change=\"changeDefaultScope\"\n />\n </label>\n </li>\n <li>\n <!-- <BooleanSetting path=\"serverSide_defaultNSFW\"> -->\n <BooleanSetting path=\"sensitiveByDefault\">\n {{ $t('settings.sensitive_by_default') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"scopeCopy\"\n expert=\"1\"\n >\n {{ $t('settings.scope_copy') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"alwaysShowSubjectInput\"\n expert=\"1\"\n >\n {{ $t('settings.subject_input_always_show') }}\n </BooleanSetting>\n </li>\n <li>\n <ChoiceSetting\n id=\"subjectLineBehavior\"\n path=\"subjectLineBehavior\"\n :options=\"subjectLineOptions\"\n expert=\"1\"\n >\n {{ $t('settings.subject_line_behavior') }}\n </ChoiceSetting>\n </li>\n <li v-if=\"postFormats.length > 0\">\n <ChoiceSetting\n id=\"postContentType\"\n path=\"postContentType\"\n :options=\"postContentOptions\"\n >\n {{ $t('settings.post_status_content_type') }}\n </ChoiceSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"minimalScopesMode\"\n expert=\"1\"\n >\n {{ $t('settings.minimal_scopes_mode') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"alwaysShowNewPostButton\"\n expert=\"1\"\n >\n {{ $t('settings.always_show_post_button') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"autohideFloatingPostButton\"\n expert=\"1\"\n >\n {{ $t('settings.autohide_floating_post_button') }}\n </BooleanSetting>\n </li>\n <li>\n <BooleanSetting\n path=\"padEmoji\"\n expert=\"1\"\n >\n {{ $t('settings.pad_emoji') }}\n </BooleanSetting>\n </li>\n </ul>\n </div>\n </div>\n</template>\n\n<script src=\"./general_tab.js\"></script>\n","import BooleanSetting from '../helpers/boolean_setting.vue'\nimport ChoiceSetting from '../helpers/choice_setting.vue'\nimport ScopeSelector from 'src/components/scope_selector/scope_selector.vue'\nimport IntegerSetting from '../helpers/integer_setting.vue'\nimport InterfaceLanguageSwitcher from 'src/components/interface_language_switcher/interface_language_switcher.vue'\n\nimport SharedComputedObject from '../helpers/shared_computed_object.js'\nimport ServerSideIndicator from '../helpers/server_side_indicator.vue'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faGlobe\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faGlobe\n)\n\nconst GeneralTab = {\n data () {\n return {\n subjectLineOptions: ['email', 'noop', 'masto'].map(mode => ({\n key: mode,\n value: mode,\n label: this.$t(`settings.subject_line_${mode === 'masto' ? 'mastodon' : mode}`)\n })),\n conversationDisplayOptions: ['tree', 'linear'].map(mode => ({\n key: mode,\n value: mode,\n label: this.$t(`settings.conversation_display_${mode}`)\n })),\n conversationOtherRepliesButtonOptions: ['below', 'inside'].map(mode => ({\n key: mode,\n value: mode,\n label: this.$t(`settings.conversation_other_replies_button_${mode}`)\n })),\n mentionLinkDisplayOptions: ['short', 'full_for_remote', 'full'].map(mode => ({\n key: mode,\n value: mode,\n label: this.$t(`settings.mention_link_display_${mode}`)\n })),\n thirdColumnModeOptions: ['none', 'notifications', 'postform'].map(mode => ({\n key: mode,\n value: mode,\n label: this.$t(`settings.third_column_mode_${mode}`)\n })),\n loopSilentAvailable:\n // Firefox\n Object.getOwnPropertyDescriptor(HTMLVideoElement.prototype, 'mozHasAudio') ||\n // Chrome-likes\n Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype, 'webkitAudioDecodedByteCount') ||\n // Future spec, still not supported in Nightly 63 as of 08/2018\n Object.getOwnPropertyDescriptor(HTMLMediaElement.prototype, 'audioTracks')\n }\n },\n components: {\n BooleanSetting,\n ChoiceSetting,\n IntegerSetting,\n InterfaceLanguageSwitcher,\n ScopeSelector,\n ServerSideIndicator\n },\n computed: {\n postFormats () {\n return this.$store.state.instance.postFormats || []\n },\n postContentOptions () {\n return this.postFormats.map(format => ({\n key: format,\n value: format,\n label: this.$t(`post_status.content_type[\"${format}\"]`)\n }))\n },\n instanceSpecificPanelPresent () { return this.$store.state.instance.showInstanceSpecificPanel },\n instanceWallpaperUsed () {\n return this.$store.state.instance.background &&\n !this.$store.state.users.currentUser.background_image\n },\n instanceShoutboxPresent () { return this.$store.state.instance.shoutAvailable },\n language: {\n get: function () { return this.$store.getters.mergedConfig.interfaceLanguage },\n set: function (val) {\n this.$store.dispatch('setOption', { name: 'interfaceLanguage', value: val })\n }\n },\n ...SharedComputedObject()\n },\n methods: {\n changeDefaultScope (value) {\n this.$store.dispatch('setServerSideOption', { name: 'defaultScope', value })\n }\n }\n}\n\nexport default GeneralTab\n","import { render } from \"./general_tab.vue?vue&type=template&id=5cc71ab1\"\nimport script from \"./general_tab.js?vue&type=script&lang=js\"\nexport * from \"./general_tab.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div :label=\"$t('settings.version.title')\">\n <div class=\"setting-item\">\n <ul class=\"setting-list\">\n <li>\n <p>{{ $t('settings.version.backend_version') }}</p>\n <ul class=\"option-list\">\n <li>\n <a\n :href=\"backendVersionLink\"\n target=\"_blank\"\n >{{ backendVersion }}</a>\n </li>\n </ul>\n </li>\n <li>\n <p>{{ $t('settings.version.frontend_version') }}</p>\n <ul class=\"option-list\">\n <li>\n <a\n :href=\"frontendVersionLink\"\n target=\"_blank\"\n >{{ frontendVersion }}</a>\n </li>\n </ul>\n </li>\n </ul>\n </div>\n </div>\n</template>\n<script src=\"./version_tab.js\" />\n","\nexport const extractCommit = versionString => {\n const regex = /-g(\\w+)/i\n const matches = versionString.match(regex)\n return matches ? matches[1] : ''\n}\n","import { extractCommit } from 'src/services/version/version.service'\n\nconst pleromaFeCommitUrl = 'https://git.pleroma.social/pleroma/pleroma-fe/commit/'\nconst pleromaBeCommitUrl = 'https://git.pleroma.social/pleroma/pleroma/commit/'\n\nconst VersionTab = {\n data () {\n const instance = this.$store.state.instance\n return {\n backendVersion: instance.backendVersion,\n frontendVersion: instance.frontendVersion\n }\n },\n computed: {\n frontendVersionLink () {\n return pleromaFeCommitUrl + this.frontendVersion\n },\n backendVersionLink () {\n return pleromaBeCommitUrl + extractCommit(this.backendVersion)\n }\n }\n}\n\nexport default VersionTab\n","import { render } from \"./version_tab.vue?vue&type=template&id=1295897c\"\nimport script from \"./version_tab.js?vue&type=script&lang=js\"\nexport * from \"./version_tab.js?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"theme-tab\">\n <div class=\"presets-container\">\n <div class=\"save-load\">\n <div\n v-if=\"themeWarning\"\n class=\"theme-warning\"\n >\n <div class=\"alert warning\">\n {{ themeWarningHelp }}\n </div>\n <div class=\"buttons\">\n <template v-if=\"themeWarning.type === 'snapshot_source_mismatch'\">\n <button\n class=\"btn button-default\"\n @click=\"forceLoad\"\n >\n {{ $t('settings.style.switcher.use_source') }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"forceSnapshot\"\n >\n {{ $t('settings.style.switcher.use_snapshot') }}\n </button>\n </template>\n <template v-else-if=\"themeWarning.noActionsPossible\">\n <button\n class=\"btn button-default\"\n @click=\"dismissWarning\"\n >\n {{ $t('general.dismiss') }}\n </button>\n </template>\n <template v-else>\n <button\n class=\"btn button-default\"\n @click=\"forceLoad\"\n >\n {{ $t('settings.style.switcher.load_theme') }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"dismissWarning\"\n >\n {{ $t('settings.style.switcher.keep_as_is') }}\n </button>\n </template>\n </div>\n </div>\n <div class=\"top\">\n <div class=\"presets\">\n {{ $t('settings.presets') }}\n <label\n for=\"preset-switcher\"\n class=\"select\"\n >\n <Select\n id=\"preset-switcher\"\n v-model=\"selected\"\n class=\"preset-switcher\"\n >\n <option\n v-for=\"style in availableStyles\"\n :key=\"style.name\"\n :value=\"style.name || style[0]\"\n :style=\"{\n backgroundColor: style[1] || (style.theme || style.source).colors.bg,\n color: style[3] || (style.theme || style.source).colors.text\n }\"\n >\n {{ style[0] || style.name }}\n </option>\n </Select>\n </label>\n </div>\n <div class=\"export-import\">\n <button\n class=\"btn button-default\"\n @click=\"importTheme\"\n >\n {{ $t(&quot;settings.import_theme&quot;) }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"exportTheme\"\n >\n {{ $t(&quot;settings.export_theme&quot;) }}\n </button>\n </div>\n </div>\n </div>\n <div class=\"save-load-options\">\n <span class=\"keep-option\">\n <Checkbox v-model=\"keepColor\">\n {{ $t('settings.style.switcher.keep_color') }}\n </Checkbox>\n </span>\n <span class=\"keep-option\">\n <Checkbox v-model=\"keepShadows\">\n {{ $t('settings.style.switcher.keep_shadows') }}\n </Checkbox>\n </span>\n <span class=\"keep-option\">\n <Checkbox v-model=\"keepOpacity\">\n {{ $t('settings.style.switcher.keep_opacity') }}\n </Checkbox>\n </span>\n <span class=\"keep-option\">\n <Checkbox v-model=\"keepRoundness\">\n {{ $t('settings.style.switcher.keep_roundness') }}\n </Checkbox>\n </span>\n <span class=\"keep-option\">\n <Checkbox v-model=\"keepFonts\">\n {{ $t('settings.style.switcher.keep_fonts') }}\n </Checkbox>\n </span>\n <p>{{ $t('settings.style.switcher.save_load_hint') }}</p>\n </div>\n </div>\n\n <preview :style=\"previewRules\" />\n\n <keep-alive>\n <tab-switcher key=\"style-tweak\">\n <div\n :label=\"$t('settings.style.common_colors._tab_label')\"\n class=\"color-container\"\n >\n <div class=\"tab-header\">\n <p>{{ $t('settings.theme_help') }}</p>\n <div class=\"tab-header-buttons\">\n <button\n class=\"btn button-default\"\n @click=\"clearOpacity\"\n >\n {{ $t('settings.style.switcher.clear_opacity') }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"clearV1\"\n >\n {{ $t('settings.style.switcher.clear_all') }}\n </button>\n </div>\n </div>\n <p>{{ $t('settings.theme_help_v2_1') }}</p>\n <h4>{{ $t('settings.style.common_colors.main') }}</h4>\n <div class=\"color-item\">\n <ColorInput\n v-model=\"bgColorLocal\"\n name=\"bgColor\"\n :label=\"$t('settings.background')\"\n />\n <OpacityInput\n v-model=\"bgOpacityLocal\"\n name=\"bgOpacity\"\n :fallback=\"previewTheme.opacity.bg\"\n />\n <ColorInput\n v-model=\"textColorLocal\"\n name=\"textColor\"\n :label=\"$t('settings.text')\"\n />\n <ContrastRatio :contrast=\"previewContrast.bgText\" />\n <ColorInput\n v-model=\"accentColorLocal\"\n name=\"accentColor\"\n :fallback=\"previewTheme.colors.link\"\n :label=\"$t('settings.accent')\"\n :show-optional-tickbox=\"typeof linkColorLocal !== 'undefined'\"\n />\n <ColorInput\n v-model=\"linkColorLocal\"\n name=\"linkColor\"\n :fallback=\"previewTheme.colors.accent\"\n :label=\"$t('settings.links')\"\n :show-optional-tickbox=\"typeof accentColorLocal !== 'undefined'\"\n />\n <ContrastRatio :contrast=\"previewContrast.bgLink\" />\n </div>\n <div class=\"color-item\">\n <ColorInput\n v-model=\"fgColorLocal\"\n name=\"fgColor\"\n :label=\"$t('settings.foreground')\"\n />\n <ColorInput\n v-model=\"fgTextColorLocal\"\n name=\"fgTextColor\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.fgText\"\n />\n <ColorInput\n v-model=\"fgLinkColorLocal\"\n name=\"fgLinkColor\"\n :label=\"$t('settings.links')\"\n :fallback=\"previewTheme.colors.fgLink\"\n />\n <p>{{ $t('settings.style.common_colors.foreground_hint') }}</p>\n </div>\n <h4>{{ $t('settings.style.common_colors.rgbo') }}</h4>\n <div class=\"color-item\">\n <ColorInput\n v-model=\"cRedColorLocal\"\n name=\"cRedColor\"\n :label=\"$t('settings.cRed')\"\n />\n <ContrastRatio :contrast=\"previewContrast.bgCRed\" />\n <ColorInput\n v-model=\"cBlueColorLocal\"\n name=\"cBlueColor\"\n :label=\"$t('settings.cBlue')\"\n />\n <ContrastRatio :contrast=\"previewContrast.bgCBlue\" />\n </div>\n <div class=\"color-item\">\n <ColorInput\n v-model=\"cGreenColorLocal\"\n name=\"cGreenColor\"\n :label=\"$t('settings.cGreen')\"\n />\n <ContrastRatio :contrast=\"previewContrast.bgCGreen\" />\n <ColorInput\n v-model=\"cOrangeColorLocal\"\n name=\"cOrangeColor\"\n :label=\"$t('settings.cOrange')\"\n />\n <ContrastRatio :contrast=\"previewContrast.bgCOrange\" />\n </div>\n <p>{{ $t('settings.theme_help_v2_2') }}</p>\n </div>\n\n <div\n :label=\"$t('settings.style.advanced_colors._tab_label')\"\n class=\"color-container\"\n >\n <div class=\"tab-header\">\n <p>{{ $t('settings.theme_help') }}</p>\n <button\n class=\"btn button-default\"\n @click=\"clearOpacity\"\n >\n {{ $t('settings.style.switcher.clear_opacity') }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"clearV1\"\n >\n {{ $t('settings.style.switcher.clear_all') }}\n </button>\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.post') }}</h4>\n <ColorInput\n v-model=\"postLinkColorLocal\"\n name=\"postLinkColor\"\n :fallback=\"previewTheme.colors.accent\"\n :label=\"$t('settings.links')\"\n />\n <ContrastRatio :contrast=\"previewContrast.postLink\" />\n <ColorInput\n v-model=\"postGreentextColorLocal\"\n name=\"postGreentextColor\"\n :fallback=\"previewTheme.colors.cGreen\"\n :label=\"$t('settings.greentext')\"\n />\n <ContrastRatio :contrast=\"previewContrast.postGreentext\" />\n <h4>{{ $t('settings.style.advanced_colors.alert') }}</h4>\n <ColorInput\n v-model=\"alertErrorColorLocal\"\n name=\"alertError\"\n :label=\"$t('settings.style.advanced_colors.alert_error')\"\n :fallback=\"previewTheme.colors.alertError\"\n />\n <ColorInput\n v-model=\"alertErrorTextColorLocal\"\n name=\"alertErrorText\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.alertErrorText\"\n />\n <ContrastRatio\n :contrast=\"previewContrast.alertErrorText\"\n large\n />\n <ColorInput\n v-model=\"alertWarningColorLocal\"\n name=\"alertWarning\"\n :label=\"$t('settings.style.advanced_colors.alert_warning')\"\n :fallback=\"previewTheme.colors.alertWarning\"\n />\n <ColorInput\n v-model=\"alertWarningTextColorLocal\"\n name=\"alertWarningText\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.alertWarningText\"\n />\n <ContrastRatio\n :contrast=\"previewContrast.alertWarningText\"\n large\n />\n <ColorInput\n v-model=\"alertNeutralColorLocal\"\n name=\"alertNeutral\"\n :label=\"$t('settings.style.advanced_colors.alert_neutral')\"\n :fallback=\"previewTheme.colors.alertNeutral\"\n />\n <ColorInput\n v-model=\"alertNeutralTextColorLocal\"\n name=\"alertNeutralText\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.alertNeutralText\"\n />\n <ContrastRatio\n :contrast=\"previewContrast.alertNeutralText\"\n large\n />\n <OpacityInput\n v-model=\"alertOpacityLocal\"\n name=\"alertOpacity\"\n :fallback=\"previewTheme.opacity.alert\"\n />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.badge') }}</h4>\n <ColorInput\n v-model=\"badgeNotificationColorLocal\"\n name=\"badgeNotification\"\n :label=\"$t('settings.style.advanced_colors.badge_notification')\"\n :fallback=\"previewTheme.colors.badgeNotification\"\n />\n <ColorInput\n v-model=\"badgeNotificationTextColorLocal\"\n name=\"badgeNotificationText\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.badgeNotificationText\"\n />\n <ContrastRatio\n :contrast=\"previewContrast.badgeNotificationText\"\n large\n />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.panel_header') }}</h4>\n <ColorInput\n v-model=\"panelColorLocal\"\n name=\"panelColor\"\n :fallback=\"previewTheme.colors.panel\"\n :label=\"$t('settings.background')\"\n />\n <OpacityInput\n v-model=\"panelOpacityLocal\"\n name=\"panelOpacity\"\n :fallback=\"previewTheme.opacity.panel\"\n :disabled=\"panelColorLocal === 'transparent'\"\n />\n <ColorInput\n v-model=\"panelTextColorLocal\"\n name=\"panelTextColor\"\n :fallback=\"previewTheme.colors.panelText\"\n :label=\"$t('settings.text')\"\n />\n <ContrastRatio\n :contrast=\"previewContrast.panelText\"\n large\n />\n <ColorInput\n v-model=\"panelLinkColorLocal\"\n name=\"panelLinkColor\"\n :fallback=\"previewTheme.colors.panelLink\"\n :label=\"$t('settings.links')\"\n />\n <ContrastRatio\n :contrast=\"previewContrast.panelLink\"\n large\n />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.top_bar') }}</h4>\n <ColorInput\n v-model=\"topBarColorLocal\"\n name=\"topBarColor\"\n :fallback=\"previewTheme.colors.topBar\"\n :label=\"$t('settings.background')\"\n />\n <ColorInput\n v-model=\"topBarTextColorLocal\"\n name=\"topBarTextColor\"\n :fallback=\"previewTheme.colors.topBarText\"\n :label=\"$t('settings.text')\"\n />\n <ContrastRatio :contrast=\"previewContrast.topBarText\" />\n <ColorInput\n v-model=\"topBarLinkColorLocal\"\n name=\"topBarLinkColor\"\n :fallback=\"previewTheme.colors.topBarLink\"\n :label=\"$t('settings.links')\"\n />\n <ContrastRatio :contrast=\"previewContrast.topBarLink\" />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.inputs') }}</h4>\n <ColorInput\n v-model=\"inputColorLocal\"\n name=\"inputColor\"\n :fallback=\"previewTheme.colors.input\"\n :label=\"$t('settings.background')\"\n />\n <OpacityInput\n v-model=\"inputOpacityLocal\"\n name=\"inputOpacity\"\n :fallback=\"previewTheme.opacity.input\"\n :disabled=\"inputColorLocal === 'transparent'\"\n />\n <ColorInput\n v-model=\"inputTextColorLocal\"\n name=\"inputTextColor\"\n :fallback=\"previewTheme.colors.inputText\"\n :label=\"$t('settings.text')\"\n />\n <ContrastRatio :contrast=\"previewContrast.inputText\" />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.buttons') }}</h4>\n <ColorInput\n v-model=\"btnColorLocal\"\n name=\"btnColor\"\n :fallback=\"previewTheme.colors.btn\"\n :label=\"$t('settings.background')\"\n />\n <OpacityInput\n v-model=\"btnOpacityLocal\"\n name=\"btnOpacity\"\n :fallback=\"previewTheme.opacity.btn\"\n :disabled=\"btnColorLocal === 'transparent'\"\n />\n <ColorInput\n v-model=\"btnTextColorLocal\"\n name=\"btnTextColor\"\n :fallback=\"previewTheme.colors.btnText\"\n :label=\"$t('settings.text')\"\n />\n <ContrastRatio :contrast=\"previewContrast.btnText\" />\n <ColorInput\n v-model=\"btnPanelTextColorLocal\"\n name=\"btnPanelTextColor\"\n :fallback=\"previewTheme.colors.btnPanelText\"\n :label=\"$t('settings.style.advanced_colors.panel_header')\"\n />\n <ContrastRatio :contrast=\"previewContrast.btnPanelText\" />\n <ColorInput\n v-model=\"btnTopBarTextColorLocal\"\n name=\"btnTopBarTextColor\"\n :fallback=\"previewTheme.colors.btnTopBarText\"\n :label=\"$t('settings.style.advanced_colors.top_bar')\"\n />\n <ContrastRatio :contrast=\"previewContrast.btnTopBarText\" />\n <h5>{{ $t('settings.style.advanced_colors.pressed') }}</h5>\n <ColorInput\n v-model=\"btnPressedColorLocal\"\n name=\"btnPressedColor\"\n :fallback=\"previewTheme.colors.btnPressed\"\n :label=\"$t('settings.background')\"\n />\n <ColorInput\n v-model=\"btnPressedTextColorLocal\"\n name=\"btnPressedTextColor\"\n :fallback=\"previewTheme.colors.btnPressedText\"\n :label=\"$t('settings.text')\"\n />\n <ContrastRatio :contrast=\"previewContrast.btnPressedText\" />\n <ColorInput\n v-model=\"btnPressedPanelTextColorLocal\"\n name=\"btnPressedPanelTextColor\"\n :fallback=\"previewTheme.colors.btnPressedPanelText\"\n :label=\"$t('settings.style.advanced_colors.panel_header')\"\n />\n <ContrastRatio :contrast=\"previewContrast.btnPressedPanelText\" />\n <ColorInput\n v-model=\"btnPressedTopBarTextColorLocal\"\n name=\"btnPressedTopBarTextColor\"\n :fallback=\"previewTheme.colors.btnPressedTopBarText\"\n :label=\"$t('settings.style.advanced_colors.top_bar')\"\n />\n <ContrastRatio :contrast=\"previewContrast.btnPressedTopBarText\" />\n <h5>{{ $t('settings.style.advanced_colors.disabled') }}</h5>\n <ColorInput\n v-model=\"btnDisabledColorLocal\"\n name=\"btnDisabledColor\"\n :fallback=\"previewTheme.colors.btnDisabled\"\n :label=\"$t('settings.background')\"\n />\n <ColorInput\n v-model=\"btnDisabledTextColorLocal\"\n name=\"btnDisabledTextColor\"\n :fallback=\"previewTheme.colors.btnDisabledText\"\n :label=\"$t('settings.text')\"\n />\n <ColorInput\n v-model=\"btnDisabledPanelTextColorLocal\"\n name=\"btnDisabledPanelTextColor\"\n :fallback=\"previewTheme.colors.btnDisabledPanelText\"\n :label=\"$t('settings.style.advanced_colors.panel_header')\"\n />\n <ColorInput\n v-model=\"btnDisabledTopBarTextColorLocal\"\n name=\"btnDisabledTopBarTextColor\"\n :fallback=\"previewTheme.colors.btnDisabledTopBarText\"\n :label=\"$t('settings.style.advanced_colors.top_bar')\"\n />\n <h5>{{ $t('settings.style.advanced_colors.toggled') }}</h5>\n <ColorInput\n v-model=\"btnToggledColorLocal\"\n name=\"btnToggledColor\"\n :fallback=\"previewTheme.colors.btnToggled\"\n :label=\"$t('settings.background')\"\n />\n <ColorInput\n v-model=\"btnToggledTextColorLocal\"\n name=\"btnToggledTextColor\"\n :fallback=\"previewTheme.colors.btnToggledText\"\n :label=\"$t('settings.text')\"\n />\n <ContrastRatio :contrast=\"previewContrast.btnToggledText\" />\n <ColorInput\n v-model=\"btnToggledPanelTextColorLocal\"\n name=\"btnToggledPanelTextColor\"\n :fallback=\"previewTheme.colors.btnToggledPanelText\"\n :label=\"$t('settings.style.advanced_colors.panel_header')\"\n />\n <ContrastRatio :contrast=\"previewContrast.btnToggledPanelText\" />\n <ColorInput\n v-model=\"btnToggledTopBarTextColorLocal\"\n name=\"btnToggledTopBarTextColor\"\n :fallback=\"previewTheme.colors.btnToggledTopBarText\"\n :label=\"$t('settings.style.advanced_colors.top_bar')\"\n />\n <ContrastRatio :contrast=\"previewContrast.btnToggledTopBarText\" />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.tabs') }}</h4>\n <ColorInput\n v-model=\"tabColorLocal\"\n name=\"tabColor\"\n :fallback=\"previewTheme.colors.tab\"\n :label=\"$t('settings.background')\"\n />\n <ColorInput\n v-model=\"tabTextColorLocal\"\n name=\"tabTextColor\"\n :fallback=\"previewTheme.colors.tabText\"\n :label=\"$t('settings.text')\"\n />\n <ContrastRatio :contrast=\"previewContrast.tabText\" />\n <ColorInput\n v-model=\"tabActiveTextColorLocal\"\n name=\"tabActiveTextColor\"\n :fallback=\"previewTheme.colors.tabActiveText\"\n :label=\"$t('settings.text')\"\n />\n <ContrastRatio :contrast=\"previewContrast.tabActiveText\" />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.borders') }}</h4>\n <ColorInput\n v-model=\"borderColorLocal\"\n name=\"borderColor\"\n :fallback=\"previewTheme.colors.border\"\n :label=\"$t('settings.style.common.color')\"\n />\n <OpacityInput\n v-model=\"borderOpacityLocal\"\n name=\"borderOpacity\"\n :fallback=\"previewTheme.opacity.border\"\n :disabled=\"borderColorLocal === 'transparent'\"\n />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.faint_text') }}</h4>\n <ColorInput\n v-model=\"faintColorLocal\"\n name=\"faintColor\"\n :fallback=\"previewTheme.colors.faint\"\n :label=\"$t('settings.text')\"\n />\n <ColorInput\n v-model=\"faintLinkColorLocal\"\n name=\"faintLinkColor\"\n :fallback=\"previewTheme.colors.faintLink\"\n :label=\"$t('settings.links')\"\n />\n <ColorInput\n v-model=\"panelFaintColorLocal\"\n name=\"panelFaintColor\"\n :fallback=\"previewTheme.colors.panelFaint\"\n :label=\"$t('settings.style.advanced_colors.panel_header')\"\n />\n <OpacityInput\n v-model=\"faintOpacityLocal\"\n name=\"faintOpacity\"\n :fallback=\"previewTheme.opacity.faint\"\n />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.underlay') }}</h4>\n <ColorInput\n v-model=\"underlayColorLocal\"\n name=\"underlay\"\n :label=\"$t('settings.style.advanced_colors.underlay')\"\n :fallback=\"previewTheme.colors.underlay\"\n />\n <OpacityInput\n v-model=\"underlayOpacityLocal\"\n name=\"underlayOpacity\"\n :fallback=\"previewTheme.opacity.underlay\"\n :disabled=\"underlayOpacityLocal === 'transparent'\"\n />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.wallpaper') }}</h4>\n <ColorInput\n v-model=\"wallpaperColorLocal\"\n name=\"wallpaper\"\n :label=\"$t('settings.style.advanced_colors.wallpaper')\"\n :fallback=\"previewTheme.colors.wallpaper\"\n />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.poll') }}</h4>\n <ColorInput\n v-model=\"pollColorLocal\"\n name=\"poll\"\n :label=\"$t('settings.background')\"\n :fallback=\"previewTheme.colors.poll\"\n />\n <ColorInput\n v-model=\"pollTextColorLocal\"\n name=\"pollText\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.pollText\"\n />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.icons') }}</h4>\n <ColorInput\n v-model=\"iconColorLocal\"\n name=\"icon\"\n :label=\"$t('settings.style.advanced_colors.icons')\"\n :fallback=\"previewTheme.colors.icon\"\n />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.highlight') }}</h4>\n <ColorInput\n v-model=\"highlightColorLocal\"\n name=\"highlight\"\n :label=\"$t('settings.background')\"\n :fallback=\"previewTheme.colors.highlight\"\n />\n <ColorInput\n v-model=\"highlightTextColorLocal\"\n name=\"highlightText\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.highlightText\"\n />\n <ContrastRatio :contrast=\"previewContrast.highlightText\" />\n <ColorInput\n v-model=\"highlightLinkColorLocal\"\n name=\"highlightLink\"\n :label=\"$t('settings.links')\"\n :fallback=\"previewTheme.colors.highlightLink\"\n />\n <ContrastRatio :contrast=\"previewContrast.highlightLink\" />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.popover') }}</h4>\n <ColorInput\n v-model=\"popoverColorLocal\"\n name=\"popover\"\n :label=\"$t('settings.background')\"\n :fallback=\"previewTheme.colors.popover\"\n />\n <OpacityInput\n v-model=\"popoverOpacityLocal\"\n name=\"popoverOpacity\"\n :fallback=\"previewTheme.opacity.popover\"\n :disabled=\"popoverOpacityLocal === 'transparent'\"\n />\n <ColorInput\n v-model=\"popoverTextColorLocal\"\n name=\"popoverText\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.popoverText\"\n />\n <ContrastRatio :contrast=\"previewContrast.popoverText\" />\n <ColorInput\n v-model=\"popoverLinkColorLocal\"\n name=\"popoverLink\"\n :label=\"$t('settings.links')\"\n :fallback=\"previewTheme.colors.popoverLink\"\n />\n <ContrastRatio :contrast=\"previewContrast.popoverLink\" />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.selectedPost') }}</h4>\n <ColorInput\n v-model=\"selectedPostColorLocal\"\n name=\"selectedPost\"\n :label=\"$t('settings.background')\"\n :fallback=\"previewTheme.colors.selectedPost\"\n />\n <ColorInput\n v-model=\"selectedPostTextColorLocal\"\n name=\"selectedPostText\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.selectedPostText\"\n />\n <ContrastRatio :contrast=\"previewContrast.selectedPostText\" />\n <ColorInput\n v-model=\"selectedPostLinkColorLocal\"\n name=\"selectedPostLink\"\n :label=\"$t('settings.links')\"\n :fallback=\"previewTheme.colors.selectedPostLink\"\n />\n <ContrastRatio :contrast=\"previewContrast.selectedPostLink\" />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('settings.style.advanced_colors.selectedMenu') }}</h4>\n <ColorInput\n v-model=\"selectedMenuColorLocal\"\n name=\"selectedMenu\"\n :label=\"$t('settings.background')\"\n :fallback=\"previewTheme.colors.selectedMenu\"\n />\n <ColorInput\n v-model=\"selectedMenuTextColorLocal\"\n name=\"selectedMenuText\"\n :label=\"$t('settings.text')\"\n :fallback=\"previewTheme.colors.selectedMenuText\"\n />\n <ContrastRatio :contrast=\"previewContrast.selectedMenuText\" />\n <ColorInput\n v-model=\"selectedMenuLinkColorLocal\"\n name=\"selectedMenuLink\"\n :label=\"$t('settings.links')\"\n :fallback=\"previewTheme.colors.selectedMenuLink\"\n />\n <ContrastRatio :contrast=\"previewContrast.selectedMenuLink\" />\n </div>\n <div class=\"color-item\">\n <h4>{{ $t('chats.chats') }}</h4>\n <ColorInput\n v-model=\"chatBgColorLocal\"\n name=\"chatBgColor\"\n :fallback=\"previewTheme.colors.bg\"\n :label=\"$t('settings.background')\"\n />\n <h5>{{ $t('settings.style.advanced_colors.chat.incoming') }}</h5>\n <ColorInput\n v-model=\"chatMessageIncomingBgColorLocal\"\n name=\"chatMessageIncomingBgColor\"\n :fallback=\"previewTheme.colors.bg\"\n :label=\"$t('settings.background')\"\n />\n <ColorInput\n v-model=\"chatMessageIncomingTextColorLocal\"\n name=\"chatMessageIncomingTextColor\"\n :fallback=\"previewTheme.colors.text\"\n :label=\"$t('settings.text')\"\n />\n <ColorInput\n v-model=\"chatMessageIncomingLinkColorLocal\"\n name=\"chatMessageIncomingLinkColor\"\n :fallback=\"previewTheme.colors.link\"\n :label=\"$t('settings.links')\"\n />\n <ColorInput\n v-model=\"chatMessageIncomingBorderColorLocal\"\n name=\"chatMessageIncomingBorderLinkColor\"\n :fallback=\"previewTheme.colors.fg\"\n :label=\"$t('settings.style.advanced_colors.chat.border')\"\n />\n <h5>{{ $t('settings.style.advanced_colors.chat.outgoing') }}</h5>\n <ColorInput\n v-model=\"chatMessageOutgoingBgColorLocal\"\n name=\"chatMessageOutgoingBgColor\"\n :fallback=\"previewTheme.colors.bg\"\n :label=\"$t('settings.background')\"\n />\n <ColorInput\n v-model=\"chatMessageOutgoingTextColorLocal\"\n name=\"chatMessageOutgoingTextColor\"\n :fallback=\"previewTheme.colors.text\"\n :label=\"$t('settings.text')\"\n />\n <ColorInput\n v-model=\"chatMessageOutgoingLinkColorLocal\"\n name=\"chatMessageOutgoingLinkColor\"\n :fallback=\"previewTheme.colors.link\"\n :label=\"$t('settings.links')\"\n />\n <ColorInput\n v-model=\"chatMessageOutgoingBorderColorLocal\"\n name=\"chatMessageOutgoingBorderLinkColor\"\n :fallback=\"previewTheme.colors.bg\"\n :label=\"$t('settings.style.advanced_colors.chat.border')\"\n />\n </div>\n </div>\n\n <div\n :label=\"$t('settings.style.radii._tab_label')\"\n class=\"radius-container\"\n >\n <div class=\"tab-header\">\n <p>{{ $t('settings.radii_help') }}</p>\n <button\n class=\"btn button-default\"\n @click=\"clearRoundness\"\n >\n {{ $t('settings.style.switcher.clear_all') }}\n </button>\n </div>\n <RangeInput\n v-model=\"btnRadiusLocal\"\n name=\"btnRadius\"\n :label=\"$t('settings.btnRadius')\"\n :fallback=\"previewTheme.radii.btn\"\n max=\"16\"\n hard-min=\"0\"\n />\n <RangeInput\n v-model=\"inputRadiusLocal\"\n name=\"inputRadius\"\n :label=\"$t('settings.inputRadius')\"\n :fallback=\"previewTheme.radii.input\"\n max=\"9\"\n hard-min=\"0\"\n />\n <RangeInput\n v-model=\"checkboxRadiusLocal\"\n name=\"checkboxRadius\"\n :label=\"$t('settings.checkboxRadius')\"\n :fallback=\"previewTheme.radii.checkbox\"\n max=\"16\"\n hard-min=\"0\"\n />\n <RangeInput\n v-model=\"panelRadiusLocal\"\n name=\"panelRadius\"\n :label=\"$t('settings.panelRadius')\"\n :fallback=\"previewTheme.radii.panel\"\n max=\"50\"\n hard-min=\"0\"\n />\n <RangeInput\n v-model=\"avatarRadiusLocal\"\n name=\"avatarRadius\"\n :label=\"$t('settings.avatarRadius')\"\n :fallback=\"previewTheme.radii.avatar\"\n max=\"28\"\n hard-min=\"0\"\n />\n <RangeInput\n v-model=\"avatarAltRadiusLocal\"\n name=\"avatarAltRadius\"\n :label=\"$t('settings.avatarAltRadius')\"\n :fallback=\"previewTheme.radii.avatarAlt\"\n max=\"28\"\n hard-min=\"0\"\n />\n <RangeInput\n v-model=\"attachmentRadiusLocal\"\n name=\"attachmentRadius\"\n :label=\"$t('settings.attachmentRadius')\"\n :fallback=\"previewTheme.radii.attachment\"\n max=\"50\"\n hard-min=\"0\"\n />\n <RangeInput\n v-model=\"tooltipRadiusLocal\"\n name=\"tooltipRadius\"\n :label=\"$t('settings.tooltipRadius')\"\n :fallback=\"previewTheme.radii.tooltip\"\n max=\"50\"\n hard-min=\"0\"\n />\n <RangeInput\n v-model=\"chatMessageRadiusLocal\"\n name=\"chatMessageRadius\"\n :label=\"$t('settings.chatMessageRadius')\"\n :fallback=\"previewTheme.radii.chatMessage || 2\"\n max=\"50\"\n hard-min=\"0\"\n />\n </div>\n\n <div\n :label=\"$t('settings.style.shadows._tab_label')\"\n class=\"shadow-container\"\n >\n <div class=\"tab-header shadow-selector\">\n <div class=\"select-container\">\n {{ $t('settings.style.shadows.component') }}\n {{ ' ' }}\n <Select\n id=\"shadow-switcher\"\n v-model=\"shadowSelected\"\n class=\"shadow-switcher\"\n >\n <option\n v-for=\"shadow in shadowsAvailable\"\n :key=\"shadow\"\n :value=\"shadow\"\n >\n {{ $t('settings.style.shadows.components.' + shadow) }}\n </option>\n </Select>\n </div>\n <div class=\"override\">\n <label\n for=\"override\"\n class=\"label\"\n >\n {{ $t('settings.style.shadows.override') }}\n </label>\n {{ ' ' }}\n <input\n id=\"override\"\n v-model=\"currentShadowOverriden\"\n name=\"override\"\n class=\"input-override\"\n type=\"checkbox\"\n >\n <label\n class=\"checkbox-label\"\n for=\"override\"\n />\n </div>\n <button\n class=\"btn button-default\"\n @click=\"clearShadows\"\n >\n {{ $t('settings.style.switcher.clear_all') }}\n </button>\n </div>\n <ShadowControl\n v-model=\"currentShadow\"\n :ready=\"!!currentShadowFallback\"\n :fallback=\"currentShadowFallback\"\n />\n <div v-if=\"shadowSelected === 'avatar' || shadowSelected === 'avatarStatus'\">\n <i18n-t\n scope=\"global\"\n keypath=\"settings.style.shadows.filter_hint.always_drop_shadow\"\n tag=\"p\"\n >\n <code>filter: drop-shadow()</code>\n </i18n-t>\n <p>{{ $t('settings.style.shadows.filter_hint.avatar_inset') }}</p>\n <i18n-t\n scope=\"global\"\n keypath=\"settings.style.shadows.filter_hint.drop_shadow_syntax\"\n tag=\"p\"\n >\n <code>drop-shadow</code>\n <code>spread-radius</code>\n <code>inset</code>\n </i18n-t>\n <i18n-t\n scope=\"global\"\n keypath=\"settings.style.shadows.filter_hint.inset_classic\"\n tag=\"p\"\n >\n <code>box-shadow</code>\n </i18n-t>\n <p>{{ $t('settings.style.shadows.filter_hint.spread_zero') }}</p>\n </div>\n </div>\n\n <div\n :label=\"$t('settings.style.fonts._tab_label')\"\n class=\"fonts-container\"\n >\n <div class=\"tab-header\">\n <p>{{ $t('settings.style.fonts.help') }}</p>\n <button\n class=\"btn button-default\"\n @click=\"clearFonts\"\n >\n {{ $t('settings.style.switcher.clear_all') }}\n </button>\n </div>\n <FontControl\n v-model=\"fontsLocal.interface\"\n name=\"ui\"\n :label=\"$t('settings.style.fonts.components.interface')\"\n :fallback=\"previewTheme.fonts.interface\"\n no-inherit=\"1\"\n />\n <FontControl\n v-model=\"fontsLocal.input\"\n name=\"input\"\n :label=\"$t('settings.style.fonts.components.input')\"\n :fallback=\"previewTheme.fonts.input\"\n />\n <FontControl\n v-model=\"fontsLocal.post\"\n name=\"post\"\n :label=\"$t('settings.style.fonts.components.post')\"\n :fallback=\"previewTheme.fonts.post\"\n />\n <FontControl\n v-model=\"fontsLocal.postCode\"\n name=\"postCode\"\n :label=\"$t('settings.style.fonts.components.postCode')\"\n :fallback=\"previewTheme.fonts.postCode\"\n />\n </div>\n </tab-switcher>\n </keep-alive>\n\n <teleport\n v-if=\"isActive\"\n to=\"#unscrolled-content\"\n >\n <div class=\"apply-container\">\n <button\n class=\"btn button-default submit\"\n :disabled=\"!themeValid\"\n @click=\"setCustomTheme\"\n >\n {{ $t('general.apply') }}\n </button>\n <button\n class=\"btn button-default\"\n @click=\"clearAll\"\n >\n {{ $t('settings.style.switcher.reset') }}\n </button>\n </div>\n </teleport>\n </div>\n</template>\n\n<script src=\"./theme_tab.js\"></script>\n\n<style src=\"./theme_tab.scss\" lang=\"scss\"></style>\n","<template>\n <div\n class=\"color-input style-control\"\n :class=\"{ disabled: !present || disabled }\"\n >\n <label\n :for=\"name\"\n class=\"label\"\n >\n {{ label }}\n </label>\n <Checkbox\n v-if=\"typeof fallback !== 'undefined' && showOptionalTickbox\"\n :model-value=\"present\"\n :disabled=\"disabled\"\n class=\"opt\"\n @update:modelValue=\"$emit('update:modelValue', typeof modelValue === 'undefined' ? fallback : undefined)\"\n />\n <div class=\"input color-input-field\">\n <input\n :id=\"name + '-t'\"\n class=\"textColor unstyled\"\n type=\"text\"\n :value=\"modelValue || fallback\"\n :disabled=\"!present || disabled\"\n @input=\"$emit('update:modelValue', $event.target.value)\"\n >\n <input\n v-if=\"validColor\"\n :id=\"name\"\n class=\"nativeColor unstyled\"\n type=\"color\"\n :value=\"modelValue || fallback\"\n :disabled=\"!present || disabled\"\n @input=\"$emit('update:modelValue', $event.target.value)\"\n >\n <div\n v-if=\"transparentColor\"\n class=\"transparentIndicator\"\n />\n <div\n v-if=\"computedColor\"\n class=\"computedIndicator\"\n :style=\"{backgroundColor: fallback}\"\n />\n </div>\n </div>\n</template>\n<style lang=\"scss\" src=\"./color_input.scss\"></style>\n<script>\nimport Checkbox from '../checkbox/checkbox.vue'\nimport { hex2rgb } from '../../services/color_convert/color_convert.js'\nexport default {\n components: {\n Checkbox\n },\n props: {\n // Name of color, used for identifying\n name: {\n required: true,\n type: String\n },\n // Readable label\n label: {\n required: true,\n type: String\n },\n // Color value, should be required but vue cannot tell the difference\n // between \"property missing\" and \"property set to undefined\"\n modelValue: {\n required: false,\n type: String,\n default: undefined\n },\n // Color fallback to use when value is not defeind\n fallback: {\n required: false,\n type: String,\n default: undefined\n },\n // Disable the control\n disabled: {\n required: false,\n type: Boolean,\n default: false\n },\n // Show \"optional\" tickbox, for when value might become mandatory\n showOptionalTickbox: {\n required: false,\n type: Boolean,\n default: true\n }\n },\n emits: ['update:modelValue'],\n computed: {\n present () {\n return typeof this.modelValue !== 'undefined'\n },\n validColor () {\n return hex2rgb(this.modelValue || this.fallback)\n },\n transparentColor () {\n return this.modelValue === 'transparent'\n },\n computedColor () {\n return this.modelValue && this.modelValue.startsWith('--')\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\n.color-control {\n input.text-input {\n max-width: 7em;\n flex: 1;\n }\n}\n</style>\n","import { render } from \"./color_input.vue?vue&type=template&id=54780100\"\nimport script from \"./color_input.vue?vue&type=script&lang=js\"\nexport * from \"./color_input.vue?vue&type=script&lang=js\"\n\nimport \"./color_input.scss?vue&type=style&index=0&lang=scss\"\nimport \"./color_input.vue?vue&type=style&index=1&id=54780100&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"range-control style-control\"\n :class=\"{ disabled: !present || disabled }\"\n >\n <label\n :for=\"name\"\n class=\"label\"\n >\n {{ label }}\n </label>\n <input\n v-if=\"typeof fallback !== 'undefined'\"\n :id=\"name + '-o'\"\n class=\"opt\"\n type=\"checkbox\"\n :checked=\"present\"\n @change=\"$emit('update:modelValue', !present ? fallback : undefined)\"\n >\n <label\n v-if=\"typeof fallback !== 'undefined'\"\n class=\"opt-l\"\n :for=\"name + '-o'\"\n />\n <input\n :id=\"name\"\n class=\"input-number\"\n type=\"range\"\n :value=\"modelValue || fallback\"\n :disabled=\"!present || disabled\"\n :max=\"max || hardMax || 100\"\n :min=\"min || hardMin || 0\"\n :step=\"step || 1\"\n @input=\"$emit('update:modelValue', $event.target.value)\"\n >\n <input\n :id=\"name\"\n class=\"input-number\"\n type=\"number\"\n :value=\"modelValue || fallback\"\n :disabled=\"!present || disabled\"\n :max=\"hardMax\"\n :min=\"hardMin\"\n :step=\"step || 1\"\n @input=\"$emit('update:modelValue', $event.target.value)\"\n >\n </div>\n</template>\n\n<script>\nexport default {\n props: [\n 'name', 'modelValue', 'fallback', 'disabled', 'label', 'max', 'min', 'step', 'hardMin', 'hardMax'\n ],\n emits: ['update:modelValue'],\n computed: {\n present () {\n return typeof this.modelValue !== 'undefined'\n }\n }\n}\n</script>\n","import { render } from \"./range_input.vue?vue&type=template&id=7ecff9e8\"\nimport script from \"./range_input.vue?vue&type=script&lang=js\"\nexport * from \"./range_input.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"opacity-control style-control\"\n :class=\"{ disabled: !present || disabled }\"\n >\n <label\n :for=\"name\"\n class=\"label\"\n >\n {{ $t('settings.style.common.opacity') }}\n </label>\n <Checkbox\n v-if=\"typeof fallback !== 'undefined'\"\n :model-value=\"present\"\n :disabled=\"disabled\"\n class=\"opt\"\n @update:modelValue=\"$emit('update:modelValue', !present ? fallback : undefined)\"\n />\n <input\n :id=\"name\"\n class=\"input-number\"\n type=\"number\"\n :value=\"modelValue || fallback\"\n :disabled=\"!present || disabled\"\n max=\"1\"\n min=\"0\"\n step=\".05\"\n @input=\"$emit('update:modelValue', $event.target.value)\"\n >\n </div>\n</template>\n\n<script>\nimport Checkbox from '../checkbox/checkbox.vue'\nexport default {\n components: {\n Checkbox\n },\n props: [\n 'name', 'modelValue', 'fallback', 'disabled'\n ],\n emits: ['update:modelValue'],\n computed: {\n present () {\n return typeof this.modelValue !== 'undefined'\n }\n }\n}\n</script>\n","import { render } from \"./opacity_input.vue?vue&type=template&id=69949f84\"\nimport script from \"./opacity_input.vue?vue&type=script&lang=js\"\nexport * from \"./opacity_input.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"shadow-control\"\n :class=\"{ disabled: !present }\"\n >\n <div class=\"shadow-preview-container\">\n <div\n :disabled=\"!present\"\n class=\"y-shift-control\"\n >\n <input\n v-model=\"selected.y\"\n :disabled=\"!present\"\n class=\"input-number\"\n type=\"number\"\n >\n <div class=\"wrap\">\n <input\n v-model=\"selected.y\"\n :disabled=\"!present\"\n class=\"input-range\"\n type=\"range\"\n max=\"20\"\n min=\"-20\"\n >\n </div>\n </div>\n <div class=\"preview-window\">\n <div\n class=\"preview-block\"\n :style=\"style\"\n />\n </div>\n <div\n :disabled=\"!present\"\n class=\"x-shift-control\"\n >\n <input\n v-model=\"selected.x\"\n :disabled=\"!present\"\n class=\"input-number\"\n type=\"number\"\n >\n <div class=\"wrap\">\n <input\n v-model=\"selected.x\"\n :disabled=\"!present\"\n class=\"input-range\"\n type=\"range\"\n max=\"20\"\n min=\"-20\"\n >\n </div>\n </div>\n </div>\n\n <div class=\"shadow-tweak\">\n <div\n :disabled=\"usingFallback\"\n class=\"id-control style-control\"\n >\n <Select\n id=\"shadow-switcher\"\n v-model=\"selectedId\"\n class=\"shadow-switcher\"\n :disabled=\"!ready || usingFallback\"\n >\n <option\n v-for=\"(shadow, index) in cValue\"\n :key=\"index\"\n :value=\"index\"\n >\n {{ $t('settings.style.shadows.shadow_id', { value: index }) }}\n </option>\n </Select>\n <button\n class=\"btn button-default\"\n :disabled=\"!ready || !present\"\n @click=\"del\"\n >\n <FAIcon\n fixed-width\n icon=\"times\"\n />\n </button>\n <button\n class=\"btn button-default\"\n :disabled=\"!moveUpValid\"\n @click=\"moveUp\"\n >\n <FAIcon\n fixed-width\n icon=\"chevron-up\"\n />\n </button>\n <button\n class=\"btn button-default\"\n :disabled=\"!moveDnValid\"\n @click=\"moveDn\"\n >\n <FAIcon\n fixed-width\n icon=\"chevron-down\"\n />\n </button>\n <button\n class=\"btn button-default\"\n :disabled=\"usingFallback\"\n @click=\"add\"\n >\n <FAIcon\n fixed-width\n icon=\"plus\"\n />\n </button>\n </div>\n <div\n :disabled=\"!present\"\n class=\"inset-control style-control\"\n >\n <label\n for=\"inset\"\n class=\"label\"\n >\n {{ $t('settings.style.shadows.inset') }}\n </label>\n <input\n id=\"inset\"\n v-model=\"selected.inset\"\n :disabled=\"!present\"\n name=\"inset\"\n class=\"input-inset\"\n type=\"checkbox\"\n >\n <label\n class=\"checkbox-label\"\n for=\"inset\"\n />\n </div>\n <div\n :disabled=\"!present\"\n class=\"blur-control style-control\"\n >\n <label\n for=\"spread\"\n class=\"label\"\n >\n {{ $t('settings.style.shadows.blur') }}\n </label>\n <input\n id=\"blur\"\n v-model=\"selected.blur\"\n :disabled=\"!present\"\n name=\"blur\"\n class=\"input-range\"\n type=\"range\"\n max=\"20\"\n min=\"0\"\n >\n <input\n v-model=\"selected.blur\"\n :disabled=\"!present\"\n class=\"input-number\"\n type=\"number\"\n min=\"0\"\n >\n </div>\n <div\n :disabled=\"!present\"\n class=\"spread-control style-control\"\n >\n <label\n for=\"spread\"\n class=\"label\"\n >\n {{ $t('settings.style.shadows.spread') }}\n </label>\n <input\n id=\"spread\"\n v-model=\"selected.spread\"\n :disabled=\"!present\"\n name=\"spread\"\n class=\"input-range\"\n type=\"range\"\n max=\"20\"\n min=\"-20\"\n >\n <input\n v-model=\"selected.spread\"\n :disabled=\"!present\"\n class=\"input-number\"\n type=\"number\"\n >\n </div>\n <ColorInput\n v-model=\"selected.color\"\n :disabled=\"!present\"\n :label=\"$t('settings.style.common.color')\"\n :fallback=\"currentFallback.color\"\n :show-optional-tickbox=\"false\"\n name=\"shadow\"\n />\n <OpacityInput\n v-model=\"selected.alpha\"\n :disabled=\"!present\"\n />\n <i18n-t\n scope=\"global\"\n keypath=\"settings.style.shadows.hintV3\"\n tag=\"p\"\n >\n <code>--variable,mod</code>\n </i18n-t>\n </div>\n </div>\n</template>\n\n<script src=\"./shadow_control.js\" ></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n.shadow-control {\n display: flex;\n flex-wrap: wrap;\n justify-content: center;\n margin-bottom: 1em;\n\n .shadow-preview-container,\n .shadow-tweak {\n margin: 5px 6px 0 0;\n }\n .shadow-preview-container {\n flex: 0;\n display: flex;\n flex-wrap: wrap;\n\n $side: 15em;\n\n input[type=number] {\n width: 5em;\n min-width: 2em;\n }\n .x-shift-control,\n .y-shift-control {\n display: flex;\n flex: 0;\n\n &[disabled=disabled] *{\n opacity: .5\n }\n\n }\n\n .x-shift-control {\n align-items: flex-start;\n }\n\n .x-shift-control .wrap,\n input[type=range] {\n margin: 0;\n width: $side;\n height: 2em;\n }\n .y-shift-control {\n flex-direction: column;\n align-items: flex-end;\n .wrap {\n width: 2em;\n height: $side;\n }\n input[type=range] {\n transform-origin: 1em 1em;\n transform: rotate(90deg);\n }\n }\n .preview-window {\n flex: 1;\n background-color: #999999;\n display: flex;\n align-items: center;\n justify-content: center;\n background-image:\n linear-gradient(45deg, #666666 25%, transparent 25%),\n linear-gradient(-45deg, #666666 25%, transparent 25%),\n linear-gradient(45deg, transparent 75%, #666666 75%),\n linear-gradient(-45deg, transparent 75%, #666666 75%);\n background-size: 20px 20px;\n background-position:0 0, 0 10px, 10px -10px, -10px 0;\n\n border-radius: $fallback--inputRadius;\n border-radius: var(--inputRadius, $fallback--inputRadius);\n\n .preview-block {\n width: 33%;\n height: 33%;\n background-color: $fallback--bg;\n background-color: var(--bg, $fallback--bg);\n border-radius: $fallback--panelRadius;\n border-radius: var(--panelRadius, $fallback--panelRadius);\n }\n }\n }\n\n .shadow-tweak {\n flex: 1;\n min-width: 280px;\n\n .id-control {\n align-items: stretch;\n\n .shadow-switcher {\n flex: 1;\n }\n\n .shadow-switcher, .btn {\n min-width: 1px;\n margin-right: 5px;\n }\n\n .btn {\n padding: 0 .4em;\n margin: 0 .1em;\n }\n }\n }\n}\n</style>\n","import ColorInput from '../color_input/color_input.vue'\nimport OpacityInput from '../opacity_input/opacity_input.vue'\nimport Select from '../select/select.vue'\nimport { getCssShadow } from '../../services/style_setter/style_setter.js'\nimport { hex2rgb } from '../../services/color_convert/color_convert.js'\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes,\n faChevronDown,\n faChevronUp,\n faPlus\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faChevronDown,\n faChevronUp,\n faTimes,\n faPlus\n)\n\nconst toModel = (object = {}) => ({\n x: 0,\n y: 0,\n blur: 0,\n spread: 0,\n inset: false,\n color: '#000000',\n alpha: 1,\n ...object\n})\n\nexport default {\n // 'modelValue' and 'Fallback' can be undefined, but if they are\n // initially vue won't detect it when they become something else\n // therefore i'm using \"ready\" which should be passed as true when\n // data becomes available\n props: [\n 'modelValue', 'fallback', 'ready'\n ],\n emits: ['update:modelValue'],\n data () {\n return {\n selectedId: 0,\n // TODO there are some bugs regarding display of array (it's not getting updated when deleting for some reason)\n cValue: (this.modelValue || this.fallback || []).map(toModel)\n }\n },\n components: {\n ColorInput,\n OpacityInput,\n Select\n },\n methods: {\n add () {\n this.cValue.push(toModel(this.selected))\n this.selectedId = this.cValue.length - 1\n },\n del () {\n this.cValue.splice(this.selectedId, 1)\n this.selectedId = this.cValue.length === 0 ? undefined : Math.max(this.selectedId - 1, 0)\n },\n moveUp () {\n const movable = this.cValue.splice(this.selectedId, 1)[0]\n this.cValue.splice(this.selectedId - 1, 0, movable)\n this.selectedId -= 1\n },\n moveDn () {\n const movable = this.cValue.splice(this.selectedId, 1)[0]\n this.cValue.splice(this.selectedId + 1, 0, movable)\n this.selectedId += 1\n }\n },\n beforeUpdate () {\n this.cValue = this.modelValue || this.fallback\n },\n computed: {\n anyShadows () {\n return this.cValue.length > 0\n },\n anyShadowsFallback () {\n return this.fallback.length > 0\n },\n selected () {\n if (this.ready && this.anyShadows) {\n return this.cValue[this.selectedId]\n } else {\n return toModel({})\n }\n },\n currentFallback () {\n if (this.ready && this.anyShadowsFallback) {\n return this.fallback[this.selectedId]\n } else {\n return toModel({})\n }\n },\n moveUpValid () {\n return this.ready && this.selectedId > 0\n },\n moveDnValid () {\n return this.ready && this.selectedId < this.cValue.length - 1\n },\n present () {\n return this.ready &&\n typeof this.cValue[this.selectedId] !== 'undefined' &&\n !this.usingFallback\n },\n usingFallback () {\n return typeof this.modelValue === 'undefined'\n },\n rgb () {\n return hex2rgb(this.selected.color)\n },\n style () {\n return this.ready ? {\n boxShadow: getCssShadow(this.fallback)\n } : {}\n }\n }\n}\n","import { render } from \"./shadow_control.vue?vue&type=template&id=02a2d813\"\nimport script from \"./shadow_control.js?vue&type=script&lang=js\"\nexport * from \"./shadow_control.js?vue&type=script&lang=js\"\n\nimport \"./shadow_control.vue?vue&type=style&index=0&id=02a2d813&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div\n class=\"font-control style-control\"\n :class=\"{ custom: isCustom }\"\n >\n <label\n :for=\"preset === 'custom' ? name : name + '-font-switcher'\"\n class=\"label\"\n >\n {{ label }}\n </label>\n <input\n v-if=\"typeof fallback !== 'undefined'\"\n :id=\"name + '-o'\"\n class=\"opt exlcude-disabled\"\n type=\"checkbox\"\n :checked=\"present\"\n @change=\"$emit('update:modelValue', typeof modelValue === 'undefined' ? fallback : undefined)\"\n >\n <label\n v-if=\"typeof fallback !== 'undefined'\"\n class=\"opt-l\"\n :for=\"name + '-o'\"\n />\n {{ ' ' }}\n <Select\n :id=\"name + '-font-switcher'\"\n v-model=\"preset\"\n :disabled=\"!present\"\n class=\"font-switcher\"\n >\n <option\n v-for=\"option in availableOptions\"\n :key=\"option\"\n :value=\"option\"\n >\n {{ option === 'custom' ? $t('settings.style.fonts.custom') : option }}\n </option>\n </Select>\n <input\n v-if=\"isCustom\"\n :id=\"name\"\n v-model=\"family\"\n class=\"custom-font\"\n type=\"text\"\n >\n </div>\n</template>\n\n<script src=\"./font_control.js\" ></script>\n\n<style lang=\"scss\">\n@import '../../_variables.scss';\n.font-control {\n input.custom-font {\n min-width: 10em;\n }\n &.custom {\n /* TODO Should make proper joiners... */\n .font-switcher {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .custom-font {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n }\n}\n</style>\n","import { set } from 'lodash'\nimport Select from '../select/select.vue'\n\nexport default {\n components: {\n Select\n },\n props: [\n 'name', 'label', 'modelValue', 'fallback', 'options', 'no-inherit'\n ],\n emits: ['update:modelValue'],\n data () {\n return {\n lValue: this.modelValue,\n availableOptions: [\n this.noInherit ? '' : 'inherit',\n 'custom',\n ...(this.options || []),\n 'serif',\n 'monospace',\n 'sans-serif'\n ].filter(_ => _)\n }\n },\n beforeUpdate () {\n this.lValue = this.modelValue\n },\n computed: {\n present () {\n return typeof this.lValue !== 'undefined'\n },\n dValue () {\n return this.lValue || this.fallback || {}\n },\n family: {\n get () {\n return this.dValue.family\n },\n set (v) {\n set(this.lValue, 'family', v)\n this.$emit('update:modelValue', this.lValue)\n }\n },\n isCustom () {\n return this.preset === 'custom'\n },\n preset: {\n get () {\n if (this.family === 'serif' ||\n this.family === 'sans-serif' ||\n this.family === 'monospace' ||\n this.family === 'inherit') {\n return this.family\n } else {\n return 'custom'\n }\n },\n set (v) {\n this.family = v === 'custom' ? '' : v\n }\n }\n }\n}\n","import { render } from \"./font_control.vue?vue&type=template&id=ceed00ba\"\nimport script from \"./font_control.js?vue&type=script&lang=js\"\nexport * from \"./font_control.js?vue&type=script&lang=js\"\n\nimport \"./font_control.vue?vue&type=style&index=0&id=ceed00ba&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <span\n v-if=\"contrast\"\n class=\"contrast-ratio\"\n >\n <span\n :title=\"hint\"\n class=\"rating\"\n >\n <span v-if=\"contrast.aaa\">\n <FAIcon icon=\"thumbs-up\" />\n </span>\n <span v-if=\"!contrast.aaa && contrast.aa\">\n <FAIcon icon=\"adjust\" />\n </span>\n <span v-if=\"!contrast.aaa && !contrast.aa\">\n <FAIcon icon=\"exclamation-triangle\" />\n </span>\n </span>\n <span\n v-if=\"contrast && large\"\n class=\"rating\"\n :title=\"hint_18pt\"\n >\n <span v-if=\"contrast.laaa\">\n <FAIcon icon=\"thumbs-up\" />\n </span>\n <span v-if=\"!contrast.laaa && contrast.laa\">\n <FAIcon icon=\"adjust\" />\n </span>\n <span v-if=\"!contrast.laaa && !contrast.laa\">\n <FAIcon icon=\"exclamation-triangle\" />\n </span>\n </span>\n </span>\n</template>\n\n<script>\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faAdjust,\n faExclamationTriangle,\n faThumbsUp\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faAdjust,\n faExclamationTriangle,\n faThumbsUp\n)\n\nexport default {\n props: {\n large: {\n required: false,\n type: Boolean,\n default: false\n },\n // TODO: Make theme switcher compute theme initially so that contrast\n // component won't be called without contrast data\n contrast: {\n required: false,\n type: Object,\n default: () => ({})\n }\n },\n computed: {\n hint () {\n const levelVal = this.contrast.aaa ? 'aaa' : (this.contrast.aa ? 'aa' : 'bad')\n const level = this.$t(`settings.style.common.contrast.level.${levelVal}`)\n const context = this.$t('settings.style.common.contrast.context.text')\n const ratio = this.contrast.text\n return this.$t('settings.style.common.contrast.hint', { level, context, ratio })\n },\n hint_18pt () {\n const levelVal = this.contrast.laaa ? 'aaa' : (this.contrast.laa ? 'aa' : 'bad')\n const level = this.$t(`settings.style.common.contrast.level.${levelVal}`)\n const context = this.$t('settings.style.common.contrast.context.18pt')\n const ratio = this.contrast.text\n return this.$t('settings.style.common.contrast.hint', { level, context, ratio })\n }\n }\n}\n</script>\n\n<style lang=\"scss\">\n.contrast-ratio {\n display: flex;\n justify-content: flex-end;\n\n margin-top: -4px;\n margin-bottom: 5px;\n\n .label {\n margin-right: 1em;\n }\n\n .rating {\n display: inline-block;\n text-align: center;\n margin-left: 0.5em;\n }\n}\n</style>\n","import { render } from \"./contrast_ratio.vue?vue&type=template&id=6d90b7c4\"\nimport script from \"./contrast_ratio.vue?vue&type=script&lang=js\"\nexport * from \"./contrast_ratio.vue?vue&type=script&lang=js\"\n\nimport \"./contrast_ratio.vue?vue&type=style&index=0&id=6d90b7c4&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <div class=\"preview-container\">\n <div class=\"underlay underlay-preview\" />\n <div class=\"panel dummy\">\n <div class=\"panel-heading\">\n <div class=\"title\">\n {{ $t('settings.style.preview.header') }}\n <span class=\"badge badge-notification\">\n 99\n </span>\n </div>\n <span class=\"faint\">\n {{ $t('settings.style.preview.header_faint') }}\n </span>\n <span class=\"alert error\">\n {{ $t('settings.style.preview.error') }}\n </span>\n <button class=\"btn button-default\">\n {{ $t('settings.style.preview.button') }}\n </button>\n </div>\n <div class=\"panel-body theme-preview-content\">\n <div class=\"post\">\n <div class=\"avatar still-image\">\n ( ͡° ͜ʖ ͡°)\n </div>\n <div class=\"content\">\n <h4>\n {{ $t('settings.style.preview.content') }}\n </h4>\n\n <i18n-t scope=\"global\" keypath=\"settings.style.preview.text\">\n <code style=\"font-family: var(--postCodeFont)\">\n {{ $t('settings.style.preview.mono') }}\n </code>\n <a style=\"color: var(--link)\">\n {{ $t('settings.style.preview.link') }}\n </a>\n </i18n-t>\n\n <div class=\"icons\">\n <FAIcon\n fixed-width\n style=\"color: var(--cBlue)\"\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"reply\"\n />\n <FAIcon\n fixed-width\n style=\"color: var(--cGreen)\"\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"retweet\"\n />\n <FAIcon\n fixed-width\n style=\"color: var(--cOrange)\"\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"star\"\n />\n <FAIcon\n fixed-width\n style=\"color: var(--cRed)\"\n class=\"fa-scale-110 fa-old-padding\"\n icon=\"times\"\n />\n </div>\n </div>\n </div>\n\n <div class=\"after-post\">\n <div class=\"avatar-alt\">\n :^)\n </div>\n <div class=\"content\">\n <i18n-t\n keypath=\"settings.style.preview.fine_print\"\n tag=\"span\"\n class=\"faint\"\n scope=\"global\"\n >\n <a style=\"color: var(--faintLink)\">\n {{ $t('settings.style.preview.faint_link') }}\n </a>\n </i18n-t>\n </div>\n </div>\n <div class=\"separator\" />\n\n <span class=\"alert error\">\n {{ $t('settings.style.preview.error') }}\n </span>\n <input\n :value=\"$t('settings.style.preview.input')\"\n type=\"text\"\n >\n\n <div class=\"actions\">\n <span class=\"checkbox\">\n <input\n id=\"preview_checkbox\"\n checked=\"very yes\"\n type=\"checkbox\"\n >\n <label for=\"preview_checkbox\">{{ $t('settings.style.preview.checkbox') }}</label>\n </span>\n <button class=\"btn button-default\">\n {{ $t('settings.style.preview.button') }}\n </button>\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<script>\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faTimes,\n faStar,\n faRetweet,\n faReply\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faTimes,\n faStar,\n faRetweet,\n faReply\n)\n\nexport default {}\n</script>\n\n<style lang=\"scss\">\n.preview-container {\n position: relative;\n}\n.underlay-preview {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 10px;\n right: 10px;\n}\n</style>\n","import { render } from \"./preview.vue?vue&type=template&id=1d72aedf\"\nimport script from \"./preview.vue?vue&type=script&lang=js\"\nexport * from \"./preview.vue?vue&type=script&lang=js\"\n\nimport \"./preview.vue?vue&type=style&index=0&id=1d72aedf&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import {\n rgb2hex,\n hex2rgb,\n getContrastRatioLayers\n} from 'src/services/color_convert/color_convert.js'\nimport {\n DEFAULT_SHADOWS,\n generateColors,\n generateShadows,\n generateRadii,\n generateFonts,\n composePreset,\n getThemes,\n shadows2to3,\n colors2to3\n} from 'src/services/style_setter/style_setter.js'\nimport {\n newImporter,\n newExporter\n} from 'src/services/export_import/export_import.js'\nimport {\n SLOT_INHERITANCE\n} from 'src/services/theme_data/pleromafe.js'\nimport {\n CURRENT_VERSION,\n OPACITIES,\n getLayers,\n getOpacitySlot\n} from 'src/services/theme_data/theme_data.service.js'\nimport ColorInput from 'src/components/color_input/color_input.vue'\nimport RangeInput from 'src/components/range_input/range_input.vue'\nimport OpacityInput from 'src/components/opacity_input/opacity_input.vue'\nimport ShadowControl from 'src/components/shadow_control/shadow_control.vue'\nimport FontControl from 'src/components/font_control/font_control.vue'\nimport ContrastRatio from 'src/components/contrast_ratio/contrast_ratio.vue'\nimport TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'\nimport Checkbox from 'src/components/checkbox/checkbox.vue'\nimport Select from 'src/components/select/select.vue'\n\nimport Preview from './preview.vue'\n\n// List of color values used in v1\nconst v1OnlyNames = [\n 'bg',\n 'fg',\n 'text',\n 'link',\n 'cRed',\n 'cGreen',\n 'cBlue',\n 'cOrange'\n].map(_ => _ + 'ColorLocal')\n\nconst colorConvert = (color) => {\n if (color.startsWith('--') || color === 'transparent') {\n return color\n } else {\n return hex2rgb(color)\n }\n}\n\nexport default {\n data () {\n return {\n themeImporter: newImporter({\n validator: this.importValidator,\n onImport: this.onImport,\n onImportFailure: this.onImportFailure\n }),\n themeExporter: newExporter({\n filename: 'pleroma_theme',\n getExportedObject: () => this.exportedTheme\n }),\n availableStyles: [],\n selected: '',\n selectedTheme: this.$store.getters.mergedConfig.theme,\n themeWarning: undefined,\n tempImportFile: undefined,\n engineVersion: 0,\n\n previewShadows: {},\n previewColors: {},\n previewRadii: {},\n previewFonts: {},\n\n shadowsInvalid: true,\n colorsInvalid: true,\n radiiInvalid: true,\n\n keepColor: false,\n keepShadows: false,\n keepOpacity: false,\n keepRoundness: false,\n keepFonts: false,\n\n ...Object.keys(SLOT_INHERITANCE)\n .map(key => [key, ''])\n .reduce((acc, [key, val]) => ({ ...acc, [ key + 'ColorLocal' ]: val }), {}),\n\n ...Object.keys(OPACITIES)\n .map(key => [key, ''])\n .reduce((acc, [key, val]) => ({ ...acc, [ key + 'OpacityLocal' ]: val }), {}),\n\n shadowSelected: undefined,\n shadowsLocal: {},\n fontsLocal: {},\n\n btnRadiusLocal: '',\n inputRadiusLocal: '',\n checkboxRadiusLocal: '',\n panelRadiusLocal: '',\n avatarRadiusLocal: '',\n avatarAltRadiusLocal: '',\n attachmentRadiusLocal: '',\n tooltipRadiusLocal: '',\n chatMessageRadiusLocal: ''\n }\n },\n created () {\n const self = this\n\n getThemes()\n .then((promises) => {\n return Promise.all(\n Object.entries(promises)\n .map(([k, v]) => v.then(res => [k, res]))\n )\n })\n .then(themes => themes.reduce((acc, [k, v]) => {\n if (v) {\n return {\n ...acc,\n [k]: v\n }\n } else {\n return acc\n }\n }, {}))\n .then((themesComplete) => {\n self.availableStyles = themesComplete\n })\n },\n mounted () {\n this.loadThemeFromLocalStorage()\n if (typeof this.shadowSelected === 'undefined') {\n this.shadowSelected = this.shadowsAvailable[0]\n }\n },\n computed: {\n themeWarningHelp () {\n if (!this.themeWarning) return\n const t = this.$t\n const pre = 'settings.style.switcher.help.'\n const {\n origin,\n themeEngineVersion,\n type,\n noActionsPossible\n } = this.themeWarning\n if (origin === 'file') {\n // Loaded v2 theme from file\n if (themeEngineVersion === 2 && type === 'wrong_version') {\n return t(pre + 'v2_imported')\n }\n if (themeEngineVersion > CURRENT_VERSION) {\n return t(pre + 'future_version_imported') + ' ' +\n (\n noActionsPossible\n ? t(pre + 'snapshot_missing')\n : t(pre + 'snapshot_present')\n )\n }\n if (themeEngineVersion < CURRENT_VERSION) {\n return t(pre + 'future_version_imported') + ' ' +\n (\n noActionsPossible\n ? t(pre + 'snapshot_missing')\n : t(pre + 'snapshot_present')\n )\n }\n } else if (origin === 'localStorage') {\n if (type === 'snapshot_source_mismatch') {\n return t(pre + 'snapshot_source_mismatch')\n }\n // FE upgraded from v2\n if (themeEngineVersion === 2) {\n return t(pre + 'upgraded_from_v2')\n }\n // Admin downgraded FE\n if (themeEngineVersion > CURRENT_VERSION) {\n return t(pre + 'fe_downgraded') + ' ' +\n (\n noActionsPossible\n ? t(pre + 'migration_snapshot_ok')\n : t(pre + 'migration_snapshot_gone')\n )\n }\n // Admin upgraded FE\n if (themeEngineVersion < CURRENT_VERSION) {\n return t(pre + 'fe_upgraded') + ' ' +\n (\n noActionsPossible\n ? t(pre + 'migration_snapshot_ok')\n : t(pre + 'migration_snapshot_gone')\n )\n }\n }\n },\n selectedVersion () {\n return Array.isArray(this.selectedTheme) ? 1 : 2\n },\n currentColors () {\n return Object.keys(SLOT_INHERITANCE)\n .map(key => [key, this[key + 'ColorLocal']])\n .reduce((acc, [key, val]) => ({ ...acc, [ key ]: val }), {})\n },\n currentOpacity () {\n return Object.keys(OPACITIES)\n .map(key => [key, this[key + 'OpacityLocal']])\n .reduce((acc, [key, val]) => ({ ...acc, [ key ]: val }), {})\n },\n currentRadii () {\n return {\n btn: this.btnRadiusLocal,\n input: this.inputRadiusLocal,\n checkbox: this.checkboxRadiusLocal,\n panel: this.panelRadiusLocal,\n avatar: this.avatarRadiusLocal,\n avatarAlt: this.avatarAltRadiusLocal,\n tooltip: this.tooltipRadiusLocal,\n attachment: this.attachmentRadiusLocal,\n chatMessage: this.chatMessageRadiusLocal\n }\n },\n preview () {\n return composePreset(this.previewColors, this.previewRadii, this.previewShadows, this.previewFonts)\n },\n previewTheme () {\n if (!this.preview.theme.colors) return { colors: {}, opacity: {}, radii: {}, shadows: {}, fonts: {} }\n return this.preview.theme\n },\n // This needs optimization maybe\n previewContrast () {\n try {\n if (!this.previewTheme.colors.bg) return {}\n const colors = this.previewTheme.colors\n const opacity = this.previewTheme.opacity\n if (!colors.bg) return {}\n const hints = (ratio) => ({\n text: ratio.toPrecision(3) + ':1',\n // AA level, AAA level\n aa: ratio >= 4.5,\n aaa: ratio >= 7,\n // same but for 18pt+ texts\n laa: ratio >= 3,\n laaa: ratio >= 4.5\n })\n const colorsConverted = Object.entries(colors).reduce((acc, [key, value]) => ({ ...acc, [key]: colorConvert(value) }), {})\n\n const ratios = Object.entries(SLOT_INHERITANCE).reduce((acc, [key, value]) => {\n const slotIsBaseText = key === 'text' || key === 'link'\n const slotIsText = slotIsBaseText || (\n typeof value === 'object' && value !== null && value.textColor\n )\n if (!slotIsText) return acc\n const { layer, variant } = slotIsBaseText ? { layer: 'bg' } : value\n const background = variant || layer\n const opacitySlot = getOpacitySlot(background)\n const textColors = [\n key,\n ...(background === 'bg' ? ['cRed', 'cGreen', 'cBlue', 'cOrange'] : [])\n ]\n\n const layers = getLayers(\n layer,\n variant || layer,\n opacitySlot,\n colorsConverted,\n opacity\n )\n\n return {\n ...acc,\n ...textColors.reduce((acc, textColorKey) => {\n const newKey = slotIsBaseText\n ? 'bg' + textColorKey[0].toUpperCase() + textColorKey.slice(1)\n : textColorKey\n return {\n ...acc,\n [newKey]: getContrastRatioLayers(\n colorsConverted[textColorKey],\n layers,\n colorsConverted[textColorKey]\n )\n }\n }, {})\n }\n }, {})\n\n return Object.entries(ratios).reduce((acc, [k, v]) => { acc[k] = hints(v); return acc }, {})\n } catch (e) {\n console.warn('Failure computing contrasts', e)\n }\n },\n previewRules () {\n if (!this.preview.rules) return ''\n return [\n ...Object.values(this.preview.rules),\n 'color: var(--text)',\n 'font-family: var(--interfaceFont, sans-serif)'\n ].join(';')\n },\n shadowsAvailable () {\n return Object.keys(DEFAULT_SHADOWS).sort()\n },\n currentShadowOverriden: {\n get () {\n return !!this.currentShadow\n },\n set (val) {\n if (val) {\n this.shadowsLocal[this.shadowSelected] = this.currentShadowFallback.map(_ => Object.assign({}, _))\n } else {\n delete this.shadowsLocal[this.shadowSelected]\n }\n }\n },\n currentShadowFallback () {\n return (this.previewTheme.shadows || {})[this.shadowSelected]\n },\n currentShadow: {\n get () {\n return this.shadowsLocal[this.shadowSelected]\n },\n set (v) {\n this.shadowsLocal[this.shadowSelected] = v\n }\n },\n themeValid () {\n return !this.shadowsInvalid && !this.colorsInvalid && !this.radiiInvalid\n },\n exportedTheme () {\n const saveEverything = (\n !this.keepFonts &&\n !this.keepShadows &&\n !this.keepOpacity &&\n !this.keepRoundness &&\n !this.keepColor\n )\n\n const source = {\n themeEngineVersion: CURRENT_VERSION\n }\n\n if (this.keepFonts || saveEverything) {\n source.fonts = this.fontsLocal\n }\n if (this.keepShadows || saveEverything) {\n source.shadows = this.shadowsLocal\n }\n if (this.keepOpacity || saveEverything) {\n source.opacity = this.currentOpacity\n }\n if (this.keepColor || saveEverything) {\n source.colors = this.currentColors\n }\n if (this.keepRoundness || saveEverything) {\n source.radii = this.currentRadii\n }\n\n const theme = {\n themeEngineVersion: CURRENT_VERSION,\n ...this.previewTheme\n }\n\n return {\n // To separate from other random JSON files and possible future source formats\n _pleroma_theme_version: 2, theme, source\n }\n },\n isActive () {\n const tabSwitcher = this.$parent\n return tabSwitcher ? tabSwitcher.isActive('theme') : false\n }\n },\n components: {\n ColorInput,\n OpacityInput,\n RangeInput,\n ContrastRatio,\n ShadowControl,\n FontControl,\n TabSwitcher,\n Preview,\n Checkbox,\n Select\n },\n methods: {\n loadTheme (\n {\n theme,\n source,\n _pleroma_theme_version: fileVersion\n },\n origin,\n forceUseSource = false\n ) {\n this.dismissWarning()\n if (!source && !theme) {\n throw new Error('Can\\'t load theme: empty')\n }\n const version = (origin === 'localStorage' && !theme.colors)\n ? 'l1'\n : fileVersion\n const snapshotEngineVersion = (theme || {}).themeEngineVersion\n const themeEngineVersion = (source || {}).themeEngineVersion || 2\n const versionsMatch = themeEngineVersion === CURRENT_VERSION\n const sourceSnapshotMismatch = (\n theme !== undefined &&\n source !== undefined &&\n themeEngineVersion !== snapshotEngineVersion\n )\n // Force loading of source if user requested it or if snapshot\n // is unavailable\n const forcedSourceLoad = (source && forceUseSource) || !theme\n if (!(versionsMatch && !sourceSnapshotMismatch) &&\n !forcedSourceLoad &&\n version !== 'l1' &&\n origin !== 'defaults'\n ) {\n if (sourceSnapshotMismatch && origin === 'localStorage') {\n this.themeWarning = {\n origin,\n themeEngineVersion,\n type: 'snapshot_source_mismatch'\n }\n } else if (!theme) {\n this.themeWarning = {\n origin,\n noActionsPossible: true,\n themeEngineVersion,\n type: 'no_snapshot_old_version'\n }\n } else if (!versionsMatch) {\n this.themeWarning = {\n origin,\n noActionsPossible: !source,\n themeEngineVersion,\n type: 'wrong_version'\n }\n }\n }\n this.normalizeLocalState(theme, version, source, forcedSourceLoad)\n },\n forceLoadLocalStorage () {\n this.loadThemeFromLocalStorage(true)\n },\n dismissWarning () {\n this.themeWarning = undefined\n this.tempImportFile = undefined\n },\n forceLoad () {\n const { origin } = this.themeWarning\n switch (origin) {\n case 'localStorage':\n this.loadThemeFromLocalStorage(true)\n break\n case 'file':\n this.onImport(this.tempImportFile, true)\n break\n }\n this.dismissWarning()\n },\n forceSnapshot () {\n const { origin } = this.themeWarning\n switch (origin) {\n case 'localStorage':\n this.loadThemeFromLocalStorage(false, true)\n break\n case 'file':\n console.error('Forcing snapshot from file is not supported yet')\n break\n }\n this.dismissWarning()\n },\n loadThemeFromLocalStorage (confirmLoadSource = false, forceSnapshot = false) {\n const {\n customTheme: theme,\n customThemeSource: source\n } = this.$store.getters.mergedConfig\n if (!theme && !source) {\n // Anon user or never touched themes\n this.loadTheme(\n this.$store.state.instance.themeData,\n 'defaults',\n confirmLoadSource\n )\n } else {\n this.loadTheme(\n {\n theme,\n source: forceSnapshot ? theme : source\n },\n 'localStorage',\n confirmLoadSource\n )\n }\n },\n setCustomTheme () {\n this.$store.dispatch('setOption', {\n name: 'customTheme',\n value: {\n themeEngineVersion: CURRENT_VERSION,\n ...this.previewTheme\n }\n })\n this.$store.dispatch('setOption', {\n name: 'customThemeSource',\n value: {\n themeEngineVersion: CURRENT_VERSION,\n shadows: this.shadowsLocal,\n fonts: this.fontsLocal,\n opacity: this.currentOpacity,\n colors: this.currentColors,\n radii: this.currentRadii\n }\n })\n },\n updatePreviewColorsAndShadows () {\n this.previewColors = generateColors({\n opacity: this.currentOpacity,\n colors: this.currentColors\n })\n this.previewShadows = generateShadows(\n { shadows: this.shadowsLocal, opacity: this.previewTheme.opacity, themeEngineVersion: this.engineVersion },\n this.previewColors.theme.colors,\n this.previewColors.mod\n )\n },\n importTheme () { this.themeImporter.importData() },\n exportTheme () { this.themeExporter.exportData() },\n onImport (parsed, forceSource = false) {\n this.tempImportFile = parsed\n this.loadTheme(parsed, 'file', forceSource)\n },\n onImportFailure (result) {\n this.$store.dispatch('pushGlobalNotice', { messageKey: 'settings.invalid_theme_imported', level: 'error' })\n },\n importValidator (parsed) {\n const version = parsed._pleroma_theme_version\n return version >= 1 || version <= 2\n },\n clearAll () {\n this.loadThemeFromLocalStorage()\n },\n\n // Clears all the extra stuff when loading V1 theme\n clearV1 () {\n Object.keys(this.$data)\n .filter(_ => _.endsWith('ColorLocal') || _.endsWith('OpacityLocal'))\n .filter(_ => !v1OnlyNames.includes(_))\n .forEach(key => {\n this.$data[key] = undefined\n })\n },\n\n clearRoundness () {\n Object.keys(this.$data)\n .filter(_ => _.endsWith('RadiusLocal'))\n .forEach(key => {\n this.$data[key] = undefined\n })\n },\n\n clearOpacity () {\n Object.keys(this.$data)\n .filter(_ => _.endsWith('OpacityLocal'))\n .forEach(key => {\n this.$data[key] = undefined\n })\n },\n\n clearShadows () {\n this.shadowsLocal = {}\n },\n\n clearFonts () {\n this.fontsLocal = {}\n },\n\n /**\n * This applies stored theme data onto form. Supports three versions of data:\n * v3 (version >= 3) - newest version of themes which supports snapshots for better compatiblity\n * v2 (version = 2) - newer version of themes.\n * v1 (version = 1) - older version of themes (import from file)\n * v1l (version = l1) - older version of theme (load from local storage)\n * v1 and v1l differ because of way themes were stored/exported.\n * @param {Object} theme - theme data (snapshot)\n * @param {Number} version - version of data. 0 means try to guess based on data. \"l1\" means v1, locastorage type\n * @param {Object} source - theme source - this will be used if compatible\n * @param {Boolean} source - by default source won't be used if version doesn't match since it might render differently\n * this allows importing source anyway\n */\n normalizeLocalState (theme, version = 0, source, forceSource = false) {\n let input\n if (typeof source !== 'undefined') {\n if (forceSource || source.themeEngineVersion === CURRENT_VERSION) {\n input = source\n version = source.themeEngineVersion\n } else {\n input = theme\n }\n } else {\n input = theme\n }\n\n const radii = input.radii || input\n const opacity = input.opacity\n const shadows = input.shadows || {}\n const fonts = input.fonts || {}\n const colors = !input.themeEngineVersion\n ? colors2to3(input.colors || input)\n : input.colors || input\n\n if (version === 0) {\n if (input.version) version = input.version\n // Old v1 naming: fg is text, btn is foreground\n if (typeof colors.text === 'undefined' && typeof colors.fg !== 'undefined') {\n version = 1\n }\n // New v2 naming: text is text, fg is foreground\n if (typeof colors.text !== 'undefined' && typeof colors.fg !== 'undefined') {\n version = 2\n }\n }\n\n this.engineVersion = version\n\n // Stuff that differs between V1 and V2\n if (version === 1) {\n this.fgColorLocal = rgb2hex(colors.btn)\n this.textColorLocal = rgb2hex(colors.fg)\n }\n\n if (!this.keepColor) {\n this.clearV1()\n const keys = new Set(version !== 1 ? Object.keys(SLOT_INHERITANCE) : [])\n if (version === 1 || version === 'l1') {\n keys\n .add('bg')\n .add('link')\n .add('cRed')\n .add('cBlue')\n .add('cGreen')\n .add('cOrange')\n }\n\n keys.forEach(key => {\n const color = colors[key]\n const hex = rgb2hex(colors[key])\n this[key + 'ColorLocal'] = hex === '#aN' ? color : hex\n })\n }\n\n if (opacity && !this.keepOpacity) {\n this.clearOpacity()\n Object.entries(opacity).forEach(([k, v]) => {\n if (typeof v === 'undefined' || v === null || Number.isNaN(v)) return\n this[k + 'OpacityLocal'] = v\n })\n }\n\n if (!this.keepRoundness) {\n this.clearRoundness()\n Object.entries(radii).forEach(([k, v]) => {\n // 'Radius' is kept mostly for v1->v2 localstorage transition\n const key = k.endsWith('Radius') ? k.split('Radius')[0] : k\n this[key + 'RadiusLocal'] = v\n })\n }\n\n if (!this.keepShadows) {\n this.clearShadows()\n if (version === 2) {\n this.shadowsLocal = shadows2to3(shadows, this.previewTheme.opacity)\n } else {\n this.shadowsLocal = shadows\n }\n this.shadowSelected = this.shadowsAvailable[0]\n }\n\n if (!this.keepFonts) {\n this.clearFonts()\n this.fontsLocal = fonts\n }\n }\n },\n watch: {\n currentRadii () {\n try {\n this.previewRadii = generateRadii({ radii: this.currentRadii })\n this.radiiInvalid = false\n } catch (e) {\n this.radiiInvalid = true\n console.warn(e)\n }\n },\n shadowsLocal: {\n handler () {\n if (Object.getOwnPropertyNames(this.previewColors).length === 1) return\n try {\n this.updatePreviewColorsAndShadows()\n this.shadowsInvalid = false\n } catch (e) {\n this.shadowsInvalid = true\n console.warn(e)\n }\n },\n deep: true\n },\n fontsLocal: {\n handler () {\n try {\n this.previewFonts = generateFonts({ fonts: this.fontsLocal })\n this.fontsInvalid = false\n } catch (e) {\n this.fontsInvalid = true\n console.warn(e)\n }\n },\n deep: true\n },\n currentColors () {\n try {\n this.updatePreviewColorsAndShadows()\n this.colorsInvalid = false\n this.shadowsInvalid = false\n } catch (e) {\n this.colorsInvalid = true\n this.shadowsInvalid = true\n console.warn(e)\n }\n },\n currentOpacity () {\n try {\n this.updatePreviewColorsAndShadows()\n } catch (e) {\n console.warn(e)\n }\n },\n selected () {\n this.selectedTheme = Object.entries(this.availableStyles).find(([k, s]) => {\n if (Array.isArray(s)) {\n console.log(s[0] === this.selected, this.selected)\n return s[0] === this.selected\n } else {\n return s.name === this.selected\n }\n })[1]\n },\n selectedTheme () {\n this.dismissWarning()\n if (this.selectedVersion === 1) {\n if (!this.keepRoundness) {\n this.clearRoundness()\n }\n\n if (!this.keepShadows) {\n this.clearShadows()\n }\n\n if (!this.keepOpacity) {\n this.clearOpacity()\n }\n\n if (!this.keepColor) {\n this.clearV1()\n\n this.bgColorLocal = this.selectedTheme[1]\n this.fgColorLocal = this.selectedTheme[2]\n this.textColorLocal = this.selectedTheme[3]\n this.linkColorLocal = this.selectedTheme[4]\n this.cRedColorLocal = this.selectedTheme[5]\n this.cGreenColorLocal = this.selectedTheme[6]\n this.cBlueColorLocal = this.selectedTheme[7]\n this.cOrangeColorLocal = this.selectedTheme[8]\n }\n } else if (this.selectedVersion >= 2) {\n this.normalizeLocalState(this.selectedTheme.theme, 2, this.selectedTheme.source)\n }\n }\n }\n}\n","import { render } from \"./theme_tab.vue?vue&type=template&id=1128449a\"\nimport script from \"./theme_tab.js?vue&type=script&lang=js\"\nexport * from \"./theme_tab.js?vue&type=script&lang=js\"\n\nimport \"./theme_tab.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import TabSwitcher from 'src/components/tab_switcher/tab_switcher.jsx'\n\nimport DataImportExportTab from './tabs/data_import_export_tab.vue'\nimport MutesAndBlocksTab from './tabs/mutes_and_blocks_tab.vue'\nimport NotificationsTab from './tabs/notifications_tab.vue'\nimport FilteringTab from './tabs/filtering_tab.vue'\nimport SecurityTab from './tabs/security_tab/security_tab.vue'\nimport ProfileTab from './tabs/profile_tab.vue'\nimport GeneralTab from './tabs/general_tab.vue'\nimport VersionTab from './tabs/version_tab.vue'\nimport ThemeTab from './tabs/theme_tab/theme_tab.vue'\n\nimport { library } from '@fortawesome/fontawesome-svg-core'\nimport {\n faWrench,\n faUser,\n faFilter,\n faPaintBrush,\n faBell,\n faDownload,\n faEyeSlash,\n faInfo\n} from '@fortawesome/free-solid-svg-icons'\n\nlibrary.add(\n faWrench,\n faUser,\n faFilter,\n faPaintBrush,\n faBell,\n faDownload,\n faEyeSlash,\n faInfo\n)\n\nconst SettingsModalContent = {\n components: {\n TabSwitcher,\n\n DataImportExportTab,\n MutesAndBlocksTab,\n NotificationsTab,\n FilteringTab,\n SecurityTab,\n ProfileTab,\n GeneralTab,\n VersionTab,\n ThemeTab\n },\n computed: {\n isLoggedIn () {\n return !!this.$store.state.users.currentUser\n },\n open () {\n return this.$store.state.interface.settingsModalState !== 'hidden'\n },\n bodyLock () {\n return this.$store.state.interface.settingsModalState === 'visible'\n }\n },\n methods: {\n onOpen () {\n const targetTab = this.$store.state.interface.settingsModalTargetTab\n // We're being told to open in specific tab\n if (targetTab) {\n const tabIndex = this.$refs.tabSwitcher.$slots.default().findIndex(elm => {\n return elm.props && elm.props['data-tab-name'] === targetTab\n })\n if (tabIndex >= 0) {\n this.$refs.tabSwitcher.setTab(tabIndex)\n }\n }\n // Clear the state of target tab, so that next time settings is opened\n // it doesn't force it.\n this.$store.dispatch('clearSettingsModalTargetTab')\n }\n },\n mounted () {\n this.onOpen()\n },\n watch: {\n open: function (value) {\n if (value) this.onOpen()\n }\n }\n}\n\nexport default SettingsModalContent\n","import { render } from \"./settings_modal_content.vue?vue&type=template&id=6191ca84\"\nimport script from \"./settings_modal_content.js?vue&type=script&lang=js\"\nexport * from \"./settings_modal_content.js?vue&type=script&lang=js\"\n\nimport \"./settings_modal_content.scss?vue&type=style&index=0&lang=scss\"\n\nimport exportComponent from \"/home/hannah/personal/pleroma-fe/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","<template>\n <tab-switcher\n ref=\"tabSwitcher\"\n class=\"settings_tab-switcher\"\n :side-tab-bar=\"true\"\n :scrollable-tabs=\"true\"\n :body-scroll-lock=\"bodyLock\"\n >\n <div\n :label=\"$t('settings.general')\"\n icon=\"wrench\"\n data-tab-name=\"general\"\n >\n <GeneralTab />\n </div>\n <div\n v-if=\"isLoggedIn\"\n :label=\"$t('settings.profile_tab')\"\n icon=\"user\"\n data-tab-name=\"profile\"\n >\n <ProfileTab />\n </div>\n <div\n v-if=\"isLoggedIn\"\n :label=\"$t('settings.security_tab')\"\n icon=\"lock\"\n data-tab-name=\"security\"\n >\n <SecurityTab />\n </div>\n <div\n :label=\"$t('settings.filtering')\"\n icon=\"filter\"\n data-tab-name=\"filtering\"\n >\n <FilteringTab />\n </div>\n <div\n :label=\"$t('settings.theme')\"\n icon=\"paint-brush\"\n data-tab-name=\"theme\"\n >\n <ThemeTab />\n </div>\n <div\n v-if=\"isLoggedIn\"\n :label=\"$t('settings.notifications')\"\n icon=\"bell\"\n data-tab-name=\"notifications\"\n >\n <NotificationsTab />\n </div>\n <div\n v-if=\"isLoggedIn\"\n :label=\"$t('settings.data_import_export_tab')\"\n icon=\"download\"\n data-tab-name=\"dataImportExport\"\n >\n <DataImportExportTab />\n </div>\n <div\n v-if=\"isLoggedIn\"\n :label=\"$t('settings.mutes_and_blocks')\"\n :fullHeight=\"true\"\n icon=\"eye-slash\"\n data-tab-name=\"mutesAndBlocks\"\n >\n <MutesAndBlocksTab />\n </div>\n <div\n :label=\"$t('settings.version.title')\"\n icon=\"info\"\n data-tab-name=\"version\"\n >\n <VersionTab />\n </div>\n </tab-switcher>\n</template>\n\n<script src=\"./settings_modal_content.js\"></script>\n\n<style src=\"./settings_modal_content.scss\" lang=\"scss\"></style>\n"],"sourceRoot":""}