diff --git a/data/locales/en.json b/data/locales/en.json new file mode 100644 index 00000000..f8cbf1d0 --- /dev/null +++ b/data/locales/en.json @@ -0,0 +1,217 @@ +{ + "Panels": { + "plugins": "Plugins", + "themes": "Themes", + "customcss": "Custom CSS" + }, + "Collections": { + "settings": { + "name": "Settings", + "general": { + "name": "General", + "emotes": { + "name": "Emote System", + "note": "Enables BD's emote system" + }, + "publicServers": { + "name": "Public Servers", + "note": "Display public servers button" + }, + "voiceDisconnect": { + "name": "Voice Disconnect", + "note": "Disconnect from voice server when closing Discord" + }, + "twentyFourHour": { + "name": "24-Hour Timestamps", + "note": "Hides channels when in minimal mode" + }, + "classNormalizer": { + "name": "Normalize Classes", + "note": "Adds stable classes to elements to help themes. (e.g. adds .da-channels to .channels-Ie2l6A)" + }, + "showToasts": { + "name": "Show Toasts", + "note": "Shows a small notification for important information" + } + }, + "appearance": { + "name": "Appearance", + "voiceMode": { + "name": "Voice Mode", + "note": "Hides everything that isn't voice chat" + }, + "minimalMode": { + "name": "Minimal Mode", + "note": "Hide elements and reduce the size of elements" + }, + "hideChannels": { + "name": "Hide Channels", + "note": "Hides channels when in minimal mode" + }, + "darkMode": { + "name": "Dark Mode", + "note": "Make certain elements dark by default" + }, + "coloredText": { + "name": "Colored Text", + "note": "Make text colour the same as role color" + } + }, + "addons": { + "name": "Addon Manager", + "addonErrors": { + "name": "Show Addon Errors", + "note": "Shows a modal with plugin/theme errors" + }, + "autoScroll": { + "name": "Scroll To Settings", + "note": "Auto-scrolls to a plugin's settings when the button is clicked (only if out of view)" + }, + "autoReload": { + "name": "Automatic Loading", + "note": "Automatically loads, reloads, and unloads plugins and themes" + } + }, + "customcss": { + "name": "Custom CSS", + "customcss": { + "name": "Custom CSS", + "note": "Enables the Custom CSS tab" + }, + "liveUpdate": { + "name": "Live Update", + "note": "Updates the css as you type" + }, + "startDetached": { + "name": "Start Detached", + "note": "Clicking the Custom CSS tab opens the editor in a separate window" + }, + "nativeOpen": { + "name": "Open in Native Editor", + "note": "Clicking the Custom CSS tab opens your custom css in your native editor" + } + }, + "developer": { + "name": "Developer Settings", + "developerMode": { + "name": "Developer Mode", + "note": "Allows activating debugger when pressing F8" + }, + "copySelector": { + "name": "Copy Selector", + "note": "Adds a \"Copy Selector\" option to context menus when developer mode is active" + } + }, + "window": { + "name": "Window Preferences", + "transparency": { + "name": "Enable Transparency", + "note": "Enables the main window to be see-through (requires restart)" + }, + "frame": { + "name": "Window Frame", + "note": "Adds the native os window frame to the main window" + } + } + }, + "emotes": { + "name": "Emotes", + "general": { + "name": "General", + "download": { + "name": "Download Emotes", + "note": "Download emotes once a week to stay up to date" + }, + "emoteMenu": { + "name": "Emote Menu", + "note": "Show Twitch/Favourite emotes in emote menu" + }, + "hideEmojiMenu": { + "name": "Hide Emoji Menu", + "note": "Hides Discord's emoji menu when using emote menu" + }, + "autoCaps": { + "name": "Emote Autocapitalization", + "note": "Autocapitalize emote commands" + }, + "showNames": { + "name": "Show Names", + "note": "Show emote names on hover" + }, + "modifiers": { + "name": "Show Emote Modifiers", + "note": "Enable emote mods (flip, spin, pulse, spin2, spin3, 1spin, 2spin, 3spin, tr, bl, br, shake, shake2, shake3, flap)" + }, + "animateOnHover": { + "name": "Animate On Hover", + "note": "Only animate the emote modifiers on hover" + } + }, + "categories": { + "name": "Categories", + "twitch": { + "name": "Twitch", + "note": "Show Twitch global & subscriber emotes" + }, + "ffz": { + "name": "FrankerFaceZ", + "note": "Show emotes from FFZ" + }, + "bttv": { + "name": "BetterTTV", + "note": "Show emotes from BTTV" + } + } + } + }, + "Addons": { + "title": "{{name}} v{{version}} by {{author}}", + "openFolder": "Open {{type}} Folder", + "reload": "Reload", + "pluginSettings": "Settings", + "website": "Website", + "source": "Source", + "server": "Support Server", + "donate": "Donate" + }, + "Emotes": { + "downloading": "Downloading emotes in the background do not reload.", + "downloaded": "All emotes successfully downloaded.", + "clearEmotes": "Clear Emote Data", + "favoriteAction": "Favorite!" + }, + "CustomCSS": { + "confirmationText": "You have unsaved changes to your Custom CSS. Closing this window will lose all those changes.", + "update": "Update", + "save": "Save", + "openNative": "Open in System Editor", + "openDetached": "Detach Window", + "settings": "Editor Settings", + "editorTitle": "Custom CSS Editor" + }, + "PublicServers": { + "button": "public", + "join": "Join", + "joining": "Joining", + "joined": "Joined", + "loading": "Loading", + "loadMore": "Load More", + "notConnected": "Not connected to DiscordServers.com!", + "search": "Search", + "connect": "Connect", + "reconnect": "Reconnect", + "categories": "Categories", + "connection": "Connected as: {{username}}#{{discriminator}}", + "results": "Showing {{start}}-{{end}} of {{total}} results in {{category}}", + "query": "for {{query}}" + }, + "Modals": { + "confirmClose": "Are You Sure?", + "okay": "Okay", + "cancel": "Cancel", + "name": "Name", + "message": "Message", + "error": "Error", + "addonErrors": "Addon Errors" + } +} \ No newline at end of file diff --git a/js/main.js b/js/main.js index 202642ed..43333b30 100644 --- a/js/main.js +++ b/js/main.js @@ -335,7 +335,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n en: {\n Panels: {\n plugins: \"Plugins\",\n themes: \"Themes\",\n customcss: \"Custom CSS\"\n },\n Collections: {\n settings: {\n name: \"Settings\",\n general: {\n name: \"General\",\n emotes: {\n name: \"Emote System\",\n note: \"Enables BD's emote system\"\n },\n publicServers: {\n name: \"Public Servers\",\n note: \"Display public servers button\"\n },\n voiceDisconnect: {\n name: \"Voice Disconnect\",\n note: \"Disconnect from voice server when closing Discord\"\n },\n twentyFourHour: {\n name: \"24-Hour Timestamps\",\n note: \"Hides channels when in minimal mode\"\n },\n classNormalizer: {\n name: \"Normalize Classes\",\n note: \"Adds stable classes to elements to help themes. (e.g. adds .da-channels to .channels-Ie2l6A)\"\n },\n showToasts: {\n name: \"Show Toasts\",\n note: \"Shows a small notification for important information\"\n }\n },\n appearance: {\n name: \"Appearance\",\n voiceMode: {\n name: \"Voice Mode\",\n note: \"Hides everything that isn't voice chat\"\n },\n minimalMode: {\n name: \"Minimal Mode\",\n note: \"Hide elements and reduce the size of elements\"\n },\n hideChannels: {\n name: \"Hide Channels\",\n note: \"Hides channels when in minimal mode\"\n },\n darkMode: {\n name: \"Dark Mode\",\n note: \"Make certain elements dark by default\"\n },\n coloredText: {\n name: \"Colored Text\",\n note: \"Make text colour the same as role color\"\n }\n },\n addons: {\n name: \"Addon Manager\",\n addonErrors: {\n name: \"Show Addon Errors\",\n note: \"Shows a modal with plugin/theme errors\"\n },\n autoScroll: {\n name: \"Scroll To Settings\",\n note: \"Auto-scrolls to a plugin's settings when the button is clicked (only if out of view)\"\n },\n autoReload: {\n name: \"Automatic Loading\",\n note: \"Automatically loads, reloads, and unloads plugins and themes\"\n }\n },\n customcss: {\n name: \"Custom CSS\",\n customcss: {\n name: \"Custom CSS\",\n note: \"Enables the Custom CSS tab\"\n },\n liveUpdate: {\n name: \"Live Update\",\n note: \"Updates the css as you type\"\n },\n startDetached: {\n name: \"Start Detached\",\n note: \"Clicking the Custom CSS tab opens the editor in a separate window\"\n },\n nativeOpen: {\n name: \"Open in Native Editor\",\n note: \"Clicking the Custom CSS tab opens your custom css in your native editor\"\n }\n },\n developer: {\n name: \"Developer Settings\",\n developerMode: {\n name: \"Developer Mode\",\n note: \"Allows activating debugger when pressing F8\"\n },\n copySelector: {\n name: \"Copy Selector\",\n note: \"Adds a \\\"Copy Selector\\\" option to context menus when developer mode is active\"\n }\n },\n window: {\n name: \"Window Preferences\",\n transparency: {\n name: \"Enable Transparency\",\n note: \"Enables the main window to be see-through (requires restart)\"\n },\n frame: {\n name: \"Window Frame\",\n note: \"Adds the native os window frame to the main window\"\n }\n }\n },\n emotes: {\n name: \"Emotes\",\n general: {\n name: \"General\",\n download: {\n name: \"Download Emotes\",\n note: \"Download emotes once a week to stay up to date\"\n },\n emoteMenu: {\n name: \"Emote Menu\",\n note: \"Show Twitch/Favourite emotes in emote menu\"\n },\n hideEmojiMenu: {\n name: \"Hide Emoji Menu\",\n note: \"Hides Discord's emoji menu when using emote menu\"\n },\n autoCaps: {\n name: \"Emote Autocapitalization\",\n note: \"Autocapitalize emote commands\"\n },\n showNames: {\n name: \"Show Names\",\n note: \"Show emote names on hover\"\n },\n modifiers: {\n name: \"Show Emote Modifiers\",\n note: \"Enable emote mods (flip, spin, pulse, spin2, spin3, 1spin, 2spin, 3spin, tr, bl, br, shake, shake2, shake3, flap)\"\n },\n animateOnHover: {\n name: \"Animate On Hover\",\n note: \"Only animate the emote modifiers on hover\"\n }\n },\n categories: {\n name: \"Categories\",\n twitch: {\n name: \"Twitch\",\n note: \"Show Twitch global & subscriber emotes\"\n },\n ffz: {\n name: \"FrankerFaceZ\",\n note: \"Show emotes from FFZ\"\n },\n bttv: {\n name: \"BetterTTV\",\n note: \"Show emotes from BTTV\"\n }\n }\n }\n },\n Addons: {\n title: \"{{name}} v{{version}} by {{author}}\",\n openFolder: \"Open {{type}} Folder\",\n reload: \"Reload\",\n pluginSettings: \"Settings\",\n website: \"Website\",\n source: \"Source\",\n server: \"Support Server\",\n donate: \"Donate\"\n },\n Emotes: {\n downloading: \"Downloading emotes in the background do not reload.\",\n downloaded: \"All emotes successfully downloaded.\",\n clearEmotes: \"Clear Emote Data\",\n favoriteAction: \"Favorite!\"\n },\n CustomCSS: {\n confirmationText: \"You have unsaved changes to your Custom CSS. Closing this window will lose all those changes.\",\n update: \"Update\",\n save: \"Save\",\n openNative: \"Open in System Editor\",\n openDetached: \"Detach Window\",\n settings: \"Editor Settings\",\n editorTitle: \"Custom CSS Editor\"\n },\n PublicServers: {\n button: \"public\",\n join: \"Join\",\n joining: \"Joining\",\n joined: \"Joined\",\n loading: \"Loading\",\n loadMore: \"Load More\",\n notConnected: \"Not connected to DiscordServers.com!\",\n search: \"Search\",\n connect: \"Connect\",\n reconnect: \"Reconnect\",\n categories: \"Categories\",\n connection: \"Connected as: {{username}}#{{discriminator}}\",\n results: \"Showing {{start}}-{{end}} of {{total}} results in {{category}}\",\n query: \"for {{query}}\"\n },\n Modals: {\n confirmClose: \"Are You Sure?\",\n okay: \"Okay\",\n cancel: \"Cancel\",\n name: \"Name\",\n message: \"Message\",\n error: \"Error\",\n addonErrors: \"Addon Errors\"\n }\n },\n es: {\n Collections: {\n settings: {\n name: \"Ajustes\",\n addons: {\n addonErrors: {\n name: \"Mostrar Errores de Addons\"\n }\n }\n }\n }\n },\n sv: {\n Panels: {\n plugins: \"Tillägg\",\n themes: \"Teman\",\n customcss: \"Egen CSS\"\n },\n Collections: {\n settings: {\n name: \"Inställningar\",\n general: {\n name: \"Generellt\",\n emotes: {\n name: \"Emotessystem\",\n note: \"Aktiverar BD's emotessystem\"\n },\n publicServers: {\n name: \"Publika Servrar\",\n note: \"Visa knappen för publika servrar\"\n },\n voiceDisconnect: {\n name: \"Lämna Röst\",\n note: \"Lämna röstsamtal när Discord stängs ner\"\n },\n twentyFourHour: {\n name: \"24-Timmars Tidsstämpel\",\n note: \"Visar 24-timmars tidsstämplar istället för AM/PM\"\n },\n classNormalizer: {\n name: \"Normalisera Klasser\",\n note: \"Lägger till statiska klasser för att underlätta teman (ex. lägger till .da-channels på .channels-Ie2l6A)\"\n },\n showToasts: {\n name: \"Visa Toasts\",\n note: \"Visar en liten notification för viktig information\"\n }\n },\n appearance: {\n name: \"Utseende\",\n voiceMode: {\n name: \"Röstläge\",\n note: \"Gömmer allt förutom röstchatt\"\n },\n minimalMode: {\n name: \"Minimalt Läge\",\n note: \"Gömmer och förminskar komponenter\"\n },\n hideChannels: {\n name: \"Göm Kanaler\",\n note: \"Gömmer kanaler när minimalt läge är aktiverat\"\n },\n darkMode: {\n name: \"Mörkt Läge\",\n note: \"Gör vissa komponenter mörka\"\n },\n coloredText: {\n name: \"Färgad Text\",\n note: \"Gör att text får samma färg som rollfärgen\"\n }\n },\n addons: {\n name: \"Tilläggshanterare\",\n addonErrors: {\n name: \"Visa tilläggsfel\",\n note: \"Visar en modal med tillägg- och temafel\"\n },\n autoScroll: {\n name: \"Skrolla till inställningar Scroll To Settings\",\n note: \"Skrollar automatisks till ett tilläggs inställningar när knappen är tryckt (endast om inställningarna är utanför vy)\"\n },\n autoReload: {\n name: \"Automatisk Laddning\",\n note: \"Laddar automatisk in, om och ur tillägg och teman\"\n }\n },\n customcss: {\n name: \"Egen CSS\",\n customcss: {\n name: \"Egen CSS\",\n note: \"Aktiverar \\\"Egen CSS\\\"-fliken\"\n },\n liveUpdate: {\n name: \"Uppdatera Direkt\",\n note: \"Uppdaterar css allteftersom du skriver\"\n },\n startDetached: {\n name: \"Starta Frånkopplad\",\n note: \"Öppnar CSS redigeraren i ett separat fönster när \\\"Egen CSS\\\"-fliken klickas\"\n },\n nativeOpen: {\n name: \"Öppna I Standardredigerare\",\n note: \"Öppnar CSS filen i operativsystemets standardredigerare när \\\"Egen CSS\\\"-fliken klickas\"\n }\n },\n developer: {\n name: \"Utvecklarinställningar\",\n developerMode: {\n name: \"Utvecklarläge\",\n note: \"Gör det möjligt att aktivera avlusare med F8\"\n },\n copySelector: {\n name: \"Kopiera Selektor\",\n note: \"Lägger till valet \\\"Kopiera Selektor\\\" i kontext menyn när utvecklarläge är aktiverat\"\n }\n },\n window: {\n name: \"Fönsterinställningar\",\n transparency: {\n name: \"Aktivera Genomskinlighet\",\n note: \"Gör att huvudfönstret blir genomskinligt (kräver omstart)\"\n },\n frame: {\n name: \"Fönsterram\",\n note: \"Lägger till operativsystemets standard fönsterram runt huvudfönstret\"\n }\n }\n },\n emotes: {\n name: \"Emotes\",\n general: {\n name: \"Generellt\",\n download: {\n name: \"Ladda Ner Emotes\",\n note: \"Ladda ner emotes en gång i veckan för att hålla sig uppdaterad\"\n },\n emoteMenu: {\n name: \"Emote Meny\",\n note: \"Visa Twitch/Favorit emotes i emote meny\"\n },\n hideEmojiMenu: {\n name: \"Gömmer Emoji Meny\",\n note: \"Gömmer Discord's emoji meny när emote meny är aktiverad\"\n },\n autoCaps: {\n name: \"Automatiskt Stor Bokstav I Emotes\",\n note: \"Gör automatiskt stor bokstav i emote kommandon\"\n },\n showNames: {\n name: \"Visa namn\",\n note: \"Visa namn när musen hålls över en emote\"\n },\n modifiers: {\n name: \"Visa Emote Modifierare\",\n note: \"Aktivera emote modifierare (flip, spin, pulse, spin2, spin3, 1spin, 2spin, 3spin, tr, bl, br, shake, shake2, shake3, flap)\"\n },\n animateOnHover: {\n name: \"Animera När Musen Hålls Över\",\n note: \"Animera endast emote midiferare när musen hålls över emoten\"\n }\n },\n categories: {\n name: \"Kategorier\",\n twitch: {\n name: \"Twitch\",\n note: \"Visa Twitch global & prenumerant emotes\"\n },\n ffz: {\n name: \"FrankerFaceZ\",\n note: \"Visa emotes från FFZ\"\n },\n bttv: {\n name: \"BetterTTV\",\n note: \"Visa emotes från BTTV\"\n }\n }\n }\n },\n Emotes: {\n downloading: \"Laddar ner emotes i backgrunden, ladda inte om\",\n downloaded: \"Alla emotes laddades ner utan problem.\",\n clearEmotes: \"Rensa Emote Data\",\n favoriteAction: \"Favorit!\"\n },\n CustomCSS: {\n confirmationText: \"Du har osparade ändringar av egna CSS:en. Alla ändringar kommer försvinna om du stänger det här fönstret\",\n update: \"Uppdatera\",\n save: \"Spara\",\n openNative: \"Öppna I Standardredigerare\",\n openDetached: \"Koppla Loss Fönster\",\n settings: \"Inställningar för redigerare\",\n editorTitle: \"Egen CSS Redigerare\"\n },\n PublicServers: {\n button: \"Publik\",\n join: \"Gå med\",\n joining: \"Går med\",\n joined: \"Gick med\",\n loading: \"Laddar\",\n loadMore: \"ladda mer\",\n notConnected: \"Ingen anslutning till DiscordServers.com!\",\n search: \"Sök\",\n connect: \"Anslut\",\n reconnect: \"Återanslut\",\n categories: \"Kategorier\",\n connection: \"Ansluten som: {{username}}#{{discriminator}}\",\n results: \"Visar {{start}}-{{end}} av {{total}} resultat i {{category}}\",\n query: \"för {{query}}\"\n },\n Modals: {\n confirmClose: \"Är du säker?\",\n okay: \"Okej\",\n cancel: \"Avbryt\",\n name: \"Namn\",\n message: \"Meddelande\",\n error: \"Fel\",\n addonErrors: \"Tilläggsfel\"\n }\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2RhdGEvc3RyaW5ncy5qcz9iYzcxIl0sIm5hbWVzIjpbImVuIiwiUGFuZWxzIiwicGx1Z2lucyIsInRoZW1lcyIsImN1c3RvbWNzcyIsIkNvbGxlY3Rpb25zIiwic2V0dGluZ3MiLCJuYW1lIiwiZ2VuZXJhbCIsImVtb3RlcyIsIm5vdGUiLCJwdWJsaWNTZXJ2ZXJzIiwidm9pY2VEaXNjb25uZWN0IiwidHdlbnR5Rm91ckhvdXIiLCJjbGFzc05vcm1hbGl6ZXIiLCJzaG93VG9hc3RzIiwiYXBwZWFyYW5jZSIsInZvaWNlTW9kZSIsIm1pbmltYWxNb2RlIiwiaGlkZUNoYW5uZWxzIiwiZGFya01vZGUiLCJjb2xvcmVkVGV4dCIsImFkZG9ucyIsImFkZG9uRXJyb3JzIiwiYXV0b1Njcm9sbCIsImF1dG9SZWxvYWQiLCJsaXZlVXBkYXRlIiwic3RhcnREZXRhY2hlZCIsIm5hdGl2ZU9wZW4iLCJkZXZlbG9wZXIiLCJkZXZlbG9wZXJNb2RlIiwiY29weVNlbGVjdG9yIiwid2luZG93IiwidHJhbnNwYXJlbmN5IiwiZnJhbWUiLCJkb3dubG9hZCIsImVtb3RlTWVudSIsImhpZGVFbW9qaU1lbnUiLCJhdXRvQ2FwcyIsInNob3dOYW1lcyIsIm1vZGlmaWVycyIsImFuaW1hdGVPbkhvdmVyIiwiY2F0ZWdvcmllcyIsInR3aXRjaCIsImZmeiIsImJ0dHYiLCJBZGRvbnMiLCJ0aXRsZSIsIm9wZW5Gb2xkZXIiLCJyZWxvYWQiLCJwbHVnaW5TZXR0aW5ncyIsIndlYnNpdGUiLCJzb3VyY2UiLCJzZXJ2ZXIiLCJkb25hdGUiLCJFbW90ZXMiLCJkb3dubG9hZGluZyIsImRvd25sb2FkZWQiLCJjbGVhckVtb3RlcyIsImZhdm9yaXRlQWN0aW9uIiwiQ3VzdG9tQ1NTIiwiY29uZmlybWF0aW9uVGV4dCIsInVwZGF0ZSIsInNhdmUiLCJvcGVuTmF0aXZlIiwib3BlbkRldGFjaGVkIiwiZWRpdG9yVGl0bGUiLCJQdWJsaWNTZXJ2ZXJzIiwiYnV0dG9uIiwiam9pbiIsImpvaW5pbmciLCJqb2luZWQiLCJsb2FkaW5nIiwibG9hZE1vcmUiLCJub3RDb25uZWN0ZWQiLCJzZWFyY2giLCJjb25uZWN0IiwicmVjb25uZWN0IiwiY29ubmVjdGlvbiIsInJlc3VsdHMiLCJxdWVyeSIsIk1vZGFscyIsImNvbmZpcm1DbG9zZSIsIm9rYXkiLCJjYW5jZWwiLCJtZXNzYWdlIiwiZXJyb3IiLCJlcyIsInN2Il0sIm1hcHBpbmdzIjoiQUFBQTtBQUFlO0FBQ1hBLElBQUUsRUFBRTtBQUNBQyxVQUFNLEVBQUU7QUFDSkMsYUFBTyxFQUFFLFNBREw7QUFFSkMsWUFBTSxFQUFFLFFBRko7QUFHSkMsZUFBUyxFQUFFO0FBSFAsS0FEUjtBQU1BQyxlQUFXLEVBQUU7QUFDVEMsY0FBUSxFQUFFO0FBQ05DLFlBQUksRUFBRSxVQURBO0FBRU5DLGVBQU8sRUFBRTtBQUNMRCxjQUFJLEVBQUUsU0FERDtBQUVMRSxnQkFBTSxFQUFFO0FBQ0pGLGdCQUFJLEVBQUUsY0FERjtBQUVKRyxnQkFBSSxFQUFFO0FBRkYsV0FGSDtBQU1MQyx1QkFBYSxFQUFFO0FBQ1hKLGdCQUFJLEVBQUUsZ0JBREs7QUFFWEcsZ0JBQUksRUFBRTtBQUZLLFdBTlY7QUFVTEUseUJBQWUsRUFBRTtBQUNiTCxnQkFBSSxFQUFFLGtCQURPO0FBRWJHLGdCQUFJLEVBQUU7QUFGTyxXQVZaO0FBY0xHLHdCQUFjLEVBQUU7QUFDWk4sZ0JBQUksRUFBRSxvQkFETTtBQUVaRyxnQkFBSSxFQUFFO0FBRk0sV0FkWDtBQWtCTEkseUJBQWUsRUFBRTtBQUNiUCxnQkFBSSxFQUFFLG1CQURPO0FBRWJHLGdCQUFJLEVBQUU7QUFGTyxXQWxCWjtBQXNCTEssb0JBQVUsRUFBRTtBQUNSUixnQkFBSSxFQUFFLGFBREU7QUFFUkcsZ0JBQUksRUFBRTtBQUZFO0FBdEJQLFNBRkg7QUE2Qk5NLGtCQUFVLEVBQUU7QUFDUlQsY0FBSSxFQUFFLFlBREU7QUFFUlUsbUJBQVMsRUFBRTtBQUNQVixnQkFBSSxFQUFFLFlBREM7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WEMsVUFBSSxFQUFFLFFBRks7QUFHWEMsYUFBTyxFQUFFLFNBSEU7QUFJWEMsWUFBTSxFQUFFLFVBSkc7QUFLWEMsYUFBTyxFQUFFLFFBTEU7QUFNWEMsY0FBUSxFQUFFLFdBTkM7QUFPWEMsa0JBQVksRUFBRSwyQ0FQSDtBQVFYQyxZQUFNLEVBQUUsS0FSRztBQVNYQyxhQUFPLEVBQUUsUUFURTtBQVVYQyxlQUFTLEVBQUUsWUFWQTtBQVdYbkMsZ0JBQVUsRUFBRSxZQVhEO0FBWVhvQyxnQkFBVSxFQUFFLDhDQVpEO0FBYVhDLGFBQU8sRUFBRSw4REFiRTtBQWNYQyxXQUFLLEVBQUU7QUFkSSxLQXJMZjtBQXFNQUMsVUFBTSxFQUFFO0FBQ0pDLGtCQUFZLEVBQUUsY0FEVjtBQUVKQyxVQUFJLEVBQUUsTUFGRjtBQUdKQyxZQUFNLEVBQUUsUUFISjtBQUlKN0UsVUFBSSxFQUFFLE1BSkY7QUFLSjhFLGFBQU8sRUFBRSxZQUxMO0FBTUpDLFdBQUssRUFBRSxLQU5IO0FBT0ovRCxpQkFBVyxFQUFFO0FBUFQ7QUFyTVI7QUF0T08sQ0FBZiIsImZpbGUiOiIuL3NyYy9kYXRhL3N0cmluZ3MuanMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCB7XHJcbiAgICBlbjoge1xyXG4gICAgICAgIFBhbmVsczoge1xyXG4gICAgICAgICAgICBwbHVnaW5zOiBcIlBsdWdpbnNcIixcclxuICAgICAgICAgICAgdGhlbWVzOiBcIlRoZW1lc1wiLFxyXG4gICAgICAgICAgICBjdXN0b21jc3M6IFwiQ3VzdG9tIENTU1wiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBDb2xsZWN0aW9uczoge1xyXG4gICAgICAgICAgICBzZXR0aW5nczoge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJTZXR0aW5nc1wiLFxyXG4gICAgICAgICAgICAgICAgZ2VuZXJhbDoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiR2VuZXJhbFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGVtb3Rlczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkVtb3RlIFN5c3RlbVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkVuYWJsZXMgQkQncyBlbW90ZSBzeXN0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgcHVibGljU2VydmVyczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlB1YmxpYyBTZXJ2ZXJzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiRGlzcGxheSBwdWJsaWMgc2VydmVycyBidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgdm9pY2VEaXNjb25uZWN0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiVm9pY2UgRGlzY29ubmVjdFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkRpc2Nvbm5lY3QgZnJvbSB2b2ljZSBzZXJ2ZXIgd2hlbiBjbG9zaW5nIERpc2NvcmRcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgdHdlbnR5Rm91ckhvdXI6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCIyNC1Ib3VyIFRpbWVzdGFtcHNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJIaWRlcyBjaGFubmVscyB3aGVuIGluIG1pbmltYWwgbW9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05vcm1hbGl6ZXI6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJOb3JtYWxpemUgQ2xhc3Nlc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkFkZHMgc3RhYmxlIGNsYXNzZXMgdG8gZWxlbWVudHMgdG8gaGVscCB0aGVtZXMuIChlLmcuIGFkZHMgLmRhLWNoYW5uZWxzIHRvIC5jaGFubmVscy1JZTJsNkEpXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHNob3dUb2FzdHM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJTaG93IFRvYXN0c1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlNob3dzIGEgc21hbGwgbm90aWZpY2F0aW9uIGZvciBpbXBvcnRhbnQgaW5mb3JtYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBhcHBlYXJhbmNlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJBcHBlYXJhbmNlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgdm9pY2VNb2RlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiVm9pY2UgTW9kZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkhpZGVzIGV2ZXJ5dGhpbmcgdGhhdCBpc24ndCB2b2ljZSBjaGF0XCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIG1pbmltYWxNb2RlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiTWluaW1hbCBNb2RlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiSGlkZSBlbGVtZW50cyBhbmQgcmVkdWNlIHRoZSBzaXplIG9mIGVsZW1lbnRzXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGhpZGVDaGFubmVsczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkhpZGUgQ2hhbm5lbHNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJIaWRlcyBjaGFubmVscyB3aGVuIGluIG1pbmltYWwgbW9kZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBkYXJrTW9kZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkRhcmsgTW9kZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIk1ha2UgY2VydGFpbiBlbGVtZW50cyBkYXJrIGJ5IGRlZmF1bHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3JlZFRleHQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJDb2xvcmVkIFRleHRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJNYWtlIHRleHQgY29sb3VyIHRoZSBzYW1lIGFzIHJvbGUgY29sb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBhZGRvbnM6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkFkZG9uIE1hbmFnZXJcIixcclxuICAgICAgICAgICAgICAgICAgICBhZGRvbkVycm9yczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlNob3cgQWRkb24gRXJyb3JzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiU2hvd3MgYSBtb2RhbCB3aXRoIHBsdWdpbi90aGVtZSBlcnJvcnNcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgYXV0b1Njcm9sbDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlNjcm9sbCBUbyBTZXR0aW5nc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkF1dG8tc2Nyb2xscyB0byBhIHBsdWdpbidzIHNldHRpbmdzIHdoZW4gdGhlIGJ1dHRvbiBpcyBjbGlja2VkIChvbmx5IGlmIG91dCBvZiB2aWV3KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBhdXRvUmVsb2FkOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQXV0b21hdGljIExvYWRpbmdcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJBdXRvbWF0aWNhbGx5IGxvYWRzLCByZWxvYWRzLCBhbmQgdW5sb2FkcyBwbHVnaW5zIGFuZCB0aGVtZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgY3VzdG9tY3NzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJDdXN0b20gQ1NTXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgY3VzdG9tY3NzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQ3VzdG9tIENTU1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkVuYWJsZXMgdGhlIEN1c3RvbSBDU1MgdGFiXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGxpdmVVcGRhdGU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJMaXZlIFVwZGF0ZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlVwZGF0ZXMgdGhlIGNzcyBhcyB5b3UgdHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBzdGFydERldGFjaGVkOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiU3RhcnQgRGV0YWNoZWRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJDbGlja2luZyB0aGUgQ3VzdG9tIENTUyB0YWIgb3BlbnMgdGhlIGVkaXRvciBpbiBhIHNlcGFyYXRlIHdpbmRvd1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgbmF0aXZlT3Blbjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIk9wZW4gaW4gTmF0aXZlIEVkaXRvclwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkNsaWNraW5nIHRoZSBDdXN0b20gQ1NTIHRhYiBvcGVucyB5b3VyIGN1c3RvbSBjc3MgaW4geW91ciBuYXRpdmUgZWRpdG9yXCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZGV2ZWxvcGVyOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJEZXZlbG9wZXIgU2V0dGluZ3NcIixcclxuICAgICAgICAgICAgICAgICAgICBkZXZlbG9wZXJNb2RlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRGV2ZWxvcGVyIE1vZGVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJBbGxvd3MgYWN0aXZhdGluZyBkZWJ1Z2dlciB3aGVuIHByZXNzaW5nIEY4XCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGNvcHlTZWxlY3Rvcjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkNvcHkgU2VsZWN0b3JcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJBZGRzIGEgXFxcIkNvcHkgU2VsZWN0b3JcXFwiIG9wdGlvbiB0byBjb250ZXh0IG1lbnVzIHdoZW4gZGV2ZWxvcGVyIG1vZGUgaXMgYWN0aXZlXCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgd2luZG93OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJXaW5kb3cgUHJlZmVyZW5jZXNcIixcclxuICAgICAgICAgICAgICAgICAgICB0cmFuc3BhcmVuY3k6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJFbmFibGUgVHJhbnNwYXJlbmN5XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiRW5hYmxlcyB0aGUgbWFpbiB3aW5kb3cgdG8gYmUgc2VlLXRocm91Z2ggKHJlcXVpcmVzIHJlc3RhcnQpXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGZyYW1lOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiV2luZG93IEZyYW1lXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiQWRkcyB0aGUgbmF0aXZlIG9zIHdpbmRvdyBmcmFtZSB0byB0aGUgbWFpbiB3aW5kb3dcIlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZW1vdGVzOiB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcIkVtb3Rlc1wiLFxyXG4gICAgICAgICAgICAgICAgZ2VuZXJhbDoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiR2VuZXJhbFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGRvd25sb2FkOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRG93bmxvYWQgRW1vdGVzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiRG93bmxvYWQgZW1vdGVzIG9uY2UgYSB3ZWVrIHRvIHN0YXkgdXAgdG8gZGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBlbW90ZU1lbnU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJFbW90ZSBNZW51XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiU2hvdyBUd2l0Y2gvRmF2b3VyaXRlIGVtb3RlcyBpbiBlbW90ZSBtZW51XCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGhpZGVFbW9qaU1lbnU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJIaWRlIEVtb2ppIE1lbnVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJIaWRlcyBEaXNjb3JkJ3MgZW1vamkgbWVudSB3aGVuIHVzaW5nIGVtb3RlIG1lbnVcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NhcHM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJFbW90ZSBBdXRvY2FwaXRhbGl6YXRpb25cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJBdXRvY2FwaXRhbGl6ZSBlbW90ZSBjb21tYW5kc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBzaG93TmFtZXM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJTaG93IE5hbWVzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiU2hvdyBlbW90ZSBuYW1lcyBvbiBob3ZlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBtb2RpZmllcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJTaG93IEVtb3RlIE1vZGlmaWVyc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkVuYWJsZSBlbW90ZSBtb2RzIChmbGlwLCBzcGluLCBwdWxzZSwgc3BpbjIsIHNwaW4zLCAxc3BpbiwgMnNwaW4sIDNzcGluLCB0ciwgYmwsIGJyLCBzaGFrZSwgc2hha2UyLCBzaGFrZTMsIGZsYXApXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGVPbkhvdmVyOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQW5pbWF0ZSBPbiBIb3ZlclwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIk9ubHkgYW5pbWF0ZSB0aGUgZW1vdGUgbW9kaWZpZXJzIG9uIGhvdmVyXCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgY2F0ZWdvcmllczoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQ2F0ZWdvcmllc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIHR3aXRjaDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlR3aXRjaFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlNob3cgVHdpdGNoIGdsb2JhbCAmIHN1YnNjcmliZXIgZW1vdGVzXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGZmejoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkZyYW5rZXJGYWNlWlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlNob3cgZW1vdGVzIGZyb20gRkZaXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGJ0dHY6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJCZXR0ZXJUVFZcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJTaG93IGVtb3RlcyBmcm9tIEJUVFZcIlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgQWRkb25zOiB7XHJcbiAgICAgICAgICAgIHRpdGxlOiBcInt7bmFtZX19IHZ7e3ZlcnNpb259fSBieSB7e2F1dGhvcn19XCIsXHJcbiAgICAgICAgICAgIG9wZW5Gb2xkZXI6IFwiT3BlbiB7e3R5cGV9fSBGb2xkZXJcIixcclxuICAgICAgICAgICAgcmVsb2FkOiBcIlJlbG9hZFwiLFxyXG4gICAgICAgICAgICBwbHVnaW5TZXR0aW5nczogXCJTZXR0aW5nc1wiLFxyXG4gICAgICAgICAgICB3ZWJzaXRlOiBcIldlYnNpdGVcIixcclxuICAgICAgICAgICAgc291cmNlOiBcIlNvdXJjZVwiLFxyXG4gICAgICAgICAgICBzZXJ2ZXI6IFwiU3VwcG9ydCBTZXJ2ZXJcIixcclxuICAgICAgICAgICAgZG9uYXRlOiBcIkRvbmF0ZVwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBFbW90ZXM6IHtcclxuICAgICAgICAgICAgZG93bmxvYWRpbmc6IFwiRG93bmxvYWRpbmcgZW1vdGVzIGluIHRoZSBiYWNrZ3JvdW5kIGRvIG5vdCByZWxvYWQuXCIsXHJcbiAgICAgICAgICAgIGRvd25sb2FkZWQ6IFwiQWxsIGVtb3RlcyBzdWNjZXNzZnVsbHkgZG93bmxvYWRlZC5cIixcclxuICAgICAgICAgICAgY2xlYXJFbW90ZXM6IFwiQ2xlYXIgRW1vdGUgRGF0YVwiLFxyXG4gICAgICAgICAgICBmYXZvcml0ZUFjdGlvbjogXCJGYXZvcml0ZSFcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgQ3VzdG9tQ1NTOiB7XHJcbiAgICAgICAgICAgIGNvbmZpcm1hdGlvblRleHQ6IFwiWW91IGhhdmUgdW5zYXZlZCBjaGFuZ2VzIHRvIHlvdXIgQ3VzdG9tIENTUy4gQ2xvc2luZyB0aGlzIHdpbmRvdyB3aWxsIGxvc2UgYWxsIHRob3NlIGNoYW5nZXMuXCIsXHJcbiAgICAgICAgICAgIHVwZGF0ZTogXCJVcGRhdGVcIixcclxuICAgICAgICAgICAgc2F2ZTogXCJTYXZlXCIsXHJcbiAgICAgICAgICAgIG9wZW5OYXRpdmU6IFwiT3BlbiBpbiBTeXN0ZW0gRWRpdG9yXCIsXHJcbiAgICAgICAgICAgIG9wZW5EZXRhY2hlZDogXCJEZXRhY2ggV2luZG93XCIsXHJcbiAgICAgICAgICAgIHNldHRpbmdzOiBcIkVkaXRvciBTZXR0aW5nc1wiLFxyXG4gICAgICAgICAgICBlZGl0b3JUaXRsZTogXCJDdXN0b20gQ1NTIEVkaXRvclwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBQdWJsaWNTZXJ2ZXJzOiB7XHJcbiAgICAgICAgICAgIGJ1dHRvbjogXCJwdWJsaWNcIixcclxuICAgICAgICAgICAgam9pbjogXCJKb2luXCIsXHJcbiAgICAgICAgICAgIGpvaW5pbmc6IFwiSm9pbmluZ1wiLFxyXG4gICAgICAgICAgICBqb2luZWQ6IFwiSm9pbmVkXCIsXHJcbiAgICAgICAgICAgIGxvYWRpbmc6IFwiTG9hZGluZ1wiLFxyXG4gICAgICAgICAgICBsb2FkTW9yZTogXCJMb2FkIE1vcmVcIixcclxuICAgICAgICAgICAgbm90Q29ubmVjdGVkOiBcIk5vdCBjb25uZWN0ZWQgdG8gRGlzY29yZFNlcnZlcnMuY29tIVwiLFxyXG4gICAgICAgICAgICBzZWFyY2g6IFwiU2VhcmNoXCIsXHJcbiAgICAgICAgICAgIGNvbm5lY3Q6IFwiQ29ubmVjdFwiLFxyXG4gICAgICAgICAgICByZWNvbm5lY3Q6IFwiUmVjb25uZWN0XCIsXHJcbiAgICAgICAgICAgIGNhdGVnb3JpZXM6IFwiQ2F0ZWdvcmllc1wiLFxyXG4gICAgICAgICAgICBjb25uZWN0aW9uOiBcIkNvbm5lY3RlZCBhczoge3t1c2VybmFtZX19I3t7ZGlzY3JpbWluYXRvcn19XCIsXHJcbiAgICAgICAgICAgIHJlc3VsdHM6IFwiU2hvd2luZyB7e3N0YXJ0fX0te3tlbmR9fSBvZiB7e3RvdGFsfX0gcmVzdWx0cyBpbiB7e2NhdGVnb3J5fX1cIixcclxuICAgICAgICAgICAgcXVlcnk6IFwiZm9yIHt7cXVlcnl9fVwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBNb2RhbHM6IHtcclxuICAgICAgICAgICAgY29uZmlybUNsb3NlOiBcIkFyZSBZb3UgU3VyZT9cIixcclxuICAgICAgICAgICAgb2theTogXCJPa2F5XCIsXHJcbiAgICAgICAgICAgIGNhbmNlbDogXCJDYW5jZWxcIixcclxuICAgICAgICAgICAgbmFtZTogXCJOYW1lXCIsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwiTWVzc2FnZVwiLFxyXG4gICAgICAgICAgICBlcnJvcjogXCJFcnJvclwiLFxyXG4gICAgICAgICAgICBhZGRvbkVycm9yczogXCJBZGRvbiBFcnJvcnNcIlxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBlczoge1xyXG4gICAgICAgIENvbGxlY3Rpb25zOiB7XHJcbiAgICAgICAgICAgIHNldHRpbmdzOiB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcIkFqdXN0ZXNcIixcclxuICAgICAgICAgICAgICAgIGFkZG9uczoge1xyXG4gICAgICAgICAgICAgICAgICAgIGFkZG9uRXJyb3JzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiTW9zdHJhciBFcnJvcmVzIGRlIEFkZG9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfSxcclxuICAgIHN2OiB7XHJcbiAgICAgICAgUGFuZWxzOiB7XHJcbiAgICAgICAgICAgIHBsdWdpbnM6IFwiVGlsbMOkZ2dcIixcclxuICAgICAgICAgICAgdGhlbWVzOiBcIlRlbWFuXCIsXHJcbiAgICAgICAgICAgIGN1c3RvbWNzczogXCJFZ2VuIENTU1wiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBDb2xsZWN0aW9uczoge1xyXG4gICAgICAgICAgICBzZXR0aW5nczoge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJJbnN0w6RsbG5pbmdhclwiLFxyXG4gICAgICAgICAgICAgICAgZ2VuZXJhbDoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiR2VuZXJlbGx0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZW1vdGVzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRW1vdGVzc3lzdGVtXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiQWt0aXZlcmFyIEJEJ3MgZW1vdGVzc3lzdGVtXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHB1YmxpY1NlcnZlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJQdWJsaWthIFNlcnZyYXJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJWaXNhIGtuYXBwZW4gZsO2ciBwdWJsaWthIHNlcnZyYXJcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgdm9pY2VEaXNjb25uZWN0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiTMOkbW5hIFLDtnN0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiTMOkbW5hIHLDtnN0c2FtdGFsIG7DpHIgRGlzY29yZCBzdMOkbmdzIG5lclwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB0d2VudHlGb3VySG91cjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIjI0LVRpbW1hcnMgVGlkc3N0w6RtcGVsXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiVmlzYXIgMjQtdGltbWFycyB0aWRzc3TDpG1wbGFyIGlzdMOkbGxldCBmw7ZyIEFNL1BNXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTm9ybWFsaXplcjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIk5vcm1hbGlzZXJhIEtsYXNzZXJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJMw6RnZ2VyIHRpbGwgc3RhdGlza2Ega2xhc3NlciBmw7ZyIGF0dCB1bmRlcmzDpHR0YSB0ZW1hbiAoZXguIGzDpGdnZXIgdGlsbCAuZGEtY2hhbm5lbHMgcMOlIC5jaGFubmVscy1JZTJsNkEpXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHNob3dUb2FzdHM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJWaXNhIFRvYXN0c1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlZpc2FyIGVuIGxpdGVuIG5vdGlmaWNhdGlvbiBmw7ZyIHZpa3RpZyBpbmZvcm1hdGlvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlV0c2VlbmRlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgdm9pY2VNb2RlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiUsO2c3Rsw6RnZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkfDtm1tZXIgYWxsdCBmw7ZydXRvbSByw7ZzdGNoYXR0XCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIG1pbmltYWxNb2RlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiTWluaW1hbHQgTMOkZ2VcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJHw7ZtbWVyIG9jaCBmw7ZybWluc2thciBrb21wb25lbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBoaWRlQ2hhbm5lbHM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJHw7ZtIEthbmFsZXJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJHw7ZtbWVyIGthbmFsZXIgbsOkciBtaW5pbWFsdCBsw6RnZSDDpHIgYWt0aXZlcmF0XCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGRhcmtNb2RlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiTcO2cmt0IEzDpGdlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiR8O2ciB2aXNzYSBrb21wb25lbnRlciBtw7Zya2FcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgY29sb3JlZFRleHQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJGw6RyZ2FkIFRleHRcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJHw7ZyIGF0dCB0ZXh0IGbDpXIgc2FtbWEgZsOkcmcgc29tIHJvbGxmw6RyZ2VuXCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgYWRkb25zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJUaWxsw6RnZ3NoYW50ZXJhcmVcIixcclxuICAgICAgICAgICAgICAgICAgICBhZGRvbkVycm9yczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlZpc2EgdGlsbMOkZ2dzZmVsXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiVmlzYXIgZW4gbW9kYWwgbWVkIHRpbGzDpGdnLSBvY2ggdGVtYWZlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBhdXRvU2Nyb2xsOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiU2tyb2xsYSB0aWxsIGluc3TDpGxsbmluZ2FyIFNjcm9sbCBUbyBTZXR0aW5nc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlNrcm9sbGFyIGF1dG9tYXRpc2tzIHRpbGwgZXR0IHRpbGzDpGdncyBpbnN0w6RsbG5pbmdhciBuw6RyIGtuYXBwZW4gw6RyIHRyeWNrdCAoZW5kYXN0IG9tIGluc3TDpGxsbmluZ2FybmEgw6RyIHV0YW5mw7ZyIHZ5KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBhdXRvUmVsb2FkOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQXV0b21hdGlzayBMYWRkbmluZ1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkxhZGRhciBhdXRvbWF0aXNrIGluLCBvbSBvY2ggdXIgdGlsbMOkZ2cgb2NoIHRlbWFuXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGN1c3RvbWNzczoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRWdlbiBDU1NcIixcclxuICAgICAgICAgICAgICAgICAgICBjdXN0b21jc3M6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJFZ2VuIENTU1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkFrdGl2ZXJhciBcXFwiRWdlbiBDU1NcXFwiLWZsaWtlblwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBsaXZlVXBkYXRlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiVXBwZGF0ZXJhIERpcmVrdFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlVwcGRhdGVyYXIgY3NzIGFsbHRlZnRlcnNvbSBkdSBza3JpdmVyXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0RGV0YWNoZWQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJTdGFydGEgRnLDpW5rb3BwbGFkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiw5ZwcG5hciBDU1MgcmVkaWdlcmFyZW4gaSBldHQgc2VwYXJhdCBmw7Zuc3RlciBuw6RyIFxcXCJFZ2VuIENTU1xcXCItZmxpa2VuIGtsaWNrYXNcIixcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIG5hdGl2ZU9wZW46IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCLDlnBwbmEgSSBTdGFuZGFyZHJlZGlnZXJhcmVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCLDlnBwbmFyIENTUyBmaWxlbiBpIG9wZXJhdGl2c3lzdGVtZXRzIHN0YW5kYXJkcmVkaWdlcmFyZSBuw6RyIFxcXCJFZ2VuIENTU1xcXCItZmxpa2VuIGtsaWNrYXNcIlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBkZXZlbG9wZXI6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlV0dmVja2xhcmluc3TDpGxsbmluZ2FyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZGV2ZWxvcGVyTW9kZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlV0dmVja2xhcmzDpGdlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiR8O2ciBkZXQgbcO2amxpZ3QgYXR0IGFrdGl2ZXJhIGF2bHVzYXJlIG1lZCBGOFwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBjb3B5U2VsZWN0b3I6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJLb3BpZXJhIFNlbGVrdG9yXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiTMOkZ2dlciB0aWxsIHZhbGV0IFxcXCJLb3BpZXJhIFNlbGVrdG9yXFxcIiBpIGtvbnRleHQgbWVueW4gbsOkciB1dHZlY2tsYXJsw6RnZSDDpHIgYWt0aXZlcmF0XCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgd2luZG93OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJGw7Zuc3Rlcmluc3TDpGxsbmluZ2FyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbmN5OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQWt0aXZlcmEgR2Vub21za2lubGlnaGV0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiR8O2ciBhdHQgaHV2dWRmw7Zuc3RyZXQgYmxpciBnZW5vbXNraW5saWd0IChrcsOkdmVyIG9tc3RhcnQpXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGZyYW1lOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRsO2bnN0ZXJyYW1cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJMw6RnZ2VyIHRpbGwgb3BlcmF0aXZzeXN0ZW1ldHMgc3RhbmRhcmQgZsO2bnN0ZXJyYW0gcnVudCBodXZ1ZGbDtm5zdHJldFwiXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBlbW90ZXM6IHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiRW1vdGVzXCIsXHJcbiAgICAgICAgICAgICAgICBnZW5lcmFsOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJHZW5lcmVsbHRcIixcclxuICAgICAgICAgICAgICAgICAgICBkb3dubG9hZDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkxhZGRhIE5lciBFbW90ZXNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJMYWRkYSBuZXIgZW1vdGVzIGVuIGfDpW5nIGkgdmVja2FuIGbDtnIgYXR0IGjDpWxsYSBzaWcgdXBwZGF0ZXJhZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBlbW90ZU1lbnU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJFbW90ZSBNZW55XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiVmlzYSBUd2l0Y2gvRmF2b3JpdCBlbW90ZXMgaSBlbW90ZSBtZW55XCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGhpZGVFbW9qaU1lbnU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJHw7ZtbWVyIEVtb2ppIE1lbnlcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJHw7ZtbWVyIERpc2NvcmQncyBlbW9qaSBtZW55IG7DpHIgZW1vdGUgbWVueSDDpHIgYWt0aXZlcmFkXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGF1dG9DYXBzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQXV0b21hdGlza3QgU3RvciBCb2tzdGF2IEkgRW1vdGVzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiR8O2ciBhdXRvbWF0aXNrdCBzdG9yIGJva3N0YXYgaSBlbW90ZSBrb21tYW5kb25cIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgc2hvd05hbWVzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiVmlzYSBuYW1uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiVmlzYSBuYW1uIG7DpHIgbXVzZW4gaMOlbGxzIMO2dmVyIGVuIGVtb3RlXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIG1vZGlmaWVyczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlZpc2EgRW1vdGUgTW9kaWZpZXJhcmVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJBa3RpdmVyYSBlbW90ZSBtb2RpZmllcmFyZSAoZmxpcCwgc3BpbiwgcHVsc2UsIHNwaW4yLCBzcGluMywgMXNwaW4sIDJzcGluLCAzc3BpbiwgdHIsIGJsLCBiciwgc2hha2UsIHNoYWtlMiwgc2hha2UzLCBmbGFwKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBhbmltYXRlT25Ib3Zlcjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkFuaW1lcmEgTsOkciBNdXNlbiBIw6VsbHMgw5Z2ZXJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJBbmltZXJhIGVuZGFzdCBlbW90ZSBtaWRpZmVyYXJlIG7DpHIgbXVzZW4gaMOlbGxzIMO2dmVyIGVtb3RlblwiXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGNhdGVnb3JpZXM6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkthdGVnb3JpZXJcIixcclxuICAgICAgICAgICAgICAgICAgICB0d2l0Y2g6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJUd2l0Y2hcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJWaXNhIFR3aXRjaCBnbG9iYWwgJiBwcmVudW1lcmFudCBlbW90ZXNcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmZ6OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRnJhbmtlckZhY2VaXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiVmlzYSBlbW90ZXMgZnLDpW4gRkZaXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGJ0dHY6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJCZXR0ZXJUVFZcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJWaXNhIGVtb3RlcyBmcsOlbiBCVFRWXCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIEVtb3Rlczoge1xyXG4gICAgICAgICAgICBkb3dubG9hZGluZzogXCJMYWRkYXIgbmVyIGVtb3RlcyBpIGJhY2tncnVuZGVuLCBsYWRkYSBpbnRlIG9tXCIsXHJcbiAgICAgICAgICAgIGRvd25sb2FkZWQ6IFwiQWxsYSBlbW90ZXMgbGFkZGFkZXMgbmVyIHV0YW4gcHJvYmxlbS5cIixcclxuICAgICAgICAgICAgY2xlYXJFbW90ZXM6IFwiUmVuc2EgRW1vdGUgRGF0YVwiLFxyXG4gICAgICAgICAgICBmYXZvcml0ZUFjdGlvbjogXCJGYXZvcml0IVwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBDdXN0b21DU1M6IHtcclxuICAgICAgICAgICAgY29uZmlybWF0aW9uVGV4dDogXCJEdSBoYXIgb3NwYXJhZGUgw6RuZHJpbmdhciBhdiBlZ25hIENTUzplbi4gQWxsYSDDpG5kcmluZ2FyIGtvbW1lciBmw7Zyc3Zpbm5hIG9tIGR1IHN0w6RuZ2VyIGRldCBow6RyIGbDtm5zdHJldFwiLFxyXG4gICAgICAgICAgICB1cGRhdGU6IFwiVXBwZGF0ZXJhXCIsXHJcbiAgICAgICAgICAgIHNhdmU6IFwiU3BhcmFcIixcclxuICAgICAgICAgICAgb3Blbk5hdGl2ZTogXCLDlnBwbmEgSSBTdGFuZGFyZHJlZGlnZXJhcmVcIixcclxuICAgICAgICAgICAgb3BlbkRldGFjaGVkOiBcIktvcHBsYSBMb3NzIEbDtm5zdGVyXCIsXHJcbiAgICAgICAgICAgIHNldHRpbmdzOiBcIkluc3TDpGxsbmluZ2FyIGbDtnIgcmVkaWdlcmFyZVwiLFxyXG4gICAgICAgICAgICBlZGl0b3JUaXRsZTogXCJFZ2VuIENTUyBSZWRpZ2VyYXJlXCJcclxuICAgICAgICB9LFxyXG4gICAgICAgIFB1YmxpY1NlcnZlcnM6IHtcclxuICAgICAgICAgICAgYnV0dG9uOiBcIlB1Ymxpa1wiLFxyXG4gICAgICAgICAgICBqb2luOiBcIkfDpSBtZWRcIixcclxuICAgICAgICAgICAgam9pbmluZzogXCJHw6VyIG1lZFwiLFxyXG4gICAgICAgICAgICBqb2luZWQ6IFwiR2ljayBtZWRcIixcclxuICAgICAgICAgICAgbG9hZGluZzogXCJMYWRkYXJcIixcclxuICAgICAgICAgICAgbG9hZE1vcmU6IFwibGFkZGEgbWVyXCIsXHJcbiAgICAgICAgICAgIG5vdENvbm5lY3RlZDogXCJJbmdlbiBhbnNsdXRuaW5nIHRpbGwgRGlzY29yZFNlcnZlcnMuY29tIVwiLFxyXG4gICAgICAgICAgICBzZWFyY2g6IFwiU8O2a1wiLFxyXG4gICAgICAgICAgICBjb25uZWN0OiBcIkFuc2x1dFwiLFxyXG4gICAgICAgICAgICByZWNvbm5lY3Q6IFwiw4V0ZXJhbnNsdXRcIixcclxuICAgICAgICAgICAgY2F0ZWdvcmllczogXCJLYXRlZ29yaWVyXCIsXHJcbiAgICAgICAgICAgIGNvbm5lY3Rpb246IFwiQW5zbHV0ZW4gc29tOiB7e3VzZXJuYW1lfX0je3tkaXNjcmltaW5hdG9yfX1cIixcclxuICAgICAgICAgICAgcmVzdWx0czogXCJWaXNhciB7e3N0YXJ0fX0te3tlbmR9fSBhdiB7e3RvdGFsfX0gcmVzdWx0YXQgaSB7e2NhdGVnb3J5fX1cIixcclxuICAgICAgICAgICAgcXVlcnk6IFwiZsO2ciB7e3F1ZXJ5fX1cIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgTW9kYWxzOiB7XHJcbiAgICAgICAgICAgIGNvbmZpcm1DbG9zZTogXCLDhHIgZHUgc8Oka2VyP1wiLFxyXG4gICAgICAgICAgICBva2F5OiBcIk9rZWpcIixcclxuICAgICAgICAgICAgY2FuY2VsOiBcIkF2YnJ5dFwiLFxyXG4gICAgICAgICAgICBuYW1lOiBcIk5hbW5cIixcclxuICAgICAgICAgICAgbWVzc2FnZTogXCJNZWRkZWxhbmRlXCIsXHJcbiAgICAgICAgICAgIGVycm9yOiBcIkZlbFwiLFxyXG4gICAgICAgICAgICBhZGRvbkVycm9yczogXCJUaWxsw6RnZ3NmZWxcIlxyXG4gICAgICAgIH1cclxuICAgIH1cclxufTtcclxuIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/data/strings.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = ({\n en: {\n Panels: {\n plugins: \"Plugins\",\n themes: \"Themes\",\n customcss: \"Custom CSS\"\n },\n Collections: {\n settings: {\n name: \"Settings\",\n general: {\n name: \"General\",\n emotes: {\n name: \"Emote System\",\n note: \"Enables BD's emote system\"\n },\n publicServers: {\n name: \"Public Servers\",\n note: \"Display public servers button\"\n },\n voiceDisconnect: {\n name: \"Voice Disconnect\",\n note: \"Disconnect from voice server when closing Discord\"\n },\n twentyFourHour: {\n name: \"24-Hour Timestamps\",\n note: \"Hides channels when in minimal mode\"\n },\n classNormalizer: {\n name: \"Normalize Classes\",\n note: \"Adds stable classes to elements to help themes. (e.g. adds .da-channels to .channels-Ie2l6A)\"\n },\n showToasts: {\n name: \"Show Toasts\",\n note: \"Shows a small notification for important information\"\n }\n },\n appearance: {\n name: \"Appearance\",\n voiceMode: {\n name: \"Voice Mode\",\n note: \"Hides everything that isn't voice chat\"\n },\n minimalMode: {\n name: \"Minimal Mode\",\n note: \"Hide elements and reduce the size of elements\"\n },\n hideChannels: {\n name: \"Hide Channels\",\n note: \"Hides channels when in minimal mode\"\n },\n darkMode: {\n name: \"Dark Mode\",\n note: \"Make certain elements dark by default\"\n },\n coloredText: {\n name: \"Colored Text\",\n note: \"Make text colour the same as role color\"\n }\n },\n addons: {\n name: \"Addon Manager\",\n addonErrors: {\n name: \"Show Addon Errors\",\n note: \"Shows a modal with plugin/theme errors\"\n },\n autoScroll: {\n name: \"Scroll To Settings\",\n note: \"Auto-scrolls to a plugin's settings when the button is clicked (only if out of view)\"\n },\n autoReload: {\n name: \"Automatic Loading\",\n note: \"Automatically loads, reloads, and unloads plugins and themes\"\n }\n },\n customcss: {\n name: \"Custom CSS\",\n customcss: {\n name: \"Custom CSS\",\n note: \"Enables the Custom CSS tab\"\n },\n liveUpdate: {\n name: \"Live Update\",\n note: \"Updates the css as you type\"\n },\n startDetached: {\n name: \"Start Detached\",\n note: \"Clicking the Custom CSS tab opens the editor in a separate window\"\n },\n nativeOpen: {\n name: \"Open in Native Editor\",\n note: \"Clicking the Custom CSS tab opens your custom css in your native editor\"\n }\n },\n developer: {\n name: \"Developer Settings\",\n developerMode: {\n name: \"Developer Mode\",\n note: \"Allows activating debugger when pressing F8\"\n },\n copySelector: {\n name: \"Copy Selector\",\n note: \"Adds a \\\"Copy Selector\\\" option to context menus when developer mode is active\"\n }\n },\n window: {\n name: \"Window Preferences\",\n transparency: {\n name: \"Enable Transparency\",\n note: \"Enables the main window to be see-through (requires restart)\"\n },\n frame: {\n name: \"Window Frame\",\n note: \"Adds the native os window frame to the main window\"\n }\n }\n },\n emotes: {\n name: \"Emotes\",\n general: {\n name: \"General\",\n download: {\n name: \"Download Emotes\",\n note: \"Download emotes once a week to stay up to date\"\n },\n emoteMenu: {\n name: \"Emote Menu\",\n note: \"Show Twitch/Favourite emotes in emote menu\"\n },\n hideEmojiMenu: {\n name: \"Hide Emoji Menu\",\n note: \"Hides Discord's emoji menu when using emote menu\"\n },\n autoCaps: {\n name: \"Emote Autocapitalization\",\n note: \"Autocapitalize emote commands\"\n },\n showNames: {\n name: \"Show Names\",\n note: \"Show emote names on hover\"\n },\n modifiers: {\n name: \"Show Emote Modifiers\",\n note: \"Enable emote mods (flip, spin, pulse, spin2, spin3, 1spin, 2spin, 3spin, tr, bl, br, shake, shake2, shake3, flap)\"\n },\n animateOnHover: {\n name: \"Animate On Hover\",\n note: \"Only animate the emote modifiers on hover\"\n }\n },\n categories: {\n name: \"Categories\",\n twitch: {\n name: \"Twitch\",\n note: \"Show Twitch global & subscriber emotes\"\n },\n ffz: {\n name: \"FrankerFaceZ\",\n note: \"Show emotes from FFZ\"\n },\n bttv: {\n name: \"BetterTTV\",\n note: \"Show emotes from BTTV\"\n }\n }\n }\n },\n Addons: {\n title: \"{{name}} v{{version}} by {{author}}\",\n openFolder: \"Open {{type}} Folder\",\n reload: \"Reload\",\n pluginSettings: \"Settings\",\n website: \"Website\",\n source: \"Source\",\n server: \"Support Server\",\n donate: \"Donate\"\n },\n Emotes: {\n downloading: \"Downloading emotes in the background do not reload.\",\n downloaded: \"All emotes successfully downloaded.\",\n clearEmotes: \"Clear Emote Data\",\n favoriteAction: \"Favorite!\"\n },\n CustomCSS: {\n confirmationText: \"You have unsaved changes to your Custom CSS. Closing this window will lose all those changes.\",\n update: \"Update\",\n save: \"Save\",\n openNative: \"Open in System Editor\",\n openDetached: \"Detach Window\",\n settings: \"Editor Settings\",\n editorTitle: \"Custom CSS Editor\"\n },\n PublicServers: {\n button: \"public\",\n join: \"Join\",\n joining: \"Joining\",\n joined: \"Joined\",\n loading: \"Loading\",\n loadMore: \"Load More\",\n notConnected: \"Not connected to DiscordServers.com!\",\n search: \"Search\",\n connect: \"Connect\",\n reconnect: \"Reconnect\",\n categories: \"Categories\",\n connection: \"Connected as: {{username}}#{{discriminator}}\",\n results: \"Showing {{start}}-{{end}} of {{total}} results in {{category}}\",\n query: \"for {{query}}\"\n },\n Modals: {\n confirmClose: \"Are You Sure?\",\n okay: \"Okay\",\n cancel: \"Cancel\",\n name: \"Name\",\n message: \"Message\",\n error: \"Error\",\n addonErrors: \"Addon Errors\"\n }\n },\n es: {\n Collections: {\n settings: {\n name: \"Ajustes\",\n addons: {\n addonErrors: {\n name: \"Mostrar Errores de Addons\"\n }\n }\n }\n }\n },\n sv: {\n Panels: {\n plugins: \"Tillägg\",\n themes: \"Teman\",\n customcss: \"Egen CSS\"\n },\n Collections: {\n settings: {\n name: \"Inställningar\",\n general: {\n name: \"Generellt\",\n emotes: {\n name: \"Emotessystem\",\n note: \"Aktiverar BD's emotessystem\"\n },\n publicServers: {\n name: \"Publika Servrar\",\n note: \"Visa knappen för publika servrar\"\n },\n voiceDisconnect: {\n name: \"Lämna Röst\",\n note: \"Lämna röstsamtal när Discord stängs ner\"\n },\n twentyFourHour: {\n name: \"24-Timmars Tidsstämpel\",\n note: \"Visar 24-timmars tidsstämplar istället för AM/PM\"\n },\n classNormalizer: {\n name: \"Normalisera Klasser\",\n note: \"Lägger till statiska klasser för att underlätta teman (ex. lägger till .da-channels på .channels-Ie2l6A)\"\n },\n showToasts: {\n name: \"Visa Toasts\",\n note: \"Visar en liten notification för viktig information\"\n }\n },\n appearance: {\n name: \"Utseende\",\n voiceMode: {\n name: \"Röstläge\",\n note: \"Gömmer allt förutom röstchatt\"\n },\n minimalMode: {\n name: \"Minimalt Läge\",\n note: \"Gömmer och förminskar komponenter\"\n },\n hideChannels: {\n name: \"Göm Kanaler\",\n note: \"Gömmer kanaler när minimalt läge är aktiverat\"\n },\n darkMode: {\n name: \"Mörkt Läge\",\n note: \"Gör vissa komponenter mörka\"\n },\n coloredText: {\n name: \"Färgad Text\",\n note: \"Gör att text får samma färg som rollfärgen\"\n }\n },\n addons: {\n name: \"Tilläggshanterare\",\n addonErrors: {\n name: \"Visa tilläggsfel\",\n note: \"Visar en modal med tillägg- och temafel\"\n },\n autoScroll: {\n name: \"Skrolla till inställningar Scroll To Settings\",\n note: \"Skrollar automatisks till ett tilläggs inställningar när knappen är tryckt (endast om inställningarna är utanför vy)\"\n },\n autoReload: {\n name: \"Automatisk Laddning\",\n note: \"Laddar automatisk in, om och ur tillägg och teman\"\n }\n },\n customcss: {\n name: \"Egen CSS\",\n customcss: {\n name: \"Egen CSS\",\n note: \"Aktiverar \\\"Egen CSS\\\"-fliken\"\n },\n liveUpdate: {\n name: \"Uppdatera Direkt\",\n note: \"Uppdaterar css allteftersom du skriver\"\n },\n startDetached: {\n name: \"Starta Frånkopplad\",\n note: \"Öppnar CSS redigeraren i ett separat fönster när \\\"Egen CSS\\\"-fliken klickas\"\n },\n nativeOpen: {\n name: \"Öppna I Standardredigerare\",\n note: \"Öppnar CSS filen i operativsystemets standardredigerare när \\\"Egen CSS\\\"-fliken klickas\"\n }\n },\n developer: {\n name: \"Utvecklarinställningar\",\n developerMode: {\n name: \"Utvecklarläge\",\n note: \"Gör det möjligt att aktivera avlusare med F8\"\n },\n copySelector: {\n name: \"Kopiera Selektor\",\n note: \"Lägger till valet \\\"Kopiera Selektor\\\" i kontext menyn när utvecklarläge är aktiverat\"\n }\n },\n window: {\n name: \"Fönsterinställningar\",\n transparency: {\n name: \"Aktivera Genomskinlighet\",\n note: \"Gör att huvudfönstret blir genomskinligt (kräver omstart)\"\n },\n frame: {\n name: \"Fönsterram\",\n note: \"Lägger till operativsystemets standard fönsterram runt huvudfönstret\"\n }\n }\n },\n emotes: {\n name: \"Emotes\",\n general: {\n name: \"Generellt\",\n download: {\n name: \"Ladda Ner Emotes\",\n note: \"Ladda ner emotes en gång i veckan för att hålla sig uppdaterad\"\n },\n emoteMenu: {\n name: \"Emote Meny\",\n note: \"Visa Twitch/Favorit emotes i emote meny\"\n },\n hideEmojiMenu: {\n name: \"Gömmer Emoji Meny\",\n note: \"Gömmer Discord's emoji meny när emote meny är aktiverad\"\n },\n autoCaps: {\n name: \"Automatiskt Stor Bokstav I Emotes\",\n note: \"Gör automatiskt stor bokstav i emote kommandon\"\n },\n showNames: {\n name: \"Visa namn\",\n note: \"Visa namn när musen hålls över en emote\"\n },\n modifiers: {\n name: \"Visa Emote Modifierare\",\n note: \"Aktivera emote modifierare (flip, spin, pulse, spin2, spin3, 1spin, 2spin, 3spin, tr, bl, br, shake, shake2, shake3, flap)\"\n },\n animateOnHover: {\n name: \"Animera När Musen Hålls Över\",\n note: \"Animera endast emote midiferare när musen hålls över emoten\"\n }\n },\n categories: {\n name: \"Kategorier\",\n twitch: {\n name: \"Twitch\",\n note: \"Visa Twitch global & prenumerant emotes\"\n },\n ffz: {\n name: \"FrankerFaceZ\",\n note: \"Visa emotes från FFZ\"\n },\n bttv: {\n name: \"BetterTTV\",\n note: \"Visa emotes från BTTV\"\n }\n }\n }\n },\n Emotes: {\n downloading: \"Laddar ner emotes i backgrunden, ladda inte om\",\n downloaded: \"Alla emotes laddades ner utan problem.\",\n clearEmotes: \"Rensa Emote Data\",\n favoriteAction: \"Favorit!\"\n },\n CustomCSS: {\n confirmationText: \"Du har osparade ändringar av egna CSS:en. Alla ändringar kommer försvinna om du stänger det här fönstret\",\n update: \"Uppdatera\",\n save: \"Spara\",\n openNative: \"Öppna I Standardredigerare\",\n openDetached: \"Koppla Loss Fönster\",\n settings: \"Inställningar för redigerare\",\n editorTitle: \"Egen CSS Redigerare\"\n },\n PublicServers: {\n button: \"Publik\",\n join: \"Gå med\",\n joining: \"Går med\",\n joined: \"Gick med\",\n loading: \"Laddar\",\n loadMore: \"ladda mer\",\n notConnected: \"Ingen anslutning till DiscordServers.com!\",\n search: \"Sök\",\n connect: \"Anslut\",\n reconnect: \"Återanslut\",\n categories: \"Kategorier\",\n connection: \"Ansluten som: {{username}}#{{discriminator}}\",\n results: \"Visar {{start}}-{{end}} av {{total}} resultat i {{category}}\",\n query: \"för {{query}}\"\n },\n Modals: {\n confirmClose: \"Är du säker?\",\n okay: \"Okej\",\n cancel: \"Avbryt\",\n name: \"Namn\",\n message: \"Meddelande\",\n error: \"Fel\",\n addonErrors: \"Tilläggsfel\"\n }\n },\n ja: {\n Panels: {\n plugins: \"プラグイン\",\n themes: \"テーマ\",\n customcss: \"カスタム CSS\"\n },\n Collections: {\n settings: {\n name: \"BD設定\",\n general: {\n name: \"全般\",\n emotes: {\n name: \"BD絵文字システム\",\n note: \"BetterDiscordの絵文字システムを有効にします。\"\n },\n publicServers: {\n name: \"公開サーバボタン\",\n note: \"公開サーバボタンを表示します\"\n },\n voiceDisconnect: {\n name: \"ボイスチャンネル自動切断\",\n note: \"Discordを終了する際、自動的にボイスチャンネルから切断します。\"\n },\n twentyFourHour: {\n name: \"24時間表記\",\n note: \"時間を24時間表記に変更します。\"\n },\n classNormalizer: {\n name: \"クラス標準化\",\n note: \"値が変動しないCSSクラスを追加します。\"\n },\n showToasts: {\n name: \"トースト表示\",\n note: \"重要な情報を小さな通知として表示します。\"\n }\n },\n appearance: {\n name: \"外観\",\n voiceMode: {\n name: \"ボイスモード\",\n note: \"ボイスチャンネル以外を表示しないようにします\"\n },\n minimalMode: {\n name: \"コンパクトモード\",\n note: \"表示をコンパクトにします。\"\n },\n hideChannels: {\n name: \"チャンネルリストを非表示\",\n note: \"コンパクトモードのときは、チャンネルリストを表示しません\"\n },\n darkMode: {\n name: \"ダークモード\",\n note: \"ダークモードを有効にします\"\n },\n coloredText: {\n name: \"カラーテキスト\",\n note: \"テキストカラーをサーバルールの色と同じにします。\"\n }\n },\n addons: {\n name: \"アドオンマネージャ\",\n addonErrors: {\n name: \"アドオンエラーの表示\",\n note: \"プラグイン/テーマで発生したエラーを表示\"\n },\n autoScroll: {\n name: \"設定までスクロール\",\n note: \"プラグインの設定が収まらない場合、自動でスクロールします\"\n },\n autoReload: {\n name: \"自動リロード\",\n note: \"プラグイン・テーマを自動でロード・アンロード・リロードします\"\n }\n },\n customcss: {\n name: \"カスタム CSS\",\n customcss: {\n name: \"カスタム CSS\",\n note: \"カスタム CSS タブを有効にします\"\n },\n liveUpdate: {\n name: \"自動更新\",\n note: \"コードを自動再読み込みする\"\n },\n startDetached: {\n name: \"デタッチ\",\n note: \"カスタムCSSエディターをウィンドウに独立させます\"\n },\n nativeOpen: {\n name: \"外部エディタを起動\",\n note: \"カスタムCSSを外部のエディタで起動します\"\n }\n },\n developer: {\n name: \"開発者設定\",\n developerMode: {\n name: \"開発者モード\",\n note: \"デバッグモードを有効にします(デバッガ起動はF8)\"\n },\n copySelector: {\n name: \"セレクターコピー\",\n note: \"開発者モードが有効時に、コンテキストメニューに\\\"Copy Selector\\\"を追加します\"\n }\n },\n window: {\n name: \"ウィンドウ設定\",\n transparency: {\n name: \"透過を有効\",\n note: \"Discordのメインウィンドウを透過します(要再起動)\"\n },\n frame: {\n name: \"ウィンドウフレーム表示\",\n note: \"OSにあわせたフレームを追加します\"\n }\n }\n },\n emotes: {\n name: \"絵文字\",\n general: {\n name: \"全般\",\n download: {\n name: \"絵文字をダウンロード\",\n note: \"絵文字をダウンロードします(1週間ごと)\"\n },\n emoteMenu: {\n name: \"絵文字メニュー\",\n note: \"Twitch/お気に入りの絵文字を表示します\"\n },\n hideEmojiMenu: {\n name: \"絵文字メニューを非表示\",\n note: \"Discord標準の絵文字メニューを非表示にします\"\n },\n autoCaps: {\n name: \"絵文字自動補完\",\n note: \"絵文字を自動で補完します\"\n },\n showNames: {\n name: \"名前を表示\",\n note: \"ホバー時に絵文字の名前を表示します\"\n },\n modifiers: {\n name: \"BetterDiscord絵文字を表示\",\n note: \"BetterDiscordの絵文字を有効化します(flip, spin, pulse, spin2, spin3, 1spin, 2spin, 3spin, tr, bl, br, shake, shake2, shake3, flap)\"\n },\n animateOnHover: {\n name: \"ホバー時にアニメーション\",\n note: \"ホバー時にアニメーションします(アニメーション絵文字限定)\"\n }\n },\n categories: {\n name: \"カテゴリ\",\n twitch: {\n name: \"Twitch\",\n note: \"Twitchに登録されている絵文字を表示します\"\n },\n ffz: {\n name: \"FrankerFaceZ\",\n note: \"FFZに登録されている絵文字を表示します\"\n },\n bttv: {\n name: \"BetterTTV\",\n note: \"BTTVに登録されている絵文字を表示します\"\n }\n }\n }\n },\n Emotes: {\n downloading: \"絵文字をダウンロード中…\",\n downloaded: \"すべての絵文字のダウンロードが完了しました\",\n clearEmotes: \"絵文字データをクリアします\",\n favoriteAction: \"お気に入り!!\"\n },\n CustomCSS: {\n confirmationText: \"Discordを終了すると、保存されていないカスタムCSSは破棄されます\",\n update: \"更新\",\n save: \"保存\",\n openNative: \"外部エディタで開く\",\n openDetached: \"別ウィンドウで開く\",\n settings: \"エディター設定\",\n editorTitle: \"カスタム CSS エディター\"\n },\n PublicServers: {\n button: \"公開サーバ\",\n join: \"参加\",\n joining: \"参加中\",\n joined: \"参加済み\",\n loading: \"読み込み中\",\n loadMore: \"もっと読み込む\",\n notConnected: \"DiscordServers.comに接続できませんでした\",\n search: \"検索\",\n connect: \"接続\",\n reconnect: \"再接続\",\n categories: \"カテゴリ\",\n connection: \"接続済み: {{username}}#{{discriminator}}\",\n results: \"カテゴリ{{category}} 合計{{total}}中 {{start}}-{{end}}を表示中\",\n query: \"クエリー:{{query}}\"\n },\n Modals: {\n confirmClose: \"Discordを終了しますか?\",\n okay: \"はい\",\n cancel: \"いいえ\",\n name: \"名前\",\n message: \"メッセージ\",\n error: \"エラー\",\n addonErrors: \"アドオンエラー\"\n }\n }\n});//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL2RhdGEvc3RyaW5ncy5qcz9iYzcxIl0sIm5hbWVzIjpbImVuIiwiUGFuZWxzIiwicGx1Z2lucyIsInRoZW1lcyIsImN1c3RvbWNzcyIsIkNvbGxlY3Rpb25zIiwic2V0dGluZ3MiLCJuYW1lIiwiZ2VuZXJhbCIsImVtb3RlcyIsIm5vdGUiLCJwdWJsaWNTZXJ2ZXJzIiwidm9pY2VEaXNjb25uZWN0IiwidHdlbnR5Rm91ckhvdXIiLCJjbGFzc05vcm1hbGl6ZXIiLCJzaG93VG9hc3RzIiwiYXBwZWFyYW5jZSIsInZvaWNlTW9kZSIsIm1pbmltYWxNb2RlIiwiaGlkZUNoYW5uZWxzIiwiZGFya01vZGUiLCJjb2xvcmVkVGV4dCIsImFkZG9ucyIsImFkZG9uRXJyb3JzIiwiYXV0b1Njcm9sbCIsImF1dG9SZWxvYWQiLCJsaXZlVXBkYXRlIiwic3RhcnREZXRhY2hlZCIsIm5hdGl2ZU9wZW4iLCJkZXZlbG9wZXIiLCJkZXZlbG9wZXJNb2RlIiwiY29weVNlbGVjdG9yIiwid2luZG93IiwidHJhbnNwYXJlbmN5IiwiZnJhbWUiLCJkb3dubG9hZCIsImVtb3RlTWVudSIsImhpZGVFbW9qaU1lbnUiLCJhdXRvQ2FwcyIsInNob3dOYW1lcyIsIm1vZGlmaWVycyIsImFuaW1hdGVPbkhvdmVyIiwiY2F0ZWdvcmllcyIsInR3aXRjaCIsImZmeiIsImJ0dHYiLCJBZGRvbnMiLCJ0aXRsZSIsIm9wZW5Gb2xkZXIiLCJyZWxvYWQiLCJwbHVnaW5TZXR0aW5ncyIsIndlYnNpdGUiLCJzb3VyY2UiLCJzZXJ2ZXIiLCJkb25hdGUiLCJFbW90ZXMiLCJkb3dubG9hZGluZyIsImRvd25sb2FkZWQiLCJjbGVhckVtb3RlcyIsImZhdm9yaXRlQWN0aW9uIiwiQ3VzdG9tQ1NTIiwiY29uZmlybWF0aW9uVGV4dCIsInVwZGF0ZSIsInNhdmUiLCJvcGVuTmF0aXZlIiwib3BlbkRldGFjaGVkIiwiZWRpdG9yVGl0bGUiLCJQdWJsaWNTZXJ2ZXJzIiwiYnV0dG9uIiwiam9pbiIsImpvaW5pbmciLCJqb2luZWQiLCJsb2FkaW5nIiwibG9hZE1vcmUiLCJub3RDb25uZWN0ZWQiLCJzZWFyY2giLCJjb25uZWN0IiwicmVjb25uZWN0IiwiY29ubmVjdGlvbiIsInJlc3VsdHMiLCJxdWVyeSIsIk1vZGFscyIsImNvbmZpcm1DbG9zZSIsIm9rYXkiLCJjYW5jZWwiLCJtZXNzYWdlIiwiZXJyb3IiLCJlcyIsInN2IiwiamEiXSwibWFwcGluZ3MiOiJBQUFBO0FBQWU7QUFDWEEsSUFBRSxFQUFFO0FBQ0FDLFVBQU0sRUFBRTtBQUNKQyxhQUFPLEVBQUUsU0FETDtBQUVKQyxZQUFNLEVBQUUsUUFGSjtBQUdKQyxlQUFTLEVBQUU7QUFIUCxLQURSO0FBTUFDLGVBQVcsRUFBRTtBQUNUQyxjQUFRLEVBQUU7QUFDTkMsWUFBSSxFQUFFLFVBREE7QUFFTkMsZUFBTyxFQUFFO0FBQ0xELGNBQUksRUFBRSxTQUREO0FBRUxFLGdCQUFNLEVBQUU7QUFDSkYsZ0JBQUksRUFBRSxjQURGO0FBRUpHLGdCQUFJLEVBQUU7QUFGRixXQUZIO0FBTUxDLHVCQUFhLEVBQUU7QUFDWEosZ0JBQUksRUFBRSxnQkFESztBQUVYRyxnQkFBSSxFQUFFO0FBRkssV0FOVjtBQVVMRSx5QkFBZSxFQUFFO0FBQ2JMLGdCQUFJLEVBQUUsa0JBRE87QUFFYkcsZ0JBQUksRUFBRTtBQUZPLFdBVlo7QUFjTEcsd0JBQWMsRUFBRTtBQUNaTixnQkFBSSxFQUFFLG9CQURNO0FBRVpHLGdCQUFJLEVBQUU7QUFGTSxXQWRYO0FBa0JMSSx5QkFBZSxFQUFFO0FBQ2JQLGdCQUFJLEVBQUUsbUJBRE87QUFFYkcsZ0JBQUksRUFBRTtBQUZPLFdBbEJaO0FBc0JMSyxvQkFBVSxFQUFFO0FBQ1JSLGdCQUFJLEVBQUUsYUFERTtBQUVSRyxnQkFBSSxFQUFFO0FBRkU7QUF0QlAsU0FGSDtBQTZCTk0sa0JBQVUsRUFBRTtBQUNSVCxjQUFJLEVBQUUsWUFERTtBQUVSVSxtQkFBUyxFQUFFO0FBQ1BWLGdCQUFJLEVBQUUs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TyxFQUFFLE9BTEU7QUFNWEMsY0FBUSxFQUFFLFNBTkM7QUFPWEMsa0JBQVksRUFBRSwrQkFQSDtBQVFYQyxZQUFNLEVBQUUsSUFSRztBQVNYQyxhQUFPLEVBQUUsSUFURTtBQVVYQyxlQUFTLEVBQUUsS0FWQTtBQVdYbkMsZ0JBQVUsRUFBRSxNQVhEO0FBWVhvQyxnQkFBVSxFQUFFLHNDQVpEO0FBYVhDLGFBQU8sRUFBRSxzREFiRTtBQWNYQyxXQUFLLEVBQUU7QUFkSSxLQXJMZjtBQXFNQUMsVUFBTSxFQUFFO0FBQ0pDLGtCQUFZLEVBQUUsaUJBRFY7QUFFSkMsVUFBSSxFQUFFLElBRkY7QUFHSkMsWUFBTSxFQUFFLEtBSEo7QUFJSjdFLFVBQUksRUFBRSxJQUpGO0FBS0o4RSxhQUFPLEVBQUUsT0FMTDtBQU1KQyxXQUFLLEVBQUUsS0FOSDtBQU9KL0QsaUJBQVcsRUFBRTtBQVBUO0FBck1SO0FBcmJPLENBQWYiLCJmaWxlIjoiLi9zcmMvZGF0YS9zdHJpbmdzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQge1xyXG4gICAgZW46IHtcclxuICAgICAgICBQYW5lbHM6IHtcclxuICAgICAgICAgICAgcGx1Z2luczogXCJQbHVnaW5zXCIsXHJcbiAgICAgICAgICAgIHRoZW1lczogXCJUaGVtZXNcIixcclxuICAgICAgICAgICAgY3VzdG9tY3NzOiBcIkN1c3RvbSBDU1NcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgQ29sbGVjdGlvbnM6IHtcclxuICAgICAgICAgICAgc2V0dGluZ3M6IHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiU2V0dGluZ3NcIixcclxuICAgICAgICAgICAgICAgIGdlbmVyYWw6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkdlbmVyYWxcIixcclxuICAgICAgICAgICAgICAgICAgICBlbW90ZXM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJFbW90ZSBTeXN0ZW1cIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJFbmFibGVzIEJEJ3MgZW1vdGUgc3lzdGVtXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHB1YmxpY1NlcnZlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJQdWJsaWMgU2VydmVyc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkRpc3BsYXkgcHVibGljIHNlcnZlcnMgYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHZvaWNlRGlzY29ubmVjdDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlZvaWNlIERpc2Nvbm5lY3RcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJEaXNjb25uZWN0IGZyb20gdm9pY2Ugc2VydmVyIHdoZW4gY2xvc2luZyBEaXNjb3JkXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHR3ZW50eUZvdXJIb3VyOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiMjQtSG91ciBUaW1lc3RhbXBzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiSGlkZXMgY2hhbm5lbHMgd2hlbiBpbiBtaW5pbWFsIG1vZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOb3JtYWxpemVyOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiTm9ybWFsaXplIENsYXNzZXNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJBZGRzIHN0YWJsZSBjbGFzc2VzIHRvIGVsZW1lbnRzIHRvIGhlbHAgdGhlbWVzLiAoZS5nLiBhZGRzIC5kYS1jaGFubmVscyB0byAuY2hhbm5lbHMtSWUybDZBKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBzaG93VG9hc3RzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiU2hvdyBUb2FzdHNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJTaG93cyBhIHNtYWxsIG5vdGlmaWNhdGlvbiBmb3IgaW1wb3J0YW50IGluZm9ybWF0aW9uXCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgYXBwZWFyYW5jZToge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQXBwZWFyYW5jZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHZvaWNlTW9kZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlZvaWNlIE1vZGVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJIaWRlcyBldmVyeXRoaW5nIHRoYXQgaXNuJ3Qgdm9pY2UgY2hhdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBtaW5pbWFsTW9kZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIk1pbmltYWwgTW9kZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkhpZGUgZWxlbWVudHMgYW5kIHJlZHVjZSB0aGUgc2l6ZSBvZiBlbGVtZW50c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBoaWRlQ2hhbm5lbHM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJIaWRlIENoYW5uZWxzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiSGlkZXMgY2hhbm5lbHMgd2hlbiBpbiBtaW5pbWFsIG1vZGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZGFya01vZGU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJEYXJrIE1vZGVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJNYWtlIGNlcnRhaW4gZWxlbWVudHMgZGFyayBieSBkZWZhdWx0XCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yZWRUZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQ29sb3JlZCBUZXh0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiTWFrZSB0ZXh0IGNvbG91ciB0aGUgc2FtZSBhcyByb2xlIGNvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgYWRkb25zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJBZGRvbiBNYW5hZ2VyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgYWRkb25FcnJvcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJTaG93IEFkZG9uIEVycm9yc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlNob3dzIGEgbW9kYWwgd2l0aCBwbHVnaW4vdGhlbWUgZXJyb3JzXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGF1dG9TY3JvbGw6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJTY3JvbGwgVG8gU2V0dGluZ3NcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJBdXRvLXNjcm9sbHMgdG8gYSBwbHVnaW4ncyBzZXR0aW5ncyB3aGVuIHRoZSBidXR0b24gaXMgY2xpY2tlZCAob25seSBpZiBvdXQgb2YgdmlldylcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgYXV0b1JlbG9hZDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkF1dG9tYXRpYyBMb2FkaW5nXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiQXV0b21hdGljYWxseSBsb2FkcywgcmVsb2FkcywgYW5kIHVubG9hZHMgcGx1Z2lucyBhbmQgdGhlbWVzXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGN1c3RvbWNzczoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQ3VzdG9tIENTU1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbWNzczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkN1c3RvbSBDU1NcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJFbmFibGVzIHRoZSBDdXN0b20gQ1NTIHRhYlwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBsaXZlVXBkYXRlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiTGl2ZSBVcGRhdGVcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJVcGRhdGVzIHRoZSBjc3MgYXMgeW91IHR5cGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgc3RhcnREZXRhY2hlZDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlN0YXJ0IERldGFjaGVkXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiQ2xpY2tpbmcgdGhlIEN1c3RvbSBDU1MgdGFiIG9wZW5zIHRoZSBlZGl0b3IgaW4gYSBzZXBhcmF0ZSB3aW5kb3dcIixcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIG5hdGl2ZU9wZW46IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJPcGVuIGluIE5hdGl2ZSBFZGl0b3JcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJDbGlja2luZyB0aGUgQ3VzdG9tIENTUyB0YWIgb3BlbnMgeW91ciBjdXN0b20gY3NzIGluIHlvdXIgbmF0aXZlIGVkaXRvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGRldmVsb3Blcjoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRGV2ZWxvcGVyIFNldHRpbmdzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZGV2ZWxvcGVyTW9kZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkRldmVsb3BlciBNb2RlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiQWxsb3dzIGFjdGl2YXRpbmcgZGVidWdnZXIgd2hlbiBwcmVzc2luZyBGOFwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBjb3B5U2VsZWN0b3I6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJDb3B5IFNlbGVjdG9yXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiQWRkcyBhIFxcXCJDb3B5IFNlbGVjdG9yXFxcIiBvcHRpb24gdG8gY29udGV4dCBtZW51cyB3aGVuIGRldmVsb3BlciBtb2RlIGlzIGFjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHdpbmRvdzoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiV2luZG93IFByZWZlcmVuY2VzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbmN5OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRW5hYmxlIFRyYW5zcGFyZW5jeVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkVuYWJsZXMgdGhlIG1haW4gd2luZG93IHRvIGJlIHNlZS10aHJvdWdoIChyZXF1aXJlcyByZXN0YXJ0KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBmcmFtZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIldpbmRvdyBGcmFtZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkFkZHMgdGhlIG5hdGl2ZSBvcyB3aW5kb3cgZnJhbWUgdG8gdGhlIG1haW4gd2luZG93XCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGVtb3Rlczoge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJFbW90ZXNcIixcclxuICAgICAgICAgICAgICAgIGdlbmVyYWw6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkdlbmVyYWxcIixcclxuICAgICAgICAgICAgICAgICAgICBkb3dubG9hZDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkRvd25sb2FkIEVtb3Rlc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkRvd25sb2FkIGVtb3RlcyBvbmNlIGEgd2VlayB0byBzdGF5IHVwIHRvIGRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZW1vdGVNZW51OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRW1vdGUgTWVudVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlNob3cgVHdpdGNoL0Zhdm91cml0ZSBlbW90ZXMgaW4gZW1vdGUgbWVudVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBoaWRlRW1vamlNZW51OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiSGlkZSBFbW9qaSBNZW51XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiSGlkZXMgRGlzY29yZCdzIGVtb2ppIG1lbnUgd2hlbiB1c2luZyBlbW90ZSBtZW51XCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGF1dG9DYXBzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRW1vdGUgQXV0b2NhcGl0YWxpemF0aW9uXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiQXV0b2NhcGl0YWxpemUgZW1vdGUgY29tbWFuZHNcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgc2hvd05hbWVzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiU2hvdyBOYW1lc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlNob3cgZW1vdGUgbmFtZXMgb24gaG92ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiU2hvdyBFbW90ZSBNb2RpZmllcnNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJFbmFibGUgZW1vdGUgbW9kcyAoZmxpcCwgc3BpbiwgcHVsc2UsIHNwaW4yLCBzcGluMywgMXNwaW4sIDJzcGluLCAzc3BpbiwgdHIsIGJsLCBiciwgc2hha2UsIHNoYWtlMiwgc2hha2UzLCBmbGFwKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBhbmltYXRlT25Ib3Zlcjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkFuaW1hdGUgT24gSG92ZXJcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJPbmx5IGFuaW1hdGUgdGhlIGVtb3RlIG1vZGlmaWVycyBvbiBob3ZlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGNhdGVnb3JpZXM6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkNhdGVnb3JpZXNcIixcclxuICAgICAgICAgICAgICAgICAgICB0d2l0Y2g6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJUd2l0Y2hcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJTaG93IFR3aXRjaCBnbG9iYWwgJiBzdWJzY3JpYmVyIGVtb3Rlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBmZno6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJGcmFua2VyRmFjZVpcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJTaG93IGVtb3RlcyBmcm9tIEZGWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBidHR2OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQmV0dGVyVFRWXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiU2hvdyBlbW90ZXMgZnJvbSBCVFRWXCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIEFkZG9uczoge1xyXG4gICAgICAgICAgICB0aXRsZTogXCJ7e25hbWV9fSB2e3t2ZXJzaW9ufX0gYnkge3thdXRob3J9fVwiLFxyXG4gICAgICAgICAgICBvcGVuRm9sZGVyOiBcIk9wZW4ge3t0eXBlfX0gRm9sZGVyXCIsXHJcbiAgICAgICAgICAgIHJlbG9hZDogXCJSZWxvYWRcIixcclxuICAgICAgICAgICAgcGx1Z2luU2V0dGluZ3M6IFwiU2V0dGluZ3NcIixcclxuICAgICAgICAgICAgd2Vic2l0ZTogXCJXZWJzaXRlXCIsXHJcbiAgICAgICAgICAgIHNvdXJjZTogXCJTb3VyY2VcIixcclxuICAgICAgICAgICAgc2VydmVyOiBcIlN1cHBvcnQgU2VydmVyXCIsXHJcbiAgICAgICAgICAgIGRvbmF0ZTogXCJEb25hdGVcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgRW1vdGVzOiB7XHJcbiAgICAgICAgICAgIGRvd25sb2FkaW5nOiBcIkRvd25sb2FkaW5nIGVtb3RlcyBpbiB0aGUgYmFja2dyb3VuZCBkbyBub3QgcmVsb2FkLlwiLFxyXG4gICAgICAgICAgICBkb3dubG9hZGVkOiBcIkFsbCBlbW90ZXMgc3VjY2Vzc2Z1bGx5IGRvd25sb2FkZWQuXCIsXHJcbiAgICAgICAgICAgIGNsZWFyRW1vdGVzOiBcIkNsZWFyIEVtb3RlIERhdGFcIixcclxuICAgICAgICAgICAgZmF2b3JpdGVBY3Rpb246IFwiRmF2b3JpdGUhXCJcclxuICAgICAgICB9LFxyXG4gICAgICAgIEN1c3RvbUNTUzoge1xyXG4gICAgICAgICAgICBjb25maXJtYXRpb25UZXh0OiBcIllvdSBoYXZlIHVuc2F2ZWQgY2hhbmdlcyB0byB5b3VyIEN1c3RvbSBDU1MuIENsb3NpbmcgdGhpcyB3aW5kb3cgd2lsbCBsb3NlIGFsbCB0aG9zZSBjaGFuZ2VzLlwiLFxyXG4gICAgICAgICAgICB1cGRhdGU6IFwiVXBkYXRlXCIsXHJcbiAgICAgICAgICAgIHNhdmU6IFwiU2F2ZVwiLFxyXG4gICAgICAgICAgICBvcGVuTmF0aXZlOiBcIk9wZW4gaW4gU3lzdGVtIEVkaXRvclwiLFxyXG4gICAgICAgICAgICBvcGVuRGV0YWNoZWQ6IFwiRGV0YWNoIFdpbmRvd1wiLFxyXG4gICAgICAgICAgICBzZXR0aW5nczogXCJFZGl0b3IgU2V0dGluZ3NcIixcclxuICAgICAgICAgICAgZWRpdG9yVGl0bGU6IFwiQ3VzdG9tIENTUyBFZGl0b3JcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgUHVibGljU2VydmVyczoge1xyXG4gICAgICAgICAgICBidXR0b246IFwicHVibGljXCIsXHJcbiAgICAgICAgICAgIGpvaW46IFwiSm9pblwiLFxyXG4gICAgICAgICAgICBqb2luaW5nOiBcIkpvaW5pbmdcIixcclxuICAgICAgICAgICAgam9pbmVkOiBcIkpvaW5lZFwiLFxyXG4gICAgICAgICAgICBsb2FkaW5nOiBcIkxvYWRpbmdcIixcclxuICAgICAgICAgICAgbG9hZE1vcmU6IFwiTG9hZCBNb3JlXCIsXHJcbiAgICAgICAgICAgIG5vdENvbm5lY3RlZDogXCJOb3QgY29ubmVjdGVkIHRvIERpc2NvcmRTZXJ2ZXJzLmNvbSFcIixcclxuICAgICAgICAgICAgc2VhcmNoOiBcIlNlYXJjaFwiLFxyXG4gICAgICAgICAgICBjb25uZWN0OiBcIkNvbm5lY3RcIixcclxuICAgICAgICAgICAgcmVjb25uZWN0OiBcIlJlY29ubmVjdFwiLFxyXG4gICAgICAgICAgICBjYXRlZ29yaWVzOiBcIkNhdGVnb3JpZXNcIixcclxuICAgICAgICAgICAgY29ubmVjdGlvbjogXCJDb25uZWN0ZWQgYXM6IHt7dXNlcm5hbWV9fSN7e2Rpc2NyaW1pbmF0b3J9fVwiLFxyXG4gICAgICAgICAgICByZXN1bHRzOiBcIlNob3dpbmcge3tzdGFydH19LXt7ZW5kfX0gb2Yge3t0b3RhbH19IHJlc3VsdHMgaW4ge3tjYXRlZ29yeX19XCIsXHJcbiAgICAgICAgICAgIHF1ZXJ5OiBcImZvciB7e3F1ZXJ5fX1cIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgTW9kYWxzOiB7XHJcbiAgICAgICAgICAgIGNvbmZpcm1DbG9zZTogXCJBcmUgWW91IFN1cmU/XCIsXHJcbiAgICAgICAgICAgIG9rYXk6IFwiT2theVwiLFxyXG4gICAgICAgICAgICBjYW5jZWw6IFwiQ2FuY2VsXCIsXHJcbiAgICAgICAgICAgIG5hbWU6IFwiTmFtZVwiLFxyXG4gICAgICAgICAgICBtZXNzYWdlOiBcIk1lc3NhZ2VcIixcclxuICAgICAgICAgICAgZXJyb3I6IFwiRXJyb3JcIixcclxuICAgICAgICAgICAgYWRkb25FcnJvcnM6IFwiQWRkb24gRXJyb3JzXCJcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgZXM6IHtcclxuICAgICAgICBDb2xsZWN0aW9uczoge1xyXG4gICAgICAgICAgICBzZXR0aW5nczoge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJBanVzdGVzXCIsXHJcbiAgICAgICAgICAgICAgICBhZGRvbnM6IHtcclxuICAgICAgICAgICAgICAgICAgICBhZGRvbkVycm9yczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIk1vc3RyYXIgRXJyb3JlcyBkZSBBZGRvbnNcIlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH0sXHJcbiAgICBzdjoge1xyXG4gICAgICAgIFBhbmVsczoge1xyXG4gICAgICAgICAgICBwbHVnaW5zOiBcIlRpbGzDpGdnXCIsXHJcbiAgICAgICAgICAgIHRoZW1lczogXCJUZW1hblwiLFxyXG4gICAgICAgICAgICBjdXN0b21jc3M6IFwiRWdlbiBDU1NcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgQ29sbGVjdGlvbnM6IHtcclxuICAgICAgICAgICAgc2V0dGluZ3M6IHtcclxuICAgICAgICAgICAgICAgIG5hbWU6IFwiSW5zdMOkbGxuaW5nYXJcIixcclxuICAgICAgICAgICAgICAgIGdlbmVyYWw6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkdlbmVyZWxsdFwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGVtb3Rlczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkVtb3Rlc3N5c3RlbVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkFrdGl2ZXJhciBCRCdzIGVtb3Rlc3N5c3RlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBwdWJsaWNTZXJ2ZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiUHVibGlrYSBTZXJ2cmFyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiVmlzYSBrbmFwcGVuIGbDtnIgcHVibGlrYSBzZXJ2cmFyXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHZvaWNlRGlzY29ubmVjdDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkzDpG1uYSBSw7ZzdFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkzDpG1uYSByw7ZzdHNhbXRhbCBuw6RyIERpc2NvcmQgc3TDpG5ncyBuZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgdHdlbnR5Rm91ckhvdXI6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCIyNC1UaW1tYXJzIFRpZHNzdMOkbXBlbFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlZpc2FyIDI0LXRpbW1hcnMgdGlkc3N0w6RtcGxhciBpc3TDpGxsZXQgZsO2ciBBTS9QTVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBjbGFzc05vcm1hbGl6ZXI6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJOb3JtYWxpc2VyYSBLbGFzc2VyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiTMOkZ2dlciB0aWxsIHN0YXRpc2thIGtsYXNzZXIgZsO2ciBhdHQgdW5kZXJsw6R0dGEgdGVtYW4gKGV4LiBsw6RnZ2VyIHRpbGwgLmRhLWNoYW5uZWxzIHDDpSAuY2hhbm5lbHMtSWUybDZBKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBzaG93VG9hc3RzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiVmlzYSBUb2FzdHNcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJWaXNhciBlbiBsaXRlbiBub3RpZmljYXRpb24gZsO2ciB2aWt0aWcgaW5mb3JtYXRpb25cIlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBhcHBlYXJhbmNlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJVdHNlZW5kZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHZvaWNlTW9kZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlLDtnN0bMOkZ2VcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJHw7ZtbWVyIGFsbHQgZsO2cnV0b20gcsO2c3RjaGF0dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBtaW5pbWFsTW9kZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIk1pbmltYWx0IEzDpGdlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiR8O2bW1lciBvY2ggZsO2cm1pbnNrYXIga29tcG9uZW50ZXJcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgaGlkZUNoYW5uZWxzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiR8O2bSBLYW5hbGVyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiR8O2bW1lciBrYW5hbGVyIG7DpHIgbWluaW1hbHQgbMOkZ2Ugw6RyIGFrdGl2ZXJhdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBkYXJrTW9kZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIk3DtnJrdCBMw6RnZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkfDtnIgdmlzc2Ega29tcG9uZW50ZXIgbcO2cmthXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yZWRUZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRsOkcmdhZCBUZXh0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiR8O2ciBhdHQgdGV4dCBmw6VyIHNhbW1hIGbDpHJnIHNvbSByb2xsZsOkcmdlblwiXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGFkZG9uczoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiVGlsbMOkZ2dzaGFudGVyYXJlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgYWRkb25FcnJvcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJWaXNhIHRpbGzDpGdnc2ZlbFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlZpc2FyIGVuIG1vZGFsIG1lZCB0aWxsw6RnZy0gb2NoIHRlbWFmZWxcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgYXV0b1Njcm9sbDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlNrcm9sbGEgdGlsbCBpbnN0w6RsbG5pbmdhciBTY3JvbGwgVG8gU2V0dGluZ3NcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJTa3JvbGxhciBhdXRvbWF0aXNrcyB0aWxsIGV0dCB0aWxsw6RnZ3MgaW5zdMOkbGxuaW5nYXIgbsOkciBrbmFwcGVuIMOkciB0cnlja3QgKGVuZGFzdCBvbSBpbnN0w6RsbG5pbmdhcm5hIMOkciB1dGFuZsO2ciB2eSlcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgYXV0b1JlbG9hZDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkF1dG9tYXRpc2sgTGFkZG5pbmdcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJMYWRkYXIgYXV0b21hdGlzayBpbiwgb20gb2NoIHVyIHRpbGzDpGdnIG9jaCB0ZW1hblwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBjdXN0b21jc3M6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkVnZW4gQ1NTXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgY3VzdG9tY3NzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRWdlbiBDU1NcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJBa3RpdmVyYXIgXFxcIkVnZW4gQ1NTXFxcIi1mbGlrZW5cIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgbGl2ZVVwZGF0ZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlVwcGRhdGVyYSBEaXJla3RcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJVcHBkYXRlcmFyIGNzcyBhbGx0ZWZ0ZXJzb20gZHUgc2tyaXZlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBzdGFydERldGFjaGVkOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiU3RhcnRhIEZyw6Vua29wcGxhZFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIsOWcHBuYXIgQ1NTIHJlZGlnZXJhcmVuIGkgZXR0IHNlcGFyYXQgZsO2bnN0ZXIgbsOkciBcXFwiRWdlbiBDU1NcXFwiLWZsaWtlbiBrbGlja2FzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBuYXRpdmVPcGVuOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiw5ZwcG5hIEkgU3RhbmRhcmRyZWRpZ2VyYXJlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiw5ZwcG5hciBDU1MgZmlsZW4gaSBvcGVyYXRpdnN5c3RlbWV0cyBzdGFuZGFyZHJlZGlnZXJhcmUgbsOkciBcXFwiRWdlbiBDU1NcXFwiLWZsaWtlbiBrbGlja2FzXCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZGV2ZWxvcGVyOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJVdHZlY2tsYXJpbnN0w6RsbG5pbmdhclwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGRldmVsb3Blck1vZGU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJVdHZlY2tsYXJsw6RnZVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkfDtnIgZGV0IG3DtmpsaWd0IGF0dCBha3RpdmVyYSBhdmx1c2FyZSBtZWQgRjhcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgY29weVNlbGVjdG9yOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiS29waWVyYSBTZWxla3RvclwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkzDpGdnZXIgdGlsbCB2YWxldCBcXFwiS29waWVyYSBTZWxla3RvclxcXCIgaSBrb250ZXh0IG1lbnluIG7DpHIgdXR2ZWNrbGFybMOkZ2Ugw6RyIGFrdGl2ZXJhdFwiXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHdpbmRvdzoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRsO2bnN0ZXJpbnN0w6RsbG5pbmdhclwiLFxyXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zcGFyZW5jeToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkFrdGl2ZXJhIEdlbm9tc2tpbmxpZ2hldFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkfDtnIgYXR0IGh1dnVkZsO2bnN0cmV0IGJsaXIgZ2Vub21za2lubGlndCAoa3LDpHZlciBvbXN0YXJ0KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBmcmFtZToge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkbDtm5zdGVycmFtXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiTMOkZ2dlciB0aWxsIG9wZXJhdGl2c3lzdGVtZXRzIHN0YW5kYXJkIGbDtm5zdGVycmFtIHJ1bnQgaHV2dWRmw7Zuc3RyZXRcIlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZW1vdGVzOiB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcIkVtb3Rlc1wiLFxyXG4gICAgICAgICAgICAgICAgZ2VuZXJhbDoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiR2VuZXJlbGx0XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZG93bmxvYWQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJMYWRkYSBOZXIgRW1vdGVzXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiTGFkZGEgbmVyIGVtb3RlcyBlbiBnw6VuZyBpIHZlY2thbiBmw7ZyIGF0dCBow6VsbGEgc2lnIHVwcGRhdGVyYWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZW1vdGVNZW51OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiRW1vdGUgTWVueVwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlZpc2EgVHdpdGNoL0Zhdm9yaXQgZW1vdGVzIGkgZW1vdGUgbWVueVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBoaWRlRW1vamlNZW51OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiR8O2bW1lciBFbW9qaSBNZW55XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiR8O2bW1lciBEaXNjb3JkJ3MgZW1vamkgbWVueSBuw6RyIGVtb3RlIG1lbnkgw6RyIGFrdGl2ZXJhZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBhdXRvQ2Fwczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkF1dG9tYXRpc2t0IFN0b3IgQm9rc3RhdiBJIEVtb3Rlc1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkfDtnIgYXV0b21hdGlza3Qgc3RvciBib2tzdGF2IGkgZW1vdGUga29tbWFuZG9uXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHNob3dOYW1lczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIlZpc2EgbmFtblwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlZpc2EgbmFtbiBuw6RyIG11c2VuIGjDpWxscyDDtnZlciBlbiBlbW90ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBtb2RpZmllcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJWaXNhIEVtb3RlIE1vZGlmaWVyYXJlXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiQWt0aXZlcmEgZW1vdGUgbW9kaWZpZXJhcmUgKGZsaXAsIHNwaW4sIHB1bHNlLCBzcGluMiwgc3BpbjMsIDFzcGluLCAyc3BpbiwgM3NwaW4sIHRyLCBibCwgYnIsIHNoYWtlLCBzaGFrZTIsIHNoYWtlMywgZmxhcClcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZU9uSG92ZXI6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJBbmltZXJhIE7DpHIgTXVzZW4gSMOlbGxzIMOWdmVyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiQW5pbWVyYSBlbmRhc3QgZW1vdGUgbWlkaWZlcmFyZSBuw6RyIG11c2VuIGjDpWxscyDDtnZlciBlbW90ZW5cIlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBjYXRlZ29yaWVzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCJLYXRlZ29yaWVyXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgdHdpdGNoOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiVHdpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiVmlzYSBUd2l0Y2ggZ2xvYmFsICYgcHJlbnVtZXJhbnQgZW1vdGVzXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGZmejoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkZyYW5rZXJGYWNlWlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIlZpc2EgZW1vdGVzIGZyw6VuIEZGWlwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBidHR2OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQmV0dGVyVFRWXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiVmlzYSBlbW90ZXMgZnLDpW4gQlRUVlwiXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBFbW90ZXM6IHtcclxuICAgICAgICAgICAgZG93bmxvYWRpbmc6IFwiTGFkZGFyIG5lciBlbW90ZXMgaSBiYWNrZ3J1bmRlbiwgbGFkZGEgaW50ZSBvbVwiLFxyXG4gICAgICAgICAgICBkb3dubG9hZGVkOiBcIkFsbGEgZW1vdGVzIGxhZGRhZGVzIG5lciB1dGFuIHByb2JsZW0uXCIsXHJcbiAgICAgICAgICAgIGNsZWFyRW1vdGVzOiBcIlJlbnNhIEVtb3RlIERhdGFcIixcclxuICAgICAgICAgICAgZmF2b3JpdGVBY3Rpb246IFwiRmF2b3JpdCFcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgQ3VzdG9tQ1NTOiB7XHJcbiAgICAgICAgICAgIGNvbmZpcm1hdGlvblRleHQ6IFwiRHUgaGFyIG9zcGFyYWRlIMOkbmRyaW5nYXIgYXYgZWduYSBDU1M6ZW4uIEFsbGEgw6RuZHJpbmdhciBrb21tZXIgZsO2cnN2aW5uYSBvbSBkdSBzdMOkbmdlciBkZXQgaMOkciBmw7Zuc3RyZXRcIixcclxuICAgICAgICAgICAgdXBkYXRlOiBcIlVwcGRhdGVyYVwiLFxyXG4gICAgICAgICAgICBzYXZlOiBcIlNwYXJhXCIsXHJcbiAgICAgICAgICAgIG9wZW5OYXRpdmU6IFwiw5ZwcG5hIEkgU3RhbmRhcmRyZWRpZ2VyYXJlXCIsXHJcbiAgICAgICAgICAgIG9wZW5EZXRhY2hlZDogXCJLb3BwbGEgTG9zcyBGw7Zuc3RlclwiLFxyXG4gICAgICAgICAgICBzZXR0aW5nczogXCJJbnN0w6RsbG5pbmdhciBmw7ZyIHJlZGlnZXJhcmVcIixcclxuICAgICAgICAgICAgZWRpdG9yVGl0bGU6IFwiRWdlbiBDU1MgUmVkaWdlcmFyZVwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBQdWJsaWNTZXJ2ZXJzOiB7XHJcbiAgICAgICAgICAgIGJ1dHRvbjogXCJQdWJsaWtcIixcclxuICAgICAgICAgICAgam9pbjogXCJHw6UgbWVkXCIsXHJcbiAgICAgICAgICAgIGpvaW5pbmc6IFwiR8OlciBtZWRcIixcclxuICAgICAgICAgICAgam9pbmVkOiBcIkdpY2sgbWVkXCIsXHJcbiAgICAgICAgICAgIGxvYWRpbmc6IFwiTGFkZGFyXCIsXHJcbiAgICAgICAgICAgIGxvYWRNb3JlOiBcImxhZGRhIG1lclwiLFxyXG4gICAgICAgICAgICBub3RDb25uZWN0ZWQ6IFwiSW5nZW4gYW5zbHV0bmluZyB0aWxsIERpc2NvcmRTZXJ2ZXJzLmNvbSFcIixcclxuICAgICAgICAgICAgc2VhcmNoOiBcIlPDtmtcIixcclxuICAgICAgICAgICAgY29ubmVjdDogXCJBbnNsdXRcIixcclxuICAgICAgICAgICAgcmVjb25uZWN0OiBcIsOFdGVyYW5zbHV0XCIsXHJcbiAgICAgICAgICAgIGNhdGVnb3JpZXM6IFwiS2F0ZWdvcmllclwiLFxyXG4gICAgICAgICAgICBjb25uZWN0aW9uOiBcIkFuc2x1dGVuIHNvbToge3t1c2VybmFtZX19I3t7ZGlzY3JpbWluYXRvcn19XCIsXHJcbiAgICAgICAgICAgIHJlc3VsdHM6IFwiVmlzYXIge3tzdGFydH19LXt7ZW5kfX0gYXYge3t0b3RhbH19IHJlc3VsdGF0IGkge3tjYXRlZ29yeX19XCIsXHJcbiAgICAgICAgICAgIHF1ZXJ5OiBcImbDtnIge3txdWVyeX19XCJcclxuICAgICAgICB9LFxyXG4gICAgICAgIE1vZGFsczoge1xyXG4gICAgICAgICAgICBjb25maXJtQ2xvc2U6IFwiw4RyIGR1IHPDpGtlcj9cIixcclxuICAgICAgICAgICAgb2theTogXCJPa2VqXCIsXHJcbiAgICAgICAgICAgIGNhbmNlbDogXCJBdmJyeXRcIixcclxuICAgICAgICAgICAgbmFtZTogXCJOYW1uXCIsXHJcbiAgICAgICAgICAgIG1lc3NhZ2U6IFwiTWVkZGVsYW5kZVwiLFxyXG4gICAgICAgICAgICBlcnJvcjogXCJGZWxcIixcclxuICAgICAgICAgICAgYWRkb25FcnJvcnM6IFwiVGlsbMOkZ2dzZmVsXCJcclxuICAgICAgICB9XHJcbiAgICB9LFxyXG4gICAgamE6IHtcclxuICAgICAgICBQYW5lbHM6IHtcclxuICAgICAgICAgICAgcGx1Z2luczogXCLjg5fjg6njgrDjgqTjg7NcIixcclxuICAgICAgICAgICAgdGhlbWVzOiBcIuODhuODvOODnlwiLFxyXG4gICAgICAgICAgICBjdXN0b21jc3M6IFwi44Kr44K544K/44OgIENTU1wiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBDb2xsZWN0aW9uczoge1xyXG4gICAgICAgICAgICBzZXR0aW5nczoge1xyXG4gICAgICAgICAgICAgICAgbmFtZTogXCJCROioreWumlwiLFxyXG4gICAgICAgICAgICAgICAgZ2VuZXJhbDoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwi5YWo6IisXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZW1vdGVzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQkTntbXmloflrZfjgrfjgrnjg4bjg6BcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCJCZXR0ZXJEaXNjb3Jk44Gu57W15paH5a2X44K344K544OG44Og44KS5pyJ5Yq544Gr44GX44G+44GZ44CCXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHB1YmxpY1NlcnZlcnM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCLlhazplovjgrXjg7zjg5Djg5zjgr/jg7NcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCLlhazplovjgrXjg7zjg5Djg5zjgr/jg7PjgpLooajnpLrjgZfjgb7jgZlcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgdm9pY2VEaXNjb25uZWN0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwi44Oc44Kk44K544OB44Oj44Oz44ON44Or6Ieq5YuV5YiH5patXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiRGlzY29yZOOCkue1guS6huOBmeOCi+mam+OAgeiHquWLleeahOOBq+ODnOOCpOOCueODgeODo+ODs+ODjeODq+OBi+OCieWIh+aWreOBl+OBvuOBmeOAglwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICB0d2VudHlGb3VySG91cjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIjI05pmC6ZaT6KGo6KiYXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwi5pmC6ZaT44KSMjTmmYLplpPooajoqJjjgavlpInmm7TjgZfjgb7jgZnjgIJcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOb3JtYWxpemVyOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwi44Kv44Op44K55qiZ5rqW5YyWXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwi5YCk44GM5aSJ5YuV44GX44Gq44GEQ1NT44Kv44Op44K544KS6L+95Yqg44GX44G+44GZ44CCXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHNob3dUb2FzdHM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCLjg4jjg7zjgrnjg4jooajnpLpcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCLph43opoHjgarmg4XloLHjgpLlsI/jgZXjgarpgJrnn6XjgajjgZfjgabooajnpLrjgZfjgb7jgZnjgIJcIlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBhcHBlYXJhbmNlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCLlpJboprNcIixcclxuICAgICAgICAgICAgICAgICAgICB2b2ljZU1vZGU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCLjg5zjgqTjgrnjg6Ljg7zjg4lcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCLjg5zjgqTjgrnjg4Hjg6Pjg7Pjg43jg6vku6XlpJbjgpLooajnpLrjgZfjgarjgYTjgojjgYbjgavjgZfjgb7jgZlcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgbWluaW1hbE1vZGU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCLjgrPjg7Pjg5Hjgq/jg4jjg6Ljg7zjg4lcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCLooajnpLrjgpLjgrPjg7Pjg5Hjgq/jg4jjgavjgZfjgb7jgZnjgIJcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgaGlkZUNoYW5uZWxzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwi44OB44Oj44Oz44ON44Or44Oq44K544OI44KS6Z2e6KGo56S6XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwi44Kz44Oz44OR44Kv44OI44Oi44O844OJ44Gu44Go44GN44Gv44CB44OB44Oj44Oz44ON44Or44Oq44K544OI44KS6KGo56S644GX44G+44Gb44KTXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGRhcmtNb2RlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwi44OA44O844Kv44Oi44O844OJXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwi44OA44O844Kv44Oi44O844OJ44KS5pyJ5Yq544Gr44GX44G+44GZXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yZWRUZXh0OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwi44Kr44Op44O844OG44Kt44K544OIXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwi44OG44Kt44K544OI44Kr44Op44O844KS44K144O844OQ44Or44O844Or44Gu6Imy44Go5ZCM44GY44Gr44GX44G+44GZ44CCXCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgYWRkb25zOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgbmFtZTogXCLjgqLjg4njgqrjg7Pjg57jg43jg7zjgrjjg6NcIixcclxuICAgICAgICAgICAgICAgICAgICBhZGRvbkVycm9yczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIuOCouODieOCquODs+OCqOODqeODvOOBruihqOekulwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIuODl+ODqeOCsOOCpOODsy/jg4bjg7zjg57jgafnmbrnlJ/jgZfjgZ/jgqjjg6njg7zjgpLooajnpLpcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgYXV0b1Njcm9sbDoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIuioreWumuOBvuOBp+OCueOCr+ODreODvOODq1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIuODl+ODqeOCsOOCpOODs+OBruioreWumuOBjOWPjuOBvuOCieOBquOBhOWgtOWQiOOAgeiHquWLleOBp+OCueOCr+ODreODvOODq+OBl+OBvuOBmVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBhdXRvUmVsb2FkOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwi6Ieq5YuV44Oq44Ot44O844OJXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwi44OX44Op44Kw44Kk44Oz44O744OG44O844Oe44KS6Ieq5YuV44Gn44Ot44O844OJ44O744Ki44Oz44Ot44O844OJ44O744Oq44Ot44O844OJ44GX44G+44GZXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGN1c3RvbWNzczoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwi44Kr44K544K/44OgIENTU1wiLFxyXG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbWNzczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIuOCq+OCueOCv+ODoCBDU1NcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCLjgqvjgrnjgr/jg6AgQ1NTIOOCv+ODluOCkuacieWKueOBq+OBl+OBvuOBmVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBsaXZlVXBkYXRlOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwi6Ieq5YuV5pu05pawXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwi44Kz44O844OJ44KS6Ieq5YuV5YaN6Kqt44G/6L6844G/44GZ44KLXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0RGV0YWNoZWQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCLjg4fjgr/jg4Pjg4FcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCLjgqvjgrnjgr/jg6BDU1Pjgqjjg4fjgqPjgr/jg7zjgpLjgqbjgqPjg7Pjg4njgqbjgavni6znq4vjgZXjgZvjgb7jgZlcIixcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIG5hdGl2ZU9wZW46IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCLlpJbpg6jjgqjjg4fjgqPjgr/jgpLotbfli5VcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCLjgqvjgrnjgr/jg6BDU1PjgpLlpJbpg6jjga7jgqjjg4fjgqPjgr/jgafotbfli5XjgZfjgb7jgZlcIlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBkZXZlbG9wZXI6IHtcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIumWi+eZuuiAheioreWumlwiLFxyXG4gICAgICAgICAgICAgICAgICAgIGRldmVsb3Blck1vZGU6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCLplovnmbrogIXjg6Ljg7zjg4lcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCLjg4fjg5Djg4PjgrDjg6Ljg7zjg4njgpLmnInlirnjgavjgZfjgb7jgZko44OH44OQ44OD44Ks6LW35YuV44GvRjgpXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGNvcHlTZWxlY3Rvcjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIuOCu+ODrOOCr+OCv+ODvOOCs+ODlOODvFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIumWi+eZuuiAheODouODvOODieOBjOacieWKueaZguOBq+OAgeOCs+ODs+ODhuOCreOCueODiOODoeODi+ODpeODvOOBq1xcXCJDb3B5IFNlbGVjdG9yXFxcIuOCkui/veWKoOOBl+OBvuOBmVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIHdpbmRvdzoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwi44Km44Kj44Oz44OJ44Km6Kit5a6aXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNwYXJlbmN5OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwi6YCP6YGO44KS5pyJ5Yq5XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiRGlzY29yZOOBruODoeOCpOODs+OCpuOCo+ODs+ODieOCpuOCkumAj+mBjuOBl+OBvuOBmSjopoHlho3otbfli5UpXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGZyYW1lOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwi44Km44Kj44Oz44OJ44Km44OV44Os44O844Og6KGo56S6XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiT1PjgavjgYLjgo/jgZvjgZ/jg5Xjg6zjg7zjg6DjgpLov73liqDjgZfjgb7jgZlcIlxyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgZW1vdGVzOiB7XHJcbiAgICAgICAgICAgICAgICBuYW1lOiBcIue1teaWh+Wtl1wiLFxyXG4gICAgICAgICAgICAgICAgZ2VuZXJhbDoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwi5YWo6IisXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgZG93bmxvYWQ6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCLntbXmloflrZfjgpLjg4Djgqbjg7Pjg63jg7zjg4lcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCLntbXmloflrZfjgpLjg4Djgqbjg7Pjg63jg7zjg4njgZfjgb7jgZkoMemAsemWk+OBlOOBqClcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZW1vdGVNZW51OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwi57W15paH5a2X44Oh44OL44Ol44O8XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiVHdpdGNoL+OBiuawl+OBq+WFpeOCiuOBrue1teaWh+Wtl+OCkuihqOekuuOBl+OBvuOBmVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBoaWRlRW1vamlNZW51OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwi57W15paH5a2X44Oh44OL44Ol44O844KS6Z2e6KGo56S6XCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiRGlzY29yZOaomea6luOBrue1teaWh+Wtl+ODoeODi+ODpeODvOOCkumdnuihqOekuuOBq+OBl+OBvuOBmVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBhdXRvQ2Fwczoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIue1teaWh+Wtl+iHquWLleijnOWujFwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIue1teaWh+Wtl+OCkuiHquWLleOBp+ijnOWujOOBl+OBvuOBmVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBzaG93TmFtZXM6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogXCLlkI3liY3jgpLooajnpLpcIixcclxuICAgICAgICAgICAgICAgICAgICAgICAgbm90ZTogXCLjg5vjg5Djg7zmmYLjgavntbXmloflrZfjga7lkI3liY3jgpLooajnpLrjgZfjgb7jgZlcIlxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICAgICAgbW9kaWZpZXJzOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQmV0dGVyRGlzY29yZOe1teaWh+Wtl+OCkuihqOekulwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkJldHRlckRpc2NvcmTjga7ntbXmloflrZfjgpLmnInlirnljJbjgZfjgb7jgZkoZmxpcCwgc3BpbiwgcHVsc2UsIHNwaW4yLCBzcGluMywgMXNwaW4sIDJzcGluLCAzc3BpbiwgdHIsIGJsLCBiciwgc2hha2UsIHNoYWtlMiwgc2hha2UzLCBmbGFwKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBhbmltYXRlT25Ib3Zlcjoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIuODm+ODkOODvOaZguOBq+OCouODi+ODoeODvOOCt+ODp+ODs1wiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIuODm+ODkOODvOaZguOBq+OCouODi+ODoeODvOOCt+ODp+ODs+OBl+OBvuOBmSjjgqLjg4vjg6Hjg7zjgrfjg6fjg7PntbXmloflrZfpmZDlrpopXCJcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgY2F0ZWdvcmllczoge1xyXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IFwi44Kr44OG44K044OqXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgdHdpdGNoOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiVHdpdGNoXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiVHdpdGNo44Gr55m76Yyy44GV44KM44Gm44GE44KL57W15paH5a2X44KS6KGo56S644GX44G+44GZXCJcclxuICAgICAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgICAgIGZmejoge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiBcIkZyYW5rZXJGYWNlWlwiLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBub3RlOiBcIkZGWuOBq+eZu+mMsuOBleOCjOOBpuOBhOOCi+e1teaWh+Wtl+OCkuihqOekuuOBl+OBvuOBmVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgICAgICBidHR2OiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IFwiQmV0dGVyVFRWXCIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5vdGU6IFwiQlRUVuOBq+eZu+mMsuOBleOCjOOBpuOBhOOCi+e1teaWh+Wtl+OCkuihqOekuuOBl+OBvuOBmVwiXHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBFbW90ZXM6IHtcclxuICAgICAgICAgICAgZG93bmxvYWRpbmc6IFwi57W15paH5a2X44KS44OA44Km44Oz44Ot44O844OJ5Lit4oCmXCIsXHJcbiAgICAgICAgICAgIGRvd25sb2FkZWQ6IFwi44GZ44G544Gm44Gu57W15paH5a2X44Gu44OA44Km44Oz44Ot44O844OJ44GM5a6M5LqG44GX44G+44GX44GfXCIsXHJcbiAgICAgICAgICAgIGNsZWFyRW1vdGVzOiBcIue1teaWh+Wtl+ODh+ODvOOCv+OCkuOCr+ODquOCouOBl+OBvuOBmVwiLFxyXG4gICAgICAgICAgICBmYXZvcml0ZUFjdGlvbjogXCLjgYrmsJfjgavlhaXjgoohIVwiXHJcbiAgICAgICAgfSxcclxuICAgICAgICBDdXN0b21DU1M6IHtcclxuICAgICAgICAgICAgY29uZmlybWF0aW9uVGV4dDogXCJEaXNjb3Jk44KS57WC5LqG44GZ44KL44Go44CB5L+d5a2Y44GV44KM44Gm44GE44Gq44GE44Kr44K544K/44OgQ1NT44Gv56C05qOE44GV44KM44G+44GZXCIsXHJcbiAgICAgICAgICAgIHVwZGF0ZTogXCLmm7TmlrBcIixcclxuICAgICAgICAgICAgc2F2ZTogXCLkv53lrZhcIixcclxuICAgICAgICAgICAgb3Blbk5hdGl2ZTogXCLlpJbpg6jjgqjjg4fjgqPjgr/jgafplovjgY9cIixcclxuICAgICAgICAgICAgb3BlbkRldGFjaGVkOiBcIuWIpeOCpuOCo+ODs+ODieOCpuOBp+mWi+OBj1wiLFxyXG4gICAgICAgICAgICBzZXR0aW5nczogXCLjgqjjg4fjgqPjgr/jg7zoqK3lrppcIixcclxuICAgICAgICAgICAgZWRpdG9yVGl0bGU6IFwi44Kr44K544K/44OgIENTUyDjgqjjg4fjgqPjgr/jg7xcIlxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgUHVibGljU2VydmVyczoge1xyXG4gICAgICAgICAgICBidXR0b246IFwi5YWs6ZaL44K144O844OQXCIsXHJcbiAgICAgICAgICAgIGpvaW46IFwi5Y+C5YqgXCIsXHJcbiAgICAgICAgICAgIGpvaW5pbmc6IFwi5Y+C5Yqg5LitXCIsXHJcbiAgICAgICAgICAgIGpvaW5lZDogXCLlj4LliqDmuIjjgb9cIixcclxuICAgICAgICAgICAgbG9hZGluZzogXCLoqq3jgb/ovrzjgb/kuK1cIixcclxuICAgICAgICAgICAgbG9hZE1vcmU6IFwi44KC44Gj44Go6Kqt44G/6L6844KAXCIsXHJcbiAgICAgICAgICAgIG5vdENvbm5lY3RlZDogXCJEaXNjb3JkU2VydmVycy5jb23jgavmjqXntprjgafjgY3jgb7jgZvjgpPjgafjgZfjgZ9cIixcclxuICAgICAgICAgICAgc2VhcmNoOiBcIuaknOe0olwiLFxyXG4gICAgICAgICAgICBjb25uZWN0OiBcIuaOpee2mlwiLFxyXG4gICAgICAgICAgICByZWNvbm5lY3Q6IFwi5YaN5o6l57aaXCIsXHJcbiAgICAgICAgICAgIGNhdGVnb3JpZXM6IFwi44Kr44OG44K044OqXCIsXHJcbiAgICAgICAgICAgIGNvbm5lY3Rpb246IFwi5o6l57aa5riI44G/OiB7e3VzZXJuYW1lfX0je3tkaXNjcmltaW5hdG9yfX1cIixcclxuICAgICAgICAgICAgcmVzdWx0czogXCLjgqvjg4bjgrTjg6p7e2NhdGVnb3J5fX0gIOWQiOioiHt7dG90YWx9feS4rSB7e3N0YXJ0fX0te3tlbmR9feOCkuihqOekuuS4rVwiLFxyXG4gICAgICAgICAgICBxdWVyeTogXCLjgq/jgqjjg6rjg7w6e3txdWVyeX19XCJcclxuICAgICAgICB9LFxyXG4gICAgICAgIE1vZGFsczoge1xyXG4gICAgICAgICAgICBjb25maXJtQ2xvc2U6IFwiRGlzY29yZOOCkue1guS6huOBl+OBvuOBmeOBiz9cIixcclxuICAgICAgICAgICAgb2theTogXCLjga/jgYRcIixcclxuICAgICAgICAgICAgY2FuY2VsOiBcIuOBhOOBhOOBiFwiLFxyXG4gICAgICAgICAgICBuYW1lOiBcIuWQjeWJjVwiLFxyXG4gICAgICAgICAgICBtZXNzYWdlOiBcIuODoeODg+OCu+ODvOOCuFwiLFxyXG4gICAgICAgICAgICBlcnJvcjogXCLjgqjjg6njg7xcIixcclxuICAgICAgICAgICAgYWRkb25FcnJvcnM6IFwi44Ki44OJ44Kq44Oz44Ko44Op44O8XCJcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn07XHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/data/strings.js\n"); /***/ }), @@ -383,7 +383,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _componentpatcher__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./componentpatcher */ \"./src/modules/componentpatcher.js\");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logger */ \"./src/modules/logger.js\");\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _dommanager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dommanager */ \"./src/modules/dommanager.js\");\n/* harmony import */ var _pluginmanager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pluginmanager */ \"./src/modules/pluginmanager.js\");\n/* harmony import */ var _thememanager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./thememanager */ \"./src/modules/thememanager.js\");\n/* harmony import */ var _settingsmanager__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./settingsmanager */ \"./src/modules/settingsmanager.js\");\n/* harmony import */ var builtins__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! builtins */ \"./src/builtins/builtins.js\");\n/* harmony import */ var _ui_modals__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../ui/modals */ \"./src/ui/modals.js\");\n/* harmony import */ var _reactcomponents__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./reactcomponents */ \"./src/modules/reactcomponents.js\");\n/* harmony import */ var _datastore__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./datastore */ \"./src/modules/datastore.js\");\n/* harmony import */ var _discordmodules__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./discordmodules */ \"./src/modules/discordmodules.js\");\n\n\n // import EmoteModule from \"./emotes\";\n// import QuickEmoteMenu from \"../builtins/emotemenu\";\n\n\n\n\n\n\n\n\n\n\nconst GuildClasses = _discordmodules__WEBPACK_IMPORTED_MODULE_11__[\"default\"].GuildClasses;\n\nfunction Core() {}\n\nCore.prototype.setConfig = function (config) {\n Object.assign(data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"], config);\n};\n\nCore.prototype.init = async function () {\n if (data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].version < data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].minSupportedVersion) {\n _ui_modals__WEBPACK_IMPORTED_MODULE_8__[\"default\"].alert(\"Not Supported\", \"BetterDiscord v\" + data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].version + \" (your version)\" + \" is not supported by the latest js (\" + data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].bbdVersion + \").

Please download the latest version from GitHub\");\n return;\n } // const latestLocalVersion = Config.updater ? Config.updater.LatestVersion : Config.latestVersion;\n // if (latestLocalVersion > Config.version) {\n // Modals.alert(\"Update Available\", `\n // An update for BandagedBD is available (${latestLocalVersion})! Please Reinstall!

\n // Download Installer\n // `);\n // }\n\n\n _datastore__WEBPACK_IMPORTED_MODULE_10__[\"default\"].initialize();\n _reactcomponents__WEBPACK_IMPORTED_MODULE_9__[\"default\"].initialize();\n _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Initializing Settings\");\n _settingsmanager__WEBPACK_IMPORTED_MODULE_6__[\"default\"].initialize();\n _dommanager__WEBPACK_IMPORTED_MODULE_3__[\"default\"].initialize();\n await this.waitForGuilds();\n _componentpatcher__WEBPACK_IMPORTED_MODULE_0__[\"default\"].initialize();\n\n for (const module in builtins__WEBPACK_IMPORTED_MODULE_7__) builtins__WEBPACK_IMPORTED_MODULE_7__[module].initialize();\n\n _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Loading Plugins\");\n const pluginErrors = _pluginmanager__WEBPACK_IMPORTED_MODULE_4__[\"default\"].initialize();\n _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Loading Themes\");\n const themeErrors = _thememanager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].initialize();\n _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Removing Loading Icon\");\n document.getElementsByClassName(\"bd-loaderv2\")[0].remove(); // Show loading errors\n\n _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Collecting Startup Errors\");\n _ui_modals__WEBPACK_IMPORTED_MODULE_8__[\"default\"].showContentErrors({\n plugins: pluginErrors,\n themes: themeErrors\n });\n};\n\nCore.prototype.waitForGuilds = function () {\n return new Promise(resolve => {\n const checkForGuilds = function () {\n if (document.readyState != \"complete\") setTimeout(checkForGuilds, 100);\n const wrapper = GuildClasses.wrapper.split(\" \")[0];\n const guild = GuildClasses.listItem.split(\" \")[0];\n const blob = GuildClasses.blobContainer.split(\" \")[0];\n if (document.querySelectorAll(`.${wrapper} .${guild} .${blob}`).length > 0) return resolve(data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].deferLoaded = true);\n setTimeout(checkForGuilds, 100);\n };\n\n checkForGuilds();\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new Core());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvY29yZS5qcz9iNmRlIl0sIm5hbWVzIjpbIkd1aWxkQ2xhc3NlcyIsIkRpc2NvcmRNb2R1bGVzIiwiQ29yZSIsInByb3RvdHlwZSIsInNldENvbmZpZyIsImNvbmZpZyIsIk9iamVjdCIsImFzc2lnbiIsIkNvbmZpZyIsImluaXQiLCJ2ZXJzaW9uIiwibWluU3VwcG9ydGVkVmVyc2lvbiIsIk1vZGFscyIsImFsZXJ0IiwiYmJkVmVyc2lvbiIsIkRhdGFTdG9yZSIsImluaXRpYWxpemUiLCJSZWFjdENvbXBvbmVudHMiLCJMb2dnZXIiLCJsb2ciLCJTZXR0aW5ncyIsIkRPTU1hbmFnZXIiLCJ3YWl0Rm9yR3VpbGRzIiwiQ29tcG9uZW50UGF0Y2hlciIsIm1vZHVsZSIsIkJ1aWx0aW5zIiwicGx1Z2luRXJyb3JzIiwiUGx1Z2luTWFuYWdlciIsInRoZW1lRXJyb3JzIiwiVGhlbWVNYW5hZ2VyIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50c0J5Q2xhc3NOYW1lIiwicmVtb3ZlIiwic2hvd0NvbnRlbnRFcnJvcnMiLCJwbHVnaW5zIiwidGhlbWVzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJjaGVja0Zvckd1aWxkcyIsInJlYWR5U3RhdGUiLCJzZXRUaW1lb3V0Iiwid3JhcHBlciIsInNwbGl0IiwiZ3VpbGQiLCJsaXN0SXRlbSIsImJsb2IiLCJibG9iQ29udGFpbmVyIiwicXVlcnlTZWxlY3RvckFsbCIsImxlbmd0aCIsImRlZmVyTG9hZGVkIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7Q0FFQTtBQUNBOztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLE1BQU1BLFlBQVksR0FBR0Msd0RBQWMsQ0FBQ0QsWUFBcEM7O0FBRUEsU0FBU0UsSUFBVCxHQUFnQixD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QVA7QUFZSCxDQWJEOztBQWVlLG1FQUFJcEMsSUFBSixFQUFmIiwiZmlsZSI6Ii4vc3JjL21vZHVsZXMvY29yZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21wb25lbnRQYXRjaGVyIGZyb20gXCIuL2NvbXBvbmVudHBhdGNoZXJcIjtcclxuaW1wb3J0IExvZ2dlciBmcm9tIFwiLi9sb2dnZXJcIjtcclxuaW1wb3J0IHtDb25maWd9IGZyb20gXCJkYXRhXCI7XHJcbi8vIGltcG9ydCBFbW90ZU1vZHVsZSBmcm9tIFwiLi9lbW90ZXNcIjtcclxuLy8gaW1wb3J0IFF1aWNrRW1vdGVNZW51IGZyb20gXCIuLi9idWlsdGlucy9lbW90ZW1lbnVcIjtcclxuaW1wb3J0IERPTU1hbmFnZXIgZnJvbSBcIi4vZG9tbWFuYWdlclwiO1xyXG5pbXBvcnQgUGx1Z2luTWFuYWdlciBmcm9tIFwiLi9wbHVnaW5tYW5hZ2VyXCI7XHJcbmltcG9ydCBUaGVtZU1hbmFnZXIgZnJvbSBcIi4vdGhlbWVtYW5hZ2VyXCI7XHJcbmltcG9ydCBTZXR0aW5ncyBmcm9tIFwiLi9zZXR0aW5nc21hbmFnZXJcIjtcclxuaW1wb3J0ICogYXMgQnVpbHRpbnMgZnJvbSBcImJ1aWx0aW5zXCI7XHJcbmltcG9ydCBNb2RhbHMgZnJvbSBcIi4uL3VpL21vZGFsc1wiO1xyXG5pbXBvcnQgUmVhY3RDb21wb25lbnRzIGZyb20gXCIuL3JlYWN0Y29tcG9uZW50c1wiO1xyXG5pbXBvcnQgRGF0YVN0b3JlIGZyb20gXCIuL2RhdGFzdG9yZVwiO1xyXG5pbXBvcnQgRGlzY29yZE1vZHVsZXMgZnJvbSBcIi4vZGlzY29yZG1vZHVsZXNcIjtcclxuXHJcbmNvbnN0IEd1aWxkQ2xhc3NlcyA9IERpc2NvcmRNb2R1bGVzLkd1aWxkQ2xhc3NlcztcclxuXHJcbmZ1bmN0aW9uIENvcmUoKSB7XHJcbn1cclxuXHJcbkNvcmUucHJvdG90eXBlLnNldENvbmZpZyA9IGZ1bmN0aW9uKGNvbmZpZykge1xyXG4gICAgT2JqZWN0LmFzc2lnbihDb25maWcsIGNvbmZpZyk7XHJcbn07XHJcblxyXG5Db3JlLnByb3RvdHlwZS5pbml0ID0gYXN5bmMgZnVuY3Rpb24oKSB7XHJcbiAgICBpZiAoQ29uZmlnLnZlcnNpb24gPCBDb25maWcubWluU3VwcG9ydGVkVmVyc2lvbikge1xyXG4gICAgICAgIE1vZGFscy5hbGVydChcIk5vdCBTdXBwb3J0ZWRcIiwgXCJCZXR0ZXJEaXNjb3JkIHZcIiArIENvbmZpZy52ZXJzaW9uICsgXCIgKHlvdXIgdmVyc2lvbilcIiArIFwiIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGxhdGVzdCBqcyAoXCIgKyBDb25maWcuYmJkVmVyc2lvbiArIFwiKS48YnI+PGJyPiBQbGVhc2UgZG93bmxvYWQgdGhlIGxhdGVzdCB2ZXJzaW9uIGZyb20gPGEgaHJlZj0naHR0cHM6Ly9naXRodWIuY29tL3JhdWVuemkvQmV0dGVyRGlzY29yZEFwcC9yZWxlYXNlcy9sYXRlc3QnIHRhcmdldD0nX2JsYW5rJz5HaXRIdWI8L2E+XCIpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8vIGNvbnN0IGxhdGVzdExvY2FsVmVyc2lvbiA9IENvbmZpZy51cGRhdGVyID8gQ29uZmlnLnVwZGF0ZXIuTGF0ZXN0VmVyc2lvbiA6IENvbmZpZy5sYXRlc3RWZXJzaW9uO1xyXG4gICAgLy8gaWYgKGxhdGVzdExvY2FsVmVyc2lvbiA+IENvbmZpZy52ZXJzaW9uKSB7XHJcbiAgICAvLyAgICAgTW9kYWxzLmFsZXJ0KFwiVXBkYXRlIEF2YWlsYWJsZVwiLCBgXHJcbiAgICAvLyAgICAgICAgIEFuIHVwZGF0ZSBmb3IgQmFuZGFnZWRCRCBpcyBhdmFpbGFibGUgKCR7bGF0ZXN0TG9jYWxWZXJzaW9ufSkhIFBsZWFzZSBSZWluc3RhbGwhPGJyIC8+PGJyIC8+XHJcbiAgICAvLyAgICAgICAgIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS9yYXVlbnppL0JldHRlckRpc2NvcmRBcHAvcmVsZWFzZXMvbGF0ZXN0JyB0YXJnZXQ9J19ibGFuayc+RG93bmxvYWQgSW5zdGFsbGVyPC9hPlxyXG4gICAgLy8gICAgIGApO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIERhdGFTdG9yZS5pbml0aWFsaXplKCk7XHJcbiAgICBSZWFjdENvbXBvbmVudHMuaW5pdGlhbGl6ZSgpO1xyXG5cclxuICAgIExvZ2dlci5sb2coXCJTdGFydHVwXCIsIFwiSW5pdGlhbGl6aW5nIFNldHRpbmdzXCIpO1xyXG4gICAgU2V0dGluZ3MuaW5pdGlhbGl6ZSgpO1xyXG5cclxuICAgIERPTU1hbmFnZXIuaW5pdGlhbGl6ZSgpO1xyXG4gICAgYXdhaXQgdGhpcy53YWl0Rm9yR3VpbGRzKCk7XHJcbiAgICBDb21wb25lbnRQYXRjaGVyLmluaXRpYWxpemUoKTtcclxuICAgIGZvciAoY29uc3QgbW9kdWxlIGluIEJ1aWx0aW5zKSBCdWlsdGluc1ttb2R1bGVdLmluaXRpYWxpemUoKTtcclxuXHJcbiAgICBMb2dnZXIubG9nKFwiU3RhcnR1cFwiLCBcIkxvYWRpbmcgUGx1Z2luc1wiKTtcclxuICAgIGNvbnN0IHBsdWdpbkVycm9ycyA9IFBsdWdpbk1hbmFnZXIuaW5pdGlhbGl6ZSgpO1xyXG5cclxuICAgIExvZ2dlci5sb2coXCJTdGFydHVwXCIsIFwiTG9hZGluZyBUaGVtZXNcIik7XHJcbiAgICBjb25zdCB0aGVtZUVycm9ycyA9IFRoZW1lTWFuYWdlci5pbml0aWFsaXplKCk7XHJcblxyXG4gICAgTG9nZ2VyLmxvZyhcIlN0YXJ0dXBcIiwgXCJSZW1vdmluZyBMb2FkaW5nIEljb25cIik7XHJcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwiYmQtbG9hZGVydjJcIilbMF0ucmVtb3ZlKCk7XHJcblxyXG4gICAgLy8gU2hvdyBsb2FkaW5nIGVycm9yc1xyXG4gICAgTG9nZ2VyLmxvZyhcIlN0YXJ0dXBcIiwgXCJDb2xsZWN0aW5nIFN0YXJ0dXAgRXJyb3JzXCIpO1xyXG4gICAgTW9kYWxzLnNob3dDb250ZW50RXJyb3JzKHtwbHVnaW5zOiBwbHVnaW5FcnJvcnMsIHRoZW1lczogdGhlbWVFcnJvcnN9KTtcclxufTtcclxuXHJcbkNvcmUucHJvdG90eXBlLndhaXRGb3JHdWlsZHMgPSBmdW5jdGlvbigpIHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcclxuICAgICAgICBjb25zdCBjaGVja0Zvckd1aWxkcyA9IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICBpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSAhPSBcImNvbXBsZXRlXCIpIHNldFRpbWVvdXQoY2hlY2tGb3JHdWlsZHMsIDEwMCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHdyYXBwZXIgPSBHdWlsZENsYXNzZXMud3JhcHBlci5zcGxpdChcIiBcIilbMF07XHJcbiAgICAgICAgICAgIGNvbnN0IGd1aWxkID0gR3VpbGRDbGFzc2VzLmxpc3RJdGVtLnNwbGl0KFwiIFwiKVswXTtcclxuICAgICAgICAgICAgY29uc3QgYmxvYiA9IEd1aWxkQ2xhc3Nlcy5ibG9iQ29udGFpbmVyLnNwbGl0KFwiIFwiKVswXTtcclxuICAgICAgICAgICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoYC4ke3dyYXBwZXJ9IC4ke2d1aWxkfSAuJHtibG9ifWApLmxlbmd0aCA+IDApIHJldHVybiByZXNvbHZlKENvbmZpZy5kZWZlckxvYWRlZCA9IHRydWUpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KGNoZWNrRm9yR3VpbGRzLCAxMDApO1xyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGNoZWNrRm9yR3VpbGRzKCk7XHJcbiAgICB9KTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBDb3JlKCk7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/modules/core.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _componentpatcher__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./componentpatcher */ \"./src/modules/componentpatcher.js\");\n/* harmony import */ var _logger__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./logger */ \"./src/modules/logger.js\");\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _dommanager__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./dommanager */ \"./src/modules/dommanager.js\");\n/* harmony import */ var _pluginmanager__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./pluginmanager */ \"./src/modules/pluginmanager.js\");\n/* harmony import */ var _thememanager__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./thememanager */ \"./src/modules/thememanager.js\");\n/* harmony import */ var _settingsmanager__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./settingsmanager */ \"./src/modules/settingsmanager.js\");\n/* harmony import */ var builtins__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! builtins */ \"./src/builtins/builtins.js\");\n/* harmony import */ var _ui_modals__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../ui/modals */ \"./src/ui/modals.js\");\n/* harmony import */ var _reactcomponents__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./reactcomponents */ \"./src/modules/reactcomponents.js\");\n/* harmony import */ var _datastore__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./datastore */ \"./src/modules/datastore.js\");\n/* harmony import */ var _discordmodules__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./discordmodules */ \"./src/modules/discordmodules.js\");\n\n\n // import EmoteModule from \"./emotes\";\n// import QuickEmoteMenu from \"../builtins/emotemenu\";\n\n\n\n\n\n\n\n\n\n\nconst GuildClasses = _discordmodules__WEBPACK_IMPORTED_MODULE_11__[\"default\"].GuildClasses;\n\nfunction Core() {}\n\nCore.prototype.setConfig = function (config) {\n Object.assign(data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"], config);\n};\n\nCore.prototype.init = async function () {\n if (data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].version < data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].minSupportedVersion) {\n _ui_modals__WEBPACK_IMPORTED_MODULE_8__[\"default\"].alert(\"Not Supported\", \"BetterDiscord v\" + data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].version + \" (your version)\" + \" is not supported by the latest js (\" + data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].bbdVersion + \").

Please download the latest version from GitHub\");\n return;\n } // const latestLocalVersion = Config.updater ? Config.updater.LatestVersion : Config.latestVersion;\n // if (latestLocalVersion > Config.version) {\n // Modals.alert(\"Update Available\", `\n // An update for BandagedBD is available (${latestLocalVersion})! Please Reinstall!

\n // Download Installer\n // `);\n // }\n // DataStore.initialize();\n\n\n _reactcomponents__WEBPACK_IMPORTED_MODULE_9__[\"default\"].initialize();\n _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Initializing Settings\");\n _settingsmanager__WEBPACK_IMPORTED_MODULE_6__[\"default\"].initialize();\n _dommanager__WEBPACK_IMPORTED_MODULE_3__[\"default\"].initialize();\n await this.waitForGuilds();\n _componentpatcher__WEBPACK_IMPORTED_MODULE_0__[\"default\"].initialize();\n\n for (const module in builtins__WEBPACK_IMPORTED_MODULE_7__) builtins__WEBPACK_IMPORTED_MODULE_7__[module].initialize();\n\n _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Loading Plugins\");\n const pluginErrors = _pluginmanager__WEBPACK_IMPORTED_MODULE_4__[\"default\"].initialize();\n _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Loading Themes\");\n const themeErrors = _thememanager__WEBPACK_IMPORTED_MODULE_5__[\"default\"].initialize();\n _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Removing Loading Icon\");\n document.getElementsByClassName(\"bd-loaderv2\")[0].remove(); // Show loading errors\n\n _logger__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log(\"Startup\", \"Collecting Startup Errors\");\n _ui_modals__WEBPACK_IMPORTED_MODULE_8__[\"default\"].showContentErrors({\n plugins: pluginErrors,\n themes: themeErrors\n });\n};\n\nCore.prototype.waitForGuilds = function () {\n return new Promise(resolve => {\n const checkForGuilds = function () {\n if (document.readyState != \"complete\") setTimeout(checkForGuilds, 100);\n const wrapper = GuildClasses.wrapper.split(\" \")[0];\n const guild = GuildClasses.listItem.split(\" \")[0];\n const blob = GuildClasses.blobContainer.split(\" \")[0];\n if (document.querySelectorAll(`.${wrapper} .${guild} .${blob}`).length > 0) return resolve(data__WEBPACK_IMPORTED_MODULE_2__[\"Config\"].deferLoaded = true);\n setTimeout(checkForGuilds, 100);\n };\n\n checkForGuilds();\n });\n};\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new Core());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvY29yZS5qcz9iNmRlIl0sIm5hbWVzIjpbIkd1aWxkQ2xhc3NlcyIsIkRpc2NvcmRNb2R1bGVzIiwiQ29yZSIsInByb3RvdHlwZSIsInNldENvbmZpZyIsImNvbmZpZyIsIk9iamVjdCIsImFzc2lnbiIsIkNvbmZpZyIsImluaXQiLCJ2ZXJzaW9uIiwibWluU3VwcG9ydGVkVmVyc2lvbiIsIk1vZGFscyIsImFsZXJ0IiwiYmJkVmVyc2lvbiIsIlJlYWN0Q29tcG9uZW50cyIsImluaXRpYWxpemUiLCJMb2dnZXIiLCJsb2ciLCJTZXR0aW5ncyIsIkRPTU1hbmFnZXIiLCJ3YWl0Rm9yR3VpbGRzIiwiQ29tcG9uZW50UGF0Y2hlciIsIm1vZHVsZSIsIkJ1aWx0aW5zIiwicGx1Z2luRXJyb3JzIiwiUGx1Z2luTWFuYWdlciIsInRoZW1lRXJyb3JzIiwiVGhlbWVNYW5hZ2VyIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50c0J5Q2xhc3NOYW1lIiwicmVtb3ZlIiwic2hvd0NvbnRlbnRFcnJvcnMiLCJwbHVnaW5zIiwidGhlbWVzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJjaGVja0Zvckd1aWxkcyIsInJlYWR5U3RhdGUiLCJzZXRUaW1lb3V0Iiwid3JhcHBlciIsInNwbGl0IiwiZ3VpbGQiLCJsaXN0SXRlbSIsImJsb2IiLCJibG9iQ29udGFpbmVyIiwicXVlcnlTZWxlY3RvckFsbCIsImxlbmd0aCIsImRlZmVyTG9hZGVkIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7Q0FFQTtBQUNBOztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBLE1BQU1BLFlBQVksR0FBR0Msd0RBQWMsQ0FBQ0QsWUFBcEM7O0FBRUEsU0FBU0UsSUFBVCxHQUFnQixDQUNmOztBQUVEQSxJ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SixFQUFmIiwiZmlsZSI6Ii4vc3JjL21vZHVsZXMvY29yZS5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21wb25lbnRQYXRjaGVyIGZyb20gXCIuL2NvbXBvbmVudHBhdGNoZXJcIjtcclxuaW1wb3J0IExvZ2dlciBmcm9tIFwiLi9sb2dnZXJcIjtcclxuaW1wb3J0IHtDb25maWd9IGZyb20gXCJkYXRhXCI7XHJcbi8vIGltcG9ydCBFbW90ZU1vZHVsZSBmcm9tIFwiLi9lbW90ZXNcIjtcclxuLy8gaW1wb3J0IFF1aWNrRW1vdGVNZW51IGZyb20gXCIuLi9idWlsdGlucy9lbW90ZW1lbnVcIjtcclxuaW1wb3J0IERPTU1hbmFnZXIgZnJvbSBcIi4vZG9tbWFuYWdlclwiO1xyXG5pbXBvcnQgUGx1Z2luTWFuYWdlciBmcm9tIFwiLi9wbHVnaW5tYW5hZ2VyXCI7XHJcbmltcG9ydCBUaGVtZU1hbmFnZXIgZnJvbSBcIi4vdGhlbWVtYW5hZ2VyXCI7XHJcbmltcG9ydCBTZXR0aW5ncyBmcm9tIFwiLi9zZXR0aW5nc21hbmFnZXJcIjtcclxuaW1wb3J0ICogYXMgQnVpbHRpbnMgZnJvbSBcImJ1aWx0aW5zXCI7XHJcbmltcG9ydCBNb2RhbHMgZnJvbSBcIi4uL3VpL21vZGFsc1wiO1xyXG5pbXBvcnQgUmVhY3RDb21wb25lbnRzIGZyb20gXCIuL3JlYWN0Y29tcG9uZW50c1wiO1xyXG5pbXBvcnQgRGF0YVN0b3JlIGZyb20gXCIuL2RhdGFzdG9yZVwiO1xyXG5pbXBvcnQgRGlzY29yZE1vZHVsZXMgZnJvbSBcIi4vZGlzY29yZG1vZHVsZXNcIjtcclxuXHJcbmNvbnN0IEd1aWxkQ2xhc3NlcyA9IERpc2NvcmRNb2R1bGVzLkd1aWxkQ2xhc3NlcztcclxuXHJcbmZ1bmN0aW9uIENvcmUoKSB7XHJcbn1cclxuXHJcbkNvcmUucHJvdG90eXBlLnNldENvbmZpZyA9IGZ1bmN0aW9uKGNvbmZpZykge1xyXG4gICAgT2JqZWN0LmFzc2lnbihDb25maWcsIGNvbmZpZyk7XHJcbn07XHJcblxyXG5Db3JlLnByb3RvdHlwZS5pbml0ID0gYXN5bmMgZnVuY3Rpb24oKSB7XHJcbiAgICBpZiAoQ29uZmlnLnZlcnNpb24gPCBDb25maWcubWluU3VwcG9ydGVkVmVyc2lvbikge1xyXG4gICAgICAgIE1vZGFscy5hbGVydChcIk5vdCBTdXBwb3J0ZWRcIiwgXCJCZXR0ZXJEaXNjb3JkIHZcIiArIENvbmZpZy52ZXJzaW9uICsgXCIgKHlvdXIgdmVyc2lvbilcIiArIFwiIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIGxhdGVzdCBqcyAoXCIgKyBDb25maWcuYmJkVmVyc2lvbiArIFwiKS48YnI+PGJyPiBQbGVhc2UgZG93bmxvYWQgdGhlIGxhdGVzdCB2ZXJzaW9uIGZyb20gPGEgaHJlZj0naHR0cHM6Ly9naXRodWIuY29tL3JhdWVuemkvQmV0dGVyRGlzY29yZEFwcC9yZWxlYXNlcy9sYXRlc3QnIHRhcmdldD0nX2JsYW5rJz5HaXRIdWI8L2E+XCIpO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgIH1cclxuICAgIC8vIGNvbnN0IGxhdGVzdExvY2FsVmVyc2lvbiA9IENvbmZpZy51cGRhdGVyID8gQ29uZmlnLnVwZGF0ZXIuTGF0ZXN0VmVyc2lvbiA6IENvbmZpZy5sYXRlc3RWZXJzaW9uO1xyXG4gICAgLy8gaWYgKGxhdGVzdExvY2FsVmVyc2lvbiA+IENvbmZpZy52ZXJzaW9uKSB7XHJcbiAgICAvLyAgICAgTW9kYWxzLmFsZXJ0KFwiVXBkYXRlIEF2YWlsYWJsZVwiLCBgXHJcbiAgICAvLyAgICAgICAgIEFuIHVwZGF0ZSBmb3IgQmFuZGFnZWRCRCBpcyBhdmFpbGFibGUgKCR7bGF0ZXN0TG9jYWxWZXJzaW9ufSkhIFBsZWFzZSBSZWluc3RhbGwhPGJyIC8+PGJyIC8+XHJcbiAgICAvLyAgICAgICAgIDxhIGhyZWY9J2h0dHBzOi8vZ2l0aHViLmNvbS9yYXVlbnppL0JldHRlckRpc2NvcmRBcHAvcmVsZWFzZXMvbGF0ZXN0JyB0YXJnZXQ9J19ibGFuayc+RG93bmxvYWQgSW5zdGFsbGVyPC9hPlxyXG4gICAgLy8gICAgIGApO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIC8vIERhdGFTdG9yZS5pbml0aWFsaXplKCk7XHJcbiAgICBSZWFjdENvbXBvbmVudHMuaW5pdGlhbGl6ZSgpO1xyXG5cclxuICAgIExvZ2dlci5sb2coXCJTdGFydHVwXCIsIFwiSW5pdGlhbGl6aW5nIFNldHRpbmdzXCIpO1xyXG4gICAgU2V0dGluZ3MuaW5pdGlhbGl6ZSgpO1xyXG5cclxuICAgIERPTU1hbmFnZXIuaW5pdGlhbGl6ZSgpO1xyXG4gICAgYXdhaXQgdGhpcy53YWl0Rm9yR3VpbGRzKCk7XHJcbiAgICBDb21wb25lbnRQYXRjaGVyLmluaXRpYWxpemUoKTtcclxuICAgIGZvciAoY29uc3QgbW9kdWxlIGluIEJ1aWx0aW5zKSBCdWlsdGluc1ttb2R1bGVdLmluaXRpYWxpemUoKTtcclxuXHJcbiAgICBMb2dnZXIubG9nKFwiU3RhcnR1cFwiLCBcIkxvYWRpbmcgUGx1Z2luc1wiKTtcclxuICAgIGNvbnN0IHBsdWdpbkVycm9ycyA9IFBsdWdpbk1hbmFnZXIuaW5pdGlhbGl6ZSgpO1xyXG5cclxuICAgIExvZ2dlci5sb2coXCJTdGFydHVwXCIsIFwiTG9hZGluZyBUaGVtZXNcIik7XHJcbiAgICBjb25zdCB0aGVtZUVycm9ycyA9IFRoZW1lTWFuYWdlci5pbml0aWFsaXplKCk7XHJcblxyXG4gICAgTG9nZ2VyLmxvZyhcIlN0YXJ0dXBcIiwgXCJSZW1vdmluZyBMb2FkaW5nIEljb25cIik7XHJcbiAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFwiYmQtbG9hZGVydjJcIilbMF0ucmVtb3ZlKCk7XHJcblxyXG4gICAgLy8gU2hvdyBsb2FkaW5nIGVycm9yc1xyXG4gICAgTG9nZ2VyLmxvZyhcIlN0YXJ0dXBcIiwgXCJDb2xsZWN0aW5nIFN0YXJ0dXAgRXJyb3JzXCIpO1xyXG4gICAgTW9kYWxzLnNob3dDb250ZW50RXJyb3JzKHtwbHVnaW5zOiBwbHVnaW5FcnJvcnMsIHRoZW1lczogdGhlbWVFcnJvcnN9KTtcclxufTtcclxuXHJcbkNvcmUucHJvdG90eXBlLndhaXRGb3JHdWlsZHMgPSBmdW5jdGlvbigpIHtcclxuICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHtcclxuICAgICAgICBjb25zdCBjaGVja0Zvckd1aWxkcyA9IGZ1bmN0aW9uKCkge1xyXG4gICAgICAgICAgICBpZiAoZG9jdW1lbnQucmVhZHlTdGF0ZSAhPSBcImNvbXBsZXRlXCIpIHNldFRpbWVvdXQoY2hlY2tGb3JHdWlsZHMsIDEwMCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHdyYXBwZXIgPSBHdWlsZENsYXNzZXMud3JhcHBlci5zcGxpdChcIiBcIilbMF07XHJcbiAgICAgICAgICAgIGNvbnN0IGd1aWxkID0gR3VpbGRDbGFzc2VzLmxpc3RJdGVtLnNwbGl0KFwiIFwiKVswXTtcclxuICAgICAgICAgICAgY29uc3QgYmxvYiA9IEd1aWxkQ2xhc3Nlcy5ibG9iQ29udGFpbmVyLnNwbGl0KFwiIFwiKVswXTtcclxuICAgICAgICAgICAgaWYgKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoYC4ke3dyYXBwZXJ9IC4ke2d1aWxkfSAuJHtibG9ifWApLmxlbmd0aCA+IDApIHJldHVybiByZXNvbHZlKENvbmZpZy5kZWZlckxvYWRlZCA9IHRydWUpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KGNoZWNrRm9yR3VpbGRzLCAxMDApO1xyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGNoZWNrRm9yR3VpbGRzKCk7XHJcbiAgICB9KTtcclxufTtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBDb3JlKCk7Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/modules/core.js\n"); /***/ }), @@ -395,7 +395,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _com /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n\n\nconst fs = __webpack_require__(/*! fs */ \"fs\");\n\nconst path = __webpack_require__(/*! path */ \"path\");\n\nconst releaseChannel = DiscordNative.globals.releaseChannel; // Schema 1\n// =======================\n// %appdata%\\BetterDiscord\n// -> data\\\n// -> [releaseChannel].json (stable/canary/ptb)\n// Schema 2\n// =======================\n// %appdata%\\BetterDiscord\n// -> data\n// -> [releaseChannel]\\ (stable/canary/ptb)\n// -> settings.json\n// -> plugins.json\n// -> themes.json\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class DataStore {\n constructor() {\n this.data = {\n misc: {}\n };\n this.pluginData = {};\n }\n\n initialize() {\n if (!fs.existsSync(this.baseFolder)) fs.mkdirSync(this.baseFolder);\n if (!fs.existsSync(this.dataFolder)) fs.mkdirSync(this.dataFolder);\n if (!fs.existsSync(this.BDFile)) fs.writeFileSync(this.BDFile, JSON.stringify(this.data.misc, null, 4));\n if (!fs.existsSync(this.customCSS)) fs.writeFileSync(this.customCSS, \"\");\n const dataFiles = fs.readdirSync(this.dataFolder).filter(f => !fs.statSync(path.resolve(this.dataFolder, f)).isDirectory() && f.endsWith(\".json\"));\n\n for (const file of dataFiles) {\n this.data[file.split(\".\")[0]] = require(path.resolve(this.dataFolder, file));\n } // this.data = __non_webpack_require__(this.BDFile);\n // if (data.hasOwnProperty(\"settings\")) this.data = data;\n // if (!fs.existsSync(this.settingsFile)) return;\n // let settings = __non_webpack_require__(this.settingsFile);\n // fs.unlinkSync(this.settingsFile);\n // if (settings.hasOwnProperty(\"settings\")) settings = Object.assign({stable: {}, canary: {}, ptb: {}}, {[releaseChannel]: settings});\n // else settings = Object.assign({stable: {}, canary: {}, ptb: {}}, settings);\n // this.setBDData(\"settings\", settings);\n\n }\n\n get customCSS() {\n return this._customCSS || (this._customCSS = path.resolve(this.dataFolder, \"custom.css\"));\n }\n\n get baseFolder() {\n return this._baseFolder || (this._baseFolder = path.resolve(data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].dataPath, \"data\"));\n }\n\n get dataFolder() {\n return this._dataFolder || (this._dataFolder = path.resolve(this.baseFolder, `${releaseChannel}`));\n }\n\n get BDFile() {\n return this._BDFile || (this._BDFile = path.resolve(data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].dataPath, \"data\", `${releaseChannel}.json`));\n } // get settingsFile() {return this._settingsFile || (this._settingsFile = path.resolve(Config.dataPath, \"bdsettings.json\"));}\n\n\n getPluginFile(pluginName) {\n return path.resolve(data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].dataPath, \"plugins\", pluginName + \".config.json\");\n } // getSettingGroup(key) {\n // return this.data.settings[key] || null;\n // }\n // setSettingGroup(key, data) {\n // this.data.settings[key] = data;\n // fs.writeFileSync(this.BDFile, JSON.stringify(this.data, null, 4));\n // }\n\n\n _getFile(key) {\n if (key == \"settings\" || key == \"plugins\" || key == \"themes\") return path.resolve(this.dataFolder, `${key}.json`);\n return path.resolve(this.dataFolder, `misc.json`);\n }\n\n getBDData(key) {\n return this.data.misc[key] || \"\";\n }\n\n setBDData(key, value) {\n this.data.misc[key] = value;\n fs.writeFileSync(path.resolve(this.dataFolder, `misc.json`), JSON.stringify(this.data.misc, null, 4));\n }\n\n getData(key) {\n return this.data[key] || \"\"; // return JSON.parse(fs.readFileSync(path.resolve(this.dataFolder, `${file}.json`)));\n }\n\n setData(key, value) {\n this.data[key] = value; // fs.writeFileSync(this.BDFile, JSON.stringify(this.data, null, 4));\n\n fs.writeFileSync(path.resolve(this.dataFolder, `${key}.json`), JSON.stringify(value, null, 4));\n }\n\n loadCustomCSS() {\n return fs.readFileSync(this.customCSS).toString();\n }\n\n saveCustomCSS(css) {\n return fs.writeFileSync(this.customCSS, css);\n }\n\n getPluginData(pluginName, key) {\n if (this.pluginData[pluginName] !== undefined) return this.pluginData[pluginName][key] || undefined;\n if (!fs.existsSync(this.getPluginFile(pluginName))) return undefined;\n this.pluginData[pluginName] = JSON.parse(fs.readFileSync(this.getPluginFile(pluginName)));\n return this.pluginData[pluginName][key] || undefined;\n }\n\n setPluginData(pluginName, key, value) {\n if (value === undefined) return;\n if (this.pluginData[pluginName] === undefined) this.pluginData[pluginName] = {};\n this.pluginData[pluginName][key] = value;\n fs.writeFileSync(this.getPluginFile(pluginName), JSON.stringify(this.pluginData[pluginName], null, 4));\n }\n\n deletePluginData(pluginName, key) {\n if (this.pluginData[pluginName] === undefined) this.pluginData[pluginName] = {};\n delete this.pluginData[pluginName][key];\n fs.writeFileSync(this.getPluginFile(pluginName), JSON.stringify(this.pluginData[pluginName], null, 4));\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvZGF0YXN0b3JlLmpzPzEwNTIiXSwibmFtZXMiOlsiZnMiLCJyZXF1aXJlIiwicGF0aCIsInJlbGVhc2VDaGFubmVsIiwiRGlzY29yZE5hdGl2ZSIsImdsb2JhbHMiLCJEYXRhU3RvcmUiLCJjb25zdHJ1Y3RvciIsImRhdGEiLCJtaXNjIiwicGx1Z2luRGF0YSIsImluaXRpYWxpemUiLCJleGlzdHNTeW5jIiwiYmFzZUZvbGRlciIsIm1rZGlyU3luYyIsImRhdGFGb2xkZXIiLCJCREZpbGUiLCJ3cml0ZUZpbGVTeW5jIiwiSlNPTiIsInN0cmluZ2lmeSIsImN1c3RvbUNTUyIsImRhdGFGaWxlcyIsInJlYWRkaXJTeW5jIiwiZmlsdGVyIiwiZiIsInN0YXRTeW5jIiwicmVzb2x2ZSIsImlzRGlyZWN0b3J5IiwiZW5kc1dpdGgiLCJmaWxlIiwic3BsaXQiLCJfX25vbl93ZWJwYWNrX3JlcXVpcmVfXyIsIl9jdXN0b21DU1MiLCJfYmFzZUZvbGRlciIsIkNvbmZpZyIsImRhdGFQYXRoIiwiX2RhdGFGb2xkZXIiLCJfQkRGaWxlIiwiZ2V0UGx1Z2luRmlsZSIsInBsdWdpbk5hbWUiLCJfZ2V0RmlsZSIsImtleSIsImdldEJERGF0YSIsInNldEJERGF0YSIsInZhbHVlIiwiZ2V0RGF0YSIsInNldERhdGEiLCJsb2FkQ3VzdG9tQ1NTIiwicmVhZEZpbGVTeW5jIiwidG9TdHJpbmciLCJzYXZlQ3VzdG9tQ1NTIiwiY3NzIiwiZ2V0UGx1Z2luRGF0YSIsInVuZGVmaW5lZCIsInBhcnNlIiwic2V0UGx1Z2luRGF0YSIsImRlbGV0ZVBsdWdpbkRhdGEiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTs7QUFDQSxNQUFNQSxFQUFFLEdBQUdDLG1CQUFPLENBQUMsY0FBRCxDQUFsQjs7QUFDQSxNQUFNQyxJQUFJLEdBQUdELG1CQUFPLENBQUMsa0JBQUQsQ0FBcEI7O0FBQ0EsTUFBTUUsY0FBYyxHQUFHQyxhQUFhLENB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QUssS0FBS1MsU0FBZCxFQUF5QjtBQUN6QixRQUFJLEtBQUszQyxVQUFMLENBQWdCNkIsVUFBaEIsTUFBZ0NjLFNBQXBDLEVBQStDLEtBQUszQyxVQUFMLENBQWdCNkIsVUFBaEIsSUFBOEIsRUFBOUI7QUFDL0MsU0FBSzdCLFVBQUwsQ0FBZ0I2QixVQUFoQixFQUE0QkUsR0FBNUIsSUFBbUNHLEtBQW5DO0FBQ0E1QyxNQUFFLENBQUNpQixhQUFILENBQWlCLEtBQUtxQixhQUFMLENBQW1CQyxVQUFuQixDQUFqQixFQUFpRHJCLElBQUksQ0FBQ0MsU0FBTCxDQUFlLEtBQUtULFVBQUwsQ0FBZ0I2QixVQUFoQixDQUFmLEVBQTRDLElBQTVDLEVBQWtELENBQWxELENBQWpEO0FBQ0g7O0FBRURpQixrQkFBZ0IsQ0FBQ2pCLFVBQUQsRUFBYUUsR0FBYixFQUFrQjtBQUM5QixRQUFJLEtBQUsvQixVQUFMLENBQWdCNkIsVUFBaEIsTUFBZ0NjLFNBQXBDLEVBQStDLEtBQUszQyxVQUFMLENBQWdCNkIsVUFBaEIsSUFBOEIsRUFBOUI7QUFDL0MsV0FBTyxLQUFLN0IsVUFBTCxDQUFnQjZCLFVBQWhCLEVBQTRCRSxHQUE1QixDQUFQO0FBQ0F6QyxNQUFFLENBQUNpQixhQUFILENBQWlCLEtBQUtxQixhQUFMLENBQW1CQyxVQUFuQixDQUFqQixFQUFpRHJCLElBQUksQ0FBQ0MsU0FBTCxDQUFlLEtBQUtULFVBQUwsQ0FBZ0I2QixVQUFoQixDQUFmLEVBQTRDLElBQTVDLEVBQWtELENBQWxELENBQWpEO0FBQ0g7O0FBNUY4QixDQUFwQixFQUFmIiwiZmlsZSI6Ii4vc3JjL21vZHVsZXMvZGF0YXN0b3JlLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25maWd9IGZyb20gXCJkYXRhXCI7XHJcbmNvbnN0IGZzID0gcmVxdWlyZShcImZzXCIpO1xyXG5jb25zdCBwYXRoID0gcmVxdWlyZShcInBhdGhcIik7XHJcbmNvbnN0IHJlbGVhc2VDaGFubmVsID0gRGlzY29yZE5hdGl2ZS5nbG9iYWxzLnJlbGVhc2VDaGFubmVsO1xyXG5cclxuLy8gU2NoZW1hIDFcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gJWFwcGRhdGElXFxCZXR0ZXJEaXNjb3JkXHJcbi8vICAgICAtPiBkYXRhXFxcclxuLy8gICAgICAgICAtPiBbcmVsZWFzZUNoYW5uZWxdLmpzb24gKHN0YWJsZS9jYW5hcnkvcHRiKVxyXG5cclxuLy8gU2NoZW1hIDJcclxuLy8gPT09PT09PT09PT09PT09PT09PT09PT1cclxuLy8gJWFwcGRhdGElXFxCZXR0ZXJEaXNjb3JkXHJcbi8vICAgICAtPiBkYXRhXHJcbi8vICAgICAgICAgLT4gW3JlbGVhc2VDaGFubmVsXVxcIChzdGFibGUvY2FuYXJ5L3B0YilcclxuLy8gICAgICAgICAgICAgLT4gc2V0dGluZ3MuanNvblxyXG4vLyAgICAgICAgICAgICAtPiBwbHVnaW5zLmpzb25cclxuLy8gICAgICAgICAgICAgLT4gdGhlbWVzLmpzb25cclxuXHJcbmV4cG9ydCBkZWZhdWx0IG5ldyBjbGFzcyBEYXRhU3RvcmUge1xyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhID0ge21pc2M6IHt9fTtcclxuICAgICAgICB0aGlzLnBsdWdpbkRhdGEgPSB7fTtcclxuICAgIH1cclxuXHJcbiAgICBpbml0aWFsaXplKCkge1xyXG4gICAgICAgIGlmICghZnMuZXhpc3RzU3luYyh0aGlzLmJhc2VGb2xkZXIpKSBmcy5ta2RpclN5bmModGhpcy5iYXNlRm9sZGVyKTtcclxuICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmModGhpcy5kYXRhRm9sZGVyKSkgZnMubWtkaXJTeW5jKHRoaXMuZGF0YUZvbGRlcik7XHJcbiAgICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKHRoaXMuQkRGaWxlKSkgZnMud3JpdGVGaWxlU3luYyh0aGlzLkJERmlsZSwgSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhLm1pc2MsIG51bGwsIDQpKTtcclxuICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmModGhpcy5jdXN0b21DU1MpKSBmcy53cml0ZUZpbGVTeW5jKHRoaXMuY3VzdG9tQ1NTLCBcIlwiKTtcclxuICAgICAgICBjb25zdCBkYXRhRmlsZXMgPSBmcy5yZWFkZGlyU3luYyh0aGlzLmRhdGFGb2xkZXIpLmZpbHRlcihmID0+ICFmcy5zdGF0U3luYyhwYXRoLnJlc29sdmUodGhpcy5kYXRhRm9sZGVyLCBmKSkuaXNEaXJlY3RvcnkoKSAmJiBmLmVuZHNXaXRoKFwiLmpzb25cIikpO1xyXG4gICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBkYXRhRmlsZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRhW2ZpbGUuc3BsaXQoXCIuXCIpWzBdXSA9IF9fbm9uX3dlYnBhY2tfcmVxdWlyZV9fKHBhdGgucmVzb2x2ZSh0aGlzLmRhdGFGb2xkZXIsIGZpbGUpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gdGhpcy5kYXRhID0gX19ub25fd2VicGFja19yZXF1aXJlX18odGhpcy5CREZpbGUpO1xyXG4gICAgICAgIC8vIGlmIChkYXRhLmhhc093blByb3BlcnR5KFwic2V0dGluZ3NcIikpIHRoaXMuZGF0YSA9IGRhdGE7XHJcbiAgICAgICAgLy8gaWYgKCFmcy5leGlzdHNTeW5jKHRoaXMuc2V0dGluZ3NGaWxlKSkgcmV0dXJuO1xyXG4gICAgICAgIC8vIGxldCBzZXR0aW5ncyA9IF9fbm9uX3dlYnBhY2tfcmVxdWlyZV9fKHRoaXMuc2V0dGluZ3NGaWxlKTtcclxuICAgICAgICAvLyBmcy51bmxpbmtTeW5jKHRoaXMuc2V0dGluZ3NGaWxlKTtcclxuICAgICAgICAvLyBpZiAoc2V0dGluZ3MuaGFzT3duUHJvcGVydHkoXCJzZXR0aW5nc1wiKSkgc2V0dGluZ3MgPSBPYmplY3QuYXNzaWduKHtzdGFibGU6IHt9LCBjYW5hcnk6IHt9LCBwdGI6IHt9fSwge1tyZWxlYXNlQ2hhbm5lbF06IHNldHRpbmdzfSk7XHJcbiAgICAgICAgLy8gZWxzZSBzZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oe3N0YWJsZToge30sIGNhbmFyeToge30sIHB0Yjoge319LCBzZXR0aW5ncyk7XHJcbiAgICAgICAgLy8gdGhpcy5zZXRCRERhdGEoXCJzZXR0aW5nc1wiLCBzZXR0aW5ncyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGN1c3RvbUNTUygpIHtyZXR1cm4gdGhpcy5fY3VzdG9tQ1NTIHx8ICh0aGlzLl9jdXN0b21DU1MgPSBwYXRoLnJlc29sdmUodGhpcy5kYXRhRm9sZGVyLCBcImN1c3RvbS5jc3NcIikpO31cclxuICAgIGdldCBiYXNlRm9sZGVyKCkge3JldHVybiB0aGlzLl9iYXNlRm9sZGVyIHx8ICh0aGlzLl9iYXNlRm9sZGVyID0gcGF0aC5yZXNvbHZlKENvbmZpZy5kYXRhUGF0aCwgXCJkYXRhXCIpKTt9XHJcbiAgICBnZXQgZGF0YUZvbGRlcigpIHtyZXR1cm4gdGhpcy5fZGF0YUZvbGRlciB8fCAodGhpcy5fZGF0YUZvbGRlciA9IHBhdGgucmVzb2x2ZSh0aGlzLmJhc2VGb2xkZXIsIGAke3JlbGVhc2VDaGFubmVsfWApKTt9XHJcbiAgICBnZXQgQkRGaWxlKCkge3JldHVybiB0aGlzLl9CREZpbGUgfHwgKHRoaXMuX0JERmlsZSA9IHBhdGgucmVzb2x2ZShDb25maWcuZGF0YVBhdGgsIFwiZGF0YVwiLCBgJHtyZWxlYXNlQ2hhbm5lbH0uanNvbmApKTt9XHJcbiAgICAvLyBnZXQgc2V0dGluZ3NGaWxlKCkge3JldHVybiB0aGlzLl9zZXR0aW5nc0ZpbGUgfHwgKHRoaXMuX3NldHRpbmdzRmlsZSA9IHBhdGgucmVzb2x2ZShDb25maWcuZGF0YVBhdGgsIFwiYmRzZXR0aW5ncy5qc29uXCIpKTt9XHJcbiAgICBnZXRQbHVnaW5GaWxlKHBsdWdpbk5hbWUpIHtyZXR1cm4gcGF0aC5yZXNvbHZlKENvbmZpZy5kYXRhUGF0aCwgXCJwbHVnaW5zXCIsIHBsdWdpbk5hbWUgKyBcIi5jb25maWcuanNvblwiKTt9XHJcblxyXG4gICAgLy8gZ2V0U2V0dGluZ0dyb3VwKGtleSkge1xyXG4gICAgLy8gICAgIHJldHVybiB0aGlzLmRhdGEuc2V0dGluZ3Nba2V5XSB8fCBudWxsO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIC8vIHNldFNldHRpbmdHcm91cChrZXksIGRhdGEpIHtcclxuICAgIC8vICAgICB0aGlzLmRhdGEuc2V0dGluZ3Nba2V5XSA9IGRhdGE7XHJcbiAgICAvLyAgICAgZnMud3JpdGVGaWxlU3luYyh0aGlzLkJERmlsZSwgSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhLCBudWxsLCA0KSk7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgX2dldEZpbGUoa2V5KSB7XHJcbiAgICAgICAgaWYgKGtleSA9PSBcInNldHRpbmdzXCIgfHwga2V5ID09IFwicGx1Z2luc1wiIHx8IGtleSA9PSBcInRoZW1lc1wiKSByZXR1cm4gcGF0aC5yZXNvbHZlKHRoaXMuZGF0YUZvbGRlciwgYCR7a2V5fS5qc29uYCk7XHJcbiAgICAgICAgcmV0dXJuIHBhdGgucmVzb2x2ZSh0aGlzLmRhdGFGb2xkZXIsIGBtaXNjLmpzb25gKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXRCRERhdGEoa2V5KSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YS5taXNjW2tleV0gfHwgXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBzZXRCRERhdGEoa2V5LCB2YWx1ZSkge1xyXG4gICAgICAgIHRoaXMuZGF0YS5taXNjW2tleV0gPSB2YWx1ZTtcclxuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKHBhdGgucmVzb2x2ZSh0aGlzLmRhdGFGb2xkZXIsIGBtaXNjLmpzb25gKSwgSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhLm1pc2MsIG51bGwsIDQpKTtcclxuICAgIH1cclxuXHJcbiAgICBnZXREYXRhKGtleSkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFba2V5XSB8fCBcIlwiO1xyXG4gICAgICAgIC8vIHJldHVybiBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhwYXRoLnJlc29sdmUodGhpcy5kYXRhRm9sZGVyLCBgJHtmaWxlfS5qc29uYCkpKTtcclxuICAgIH1cclxuXHJcbiAgICBzZXREYXRhKGtleSwgdmFsdWUpIHtcclxuICAgICAgICB0aGlzLmRhdGFba2V5XSA9IHZhbHVlO1xyXG4gICAgICAgIC8vIGZzLndyaXRlRmlsZVN5bmModGhpcy5CREZpbGUsIEpTT04uc3RyaW5naWZ5KHRoaXMuZGF0YSwgbnVsbCwgNCkpO1xyXG4gICAgICAgIGZzLndyaXRlRmlsZVN5bmMocGF0aC5yZXNvbHZlKHRoaXMuZGF0YUZvbGRlciwgYCR7a2V5fS5qc29uYCksIEpTT04uc3RyaW5naWZ5KHZhbHVlLCBudWxsLCA0KSk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZEN1c3RvbUNTUygpIHtcclxuICAgICAgICByZXR1cm4gZnMucmVhZEZpbGVTeW5jKHRoaXMuY3VzdG9tQ1NTKS50b1N0cmluZygpO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmVDdXN0b21DU1MoY3NzKSB7XHJcbiAgICAgICAgcmV0dXJuIGZzLndyaXRlRmlsZVN5bmModGhpcy5jdXN0b21DU1MsIGNzcyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UGx1Z2luRGF0YShwbHVnaW5OYW1lLCBrZXkpIHtcclxuICAgICAgICBpZiAodGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdICE9PSB1bmRlZmluZWQpIHJldHVybiB0aGlzLnBsdWdpbkRhdGFbcGx1Z2luTmFtZV1ba2V5XSB8fCB1bmRlZmluZWQ7XHJcbiAgICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKHRoaXMuZ2V0UGx1Z2luRmlsZShwbHVnaW5OYW1lKSkpIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmModGhpcy5nZXRQbHVnaW5GaWxlKHBsdWdpbk5hbWUpKSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGx1Z2luRGF0YVtwbHVnaW5OYW1lXVtrZXldIHx8IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBzZXRQbHVnaW5EYXRhKHBsdWdpbk5hbWUsIGtleSwgdmFsdWUpIHtcclxuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xyXG4gICAgICAgIGlmICh0aGlzLnBsdWdpbkRhdGFbcGx1Z2luTmFtZV0gPT09IHVuZGVmaW5lZCkgdGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdID0ge307XHJcbiAgICAgICAgdGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdW2tleV0gPSB2YWx1ZTtcclxuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKHRoaXMuZ2V0UGx1Z2luRmlsZShwbHVnaW5OYW1lKSwgSlNPTi5zdHJpbmdpZnkodGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdLCBudWxsLCA0KSk7XHJcbiAgICB9XHJcblxyXG4gICAgZGVsZXRlUGx1Z2luRGF0YShwbHVnaW5OYW1lLCBrZXkpIHtcclxuICAgICAgICBpZiAodGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdID09PSB1bmRlZmluZWQpIHRoaXMucGx1Z2luRGF0YVtwbHVnaW5OYW1lXSA9IHt9O1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLnBsdWdpbkRhdGFbcGx1Z2luTmFtZV1ba2V5XTtcclxuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKHRoaXMuZ2V0UGx1Z2luRmlsZShwbHVnaW5OYW1lKSwgSlNPTi5zdHJpbmdpZnkodGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdLCBudWxsLCA0KSk7XHJcbiAgICB9XHJcbn07Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/modules/datastore.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var data__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! data */ \"./src/data/data.js\");\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n\n\n\nconst fs = __webpack_require__(/*! fs */ \"fs\");\n\nconst path = __webpack_require__(/*! path */ \"path\");\n\nconst releaseChannel = DiscordNative.globals.releaseChannel; // Schema\n// =======================\n// %appdata%\\BetterDiscord\n// -> data\n// -> [releaseChannel]\\ (stable/canary/ptb)\n// -> settings.json\n// -> plugins.json\n// -> themes.json\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (new class DataStore {\n constructor() {\n this.data = {\n misc: {}\n };\n this.pluginData = {};\n this.initialize();\n }\n\n initialize() {\n if (!fs.existsSync(this.baseFolder)) fs.mkdirSync(this.baseFolder);\n if (!fs.existsSync(this.dataFolder)) fs.mkdirSync(this.dataFolder);\n if (!fs.existsSync(this.localeFolder)) fs.mkdirSync(this.localeFolder);\n if (!fs.existsSync(this.BDFile)) fs.writeFileSync(this.BDFile, JSON.stringify(this.data.misc, null, 4));\n if (!fs.existsSync(this.customCSS)) fs.writeFileSync(this.customCSS, \"\");\n const dataFiles = fs.readdirSync(this.dataFolder).filter(f => !fs.statSync(path.resolve(this.dataFolder, f)).isDirectory() && f.endsWith(\".json\"));\n\n for (const file of dataFiles) {\n this.data[file.split(\".\")[0]] = require(path.resolve(this.dataFolder, file));\n } // this.data = __non_webpack_require__(this.BDFile);\n // if (data.hasOwnProperty(\"settings\")) this.data = data;\n // if (!fs.existsSync(this.settingsFile)) return;\n // let settings = __non_webpack_require__(this.settingsFile);\n // fs.unlinkSync(this.settingsFile);\n // if (settings.hasOwnProperty(\"settings\")) settings = Object.assign({stable: {}, canary: {}, ptb: {}}, {[releaseChannel]: settings});\n // else settings = Object.assign({stable: {}, canary: {}, ptb: {}}, settings);\n // this.setBDData(\"settings\", settings);\n\n }\n\n get customCSS() {\n return this._customCSS || (this._customCSS = path.resolve(this.dataFolder, \"custom.css\"));\n }\n\n get baseFolder() {\n return this._baseFolder || (this._baseFolder = path.resolve(data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].dataPath, \"data\"));\n }\n\n get dataFolder() {\n return this._dataFolder || (this._dataFolder = path.resolve(this.baseFolder, `${releaseChannel}`));\n }\n\n get localeFolder() {\n return this._localeFolder || (this._localeFolder = path.resolve(this.baseFolder, `locales`));\n }\n\n get BDFile() {\n return this._BDFile || (this._BDFile = path.resolve(data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].dataPath, \"data\", `${releaseChannel}.json`));\n } // get settingsFile() {return this._settingsFile || (this._settingsFile = path.resolve(Config.dataPath, \"bdsettings.json\"));}\n\n\n getPluginFile(pluginName) {\n return path.resolve(data__WEBPACK_IMPORTED_MODULE_0__[\"Config\"].dataPath, \"plugins\", pluginName + \".config.json\");\n } // getSettingGroup(key) {\n // return this.data.settings[key] || null;\n // }\n // setSettingGroup(key, data) {\n // this.data.settings[key] = data;\n // fs.writeFileSync(this.BDFile, JSON.stringify(this.data, null, 4));\n // }\n\n\n _getFile(key) {\n if (key == \"settings\" || key == \"plugins\" || key == \"themes\") return path.resolve(this.dataFolder, `${key}.json`);\n return path.resolve(this.dataFolder, `misc.json`);\n }\n\n getBDData(key) {\n return this.data.misc[key] || \"\";\n }\n\n setBDData(key, value) {\n this.data.misc[key] = value;\n fs.writeFileSync(path.resolve(this.dataFolder, `misc.json`), JSON.stringify(this.data.misc, null, 4));\n }\n\n getLocale(locale) {\n const file = path.resolve(this.localeFolder, `${locale}.json`);\n if (!fs.existsSync(file)) return null;\n return _utilities__WEBPACK_IMPORTED_MODULE_1__[\"default\"].testJSON(fs.readFileSync(file).toString());\n }\n\n saveLocale(locale, strings) {\n fs.writeFileSync(path.resolve(this.localeFolder, `${locale}.json`), JSON.stringify(strings, null, 4));\n }\n\n getData(key) {\n return this.data[key] || \"\";\n }\n\n setData(key, value) {\n this.data[key] = value;\n fs.writeFileSync(path.resolve(this.dataFolder, `${key}.json`), JSON.stringify(value, null, 4));\n }\n\n loadCustomCSS() {\n return fs.readFileSync(this.customCSS).toString();\n }\n\n saveCustomCSS(css) {\n return fs.writeFileSync(this.customCSS, css);\n }\n\n getPluginData(pluginName, key) {\n if (this.pluginData[pluginName] !== undefined) return this.pluginData[pluginName][key] || undefined;\n if (!fs.existsSync(this.getPluginFile(pluginName))) return undefined;\n this.pluginData[pluginName] = JSON.parse(fs.readFileSync(this.getPluginFile(pluginName)));\n return this.pluginData[pluginName][key] || undefined;\n }\n\n setPluginData(pluginName, key, value) {\n if (value === undefined) return;\n if (this.pluginData[pluginName] === undefined) this.pluginData[pluginName] = {};\n this.pluginData[pluginName][key] = value;\n fs.writeFileSync(this.getPluginFile(pluginName), JSON.stringify(this.pluginData[pluginName], null, 4));\n }\n\n deletePluginData(pluginName, key) {\n if (this.pluginData[pluginName] === undefined) this.pluginData[pluginName] = {};\n delete this.pluginData[pluginName][key];\n fs.writeFileSync(this.getPluginFile(pluginName), JSON.stringify(this.pluginData[pluginName], null, 4));\n }\n\n}());//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvZGF0YXN0b3JlLmpzPzEwNTIiXSwibmFtZXMiOlsiZnMiLCJyZXF1aXJlIiwicGF0aCIsInJlbGVhc2VDaGFubmVsIiwiRGlzY29yZE5hdGl2ZSIsImdsb2JhbHMiLCJEYXRhU3RvcmUiLCJjb25zdHJ1Y3RvciIsImRhdGEiLCJtaXNjIiwicGx1Z2luRGF0YSIsImluaXRpYWxpemUiLCJleGlzdHNTeW5jIiwiYmFzZUZvbGRlciIsIm1rZGlyU3luYyIsImRhdGFGb2xkZXIiLCJsb2NhbGVGb2xkZXIiLCJCREZpbGUiLCJ3cml0ZUZpbGVTeW5jIiwiSlNPTiIsInN0cmluZ2lmeSIsImN1c3RvbUNTUyIsImRhdGFGaWxlcyIsInJlYWRkaXJTeW5jIiwiZmlsdGVyIiwiZiIsInN0YXRTeW5jIiwicmVzb2x2ZSIsImlzRGlyZWN0b3J5IiwiZW5kc1dpdGgiLCJmaWxlIiwic3BsaXQiLCJfX25vbl93ZWJwYWNrX3JlcXVpcmVfXyIsIl9jdXN0b21DU1MiLCJfYmFzZUZvbGRlciIsIkNvbmZpZyIsImRhdGFQYXRoIiwiX2RhdGFGb2xkZXIiLCJfbG9jYWxlRm9sZGVyIiwiX0JERmlsZSIsImdldFBsdWdpbkZpbGUiLCJwbHVnaW5OYW1lIiwiX2dldEZpbGUiLCJrZXkiLCJnZXRCRERhdGEiLCJzZXRCRERhdGEiLCJ2YWx1ZSIsImdldExvY2FsZSIsImxvY2FsZSIsIlV0aWxpdGllcyIsInRlc3RKU09OIiwicmVhZEZpbGVTeW5jIiwidG9TdHJpbmciLCJzYXZlTG9jYWxlIiwic3RyaW5ncyIsImdldERhdGEiLCJzZXREYXRhIiwibG9hZEN1c3RvbUNTUyIsInNhdmVDdXN0b21DU1MiLCJjc3MiLCJnZXRQbHVnaW5EYXRhIiwidW5kZWZpbmVkIiwicGFyc2UiLCJzZXRQbHVnaW5EYXRhIiwiZGVsZXRlUGx1Z2luRGF0YSJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTs7QUFDQSxNQUFNQSxF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QUFoQixJQUE4QixFQUE5QjtBQUMvQyxTQUFLL0IsVUFBTCxDQUFnQitCLFVBQWhCLEVBQTRCRSxHQUE1QixJQUFtQ0csS0FBbkM7QUFDQTlDLE1BQUUsQ0FBQ2tCLGFBQUgsQ0FBaUIsS0FBS3NCLGFBQUwsQ0FBbUJDLFVBQW5CLENBQWpCLEVBQWlEdEIsSUFBSSxDQUFDQyxTQUFMLENBQWUsS0FBS1YsVUFBTCxDQUFnQitCLFVBQWhCLENBQWYsRUFBNEMsSUFBNUMsRUFBa0QsQ0FBbEQsQ0FBakQ7QUFDSDs7QUFFRHVCLGtCQUFnQixDQUFDdkIsVUFBRCxFQUFhRSxHQUFiLEVBQWtCO0FBQzlCLFFBQUksS0FBS2pDLFVBQUwsQ0FBZ0IrQixVQUFoQixNQUFnQ29CLFNBQXBDLEVBQStDLEtBQUtuRCxVQUFMLENBQWdCK0IsVUFBaEIsSUFBOEIsRUFBOUI7QUFDL0MsV0FBTyxLQUFLL0IsVUFBTCxDQUFnQitCLFVBQWhCLEVBQTRCRSxHQUE1QixDQUFQO0FBQ0EzQyxNQUFFLENBQUNrQixhQUFILENBQWlCLEtBQUtzQixhQUFMLENBQW1CQyxVQUFuQixDQUFqQixFQUFpRHRCLElBQUksQ0FBQ0MsU0FBTCxDQUFlLEtBQUtWLFVBQUwsQ0FBZ0IrQixVQUFoQixDQUFmLEVBQTRDLElBQTVDLEVBQWtELENBQWxELENBQWpEO0FBQ0g7O0FBdkc4QixDQUFwQixFQUFmIiwiZmlsZSI6Ii4vc3JjL21vZHVsZXMvZGF0YXN0b3JlLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25maWd9IGZyb20gXCJkYXRhXCI7XHJcbmltcG9ydCBVdGlsaXRpZXMgZnJvbSBcIi4vdXRpbGl0aWVzXCI7XHJcbmNvbnN0IGZzID0gcmVxdWlyZShcImZzXCIpO1xyXG5jb25zdCBwYXRoID0gcmVxdWlyZShcInBhdGhcIik7XHJcbmNvbnN0IHJlbGVhc2VDaGFubmVsID0gRGlzY29yZE5hdGl2ZS5nbG9iYWxzLnJlbGVhc2VDaGFubmVsO1xyXG5cclxuLy8gU2NoZW1hXHJcbi8vID09PT09PT09PT09PT09PT09PT09PT09XHJcbi8vICVhcHBkYXRhJVxcQmV0dGVyRGlzY29yZFxyXG4vLyAgICAgLT4gZGF0YVxyXG4vLyAgICAgICAgIC0+IFtyZWxlYXNlQ2hhbm5lbF1cXCAoc3RhYmxlL2NhbmFyeS9wdGIpXHJcbi8vICAgICAgICAgICAgIC0+IHNldHRpbmdzLmpzb25cclxuLy8gICAgICAgICAgICAgLT4gcGx1Z2lucy5qc29uXHJcbi8vICAgICAgICAgICAgIC0+IHRoZW1lcy5qc29uXHJcblxyXG5leHBvcnQgZGVmYXVsdCBuZXcgY2xhc3MgRGF0YVN0b3JlIHtcclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IHttaXNjOiB7fX07XHJcbiAgICAgICAgdGhpcy5wbHVnaW5EYXRhID0ge307XHJcbiAgICAgICAgdGhpcy5pbml0aWFsaXplKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaW5pdGlhbGl6ZSgpIHtcclxuICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmModGhpcy5iYXNlRm9sZGVyKSkgZnMubWtkaXJTeW5jKHRoaXMuYmFzZUZvbGRlcik7XHJcbiAgICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKHRoaXMuZGF0YUZvbGRlcikpIGZzLm1rZGlyU3luYyh0aGlzLmRhdGFGb2xkZXIpO1xyXG4gICAgICAgIGlmICghZnMuZXhpc3RzU3luYyh0aGlzLmxvY2FsZUZvbGRlcikpIGZzLm1rZGlyU3luYyh0aGlzLmxvY2FsZUZvbGRlcik7XHJcbiAgICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKHRoaXMuQkRGaWxlKSkgZnMud3JpdGVGaWxlU3luYyh0aGlzLkJERmlsZSwgSlNPTi5zdHJpbmdpZnkodGhpcy5kYXRhLm1pc2MsIG51bGwsIDQpKTtcclxuICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmModGhpcy5jdXN0b21DU1MpKSBmcy53cml0ZUZpbGVTeW5jKHRoaXMuY3VzdG9tQ1NTLCBcIlwiKTtcclxuICAgICAgICBjb25zdCBkYXRhRmlsZXMgPSBmcy5yZWFkZGlyU3luYyh0aGlzLmRhdGFGb2xkZXIpLmZpbHRlcihmID0+ICFmcy5zdGF0U3luYyhwYXRoLnJlc29sdmUodGhpcy5kYXRhRm9sZGVyLCBmKSkuaXNEaXJlY3RvcnkoKSAmJiBmLmVuZHNXaXRoKFwiLmpzb25cIikpO1xyXG4gICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBkYXRhRmlsZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRhW2ZpbGUuc3BsaXQoXCIuXCIpWzBdXSA9IF9fbm9uX3dlYnBhY2tfcmVxdWlyZV9fKHBhdGgucmVzb2x2ZSh0aGlzLmRhdGFGb2xkZXIsIGZpbGUpKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gdGhpcy5kYXRhID0gX19ub25fd2VicGFja19yZXF1aXJlX18odGhpcy5CREZpbGUpO1xyXG4gICAgICAgIC8vIGlmIChkYXRhLmhhc093blByb3BlcnR5KFwic2V0dGluZ3NcIikpIHRoaXMuZGF0YSA9IGRhdGE7XHJcbiAgICAgICAgLy8gaWYgKCFmcy5leGlzdHNTeW5jKHRoaXMuc2V0dGluZ3NGaWxlKSkgcmV0dXJuO1xyXG4gICAgICAgIC8vIGxldCBzZXR0aW5ncyA9IF9fbm9uX3dlYnBhY2tfcmVxdWlyZV9fKHRoaXMuc2V0dGluZ3NGaWxlKTtcclxuICAgICAgICAvLyBmcy51bmxpbmtTeW5jKHRoaXMuc2V0dGluZ3NGaWxlKTtcclxuICAgICAgICAvLyBpZiAoc2V0dGluZ3MuaGFzT3duUHJvcGVydHkoXCJzZXR0aW5nc1wiKSkgc2V0dGluZ3MgPSBPYmplY3QuYXNzaWduKHtzdGFibGU6IHt9LCBjYW5hcnk6IHt9LCBwdGI6IHt9fSwge1tyZWxlYXNlQ2hhbm5lbF06IHNldHRpbmdzfSk7XHJcbiAgICAgICAgLy8gZWxzZSBzZXR0aW5ncyA9IE9iamVjdC5hc3NpZ24oe3N0YWJsZToge30sIGNhbmFyeToge30sIHB0Yjoge319LCBzZXR0aW5ncyk7XHJcbiAgICAgICAgLy8gdGhpcy5zZXRCRERhdGEoXCJzZXR0aW5nc1wiLCBzZXR0aW5ncyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGN1c3RvbUNTUygpIHtyZXR1cm4gdGhpcy5fY3VzdG9tQ1NTIHx8ICh0aGlzLl9jdXN0b21DU1MgPSBwYXRoLnJlc29sdmUodGhpcy5kYXRhRm9sZGVyLCBcImN1c3RvbS5jc3NcIikpO31cclxuICAgIGdldCBiYXNlRm9sZGVyKCkge3JldHVybiB0aGlzLl9iYXNlRm9sZGVyIHx8ICh0aGlzLl9iYXNlRm9sZGVyID0gcGF0aC5yZXNvbHZlKENvbmZpZy5kYXRhUGF0aCwgXCJkYXRhXCIpKTt9XHJcbiAgICBnZXQgZGF0YUZvbGRlcigpIHtyZXR1cm4gdGhpcy5fZGF0YUZvbGRlciB8fCAodGhpcy5fZGF0YUZvbGRlciA9IHBhdGgucmVzb2x2ZSh0aGlzLmJhc2VGb2xkZXIsIGAke3JlbGVhc2VDaGFubmVsfWApKTt9XHJcbiAgICBnZXQgbG9jYWxlRm9sZGVyKCkge3JldHVybiB0aGlzLl9sb2NhbGVGb2xkZXIgfHwgKHRoaXMuX2xvY2FsZUZvbGRlciA9IHBhdGgucmVzb2x2ZSh0aGlzLmJhc2VGb2xkZXIsIGBsb2NhbGVzYCkpO31cclxuICAgIGdldCBCREZpbGUoKSB7cmV0dXJuIHRoaXMuX0JERmlsZSB8fCAodGhpcy5fQkRGaWxlID0gcGF0aC5yZXNvbHZlKENvbmZpZy5kYXRhUGF0aCwgXCJkYXRhXCIsIGAke3JlbGVhc2VDaGFubmVsfS5qc29uYCkpO31cclxuICAgIC8vIGdldCBzZXR0aW5nc0ZpbGUoKSB7cmV0dXJuIHRoaXMuX3NldHRpbmdzRmlsZSB8fCAodGhpcy5fc2V0dGluZ3NGaWxlID0gcGF0aC5yZXNvbHZlKENvbmZpZy5kYXRhUGF0aCwgXCJiZHNldHRpbmdzLmpzb25cIikpO31cclxuICAgIGdldFBsdWdpbkZpbGUocGx1Z2luTmFtZSkge3JldHVybiBwYXRoLnJlc29sdmUoQ29uZmlnLmRhdGFQYXRoLCBcInBsdWdpbnNcIiwgcGx1Z2luTmFtZSArIFwiLmNvbmZpZy5qc29uXCIpO31cclxuXHJcbiAgICAvLyBnZXRTZXR0aW5nR3JvdXAoa2V5KSB7XHJcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuZGF0YS5zZXR0aW5nc1trZXldIHx8IG51bGw7XHJcbiAgICAvLyB9XHJcblxyXG4gICAgLy8gc2V0U2V0dGluZ0dyb3VwKGtleSwgZGF0YSkge1xyXG4gICAgLy8gICAgIHRoaXMuZGF0YS5zZXR0aW5nc1trZXldID0gZGF0YTtcclxuICAgIC8vICAgICBmcy53cml0ZUZpbGVTeW5jKHRoaXMuQkRGaWxlLCBKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGEsIG51bGwsIDQpKTtcclxuICAgIC8vIH1cclxuXHJcbiAgICBfZ2V0RmlsZShrZXkpIHtcclxuICAgICAgICBpZiAoa2V5ID09IFwic2V0dGluZ3NcIiB8fCBrZXkgPT0gXCJwbHVnaW5zXCIgfHwga2V5ID09IFwidGhlbWVzXCIpIHJldHVybiBwYXRoLnJlc29sdmUodGhpcy5kYXRhRm9sZGVyLCBgJHtrZXl9Lmpzb25gKTtcclxuICAgICAgICByZXR1cm4gcGF0aC5yZXNvbHZlKHRoaXMuZGF0YUZvbGRlciwgYG1pc2MuanNvbmApO1xyXG4gICAgfVxyXG5cclxuICAgIGdldEJERGF0YShrZXkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kYXRhLm1pc2Nba2V5XSB8fCBcIlwiO1xyXG4gICAgfVxyXG5cclxuICAgIHNldEJERGF0YShrZXksIHZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5kYXRhLm1pc2Nba2V5XSA9IHZhbHVlO1xyXG4gICAgICAgIGZzLndyaXRlRmlsZVN5bmMocGF0aC5yZXNvbHZlKHRoaXMuZGF0YUZvbGRlciwgYG1pc2MuanNvbmApLCBKU09OLnN0cmluZ2lmeSh0aGlzLmRhdGEubWlzYywgbnVsbCwgNCkpO1xyXG4gICAgfVxyXG5cclxuICAgIGdldExvY2FsZShsb2NhbGUpIHtcclxuICAgICAgICBjb25zdCBmaWxlID0gcGF0aC5yZXNvbHZlKHRoaXMubG9jYWxlRm9sZGVyLCBgJHtsb2NhbGV9Lmpzb25gKTtcclxuICAgICAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZmlsZSkpIHJldHVybiBudWxsO1xyXG4gICAgICAgIHJldHVybiBVdGlsaXRpZXMudGVzdEpTT04oZnMucmVhZEZpbGVTeW5jKGZpbGUpLnRvU3RyaW5nKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmVMb2NhbGUobG9jYWxlLCBzdHJpbmdzKSB7XHJcbiAgICAgICAgZnMud3JpdGVGaWxlU3luYyhwYXRoLnJlc29sdmUodGhpcy5sb2NhbGVGb2xkZXIsIGAke2xvY2FsZX0uanNvbmApLCBKU09OLnN0cmluZ2lmeShzdHJpbmdzLCBudWxsLCA0KSk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0RGF0YShrZXkpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5kYXRhW2tleV0gfHwgXCJcIjtcclxuICAgIH1cclxuXHJcbiAgICBzZXREYXRhKGtleSwgdmFsdWUpIHtcclxuICAgICAgICB0aGlzLmRhdGFba2V5XSA9IHZhbHVlO1xyXG4gICAgICAgIGZzLndyaXRlRmlsZVN5bmMocGF0aC5yZXNvbHZlKHRoaXMuZGF0YUZvbGRlciwgYCR7a2V5fS5qc29uYCksIEpTT04uc3RyaW5naWZ5KHZhbHVlLCBudWxsLCA0KSk7XHJcbiAgICB9XHJcblxyXG4gICAgbG9hZEN1c3RvbUNTUygpIHtcclxuICAgICAgICByZXR1cm4gZnMucmVhZEZpbGVTeW5jKHRoaXMuY3VzdG9tQ1NTKS50b1N0cmluZygpO1xyXG4gICAgfVxyXG5cclxuICAgIHNhdmVDdXN0b21DU1MoY3NzKSB7XHJcbiAgICAgICAgcmV0dXJuIGZzLndyaXRlRmlsZVN5bmModGhpcy5jdXN0b21DU1MsIGNzcyk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0UGx1Z2luRGF0YShwbHVnaW5OYW1lLCBrZXkpIHtcclxuICAgICAgICBpZiAodGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdICE9PSB1bmRlZmluZWQpIHJldHVybiB0aGlzLnBsdWdpbkRhdGFbcGx1Z2luTmFtZV1ba2V5XSB8fCB1bmRlZmluZWQ7XHJcbiAgICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKHRoaXMuZ2V0UGx1Z2luRmlsZShwbHVnaW5OYW1lKSkpIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmModGhpcy5nZXRQbHVnaW5GaWxlKHBsdWdpbk5hbWUpKSk7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGx1Z2luRGF0YVtwbHVnaW5OYW1lXVtrZXldIHx8IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBzZXRQbHVnaW5EYXRhKHBsdWdpbk5hbWUsIGtleSwgdmFsdWUpIHtcclxuICAgICAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuO1xyXG4gICAgICAgIGlmICh0aGlzLnBsdWdpbkRhdGFbcGx1Z2luTmFtZV0gPT09IHVuZGVmaW5lZCkgdGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdID0ge307XHJcbiAgICAgICAgdGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdW2tleV0gPSB2YWx1ZTtcclxuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKHRoaXMuZ2V0UGx1Z2luRmlsZShwbHVnaW5OYW1lKSwgSlNPTi5zdHJpbmdpZnkodGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdLCBudWxsLCA0KSk7XHJcbiAgICB9XHJcblxyXG4gICAgZGVsZXRlUGx1Z2luRGF0YShwbHVnaW5OYW1lLCBrZXkpIHtcclxuICAgICAgICBpZiAodGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdID09PSB1bmRlZmluZWQpIHRoaXMucGx1Z2luRGF0YVtwbHVnaW5OYW1lXSA9IHt9O1xyXG4gICAgICAgIGRlbGV0ZSB0aGlzLnBsdWdpbkRhdGFbcGx1Z2luTmFtZV1ba2V5XTtcclxuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKHRoaXMuZ2V0UGx1Z2luRmlsZShwbHVnaW5OYW1lKSwgSlNPTi5zdHJpbmdpZnkodGhpcy5wbHVnaW5EYXRhW3BsdWdpbk5hbWVdLCBudWxsLCA0KSk7XHJcbiAgICB9XHJcbn07Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/modules/datastore.js\n"); /***/ }), @@ -527,7 +527,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var data /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"currentLocale\", function() { return currentLocale; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setLocale\", function() { return setLocale; });\n/* harmony import */ var _discordmodules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./discordmodules */ \"./src/modules/discordmodules.js\");\n/* harmony import */ var _data_strings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../data/strings */ \"./src/data/strings.js\");\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var _structs_string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../structs/string */ \"./src/structs/string.js\");\n/* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./emitter */ \"./src/modules/emitter.js\");\n\n\n\n\n\nconst {\n Dispatcher,\n DiscordConstants,\n UserSettingsStore\n} = _discordmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\nconst Messages = {};\nconst discordLocale = UserSettingsStore.locale.split(\"-\")[0];\nlet currentLocale = \"en\";\nfunction setLocale(newLocale) {\n currentLocale = newLocale;\n _utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].extend(Messages, _data_strings__WEBPACK_IMPORTED_MODULE_1__[\"default\"][currentLocale]);\n _emitter__WEBPACK_IMPORTED_MODULE_4__[\"default\"].emit(\"strings-updated\");\n}\n_utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].extend(Messages, _data_strings__WEBPACK_IMPORTED_MODULE_1__[\"default\"][currentLocale]);\nif (_data_strings__WEBPACK_IMPORTED_MODULE_1__[\"default\"][discordLocale] && discordLocale != \"en\") setLocale(discordLocale);\nDispatcher.subscribe(DiscordConstants.ActionTypes.USER_SETTINGS_UPDATE, ({\n settings\n}) => {\n const newLocale = settings.locale;\n if (newLocale && newLocale != currentLocale) setLocale(newLocale.split(\"-\")[0]);\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (new Proxy(Messages, {\n get: function (strings, category) {\n if (!strings.hasOwnProperty(category)) {\n return new Proxy({}, {\n get: function () {\n return `String group \"${category}\" not found.`;\n }\n });\n }\n\n return new Proxy(strings[category], {\n get: function (obj, prop) {\n if (typeof obj[prop] == \"string\") return new _structs_string__WEBPACK_IMPORTED_MODULE_3__[\"default\"](obj[prop]);\n return obj[prop];\n }\n });\n }\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvc3RyaW5ncy5qcz8zNTllIl0sIm5hbWVzIjpbIkRpc3BhdGNoZXIiLCJEaXNjb3JkQ29uc3RhbnRzIiwiVXNlclNldHRpbmdzU3RvcmUiLCJEaXNjb3JkTW9kdWxlcyIsIk1lc3NhZ2VzIiwiZGlzY29yZExvY2FsZSIsImxvY2FsZSIsInNwbGl0IiwiY3VycmVudExvY2FsZSIsInNldExvY2FsZSIsIm5ld0xvY2FsZSIsIlV0aWxpdGllcyIsImV4dGVuZCIsIlJhd1N0cmluZ3MiLCJFdmVudHMiLCJlbWl0Iiwic3Vic2NyaWJlIiwiQWN0aW9uVHlwZXMiLCJVU0VSX1NFVFRJTkdTX1VQREFURSIsInNldHRpbmdzIiwiUHJveHkiLCJnZXQiLCJzdHJpbmdzIiwiY2F0ZWdvcnkiLCJoYXNPd25Qcm9wZXJ0eSIsIm9iaiIsInByb3AiLCJGb3JtYXR0YWJsZVN0cmluZyJdLCJtYXBwaW5ncyI6IkFBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQSxNQUFNO0FBQUNBLFlBQUQ7QUFBYUMsa0JBQWI7QUFBK0JDO0FBQS9CLElBQW9EQyx1REFBMUQ7QUFDQSxNQUFNQyxRQUFRLEdBQUcsRUFBakI7QUFFQSxNQUFNQyxhQUFhLEdBQUdILGlCQUFpQixDQUFDSSxNQUFsQixDQUF5QkMsS0FBekIsQ0FBK0IsR0FBL0IsRUFBb0MsQ0FBcEMsQ0FBdEI7QUFFTyxJQUFJQyxhQUFhLEdBQUcsSUFBcEI7QUFDQSxTQUFTQyxTQUFULENBQW1CQyxTQUFuQixFQUE4QjtBQUNqQ0YsZUFBYSxHQUFHRSxTQUFoQjtBQUNIQyxvREFBUyxDQUFDQyxNQUFWLENBQWlCUixRQUFqQixFQUEyQlMscURBQVUsQ0FBQ0wsYUFBRCxDQUFyQztBQUNBTSxrREFBTSxDQUFDQyxJQUFQLENBQVksaUJBQVo7QUFDQTtBQUVESixrREFBUyxDQUFDQyxNQUFWLENBQWlCUixRQUFqQixFQUEyQlMscURBQVUsQ0FBQ0wsYUFBRCxDQUFyQztBQUVBLElBQUlLLHFEQUFVLENBQUNSLGFBQUQsQ0FBVixJQUE2QkEsYUFBYSxJQUFJLElBQWxELEVBQXdESSxTQUFTLENBQUNKLGFBQUQsQ0FBVDtBQUV4REwsVUFBVSxDQUFDZ0IsU0FBWCxDQUFxQmYsZ0JBQWdCLENBQUNnQixXQUFqQixDQUE2QkMsb0JBQWxELEVBQXdFLENBQUM7QUFBQ0M7QUFBRCxDQUFELEtBQWdCO0FBQ3BGLFFBQU1ULFNBQVMsR0FBR1MsUUFBUSxDQUFDYixNQUEzQjtBQUNBLE1BQUlJLFNBQVMsSUFBSUEsU0FBUyxJQUFJRixhQUE5QixFQUE2Q0MsU0FBUyxDQUFDQyxTQUFTLENBQUNILEtBQVYsQ0FBZ0IsR0FBaEIsRUFBcUIsQ0FBckIsQ0FBRCxDQUFUO0FBQ2hELENBSEQ7QUFLZSxtRUFBSWEsS0FBSixDQUFVaEIsUUFBVixFQUFvQjtBQUNsQ2lCLEtBQUcsRUFBRSxVQUFTQyxPQUFULEVBQWtCQyxRQUFsQixFQUE0QjtBQUMxQixRQUFJLENBQUNELE9BQU8sQ0FBQ0UsY0FBUixDQUF1QkQsUUFBdkIsQ0FBTCxFQUF1QztBQUM1QyxhQUFPLElBQUlILEtBQUosQ0FBVSxFQUFWLEVBQWM7QUFDcEJDLFdBQUcsRUFBRSxZQUFXO0FBQ2YsaUJBQVEsaUJBQWdCRSxRQUFTLGNBQWpDO0FBQ0E7QUFIbUIsT0FBZCxDQUFQO0FBS0E7O0FBQ0QsV0FBTyxJQUFJSCxLQUFKLENBQVVFLE9BQU8sQ0FBQ0MsUUFBRCxDQUFqQixFQUE2QjtBQUNuQ0YsU0FBRyxFQUFFLFVBQVNJLEdBQVQsRUFBY0MsSUFBZCxFQUFvQjtBQUN4QixZQUFJLE9BQU9ELEdBQUcsQ0FBQ0MsSUFBRCxDQUFWLElBQXFCLFFBQXpCLEVBQW1DLE9BQU8sSUFBSUMsdURBQUosQ0FBc0JGLEdBQUcsQ0FBQ0MsSUFBRCxDQUF6QixDQUFQO0FBQ25DLGVBQU9ELEdBQUcsQ0FBQ0MsSUFBRCxDQUFWO0FBQ0E7QUFKa0MsS0FBN0IsQ0FBUDtBQU1BO0FBZmlDLENBQXBCLENBQWYiLCJmaWxlIjoiLi9zcmMvbW9kdWxlcy9zdHJpbmdzLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IERpc2NvcmRNb2R1bGVzIGZyb20gXCIuL2Rpc2NvcmRtb2R1bGVzXCI7XHJcbmltcG9ydCBSYXdTdHJpbmdzIGZyb20gXCIuLi9kYXRhL3N0cmluZ3NcIjtcclxuaW1wb3J0IFV0aWxpdGllcyBmcm9tIFwiLi91dGlsaXRpZXNcIjtcclxuaW1wb3J0IEZvcm1hdHRhYmxlU3RyaW5nIGZyb20gXCIuLi9zdHJ1Y3RzL3N0cmluZ1wiO1xyXG5pbXBvcnQgRXZlbnRzIGZyb20gXCIuL2VtaXR0ZXJcIjtcclxuXHJcbmNvbnN0IHtEaXNwYXRjaGVyLCBEaXNjb3JkQ29uc3RhbnRzLCBVc2VyU2V0dGluZ3NTdG9yZX0gPSBEaXNjb3JkTW9kdWxlcztcclxuY29uc3QgTWVzc2FnZXMgPSB7fTtcclxuXHJcbmNvbnN0IGRpc2NvcmRMb2NhbGUgPSBVc2VyU2V0dGluZ3NTdG9yZS5sb2NhbGUuc3BsaXQoXCItXCIpWzBdO1xyXG5cclxuZXhwb3J0IGxldCBjdXJyZW50TG9jYWxlID0gXCJlblwiO1xyXG5leHBvcnQgZnVuY3Rpb24gc2V0TG9jYWxlKG5ld0xvY2FsZSkge1xyXG4gICAgY3VycmVudExvY2FsZSA9IG5ld0xvY2FsZTtcclxuXHRVdGlsaXRpZXMuZXh0ZW5kKE1lc3NhZ2VzLCBSYXdTdHJpbmdzW2N1cnJlbnRMb2NhbGVdKTtcclxuXHRFdmVudHMuZW1pdChcInN0cmluZ3MtdXBkYXRlZFwiKTtcclxufVxyXG5cclxuVXRpbGl0aWVzLmV4dGVuZChNZXNzYWdlcywgUmF3U3RyaW5nc1tjdXJyZW50TG9jYWxlXSk7XHJcblxyXG5pZiAoUmF3U3RyaW5nc1tkaXNjb3JkTG9jYWxlXSAmJiBkaXNjb3JkTG9jYWxlICE9IFwiZW5cIikgc2V0TG9jYWxlKGRpc2NvcmRMb2NhbGUpO1xyXG5cclxuRGlzcGF0Y2hlci5zdWJzY3JpYmUoRGlzY29yZENvbnN0YW50cy5BY3Rpb25UeXBlcy5VU0VSX1NFVFRJTkdTX1VQREFURSwgKHtzZXR0aW5nc30pID0+IHtcclxuICAgIGNvbnN0IG5ld0xvY2FsZSA9IHNldHRpbmdzLmxvY2FsZTtcclxuICAgIGlmIChuZXdMb2NhbGUgJiYgbmV3TG9jYWxlICE9IGN1cnJlbnRMb2NhbGUpIHNldExvY2FsZShuZXdMb2NhbGUuc3BsaXQoXCItXCIpWzBdKTtcclxufSk7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBuZXcgUHJveHkoTWVzc2FnZXMsIHtcclxuXHRnZXQ6IGZ1bmN0aW9uKHN0cmluZ3MsIGNhdGVnb3J5KSB7XHJcbiAgICAgICAgaWYgKCFzdHJpbmdzLmhhc093blByb3BlcnR5KGNhdGVnb3J5KSkge1xyXG5cdFx0XHRyZXR1cm4gbmV3IFByb3h5KHt9LCB7XHJcblx0XHRcdFx0Z2V0OiBmdW5jdGlvbigpIHtcclxuXHRcdFx0XHRcdHJldHVybiBgU3RyaW5nIGdyb3VwIFwiJHtjYXRlZ29yeX1cIiBub3QgZm91bmQuYDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdFx0cmV0dXJuIG5ldyBQcm94eShzdHJpbmdzW2NhdGVnb3J5XSwge1xyXG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKG9iaiwgcHJvcCkge1xyXG5cdFx0XHRcdGlmICh0eXBlb2Yob2JqW3Byb3BdKSA9PSBcInN0cmluZ1wiKSByZXR1cm4gbmV3IEZvcm1hdHRhYmxlU3RyaW5nKG9ialtwcm9wXSk7XHJcblx0XHRcdFx0cmV0dXJuIG9ialtwcm9wXTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG59KTtcclxuXHJcbiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/modules/strings.js\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"currentLocale\", function() { return currentLocale; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"setLocale\", function() { return setLocale; });\n/* harmony import */ var _discordmodules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./discordmodules */ \"./src/modules/discordmodules.js\");\n/* harmony import */ var _data_strings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../data/strings */ \"./src/data/strings.js\");\n/* harmony import */ var _utilities__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./utilities */ \"./src/modules/utilities.js\");\n/* harmony import */ var _structs_string__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../structs/string */ \"./src/structs/string.js\");\n/* harmony import */ var _emitter__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./emitter */ \"./src/modules/emitter.js\");\n/* harmony import */ var _datastore__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./datastore */ \"./src/modules/datastore.js\");\n\n\n\n\n\n\n\nconst request = __webpack_require__(/*! request */ \"request\");\n\nconst discordLocale = UserSettingsStore.locale.split(\"-\")[0];\nconst savedStrings = _datastore__WEBPACK_IMPORTED_MODULE_5__[\"default\"].getLocale(discordLocale);\n\nif (!savedStrings) {\n const options = {\n url: \"https://rauenzi.github.io/BetterDiscordApp/data/emotedata_twitch_subscriber.json\",\n timeout: 5000,\n json: true\n };\n request.get(options, (err, resp, newStrings) => {\n if (err) return;\n _datastore__WEBPACK_IMPORTED_MODULE_5__[\"default\"].saveLocale(discordLocale, newStrings);\n _utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].extend(Messages, newStrings);\n _emitter__WEBPACK_IMPORTED_MODULE_4__[\"default\"].emit(\"strings-updated\");\n });\n}\n\nconst {\n Dispatcher,\n DiscordConstants,\n UserSettingsStore\n} = _discordmodules__WEBPACK_IMPORTED_MODULE_0__[\"default\"];\nconst Messages = {};\nlet currentLocale = \"en\";\nfunction setLocale(newLocale) {\n currentLocale = newLocale;\n _utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].extend(Messages, _data_strings__WEBPACK_IMPORTED_MODULE_1__[\"default\"][currentLocale]);\n _emitter__WEBPACK_IMPORTED_MODULE_4__[\"default\"].emit(\"strings-updated\");\n}\n_utilities__WEBPACK_IMPORTED_MODULE_2__[\"default\"].extend(Messages, _data_strings__WEBPACK_IMPORTED_MODULE_1__[\"default\"][currentLocale]); // if (RawStrings[discordLocale] && discordLocale != currentLocale) setLocale(discordLocale);\n\nDispatcher.subscribe(DiscordConstants.ActionTypes.USER_SETTINGS_UPDATE, ({\n settings\n}) => {\n const newLocale = settings.locale;\n if (newLocale && newLocale != currentLocale) setLocale(newLocale.split(\"-\")[0]);\n});\n/* harmony default export */ __webpack_exports__[\"default\"] = (new Proxy(Messages, {\n get: function (strings, category) {\n if (!strings.hasOwnProperty(category)) {\n return new Proxy({}, {\n get: function () {\n return `String group \"${category}\" not found.`;\n }\n });\n }\n\n return new Proxy(strings[category], {\n get: function (obj, prop) {\n if (typeof obj[prop] == \"string\") return new _structs_string__WEBPACK_IMPORTED_MODULE_3__[\"default\"](obj[prop]);\n return obj[prop];\n }\n });\n }\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL21vZHVsZXMvc3RyaW5ncy5qcz8zNTllIl0sIm5hbWVzIjpbInJlcXVlc3QiLCJyZXF1aXJlIiwiZGlzY29yZExvY2FsZSIsIlVzZXJTZXR0aW5nc1N0b3JlIiwibG9jYWxlIiwic3BsaXQiLCJzYXZlZFN0cmluZ3MiLCJEYXRhU3RvcmUiLCJnZXRMb2NhbGUiLCJvcHRpb25zIiwidXJsIiwidGltZW91dCIsImpzb24iLCJnZXQiLCJlcnIiLCJyZXNwIiwibmV3U3RyaW5ncyIsInNhdmVMb2NhbGUiLCJVdGlsaXRpZXMiLCJleHRlbmQiLCJNZXNzYWdlcyIsIkV2ZW50cyIsImVtaXQiLCJEaXNwYXRjaGVyIiwiRGlzY29yZENvbnN0YW50cyIsIkRpc2NvcmRNb2R1bGVzIiwiY3VycmVudExvY2FsZSIsInNldExvY2FsZSIsIm5ld0xvY2FsZSIsIlJhd1N0cmluZ3MiLCJzdWJzY3JpYmUiLCJBY3Rpb25UeXBlcyIsIlVTRVJfU0VUVElOR1NfVVBEQVRFIiwic2V0dGluZ3MiLCJQcm94eSIsInN0cmluZ3MiLCJjYXRlZ29yeSIsImhhc093blByb3BlcnR5Iiwib2JqIiwicHJvcCIsIkZvcm1hdHRhYmxlU3RyaW5nIl0sIm1hcHBpbmdzIjoiQUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsTUFBTUEsT0FBTyxHQUFHQyxtQkFBTyxDQUFDLHdCQUFELENBQXZCOztBQUNBLE1BQU1DLGFBQWEsR0FBR0MsaUJBQWlCLENBQUNDLE1BQWxCLENBQXlCQyxLQUF6QixDQUErQixHQUEvQixFQUFvQyxDQUFwQyxDQUF0QjtBQUVBLE1BQU1DLFlBQVksR0FBR0Msa0RBQVMsQ0FBQ0MsU0FBVixDQUFvQk4sYUFBcEIsQ0FBckI7O0FBQ0EsSUFBSSxDQUFDSSxZQUFMLEVBQW1CO0FBQ2xCLFFBQU1HLE9BQU8sR0FBRztBQUNmQyxPQUFHLEVBQUUsa0ZBRFU7QUFFZkMsV0FBTyxFQUFFLElBRk07QUFHVEMsUUFBSSxFQUFFO0FBSEcsR0FBaEI7QUFLQVosU0FBTyxDQUFDYSxHQUFSLENBQVlKLE9BQVosRUFBcUIsQ0FBQ0ssR0FBRCxFQUFNQyxJQUFOLEVBQVlDLFVBQVosS0FBMkI7QUFDL0MsUUFBSUYsR0FBSixFQUFTO0FBQ1RQLHNEQUFTLENBQUNVLFVBQVYsQ0FBcUJmLGFBQXJCLEVBQW9DYyxVQUFwQztBQUNBRSxzREFBUyxDQUFDQyxNQUFWLENBQWlCQyxRQUFqQixFQUEyQkosVUFBM0I7QUFDQUssb0RBQU0sQ0FBQ0MsSUFBUCxDQUFZLGlCQUFaO0FBQ0EsR0FMRDtBQU1BOztBQUVELE1BQU07QUFBQ0MsWUFBRDtBQUFhQyxrQkFBYjtBQUErQnJCO0FBQS9CLElBQW9Ec0IsdURBQTFEO0FBQ0EsTUFBTUwsUUFBUSxHQUFHLEVBQWpCO0FBSU8sSUFBSU0sYUFBYSxHQUFHLElBQXBCO0FBQ0EsU0FBU0MsU0FBVCxDQUFtQkMsU0FBbkIsRUFBOEI7QUFDakNGLGVBQWEsR0FBR0UsU0FBaEI7QUFDSFYsb0RBQVMsQ0FBQ0MsTUFBVixDQUFpQkMsUUFBakIsRUFBMkJTLHFEQUFVLENBQUNILGFBQUQsQ0FBckM7QUFDQUwsa0RBQU0sQ0FBQ0MsSUFBUCxDQUFZLGlCQUFaO0FBQ0E7QUFFREosa0RBQVMsQ0FBQ0MsTUFBVixDQUFpQkMsUUFBakIsRUFBMkJTLHFEQUFVLENBQUNILGFBQUQsQ0FBckMsRSxDQUVBOztBQUVBSCxVQUFVLENBQUNPLFNBQVgsQ0FBcUJOLGdCQUFnQixDQUFDTyxXQUFqQixDQUE2QkMsb0JBQWxELEVBQXdFLENBQUM7QUFBQ0M7QUFBRCxDQUFELEtBQWdCO0FBQ3BGLFFBQU1MLFNBQVMsR0FBR0ssUUFBUSxDQUFDN0IsTUFBM0I7QUFDQSxNQUFJd0IsU0FBUyxJQUFJQSxTQUFTLElBQUlGLGFBQTlCLEVBQTZDQyxTQUFTLENBQUNDLFNBQVMsQ0FBQ3ZCLEtBQVYsQ0FBZ0IsR0FBaEIsRUFBcUIsQ0FBckIsQ0FBRCxDQUFUO0FBQ2hELENBSEQ7QUFNZSxtRUFBSTZCLEtBQUosQ0FBVWQsUUFBVixFQUFvQjtBQUNsQ1AsS0FBRyxFQUFFLFVBQVNzQixPQUFULEVBQWtCQyxRQUFsQixFQUE0QjtBQUMxQixRQUFJLENBQUNELE9BQU8sQ0FBQ0UsY0FBUixDQUF1QkQsUUFBdkIsQ0FBTCxFQUF1QztBQUM1QyxhQUFPLElBQUlGLEtBQUosQ0FBVSxFQUFWLEVBQWM7QUFDcEJyQixXQUFHLEVBQUUsWUFBVztBQUNmLGlCQUFRLGlCQUFnQnVCLFFBQVMsY0FBakM7QUFDQTtBQUhtQixPQUFkLENBQVA7QUFLQTs7QUFDRCxXQUFPLElBQUlGLEtBQUosQ0FBVUMsT0FBTyxDQUFDQyxRQUFELENBQWpCLEVBQTZCO0FBQ25DdkIsU0FBRyxFQUFFLFVBQVN5QixHQUFULEVBQWNDLElBQWQsRUFBb0I7QUFDeEIsWUFBSSxPQUFPRCxHQUFHLENBQUNDLElBQUQsQ0FBVixJQUFxQixRQUF6QixFQUFtQyxPQUFPLElBQUlDLHVEQUFKLENBQXNCRixHQUFHLENBQUNDLElBQUQsQ0FBekIsQ0FBUDtBQUNuQyxlQUFPRCxHQUFHLENBQUNDLElBQUQsQ0FBVjtBQUNBO0FBSmtDLEtBQTdCLENBQVA7QUFNQTtBQWZpQyxDQUFwQixDQUFmIiwiZmlsZSI6Ii4vc3JjL21vZHVsZXMvc3RyaW5ncy5qcy5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBEaXNjb3JkTW9kdWxlcyBmcm9tIFwiLi9kaXNjb3JkbW9kdWxlc1wiO1xyXG5pbXBvcnQgUmF3U3RyaW5ncyBmcm9tIFwiLi4vZGF0YS9zdHJpbmdzXCI7XHJcbmltcG9ydCBVdGlsaXRpZXMgZnJvbSBcIi4vdXRpbGl0aWVzXCI7XHJcbmltcG9ydCBGb3JtYXR0YWJsZVN0cmluZyBmcm9tIFwiLi4vc3RydWN0cy9zdHJpbmdcIjtcclxuaW1wb3J0IEV2ZW50cyBmcm9tIFwiLi9lbWl0dGVyXCI7XHJcbmltcG9ydCBEYXRhU3RvcmUgZnJvbSBcIi4vZGF0YXN0b3JlXCI7XHJcblxyXG5jb25zdCByZXF1ZXN0ID0gcmVxdWlyZShcInJlcXVlc3RcIik7XHJcbmNvbnN0IGRpc2NvcmRMb2NhbGUgPSBVc2VyU2V0dGluZ3NTdG9yZS5sb2NhbGUuc3BsaXQoXCItXCIpWzBdO1xyXG5cclxuY29uc3Qgc2F2ZWRTdHJpbmdzID0gRGF0YVN0b3JlLmdldExvY2FsZShkaXNjb3JkTG9jYWxlKTtcclxuaWYgKCFzYXZlZFN0cmluZ3MpIHtcclxuXHRjb25zdCBvcHRpb25zID0ge1xyXG5cdFx0dXJsOiBcImh0dHBzOi8vcmF1ZW56aS5naXRodWIuaW8vQmV0dGVyRGlzY29yZEFwcC9kYXRhL2Vtb3RlZGF0YV90d2l0Y2hfc3Vic2NyaWJlci5qc29uXCIsXHJcblx0XHR0aW1lb3V0OiA1MDAwLFxyXG4gICAgICAgIGpzb246IHRydWVcclxuXHR9O1xyXG5cdHJlcXVlc3QuZ2V0KG9wdGlvbnMsIChlcnIsIHJlc3AsIG5ld1N0cmluZ3MpID0+IHtcclxuXHRcdGlmIChlcnIpIHJldHVybjtcclxuXHRcdERhdGFTdG9yZS5zYXZlTG9jYWxlKGRpc2NvcmRMb2NhbGUsIG5ld1N0cmluZ3MpO1xyXG5cdFx0VXRpbGl0aWVzLmV4dGVuZChNZXNzYWdlcywgbmV3U3RyaW5ncyk7XHJcblx0XHRFdmVudHMuZW1pdChcInN0cmluZ3MtdXBkYXRlZFwiKTtcclxuXHR9KTtcclxufVxyXG5cclxuY29uc3Qge0Rpc3BhdGNoZXIsIERpc2NvcmRDb25zdGFudHMsIFVzZXJTZXR0aW5nc1N0b3JlfSA9IERpc2NvcmRNb2R1bGVzO1xyXG5jb25zdCBNZXNzYWdlcyA9IHt9O1xyXG5cclxuXHJcblxyXG5leHBvcnQgbGV0IGN1cnJlbnRMb2NhbGUgPSBcImVuXCI7XHJcbmV4cG9ydCBmdW5jdGlvbiBzZXRMb2NhbGUobmV3TG9jYWxlKSB7XHJcbiAgICBjdXJyZW50TG9jYWxlID0gbmV3TG9jYWxlO1xyXG5cdFV0aWxpdGllcy5leHRlbmQoTWVzc2FnZXMsIFJhd1N0cmluZ3NbY3VycmVudExvY2FsZV0pO1xyXG5cdEV2ZW50cy5lbWl0KFwic3RyaW5ncy11cGRhdGVkXCIpO1xyXG59XHJcblxyXG5VdGlsaXRpZXMuZXh0ZW5kKE1lc3NhZ2VzLCBSYXdTdHJpbmdzW2N1cnJlbnRMb2NhbGVdKTtcclxuXHJcbi8vIGlmIChSYXdTdHJpbmdzW2Rpc2NvcmRMb2NhbGVdICYmIGRpc2NvcmRMb2NhbGUgIT0gY3VycmVudExvY2FsZSkgc2V0TG9jYWxlKGRpc2NvcmRMb2NhbGUpO1xyXG5cclxuRGlzcGF0Y2hlci5zdWJzY3JpYmUoRGlzY29yZENvbnN0YW50cy5BY3Rpb25UeXBlcy5VU0VSX1NFVFRJTkdTX1VQREFURSwgKHtzZXR0aW5nc30pID0+IHtcclxuICAgIGNvbnN0IG5ld0xvY2FsZSA9IHNldHRpbmdzLmxvY2FsZTtcclxuICAgIGlmIChuZXdMb2NhbGUgJiYgbmV3TG9jYWxlICE9IGN1cnJlbnRMb2NhbGUpIHNldExvY2FsZShuZXdMb2NhbGUuc3BsaXQoXCItXCIpWzBdKTtcclxufSk7XHJcblxyXG5cclxuZXhwb3J0IGRlZmF1bHQgbmV3IFByb3h5KE1lc3NhZ2VzLCB7XHJcblx0Z2V0OiBmdW5jdGlvbihzdHJpbmdzLCBjYXRlZ29yeSkge1xyXG4gICAgICAgIGlmICghc3RyaW5ncy5oYXNPd25Qcm9wZXJ0eShjYXRlZ29yeSkpIHtcclxuXHRcdFx0cmV0dXJuIG5ldyBQcm94eSh7fSwge1xyXG5cdFx0XHRcdGdldDogZnVuY3Rpb24oKSB7XHJcblx0XHRcdFx0XHRyZXR1cm4gYFN0cmluZyBncm91cCBcIiR7Y2F0ZWdvcnl9XCIgbm90IGZvdW5kLmA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHRcdHJldHVybiBuZXcgUHJveHkoc3RyaW5nc1tjYXRlZ29yeV0sIHtcclxuXHRcdFx0Z2V0OiBmdW5jdGlvbihvYmosIHByb3ApIHtcclxuXHRcdFx0XHRpZiAodHlwZW9mKG9ialtwcm9wXSkgPT0gXCJzdHJpbmdcIikgcmV0dXJuIG5ldyBGb3JtYXR0YWJsZVN0cmluZyhvYmpbcHJvcF0pO1xyXG5cdFx0XHRcdHJldHVybiBvYmpbcHJvcF07XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdH1cclxufSk7XHJcblxyXG4iXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///./src/modules/strings.js\n"); /***/ }), @@ -863,7 +863,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ContentList; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _title__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./title */ \"./src/ui/settings/title.jsx\");\n/* harmony import */ var _plugincard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./plugincard */ \"./src/ui/settings/plugincard.js\");\n/* harmony import */ var _themecard__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./themecard */ \"./src/ui/settings/themecard.js\");\n/* harmony import */ var _icons_reload__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../icons/reload */ \"./src/ui/icons/reload.jsx\");\n// static getPluginsPanel(plugins, state, options = {}) {\n// const {folder = \"\", onChange, reload} = options;\n// const titleComponent = React.createElement(SettingsTitle, {text: \"Plugins\", button: {title: \"Open Plugin Folder\", onClick: () => { require(\"electron\").shell.openItem(folder); }}});\n// const cards = plugins.sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase())).map(plugin =>\n// React.createElement(PluginCard, {key: plugin.id, enabled: state[plugin.id], content: plugin, onChange, reload})\n// );\n// return [titleComponent, React.createElement(\"ul\", {className: \"bda-slist\"}, ...cards)];\n// }\n\n\n\n\n\nclass ContentList extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n reload() {\n if (this.props.refreshList) this.props.refreshList();\n this.forceUpdate();\n }\n\n render() {\n const {\n title,\n folder,\n contentList,\n contentState,\n onChange,\n reload\n } = this.props;\n const showReloadIcon = !modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"addons\", \"autoReload\");\n const button = folder ? {\n title: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.openFolder.format({\n type: title\n }),\n onClick: () => {\n __webpack_require__(/*! electron */ \"electron\").shell.openItem(folder);\n }\n } : null;\n return [modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_title__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n key: \"title\",\n text: title,\n button: button,\n otherChildren: showReloadIcon && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_reload__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"bd-reload\",\n onClick: this.reload.bind(this)\n })\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"ul\", {\n key: \"ContentList\",\n className: \"bda-slist\"\n }, contentList.sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase())).map(content => {\n const CardType = content.type ? _plugincard__WEBPACK_IMPORTED_MODULE_2__[\"default\"] : _themecard__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(CardType, {\n showReloadIcon: showReloadIcon,\n key: content.id,\n enabled: contentState[content.id],\n content: content,\n onChange: onChange,\n reload: reload\n });\n }))];\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL2NvbnRlbnRsaXN0LmpzeD9kZDhlIl0sIm5hbWVzIjpbIkNvbnRlbnRMaXN0IiwiUmVhY3QiLCJDb21wb25lbnQiLCJyZWxvYWQiLCJwcm9wcyIsInJlZnJlc2hMaXN0IiwiZm9yY2VVcGRhdGUiLCJyZW5kZXIiLCJ0aXRsZSIsImZvbGRlciIsImNvbnRlbnRMaXN0IiwiY29udGVudFN0YXRlIiwib25DaGFuZ2UiLCJzaG93UmVsb2FkSWNvbiIsIlNldHRpbmdzIiwiZ2V0IiwiYnV0dG9uIiwiU3RyaW5ncyIsIkFkZG9ucyIsIm9wZW5Gb2xkZXIiLCJmb3JtYXQiLCJ0eXBlIiwib25DbGljayIsInJlcXVpcmUiLCJzaGVsbCIsIm9wZW5JdGVtIiwiYmluZCIsInNvcnQiLCJhIiwiYiIsIm5hbWUiLCJ0b0xvd2VyQ2FzZSIsImxvY2FsZUNvbXBhcmUiLCJtYXAiLCJjb250ZW50IiwiQ2FyZFR5cGUiLCJQbHVnaW5DYXJkIiwiVGhlbWVDYXJkIiwiaWQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFFZSxNQUFNQSxXQUFOLFNBQTBCQyw2Q0FBSyxDQUFDQyxTQUFoQyxDQUEwQztBQUVyREMsUUFBTSxHQUFHO0FBQ0wsUUFBSSxLQUFLQyxLQUFMLENBQVdDLFdBQWYsRUFBNEIsS0FBS0QsS0FBTCxDQUFXQyxXQUFYO0FBQzVCLFNBQUtDLFdBQUw7QUFDSDs7QUFFREMsUUFBTSxHQUFHO0FBQ0wsVUFBTTtBQUFDQyxXQUFEO0FBQVFDLFlBQVI7QUFBZ0JDLGlCQUFoQjtBQUE2QkMsa0JBQTdCO0FBQTJDQyxjQUEzQztBQUFxRFQ7QUFBckQsUUFBK0QsS0FBS0MsS0FBMUU7QUFDQSxVQUFNUyxjQUFjLEdBQUcsQ0FBQ0MsZ0RBQVEsQ0FBQ0MsR0FBVCxDQUFhLFVBQWIsRUFBeUIsUUFBekIsRUFBbUMsWUFBbkMsQ0FBeEI7QUFDQSxVQUFNQyxNQUFNLEdBQUdQLE1BQU0sR0FBRztBQUFDRCxXQUFLLEVBQUVTLCtDQUFPLENBQUNDLE1BQVIsQ0FBZUMsVUFBZixDQUEwQkMsTUFBMUIsQ0FBaUM7QUFBQ0MsWUFBSSxFQUFFYjtBQUFQLE9BQWpDLENBQVI7QUFBeURjLGFBQU8sRUFBRSxNQUFNO0FBQUNDLDJCQUFPLENBQUMsMEJBQUQsQ0FBUCxDQUFvQkMsS0FBcEIsQ0FBMEJDLFFBQTFCLENBQW1DaEIsTUFBbkM7QUFBNEM7QUFBckgsS0FBSCxHQUE0SCxJQUFqSjtBQUNBLFdBQU8sQ0FDSCw0REFBQyw4Q0FBRDtBQUFlLFNBQUcsRUFBQyxPQUFuQjtBQUEyQixVQUFJLEVBQUVELEtBQWpDO0FBQXdDLFlBQU0sRUFBRVEsTUFBaEQ7QUFBd0QsbUJBQWEsRUFBRUgsY0FBYyxJQUFJLDREQUFDLHFEQUFEO0FBQVksaUJBQVMsRUFBQyxXQUF0QjtBQUFrQyxlQUFPLEVBQUUsS0FBS1YsTUFBTCxDQUFZdUIsSUFBWixDQUFpQixJQUFqQjtBQUEzQztBQUF6RixNQURHLEVBRUg7QUFBSSxTQUFHLEVBQUMsYUFBUjtBQUFzQixlQUFTLEVBQUU7QUFBakMsT0FDQ2hCLFdBQVcsQ0FBQ2lCLElBQVosQ0FBaUIsQ0FBQ0MsQ0FBRCxFQUFJQyxDQUFKLEtBQVVELENBQUMsQ0FBQ0UsSUFBRixDQUFPQyxXQUFQLEdBQXFCQyxhQUFyQixDQUFtQ0gsQ0FBQyxDQUFDQyxJQUFGLENBQU9DLFdBQVAsRUFBbkMsQ0FBM0IsRUFBcUZFLEdBQXJGLENBQXlGQyxPQUFPLElBQUk7QUFDakcsWUFBTUMsUUFBUSxHQUFHRCxPQUFPLENBQUNiLElBQVIsR0FBZWUsbURBQWYsR0FBNEJDLGtEQUE3QztBQUNBLGFBQU8sNERBQUMsUUFBRDtBQUFVLHNCQUFjLEVBQUV4QixjQUExQjtBQUEwQyxXQUFHLEVBQUVxQixPQUFPLENBQUNJLEVBQXZEO0FBQTJELGVBQU8sRUFBRTNCLFlBQVksQ0FBQ3VCLE9BQU8sQ0FBQ0ksRUFBVCxDQUFoRjtBQUE4RixlQUFPLEVBQUVKLE9BQXZHO0FBQWdILGdCQUFRLEVBQUV0QixRQUExSDtBQUFvSSxjQUFNLEVBQUVUO0FBQTVJLFFBQVA7QUFDSCxLQUhBLENBREQsQ0FGRyxDQUFQO0FBU0g7O0FBcEJvRCIsImZpbGUiOiIuL3NyYy91aS9zZXR0aW5ncy9jb250ZW50bGlzdC5qc3guanMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzdGF0aWMgZ2V0UGx1Z2luc1BhbmVsKHBsdWdpbnMsIHN0YXRlLCBvcHRpb25zID0ge30pIHtcclxuLy8gICAgIGNvbnN0IHtmb2xkZXIgPSBcIlwiLCBvbkNoYW5nZSwgcmVsb2FkfSA9IG9wdGlvbnM7XHJcbi8vICAgICBjb25zdCB0aXRsZUNvbXBvbmVudCA9IFJlYWN0LmNyZWF0ZUVsZW1lbnQoU2V0dGluZ3NUaXRsZSwge3RleHQ6IFwiUGx1Z2luc1wiLCBidXR0b246IHt0aXRsZTogXCJPcGVuIFBsdWdpbiBGb2xkZXJcIiwgb25DbGljazogKCkgPT4geyByZXF1aXJlKFwiZWxlY3Ryb25cIikuc2hlbGwub3Blbkl0ZW0oZm9sZGVyKTsgfX19KTtcclxuLy8gICAgIGNvbnN0IGNhcmRzID0gcGx1Z2lucy5zb3J0KChhLCBiKSA9PiBhLm5hbWUudG9Mb3dlckNhc2UoKS5sb2NhbGVDb21wYXJlKGIubmFtZS50b0xvd2VyQ2FzZSgpKSkubWFwKHBsdWdpbiA9PlxyXG4vLyAgICAgICAgIFJlYWN0LmNyZWF0ZUVsZW1lbnQoUGx1Z2luQ2FyZCwge2tleTogcGx1Z2luLmlkLCBlbmFibGVkOiBzdGF0ZVtwbHVnaW4uaWRdLCBjb250ZW50OiBwbHVnaW4sIG9uQ2hhbmdlLCByZWxvYWR9KVxyXG4vLyAgICAgKTtcclxuLy8gICAgIHJldHVybiBbdGl0bGVDb21wb25lbnQsIFJlYWN0LmNyZWF0ZUVsZW1lbnQoXCJ1bFwiLCB7Y2xhc3NOYW1lOiBcImJkYS1zbGlzdFwifSwgLi4uY2FyZHMpXTtcclxuLy8gfVxyXG5cclxuaW1wb3J0IHtSZWFjdCwgU2V0dGluZ3MsIFN0cmluZ3N9IGZyb20gXCJtb2R1bGVzXCI7XHJcblxyXG5pbXBvcnQgU2V0dGluZ3NUaXRsZSBmcm9tIFwiLi90aXRsZVwiO1xyXG5pbXBvcnQgUGx1Z2luQ2FyZCBmcm9tIFwiLi9wbHVnaW5jYXJkXCI7XHJcbmltcG9ydCBUaGVtZUNhcmQgZnJvbSBcIi4vdGhlbWVjYXJkXCI7XHJcbmltcG9ydCBSZWxvYWRJY29uIGZyb20gXCIuLi9pY29ucy9yZWxvYWRcIjtcclxuXHJcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENvbnRlbnRMaXN0IGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50IHtcclxuXHJcbiAgICByZWxvYWQoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMucHJvcHMucmVmcmVzaExpc3QpIHRoaXMucHJvcHMucmVmcmVzaExpc3QoKTtcclxuICAgICAgICB0aGlzLmZvcmNlVXBkYXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVuZGVyKCkge1xyXG4gICAgICAgIGNvbnN0IHt0aXRsZSwgZm9sZGVyLCBjb250ZW50TGlzdCwgY29udGVudFN0YXRlLCBvbkNoYW5nZSwgcmVsb2FkfSA9IHRoaXMucHJvcHM7XHJcbiAgICAgICAgY29uc3Qgc2hvd1JlbG9hZEljb24gPSAhU2V0dGluZ3MuZ2V0KFwic2V0dGluZ3NcIiwgXCJhZGRvbnNcIiwgXCJhdXRvUmVsb2FkXCIpO1xyXG4gICAgICAgIGNvbnN0IGJ1dHRvbiA9IGZvbGRlciA/IHt0aXRsZTogU3RyaW5ncy5BZGRvbnMub3BlbkZvbGRlci5mb3JtYXQoe3R5cGU6IHRpdGxlfSksIG9uQ2xpY2s6ICgpID0+IHtyZXF1aXJlKFwiZWxlY3Ryb25cIikuc2hlbGwub3Blbkl0ZW0oZm9sZGVyKTt9fSA6IG51bGw7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAgPFNldHRpbmdzVGl0bGUga2V5PVwidGl0bGVcIiB0ZXh0PXt0aXRsZX0gYnV0dG9uPXtidXR0b259IG90aGVyQ2hpbGRyZW49e3Nob3dSZWxvYWRJY29uICYmIDxSZWxvYWRJY29uIGNsYXNzTmFtZT1cImJkLXJlbG9hZFwiIG9uQ2xpY2s9e3RoaXMucmVsb2FkLmJpbmQodGhpcyl9IC8+fSAvPixcclxuICAgICAgICAgICAgPHVsIGtleT1cIkNvbnRlbnRMaXN0XCIgY2xhc3NOYW1lPXtcImJkYS1zbGlzdFwifT5cclxuICAgICAgICAgICAge2NvbnRlbnRMaXN0LnNvcnQoKGEsIGIpID0+IGEubmFtZS50b0xvd2VyQ2FzZSgpLmxvY2FsZUNvbXBhcmUoYi5uYW1lLnRvTG93ZXJDYXNlKCkpKS5tYXAoY29udGVudCA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBDYXJkVHlwZSA9IGNvbnRlbnQudHlwZSA/IFBsdWdpbkNhcmQgOiBUaGVtZUNhcmQ7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gPENhcmRUeXBlIHNob3dSZWxvYWRJY29uPXtzaG93UmVsb2FkSWNvbn0ga2V5PXtjb250ZW50LmlkfSBlbmFibGVkPXtjb250ZW50U3RhdGVbY29udGVudC5pZF19IGNvbnRlbnQ9e2NvbnRlbnR9IG9uQ2hhbmdlPXtvbkNoYW5nZX0gcmVsb2FkPXtyZWxvYWR9IC8+O1xyXG4gICAgICAgICAgICB9KX1cclxuICAgICAgICAgICAgPC91bD5cclxuICAgICAgICBdO1xyXG4gICAgfVxyXG59Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///./src/ui/settings/contentlist.jsx\n"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"default\", function() { return ContentList; });\n/* harmony import */ var modules__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! modules */ \"./src/modules/modules.js\");\n/* harmony import */ var _title__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./title */ \"./src/ui/settings/title.jsx\");\n/* harmony import */ var _plugincard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./plugincard */ \"./src/ui/settings/plugincard.js\");\n/* harmony import */ var _themecard__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./themecard */ \"./src/ui/settings/themecard.js\");\n/* harmony import */ var _icons_reload__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../icons/reload */ \"./src/ui/icons/reload.jsx\");\n\n\n\n\n\nclass ContentList extends modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].Component {\n reload() {\n if (this.props.refreshList) this.props.refreshList();\n this.forceUpdate();\n }\n\n render() {\n const {\n title,\n folder,\n contentList,\n contentState,\n onChange,\n reload\n } = this.props;\n const showReloadIcon = !modules__WEBPACK_IMPORTED_MODULE_0__[\"Settings\"].get(\"settings\", \"addons\", \"autoReload\");\n const button = folder ? {\n title: modules__WEBPACK_IMPORTED_MODULE_0__[\"Strings\"].Addons.openFolder.format({\n type: title\n }),\n onClick: () => {\n __webpack_require__(/*! electron */ \"electron\").shell.openItem(folder);\n }\n } : null;\n return [modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_title__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n key: \"title\",\n text: title,\n button: button,\n otherChildren: showReloadIcon && modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(_icons_reload__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n className: \"bd-reload\",\n onClick: this.reload.bind(this)\n })\n }), modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(\"ul\", {\n key: \"ContentList\",\n className: \"bda-slist\"\n }, contentList.sort((a, b) => a.name.toLowerCase().localeCompare(b.name.toLowerCase())).map(content => {\n const CardType = content.type ? _plugincard__WEBPACK_IMPORTED_MODULE_2__[\"default\"] : _themecard__WEBPACK_IMPORTED_MODULE_3__[\"default\"];\n return modules__WEBPACK_IMPORTED_MODULE_0__[\"React\"].createElement(CardType, {\n showReloadIcon: showReloadIcon,\n key: content.id,\n enabled: contentState[content.id],\n content: content,\n onChange: onChange,\n reload: reload\n });\n }))];\n }\n\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9Db3JlLy4vc3JjL3VpL3NldHRpbmdzL2NvbnRlbnRsaXN0LmpzeD9kZDhlIl0sIm5hbWVzIjpbIkNvbnRlbnRMaXN0IiwiUmVhY3QiLCJDb21wb25lbnQiLCJyZWxvYWQiLCJwcm9wcyIsInJlZnJlc2hMaXN0IiwiZm9yY2VVcGRhdGUiLCJyZW5kZXIiLCJ0aXRsZSIsImZvbGRlciIsImNvbnRlbnRMaXN0IiwiY29udGVudFN0YXRlIiwib25DaGFuZ2UiLCJzaG93UmVsb2FkSWNvbiIsIlNldHRpbmdzIiwiZ2V0IiwiYnV0dG9uIiwiU3RyaW5ncyIsIkFkZG9ucyIsIm9wZW5Gb2xkZXIiLCJmb3JtYXQiLCJ0eXBlIiwib25DbGljayIsInJlcXVpcmUiLCJzaGVsbCIsIm9wZW5JdGVtIiwiYmluZCIsInNvcnQiLCJhIiwiYiIsIm5hbWUiLCJ0b0xvd2VyQ2FzZSIsImxvY2FsZUNvbXBhcmUiLCJtYXAiLCJjb250ZW50IiwiQ2FyZFR5cGUiLCJQbHVnaW5DYXJkIiwiVGhlbWVDYXJkIiwiaWQiXSwibWFwcGluZ3MiOiJBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUVlLE1BQU1BLFdBQU4sU0FBMEJDLDZDQUFLLENBQUNDLFNBQWhDLENBQTBDO0FBRXJEQyxRQUFNLEdBQUc7QUFDTCxRQUFJLEtBQUtDLEtBQUwsQ0FBV0MsV0FBZixFQUE0QixLQUFLRCxLQUFMLENBQVdDLFdBQVg7QUFDNUIsU0FBS0MsV0FBTDtBQUNIOztBQUVEQyxRQUFNLEdBQUc7QUFDTCxVQUFNO0FBQUNDLFdBQUQ7QUFBUUMsWUFBUjtBQUFnQkMsaUJBQWhCO0FBQTZCQyxrQkFBN0I7QUFBMkNDLGNBQTNDO0FBQXFEVDtBQUFyRCxRQUErRCxLQUFLQyxLQUExRTtBQUNBLFVBQU1TLGNBQWMsR0FBRyxDQUFDQyxnREFBUSxDQUFDQyxHQUFULENBQWEsVUFBYixFQUF5QixRQUF6QixFQUFtQyxZQUFuQyxDQUF4QjtBQUNBLFVBQU1DLE1BQU0sR0FBR1AsTUFBTSxHQUFHO0FBQUNELFdBQUssRUFBRVMsK0NBQU8sQ0FBQ0MsTUFBUixDQUFlQyxVQUFmLENBQTBCQyxNQUExQixDQUFpQztBQUFDQyxZQUFJLEVBQUViO0FBQVAsT0FBakMsQ0FBUjtBQUF5RGMsYUFBTyxFQUFFLE1BQU07QUFBQ0MsMkJBQU8sQ0FBQywwQkFBRCxDQUFQLENBQW9CQyxLQUFwQixDQUEwQkMsUUFBMUIsQ0FBbUNoQixNQUFuQztBQUE0QztBQUFySCxLQUFILEdBQTRILElBQWpKO0FBQ0EsV0FBTyxDQUNILDREQUFDLDhDQUFEO0FBQWUsU0FBRyxFQUFDLE9BQW5CO0FBQTJCLFVBQUksRUFBRUQsS0FBakM7QUFBd0MsWUFBTSxFQUFFUSxNQUFoRDtBQUF3RCxtQkFBYSxFQUFFSCxjQUFjLElBQUksNERBQUMscURBQUQ7QUFBWSxpQkFBUyxFQUFDLFdBQXRCO0FBQWtDLGVBQU8sRUFBRSxLQUFLVixNQUFMLENBQVl1QixJQUFaLENBQWlCLElBQWpCO0FBQTNDO0FBQXpGLE1BREcsRUFFSDtBQUFJLFNBQUcsRUFBQyxhQUFSO0FBQXNCLGVBQVMsRUFBRTtBQUFqQyxPQUNDaEIsV0FBVyxDQUFDaUIsSUFBWixDQUFpQixDQUFDQyxDQUFELEVBQUlDLENBQUosS0FBVUQsQ0FBQyxDQUFDRSxJQUFGLENBQU9DLFdBQVAsR0FBcUJDLGFBQXJCLENBQW1DSCxDQUFDLENBQUNDLElBQUYsQ0FBT0MsV0FBUCxFQUFuQyxDQUEzQixFQUFxRkUsR0FBckYsQ0FBeUZDLE9BQU8sSUFBSTtBQUNqRyxZQUFNQyxRQUFRLEdBQUdELE9BQU8sQ0FBQ2IsSUFBUixHQUFlZSxtREFBZixHQUE0QkMsa0RBQTdDO0FBQ0EsYUFBTyw0REFBQyxRQUFEO0FBQVUsc0JBQWMsRUFBRXhCLGNBQTFCO0FBQTBDLFdBQUcsRUFBRXFCLE9BQU8sQ0FBQ0ksRUFBdkQ7QUFBMkQsZUFBTyxFQUFFM0IsWUFBWSxDQUFDdUIsT0FBTyxDQUFDSSxFQUFULENBQWhGO0FBQThGLGVBQU8sRUFBRUosT0FBdkc7QUFBZ0gsZ0JBQVEsRUFBRXRCLFFBQTFIO0FBQW9JLGNBQU0sRUFBRVQ7QUFBNUksUUFBUDtBQUNILEtBSEEsQ0FERCxDQUZHLENBQVA7QUFTSDs7QUFwQm9EIiwiZmlsZSI6Ii4vc3JjL3VpL3NldHRpbmdzL2NvbnRlbnRsaXN0LmpzeC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UmVhY3QsIFNldHRpbmdzLCBTdHJpbmdzfSBmcm9tIFwibW9kdWxlc1wiO1xyXG5cclxuaW1wb3J0IFNldHRpbmdzVGl0bGUgZnJvbSBcIi4vdGl0bGVcIjtcclxuaW1wb3J0IFBsdWdpbkNhcmQgZnJvbSBcIi4vcGx1Z2luY2FyZFwiO1xyXG5pbXBvcnQgVGhlbWVDYXJkIGZyb20gXCIuL3RoZW1lY2FyZFwiO1xyXG5pbXBvcnQgUmVsb2FkSWNvbiBmcm9tIFwiLi4vaWNvbnMvcmVsb2FkXCI7XHJcblxyXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBDb250ZW50TGlzdCBleHRlbmRzIFJlYWN0LkNvbXBvbmVudCB7XHJcblxyXG4gICAgcmVsb2FkKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnByb3BzLnJlZnJlc2hMaXN0KSB0aGlzLnByb3BzLnJlZnJlc2hMaXN0KCk7XHJcbiAgICAgICAgdGhpcy5mb3JjZVVwZGF0ZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlbmRlcigpIHtcclxuICAgICAgICBjb25zdCB7dGl0bGUsIGZvbGRlciwgY29udGVudExpc3QsIGNvbnRlbnRTdGF0ZSwgb25DaGFuZ2UsIHJlbG9hZH0gPSB0aGlzLnByb3BzO1xyXG4gICAgICAgIGNvbnN0IHNob3dSZWxvYWRJY29uID0gIVNldHRpbmdzLmdldChcInNldHRpbmdzXCIsIFwiYWRkb25zXCIsIFwiYXV0b1JlbG9hZFwiKTtcclxuICAgICAgICBjb25zdCBidXR0b24gPSBmb2xkZXIgPyB7dGl0bGU6IFN0cmluZ3MuQWRkb25zLm9wZW5Gb2xkZXIuZm9ybWF0KHt0eXBlOiB0aXRsZX0pLCBvbkNsaWNrOiAoKSA9PiB7cmVxdWlyZShcImVsZWN0cm9uXCIpLnNoZWxsLm9wZW5JdGVtKGZvbGRlcik7fX0gOiBudWxsO1xyXG4gICAgICAgIHJldHVybiBbXHJcbiAgICAgICAgICAgIDxTZXR0aW5nc1RpdGxlIGtleT1cInRpdGxlXCIgdGV4dD17dGl0bGV9IGJ1dHRvbj17YnV0dG9ufSBvdGhlckNoaWxkcmVuPXtzaG93UmVsb2FkSWNvbiAmJiA8UmVsb2FkSWNvbiBjbGFzc05hbWU9XCJiZC1yZWxvYWRcIiBvbkNsaWNrPXt0aGlzLnJlbG9hZC5iaW5kKHRoaXMpfSAvPn0gLz4sXHJcbiAgICAgICAgICAgIDx1bCBrZXk9XCJDb250ZW50TGlzdFwiIGNsYXNzTmFtZT17XCJiZGEtc2xpc3RcIn0+XHJcbiAgICAgICAgICAgIHtjb250ZW50TGlzdC5zb3J0KChhLCBiKSA9PiBhLm5hbWUudG9Mb3dlckNhc2UoKS5sb2NhbGVDb21wYXJlKGIubmFtZS50b0xvd2VyQ2FzZSgpKSkubWFwKGNvbnRlbnQgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgQ2FyZFR5cGUgPSBjb250ZW50LnR5cGUgPyBQbHVnaW5DYXJkIDogVGhlbWVDYXJkO1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDxDYXJkVHlwZSBzaG93UmVsb2FkSWNvbj17c2hvd1JlbG9hZEljb259IGtleT17Y29udGVudC5pZH0gZW5hYmxlZD17Y29udGVudFN0YXRlW2NvbnRlbnQuaWRdfSBjb250ZW50PXtjb250ZW50fSBvbkNoYW5nZT17b25DaGFuZ2V9IHJlbG9hZD17cmVsb2FkfSAvPjtcclxuICAgICAgICAgICAgfSl9XHJcbiAgICAgICAgICAgIDwvdWw+XHJcbiAgICAgICAgXTtcclxuICAgIH1cclxufSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./src/ui/settings/contentlist.jsx\n"); /***/ }), diff --git a/src/modules/core.js b/src/modules/core.js index 1f127afb..73eca16c 100644 --- a/src/modules/core.js +++ b/src/modules/core.js @@ -35,7 +35,7 @@ Core.prototype.init = async function() { // `); // } - DataStore.initialize(); + // DataStore.initialize(); ReactComponents.initialize(); Logger.log("Startup", "Initializing Settings"); diff --git a/src/modules/datastore.js b/src/modules/datastore.js index 091612ef..a71a2042 100644 --- a/src/modules/datastore.js +++ b/src/modules/datastore.js @@ -1,15 +1,10 @@ import {Config} from "data"; +import Utilities from "./utilities"; const fs = require("fs"); const path = require("path"); const releaseChannel = DiscordNative.globals.releaseChannel; -// Schema 1 -// ======================= -// %appdata%\BetterDiscord -// -> data\ -// -> [releaseChannel].json (stable/canary/ptb) - -// Schema 2 +// Schema // ======================= // %appdata%\BetterDiscord // -> data @@ -22,11 +17,13 @@ export default new class DataStore { constructor() { this.data = {misc: {}}; this.pluginData = {}; + this.initialize(); } initialize() { if (!fs.existsSync(this.baseFolder)) fs.mkdirSync(this.baseFolder); if (!fs.existsSync(this.dataFolder)) fs.mkdirSync(this.dataFolder); + if (!fs.existsSync(this.localeFolder)) fs.mkdirSync(this.localeFolder); if (!fs.existsSync(this.BDFile)) fs.writeFileSync(this.BDFile, JSON.stringify(this.data.misc, null, 4)); if (!fs.existsSync(this.customCSS)) fs.writeFileSync(this.customCSS, ""); const dataFiles = fs.readdirSync(this.dataFolder).filter(f => !fs.statSync(path.resolve(this.dataFolder, f)).isDirectory() && f.endsWith(".json")); @@ -46,6 +43,7 @@ export default new class DataStore { get customCSS() {return this._customCSS || (this._customCSS = path.resolve(this.dataFolder, "custom.css"));} get baseFolder() {return this._baseFolder || (this._baseFolder = path.resolve(Config.dataPath, "data"));} get dataFolder() {return this._dataFolder || (this._dataFolder = path.resolve(this.baseFolder, `${releaseChannel}`));} + get localeFolder() {return this._localeFolder || (this._localeFolder = path.resolve(this.baseFolder, `locales`));} get BDFile() {return this._BDFile || (this._BDFile = path.resolve(Config.dataPath, "data", `${releaseChannel}.json`));} // get settingsFile() {return this._settingsFile || (this._settingsFile = path.resolve(Config.dataPath, "bdsettings.json"));} getPluginFile(pluginName) {return path.resolve(Config.dataPath, "plugins", pluginName + ".config.json");} @@ -73,14 +71,22 @@ export default new class DataStore { fs.writeFileSync(path.resolve(this.dataFolder, `misc.json`), JSON.stringify(this.data.misc, null, 4)); } + getLocale(locale) { + const file = path.resolve(this.localeFolder, `${locale}.json`); + if (!fs.existsSync(file)) return null; + return Utilities.testJSON(fs.readFileSync(file).toString()); + } + + saveLocale(locale, strings) { + fs.writeFileSync(path.resolve(this.localeFolder, `${locale}.json`), JSON.stringify(strings, null, 4)); + } + getData(key) { return this.data[key] || ""; - // return JSON.parse(fs.readFileSync(path.resolve(this.dataFolder, `${file}.json`))); } setData(key, value) { this.data[key] = value; - // fs.writeFileSync(this.BDFile, JSON.stringify(this.data, null, 4)); fs.writeFileSync(path.resolve(this.dataFolder, `${key}.json`), JSON.stringify(value, null, 4)); } diff --git a/src/modules/strings.js b/src/modules/strings.js index a6f58e20..6d104d1a 100644 --- a/src/modules/strings.js +++ b/src/modules/strings.js @@ -3,11 +3,30 @@ import RawStrings from "../data/strings"; import Utilities from "./utilities"; import FormattableString from "../structs/string"; import Events from "./emitter"; +import DataStore from "./datastore"; + +const request = require("request"); +const discordLocale = UserSettingsStore.locale.split("-")[0]; + +const savedStrings = DataStore.getLocale(discordLocale); +if (!savedStrings) { + const options = { + url: "https://rauenzi.github.io/BetterDiscordApp/data/emotedata_twitch_subscriber.json", + timeout: 5000, + json: true + }; + request.get(options, (err, resp, newStrings) => { + if (err) return; + DataStore.saveLocale(discordLocale, newStrings); + Utilities.extend(Messages, newStrings); + Events.emit("strings-updated"); + }); +} const {Dispatcher, DiscordConstants, UserSettingsStore} = DiscordModules; const Messages = {}; -const discordLocale = UserSettingsStore.locale.split("-")[0]; + export let currentLocale = "en"; export function setLocale(newLocale) { @@ -18,13 +37,14 @@ export function setLocale(newLocale) { Utilities.extend(Messages, RawStrings[currentLocale]); -if (RawStrings[discordLocale] && discordLocale != "en") setLocale(discordLocale); +// if (RawStrings[discordLocale] && discordLocale != currentLocale) setLocale(discordLocale); Dispatcher.subscribe(DiscordConstants.ActionTypes.USER_SETTINGS_UPDATE, ({settings}) => { const newLocale = settings.locale; if (newLocale && newLocale != currentLocale) setLocale(newLocale.split("-")[0]); }); + export default new Proxy(Messages, { get: function(strings, category) { if (!strings.hasOwnProperty(category)) {