Discord-Anime-Gaming

Sets the discord playing state

// ==UserScript==
// @name Discord-Anime-Gaming
// @namespace https://greasyfork.dpdns.org/users/92233
// @description Sets the discord playing state
// @version 0.29.0
// @author [email protected]
// @license GPL-3.0
// @grant GM_xmlhttpRequest
// @grant GM_getValue
// @grant GM_setValue
// @grant GM_deleteValue
// @grant GM_listValues
// @match *://myanimelist.net/anime/*
// @match *://myanimelist.net/manga/*
// @match *://myanimelist.net/animelist/*
// @match *://myanimelist.net/mangalist/*
// @match *://myanimelist.net/anime.php?id=*
// @match *://myanimelist.net/manga.php?id=*
// @match *://myanimelist.net/character/*
// @match *://myanimelist.net/people/*
// @match *://myanimelist.net/search/*
// @match *://anilist.co/404
// @match *://kitsu.io/404?mal-sync=authentication*
// @match *://simkl.com/apps/chrome/mal-sync/connected*
// @match *://kissanime.ru/Anime/*
// @match *://kissanime.to/Anime/*
// @match *://kissmanga.com/Manga/*
// @match *://*.9anime.to/watch/*
// @match *://*.9anime.is/watch/*
// @match *://*.9anime.ru/watch/*
// @match *://*.9anime.ch/watch/*
// @match *://*.9anime.nl/watch/*
// @match *://*.9anime.live/watch/*
// @match *://*.crunchyroll.com/*
// @match *://*.mangadex.org/manga/*
// @match *://*.mangadex.org/title/*
// @match *://*.mangadex.org/chapter/*
// @match *://mangarock.com/*
// @match *://*.gogoanime.tv/*
// @match *://*.gogoanime.io/*
// @match *://*.gogoanime.in/*
// @match *://*.gogoanime.se/*
// @match *://*.gogoanime.sh/*
// @match *://*.gogoanimes.co/*
// @match *://*.anime4you.one/show/1/aid/*
// @match *://*.branitube.org/watch/*
// @match *://*.branitube.org/animes/*
// @match *://*.www.turkanime.tv/video/*
// @match *://*.www.turkanime.tv/anime/*
// @match *://twist.moe/*
// @match *://app.emby.media/*
// @match *://app.plex.tv/*
// @match *://www.netflix.com/*
// @match *://otakustream.tv/anime/*
// @match *://otakustream.tv/movie/*
// @match *://animepahe.com/play/*
// @match *://animepahe.com/anime/*
// @match *://animeflv.net/anime/*
// @match *://animeflv.net/ver/*
// @match *://jkanime.net/*
// @match *://vrv.co/*
// @match *://proxer.me/*
// @match *://*.animevibe.tv/a/*
// @match *://*.animevibe.xyz/a/*
// @match *://novelplanet.com/Novel/*
// @match *://*.wonderfulsubs.com/*
// @match *://kawaiifu.com/season/*
// @match *://kawaiifu.com/dub/*
// @match *://kawaiifu.com/tv-series/*
// @match *://4anime.to/*
// @match *://www.dreamanimes.com.br/*
// @match *://*.animeultima.eu/a/*
// @match *://*.aniflix.tv/*
// @match *://animedaisuki.moe/watch/*
// @match *://animedaisuki.moe/anime/*
// @match *://www.animefreak.tv/watch/*
// @match *://www.anime-planet.com/anime/*
// @match *://*.kickassanime.io/anime/*
// @match *://www.riie.net/*
// @match *://animekisa.tv/*
// @match *://*.wakanim.tv/*
// @match *://animeindo.moe/*
// @match *://shinden.pl/episode/*
// @match *://shinden.pl/series/*
// @match *://www.funimation.com/shows/*
// @match *://voiranime.com/*
// @match *://*.dubbedanime.net/*
// @match *://*.hanime.tv/*
// @match *://hentaihaven.org/*
// @match *://hentaigasm.com/*
// @match *://kisshentai.net/Hentai/*
// @match *://www.underhentai.net/*
// @match *://*.openload.co/*
// @match *://*.openload.pw/*
// @match *://*.streamango.com/*
// @match *://*.mp4upload.com/*
// @match *://*.mcloud.to/*
// @match *://*.prettyfast.to/*
// @match *://*.rapidvideo.com/*
// @match *://*.rapidvid.to/*
// @match *://*.static.crunchyroll.com/*
// @match *://*.static.vrv.co/*
// @match *://*.vidstreaming.io/*
// @match *://*.xstreamcdn.com/*
// @match *://*.gcloud.live/*
// @match *://*.oload.tv/*
// @match *://*.mail.ru/*
// @match *://*.myvi.ru/*
// @match *://*.sibnet.ru/*
// @match *://*.tune.pk/*
// @match *://*.vimple.ru/*
// @match *://*.href.li/*
// @match *://*.vk.com/*
// @match *://*.cloudvideo.tv/*
// @match *://*.fembed.net/*
// @match *://*.fembed.com/*
// @match *://*.animeproxy.info/*
// @match *://*.youpload.co/*
// @match *://*.yourupload.com/*
// @match *://*.vidlox.me/*
// @match *://*.kwik.cx/*
// @match *://*.mega.nz/*
// @match *://*.animeflv.net/*
// @match *://*.hqq.tv/*
// @match *://*.jkanime.net/*
// @match *://*.ok.ru/*
// @match *://*.novelplanet.me/*
// @match *://*.stream.proxer.me/*
// @match *://verystream.com/*
// @match *://*.animeultima.eu/e/*
// @match *://*.vidoza.net/*
// @match *://crazyload.co/*
// @match *://gounlimited.to/*
// @match *://www.ani-stream.com/*
// @match *://flex.aniflex.org/public/dist/*
// @match *://animedaisuki.moe/embed/*
// @match *://wakanim.tv/*/*/*/embeddedplayer/*
// @match *://superitu.com/embed/*
// @match *://www.dailymotion.com/embed/*
// @match *://vev.io/embed/*
// @match *://vev.red/embed/*
// @match *://www.funimation.com/player/*
// @match *://jwpstream.com/jwps/yplayer.php*
// @match *://www.vaplayer.xyz/v/*
// @match *://mp4.sh/embed/*
// @match *://player.hanime.tv/*
// @match *://stream.lewd.host/embed/*
// @match *://tiwi.kiwi/*
// @match *://streamcherry.com/embed/*
// @require  http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js
// @require  https://greasyfork.dpdns.org/scripts/33416-discord-io/code/discordio.js?version=240880
// @run-at document_start
// ==/UserScript==

/******/ (function(modules) { // webpackBootstrap
/******/ 	// The module cache
/******/ 	var installedModules = {};
/******/
/******/ 	// The require function
/******/ 	function __webpack_require__(moduleId) {
/******/
/******/ 		// Check if module is in cache
/******/ 		if(installedModules[moduleId]) {
/******/ 			return installedModules[moduleId].exports;
/******/ 		}
/******/ 		// Create a new module (and put it into the cache)
/******/ 		var module = installedModules[moduleId] = {
/******/ 			i: moduleId,
/******/ 			l: false,
/******/ 			exports: {}
/******/ 		};
/******/
/******/ 		// Execute the module function
/******/ 		modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ 		// Flag the module as loaded
/******/ 		module.l = true;
/******/
/******/ 		// Return the exports of the module
/******/ 		return module.exports;
/******/ 	}
/******/
/******/
/******/ 	// expose the modules object (__webpack_modules__)
/******/ 	__webpack_require__.m = modules;
/******/
/******/ 	// expose the module cache
/******/ 	__webpack_require__.c = installedModules;
/******/
/******/ 	// define getter function for harmony exports
/******/ 	__webpack_require__.d = function(exports, name, getter) {
/******/ 		if(!__webpack_require__.o(exports, name)) {
/******/ 			Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ 		}
/******/ 	};
/******/
/******/ 	// define __esModule on exports
/******/ 	__webpack_require__.r = function(exports) {
/******/ 		if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ 			Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ 		}
/******/ 		Object.defineProperty(exports, '__esModule', { value: true });
/******/ 	};
/******/
/******/ 	// create a fake namespace object
/******/ 	// mode & 1: value is a module id, require it
/******/ 	// mode & 2: merge all properties of value into the ns
/******/ 	// mode & 4: return value when already ns object
/******/ 	// mode & 8|1: behave like require
/******/ 	__webpack_require__.t = function(value, mode) {
/******/ 		if(mode & 1) value = __webpack_require__(value);
/******/ 		if(mode & 8) return value;
/******/ 		if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ 		var ns = Object.create(null);
/******/ 		__webpack_require__.r(ns);
/******/ 		Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ 		if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ 		return ns;
/******/ 	};
/******/
/******/ 	// getDefaultExport function for compatibility with non-harmony modules
/******/ 	__webpack_require__.n = function(module) {
/******/ 		var getter = module && module.__esModule ?
/******/ 			function getDefault() { return module['default']; } :
/******/ 			function getModuleExports() { return module; };
/******/ 		__webpack_require__.d(getter, 'a', getter);
/******/ 		return getter;
/******/ 	};
/******/
/******/ 	// Object.prototype.hasOwnProperty.call
/******/ 	__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ 	// __webpack_public_path__
/******/ 	__webpack_require__.p = "";
/******/
/******/
/******/ 	// Load entry module and return exports
/******/ 	return __webpack_require__(__webpack_require__.s = 55);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "$", function() { return $; });
var $ = jQuery;


/***/ }),
/* 1 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);

// EXTERNAL MODULE: ./src/MALSync/src/api/storage/userscriptLegacy.ts
var userscriptLegacy = __webpack_require__(6);

// CONCATENATED MODULE: ./src/MALSync/src/api/request/requestUserscriptLegacy.ts
var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
const requestUserscriptLegacy = {
    xhr(method, url) {
        return __awaiter(this, void 0, void 0, function* () {
            return new Promise((resolve, reject) => {
                var request = {
                    method: method,
                    url: url,
                    synchronous: false,
                    headers: [],
                    data: null,
                    onload: function (response) {
                        console.log(response);
                        var responseObj = {
                            finalUrl: response.finalUrl,
                            responseText: response.responseText,
                            status: response.status
                        };
                        resolve(responseObj);
                    }
                };
                if (typeof url === 'object') {
                    request.url = url.url;
                    request.headers = url.headers;
                    request.data = url.data;
                }
                GM_xmlhttpRequest(request);
            });
        });
    },
};

// EXTERNAL MODULE: ./src/MALSync/src/api/settings.ts
var settings = __webpack_require__(7);

// CONCATENATED MODULE: ./src/MALSync/src/api/userscript.ts
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "storage", function() { return storage; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "request", function() { return request; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "settings", function() { return userscript_settings; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "type", function() { return type; });



var storage = userscriptLegacy["a" /* userscriptLegacy */];
var request = requestUserscriptLegacy;
var userscript_settings = settings["a" /* settingsObj */];
var type = 'userscript';


/***/ }),
/* 2 */
/***/ (function(module, exports) {

/*
	MIT License http://www.opensource.org/licenses/mit-license.php
	Author Tobias Koppers @sokra
*/
// css base code, injected by the css-loader
module.exports = function(useSourceMap) {
	var list = [];

	// return the list of modules as css string
	list.toString = function toString() {
		return this.map(function (item) {
			var content = cssWithMappingToString(item, useSourceMap);
			if(item[2]) {
				return "@media " + item[2] + "{" + content + "}";
			} else {
				return content;
			}
		}).join("");
	};

	// import a list of modules into the list
	list.i = function(modules, mediaQuery) {
		if(typeof modules === "string")
			modules = [[null, modules, ""]];
		var alreadyImportedModules = {};
		for(var i = 0; i < this.length; i++) {
			var id = this[i][0];
			if(typeof id === "number")
				alreadyImportedModules[id] = true;
		}
		for(i = 0; i < modules.length; i++) {
			var item = modules[i];
			// skip already imported module
			// this implementation is not 100% perfect for weird media query combinations
			//  when a module is imported multiple times with different media queries.
			//  I hope this will never occur (Hey this way we have smaller bundles)
			if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
				if(mediaQuery && !item[2]) {
					item[2] = mediaQuery;
				} else if(mediaQuery) {
					item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
				}
				list.push(item);
			}
		}
	};
	return list;
};

function cssWithMappingToString(item, useSourceMap) {
	var content = item[1] || '';
	var cssMapping = item[3];
	if (!cssMapping) {
		return content;
	}

	if (useSourceMap && typeof btoa === 'function') {
		var sourceMapping = toComment(cssMapping);
		var sourceURLs = cssMapping.sources.map(function (source) {
			return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'
		});

		return [content].concat(sourceURLs).concat([sourceMapping]).join('\n');
	}

	return [content].join('\n');
}

// Adapted from convert-source-map (MIT)
function toComment(sourceMap) {
	// eslint-disable-next-line no-undef
	var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));
	var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;

	return '/*# ' + data + ' */';
}


/***/ }),
/* 3 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "log", function() { return log; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "error", function() { return error; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "info", function() { return info; });
var log = function () {
    return Function.prototype.bind.call(console.log, console, "%cMAL-Sync", "background-color: #2e51a2; color: white; padding: 2px 10px; border-radius: 3px;");
}();
var error = function () {
    return Function.prototype.bind.call(console.error, console, "%cMAL-Sync", "background-color: #8f0000; color: white; padding: 2px 10px; border-radius: 3px;");
}();
var info = function () {
    return Function.prototype.bind.call(console.info, console, "%cMAL-Sync", "background-color: wheat; color: black; padding: 2px 10px; border-radius: 3px;");
}();


/***/ }),
/* 4 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* WEBPACK VAR INJECTION */(function(j, api, con, utils) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "urlPart", function() { return urlPart; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "urlParam", function() { return urlParam; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getBaseText", function() { return getBaseText; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "favicon", function() { return favicon; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "watching", function() { return watching; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "planTo", function() { return planTo; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "episode", function() { return episode; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "syncRegex", function() { return syncRegex; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "status", function() { return status; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getselect", function() { return getselect; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "absoluteLink", function() { return absoluteLink; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "urlChangeDetect", function() { return urlChangeDetect; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "changeDetect", function() { return changeDetect; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "waitUntilTrue", function() { return waitUntilTrue; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getUrlFromTags", function() { return getUrlFromTags; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setUrlInTags", function() { return setUrlInTags; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setResumeWaching", function() { return setResumeWaching; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getResumeWaching", function() { return getResumeWaching; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "setContinueWaching", function() { return setContinueWaching; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getContinueWaching", function() { return getContinueWaching; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "handleMalImages", function() { return handleMalImages; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getMalToKissArray", function() { return getMalToKissArray; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getTooltip", function() { return getTooltip; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "epPredictionUI", function() { return epPredictionUI; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeDiffToText", function() { return timeDiffToText; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canHideTabs", function() { return canHideTabs; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "epPrediction", function() { return epPrediction; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "statusTag", function() { return statusTag; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "notifications", function() { return notifications; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeCache", function() { return timeCache; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "flashm", function() { return flashm; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "flashConfirm", function() { return flashConfirm; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "lazyload", function() { return lazyload; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "elementInViewport", function() { return elementInViewport; });
var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
function urlPart(url, part) {
    try {
        return url.split("/")[part].split("?")[0].split("#")[0];
    }
    catch (e) {
        return undefined;
    }
}
function urlParam(url, name) {
    var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(url);
    if (results == null) {
        return null;
    }
    else {
        return decodeURI(results[1]) || 0;
    }
}
function getBaseText(element) {
    var text = element.text();
    element.children().each(function () {
        //@ts-ignore
        text = text.replace(j.$(this).text(), '');
    });
    return text;
}
function favicon(domain) {
    if (domain.indexOf('animeheaven') !== -1)
        return 'http://animeheaven.eu/favicon.ico';
    return 'https://www.google.com/s2/favicons?domain=' + domain;
}
function watching(type) {
    if (type == "manga")
        return 'Reading';
    return 'Watching';
}
function planTo(type) {
    if (type == "manga")
        return 'Plan to Read';
    return 'Plan to Watch';
}
function episode(type) {
    if (type == "manga")
        return api.storage.lang("UI_Chapter");
    return api.storage.lang("UI_Episode");
}
var syncRegex = /(^settings\/.*|^resume\/.*|^continue\/.*|^.*\/Offset$|^updateCheckTime$|^tempVersion$|^local:\/\/)/;
var status;
(function (status) {
    status[status["watching"] = 1] = "watching";
    status[status["completed"] = 2] = "completed";
    status[status["onhold"] = 3] = "onhold";
    status[status["dropped"] = 4] = "dropped";
    status[status["planToWatch"] = 6] = "planToWatch";
})(status || (status = {}));
function getselect(data, name) {
    var temp = data.split('name="' + name + '"')[1].split('</select>')[0];
    if (temp.indexOf('selected="selected"') > -1) {
        temp = temp.split('<option');
        for (var i = 0; i < temp.length; ++i) {
            if (temp[i].indexOf('selected="selected"') > -1) {
                return temp[i].split('value="')[1].split('"')[0];
            }
        }
    }
    else {
        return '';
    }
}
function absoluteLink(url, domain) {
    if (typeof url === "undefined") {
        return url;
    }
    if (!url.startsWith("http")) {
        if (url.charAt(0) !== '/')
            url = '/' + url;
        url = domain + url;
    }
    return url;
}
;
function urlChangeDetect(callback) {
    var currentPage = window.location.href;
    return setInterval(function () {
        if (currentPage != window.location.href) {
            currentPage = window.location.href;
            callback();
        }
    }, 100);
}
function changeDetect(callback, func) {
    var currentPage = func();
    return setInterval(function () {
        var temp = func();
        if (typeof temp != 'undefined' && currentPage != temp) {
            currentPage = func();
            callback();
        }
    }, 500);
}
function waitUntilTrue(condition, callback) {
    var Interval = null;
    Interval = setInterval(function () {
        if (condition()) {
            clearInterval(Interval);
            callback();
        }
    }, 100);
    return Interval;
}
function getUrlFromTags(tags) {
    if (!api.settings.get('malTags'))
        return undefined;
    if (/malSync::[\d\D]+::/.test(tags)) {
        return atobURL(tags.split("malSync::")[1].split("::")[0]);
    }
    if (/last::[\d\D]+::/.test(tags)) {
        return atobURL(tags.split("last::")[1].split("::")[0]);
    }
    return undefined;
    function atobURL(encoded) {
        try {
            return atob(encoded);
        }
        catch (e) {
            return encoded;
        }
    }
}
function setUrlInTags(url, tags) {
    if (!api.settings.get('malTags'))
        return tags;
    var addition = "malSync::" + btoa(url) + "::";
    if (/(last|malSync)::[\d\D]+::/.test(tags)) {
        tags = tags.replace(/(last|malSync)::[^\^]*?::/, addition);
    }
    else {
        tags = tags + ',' + addition;
    }
    return tags;
}
function setResumeWaching(url, ep, type, id) {
    return __awaiter(this, void 0, void 0, function* () {
        return api.storage.set('resume/' + type + '/' + id, { url: url, ep: ep });
    });
}
function getResumeWaching(type, id) {
    return __awaiter(this, void 0, void 0, function* () {
        //@ts-ignore
        if (!api.settings.get('malResume'))
            return undefined;
        return api.storage.get('resume/' + type + '/' + id);
    });
}
function setContinueWaching(url, ep, type, id) {
    return __awaiter(this, void 0, void 0, function* () {
        return api.storage.set('continue/' + type + '/' + id, { url: url, ep: ep });
    });
}
function getContinueWaching(type, id) {
    return __awaiter(this, void 0, void 0, function* () {
        //@ts-ignore
        if (!api.settings.get('malContinue'))
            return undefined;
        return api.storage.get('continue/' + type + '/' + id);
    });
}
function handleMalImages(url) {
    if (url.indexOf('questionmark') !== -1)
        return api.storage.assetUrl('questionmark.gif');
    return url;
}
function getMalToKissArray(type, id) {
    return __awaiter(this, void 0, void 0, function* () {
        return new Promise((resolve, reject) => {
            var url = 'https://kissanimelist.firebaseio.com/Data2/Mal' + type + '/' + id + '/Sites.json';
            api.request.xhr('GET', url).then((response) => __awaiter(this, void 0, void 0, function* () {
                var json = j.$.parseJSON(response.responseText);
                for (var pageKey in json) {
                    var page = json[pageKey];
                    if (!api.settings.get(pageKey)) {
                        con.log(pageKey + ' is deactivated');
                        delete json[pageKey];
                        continue;
                    }
                    for (var streamKey in page) {
                        var stream = page[streamKey];
                        var streamUrl = 'https://kissanimelist.firebaseio.com/Data2/' + stream + '/' + encodeURIComponent(streamKey) + '.json';
                        var cache = yield api.storage.get('MalToKiss/' + stream + '/' + encodeURIComponent(streamKey), null);
                        if (typeof (cache) !== "undefined" && cache !== null && cache.constructor === Object && Object.keys(cache).length !== 0) {
                            var streamJson = cache;
                        }
                        else {
                            var streamRespose = yield api.request.xhr('GET', streamUrl);
                            var streamJson = j.$.parseJSON(streamRespose.responseText);
                            api.storage.set('MalToKiss/' + stream + '/' + encodeURIComponent(streamKey), streamJson);
                        }
                        if (!streamJson) {
                            con.error('[K2M] ' + pageKey + '/' + streamKey + ' not found');
                            delete json[pageKey][streamKey];
                            continue;
                        }
                        if (!(id in streamJson['Mal'])) {
                            con.error('[K2M] Wrong mal id', streamJson);
                            delete json[pageKey][streamKey];
                            continue;
                        }
                        if (pageKey == 'Crunchyroll') {
                            streamJson['url'] = streamJson['url'] + '?season=' + streamKey;
                        }
                        json[pageKey][streamKey] = streamJson;
                    }
                }
                con.log('Mal2Kiss', json);
                resolve(json);
            }));
        });
    });
}
function getTooltip(text, style = '', direction = 'top') {
    var rNumber = Math.floor((Math.random() * 1000) + 1);
    return '<div id="tt' + rNumber + '" class="icon material-icons" style="font-size:16px; line-height: 0; color: #7f7f7f; padding-bottom: 20px; padding-left: 3px; ' + style + '">contact_support</div>\
  <div class="mdl-tooltip mdl-tooltip--' + direction + ' mdl-tooltip--large" for="tt' + rNumber + '">' + text + '</div>';
}
function epPredictionUI(malid, cacheKey, type = 'anime', callback) {
    return __awaiter(this, void 0, void 0, function* () {
        utils.epPrediction(malid, function (pre) {
            return __awaiter(this, void 0, void 0, function* () {
                if (!pre)
                    callback(false);
                var updateCheckTime = yield api.storage.get("updateCheckTime");
                var aniCache = yield api.storage.get('mal/' + malid + '/aniSch');
                var elCache = undefined;
                if (typeof updateCheckTime != 'undefined' && updateCheckTime && updateCheckTime != '0') {
                    elCache = yield api.storage.get('updateCheck/' + type + '/' + cacheKey);
                }
                if (pre === false && typeof elCache == 'undefined')
                    return;
                var UI = {
                    tag: '',
                    text: '',
                    color: '',
                    colorStyle: '',
                    tagEpisode: false,
                    prediction: pre,
                    aniCache: aniCache,
                    elCache: elCache
                };
                //
                var airing = pre.airing;
                var episode = pre.episode;
                if (typeof aniCache != 'undefined') {
                    var timestamp = aniCache.nextEpTime * 1000;
                    if (Date.now() < timestamp) {
                        episode = aniCache.currentEp;
                        var delta = (timestamp - Date.now()) / 1000;
                        pre.diffDays = Math.floor(delta / 86400);
                        delta -= pre.diffDays * 86400;
                        pre.diffHours = Math.floor(delta / 3600) % 24;
                        delta -= pre.diffHours * 3600;
                        pre.diffMinutes = Math.floor(delta / 60) % 60;
                        delta -= pre.diffMinutes * 60;
                    }
                    else {
                        if (Date.now() - timestamp < 1000 * 60 * 60 * 24) {
                            episode = aniCache.currentEp + 1;
                        }
                    }
                }
                if (typeof elCache != 'undefined' && typeof elCache.error == 'undefined') {
                    if (!elCache.finished) {
                        airing = true;
                    }
                    if (elCache.newestEp && elCache.newestEp != '' && typeof elCache.newestEp != 'undefined') {
                        episode = elCache.newestEp;
                        UI.color = 'red';
                    }
                }
                if (UI.color != '') {
                    //UI.colorStyle = 'text-decoration: underline overline !important; text-decoration-color: '+UI.color+' !important;'
                    UI.colorStyle = 'background-color: #00ff0057;';
                }
                //
                if (airing) {
                    if (pre.airing) {
                        UI.text = api.storage.lang("prediction_Episode", [pre.diffDays + 'd ' + pre.diffHours + 'h ' + pre.diffMinutes + 'm']);
                    }
                    if (episode) {
                        UI.tag = '<span class="mal-sync-ep-pre" title="' + UI.text + '">[<span style="' + UI.colorStyle + ';">' + episode + '</span>]</span>';
                        UI.tagEpisode = episode;
                    }
                }
                else {
                    if (pre) {
                        UI.text = '<span class="mal-sync-ep-pre">';
                        UI.text += api.storage.lang("prediction_Airing", [((pre.diffWeeks * 7) + pre.diffDays) + 'd ' + pre.diffHours + 'h ' + pre.diffMinutes + 'm ']);
                        UI.text += '</span>';
                    }
                }
                callback(UI);
            });
        });
    });
}
function timeDiffToText(delta) {
    var text = '';
    delta = delta / 1000;
    var diffDays = Math.floor(delta / 86400);
    delta -= diffDays * 86400;
    if (diffDays) {
        text += diffDays + 'd ';
    }
    var diffHours = Math.floor(delta / 3600) % 24;
    delta -= diffHours * 3600;
    if (diffHours && diffDays < 2) {
        text += diffHours + 'h ';
    }
    var diffMinutes = Math.floor(delta / 60) % 60;
    delta -= diffMinutes * 60;
    if (diffMinutes && !diffDays && diffHours < 3) {
        text += diffMinutes + 'min ';
    }
    return text;
}
function canHideTabs() {
    if (typeof browser != 'undefined' && typeof browser.tabs.hide != 'undefined') {
        return true;
    }
    return false;
}
function epPrediction(malId, callback) {
    return __awaiter(this, void 0, void 0, function* () {
        if (!api.settings.get('epPredictions'))
            return;
        var timestamp = yield api.storage.get('mal/' + malId + '/release');
        if (typeof (timestamp) != "undefined") {
            var airing = 1;
            var episode = 0;
            if (Date.now() < timestamp)
                airing = 0;
            if (airing) {
                var delta = Math.abs(Date.now() - timestamp) / 1000;
            }
            else {
                var delta = Math.abs(timestamp - Date.now()) / 1000;
            }
            var diffWeeks = Math.floor(delta / (86400 * 7));
            delta -= diffWeeks * (86400 * 7);
            if (airing) {
                //We need the time until the week is complete
                delta = (86400 * 7) - delta;
            }
            var diffDays = Math.floor(delta / 86400);
            delta -= diffDays * 86400;
            var diffHours = Math.floor(delta / 3600) % 24;
            delta -= diffHours * 3600;
            var diffMinutes = Math.floor(delta / 60) % 60;
            delta -= diffMinutes * 60;
            if (airing) {
                episode = diffWeeks - (new Date().getFullYear() - new Date(timestamp).getFullYear()); //Remove 1 week between years
                episode++;
                if (episode > 50) {
                    episode = 0;
                }
            }
            var maxEp = yield api.storage.get('mal/' + malId + '/release');
            if (typeof (maxEp) === "undefined" || episode < maxEp) {
                callback({
                    timestamp: timestamp,
                    airing: airing,
                    diffWeeks: diffWeeks,
                    diffDays: diffDays,
                    diffHours: diffHours,
                    diffMinutes: diffMinutes,
                    episode: episode
                });
                return;
            }
        }
        callback(false);
    });
}
function statusTag(status, type, id) {
    var info = {
        anime: {
            1: {
                class: 'watching',
                text: 'CW',
                title: 'Watching'
            },
            2: {
                class: 'completed',
                text: 'CMPL',
                title: 'Completed'
            },
            3: {
                class: 'on-hold',
                text: ' HOLD',
                title: 'On-Hold'
            },
            4: {
                class: 'dropped',
                text: 'DROP',
                title: 'Dropped'
            },
            6: {
                class: 'plantowatch',
                text: 'PTW',
                title: 'Plan to Watch'
            }
        },
        manga: {
            1: {
                class: 'reading',
                text: 'CR',
                title: 'Reading'
            },
            2: {
                class: 'completed',
                text: 'CMPL',
                title: 'Completed'
            },
            3: {
                class: 'on-hold',
                text: ' HOLD',
                title: 'On-Hold'
            },
            4: {
                class: 'dropped',
                text: 'DROP',
                title: 'Dropped'
            },
            6: {
                class: 'plantoread',
                text: 'PTR',
                title: 'Plan to Read'
            }
        }
    };
    $.each([1, 2, 3, 4, 6], function (i, el) {
        info.anime[info.anime[el].title] = info.anime[el];
        info.manga[info.manga[el].title] = info.manga[el];
    });
    if (status) {
        var tempInfo = info[type][status];
        return ` <a href="https://myanimelist.net/ownlist/${type}/${id}/edit?hideLayout=1" title="${tempInfo.title}" class="Lightbox_AddEdit button_edit ${tempInfo.class}">${tempInfo.text}</a>`;
    }
    return false;
}
function notifications(url, title, message, iconUrl = '') {
    var messageObj = {
        type: 'basic',
        title: title,
        message: message,
        iconUrl: iconUrl,
    };
    con.log('Notification', url, messageObj);
    api.storage.get('notificationHistory').then((history) => {
        if (typeof history === 'undefined') {
            history = [];
        }
        if (history.length >= 10) {
            history.shift();
        }
        history.push({
            url: url,
            title: messageObj.title,
            message: messageObj.message,
            iconUrl: messageObj.iconUrl,
            timestamp: Date.now()
        });
        api.storage.set('notificationHistory', history);
    });
    try {
        return chrome.notifications.create(url, messageObj);
    }
    catch (e) {
        con.error(e);
    }
}
function timeCache(key, dataFunction, ttl) {
    return __awaiter(this, void 0, void 0, function* () {
        return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
            var value = yield api.storage.get(key);
            if (typeof value !== 'undefined' && new Date().getTime() < value.timestamp) {
                resolve(value.data);
                return;
            }
            var result = yield dataFunction();
            api.storage.set(key, { data: result, timestamp: new Date().getTime() + ttl }).then(() => {
                resolve(result);
            });
        }));
    });
}
//flashm
function flashm(text, options) {
    if (!j.$('#flash-div-top').length) {
        initflashm();
    }
    con.log("[Flash] Message:", text);
    var colorF = "#323232";
    if (typeof options !== 'undefined' && typeof options.error !== 'undefined' && options.error) {
        var colorF = "#3e0808";
    }
    var flashdiv = '#flash-div-bottom';
    if (typeof options !== 'undefined' && typeof options.position !== 'undefined' && options.position) {
        flashdiv = '#flash-div-' + options.position;
    }
    var messClass = "flash";
    if (typeof options !== 'undefined' && typeof options.type !== 'undefined' && options.type) {
        var tempClass = "type-" + options.type;
        j.$(flashdiv + ' .' + tempClass + ', #flashinfo-div .' + tempClass)
            .removeClass(tempClass)
            .fadeOut({
            duration: 1000,
            queue: false,
            complete: function () { j.$(this).remove(); }
        });
        messClass += " " + tempClass;
    }
    var mess = '<div class="' + messClass + '" style="display:none;">\
        <div style="display:table; pointer-events: all; padding: 14px 24px 14px 24px; margin: 0 auto; margin-top: 5px; max-width: 60%; -webkit-border-radius: 20px;-moz-border-radius: 20px;border-radius: 2px;color: white;background:' + colorF + '; ">\
          ' + text + '\
        </div>\
      </div>';
    if (typeof options !== 'undefined' && typeof options.hoverInfo !== 'undefined' && options.hoverInfo) {
        messClass += " flashinfo";
        mess = '<div class="' + messClass + '" style="display:none; max-height: 5000px; overflow: hidden;"><div style="display:table; pointer-events: all; margin: 0 auto; margin-top: -2px; max-width: 60%; -webkit-border-radius: 20px;-moz-border-radius: 20px;border-radius: 2px;color: white;background:' + colorF + '; position: relative;"><div style="max-height: 60vh; overflow-y: auto; padding: 14px 24px 14px 24px;">' + text + '</div></div></div>';
        j.$('#flashinfo-div').addClass('hover');
        var flashm = j.$(mess).appendTo('#flashinfo-div');
        if (typeof options !== 'undefined' && typeof options.minimized !== 'undefined' && options.minimized)
            flashm.css('max-height', '8px');
    }
    else {
        var flashm = j.$(mess).appendTo(flashdiv);
    }
    if (typeof options !== 'undefined' && typeof options.permanent !== 'undefined' && options.permanent) {
        flashm.slideDown(800);
    }
    else if (typeof options !== 'undefined' && typeof options.hoverInfo !== 'undefined' && options.hoverInfo) {
        flashm.slideDown(800).delay(4000).queue(function () { j.$('#flashinfo-div').removeClass('hover'); flashm.css('max-height', '8px'); });
    }
    else {
        flashm.slideDown(800).delay(4000).slideUp(800, () => {
            // @ts-ignore
            j.$(this).remove();
        });
    }
    return flashm;
}
function flashConfirm(message, type, yesCall = () => { }, cancelCall = () => { }) {
    return __awaiter(this, void 0, void 0, function* () {
        return new Promise(function (resolve, reject) {
            message = '<div style="text-align: center;">' + message + '</div><div style="display: flex; justify-content: space-around;"><button class="Yes" style="background-color: transparent; border: none; color: rgb(255,64,129);margin-top: 10px; cursor:pointer;">OK</button><button class="Cancel" style="background-color: transparent; border: none; color: rgb(255,64,129);margin-top: 10px; cursor:pointer;">CANCEL</button></div>';
            var flasmessage = flashm(message, { permanent: true, position: "top", type: type });
            flasmessage.find('.Yes').click(function (evt) {
                j.$(evt.target).parentsUntil('.flash').remove();
                resolve(true);
                yesCall();
            });
            flasmessage.find('.Cancel').click(function (evt) {
                j.$(evt.target).parentsUntil('.flash').remove();
                resolve(false);
                cancelCall();
            });
        });
    });
}
function initflashm() {
    api.storage.addStyle('.flashinfo{\
                    transition: max-height 2s;\
                 }\
                 .flashinfo:hover{\
                    max-height:5000px !important;\
                    z-index: 2147483647;\
                 }\
                 .flashinfo .synopsis{\
                    transition: max-height 2s, max-width 2s ease 2s;\
                 }\
                 .flashinfo:hover .synopsis{\
                    max-height:9999px !important;\
                    max-width: 500px !important;\
                    transition: max-height 2s;\
                 }\
                 #flashinfo-div{\
                  z-index: 2;\
                  transition: 2s;\
                 }\
                 #flashinfo-div:hover, #flashinfo-div.hover{\
                  z-index: 2147483647;\
                 }\
                 \
                 #flash-div-top, #flash-div-bottom, #flashinfo-div{\
                    font-family: "Helvetica","Arial",sans-serif;\
                    color: white;\
                    font-size: 14px;\
                    font-weight: 400;\
                    line-height: 17px;\
                 }\
                 #flash-div-top h2, #flash-div-bottom h2, #flashinfo-div h2{\
                    font-family: "Helvetica","Arial",sans-serif;\
                    color: white;\
                    font-size: 14px;\
                    font-weight: 700;\
                    line-height: 17px;\
                    padding: 0;\
                    margin: 0;\
                 }\
                 #flash-div-top a, #flash-div-bottom a, #flashinfo-div a{\
                    color: #DF6300;\
                 }');
    j.$('body').after('<div id="flash-div-top" style="text-align: center;pointer-events: none;position: fixed;top:-5px;width:100%;z-index: 2147483647;left: 0;"></div>\
        <div id="flash-div-bottom" style="text-align: center;pointer-events: none;position: fixed;bottom:0px;width:100%;z-index: 2147483647;left: 0;"><div id="flash" style="display:none;  background-color: red;padding: 20px; margin: 0 auto;max-width: 60%;          -webkit-border-radius: 20px;-moz-border-radius: 20px;border-radius: 20px;background:rgba(227,0,0,0.6);"></div></div>\
        <div id="flashinfo-div" style="text-align: center;pointer-events: none;position: fixed;bottom:0px;width:100%;left: 0;">');
}
var lazyloaded = false;
var lazyimages = new Array();
function lazyload(doc, scrollElement = '.mdl-layout__content') {
    /* lazyload.js (c) Lorenzo Giuliani
     * MIT License (http://www.opensource.org/licenses/mit-license.html)
     *
     * expects a list of:
     * `<img src="blank.gif" data-src="my_image.png" width="600" height="400" class="lazy">`
     */
    function loadImage(el, fn) {
        if (!j.$(el).is(':visible'))
            return false;
        if (j.$(el).hasClass('lazyBack')) {
            j.$(el).css('background-image', 'url(' + el.getAttribute('data-src') + ')').removeClass('lazyBack');
        }
        else {
            var img = new Image(), src = el.getAttribute('data-src');
            img.onload = function () {
                if (!!el.parent)
                    el.parent.replaceChild(img, el);
                else
                    el.src = src;
                fn ? fn() : null;
            };
            img.src = src;
        }
    }
    for (var i = 0; i < lazyimages.length; i++) {
        $(lazyimages[i]).addClass('init');
    }
    ;
    lazyimages = new Array();
    var query = doc.find('img.lazy.init, .lazyBack.init'), processScroll = function () {
        for (var i = 0; i < lazyimages.length; i++) {
            if (utils.elementInViewport(lazyimages[i], 600)) {
                loadImage(lazyimages[i], function () {
                    lazyimages.splice(i, i);
                });
            }
            if (!$(lazyimages[i]).length) {
                lazyimages.splice(i, i);
            }
        }
        ;
    };
    // Array.prototype.slice.call is not callable under our lovely IE8
    for (var i = 0; i < query.length; i++) {
        lazyimages.push(query[i]);
        $(query[i]).removeClass('init');
    }
    ;
    processScroll();
    if (!lazyloaded) {
        lazyloaded = true;
        doc.find(scrollElement).scroll(function () {
            processScroll();
        });
    }
}
function elementInViewport(el, horizontalOffset = 0) {
    var rect = el.getBoundingClientRect();
    return (rect.top >= 0
        && rect.left >= 0
        // @ts-ignore
        && (rect.top - horizontalOffset) <= (window.innerHeight || document.documentElement.clientHeight));
}

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(1), __webpack_require__(3), __webpack_require__(4)))

/***/ }),
/* 5 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(100);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 6 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return userscriptLegacy; });
var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
const userscriptLegacy = {
    set(key, value) {
        return __awaiter(this, void 0, void 0, function* () {
            GM_setValue(key, value);
        });
    },
    get(key) {
        return __awaiter(this, void 0, void 0, function* () {
            const value = GM_getValue(key);
            return value;
        });
    },
    remove(key) {
        return __awaiter(this, void 0, void 0, function* () {
            GM_deleteValue(key);
        });
    },
    list() {
        return __awaiter(this, void 0, void 0, function* () {
            var reverseArray = {};
            j.$.each(GM_listValues(), function (index, cache) {
                reverseArray[cache] = index;
            });
            return reverseArray;
        });
    },
    addStyle(css) {
        return __awaiter(this, void 0, void 0, function* () {
            GM_addStyle(css);
        });
    },
    version() {
        return GM_info.script.version;
    },
    lang(selector, args) {
        var message = i18n[selector];
        if (typeof args !== 'undefined') {
            for (var argIndex = 0; argIndex < args.length; argIndex++) {
                message = message.replace("$" + (argIndex + 1), args[argIndex]);
            }
        }
        return message;
    },
    assetUrl(filename) {
        return 'https://raw.githubusercontent.com/lolamtisch/MALSync/master/assets/assets/' + filename;
    },
    injectCssResource(res, head) {
        head.append(j.$('<style>')
            .attr("rel", "stylesheet")
            .attr("type", "text/css")
            .html(GM_getResourceText(res)));
    },
    injectjsResource(res, head) {
        var s = document.createElement('script');
        s.text = GM_getResourceText(res);
        s.onload = function () {
            // @ts-ignore
            this.remove();
        };
        head.get(0).appendChild(s);
    },
    updateDom(head) {
        var s = document.createElement('script');
        s.text = `
        document.getElementsByTagName('head')[0].onclick = function(e){
          try{
            componentHandler.upgradeDom();
          }catch(e){
            console.log(e);
            setTimeout(function(){
              componentHandler.upgradeDom();
            },500);
          }
        }`;
        s.onload = function () {
            // @ts-ignore
            this.remove();
        };
        head.get(0).appendChild(s);
    },
    storageOnChanged(cb) {
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0)))

/***/ }),
/* 7 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(api, con) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return settingsObj; });
var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
var settingsObj = {
    options: {
        autoTrackingModeanime: 'video',
        autoTrackingModemanga: 'instant',
        forceEn: false,
        userscriptMode: false,
        syncMode: 'MAL',
        syncModeSimkl: 'MAL',
        localSync: true,
        delay: 0,
        videoDuration: 85,
        malTags: true,
        malContinue: true,
        malResume: true,
        epPredictions: true,
        theme: 'light',
        minimalWindow: false,
        posLeft: 'left',
        miniMALonMal: false,
        floatButtonStealth: false,
        floatButtonHide: false,
        autoCloseMinimal: false,
        outWay: true,
        miniMalWidth: '500px',
        miniMalHeight: '90%',
        malThumbnail: 100,
        friendScore: true,
        SiteSearch: true,
        '9anime': true,
        Crunchyroll: true,
        Gogoanime: true,
        Kissanime: true,
        Masterani: true,
        Animeheaven: true,
        Twistmoe: true,
        Anime4you: true,
        Kissmanga: true,
        Mangadex: true,
        Mangarock: true,
        Netflix: true,
        Proxeranime: true,
        Proxermanga: true,
        Novelplanet: true,
        autofull: false,
        autoresume: false,
        introSkip: 85,
        updateCheckNotifications: true,
        'anilistToken': '',
        'kitsuToken': '',
        'simklToken': ''
    },
    init: function () {
        return __awaiter(this, void 0, void 0, function* () {
            return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
                for (var key in this.options) {
                    var store = yield api.storage.get('settings/' + key);
                    if (typeof store != 'undefined') {
                        this.options[key] = store;
                    }
                }
                con.log('Settings', this.options);
                resolve(this);
                api.storage.storageOnChanged((changes, namespace) => {
                    if (namespace === 'sync') {
                        for (var key in changes) {
                            var storageChange = changes[key];
                            if (/^settings\//i.test(key)) {
                                this.options[key.replace('settings/', '')] = storageChange.newValue;
                                con.info('Update ' + key + ' option to ' + storageChange.newValue);
                            }
                        }
                    }
                });
            }));
        });
    },
    get: function (name) {
        return this.options[name];
    },
    set: function (name, value) {
        if (this.options.hasOwnProperty(name)) {
            this.options[name] = value;
            return api.storage.set('settings/' + name, value);
        }
        else {
            con.error(name + ' is not a defined option');
        }
    },
    getAsync: function (name) {
        return __awaiter(this, void 0, void 0, function* () {
            var value = yield api.storage.get('settings/' + name);
            if (typeof value === 'undefined' && typeof this.options[name] !== undefined)
                return this.options[name];
            return value;
        });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(1), __webpack_require__(3)))

/***/ }),
/* 8 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return pages; });
/* unused harmony export pageSearch */
/* harmony import */ var _Kissanime_main__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);
/* harmony import */ var _Kissmanga_main__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10);
/* harmony import */ var _nineAnime_main__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11);
/* harmony import */ var _Crunchyroll_main__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12);
/* harmony import */ var _Mangadex_main__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13);
/* harmony import */ var _Mangarock_main__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(14);
/* harmony import */ var _Gogoanime_main__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(15);
/* harmony import */ var _Anime4you_main__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(16);
/* harmony import */ var _Branitube_main__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(17);
/* harmony import */ var _Turkanime_main__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(18);
/* harmony import */ var _Twistmoe_main__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(19);
/* harmony import */ var _Emby_main__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(20);
/* harmony import */ var _Plex_main__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(21);
/* harmony import */ var _Netflix_main__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(22);
/* harmony import */ var _Otakustream_main__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(23);
/* harmony import */ var _animepahe_main__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(24);
/* harmony import */ var _Animeflv_main__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(25);
/* harmony import */ var _Jkanime_main__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(26);
/* harmony import */ var _Vrv_main__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(27);
/* harmony import */ var _Proxer_main__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(28);
/* harmony import */ var _Animevibe_main__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(29);
/* harmony import */ var _Novelplanet_main__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(30);
/* harmony import */ var _WonderfulSubs_main__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(31);
/* harmony import */ var _kawaiifu_main__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(32);
/* harmony import */ var _fourAnime_main__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(33);
/* harmony import */ var _Dreamanimes_main__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(34);
/* harmony import */ var _animeultima_main__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(35);
/* harmony import */ var _Aniflix_main__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(36);
/* harmony import */ var _AnimeDaisuki_main__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(37);
/* harmony import */ var _Animefreak_main__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(38);
/* harmony import */ var _AnimePlanet_main__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(39);
/* harmony import */ var _KickAssAnime_main__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(40);
/* harmony import */ var _RiiE_main__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(41);
/* harmony import */ var _AnimeKisa_main__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(42);
/* harmony import */ var _Wakanim_main__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(43);
/* harmony import */ var _AnimeIndo_main__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(44);
/* harmony import */ var _Shinden_main__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(45);
/* harmony import */ var _Funimation_main__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(46);
/* harmony import */ var _Voiranime_main__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(47);
/* harmony import */ var _DubbedAnime_main__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(48);








































const pages = {
    Kissanime: _Kissanime_main__WEBPACK_IMPORTED_MODULE_0__[/* Kissanime */ "a"],
    Kissmanga: _Kissmanga_main__WEBPACK_IMPORTED_MODULE_1__[/* Kissmanga */ "a"],
    nineAnime: _nineAnime_main__WEBPACK_IMPORTED_MODULE_2__[/* nineAnime */ "a"],
    Crunchyroll: _Crunchyroll_main__WEBPACK_IMPORTED_MODULE_3__[/* Crunchyroll */ "a"],
    Mangadex: _Mangadex_main__WEBPACK_IMPORTED_MODULE_4__[/* Mangadex */ "a"],
    Mangarock: _Mangarock_main__WEBPACK_IMPORTED_MODULE_5__[/* Mangarock */ "a"],
    Gogoanime: _Gogoanime_main__WEBPACK_IMPORTED_MODULE_6__[/* Gogoanime */ "a"],
    Anime4you: _Anime4you_main__WEBPACK_IMPORTED_MODULE_7__[/* Anime4you */ "a"],
    Branitube: _Branitube_main__WEBPACK_IMPORTED_MODULE_8__[/* Branitube */ "a"],
    Turkanime: _Turkanime_main__WEBPACK_IMPORTED_MODULE_9__[/* Turkanime */ "a"],
    Twistmoe: _Twistmoe_main__WEBPACK_IMPORTED_MODULE_10__[/* Twistmoe */ "a"],
    animeflv: _Animeflv_main__WEBPACK_IMPORTED_MODULE_16__[/* animeflv */ "a"],
    Jkanime: _Jkanime_main__WEBPACK_IMPORTED_MODULE_17__[/* Jkanime */ "a"],
    Emby: _Emby_main__WEBPACK_IMPORTED_MODULE_11__[/* Emby */ "a"],
    Plex: _Plex_main__WEBPACK_IMPORTED_MODULE_12__[/* Plex */ "a"],
    Netflix: _Netflix_main__WEBPACK_IMPORTED_MODULE_13__[/* Netflix */ "a"],
    Otakustream: _Otakustream_main__WEBPACK_IMPORTED_MODULE_14__[/* Otakustream */ "a"],
    animepahe: _animepahe_main__WEBPACK_IMPORTED_MODULE_15__[/* animepahe */ "a"],
    Vrv: _Vrv_main__WEBPACK_IMPORTED_MODULE_18__[/* Vrv */ "a"],
    Proxer: _Proxer_main__WEBPACK_IMPORTED_MODULE_19__[/* Proxer */ "a"],
    Animevibe: _Animevibe_main__WEBPACK_IMPORTED_MODULE_20__[/* Animevibe */ "a"],
    Novelplanet: _Novelplanet_main__WEBPACK_IMPORTED_MODULE_21__[/* Novelplanet */ "a"],
    WonderfulSubs: _WonderfulSubs_main__WEBPACK_IMPORTED_MODULE_22__[/* WonderfulSubs */ "a"],
    kawaiifu: _kawaiifu_main__WEBPACK_IMPORTED_MODULE_23__[/* kawaiifu */ "a"],
    fourAnime: _fourAnime_main__WEBPACK_IMPORTED_MODULE_24__[/* fourAnime */ "a"],
    Dreamanimes: _Dreamanimes_main__WEBPACK_IMPORTED_MODULE_25__[/* Dreamanimes */ "a"],
    animeultima: _animeultima_main__WEBPACK_IMPORTED_MODULE_26__[/* animeultima */ "a"],
    Aniflix: _Aniflix_main__WEBPACK_IMPORTED_MODULE_27__[/* Aniflix */ "a"],
    AnimeDaisuki: _AnimeDaisuki_main__WEBPACK_IMPORTED_MODULE_28__[/* AnimeDaisuki */ "a"],
    Animefreak: _Animefreak_main__WEBPACK_IMPORTED_MODULE_29__[/* Animefreak */ "a"],
    AnimePlanet: _AnimePlanet_main__WEBPACK_IMPORTED_MODULE_30__[/* AnimePlanet */ "a"],
    KickAssAnime: _KickAssAnime_main__WEBPACK_IMPORTED_MODULE_31__[/* KickAssAnime */ "a"],
    RiiE: _RiiE_main__WEBPACK_IMPORTED_MODULE_32__[/* RiiE */ "a"],
    AnimeKisa: _AnimeKisa_main__WEBPACK_IMPORTED_MODULE_33__[/* AnimeKisa */ "a"],
    Wakanim: _Wakanim_main__WEBPACK_IMPORTED_MODULE_34__[/* Wakanim */ "a"],
    AnimeIndo: _AnimeIndo_main__WEBPACK_IMPORTED_MODULE_35__[/* AnimeIndo */ "a"],
    Shinden: _Shinden_main__WEBPACK_IMPORTED_MODULE_36__[/* Shinden */ "a"],
    Funimation: _Funimation_main__WEBPACK_IMPORTED_MODULE_37__[/* Funimation */ "a"],
    Voiranime: _Voiranime_main__WEBPACK_IMPORTED_MODULE_38__[/* Voiranime */ "a"],
    DubbedAnime: _DubbedAnime_main__WEBPACK_IMPORTED_MODULE_39__[/* DubbedAnime */ "a"],
};
const pageSearch = {
    Crunchyroll: {
        name: 'Crunchyroll',
        type: 'anime',
        domain: 'www.crunchyroll.com',
        searchUrl: (titleEncoded) => { return 'http://www.crunchyroll.com/search?q=' + titleEncoded; }
    },
    Netflix: {
        name: 'Netflix',
        type: 'anime',
        domain: 'www.netflix.com',
        searchUrl: (titleEncoded) => { return 'https://www.netflix.com/search?q=' + titleEncoded; }
    },
    nineAnime: {
        name: '9Anime',
        type: 'anime',
        domain: '9anime.to',
        googleSearchDomain: '9anime.to/watch',
        searchUrl: (titleEncoded) => { return 'https://www1.9anime.to/search?keyword=' + titleEncoded; }
    },
    Otakustream: {
        name: 'Otakustream',
        type: 'anime',
        domain: 'otakustream.tv',
        searchUrl: (titleEncoded) => { return 'https://otakustream.tv/?s=' + titleEncoded; },
    },
    Kissanime: {
        name: 'Kissanime',
        type: 'anime',
        domain: 'kissanime.ru',
        searchUrl: (titleEncoded) => { return 'https://kissanime.ru/Search/Anime?keyword=' + titleEncoded; },
    },
    Gogoanime: {
        name: 'Gogoanime',
        type: 'anime',
        domain: 'www.gogoanime.in',
        searchUrl: (titleEncoded) => { return 'http://gogoanimes.co/search.html?keyword=' + titleEncoded; }
    },
    Turkanime: {
        name: 'Turkanime',
        type: 'anime',
        domain: 'www.turkanime.tv/',
        searchUrl: (titleEncoded) => { return 'https://www.google.com/search?q=' + titleEncoded + '+site:turkanime.tv/anime/'; },
        googleSearchDomain: 'turkanime.tv/anime/'
    },
    animeflv: {
        name: 'animeflv',
        type: 'anime',
        domain: 'animeflv.net',
        searchUrl: (titleEncoded) => { return 'https://animeflv.net/browse?q=' + titleEncoded; }
    },
    Jkanime: {
        name: 'Jkanime',
        type: 'anime',
        domain: 'jkanime.net',
        searchUrl: (titleEncoded) => { return 'https://jkanime.net/buscar/' + titleEncoded + '/1/'; }
    },
    Mangadex: {
        name: 'Mangadex',
        type: 'manga',
        domain: 'mangadex.org',
        searchUrl: (titleEncoded) => { return 'https://mangadex.org/quick_search/' + titleEncoded; }
    },
    Mangarock: {
        name: 'Mangarock',
        type: 'manga',
        domain: 'mangarock.com',
        searchUrl: (titleEncoded) => { return 'https://mangarock.com/search?q=' + titleEncoded; }
    },
    Kissmanga: {
        name: 'Kissmanga',
        type: 'manga',
        domain: 'kissmanga.com',
        searchUrl: (titleEncoded) => { return 'https://kissmanga.com/Search/Manga?keyword=' + titleEncoded; },
    },
    Novelplanet: {
        name: 'Novelplanet',
        type: 'manga',
        domain: 'novelplanet.com',
        searchUrl: (titleEncoded) => { return 'https://novelplanet.com/NovelList?name=' + titleEncoded; }
    },
    AniList: {
        name: 'AniList',
        type: 'anime',
        domain: 'anilist.co',
        searchUrl: (titleEncoded) => { return 'https://anilist.co/search/anime?sort=SEARCH_MATCH&search=' + titleEncoded; }
    },
    Proxeranime: {
        name: 'Proxer',
        type: 'anime',
        domain: 'proxer.me',
        searchUrl: (titleEncoded) => { return 'https://proxer.me/search?s=search&name=' + titleEncoded + '&typ=all-anime&tags=&notags=#top'; }
    },
    Proxermanga: {
        name: 'Proxer',
        type: 'manga',
        domain: 'proxer.me',
        searchUrl: (titleEncoded) => { return 'https://proxer.me/search?s=search&name=' + titleEncoded + '&typ=all-manga&tags=&notags=#top'; }
    },
    Novelupdates: {
        name: 'Novel Updates [No Sync]',
        type: 'manga',
        domain: 'www.novelupdates.com',
        searchUrl: (titleEncoded) => { return 'https://www.novelupdates.com/?s=' + titleEncoded; }
    },
    AniListManga: {
        name: 'AniList',
        type: 'manga',
        domain: 'anilist.co',
        searchUrl: (titleEncoded) => { return 'https://anilist.co/search/manga?sort=SEARCH_MATCH&search=' + titleEncoded; }
    },
};


/***/ }),
/* 9 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(utils, j, con, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Kissanime; });
const Kissanime = {
    name: 'kissanime',
    domain: 'http://kissanime.ru',
    database: 'Kissanime',
    type: 'anime',
    isSyncPage: function (url) {
        if (typeof utils.urlPart(url, 5) != 'undefined') {
            if (j.$('#centerDivVideo').length) {
                return true;
            }
        }
        return false;
    },
    sync: {
        getTitle: function (url) { return j.$('#navsubbar a').first().text().replace('Anime', '').replace('information', '').trim(); },
        getIdentifier: function (url) { return utils.urlPart(url, 4); },
        getOverviewUrl: function (url) { return url.split('/').slice(0, 5).join('/'); },
        getEpisode: function (url) {
            var episodePart = utils.urlPart(url, 5);
            episodePart = episodePart.replace(/1080p/i, ' ').replace(/720p/i, ' ');
            var temp = [];
            temp = episodePart.match(/[e,E][p,P][i,I]?[s,S]?[o,O]?[d,D]?[e,E]?\D?\d{3}/);
            if (temp !== null) {
                episodePart = temp[0];
            }
            temp = episodePart.match(/\d{3}/);
            if (temp === null) {
                temp = episodePart.match(/\d{2,}\-/);
                if (temp === null) {
                    episodePart = 1;
                }
                else {
                    episodePart = temp[0];
                }
            }
            else {
                episodePart = temp[0];
            }
            return episodePart;
        },
        nextEpUrl: function (url) { return url.replace(/\/[^\/]*$/, '') + '/' + j.$('#selectEpisode option:selected').next().val(); }
    },
    overview: {
        getTitle: function () { return j.$('.bigChar').first().text(); },
        getIdentifier: function (url) { return Kissanime.sync.getIdentifier(url); },
        uiSelector: function (selector) { selector.insertAfter(j.$(".bigChar").first()); },
        list: {
            offsetHandler: true,
            elementsSelector: function () { return j.$(".listing tr"); },
            elementUrl: function (selector) { return utils.absoluteLink(selector.find('a').first().attr('href'), Kissanime.domain); },
            elementEp: function (selector) {
                var url = Kissanime.overview.list.elementUrl(selector);
                if (/_ED/.test(url))
                    return NaN;
                return Kissanime.sync.getEpisode(url);
            },
        }
    },
    init(page) {
        if (document.title == "Just a moment...") {
            con.log("loading");
            page.cdn();
            return;
        }
        api.storage.addStyle(__webpack_require__(56).toString());
        j.$(document).ready(function () { page.handlePage(); });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(4), __webpack_require__(0), __webpack_require__(3), __webpack_require__(1)))

/***/ }),
/* 10 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(utils, j, con, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Kissmanga; });
const Kissmanga = {
    name: 'kissmanga',
    domain: 'http://kissmanga.com',
    database: 'Kissmanga',
    type: 'manga',
    isSyncPage: function (url) {
        if (typeof utils.urlPart(url, 5) != 'undefined') {
            return true;
        }
        return false;
    },
    sync: {
        getTitle: function (url) { return j.$('#navsubbar a').first().text().replace('Manga', '').replace('information', '').trim(); },
        getIdentifier: function (url) { return utils.urlPart(url, 4); },
        getOverviewUrl: function (url) { return url.split('/').slice(0, 5).join('/'); },
        getEpisode: function (url) {
            var episodePart = utils.urlPart(url, 5);
            //var temp = [];
            /*try{
              episodePart = episodePart.replace(j.$('.bigChar').attr('href').split('/')[2],'');
            }catch(e){
              episodePart = episodePart.replace(kalUrl.split("/")[4],'');
            }*/
            var temp = episodePart.match(/[c,C][h,H][a,A]?[p,P]?[t,T]?[e,E]?[r,R]?\D?\d+/);
            if (temp === null) {
                episodePart = episodePart.replace(/[V,v][o,O][l,L]\D?\d+/, '');
                temp = episodePart.match(/\d{3}/);
                if (temp === null) {
                    temp = episodePart.match(/\d+/);
                    if (temp === null) {
                        episodePart = 0;
                    }
                    else {
                        episodePart = temp[0];
                    }
                }
                else {
                    episodePart = temp[0];
                }
            }
            else {
                episodePart = temp[0].match(/\d+/)[0];
            }
            return episodePart;
        },
        getVolume: function (url) {
            try {
                url = url.match(/[V,v][o,O][l,L]\D?\d{3}/)[0];
                url = url.match(/\d+/)[0].slice(-3);
            }
            catch (e) {
                return;
            }
            return url;
        },
    },
    overview: {
        getTitle: function () { return j.$('.bigChar').first().text(); },
        getIdentifier: function (url) { return Kissmanga.sync.getIdentifier(url); },
        uiSelector: function (selector) { selector.insertAfter(j.$(".bigChar").first()); },
        list: {
            offsetHandler: true,
            elementsSelector: function () { return j.$(".listing tr"); },
            elementUrl: function (selector) { return utils.absoluteLink(selector.find('a').first().attr('href'), Kissmanga.domain); },
            elementEp: function (selector) {
                var url = Kissmanga.overview.list.elementUrl(selector);
                if (/_ED/.test(url))
                    return NaN;
                return Kissmanga.sync.getEpisode(url);
            },
        }
    },
    init(page) {
        if (document.title == "Just a moment...") {
            con.log("loading");
            page.cdn();
            return;
        }
        api.storage.addStyle(__webpack_require__(58).toString());
        j.$(document).ready(function () { page.handlePage(); });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(4), __webpack_require__(0), __webpack_require__(3), __webpack_require__(1)))

/***/ }),
/* 11 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, utils, api, con) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return nineAnime; });
const nineAnime = {
    name: '9anime',
    domain: 'https://9anime.to',
    database: '9anime',
    type: 'anime',
    isSyncPage: function (url) { return true; },
    sync: {
        getTitle: function (url) { return j.$('h1.title').text(); },
        getIdentifier: function (url) {
            url = url.split("/")[4].split("?")[0];
            if (url.indexOf(".") > -1) {
                url = url.split(".")[1];
            }
            return url;
        },
        getOverviewUrl: function (url) { return url.split('/').slice(0, 5).join('/'); },
        getEpisode: function (url) { return parseInt(j.$(".servers .episodes a.active").attr('data-base')); },
        nextEpUrl: function (url) { return nineAnime.domain + j.$(".servers .episodes a.active").parent('li').next().find('a').attr('href'); },
        uiSelector: function (selector) { j.$('<div class="widget info"><div class="widget-body"> <p id="malp">' + selector.html() + '</p></div></div>').insertBefore(j.$(".widget.info").first()); },
    },
    overview: {
        getTitle: function (url) { return ''; },
        getIdentifier: function (url) { return ''; },
        uiSelector: function (selector) { },
        list: {
            offsetHandler: false,
            elementsSelector: function () { return j.$(".episodes.range a"); },
            elementUrl: function (selector) { return utils.absoluteLink(selector.attr('href'), nineAnime.domain); },
            elementEp: function (selector) { return selector.attr('data-base'); },
        }
    },
    init(page) {
        api.storage.addStyle(__webpack_require__(60).toString());
        utils.waitUntilTrue(function () { return j.$('.servers').length; }, function () {
            con.info('Start check');
            page.handlePage();
            utils.urlChangeDetect(function () {
                con.info('Check');
                page.handlePage();
            });
        });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(4), __webpack_require__(1), __webpack_require__(3)))

/***/ }),
/* 12 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, utils, con, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Crunchyroll; });
//TODO: Add mal2kiss season argument
const Crunchyroll = {
    name: 'Crunchyroll',
    domain: 'http://www.crunchyroll.com',
    database: 'Crunchyroll',
    type: 'anime',
    isSyncPage: function (url) {
        if (typeof url.split('/')[4] != 'undefined') {
            if (j.$('#showmedia_video').length) {
                return true;
            }
        }
        return false;
    },
    sync: {
        getTitle: function (url) { return Crunchyroll.sync.getIdentifier(urlHandling(url)); },
        getIdentifier: function (url) {
            var script = (j.$("#template_body script")[1]).innerHTML;
            script = script.split('mediaMetadata =')[1].split('"name":"')[1].split(' -')[0];
            script = JSON.parse('"' + script.replace('"', '\\"') + '"');
            return script;
        },
        getOverviewUrl: function (url) { return urlHandling(url).split('/').slice(0, 4).join('/') + '?season=' + Crunchyroll.sync.getIdentifier(urlHandling(url)); },
        getEpisode: function (url) {
            return episodeHelper(url, j.$('h1.ellipsis').text().replace(j.$('h1.ellipsis > a').text(), '').trim());
        },
        nextEpUrl: function (url) { return Crunchyroll.domain + j.$('.collection-carousel-media-link-current').parent().next().find('.link').attr('href'); }
    },
    overview: {
        getTitle: function (url) { return Crunchyroll.overview.getIdentifier(urlHandling(url)); },
        getIdentifier: function (url) {
            if (j.$('.season-dropdown').length > 1) {
                throw new Error('MAL-Sync does not support multiple seasons');
            }
            else {
                if (j.$('.season-dropdown').length) {
                    return j.$('.season-dropdown').first().text();
                }
                else {
                    return j.$('#source_showview h1 span').text();
                }
            }
        },
        uiSelector: function (selector) { selector.insertBefore(j.$("#tabs").first()); },
        list: {
            offsetHandler: true,
            elementsSelector: function () { return j.$("#showview_content_videos .list-of-seasons .group-item a"); },
            elementUrl: function (selector) { return utils.absoluteLink(selector.attr('href'), Crunchyroll.domain); },
            elementEp: function (selector) {
                var url = Crunchyroll.overview.list.elementUrl(selector);
                return episodeHelper(urlHandling(url), selector.find('.series-title').text().trim());
            },
        }
    },
    init(page) {
        if (document.title == "Just a moment...") {
            con.log("loading");
            page.cdn();
            return;
        }
        api.storage.addStyle(__webpack_require__(62).toString());
        page.setCacheTemp = page.setCache;
        page.setCache = function (url, toDatabase, identifier = null) {
            if (this.page.isSyncPage(this.url)) {
                this.setCacheTemp(url, toDatabase, identifier);
            }
        };
        page.databaseRequestTemp = page.databaseRequest;
        page.databaseRequest = function (malurl, toDatabase, identifier, kissurl = null) {
            this.databaseRequestTemp(malurl, toDatabase, identifier, this.url + '?..' + encodeURIComponent(identifier.toLowerCase().split('#')[0]).replace(/\./g, '%2E'));
        };
        j.$(document).ready(function () {
            if (j.$('.season-dropdown').length > 1) {
                j.$('.season-dropdown').append('<span class="exclusivMal" style="float: right; margin-right: 20px; color: #0A6DA4;" onclick="return false;">MAL</span>');
                j.$('.exclusivMal').click(function (evt) {
                    j.$('#showview_content').before('<div><a href="' + page.url.split('?')[0] + '">Show hidden seasons</a></div>');
                    var thisparent = j.$(evt.target).parent();
                    j.$('.season-dropdown').not(thisparent).siblings().remove();
                    j.$('.season-dropdown').not(thisparent).remove();
                    j.$('.portrait-grid').css('display', 'block').find("li.group-item img.landscape").each(function () {
                        // @ts-ignore
                        void 0 === j.$(this).attr("src") && j.$(this).attr("src", j.$(this).attr("data-thumbnailUrl"));
                    }),
                        j.$('.exclusivMal').remove();
                    page.handlePage();
                });
                var season = new RegExp('[\?&]' + 'season' + '=([^&#]*)').exec(page.url);
                if (season != null) {
                    // @ts-ignore
                    season = season[1] || null;
                    if (season != null) {
                        // @ts-ignore
                        season = decodeURIComponent(decodeURI(season));
                        j.$('.season-dropdown[title="' + season + '" i] .exclusivMal').first().click();
                    }
                }
                return;
            }
            else {
                page.handlePage();
            }
        });
    }
};
function urlHandling(url) {
    var langslug = j.$('#home_link, #logo_beta a').first().attr('href');
    if (langslug == '/') {
        return url;
    }
    else {
        return url.replace(langslug, '');
    }
}
function episodeHelper(url, episodeText) {
    var episodePart = utils.urlPart(urlHandling(url), 4);
    try {
        if (/\d+\.\d+/.test(episodeText)) {
            episodePart = 'episode' + episodeText.match(/\d+\.\d+/)[0];
        }
    }
    catch (e) {
        con.error(e);
    }
    var temp = [];
    temp = episodePart.match(/[e,E][p,P][i,I]?[s,S]?[o,O]?[d,D]?[e,E]?\D?\d+/);
    if (temp !== null) {
        episodePart = temp[0];
    }
    else {
        episodePart = '';
    }
    temp = episodePart.match(/\d+/);
    if (temp === null) {
        episodePart = 1;
    }
    else {
        episodePart = temp[0];
    }
    return episodePart;
}

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(4), __webpack_require__(3), __webpack_require__(1)))

/***/ }),
/* 13 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, utils, con, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Mangadex; });
const Mangadex = {
    name: 'Mangadex',
    domain: 'https://www.mangadex.org',
    database: 'Mangadex',
    type: 'manga',
    isSyncPage: function (url) {
        if (url.split('/')[3] !== 'chapter') {
            return false;
        }
        else {
            return true;
        }
    },
    sync: {
        getTitle: function (url) { return j.$('.manga-link, a.manga_title').text().trim(); },
        getIdentifier: function (url) { return utils.urlPart(Mangadex.sync.getOverviewUrl(url), 4); },
        getOverviewUrl: function (url) { return utils.absoluteLink(j.$('a.manga-link, a.manga_title').first().attr('href'), Mangadex.domain); },
        getEpisode: function (url) {
            var chapterId = url.split('/')[4];
            var curOption = j.$('#jump-chapter option[value="' + chapterId + '"], #jump_chapter option[value="' + chapterId + '"]');
            if (curOption.length) {
                var temp = curOption.text().trim().match(/(ch\.|chapter)\D?\d+/i);
                if (temp !== null) {
                    return EpisodePartToEpisode(temp[0]);
                }
            }
            return NaN;
        },
        getVolume: function (url) {
            var chapterId = url.split('/')[4];
            var curOption = j.$('#jump-chapter option[value="' + chapterId + '"], #jump_chapter option[value="' + chapterId + '"]');
            if (curOption.length) {
                var temp = curOption.text().trim().match(/(vol\.|volume)\D?\d+/i);
                if (temp !== null) {
                    temp = temp[0].match(/\d+/);
                    if (temp !== null) {
                        return parseInt(temp[0]);
                    }
                }
            }
            return 0;
        },
    },
    overview: {
        getTitle: function () { return j.$('.card-header').first().text().trim(); },
        getIdentifier: function (url) { return utils.urlPart(url, 4); },
        uiSelector: function (selector) {
            j.$(".container .card .edit.row > * > .row").first().after('<div class="row m-0 py-1 px-0 border-top"><div class="col-lg-3 col-xl-2 strong">MyAnimeList:</div><div class="col-lg-9 col-xl-10 kal-ui"></div></div>');
            selector.appendTo(j.$(".container .card .kal-ui").first());
        },
        list: {
            offsetHandler: false,
            elementsSelector: function () { return j.$(".chapter-container > .row:not(:first-of-type) .chapter-row"); },
            elementUrl: function (selector) { return utils.absoluteLink(selector.find("a").first().attr('href'), Mangadex.domain); },
            elementEp: function (selector) { return selector.attr('data-chapter'); },
        }
    },
    init(page) {
        if (document.title == "Just a moment...") {
            con.log("loading");
            page.cdn();
            return;
        }
        api.storage.addStyle(__webpack_require__(64).toString());
        if (j.$('.card-header').length) {
            if (/chapter\/\d+\/comments/i.test(window.location.href)) {
                con.info('Comments');
                return;
            }
            j.$(document).ready(function () { page.handlePage(); });
        }
        else {
            con.info('Waiting');
            utils.waitUntilTrue(function () { return Mangadex.sync.getOverviewUrl(''); }, function () {
                con.info('Start');
                page.handlePage();
                var tempChapterId = utils.urlPart(window.location.href, 4);
                utils.urlChangeDetect(function () {
                    var newTempChapterId = utils.urlPart(window.location.href, 4);
                    if (tempChapterId !== newTempChapterId) {
                        tempChapterId = newTempChapterId;
                        con.info('Check');
                        page.handlePage();
                    }
                    else {
                        con.info('Nothing to do');
                    }
                });
            });
        }
        j.$(document).ready(function () {
            switch ($('#theme_id').val()) {
                case "2":
                case "4":
                case "6":
                case "7":
                    $('body').addClass('MALSyncDark');
                    break;
                default:
            }
        });
    }
};
function EpisodePartToEpisode(string) {
    if (!string)
        return '';
    if (!(isNaN(parseInt(string)))) {
        return string;
    }
    var temp = [];
    temp = string.match(/(ch\.|chapter)\D?\d+/i);
    console.log(temp);
    if (temp !== null) {
        string = temp[0];
        temp = string.match(/\d+/);
        if (temp !== null) {
            return temp[0];
        }
    }
    return '';
}
;

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(4), __webpack_require__(3), __webpack_require__(1)))

/***/ }),
/* 14 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(utils, j, con, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Mangarock; });
const Mangarock = {
    name: 'Mangarock',
    domain: 'https://mangarock.com',
    database: 'Mangarock',
    type: 'manga',
    isSyncPage: function (url) {
        if (typeof utils.urlPart(url, 5) != 'undefined') {
            return true;
        }
        return false;
    },
    sync: {
        getTitle: function (url) {
            return j.$('a[href*="' + Mangarock.overview.getIdentifier(url) + '"]').text().trim();
        },
        getIdentifier: function (url) { return Mangarock.overview.getIdentifier(url); },
        getOverviewUrl: function (url) { return url.split('/').slice(0, 5).join('/'); },
        getEpisode: function (url) {
            con.log(j.$("option:contains('Chapter')").first().parent().find(':selected').text());
            return EpisodePartToEpisode(j.$("option:contains('Chapter')").first().parent().find(':selected').text());
        },
        getVolume: function (url) {
            return 0;
        },
    },
    overview: {
        getTitle: function () { return j.$('h1').first().text().trim(); },
        getIdentifier: function (url) { return utils.urlPart(url, 4).replace(/mrs-serie-/i, ''); },
        uiSelector: function (selector) {
            selector.insertBefore($("#chapters-list").first());
        },
        list: {
            offsetHandler: false,
            elementsSelector: function () { return j.$('[data-test="chapter-table"] tr'); },
            elementUrl: function (selector) { return utils.absoluteLink(selector.find("a").first().attr('href'), Mangarock.domain); },
            elementEp: function (selector) { return EpisodePartToEpisode(selector.find('a').text()); },
        }
    },
    init(page) {
        api.storage.addStyle(__webpack_require__(66).toString());
        start();
        utils.urlChangeDetect(function () {
            page.url = window.location.href;
            page.UILoaded = false;
            $('#flashinfo-div, #flash-div-bottom, #flash-div-top').remove();
            start();
        });
        function start() {
            if (!/manga/i.test(utils.urlPart(page.url, 3))) {
                con.log('Not a manga page!');
                return;
            }
            if (Mangarock.isSyncPage(page.url)) {
                utils.waitUntilTrue(function () { return Mangarock.sync.getTitle(page.url); }, function () {
                    page.handlePage();
                });
            }
            else {
                j.$(document).ready(function () {
                    var waitTimeout = false;
                    utils.waitUntilTrue(function () {
                        con.log('visibility', j.$('#page-content .col-lg-8 .lazyload-placeholder:visible').length);
                        return !j.$('#page-content .col-lg-8 .lazyload-placeholder:visible').length || waitTimeout;
                    }, function () {
                        page.handlePage();
                    });
                    setTimeout(function () {
                        waitTimeout = true;
                    }, 1000);
                });
            }
        }
    }
};
function EpisodePartToEpisode(string) {
    if (!string)
        return '';
    if (!(isNaN(parseInt(string)))) {
        return string;
    }
    //https://mangarock.com/manga/mrs-serie-124208
    string = string.replace(/(campaign|battle)/i, 'Chapter');
    var temp = [];
    temp = string.match(/Chapter\ \d+/i);
    con.log(temp);
    if (temp !== null) {
        string = temp[0];
        temp = string.match(/\d+/);
        if (temp !== null) {
            return temp[0];
        }
    }
    else {
        var tempString = string.replace(/vol(ume)?.?\d+/i, '');
        tempString = tempString.replace(/:.+/i, '');
        temp = tempString.match(/\d+/i);
        if (temp !== null && temp.length === 1) {
            return temp[0];
        }
    }
    return '';
}

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(4), __webpack_require__(0), __webpack_require__(3), __webpack_require__(1)))

/***/ }),
/* 15 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(utils, j, api, con) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Gogoanime; });
const Gogoanime = {
    name: 'Gogoanime',
    domain: ['https://gogoanimes.co', 'https://gogoanime.tv'],
    database: 'Gogoanime',
    type: 'anime',
    isSyncPage: function (url) {
        if (utils.urlPart(url, 3) === 'category') {
            return false;
        }
        else {
            return true;
        }
    },
    sync: {
        getTitle: function (url) { return j.$('.anime-info a').first().text().trim(); },
        getIdentifier: function (url) { return utils.urlPart(url, 3).split('-episode')[0]; },
        getOverviewUrl: function (url) { return url.split('/').slice(0, 3).join('/') + '/category/' + Gogoanime.sync.getIdentifier(url); },
        getEpisode: function (url) { return utils.urlPart(url, 3).split('episode-')[1]; },
        nextEpUrl: function (url) { return Gogoanime.domain + j.$('.anime_video_body_episodes_r a').last().attr('href'); }
    },
    overview: {
        getTitle: function (url) { return Gogoanime.overview.getIdentifier(url); },
        getIdentifier: function (url) { return utils.urlPart(url, 4); },
        uiSelector: function (selector) { selector.prependTo(j.$(".anime_info_body").first()); },
        list: {
            offsetHandler: false,
            elementsSelector: function () { return j.$("#episode_related a"); },
            elementUrl: function (selector) { return utils.absoluteLink(selector.attr('href').replace(/^ /, ''), Gogoanime.domain); },
            elementEp: function (selector) {
                var url = Gogoanime.overview.list.elementUrl(selector);
                return Gogoanime.sync.getEpisode(url);
            },
            paginationNext: function () {
                var next = false;
                var nextReturn = false;
                j.$(j.$('#episode_page a').get().reverse()).each(function (index, el) {
                    if (next && !nextReturn) {
                        el.click();
                        nextReturn = true;
                        return;
                    }
                    if (j.$(el).hasClass('active')) {
                        next = true;
                    }
                });
                return nextReturn;
            }
        }
    },
    init(page) {
        api.storage.addStyle(__webpack_require__(68).toString());
        if (Gogoanime.isSyncPage(page.url)) {
            j.$(document).ready(function () {
                start();
            });
        }
        else {
            con.log('noSync');
            utils.waitUntilTrue(function () { return j.$('#episode_related').length; }, function () {
                start();
            });
        }
        function start() {
            Gogoanime.domain = window.location.protocol + "//" + window.location.hostname;
            page.handlePage();
            j.$('#episode_page').click(function () {
                setTimeout(function () {
                    page.handleList();
                }, 500);
            });
        }
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(4), __webpack_require__(0), __webpack_require__(1), __webpack_require__(3)))

/***/ }),
/* 16 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, utils, con, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Anime4you; });
const Anime4you = {
    name: 'Anime4you',
    domain: 'https://www.anime4you.one',
    database: 'Anime4you',
    type: 'anime',
    isSyncPage: function (url) {
        if (url.split('/')[7] !== 'epi') {
            return false;
        }
        else {
            return true;
        }
    },
    sync: {
        getTitle: function (url) { return j.$('.titel').text().replace(j.$('.titel h5').text(), '').trim(); },
        getIdentifier: function (url) { return parseInt(utils.urlPart(url, 6)).toString(); },
        getOverviewUrl: function (url) {
            return Anime4you.domain + '/show/1/aid/' + Anime4you.sync.getIdentifier(url);
        },
        getEpisode: function (url) {
            return parseInt(utils.urlPart(url, 8));
        },
        nextEpUrl: function (url) { return Anime4you.domain + j.$('.vidplayer .forward a').first().attr('href'); },
        uiSelector: function (selector) { selector.insertAfter(j.$("#beschreibung > p").first()); },
    },
    overview: {
        getTitle: function (url) { return Anime4you.sync.getTitle(url); },
        getIdentifier: function (url) { return Anime4you.sync.getIdentifier(url); },
        uiSelector: function (selector) { Anime4you.sync.uiSelector(selector); },
        list: {
            offsetHandler: false,
            elementsSelector: function () { return j.$('.episoden li'); },
            elementUrl: function (selector) { return utils.absoluteLink(selector.find("a").first().attr('href'), Anime4you.domain); },
            elementEp: function (selector) { return Anime4you.sync.getEpisode(Anime4you.overview.list.elementUrl(selector)); },
        }
    },
    init(page) {
        if (document.title == "Just a moment...") {
            con.log("loading");
            page.cdn();
            return;
        }
        api.storage.addStyle(__webpack_require__(70).toString());
        j.$(document).ready(function () {
            page.handlePage();
        });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(4), __webpack_require__(3), __webpack_require__(1)))

/***/ }),
/* 17 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, utils, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Branitube; });
const Branitube = {
    name: 'Branitube',
    domain: 'https://branitube.org',
    type: 'anime',
    isSyncPage: function (url) {
        if (url.split('/')[3] !== 'watch') {
            return false;
        }
        else {
            return true;
        }
    },
    sync: {
        getTitle: function (url) { return j.$('.infosAtulEpisodio .nomeAnime').text(); },
        getIdentifier: function (url) { return Branitube.overview.getIdentifier(Branitube.sync.getOverviewUrl(url)); },
        getOverviewUrl: function (url) {
            return Branitube.domain + $('.optionsAssistir a[href^="/animes/"]').first().attr('href');
        },
        getEpisode: function (url) {
            return parseInt(toEp($('.epEpisodio').text().trim()));
        },
        nextEpUrl: function (url) { return utils.absoluteLink(j.$('[title^="Próximo Episodio"]').first().attr('href'), Branitube.domain); },
    },
    overview: {
        getTitle: function (url) { return j.$('.nameAnime').text(); },
        getIdentifier: function (url) { return utils.urlPart(url, 4); },
        uiSelector: function (selector) { j.$('<div class="animeResult" style="margin-bottom: 10px; padding: 12px"> <p id="malp">' + selector.html() + '</p></div>').prependTo(j.$(".theUpdates .contentLastUpdatesEps").first()); },
        list: {
            offsetHandler: false,
            elementsSelector: function () { return j.$('.imgefeito > .episodio'); },
            elementUrl: function (selector) { return utils.absoluteLink(selector.find("a.episodioImages").first().attr('href'), Branitube.domain); },
            elementEp: function (selector) { return parseInt(toEp(selector.find('.numeroEpisodio').first().text().trim())); },
        }
    },
    init(page) {
        api.storage.addStyle(__webpack_require__(72).toString());
        j.$(document).ready(function () {
            page.handlePage();
        });
    }
};
function toEp(string) {
    var temp = string.match(/\d*$/);
    if (temp !== null) {
        return temp[0];
    }
    return 1;
}

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(4), __webpack_require__(1)))

/***/ }),
/* 18 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, utils, con, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Turkanime; });
const Turkanime = {
    name: 'Turkanime',
    domain: 'http://www.turkanime.tv',
    type: 'anime',
    isSyncPage: function (url) {
        if (url.split('/')[3] !== 'video') {
            return false;
        }
        else {
            return true;
        }
    },
    sync: {
        getTitle: function (url) { return j.$('.breadcrumb a').first().text().trim(); },
        getIdentifier: function (url) { return Turkanime.overview.getIdentifier(Turkanime.sync.getOverviewUrl(url)); },
        getOverviewUrl: function (url) {
            return utils.absoluteLink(j.$('.breadcrumb a').first().attr('href'), Turkanime.domain);
        },
        getEpisode: function (url) {
            return getEpisode(Turkanime.sync.getIdentifier(url), Turkanime.overview.getIdentifier(url));
        },
        nextEpUrl: function (url) {
            if (j.$('.panel-footer a[href^="video"]').last().attr('href') != j.$('.panel-footer a[href^="video"]').first().attr('href')) {
                return utils.absoluteLink(j.$('.panel-footer a[href^="video"]').last().attr('href'), Turkanime.domain);
            }
        },
    },
    overview: {
        getTitle: function (url) { return j.$('#detayPaylas .panel-title').first().text().trim(); },
        getIdentifier: function (url) { return utils.urlPart(url, 4); },
        uiSelector: function (selector) { selector.prependTo(j.$("#detayPaylas .panel-body").first()); },
        list: {
            offsetHandler: false,
            elementsSelector: function () { return j.$('.list.menum > li'); },
            elementUrl: function (selector) { return utils.absoluteLink(selector.find("a").last().attr('href').replace(/^\/\//, 'http://'), Turkanime.domain); },
            elementEp: function (selector) {
                var url = Turkanime.overview.list.elementUrl(selector);
                return getEpisode(Turkanime.overview.getIdentifier(window.location.href), Turkanime.overview.getIdentifier(url));
                return Turkanime.sync.getEpisode(Turkanime.overview.list.elementUrl(selector));
            },
        }
    },
    init(page) {
        if (document.title == "Just a moment...") {
            con.log("loading");
            page.cdn();
            return;
        }
        api.storage.addStyle(__webpack_require__(74).toString());
        j.$(document).ready(function () {
            if (Turkanime.isSyncPage(page.url)) {
                page.handlePage();
            }
            else {
                utils.waitUntilTrue(function () { return j.$('.list.menum').length; }, function () {
                    page.handlePage();
                });
            }
        });
    }
};
function getEpisode(selector, episodeSelector) {
    var diff = episodeSelector.replace(selector, '').replace(/-/g, ':');
    con.log('getEpisode', selector, episodeSelector, diff);
    var temp = diff.match(/\d+/);
    if (temp === null) {
        return 0;
    }
    else {
        return parseInt(temp[0]);
    }
}

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(4), __webpack_require__(3), __webpack_require__(1)))

/***/ }),
/* 19 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, utils, api, con) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Twistmoe; });
const Twistmoe = {
    name: 'Twistmoe',
    domain: 'https://twist.moe',
    database: 'Twistmoe',
    type: 'anime',
    isSyncPage: function (url) { return true; },
    sync: {
        getTitle: function (url) { return j.$('.series-title').text().trim(); },
        getIdentifier: function (url) { return utils.urlPart(url, 4); },
        getOverviewUrl: function (url) {
            return Twistmoe.domain + '/a/' + Twistmoe.sync.getIdentifier(url) + '/1';
        },
        getEpisode: function (url) {
            return parseInt(utils.urlPart(url, 5));
        },
        nextEpUrl: function (url) {
            return utils.absoluteLink(j.$('.episode-list .current').first().parent().next().find('a').attr('href'), Twistmoe.domain);
        },
        uiSelector: function (selector) { selector.insertAfter(j.$(".information").first()); },
    },
    overview: {
        getTitle: function (url) { return ''; },
        getIdentifier: function (url) { return ''; },
        uiSelector: function (selector) { return ''; },
        list: {
            offsetHandler: false,
            elementsSelector: function () { return j.$('.episode-list li'); },
            elementUrl: function (selector) { return utils.absoluteLink(selector.find("a").first().attr('href'), Twistmoe.domain); },
            elementEp: function (selector) { return Twistmoe.sync.getEpisode(Twistmoe.overview.list.elementUrl(selector)); },
        }
    },
    init(page) {
        api.storage.addStyle(__webpack_require__(76).toString());
        j.$(document).ready(function () {
            start();
            utils.urlChangeDetect(function () {
                page.url = window.location.href;
                page.UILoaded = false;
                $('#flashinfo-div, #flash-div-bottom, #flash-div-top').remove();
                start();
            });
        });
        function start() {
            if (utils.urlPart(page.url, 3).toLowerCase() != 'a') {
                con.log('Not an anime page!');
                return;
            }
            page.handlePage();
        }
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(4), __webpack_require__(1), __webpack_require__(3)))

/***/ }),
/* 20 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(api, con, utils, j) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Emby; });
var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
var item = undefined;
function getApiKey() {
    return __awaiter(this, void 0, void 0, function* () {
        return api.storage.get('emby_Api_Key');
    });
}
function setApiKey(key) {
    return __awaiter(this, void 0, void 0, function* () {
        return api.storage.set('emby_Api_Key', key);
    });
}
function getBase() {
    return __awaiter(this, void 0, void 0, function* () {
        return api.storage.get('emby_Base');
    });
}
function setBase(key) {
    return __awaiter(this, void 0, void 0, function* () {
        return api.storage.set('emby_Base', key);
    });
}
function checkApi(page) {
    return __awaiter(this, void 0, void 0, function* () {
        var videoEl = $('video');
        if (videoEl.length) {
            $('html').addClass('miniMAL-hide');
            var url = videoEl.attr('src');
            con.log(url);
            //@ts-ignore
            if (/blob\:/i.test(url)) {
                var apiBase = yield getBase();
                var itemId = yield returnPlayingItemId();
                var apiKey = yield getApiKey();
            }
            else {
                var apiBase = url.split('/').splice(0, 4).join('/');
                var itemId = utils.urlPart(url, 5);
                var apiKey = yield getApiKey();
                setBase(apiBase);
            }
            var reqUrl = apiBase + '/Items?ids=' + itemId + '&api_key=' + apiKey;
            con.log('reqUrl', reqUrl, 'base', apiBase, 'apiKey', apiKey);
            api.request.xhr('GET', reqUrl).then((response) => {
                var data = JSON.parse(response.responseText);
                item = data.Items[0];
                reqUrl = apiBase + '/Genres?Ids=' + item.SeriesId + '&api_key=' + apiKey;
                con.log(data);
                return api.request.xhr('GET', reqUrl);
            }).then((response) => {
                var genres = JSON.parse(response.responseText);
                con.log('genres', genres);
                for (var i = 0; i < genres.Items.length; i++) {
                    var genre = genres.Items[i];
                    if (genre.Name === 'Anime') {
                        con.info('Anime detected');
                        page.url = window.location.origin + '/#!/itemdetails.html?id=' + itemId;
                        page.handlePage(page.url);
                        $('html').removeClass('miniMAL-hide');
                        break;
                    }
                }
            });
        }
    });
}
function urlChange(page) {
    return __awaiter(this, void 0, void 0, function* () {
        $('html').addClass('miniMAL-hide');
        if (window.location.href.indexOf('id=') !== -1) {
            var id = utils.urlParam(window.location.href, 'id');
            var reqUrl = '/Items?ids=' + id;
            apiCall(reqUrl).then((response) => {
                var data = JSON.parse(response.responseText);
                switch (data.Items[0].Type) {
                    case 'Season':
                        con.log('Season', data);
                        item = data.Items[0];
                        reqUrl = '/Genres?Ids=' + item.SeriesId;
                        apiCall(reqUrl).then((response) => {
                            var genres = JSON.parse(response.responseText);
                            con.log('genres', genres);
                            for (var i = 0; i < genres.Items.length; i++) {
                                var genre = genres.Items[i];
                                if (genre.Name === 'Anime') {
                                    con.info('Anime detected');
                                    page.handlePage();
                                    $('html').removeClass('miniMAL-hide');
                                    break;
                                }
                            }
                        });
                        break;
                    case 'Series':
                        con.log('Series', data);
                        break;
                    default:
                        con.log('Not recognized', data);
                }
            });
        }
    });
}
function returnPlayingItemId() {
    return __awaiter(this, void 0, void 0, function* () {
        return new Promise((resolve, reject) => {
            setTimeout(() => { resolve(); }, 10000);
        }).then(() => {
            return apiCall('/Sessions').then((response) => {
                con.error(response);
                var data = JSON.parse(response.responseText);
                con.log(data);
                for (var i = 0; i < data.length; i++) {
                    var sess = data[i];
                    if (typeof sess.NowPlayingItem !== 'undefined') {
                        con.log(sess.NowPlayingItem);
                        return sess.NowPlayingItem.Id;
                    }
                }
            });
        });
    });
}
function waitForBase() {
    return __awaiter(this, void 0, void 0, function* () {
        return new Promise((resolve, reject) => {
            utils.waitUntilTrue(function () {
                return j.$('*[data-url]').length;
            }, function () {
                var base = j.$('*[data-url]').first().attr('data-url').split('/').splice(0, 4).join('/');
                con.log('Base Found', base);
                resolve(base);
            });
        });
    });
}
function testApi() {
    return __awaiter(this, void 0, void 0, function* () {
        return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
            var base = yield getBase();
            if (typeof base === 'undefined' || base === '') {
                con.info('No base');
                base = yield waitForBase();
            }
            setBase(base);
            apiCall('/System/Info', null, base).then((response) => {
                if (response.status !== 200) {
                    con.error('Not Authenticated');
                    setBase('');
                    reject();
                    return false;
                }
                resolve();
                return true;
            });
        }));
    });
}
function askForApiKey() {
    return __awaiter(this, void 0, void 0, function* () {
        return new Promise((resolve, reject) => {
            var msg = utils.flashm(`<p>${api.storage.lang('Emby_Authenticate')}</p>
      <p><input id="MS-ApiKey" type="text" placeholder="Please enter the Api Key here" style="width: 100%;"></p>
      <div style="display: flex; justify-content: space-around;">
        <button class="Yes" style="background-color: transparent; border: none; color: rgb(255,64,129);margin-top: 10px; cursor:pointer;">OK</button>
        <button class="Cancel" style="background-color: transparent; border: none; color: rgb(255,64,129);margin-top: 10px; cursor:pointer;">CANCEL</button>
      </div>
      `, { position: 'bottom', permanent: true, type: 'getApi' });
            msg.find('.Yes').click(function (evt) {
                var api = j.$('#MS-ApiKey').val();
                con.info('api', api);
                setApiKey(api);
                j.$(evt.target).parentsUntil('.flash').remove();
                testApi()
                    .then(() => {
                    resolve(true);
                }).catch(() => __awaiter(this, void 0, void 0, function* () {
                    utils.flashm('Could not Authenticate');
                    yield askForApiKey();
                    resolve(true);
                }));
            });
            msg.find('.Cancel').click(function (evt) {
                j.$(evt.target).parentsUntil('.flash').remove();
                reject(false);
            });
        });
    });
}
//Helper
function apiCall(url, apiKey = null, base = null) {
    return __awaiter(this, void 0, void 0, function* () {
        if (apiKey === null)
            apiKey = yield getApiKey();
        if (base === null)
            base = yield getBase();
        if (url.indexOf('?') !== -1) {
            var pre = '&';
        }
        else {
            var pre = '?';
        }
        url = base + url + pre + 'api_key=' + apiKey;
        con.log('Api Call', url);
        return api.request.xhr('GET', url);
    });
}
const Emby = {
    name: 'Emby',
    domain: 'http://app.emby.media',
    type: 'anime',
    isSyncPage: function (url) {
        if (item.Type === 'Episode') {
            return true;
        }
        return false;
    },
    sync: {
        getTitle: function (url) { return item.SeriesName + ((item.ParentIndexNumber > 1) ? ' Season ' + item.ParentIndexNumber : ''); },
        getIdentifier: function (url) {
            if (typeof item.SeasonId !== 'undefined')
                return item.SeasonId;
            if (typeof item.SeriesId !== 'undefined')
                return item.SeriesId;
            return item.Id;
        },
        getOverviewUrl: function (url) { return Emby.domain + '/#!/itemdetails.html?id=' + Emby.sync.getIdentifier(url); },
        getEpisode: function (url) { return item.IndexNumber; },
    },
    overview: {
        getTitle: function (url) { return item.SeriesName + ((item.IndexNumber > 1) ? ' Season ' + item.IndexNumber : ''); },
        getIdentifier: function (url) { return item.Id; },
        uiSelector: function (selector) { selector.appendTo(j.$(".page:not(.hide) .detailSection").first()); },
    },
    init(page) {
        api.storage.addStyle(__webpack_require__(78).toString());
        testApi()
            .catch(() => {
            con.info('Not Authenticated');
            return askForApiKey();
        })
            .then(() => {
            con.info('Authenticated');
            utils.changeDetect(() => {
                page.UILoaded = false;
                $('#flashinfo-div, #flash-div-bottom, #flash-div-top').remove();
                checkApi(page);
            }, () => {
                var src = $('video').first().attr('src');
                if (typeof src === 'undefined')
                    return 'NaN';
                return src;
            });
            utils.urlChangeDetect(function () {
                if (!(window.location.href.indexOf('video') !== -1) && !(window.location.href.indexOf('#dlg') !== -1)) {
                    $('#flashinfo-div, #flash-div-bottom, #flash-div-top, #malp').remove();
                    page.UILoaded = false;
                    urlChange(page);
                }
            });
            j.$(document).ready(function () {
                utils.waitUntilTrue(function () {
                    return j.$('.page').length;
                }, function () {
                    urlChange(page);
                });
            });
            document.addEventListener("fullscreenchange", function () {
                //@ts-ignore
                if ((window.fullScreen) || (window.innerWidth == screen.width && window.innerHeight == screen.height)) {
                    $('html').addClass('miniMAL-Fullscreen');
                }
                else {
                    $('html').removeClass('miniMAL-Fullscreen');
                }
            });
        });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(1), __webpack_require__(3), __webpack_require__(4), __webpack_require__(0)))

/***/ }),
/* 21 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(api, utils, con, j) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Plex; });
var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
    return new (P || (P = Promise))(function (resolve, reject) {
        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
        function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
        function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
        step((generator = generator.apply(thisArg, _arguments || [])).next());
    });
};
var item = undefined;
function getApiKey() {
    return __awaiter(this, void 0, void 0, function* () {
        return api.storage.get('Plex_Api_Key');
    });
}
function setApiKey(key) {
    return __awaiter(this, void 0, void 0, function* () {
        return api.storage.set('Plex_Api_Key', key);
    });
}
function getBase() {
    return __awaiter(this, void 0, void 0, function* () {
        return api.storage.get('Plex_Base');
    });
}
function setBase(key) {
    return __awaiter(this, void 0, void 0, function* () {
        return api.storage.set('Plex_Base', key);
    });
}
function urlChange(page, curUrl = window.location.href, player = false) {
    return __awaiter(this, void 0, void 0, function* () {
        $('html').addClass('miniMAL-hide');
        var path = utils.urlParam(curUrl, 'key');
        if (!path)
            return;
        if (!(path.indexOf('metadata') !== -1))
            return;
        apiCall(decodeURIComponent(path)).then((response) => {
            if (response.status !== 200) {
                con.error('No Api Key');
                $("html").addClass("noApiKey");
                return;
            }
            try {
                var data = JSON.parse(response.responseText);
            }
            catch (e) {
                con.error(e);
                $('html').addClass('noApiKey');
                return;
            }
            if (!/(anime|asian)/i.test(data.MediaContainer.librarySectionTitle)) {
                con.info('!Not an Anime!');
                return;
            }
            item = data.MediaContainer.Metadata[0];
            switch (item.type) {
                case 'show':
                    con.log('Show', data);
                    utils.waitUntilTrue(function () { return j.$('[data-qa-id="preplayMainTitle"]').length; }, function () {
                        page.UILoaded = false;
                        page.handlePage(curUrl);
                        $('html').removeClass('miniMAL-hide');
                    });
                    break;
                case 'episode':
                    con.log('Episode', data);
                    if (player) {
                        page.handlePage(curUrl);
                        $('html').removeClass('miniMAL-hide');
                    }
                    break;
                default:
                    con.log('Not recognized', data);
            }
        });
    });
}
//Helper
function apiCall(url, apiKey = null, base = null) {
    return __awaiter(this, void 0, void 0, function* () {
        if (apiKey === null)
            apiKey = yield getApiKey();
        if (base === null)
            base = yield getBase();
        if (url.indexOf('?') !== -1) {
            var pre = '&';
        }
        else {
            var pre = '?';
        }
        url = base + url + pre + 'X-Plex-Token=' + apiKey;
        con.log('Api Call', url);
        return api.request.xhr('GET', {
            url: url,
            headers: {
                'Accept': 'application/json',
            },
        });
    });
}
const Plex = {
    name: 'Plex',
    domain: 'http://app.plex.tv',
    type: 'anime',
    isSyncPage: function (url) {
        if (item.type === 'episode') {
            return true;
        }
        return false;
    },
    sync: {
        getTitle: function (url) { return item.grandparentTitle + ((item.parentIndex > 1) ? ' Season ' + item.parentIndex : ''); },
        getIdentifier: function (url) {
            if (typeof item.parentKey !== 'undefined')
                return item.parentKey.split('/')[3];
            if (typeof item.grandparentKey !== 'undefined')
                return item.grandparentKey.split('/')[3];
            return item.key.split('/')[3];
        },
        getOverviewUrl: function (url) { return Plex.domain + $('[class^="AudioVideoPlayerView"] [class*="MetadataPosterTitle"][data-qa-id="metadataTitleLink"]').first().attr('href'); },
        getEpisode: function (url) { return item.index; },
    },
    overview: {
        getTitle: function (url) { return item.title; },
        getIdentifier: function (url) { return item.key.split('/')[3]; },
        uiSelector: function (selector) { selector.insertAfter(j.$('[data-qa-id="preplayMainTitle"]').first()); },
    },
    init(page) {
        api.storage.addStyle(__webpack_require__(80).toString());
        utils.changeDetect(() => {
            var href = $('[download]').attr('href');
            var apiBase = href.split('/').splice(0, 3).join('/');
            var apiKey = utils.urlParam(href, 'X-Plex-Token');
            con.info('Set Api', apiBase, apiKey);
            setApiKey(apiKey);
            setBase(apiBase);
            $('html').removeClass('noApiKey');
        }, () => {
            var src = $('[download]').length;
            return src;
        });
        utils.urlChangeDetect(function () {
            if (!$('[class^="AudioVideoPlayerView"] [class*="MetadataPosterTitle"] [data-qa-id="metadataTitleLink"]').length) {
                urlChange(page);
            }
        });
        j.$(document).ready(function () {
            if (!$('[class^="AudioVideoPlayerView"] [class*="MetadataPosterTitle"] [data-qa-id="metadataTitleLink"]').length) {
                urlChange(page);
            }
        });
        utils.changeDetect(() => {
            page.UILoaded = false;
            $('#flashinfo-div, #flash-div-bottom, #flash-div-top').remove();
            var metaUrl = $('[class^="AudioVideoPlayerView"] [class*="MetadataPosterTitle"] [data-qa-id="metadataTitleLink"]').first().attr('href');
            if (typeof metaUrl === 'undefined')
                return;
            urlChange(page, Plex.domain + metaUrl, true);
        }, () => {
            var src = $('[class^="AudioVideoPlayerView"] [class*="MetadataPosterTitle"] [data-qa-id="metadataTitleLink"]').first().attr('href');
            if (typeof src === 'undefined')
                return 'NaN';
            return src;
        });
        document.addEventListener("fullscreenchange", function () {
            //@ts-ignore
            if ((window.fullScreen) || (window.innerWidth == screen.width && window.innerHeight == screen.height)) {
                $('html').addClass('miniMAL-Fullscreen');
            }
            else {
                $('html').removeClass('miniMAL-Fullscreen');
            }
        });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(1), __webpack_require__(4), __webpack_require__(3), __webpack_require__(0)))

/***/ }),
/* 22 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(utils, api, con, j) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Netflix; });
var ident = undefined;
var ses = undefined;
var genres = [
    '2797624',
    '7424',
    '67614',
    '2653',
    '587',
    '625',
    '79307',
    '9302',
    '79488',
    '452',
    '79448',
    '11146',
    '79440',
    '3063',
    '79543',
    '79427',
    '10695',
    '2729',
    '79329',
    '79572',
    '64256',
    '2951909',
];
function getSeries(page) {
    var videoId = utils.urlPart(window.location.href, 4);
    var reqUrl = Netflix.domain + '/title/' + videoId;
    api.request.xhr('GET', reqUrl).then((response) => {
        con.log(response);
        var anime = false;
        genres.forEach(function (genre) {
            if (response.responseText.indexOf('"genres","' + genre + '"') !== -1) {
                anime = true;
            }
        });
        if (!anime) {
            con.info('No Anime');
            return;
        }
        ses = getSeason();
        ident = utils.urlPart(response.finalUrl, 4) + ses;
        page.handlePage();
        $('html').removeClass('miniMAL-hide');
    });
    function getSeason() {
        var sesText = j.$('.ellipsize-text span').first().text().trim();
        var temp = sesText.match(/^(S|St.\ )\d+/);
        if (temp !== null) {
            return '?s=' + temp[0].replace(/^\D*/, '').trim();
        }
        temp = sesText.match(/\d+/);
        if (temp !== null) {
            return '?s=' + temp[0];
        }
        throw 'No Season found';
    }
}
const Netflix = {
    name: 'Netflix',
    domain: 'https://www.netflix.com',
    database: 'Netflix',
    type: 'anime',
    isSyncPage: function (url) {
        return true;
    },
    sync: {
        getTitle: function (url) { return j.$('.ellipsize-text h4').text().trim() + ' Season ' + ses.replace('?s=', ''); },
        getIdentifier: function (url) { return ident; },
        getOverviewUrl: function (url) {
            return Netflix.domain + '/title/' + Netflix.sync.getIdentifier(url);
        },
        getEpisode: function (url) {
            var epText = j.$('.ellipsize-text span').first().text().trim();
            var temp = epText.match(/\d+$/);
            if (temp !== null) {
                return parseInt(temp[0]);
            }
            return 1;
        },
    },
    init(page) {
        api.storage.addStyle(__webpack_require__(82).toString());
        j.$(document).ready(function () {
            ready();
        });
        utils.urlChangeDetect(function () {
            ready();
        });
        function ready() {
            $('#flashinfo-div, #flash-div-bottom, #flash-div-top, #malp').remove();
            $('html').addClass('miniMAL-hide');
            if (utils.urlPart(window.location.href, 3) == 'watch') {
                utils.waitUntilTrue(function () {
                    return j.$('.ellipsize-text').length;
                }, function () {
                    getSeries(page);
                });
            }
        }
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(4), __webpack_require__(1), __webpack_require__(3), __webpack_require__(0)))

/***/ }),
/* 23 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, utils, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Otakustream; });
const Otakustream = {
    name: 'Otakustream',
    domain: 'https://otakustream.tv',
    type: 'anime',
    isSyncPage: function (url) {
        if (url.split('/')[3] === 'movie')
            return true;
        if (typeof url.split('/')[5] === 'undefined' || url.split('/')[5] == '') {
            return false;
        }
        else {
            return true;
        }
    },
    sync: {
        getTitle: function (url) {
            if (url.split('/')[3] === 'movie')
                return Otakustream.overview.getTitle(url);
            return j.$('#breadcrumbs a').last().text().trim();
        },
        getIdentifier: function (url) { return utils.urlPart(url, 4).toLowerCase(); },
        getOverviewUrl: function (url) { return url.split('/').slice(0, 5).join('/'); },
        getEpisode: function (url) {
            var EpText = utils.urlPart(url, 5);
            var temp = EpText.match(/-\d+/);
            if (temp !== null) {
                EpText = temp[0];
            }
            temp = EpText.match(/\d+/);
            if (temp === null) {
                return 1;
            }
            return parseInt(temp[0]);
        },
        nextEpUrl: function (url) { return utils.absoluteLink(j.$('.navigation-right').first().attr('href'), Otakustream.domain); },
    },
    overview: {
        getTitle: function (url) { return j.$('.breadcrumb_last').text().trim(); },
        getIdentifier: function (url) { return Otakustream.sync.getIdentifier(url); },
        uiSelector: function (selector) { selector.insertAfter(j.$(".single-details h1").first()); },
        list: {
            offsetHandler: false,
            elementsSelector: function () { return j.$('.ep-list li'); },
            elementUrl: function (selector) { return utils.absoluteLink(selector.find("a").first().attr('href'), Otakustream.domain); },
            elementEp: function (selector) { return Otakustream.sync.getEpisode(Otakustream.overview.list.elementUrl(selector)); },
        }
    },
    init(page) {
        api.storage.addStyle(__webpack_require__(84).toString());
        j.$(document).ready(function () {
            page.handlePage();
        });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(4), __webpack_require__(1)))

/***/ }),
/* 24 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, utils, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return animepahe; });
const animepahe = {
    name: 'animepahe',
    domain: 'https://animepahe.com',
    type: 'anime',
    isSyncPage: function (url) {
        if (url.split('/')[3] !== 'play') {
            return false;
        }
        else {
            return true;
        }
    },
    sync: {
        getTitle: function (url) { return j.$('.theatre-info h1 a').first().text(); },
        getIdentifier: function (url) { return utils.urlPart(url, 4); },
        getOverviewUrl: function (url) {
            return animepahe.domain + '/anime/' + animepahe.sync.getIdentifier(url);
        },
        getEpisode: function (url) {
            return j.$('.theatre-info h1')[0].childNodes[2].textContent.replace(/[^0-9\.]+/g, '');
        },
        nextEpUrl: function (url) { return animepahe.domain + j.$('.sequel a').first().attr('href'); },
        uiSelector: function (selector) { selector.insertAfter(j.$(".anime-season")); },
    },
    overview: {
        getTitle: function (url) { return utils.getBaseText(j.$('.title-wrapper h1').first()).trim(); },
        getIdentifier: function (url) { return utils.urlPart(url, 4); },
        uiSelector: function (selector) {
            selector.insertAfter(j.$(".anime-detail"));
        },
        list: {
            offsetHandler: false,
            elementsSelector: function () { return j.$('.episode-list .episode'); },
            elementUrl: function (selector) { return animepahe.domain + selector.find("a").first().attr('href'); },
            elementEp: function (selector) { return selector.find('.episode-number').first().text().replace(selector.find('.episode-number > *').text(), ''); },
        }
    },
    init(page) {
        api.storage.addStyle(__webpack_require__(86).toString());
        if (!animepahe.isSyncPage(page.url)) {
            utils.waitUntilTrue(function () { return animepahe.overview.list.elementsSelector(); }, function () {
                page.handlePage();
            });
        }
        else {
            $(document).ready(function () {
                page.handlePage();
            });
        }
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(4), __webpack_require__(1)))

/***/ }),
/* 25 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, utils, api, con) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return animeflv; });
const animeflv = {
    name: 'animeflv',
    domain: 'https://animeflv.net',
    type: 'anime',
    isSyncPage: function (url) {
        if (j.$('h2.SubTitle').length) {
            return true;
        }
        return false;
    },
    sync: {
        getTitle: function (url) { return j.$('h1.Title').text().split(' Episodio')[0].trim(); },
        getIdentifier: function (url) { return utils.urlPart(animeflv.domain + j.$(".fa-th-list").attr('href'), 4) + '/' + utils.urlPart(animeflv.domain + j.$(".fa-th-list").attr('href'), 5); },
        getOverviewUrl: function (url) { return animeflv.domain + j.$(".fa-th-list").attr('href'); },
        getEpisode: function (url) { return parseInt(j.$('h2.SubTitle').text().replace('Episodio ', '').trim()); },
        nextEpUrl: function (url) { return animeflv.domain + j.$(".fa-chevron-right").attr('href'); },
        uiSelector: function (selector) { selector.insertAfter(j.$(".CapOptns")); },
    },
    overview: {
        getTitle: function (url) { return j.$('h2.Title').text(); },
        getIdentifier: function (url) { return utils.urlPart(url, 4) + '/' + utils.urlPart(url, 5); },
        uiSelector: function (selector) { selector.insertAfter(j.$(".Description")); },
        list: {
            offsetHandler: false,
            elementsSelector: function () {
                var url = window.location.href;
                document.body.insertAdjacentHTML('afterbegin', '<div id="MALSync" class="MALSync" style="display: none;"><ul id="MALSyncUl" class="MALSyncUl"></ul></div>');
                var idMALSync = document.getElementById('MALSyncUl');
                var patron = /<script>\s\s   var([^]*?)<\/script>/g;
                var html = document.body.innerHTML;
                var scriptEps = patron.exec(html);
                if (scriptEps != null) {
                    // @ts-ignore
                    scriptEps = scriptEps[1] || null;
                    if (scriptEps != null) {
                        // @ts-ignore
                        var patron2 = /\[([^\[\]]{0,10},{0,10})\]/g;
                        // @ts-ignore
                        var eps = scriptEps.toString().match(patron2);
                        if (eps != null) {
                            // @ts-ignore
                            eps.forEach(element => {
                                if (idMALSync != null) {
                                    var Url = animeflv.domain + '/ver/' + element.split(',')[1].replace(']', '') + '/' + utils.urlPart(url, 5) + '-' + element.split(',')[0].replace('[', '');
                                    var Episodio = element.split(',')[0].replace('[', '');
                                    idMALSync.innerHTML += '<li><a href="' + Url + '" epi="' + Episodio + '"></a> </li>';
                                }
                            });
                        }
                    }
                }
                return j.$(".MALSync a");
            },
            elementUrl: function (selector) { return utils.absoluteLink(selector.attr('href'), animeflv.domain); },
            elementEp: function (selector) { return selector.attr('epi'); },
            handleListHook: function (epi, epilist) {
                epi++;
                if ((epilist.length - 1) >= epi) {
                    var cover = j.$('.AnimeCover img').attr('src');
                    var name = j.$('.Container h2').text();
                    var epiAct = '<li class="fa-play-circle Next"><a href="' + epilist[epi][0].toString() + '"><figure><img src="' + cover + '" alt=""></figure><h3 class="Title">' + name + '</h3><p>Episodio ' + epi + '</p><span style="position: absolute; top: 0; bottom: 0; margin: auto; right: 20px; line-height: 30px; font-size: 16px; font-weight: 700; height: 30px;">Siguiente Episodio</span></a></li>';
                    j.$('.Main .ListCaps').prepend(epiAct);
                }
            },
        }
    },
    init(page) {
        api.storage.addStyle(__webpack_require__(88).toString());
        if (document.title == "Just a moment..." || document.title == "Verifica que no eres un bot | AnimeFLV") {
            con.log("loading");
            page.cdn();
            return;
        }
        j.$(document).ready(function () { page.handlePage(); });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(4), __webpack_require__(1), __webpack_require__(3)))

/***/ }),
/* 26 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(utils, j, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Jkanime; });
/*By kaiserdj*/
var check = 0;
const Jkanime = {
    name: 'Jkanime',
    domain: 'https://jkanime.net/',
    type: 'anime',
    isSyncPage: function (url) {
        if (isNaN(parseInt(utils.urlPart(url, 4))) == true) {
            return false;
        }
        else {
            return true;
        }
    },
    sync: {
        getTitle: function (url) { return j.$('.video-header h1').text().split(" - ")[0]; },
        getIdentifier: function (url) { return utils.urlPart(url, 3); },
        getOverviewUrl: function (url) { return j.$('.vnav-list').attr('href'); },
        getEpisode: function (url) { return j.$('.video-header h1').text().split(" - ")[1]; },
        nextEpUrl: function (url) {
            var nextUrl = j.$('.vnav-right').attr('href');
            if (nextUrl == '#')
                return undefined;
            return nextUrl;
        },
        uiSelector: function (selector) { selector.insertAfter(j.$(".server-box")); },
    },
    overview: {
        getTitle: function (url) { return j.$('.sinopsis-box h2').text(); },
        getIdentifier: function (url) { return utils.urlPart(url, 3); },
        uiSelector: function (selector) { selector.insertAfter(j.$(".sinopsis-links")); },
        list: {
            offsetHandler: false,
            elementsSelector: function () {
                document.body.insertAdjacentHTML('afterbegin', '<div id="MALSync" class="MALSync" style="display: none;"><ul id="MALSyncUl" class="MALSyncUl"></ul></div>');
                var idMALSync = document.getElementById('MALSyncUl');
                var lastEps = j.$('.navigation a').last().text().split('-')[1].trim();
                for (var i = 1; i <= lastEps; i++) {
                    if (idMALSync != null) {
                        idMALSync.innerHTML += '<li><a href="' + document.URL + i + '" epi="' + i + '"></a> </li>';
                    }
                }
                return j.$('.MALSync a');
            },
            elementUrl: function (selector) { return utils.absoluteLink(selector.attr('href'), Jkanime.domain); },
            elementEp: function (selector) { return selector.attr('epi'); },
            handleListHook: function (epi, epilist) {
                epi++;
                if (epilist.length >= epi) {
                    if (check == 0) {
                        var buttons = j.$('.navigation a');
                        for (var i = 0; i < buttons.length; i++) {
                            if (buttons[i].text.split('-')[0].split() <= epi && buttons[i].text.split('-')[1].split() >= epi) {
                                buttons[i].click();
                            }
                        }
                        check = 1;
                    }
                    setTimeout(function () {
                        j.$('#episodes-content .cap-post').each(function (i, obj) {
                            if (obj.innerText.split(' ')[1] == epi) {
                                j.$('#episodes-content .cap-post').eq(i).addClass('mal-sync-active');
                                if (check == 0) {
                                    j.$('#episodes-content .cap-post:eq(' + i + ')').find('i').first().remove();
                                }
                            }
                        });
                    }, 500);
                }
            },
        }
    },
    init(page) {
        api.storage.addStyle(__webpack_require__(90).toString());
        j.$(document).ready(function () { page.handlePage(); });
        j.$('.navigation a').click(function () {
            if (check == 1) {
                page.handleList();
            }
        });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(4), __webpack_require__(0), __webpack_require__(1)))

/***/ }),
/* 27 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(api, con, utils, j) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Vrv; });
var json = undefined;
var ident = undefined;
var seasonInterval = undefined;
function getSeries(page, overview = '') {
    json = undefined;
    ident = undefined;
    api.request.xhr('GET', page.url).then((response) => {
        con.log(response);
        json = JSON.parse('{' + response.responseText.split('__INITIAL_STATE__ = {')[1].split('};')[0] + '}');
        con.log(json);
        if (overview.length) {
            json.seriesPage.seasons.forEach(function (element) {
                if (overview.indexOf(element.json.title) !== -1) {
                    con.log('Season Found', element);
                    ident = element;
                }
            });
        }
        else {
            if (json.seriesPage.seasons.length) {
                con.log('Season', json.seriesPage.seasons[0]);
                ident = json.seriesPage.seasons[0];
            }
        }
        page.handlePage();
    });
}
const Vrv = {
    name: 'Vrv',
    domain: 'https://vrv.co',
    type: 'anime',
    isSyncPage: function (url) {
        if (utils.urlPart(window.location.href, 3) == 'series')
            return false;
        return true;
    },
    sync: {
        getTitle: function (url) { return json.watch.mediaResource.json.series_title + ' - ' + json.watch.mediaResource.json.season_title.replace(json.watch.mediaResource.json.series_title, ''); },
        getIdentifier: function (url) { return json.watch.mediaResource.json.season_id; },
        getOverviewUrl: function (url) { return Vrv.domain + '/series/' + json.watch.mediaResource.json.series_id + '?season=' + Vrv.sync.getIdentifier(url); },
        getEpisode: function (url) { return json.watch.mediaResource.json.episode_number; },
        nextEpUrl: function (url) {
            if (typeof json.watch.mediaResource.json.next_episode_id === 'undefined')
                return '';
            return Vrv.domain + '/watch/' + json.watch.mediaResource.json.next_episode_id;
        },
    },
    overview: {
        getTitle: function (url) { return json.seriesPage.series.json.title + ' - ' + ident.json.title.replace(json.seriesPage.series.json.title, ''); },
        getIdentifier: function (url) { return ident.json.id; },
        uiSelector: function (selector) {
            selector.insertAfter($('.erc-series-info .series-title').first());
        },
        list: {
            offsetHandler: true,
            elementsSelector: function () { return j.$('.erc-series-media-list-element'); },
            elementUrl: function (selector) { return utils.absoluteLink(selector.find("a").first().attr('href'), Vrv.domain); },
            elementEp: function (selector) {
                var epInfo = selector.find('.episode-title').text().trim();
                var temp = epInfo.match(/^E\d+/i);
                if (temp !== null) {
                    return temp[0].replace('E', '');
                }
                return '';
            },
            getTotal: function () {
                throw 'Not supported';
                return 0;
            }
        }
    },
    init(page) {
        api.storage.addStyle(__webpack_require__(92).toString());
        j.$(document).ready(function () {
            ready();
        });
        utils.urlChangeDetect(function () {
            page.url = window.location.href;
            ready();
        });
        function ready() {
            clearInterval(seasonInterval);
            $('#flashinfo-div, #flash-div-bottom, #flash-div-top, #malp').remove();
            page.UILoaded = false;
            if (utils.urlPart(window.location.href, 3) == 'watch') {
                getSeries(page);
            }
            if (utils.urlPart(window.location.href, 3) == 'series') {
                utils.waitUntilTrue(function () {
                    return j.$('.erc-series-info .series-title').first().length;
                }, function () {
                    if (!j.$('.erc-series-media-list-element').length || typeof j.$('.erc-series-media-list-element a').first().attr('href') !== 'undefined') {
                        getSeries(page, $('.controls-select-trigger .season-info').text().trim());
                    }
                    seasonInterval = utils.changeDetect(function () {
                        $('#flashinfo-div, #flash-div-bottom, #flash-div-top, #malp').remove();
                        page.UILoaded = false;
                        getSeries(page, $('.controls-select-trigger .season-info').text().trim());
                    }, function () {
                        return j.$('.erc-series-media-list-element a').first().attr('href');
                    });
                });
            }
        }
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(1), __webpack_require__(3), __webpack_require__(4), __webpack_require__(0)))

/***/ }),
/* 28 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, utils, con, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Proxer; });
const Proxer = {
    name: "Proxer",
    domain: "https://proxer.me",
    database: "Proxer",
    type: "anime",
    isSyncPage: function (url) {
        if (url.split("/")[3] === "watch" || url.split("/")[3] === "read") {
            return true;
        }
        else {
            return false;
        }
    },
    sync: {
        getTitle: function (url) {
            if (url.indexOf("watch") != -1) {
                return j
                    .$(".wName")
                    .text()
                    .trim();
            }
            else {
                if (url.indexOf("read") != -1) {
                    return j.$("div#breadcrumb a:first").text();
                }
            }
        },
        getIdentifier: function (url) {
            return utils.urlPart(url, 4);
        },
        getOverviewUrl: function (url) {
            return ("https://proxer.me/info/" + Proxer.sync.getIdentifier(url) + "/list");
        },
        getEpisode: function (url) {
            if (url.indexOf("watch") != -1) {
                return getEpisodeFallback('episode ' + $('.wEp').last().text().trim(), url.split("/")[5]);
            }
            else {
                return getEpisodeFallback($('#breadcrumb > a').last().text().trim(), url.split("/")[5]);
            }
        },
        nextEpUrl: function (url) {
            return (Proxer.domain +
                $(".no_details a")
                    .last()
                    .attr("href"));
        }
    },
    overview: {
        getTitle: function (url) { return j.$('#pageMetaAjax').text().split(' - ')[0]; },
        getIdentifier: function (url) { return Proxer.sync.getIdentifier(url); },
        uiSelector: function (selector) { selector.insertAfter(j.$(".hreview-aggregate > span").first()); },
        list: {
            offsetHandler: false,
            elementsSelector: function () { return j.$('span[id^="listTitle"]').parent().parent(); },
            elementUrl: function (selector) { return utils.absoluteLink(selector.find('a[href^="/watch"],a[href^="/read"],a[href^="/chapter"]').first().attr('href'), Proxer.domain); },
            elementEp: function (selector) {
                return getEpisodeFallback(selector.find('span[id^="listTitle"]').first().text().trim(), Proxer.overview.list.elementUrl(selector).split("/")[5]);
            },
            paginationNext: function (updateCheck) {
                con.error('sadsad', updateCheck);
                if (updateCheck) {
                    var el = j.$('.menu').last();
                    if (typeof el[0] == 'undefined' || el.hasClass('active')) {
                        return false;
                    }
                    else {
                        el[0].click();
                        return true;
                    }
                }
                else {
                    var el = j.$('.menu.active').first().next();
                    if (typeof el[0] == 'undefined') {
                        return false;
                    }
                    else {
                        el[0].click();
                        return true;
                    }
                }
            },
            getTotal: function () {
                var el = $('img[src="/images/misc/manga.png"], img[src="/images/misc/play.png"]').last().parent().parent().parent().parent();
                if (el.length) {
                    return Proxer.overview.list.elementEp(el);
                }
                return undefined;
            }
        }
    },
    init(page) {
        api.storage.addStyle(__webpack_require__(94).toString());
        if (page.url.split("/")[3] === "watch" || page.url.split("/")[3] === "read") {
            if (page.url.split("/")[3] === "watch") {
                Proxer.type = "anime";
                Proxer.database = "Proxeranime";
            }
            else if (page.url.split("/")[3] === "read") {
                Proxer.type = "manga";
                Proxer.database = "Proxermanga";
            }
            j.$(document).ready(function () {
                page.handlePage();
            });
        }
        ajaxHandle(page);
        utils.urlChangeDetect(function () {
            page.url = window.location.href;
            page.UILoaded = false;
            $('#flashinfo-div, #flash-div-bottom, #flash-div-top').remove();
            ajaxHandle(page);
        });
    }
};
var current = 0;
function ajaxHandle(page) {
    if (utils.urlPart(page.url, 3) !== 'info')
        return;
    var detailPart = utils.urlPart(page.url, 5);
    con.info('page', detailPart);
    if (detailPart == 'list') {
        utils.waitUntilTrue(function () {
            return j.$("#contentList").length;
        }, function () {
            if (j.$('#simple-navi a[href*="manga"]').length) {
                Proxer.type = "manga";
                Proxer.database = "Proxermanga";
            }
            else {
                Proxer.type = "anime";
                Proxer.database = "Proxeranime";
            }
            var tempCurrent = parseInt(Proxer.overview.getIdentifier(page.url));
            if (tempCurrent !== current) {
                current = tempCurrent;
                page.handlePage();
            }
            else {
                try {
                    page.handleList();
                }
                catch (e) {
                    con.error(e);
                    page.handlePage();
                }
            }
        });
    }
    if (detailPart == 'details' || typeof detailPart == 'undefined') {
        utils.waitUntilTrue(function () {
            return j.$(".hreview-aggregate").length;
        }, function () {
            current = parseInt(Proxer.overview.getIdentifier(page.url));
            if (j.$('#simple-navi a[href*="manga"]').length) {
                Proxer.type = "manga";
                Proxer.database = "Proxermanga";
            }
            else {
                Proxer.type = "anime";
                Proxer.database = "Proxeranime";
            }
            page.handlePage();
        });
    }
}
function getEpisodeFallback(string, fallback) {
    var exclude = string.match(/(special|extra)/gi);
    if (exclude !== null) {
        return '';
    }
    var temp = string.match(/(kapitel |ep. |chapter |episode )\d+/gi);
    if (temp !== null) {
        return temp[0].match(/\d+/)[0];
    }
    return fallback;
}
/*
Chapter 10
Ep. 10
Kapitel 10
Episode 10
*/
/* Exclude
Special 1
Extra Story
*/

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(4), __webpack_require__(3), __webpack_require__(1)))

/***/ }),
/* 29 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, utils, con, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Animevibe; });
const Animevibe = {
    name: "Animevibe",
    domain: "https://animevibe.tv",
    type: "anime",
    isSyncPage: function (url) {
        if (url.split("/")[3] === "a") {
            return true;
        }
        else {
            return false;
        }
    },
    sync: {
        getTitle: function (url) { return j.$("span.td-bred-no-url-last").text(); },
        getIdentifier: function (url) {
            return url.split("/")[4];
        },
        getOverviewUrl: function (url) {
            return Animevibe.domain + '/a/' + Animevibe.sync.getIdentifier(url) + '/1';
        },
        getEpisode: function (url) {
            if (utils.urlPart(url, 5) === "") {
                return 1;
            }
            else {
                return parseInt(utils.urlPart(url, 5));
            }
        }
    },
    init(page) {
        if (document.title == "Just a moment...") {
            con.log("loading");
            page.cdn();
            return;
        }
        api.storage.addStyle(__webpack_require__(96).toString());
        j.$(document).ready(function () {
            page.handlePage();
        });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(4), __webpack_require__(3), __webpack_require__(1)))

/***/ }),
/* 30 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(utils, j, con, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Novelplanet; });
const Novelplanet = {
    name: 'Novelplanet',
    domain: 'https://novelplanet.com',
    database: 'Novelplanet',
    type: 'manga',
    isSyncPage: function (url) {
        if (typeof utils.urlPart(url, 5) != 'undefined') {
            return true;
        }
        return false;
    },
    sync: {
        getTitle: function (url) { return j.$('#main .title').first().text().trim(); },
        getIdentifier: function (url) { return utils.urlPart(url, 4); },
        getOverviewUrl: function (url) { return url.split('/').slice(0, 5).join('/'); },
        getEpisode: function (url) {
            return getEp($('.selectChapter option').first().text());
        },
        getVolume: function (url) {
            url = $('.selectChapter option').first().text();
            try {
                url = url.match(/vol(ume)\D?\d+/i)[0];
                url = url.match(/\d+/)[0];
            }
            catch (e) {
                return;
            }
            return url;
        },
    },
    overview: {
        getTitle: function () { return j.$('.post-contentDetails .title').first().text(); },
        getIdentifier: function (url) { return Novelplanet.sync.getIdentifier(url); },
        uiSelector: function (selector) { selector.insertAfter(j.$(".post-contentDetails p").first()); },
        list: {
            offsetHandler: false,
            elementsSelector: function () { return j.$(".rowChapter"); },
            elementUrl: function (selector) { return utils.absoluteLink(selector.find('a').first().attr('href'), Novelplanet.domain); },
            elementEp: function (selector) {
                return getEp(selector.find('a').first().text());
            },
        }
    },
    init(page) {
        page.novel = true;
        if (document.title == "Just a moment...") {
            con.log("loading");
            page.cdn();
            return;
        }
        api.storage.addStyle(__webpack_require__(98).toString());
        j.$(document).ready(function () { page.handlePage(); });
    }
};
function getEp(episodePart) {
    var temp = episodePart.match(/[c,C][h,H][a,A]?[p,P]?[t,T]?[e,E]?[r,R]?\D?\d+/);
    if (temp === null) {
        episodePart = episodePart.replace(/[V,v][o,O][l,L]\D?\d+/, '');
        temp = episodePart.match(/\d{3}/);
        if (temp === null) {
            temp = episodePart.match(/\d+/);
            if (temp === null) {
                episodePart = 0;
            }
            else {
                episodePart = temp[0];
            }
        }
        else {
            episodePart = temp[0];
        }
    }
    else {
        episodePart = temp[0].match(/\d+/)[0];
    }
    return episodePart;
}

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(4), __webpack_require__(0), __webpack_require__(3), __webpack_require__(1)))

/***/ }),
/* 31 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, api, utils) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return WonderfulSubs; });
const WonderfulSubs = {
    name: "WonderfulSubs",
    domain: "https://wonderfulsubs.com",
    type: "anime",
    isSyncPage: function (url) {
        if (url.split("/")[3] === "watch") {
            return true;
        }
        else {
            return false;
        }
    },
    sync: {
        getTitle: function (url) {
            return j.$("span.card-title p.hide-truncate.activator").text();
        },
        getIdentifier: function (url) {
            return j
                .$("span.card-title p.hide-truncate.activator")
                .text()
                .toLowerCase()
                .replace(/ /g, "-");
        },
        getOverviewUrl: function (url) {
            return (WonderfulSubs.domain +
                "/watch/" +
                url.split("/")[4].replace(/\?[^?]*$/g, ""));
        },
        getEpisode: function (url) {
            return j
                .$("span.card-title span.new.badge")
                .text()
                .replace(/\D+/g, "");
        }
    },
    init(page) {
        api.storage.addStyle(__webpack_require__(5).toString());
        page.url = window.location.href;
        if (page.url.split("/")[2] === "beta.wonderfulsubs.com") {
            WonderfulSubs.isSyncPage = betaWonderfulSubs.isSyncPage;
            WonderfulSubs.sync = betaWonderfulSubs.sync;
            betaWonderfulSubs.init(page);
        }
        else {
            if (page.url.split("/")[3] === "watch") {
                utils.waitUntilTrue(function () {
                    return j.$("span.card-title p.hide-truncate.activator").text();
                }, function () {
                    page.handlePage();
                });
            }
            utils.urlChangeDetect(function () {
                page.url = window.location.href;
                page.UILoaded = false;
                $("#flashinfo-div, #flash-div-bottom, #flash-div-top").remove();
                if (page.url.split("/")[3] === "watch") {
                    utils.waitUntilTrue(function () {
                        return j.$("span.card-title p.hide-truncate.activator").text();
                    }, function () {
                        page.handlePage();
                    });
                }
            });
        }
    }
};
var betaWonderfulSubs = {
    name: "betaWonderfulSubs",
    domain: "https://beta.wonderfulsubs.com",
    type: "anime",
    isSyncPage: function (url) {
        if (url.split("/")[3] === "watch") {
            return true;
        }
        else {
            return false;
        }
    },
    sync: {
        getTitle: function (url) {
            return j.$("h6.subtitle").text();
        },
        getIdentifier: function (url) {
            return j
                .$("h6.subtitle")
                .text()
                .toLowerCase()
                .replace(/ /g, "-");
        },
        getOverviewUrl: function (url) {
            return ("https://beta.wonderfulsubs.com" +
                "/watch/" +
                url.split("/")[4].replace(/\?[^?]*$/g, ""));
        },
        getEpisode: function (url) {
            return j
                .$("div.episode-number")
                .text()
                .replace(/\D+/g, "");
        }
    },
    init(page) {
        api.storage.addStyle(__webpack_require__(5).toString());
        page.url = window.location.href;
        if (page.url.split("/")[3] === "watch") {
            utils.waitUntilTrue(function () {
                return j.$("h6.subtitle").text();
            }, function () {
                page.handlePage();
            });
        }
        utils.urlChangeDetect(function () {
            page.url = window.location.href;
            page.UILoaded = false;
            $("#flashinfo-div, #flash-div-bottom, #flash-div-top").remove();
            if (page.url.split("/")[3] === "watch") {
                utils.waitUntilTrue(function () {
                    return j.$("h6.subtitle").text();
                }, function () {
                    page.handlePage();
                });
            }
        });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(1), __webpack_require__(4)))

/***/ }),
/* 32 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, utils, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return kawaiifu; });
const kawaiifu = {
    name: "kawaiifu",
    domain: "https://kawaiifu.com",
    type: "anime",
    isSyncPage: function (url) {
        if (url.split("/")[3] === "season" ||
            url.split("/")[3] === "dub" ||
            url.split("/")[3] === "tv-series") {
            return true;
        }
        else {
            return false;
        }
    },
    sync: {
        getTitle: function (url) {
            return j
                .$("h2.title")
                .text()
                .replace(/(\( ?)?uncensored( ?\))?/gim, " ")
                .replace(/(\( ?)?dub( ?\))?/gim, " ")
                .trim();
        },
        getIdentifier: function (url) {
            if (url.split("/")[3] === "dub" || url.split("/")[3] === "tv-series") {
                return url.split("/")[4].replace(/\.[^.]*$/g, "");
            }
            else {
                return url.split("/")[5].replace(/\.[^.]*$/g, "");
            }
        },
        getOverviewUrl: function (url) {
            if (url.split("/")[3] === "dub" || url.split("/")[3] === "tv-series") {
                return ("https://kawaiifu.com/" + url.split("/")[3] + "/" + url.split("/")[4].replace(/\?[^?]*$/g, ""));
            }
            else {
                return ("https://kawaiifu.com/" + url.split("/")[3] + "/" + url.split("/")[4] + "/" + url.split("/")[5].replace(/\?[^?]*$/g, ""));
            }
        },
        getEpisode: function (url) {
            if (j.$("ul.list-ep a.active").text().toLowerCase().indexOf("trailer") !== -1) {
                return 0;
            }
            else {
                return j.$("ul.list-ep a.active").text().replace(/\D+/g, "");
            }
        },
        nextEpUrl: function (url) {
            var href = $(".list-ep a.active").parent().next().find('a').attr('href');
            if (typeof href !== 'undefined') {
                return utils.absoluteLink(href, kawaiifu.domain);
            }
        },
        uiSelector: function (selector) {
            selector.insertAfter(j.$("div.desc-top").first());
        },
    },
    init(page) {
        api.storage.addStyle(__webpack_require__(101).toString());
        j.$(document).ready(function () {
            page.handlePage();
        });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(4), __webpack_require__(1)))

/***/ }),
/* 33 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, utils, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return fourAnime; });
const fourAnime = {
    name: "fourAnime",
    domain: "https://4anime.to",
    type: "anime",
    isSyncPage: function (url) {
        if (j.$(".singletitletop")[0] && j.$(".episodes")[0]) {
            return true;
        }
        else {
            return false;
        }
    },
    sync: {
        getTitle: function (url) {
            return j
                .$("span.singletitletop a")
                .text()
                .trim();
        },
        getIdentifier: function (url) {
            return url.split("/")[3].replace(/\-episode[^]*$/g, "");
        },
        getOverviewUrl: function (url) {
            return fourAnime.domain + "/anime/" + fourAnime.sync.getIdentifier(url);
        },
        getEpisode: function (url) {
            return j
                .$("ul.episodes a.active")
                .text()
                .replace(/\D+/g, "")
                .replace(/^0+/g, "");
        },
        nextEpUrl: function (url) {
            var href = j.$(".anipager-next a").first().attr('href');
            if (typeof href !== 'undefined') {
                return utils.absoluteLink(href, fourAnime.domain);
            }
        },
    },
    overview: {
        getTitle: function (url) {
            return j.$("p.single-anime-desktop").text().trim();
        },
        getIdentifier: function (url) {
            return url.split("/")[4].replace(/\-episode[^]*$/g, "");
        },
        uiSelector: function (selector) {
            selector.insertAfter(j.$("p.description-mobile").first());
        },
    },
    init(page) {
        api.storage.addStyle(__webpack_require__(103).toString());
        j.$(document).ready(function () {
            if (j.$(".singletitletop")[0] && j.$(".episodes")[0] || page.url.split("/")[3] == "anime") {
                page.handlePage();
            }
        });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(4), __webpack_require__(1)))

/***/ }),
/* 34 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, utils, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Dreamanimes; });
const Dreamanimes = {
    name: "Dreamanimes",
    domain: "https://dreamanimes.com.br",
    type: "anime",
    isSyncPage: function (url) {
        if (url.split("/")[3] === "online") {
            return true;
        }
        else {
            return false;
        }
    },
    sync: {
        getTitle: function (url) { return j.$("#anime_name").text(); },
        getIdentifier: function (url) { return utils.urlPart(url, 5); },
        getOverviewUrl: function (url) {
            return Dreamanimes.domain + '/anime-info/' + Dreamanimes.sync.getIdentifier(url);
        },
        getEpisode: function (url) { return parseInt(utils.urlPart(url, 7)); },
    },
    overview: {
        getTitle: function (url) { return j.$(".truncate").text(); },
        getIdentifier: function (url) { return url.split("/")[4]; },
        uiSelector: function (selector) { selector.insertAfter(j.$("#pcontent h3")); },
    },
    init(page) {
        api.storage.addStyle(__webpack_require__(105).toString());
        var Interval;
        j.$(document).ready(function () {
            start();
            utils.urlChangeDetect(function () {
                page.url = window.location.href;
                page.UILoaded = false;
                $('#flashinfo-div, #flash-div-bottom, #flash-div-top').remove();
                start();
            });
        });
        function start() {
            if (utils.urlPart(page.url, 3) == 'online' || utils.urlPart(page.url, 3) == 'anime-info') {
                if (Dreamanimes.isSyncPage(page.url)) {
                    page.handlePage();
                }
                else {
                    clearInterval(Interval);
                    Interval = utils.waitUntilTrue(function () { return Dreamanimes.overview.getTitle(page.url); }, function () {
                        page.handlePage();
                    });
                }
            }
        }
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(4), __webpack_require__(1)))

/***/ }),
/* 35 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, utils, con, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return animeultima; });
const animeultima = {
    name: "animeultima",
    domain: "https://www10.animeultima.eu",
    type: "anime",
    isSyncPage: function (url) {
        if (url.split("/")[3] === "a" && j.$("h1.title.is-marginless span.is-size-4.is-size-5-touch.is-size-6-mobile")[0]) {
            return true;
        }
        else {
            return false;
        }
    },
    sync: {
        getTitle: function (url) {
            return j.$("h1.title.is-marginless span.is-size-4.is-size-5-touch.is-size-6-mobile").text().replace(/\n.*/g, "").trim();
        },
        getIdentifier: function (url) {
            return url.split("/")[4];
        },
        getOverviewUrl: function (url) {
            return animeultima.domain + '/a/' + animeultima.sync.getIdentifier(url);
        },
        getEpisode: function (url) {
            return j.$("h1.title.is-marginless span.is-size-4.is-size-5-touch.is-size-6-mobile").text().replace(/.*\n/g, "").replace(/\D+/g, "");
        },
        nextEpUrl: function (url) {
            var href = j.$(".level-right a").first().attr('href');
            if (typeof href !== 'undefined') {
                return utils.absoluteLink(href, animeultima.domain);
            }
        },
    },
    overview: {
        getTitle: function (url) {
            return utils.getBaseText($('h1.title.is-marginless.is-paddingless').first()).replace(/[^ \w]+/g, "").trim();
        },
        getIdentifier: function (url) {
            return url.split("/")[4];
        },
        uiSelector: function (selector) {
            selector.insertAfter(j.$("div.tags.is-marginless").first());
        },
    },
    init(page) {
        if (document.title == "Just a moment...") {
            con.log("loading");
            page.cdn();
            return;
        }
        api.storage.addStyle(__webpack_require__(107).toString());
        j.$(document).ready(function () { page.handlePage(); });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(4), __webpack_require__(3), __webpack_require__(1)))

/***/ }),
/* 36 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, con, api, utils) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Aniflix; });
const Aniflix = {
    name: "Aniflix",
    domain: "https://www1.aniflix.tv",
    type: "anime",
    isSyncPage: function (url) {
        if (url.split("/")[6] === "season") {
            return true;
        }
        else {
            return false;
        }
    },
    sync: {
        getTitle: function (url) {
            if (url.split("/")[7] == 1 || url.split("/")[7] == 0) {
                return j.$("a.episode-showname").text();
            }
            else {
                return j.$("a.episode-showname").text() + " season " + url.split("/")[7];
            }
        },
        getIdentifier: function (url) {
            return url.split("/")[4] + "?s=" + url.split("/")[7];
        },
        getOverviewUrl: function (url) {
            return Aniflix.domain + j.$("a.episode-showname").attr("href");
        },
        getEpisode: function (url) {
            return url.split("/")[9];
        },
    },
    overview: {
        getTitle: function (url) {
            if (j.$("div.seasons-wrapper > div.season.season-active > div").first().text().replace(/\D+/g, "") == 1 || j.$("div.seasons-wrapper > div.season.season-active > div").first().text() === "Specials") {
                return j.$("h1.show-name").text();
            }
            else {
                return j.$("h1.show-name").text() + " season " + j.$("div.seasons-wrapper > div.season.season-active > div").first().text().replace(/\D+/g, "");
            }
        },
        getIdentifier: function (url) {
            if (j.$("div.seasons-wrapper > div.season.season-active > div").first().text() === "Specials") {
                return url.split("/")[4] + "?s=0";
            }
            else {
                return url.split("/")[4] + "?s=" + j.$("div.seasons-wrapper > div.season.season-active > div").first().text().replace(/\D+/g, "");
            }
        },
        uiSelector: function (selector) {
            selector.insertBefore(j.$("div.episodes").first());
        }
    },
    init(page) {
        if (document.title == "Just a moment...") {
            con.log("loading");
            page.cdn();
            return;
        }
        api.storage.addStyle(__webpack_require__(109).toString());
        page.url = window.location.href;
        ready();
        utils.urlChangeDetect(function () {
            ready();
        });
        function ready() {
            page.url = window.location.href;
            page.UILoaded = false;
            $("#flashinfo-div, #flash-div-bottom, #flash-div-top").remove();
            if (page.url.split("/")[3] === "show") {
                if (Aniflix.isSyncPage(page.url)) {
                    utils.waitUntilTrue(function () {
                        if (j.$("a.episode-showname").length) {
                            return true;
                        }
                        else {
                            return false;
                        }
                    }, function () {
                        page.handlePage();
                    });
                }
                else {
                    j.$('#malp').remove();
                    page.UILoaded = false;
                    utils.waitUntilTrue(function () {
                        if (j.$("h1.show-name").length && j.$("h1.show-name").first().text()) {
                            return true;
                        }
                        else {
                            return false;
                        }
                    }, function () {
                        page.handlePage();
                        $("div.seasons-wrapper").unbind("click").click(function () {
                            j.$('#malp').remove();
                            page.UILoaded = false;
                            page.handlePage();
                        });
                    });
                }
            }
        }
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(3), __webpack_require__(1), __webpack_require__(4)))

/***/ }),
/* 37 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, con, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AnimeDaisuki; });
const AnimeDaisuki = {
    name: "AnimeDaisuki",
    domain: "https://animedaisuki.moe",
    type: "anime",
    isSyncPage: function (url) {
        if (url.split("/")[3] === "watch") {
            return true;
        }
        else {
            return false;
        }
    },
    sync: {
        getTitle: function (url) {
            return j.$("nav.Brdcrmb.fa-home a:nth-child(3)").text().trim();
        },
        getIdentifier: function (url) {
            return j.$("nav.Brdcrmb.fa-home a:nth-child(3)").attr('href').split("/")[3];
        },
        getOverviewUrl: function (url) {
            return AnimeDaisuki.domain + j.$("nav.Brdcrmb.fa-home a:nth-child(3)").attr('href');
        },
        getEpisode: function (url) {
            return j.$("h2.SubTitle").text().replace(/\D+/g, "");
        },
        nextEpUrl: function (url) {
            var href = j.$(".CapNv .CapNvNx").first().attr('href');
            if (typeof href !== 'undefined') {
                return AnimeDaisuki.domain + href;
            }
        },
    },
    overview: {
        getTitle: function (url) {
            return j.$("h2.Title").text().trim();
        },
        getIdentifier: function (url) {
            return url.split("/")[5];
        },
        uiSelector: function (selector) {
            selector.insertAfter(j.$("section.WdgtCn").first());
        },
    },
    init(page) {
        if (document.title == "Just a moment...") {
            con.log("loading");
            page.cdn();
            return;
        }
        api.storage.addStyle(__webpack_require__(111).toString());
        j.$(document).ready(function () {
            if (page.url.split("/")[3] === "watch" || page.url.split("/")[3] === "anime") {
                page.handlePage();
            }
        });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(3), __webpack_require__(1)))

/***/ }),
/* 38 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, utils, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Animefreak; });
const Animefreak = {
    name: "Animefreak",
    domain: "https://www.animefreak.tv",
    type: "anime",
    isSyncPage: function (url) {
        if (url.split("/")[5] === "episode") {
            return true;
        }
        else {
            return false;
        }
    },
    sync: {
        getTitle: function (url) { return j.$("div.top-breadcrumb li:nth-child(2) a").text(); },
        getIdentifier: function (url) {
            return url.split("/")[4];
        },
        getOverviewUrl: function (url) {
            return Animefreak.domain + '/watch/' + Animefreak.sync.getIdentifier(url);
        },
        getEpisode: function (url) {
            return url.split("/")[6].replace(/\D+/g, "");
            ;
        },
        nextEpUrl: function (url) {
            var href = j.$(".fa-step-forward").first().parent().attr('href');
            if (typeof href !== 'undefined') {
                return utils.absoluteLink(href, Animefreak.domain);
            }
        },
    },
    overview: {
        getTitle: function (url) {
            return j.$("div.top-breadcrumb li:nth-child(2) a").text();
        },
        getIdentifier: function (url) {
            return url.split("/")[4];
        },
        uiSelector: function (selector) {
            selector.insertBefore(j.$("div.anime-title").first());
        },
    },
    init(page) {
        api.storage.addStyle(__webpack_require__(113).toString());
        j.$(document).ready(function () {
            if (page.url.split("/")[3] === "watch") {
                page.handlePage();
            }
        });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(4), __webpack_require__(1)))

/***/ }),
/* 39 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, utils, con, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AnimePlanet; });
const AnimePlanet = {
    name: "AnimePlanet",
    domain: "https://www.anime-planet.com",
    type: "anime",
    isSyncPage: function (url) {
        if (url.split("/")[6] == null) {
            return false;
        }
        else {
            return true;
        }
    },
    sync: {
        getTitle: function (url) { return j.$("h2.sub a").text(); },
        getIdentifier: function (url) {
            return url.split("/")[4];
        },
        getOverviewUrl: function (url) {
            return AnimePlanet.domain + j.$("h2.sub a").attr('href');
        },
        getEpisode: function (url) {
            var episodePart = utils.getBaseText($('h2.sub')).replace(/\r?\n|\r/g, "");
            if (episodePart.length) {
                var temp = episodePart.match(/.*-/g);
                if (temp !== null) {
                    return temp[0].replace(/\D+/g, "");
                }
            }
        },
        uiSelector: function (selector) {
            selector.insertBefore(j.$("#siteContainer > nav").first());
        },
    },
    overview: {
        getTitle: function (url) {
            return j.$("#siteContainer > h1").text();
        },
        getIdentifier: function (url) {
            return url.split("/")[4];
        },
        uiSelector: function (selector) {
            selector.insertBefore(j.$("#siteContainer > nav").first());
        },
    },
    init(page) {
        if (document.title == "Just a moment...") {
            con.log("loading");
            page.cdn();
            return;
        }
        api.storage.addStyle(__webpack_require__(115).toString());
        j.$(document).ready(function () {
            if (page.url.split("/")[3] === "anime") {
                page.handlePage();
            }
        });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(4), __webpack_require__(3), __webpack_require__(1)))

/***/ }),
/* 40 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(utils, j, con, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return KickAssAnime; });
const KickAssAnime = {
    name: "KickAssAnime",
    domain: "https://www17.kickassanime.io",
    type: "anime",
    isSyncPage: function (url) {
        if (url.split("/")[5] == null) {
            return false;
        }
        else {
            return true;
        }
    },
    sync: {
        getTitle: function (url) {
            return utils.getBaseText($('#animeInfoTab > a'));
        },
        getIdentifier: function (url) {
            return url.split("/")[4];
        },
        getOverviewUrl: function (url) {
            return KickAssAnime.domain + '/anime/' + KickAssAnime.sync.getIdentifier(url);
        },
        getEpisode: function (url) {
            var episodePart = url.split("/")[5];
            if (episodePart.length) {
                var temp = episodePart.match(/episode-\d*/g);
                if (temp !== null) {
                    return temp[0].replace(/\D+/g, "");
                }
            }
        },
    },
    overview: {
        getTitle: function (url) {
            return j.$("h1.title").text();
        },
        getIdentifier: function (url) {
            return url.split("/")[4];
        },
        uiSelector: function (selector) {
            selector.insertAfter(j.$("div.anime-info.border.rounded.mb-3").first());
        },
    },
    init(page) {
        if (document.title == "Just a moment...") {
            con.log("loading");
            page.cdn();
            return;
        }
        api.storage.addStyle(__webpack_require__(117).toString());
        j.$(document).ready(function () {
            if (page.url.split("/")[3] == "anime") {
                page.handlePage();
            }
        });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(4), __webpack_require__(0), __webpack_require__(3), __webpack_require__(1)))

/***/ }),
/* 41 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, utils, con, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return RiiE; });
const RiiE = {
    name: "RiiE",
    domain: "https://www.riie.net",
    type: "anime",
    isSyncPage: function (url) {
        if (j.$("#lightsVideo")[0]) {
            return true;
        }
        else {
            return false;
        }
    },
    sync: {
        getTitle: function (url) { return j.$("#content > div.postarea > div > div.post > div:nth-child(1) > b").text().replace(/episode.*/gmi, "").trim(); },
        getIdentifier: function (url) {
            return RiiE.sync.getOverviewUrl(url).split("/")[4];
        },
        getOverviewUrl: function (url) {
            return j.$("#content > div.postarea > div > div.post > div.newzone > div.right > a:not([rel])").first().attr('href');
        },
        getEpisode: function (url) {
            var episodePart = url.split("/")[3];
            if (episodePart.length) {
                var temp = episodePart.match(/-episode-\d*-/g);
                if (temp !== null) {
                    return temp[0].replace(/\D+/g, "");
                }
            }
        },
        nextEpUrl: function (url) {
            var href = $("a[rel='next']").first().attr('href');
            if (typeof href !== 'undefined') {
                return utils.absoluteLink(href, RiiE.domain);
            }
        },
    },
    overview: {
        getTitle: function (url) {
            return url.split("/")[4].replace(/-/g, " ");
        },
        getIdentifier: function (url) {
            return url.split("/")[4];
        },
        uiSelector: function (selector) {
            selector.insertAfter(j.$("#content > div.naru > div.areaxb").first());
        },
    },
    init(page) {
        if (document.title == "Just a moment...") {
            con.log("loading");
            page.cdn();
            return;
        }
        api.storage.addStyle(__webpack_require__(119).toString());
        j.$(document).ready(function () {
            if (page.url.split("/")[3] == "anime" || j.$("#lightsVideo")[0] && j.$("#content > div.postarea > div > div.post > div.newzone > div.right")[0])
                page.handlePage();
        });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(4), __webpack_require__(3), __webpack_require__(1)))

/***/ }),
/* 42 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, utils, con, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AnimeKisa; });
const AnimeKisa = {
    name: "AnimeKisa",
    domain: "https://animekisa.tv",
    type: "anime",
    isSyncPage: function (url) {
        if (url.split("/")[3] !== null && j.$("div.c a.infoan2")[0] && j.$("#playerselector option:selected")[0]) {
            return true;
        }
        else {
            return false;
        }
    },
    sync: {
        getTitle: function (url) { return j.$("div.c a.infoan2").text().trim(); },
        getIdentifier: function (url) {
            return j.$("div.c a.infoan2").attr("href");
        },
        getOverviewUrl: function (url) {
            return AnimeKisa.domain + "/" + j.$("div.c a.infoan2").attr("href");
        },
        getEpisode: function (url) {
            return j.$("#playerselector option:selected").text().replace(/\D+/g, "");
        },
        nextEpUrl: function (url) {
            var num = $("#playerselector").find("option:selected").next().attr('value');
            var href = url.replace(/\d+$/, num);
            if (typeof num !== 'undefined' && href !== url) {
                return utils.absoluteLink(href, AnimeKisa.domain);
            }
        },
    },
    overview: {
        getTitle: function (url) {
            return j.$("#body > div.notmain > div > div.infobox > div.infoboxc > div.infodesbox > h1").text().trim();
        },
        getIdentifier: function (url) {
            return url.split("/")[3];
        },
        uiSelector: function (selector) { selector.insertBefore(j.$(".infoepboxmain").first()); },
    },
    init(page) {
        if (document.title == "Just a moment...") {
            con.log("loading");
            page.cdn();
            return;
        }
        api.storage.addStyle(__webpack_require__(121).toString());
        j.$(document).ready(function () {
            if (page.url.split("/")[3] !== null && j.$("div.c a.infoan2")[0] && j.$("#playerselector option:selected")[0] || page.url.split("/")[3] !== null && j.$("#body > div.notmain > div > div.infobox > div.infoboxc > div.infodesbox > h1")[0] && j.$("#body > div.notmain > div > div.infobox > div.infoepboxmain")[0]) {
                page.handlePage();
            }
        });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(4), __webpack_require__(3), __webpack_require__(1)))

/***/ }),
/* 43 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, con, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Wakanim; });
const Wakanim = {
    name: "Wakanim",
    domain: "https://www.wakanim.tv",
    type: "anime",
    isSyncPage: function (url) {
        if (j.$("body > section.episode > div > div > div.episode_main > div.episode_video > div").length) {
            return true;
        }
        else {
            return false;
        }
    },
    sync: {
        getTitle: function (url) { return j.$("body > section.episode > div > div > div.episode_info > h1 > span.episode_title").text(); },
        getIdentifier: function (url) {
            return Wakanim.overview.getIdentifier(Wakanim.sync.getOverviewUrl(url));
        },
        getOverviewUrl: function (url) { return Wakanim.domain + j.$("body > section.episode > div > div > div.episode_info > div.episode_buttons > a:nth-child(2)").attr('href'); },
        getEpisode: function (url) {
            return j.$("body > section.episode > div > div > div.episode_info > h1 > span.episode_subtitle > span:nth-child(1) > span").text();
        },
        nextEpUrl: function (url) { return j.$("body > section.episode > div > div > div.episode_main > div.episode_video > div > div.episode-bottom > div.episodeNPEp-wrapperBlock > a.episodeNPEp.episodeNextEp.active").attr('href'); },
    },
    overview: {
        getTitle: function (url) { return j.$("h1.serie_title").text(); },
        getIdentifier: function (url) {
            return url.split("/")[7].trim();
        },
        uiSelector: function (selector) {
            selector.insertAfter(j.$("h1.serie_title").first());
        },
    },
    init(page) {
        if (document.title == "Just a moment...") {
            con.log("loading");
            page.cdn();
            return;
        }
        api.storage.addStyle(__webpack_require__(123).toString());
        j.$(document).ready(function () {
            if (Wakanim.isSyncPage(page.url)) {
                if (j.$("#jwplayer-container")[0]) {
                    page.handlePage();
                }
            }
            else {
                page.handlePage();
            }
        });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(3), __webpack_require__(1)))

/***/ }),
/* 44 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, utils, con, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AnimeIndo; });
const AnimeIndo = {
    name: "AnimeIndo",
    domain: "http://animeindo.moe",
    type: "anime",
    isSyncPage: function (url) {
        if (url.split("/")[1] !== null && j.$("#sct_content > div > div.preview")[0]) {
            return true;
        }
        else {
            return false;
        }
    },
    sync: {
        getTitle: function (url) { return j.$("#sct_content > div > div.infobox > h3").text(); },
        getIdentifier: function (url) {
            return j.$("#sct_content > div > div.ep_nav.fr > span.nav.all > a").attr("href").split("/")[4];
        },
        getOverviewUrl: function (url) {
            return j.$("#sct_content > div > div.ep_nav.fr > span.nav.all > a").attr("href");
        },
        getEpisode: function (url) {
            var episodePart = url.split("/")[3];
            if (episodePart.length) {
                var temp = episodePart.match(/-episode-\d*/g);
                if (temp !== null) {
                    return temp[0].replace(/\D+/g, "");
                }
            }
        },
        nextEpUrl: function (url) {
            var href = j.$(".nav.next a").first().attr('href');
            if (typeof href !== 'undefined') {
                return utils.absoluteLink(href, AnimeIndo.domain);
            }
        },
    },
    overview: {
        getTitle: function (url) {
            return j.$("#sct_content > div.nodeinfo > h2").first().text().replace(/sinopsis/gi, "").trim();
        },
        getIdentifier: function (url) {
            return url.split("/")[4];
        },
        uiSelector: function (selector) {
            selector.insertAfter(j.$("#sct_content > h1").first());
        },
    },
    init(page) {
        if (document.title == "Just a moment...") {
            con.log("loading");
            page.cdn();
            return;
        }
        api.storage.addStyle(__webpack_require__(125).toString());
        j.$(document).ready(function () {
            if (page.url.split("/")[3] === "anime" || page.url.split("/")[3] !== null && j.$("#sct_content > div > div.preview")[0]) {
                page.handlePage();
            }
        });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(4), __webpack_require__(3), __webpack_require__(1)))

/***/ }),
/* 45 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, con, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Shinden; });
const Shinden = {
    name: "Shinden",
    domain: "https://shinden.pl",
    type: "anime",
    isSyncPage: function (url) {
        if (url.split("/")[3] === "episode") {
            return true;
        }
        else {
            return false;
        }
    },
    sync: {
        getTitle: function (url) { return j.$(".page-title > a").text().trim(); },
        getIdentifier: function (url) {
            return url.split("/")[4];
        },
        getOverviewUrl: function (url) {
            return j.$("h1.page-title > a").attr("href");
        },
        getEpisode: function (url) {
            return j.$("dl.info-aside-list:nth-child(1) > dd:nth-child(2)").text().replace(/\D+/g, "");
        }
    },
    overview: {
        getTitle: function (url) {
            return j.$("h1.page-title").text().replace(/anime:/gmi, "").trim();
        },
        getIdentifier: function (url) {
            return url.split("/")[4];
        },
        uiSelector: function (selector) { selector.insertAfter(j.$(".title-other").first()); },
    },
    init(page) {
        if (document.title == "Just a moment...") {
            con.log("loading");
            page.cdn();
            return;
        }
        api.storage.addStyle(__webpack_require__(127).toString());
        j.$(document).ready(function () {
            if (page.url.split("/")[3] === "series" || page.url.split("/")[3] === "episode") {
                page.handlePage();
            }
        });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(3), __webpack_require__(1)))

/***/ }),
/* 46 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, utils, con, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Funimation; });
const Funimation = {
    name: "Funimation",
    domain: "https://www.funimation.com",
    type: "anime",
    isSyncPage: function (url) {
        if (j.$("h1.show-headline.video-title")[0] && j.$("h2.episode-headline")[0]) {
            return true;
        }
        else {
            return false;
        }
    },
    sync: {
        getTitle: function (url) {
            return j.$("h1.show-headline.video-title a").text();
        },
        getIdentifier: function (url) {
            return url.split("/")[4];
        },
        getOverviewUrl: function (url) {
            return Funimation.domain + j.$("h1.show-headline.video-title a").attr("href");
        },
        getEpisode: function (url) {
            return utils.getBaseText($("h1.show-headline.video-title")).replace(/\D+/g, "");
        },
    },
    overview: {
        getTitle: function (url) {
            return j.$("h1.heroTitle").text();
        },
        getIdentifier: function (url) {
            return url.split("/")[4];
        },
        uiSelector: function (selector) {
            j.$('<div class="container"> <p id="malp">' + selector.html() + '</p></div>').insertBefore(j.$("div.gradient-bg").first());
        },
    },
    init(page) {
        if (document.title == "Just a moment...") {
            con.log("loading");
            page.cdn();
            return;
        }
        api.storage.addStyle(__webpack_require__(129).toString());
        j.$(document).ready(function () {
            if (page.url.split("/")[3] === "shows" && (j.$("h1.show-headline.video-title")[0] || j.$("h1.heroTitle")[0])) {
                page.handlePage();
            }
        });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(4), __webpack_require__(3), __webpack_require__(1)))

/***/ }),
/* 47 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(utils, j, con, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Voiranime; });
const Voiranime = {
    name: 'Voiranime',
    domain: 'http://voiranime.com',
    type: 'anime',
    isSyncPage: function (url) {
        if ($('.video-series-wrap').length)
            return true;
        return false;
    },
    sync: {
        getTitle: function (url) { return $('h1').first().text().trim().split(' – ')[0]; },
        getIdentifier: function (url) { return utils.urlPart(url, 3).replace(/(-saison-[^-]*)?-[^-]*-[^-]*$/i, ''); },
        getOverviewUrl: function (url) {
            return Voiranime.domain + '/' + Voiranime.sync.getIdentifier(url);
        },
        getEpisode: function (url) {
            return parseInt($('.series-current').first().text().trim());
        },
        nextEpUrl: function (url) { return utils.absoluteLink(j.$('.series-current').first().closest('li').next().find('a').attr('href'), Voiranime.domain); },
    },
    overview: {
        getTitle: function (url) { return $('h1').first().text().trim(); },
        getIdentifier: function (url) { return utils.urlPart(url, 3); },
        uiSelector: function (selector) { selector.insertAfter(j.$("h1").first()); },
    },
    init(page) {
        if (document.title == "Just a moment...") {
            con.log("loading");
            page.cdn();
            return;
        }
        api.storage.addStyle(__webpack_require__(131).toString());
        j.$(document).ready(function () {
            if ($('.video-series-wrap').length || $('.category-anime-serie').length) {
                page.handlePage();
            }
        });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(4), __webpack_require__(0), __webpack_require__(3), __webpack_require__(1)))

/***/ }),
/* 48 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, con, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return DubbedAnime; });
const DubbedAnime = {
    name: "DubbedAnime",
    domain: "https://ww5.dubbedanime.net",
    type: "anime",
    isSyncPage: function (url) {
        if (url.split("/")[3] === "episode") {
            return true;
        }
        else {
            return false;
        }
    },
    sync: {
        getTitle: function (url) { return j.$("h1.dosis.ep-title").text().replace(/(episode|ova).*\d+/gmi, "").trim(); },
        getIdentifier: function (url) {
            return j.$("a.w-100.btn.btn-success").attr("href").split("/")[4];
        },
        getOverviewUrl: function (url) {
            return j.$("a.w-100.btn.btn-success").attr("href");
        },
        getEpisode: function (url) {
            var episodePart = url.split("/")[4];
            if (episodePart.length) {
                var temp = episodePart.match(/-(episode|ova)-\d+-/gmi);
                if (temp !== null) {
                    return temp[0].replace(/\D+/g, "");
                }
                else {
                    return 1;
                }
            }
        },
    },
    overview: {
        getTitle: function (url) {
            return j.$("h1.h3.dosis.mt-0.text-white.pt-2.d-none.d-sm-block").text().trim();
        },
        getIdentifier: function (url) {
            return url.split("/")[4];
        },
        uiSelector: function (selector) {
            selector.insertAfter(j.$("#episodes > div > div.row.mb-3.pr-2").first());
        },
    },
    init(page) {
        if (document.title == "Just a moment...") {
            con.log("loading");
            page.cdn();
            return;
        }
        api.storage.addStyle(__webpack_require__(133).toString());
        j.$(document).ready(function () {
            if (page.url.split("/")[3] === "episode" || page.url.split("/")[3] === "anime") {
                page.handlePage();
            }
        });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(3), __webpack_require__(1)))

/***/ }),
/* 49 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return pages; });
/* unused harmony export pageSearch */
/* harmony import */ var _hanime_main__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(50);
/* harmony import */ var _HentaiHaven_main__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51);
/* harmony import */ var _Hentaigasm_main__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(52);
/* harmony import */ var _KissHentai_main__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(53);
/* harmony import */ var _UnderHentai_main__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(54);





const pages = {
    hanime: _hanime_main__WEBPACK_IMPORTED_MODULE_0__[/* hanime */ "a"],
    HentaiHaven: _HentaiHaven_main__WEBPACK_IMPORTED_MODULE_1__[/* HentaiHaven */ "a"],
    Hentaigasm: _Hentaigasm_main__WEBPACK_IMPORTED_MODULE_2__[/* Hentaigasm */ "a"],
    KissHentai: _KissHentai_main__WEBPACK_IMPORTED_MODULE_3__[/* KissHentai */ "a"],
    UnderHentai: _UnderHentai_main__WEBPACK_IMPORTED_MODULE_4__[/* UnderHentai */ "a"],
};
const pageSearch = {};


/***/ }),
/* 50 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, con, api, utils) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return hanime; });
const hanime = {
    name: "hanime",
    domain: "https://hanime.tv",
    type: "anime",
    isSyncPage: function (url) {
        if (url.split("/")[3] === "hentai-videos") {
            return true;
        }
        else {
            return false;
        }
    },
    sync: {
        getTitle: function (url) {
            return j.$("h1.tv-title").text().replace(/ ([^a-z]*)$/gmi, "").trim();
        },
        getIdentifier: function (url) {
            return url.split("/")[4].replace(/-([^a-z]*)$/gmi, "").trim();
        },
        getOverviewUrl: function (url) {
            var overviewPart = url.split("/")[4];
            var temp = overviewPart.match(/-([^a-z]*)$/gmi);
            if (temp !== null) {
                return hanime.domain + "/hentai-videos/" + hanime.sync.getIdentifier(url) + "-1";
            }
            else {
                return hanime.domain + "/hentai-videos/" + hanime.sync.getIdentifier(url);
            }
        },
        getEpisode: function (url) {
            var episodePart = url.split("/")[4];
            if (episodePart.length) {
                var temp = episodePart.match(/-([^a-z]*)$/gmi);
                if (temp !== null) {
                    return temp[0].replace(/\D+/g, "");
                }
                else {
                    return 1;
                }
            }
        },
    },
    init(page) {
        if (document.title == "Just a moment...") {
            con.log("loading");
            page.cdn();
            return;
        }
        api.storage.addStyle(__webpack_require__(135).toString());
        j.$(document).ready(function () {
            if (page.url.split("/")[3] === "hentai-videos") {
                utils.waitUntilTrue(function () {
                    return j.$("h1.tv-title").text();
                }, function () {
                    page.handlePage();
                });
            }
        });
        utils.urlChangeDetect(function () {
            page.url = window.location.href;
            page.UILoaded = false;
            $("#flashinfo-div, #flash-div-bottom, #flash-div-top").remove();
            if (page.url.split("/")[3] === "hentai-videos") {
                utils.waitUntilTrue(function () {
                    return j.$("h1.tv-title").text();
                }, function () {
                    page.handlePage();
                });
            }
        });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(3), __webpack_require__(1), __webpack_require__(4)))

/***/ }),
/* 51 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, con, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return HentaiHaven; });
const HentaiHaven = {
    name: "HentaiHaven",
    domain: "https://hentaihaven.org",
    type: "anime",
    isSyncPage: function (url) {
        if (url.split("/")[3] !== null && j.$("h1.entry-title")[0] && j.$("div.hentaiha-post-tabs")[0]) {
            return true;
        }
        else {
            return false;
        }
    },
    sync: {
        getTitle: function (url) { return j.$("div > header > div > a").text(); },
        getIdentifier: function (url) {
            return j.$("div > header > div > a").attr("href").split("/")[4];
        },
        getOverviewUrl: function (url) {
            return j.$("div > header > div > a").attr("href");
        },
        getEpisode: function (url) {
            var episodePart = url.split("/")[3];
            if (episodePart.length) {
                var temp = episodePart.match(/-episode-\d+/gmi);
                if (temp !== null) {
                    return temp[0].replace(/\D+/g, "");
                }
                else {
                    return 1;
                }
            }
        },
    },
    overview: {
        getTitle: function (url) {
            return j.$("h1.archive-title").text();
        },
        getIdentifier: function (url) {
            return url.split("/")[4];
        },
        uiSelector: function (selector) {
            selector.insertAfter(j.$("div.archive-meta.category-meta").first());
        },
    },
    init(page) {
        if (document.title == "Just a moment...") {
            con.log("loading");
            page.cdn();
            return;
        }
        api.storage.addStyle(__webpack_require__(137).toString());
        j.$(document).ready(function () {
            if ((page.url.split("/")[3] !== null && j.$("h1.entry-title")[0] && j.$("div.hentaiha-post-tabs")[0]) || (page.url.split("/")[3] === "series")) {
                page.handlePage();
            }
        });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(3), __webpack_require__(1)))

/***/ }),
/* 52 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, con, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Hentaigasm; });
const Hentaigasm = {
    name: "Hentaigasm",
    domain: "http://hentaigasm.com",
    type: "anime",
    isSyncPage: function (url) {
        if (url.split("/")[3] !== null && j.$("#extras > h4:nth-child(2) > a")[0] && j.$("div.entry-content.rich-content")[0]) {
            return true;
        }
        else {
            return false;
        }
    },
    sync: {
        getTitle: function (url) { return j.$("h1#title").text().replace(/\d+ (subbed|raw)/gmi, "").trim(); },
        getIdentifier: function (url) {
            return url.split("/")[3].replace(/-\d-(subbed|raw)/gmi, "").trim();
        },
        getOverviewUrl: function (url) {
            return j.$("#extras > h4:nth-child(2) > a").attr("href");
        },
        getEpisode: function (url) {
            var episodePart = url.split("/")[3];
            if (episodePart.length) {
                var temp = episodePart.match(/-\d+-(subbed|raw)/gmi);
                if (temp !== null) {
                    return temp[0].replace(/\D+/g, "");
                }
                else {
                    return 1;
                }
            }
        },
    },
    overview: {
        getTitle: function (url) {
            return j.$("#content > div.loop-header > h1 > em").text();
        },
        getIdentifier: function (url) {
            return url.split("/")[4];
        },
        uiSelector: function (selector) {
            selector.insertAfter(j.$("div.loop-actions").first());
        },
    },
    init(page) {
        if (document.title == "Just a moment...") {
            con.log("loading");
            page.cdn();
            return;
        }
        api.storage.addStyle(__webpack_require__(139).toString());
        j.$(document).ready(function () {
            if ((page.url.split("/")[3] !== null && j.$("#extras > h4:nth-child(2) > a")[0] && j.$("div.entry-content.rich-content")[0]) || page.url.split("/")[3] === "category")
                page.handlePage();
        });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(3), __webpack_require__(1)))

/***/ }),
/* 53 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, con, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return KissHentai; });
const KissHentai = {
    name: "KissHentai",
    domain: "http://kisshentai.net",
    type: "anime",
    isSyncPage: function (url) {
        if (url.split("/")[3] === "Hentai" && j.$('div#videoKissHentai')[0]) {
            return true;
        }
        else {
            return false;
        }
    },
    sync: {
        getTitle: function (url) { return j.$('#navsubbar a').first().text().replace('Hentai', '').replace('information', '').trim(); },
        getIdentifier: function (url) {
            return url.split("/")[4];
        },
        getOverviewUrl: function (url) {
            return KissHentai.domain + j.$('#navsubbar a').first().attr("href");
        },
        getEpisode: function (url) {
            var episodePart = url.split("/")[5];
            if (episodePart.length) {
                var temp = episodePart.match(/Episode-\d+/gmi);
                if (temp !== null) {
                    return temp[0].replace(/\D+/g, "");
                }
            }
        },
    },
    overview: {
        getTitle: function () { return j.$('.bigChar').first().text(); },
        getIdentifier: function (url) { return url.split("/")[4]; },
        uiSelector: function (selector) { selector.insertAfter(j.$(".bigChar").first()); },
    },
    init(page) {
        if (document.title == "Just a moment...") {
            con.log("loading");
            page.cdn();
            return;
        }
        api.storage.addStyle(__webpack_require__(141).toString());
        j.$(document).ready(function () {
            if (page.url.split("/")[3] === "Hentai") {
                page.handlePage();
            }
        });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(3), __webpack_require__(1)))

/***/ }),
/* 54 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
/* WEBPACK VAR INJECTION */(function(j, con, api) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return UnderHentai; });
const UnderHentai = {
    name: "UnderHentai",
    domain: "https://www.underhentai.net",
    type: "anime",
    isSyncPage: function (url) {
        if (url.split("/")[3] === "watch") {
            return true;
        }
        else {
            return false;
        }
    },
    sync: {
        getTitle: function (url) { return j.$("div.content-box.content-head.sidebar-light").first().text().trim().replace(/- episode.*\d+/gmi, "").trim(); },
        getIdentifier: function (url) {
            return UnderHentai.sync.getTitle(url).toLowerCase().replace(/[^A-Z0-9 ]/gmi, "").replace(/\s+/gm, "-").trim().replace(" ", "-");
        },
        getOverviewUrl: function (url) {
            return UnderHentai.domain + "/" + UnderHentai.sync.getIdentifier(url);
        },
        getEpisode: function (url) {
            var episodePart = j.$("div.content-box.content-head.sidebar-light").first().text().trim();
            if (episodePart.length) {
                var temp = episodePart.match(/- episode.*\d+/gmi);
                if (temp !== null) {
                    return temp[0].replace(/\D+/g, "");
                }
                else {
                    return 1;
                }
            }
        },
    },
    overview: {
        getTitle: function (url) {
            return j.$("h1.content-box.content-head.sidebar-light").first().text().trim();
        },
        getIdentifier: function (url) {
            return url.split("/")[3];
        },
        uiSelector: function (selector) { selector.insertBefore(j.$("div.content-table").first()); },
    },
    init(page) {
        if (document.title == "Just a moment...") {
            con.log("loading");
            page.cdn();
            return;
        }
        api.storage.addStyle(__webpack_require__(143).toString());
        j.$(document).ready(function () {
            if (page.url.split("/")[3] === "watch" || (page.url.split("/")[3] !== null && j.$("div.content-table > table > thead > tr > th.c1").text() === "Episode")) {
                page.handlePage();
            }
        });
    }
};

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(0), __webpack_require__(3), __webpack_require__(1)))

/***/ }),
/* 55 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* WEBPACK VAR INJECTION */(function(api, con, j, utils) {/* harmony import */ var _src_MALSync_src_pages_pages__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8);
/* harmony import */ var _src_MALSync_src_pages_adult_pages__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49);


const pages = Object.assign({}, _src_MALSync_src_pages_pages__WEBPACK_IMPORTED_MODULE_0__[/* pages */ "a"], _src_MALSync_src_pages_adult_pages__WEBPACK_IMPORTED_MODULE_1__[/* pages */ "a"]);
api.storage.addStyle = function () { };
var css = "font-size: 40px; padding-bottom: 3px; color: white; text-shadow: -1px -1px #2e51a2, 1px -1px #2e51a2, -1px 1px #2e51a2, 1px 1px #2e51a2, 2px 2px #2e51a2, 3px 3px #2e51a2;";
console.log("%cDiscord-Anime-Gaming", css, "Version: " + api.storage.version());
var interval = 5000;
$(document).ready(function () { main(); });
function main() {
    var page = getPage(window.location.href);
    if (page && !inIframe()) {
        con.log('Page found', page.name, window.location.href);
        handlePage(page);
    }
    else {
        con.log('Video Iframe', window.location.href);
        setInterval(function () {
            var timeLeft = getTimeleft();
            con.log('[IFRAME]', timeLeft);
            if (timeLeft != '' && timeLeft) {
                con.log('[IFRAME] Set', timeLeft);
                GM_setValue('timeLeft', timeLeft);
            }
        }, interval);
    }
}
function inIframe() {
    try {
        return window.self !== window.top;
    }
    catch (e) {
        return true;
    }
}
function getPage(url) {
    for (var key in pages) {
        var page = pages[key];
        if (j.$.isArray(page.domain)) {
            for (var k in page.domain) {
                var singleDomain = page.domain[k];
                if (checkDomain(singleDomain)) {
                    page.domain = singleDomain;
                    return page;
                }
            }
        }
        else {
            if (checkDomain(page.domain)) {
                return page;
            }
        }
        function checkDomain(domain) {
            if (url.indexOf(utils.urlPart(domain, 2).split('.').slice(-2, -1)[0] + '.') > -1) {
                return true;
            }
            return false;
        }
    }
    return null;
}
function handlePage(page) {
    page.init({ url: window.location.href, handlePage() {
            if (page.isSyncPage(window.location.href)) {
                login(page);
            }
            else {
                con.log('Overview page');
            }
        } });
}
function login(page) {
    var token = '';
    if (GM_getValue('token', 0)) {
        token = GM_getValue('token');
    }
    else {
        //@ts-ignore
        token = prompt("Please enter your token.\nCheck the description for more information");
        GM_setValue('token', token);
    }
    var client = new Discord.Client({
        token: token,
        autorun: true
    });
    client.on('ready', function () {
        console.log(client.username + " (" + client.id + ") logged in");
        GM_deleteValue('timeLeft');
        setInterval(function () { setgame(); }, interval);
        setgame();
    });
    client.on('disconnect', function (errMsg, code) {
        alert(errMsg);
        if (code == 4004) {
            GM_deleteValue('token');
        }
    });
    function setgame() {
        var gameType = 3;
        if (page.type !== 'anime') {
            gameType = 1;
        }
        var timeLeft = getTimeleft();
        if (timeLeft == '' && GM_getValue('timeLeft', '') != '') {
            timeLeft = GM_getValue('timeLeft', '');
            GM_deleteValue('timeLeft');
        }
        var episode = page.sync.getEpisode(window.location.href);
        if (episode == null || episode == 0 || isNaN(episode)) {
            episode = '';
        }
        else {
            if (page.type === 'anime') {
                episode = 'Ep. ' + episode;
            }
            else {
                episode = 'Chapter ' + episode;
            }
        }
        var title = page.sync.getTitle(window.location.href).replace('&amp;', '&').trim();
        var message = title + " " + episode + " " + timeLeft;
        client.setPresence({
            game: {
                name: message,
                type: gameType
            }
        });
        con.log('Set Game', message);
    }
    //@ts-ignore
    $(window).unload(function () {
        client.setPresence({ game: { name: "", } });
    });
}
function getTimeleft() {
    var timeLeft = '';
    var paused = false;
    if (typeof $('video').get(0) != 'undefined') {
        //@ts-ignore
        var duration = $('video').get(0).duration;
        //@ts-ignore
        var current = $('video').get(0).currentTime;
        //@ts-ignore
        paused = $('video').get(0).paused;
        //@ts-ignore
        var time = Math.ceil((duration - current));
        var minutes = Math.floor(time / 60);
        var seconds = time - minutes * 60;
        //@ts-ignore
        if (seconds < 10)
            seconds = '0' + seconds;
        //@ts-ignore
        if (time == null || time == 0 || isNaN(time)) {
            timeLeft = '';
        }
        else {
            timeLeft = " (" + minutes + ":" + seconds + " Left)";
        }
        if (paused === true) {
            timeLeft = "(PAUSED)";
        }
    }
    return timeLeft;
}

/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(1), __webpack_require__(3), __webpack_require__(0), __webpack_require__(4)))

/***/ }),
/* 56 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(57);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 57 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: #d5f406;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: #d5f406;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n#footer {\n  z-index: 2;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  height: auto !important;\n}\n", ""]);

// exports


/***/ }),
/* 58 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(59);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 59 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: #72cefe;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: #72cefe;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n#footer {\n  z-index: 2;\n}\n", ""]);

// exports


/***/ }),
/* 60 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(61);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 61 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: #694ba1;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: #694ba1;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n#MalData select option {\n  background-color: white;\n}\nbody.dark #MalData select option {\n  background-color: #1c1b26 !important;\n}\n#malp {\n  margin: 0;\n}\n", ""]);

// exports


/***/ }),
/* 62 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(63);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 63 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: white;\n}\n.mal-sync-active {\n  background-color: #b2d1ff !important;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: white;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n#malp {\n  background-color: #555;\n  padding: 10px 7px 5px 7px;\n}\n#malp span {\n  color: white;\n}\n#malp select > * {\n  background-color: #555 !important;\n}\n", ""]);

// exports


/***/ }),
/* 64 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(65);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 65 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: inherit;\n}\n.mal-sync-active {\n  background-color: #cee1ff;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: inherit;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n#malp {\n  margin: 0;\n}\n#malp span {\n  color: inherit;\n}\n#malp select > * {\n  background-color: white !important;\n}\n@media only screen and (max-width: 1440px) {\n  #malp .MalLogin {\n    width: 100%;\n  }\n}\n.MALSyncDark #MalData select option {\n  background-color: black !important;\n}\n.MALSyncDark .mal-sync-active {\n  background-color: #0e1d35;\n}\n", ""]);

// exports


/***/ }),
/* 66 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(67);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 67 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: black;\n}\n.mal-sync-active {\n  background-color: #cee1ff !important;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: black;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n#malp {\n  background-color: #fff;\n  padding: 20px;\n  border-radius: 2px;\n  -webkit-box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.2), 0 3px 4px 0 rgba(0, 0, 0, 0.12), 0 2px 4px 0 rgba(0, 0, 0, 0.14);\n  box-shadow: 0 1px 5px 0 rgba(0, 0, 0, 0.2), 0 3px 4px 0 rgba(0, 0, 0, 0.12), 0 2px 4px 0 rgba(0, 0, 0, 0.14);\n  margin-bottom: 20px;\n  position: relative;\n}\n#malp span {\n  color: black;\n}\n#malp select > * {\n  background-color: white !important;\n}\n@media only screen and (max-width: 1320px) {\n  #malp .MalLogin {\n    width: 100%;\n  }\n}\n", ""]);

// exports


/***/ }),
/* 68 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(69);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 69 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: #ffc119;\n}\n.mal-sync-active {\n  background-color: #002966 !important;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: #ffc119;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n#malp * {\n  font-size: 13px;\n}\n", ""]);

// exports


/***/ }),
/* 70 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(71);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 71 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: white;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: white;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n.mal-sync-active a {\n  background-color: #72abff !important;\n}\n#flashinfo-div {\n  z-index: 100 !important;\n}\n#malp #malVolumes,\n#malp #malEpisodes {\n  float: none;\n  display: inline-block;\n  border-radius: 0;\n}\n", ""]);

// exports


/***/ }),
/* 72 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(73);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 73 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: white;\n}\n.mal-sync-active {\n  background-color: #bbbbbb;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: white;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n#malp {\n  color: white;\n}\n#flash-div-top button,\n#flash-div-bottom button,\n#flashinfo-div button {\n  background: none;\n  box-shadow: none;\n  -moz-box-shadow: none;\n  -webkit-box-shadow: none;\n}\n#flash-div-top .undoButton,\n#flash-div-bottom .undoButton,\n#flashinfo-div .undoButton {\n  margin-left: auto;\n  margin-right: auto;\n}\n", ""]);

// exports


/***/ }),
/* 74 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(75);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 75 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: black;\n}\n.mal-sync-active {\n  background-color: #0066ff;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: black;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n", ""]);

// exports


/***/ }),
/* 76 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(77);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 77 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: white;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: white;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n#malp {\n  margin-top: 1rem;\n  border-top: 0 solid hsla(0, 0%, 100%, 0.05);\n  border-width: 1px 0;\n  font-size: 14px;\n  padding: 10px 5px 0;\n  padding-top: 1rem;\n}\n#malp select {\n  display: inline-block;\n  width: auto;\n}\n#malp input {\n  display: inline-block;\n}\n.my-float.open-info-popup {\n  height: 100%;\n  width: 100%;\n  margin: 0 !important;\n}\n", ""]);

// exports


/***/ }),
/* 78 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(79);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 79 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: inherit;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: inherit;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n.miniMAL-Fullscreen .open-info-popup.floatbutton,\n.miniMAL-hide .open-info-popup.floatbutton,\n.miniMAL-Fullscreen #flashinfo-div,\n.miniMAL-hide #flashinfo-div,\n.miniMAL-Fullscreen #flash-div-bottom,\n.miniMAL-hide #flash-div-bottom,\n.miniMAL-Fullscreen #flash-div-top,\n.miniMAL-hide #flash-div-top {\n  display: none !important;\n}\n#malp {\n  max-width: 700px;\n}\n", ""]);

// exports


/***/ }),
/* 80 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(81);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 81 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: inherit;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: inherit;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n.miniMAL-Fullscreen .open-info-popup.floatbutton,\n.miniMAL-hide .open-info-popup.floatbutton,\n.miniMAL-Fullscreen #flashinfo-div,\n.miniMAL-hide #flashinfo-div,\n.miniMAL-Fullscreen #flash-div-bottom,\n.miniMAL-hide #flash-div-bottom,\n.miniMAL-Fullscreen #flash-div-top,\n.miniMAL-hide #flash-div-top {\n  display: none !important;\n}\n#malp {\n  max-width: 700px;\n  margin: 0;\n}\n.noApiKey [data-qa-id=\"moreButton\"] {\n  background-color: red;\n}\n", ""]);

// exports


/***/ }),
/* 82 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(83);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 83 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: white;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: white;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n.miniMAL-Fullscreen .open-info-popup.floatbutton,\n.miniMAL-hide .open-info-popup.floatbutton,\n.miniMAL-Fullscreen #flashinfo-div,\n.miniMAL-hide #flashinfo-div,\n.miniMAL-Fullscreen #flash-div-bottom,\n.miniMAL-hide #flash-div-bottom,\n.miniMAL-Fullscreen #flash-div-top,\n.miniMAL-hide #flash-div-top {\n  display: none !important;\n}\n", ""]);

// exports


/***/ }),
/* 84 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(85);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 85 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: inherit;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: inherit;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n.mal-sync-active a {\n  background-color: #72abff !important;\n}\n#MalData select option {\n  background-color: white;\n}\nbody.darkmode #MalData select option {\n  background-color: #3b3e45 !important;\n}\n", ""]);

// exports


/***/ }),
/* 86 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(87);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 87 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: black;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: black;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\nsection.main .content-wrapper .theatre .theatre-info {\n  margin-bottom: 1rem;\n}\n#flashinfo-div {\n  z-index: 99999 !important;\n}\n#malp,\n#malTotal,\n#AddMalDiv,\n#AddMal {\n  color: #999 !important;\n}\n#malStatus,\n#malUserRating,\n#malEpisodes {\n  background: transparent !important;\n  color: #d5015b !important;\n}\n#malStatus option,\n#malUserRating option,\n#malEpisodes option {\n  background: black !important;\n  color: #d5015b !important;\n}\n#malRating {\n  color: #d5015b !important;\n}\n.mal-sync-active .episode-label-wrap {\n  background-color: #002966;\n  background-color: #002966ba;\n}\n", ""]);

// exports


/***/ }),
/* 88 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(89);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 89 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: #694ba1;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: #694ba1;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n#MalData select option {\n  background-color: white;\n}\nbody.dark #MalData select option {\n  background-color: #1c1b26 !important;\n}\n#malp {\n  margin: 0;\n}\n#malp .info {\n  display: block;\n}\n#malp #malEpisodes {\n  display: inline-block;\n  border: 0;\n  padding: 0;\n  margin-bottom: 4px;\n}\n#malp select {\n  margin-left: -3px !important;\n}\n", ""]);

// exports


/***/ }),
/* 90 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(91);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 91 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: white;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: white;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n.mal-sync-active a {\n  background-color: #72abff !important;\n}\n#flashinfo-div {\n  z-index: 100 !important;\n}\n#malp #malVolumes,\n#malp #malEpisodes {\n  float: none;\n  display: inline-block;\n  border-radius: 0;\n}\n#MalData {\n  display: initial !important;\n}\n.cap-header:visited {\n  color: #fff !important;\n}\n", ""]);

// exports


/***/ }),
/* 92 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(93);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 93 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: white;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: white;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n#malp * {\n  color: white;\n}\n", ""]);

// exports


/***/ }),
/* 94 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(95);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 95 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: inherit;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: inherit;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n.mal-sync-active {\n  border: 2px solid #002966 !important;\n}\n#malp {\n  margin: 10px;\n  max-width: 1000px;\n}\n#malp select option {\n  color: white;\n}\n", ""]);

// exports


/***/ }),
/* 96 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(97);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 97 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: black;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: black;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n", ""]);

// exports


/***/ }),
/* 98 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(99);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 99 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: #72cefe;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: #72cefe;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n.mal-sync-active {\n  background-color: #cfe2ff;\n}\n#malp select option {\n  background-color: white;\n  color: black;\n}\n#malp #MalData > * {\n  white-space: nowrap;\n}\n#malp select,\n#malp input,\n#malp a,\n#malp #malTotalVol,\n#malp #malTotalCha {\n  display: inline-block;\n  color: #07c;\n}\n#malp .info {\n  border: none;\n  padding: 0;\n  color: inherit;\n  margin: 0;\n  width: auto;\n  font-weight: 600;\n  color: #696969;\n  font-size: 100%;\n  font-family: roboto, sans-serif;\n  margin-right: 5px;\n}\n", ""]);

// exports


/***/ }),
/* 100 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: black;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: black;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n#flashinfo-div,\n#flash-div-bottom {\n  z-index: 2000 !important;\n}\n", ""]);

// exports


/***/ }),
/* 101 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(102);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 102 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: black;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: black;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n#malp select option {\n  color: black !important;\n  background-color: white !important;\n}\n", ""]);

// exports


/***/ }),
/* 103 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(104);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 104 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: black;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: black;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n#malp select,\na,\ninput,\nspan {\n  color: #bbb !important;\n}\n#malp select option {\n  color: #bbb !important;\n  background-color: #161616 !important;\n}\n", ""]);

// exports


/***/ }),
/* 105 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(106);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 106 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: white;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: white;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n#malp {\n  font-size: 14px;\n  padding: 10px 0 10px;\n  padding-top: 1rem;\n  padding-bottom: 1rem;\n}\n#malRating,\n#AddMal {\n  text-decoration: underline;\n}\n.info {\n  border-left: 0px;\n}\n", ""]);

// exports


/***/ }),
/* 107 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(108);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 108 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: black;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: black;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\nhtml #malp select option {\n  color: black !important;\n  background-color: white !important;\n}\nhtml.dark #malp select,\nhtml.dark a,\nhtml.dark input,\nhtml.dark span {\n  color: #ccc !important;\n}\nhtml.dark #malp select option {\n  color: #ccc !important;\n  background-color: #111 !important;\n}\n", ""]);

// exports


/***/ }),
/* 109 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(110);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 110 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: black;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: black;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\ndiv#app.dark-theme a,\ndiv#app.dark-theme span,\ndiv#app.dark-theme input,\ndiv#app.dark-theme select {\n  color: white !important;\n}\ndiv#app.dark-theme #malp select option {\n  color: white !important;\n  background-color: black !important;\n}\ndiv#app.light-theme select option {\n  color: black !important;\n  background-color: white !important;\n}\n#malp {\n  margin: 20px;\n}\n", ""]);

// exports


/***/ }),
/* 111 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(112);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 112 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: black;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: black;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n#MalData > * {\n  white-space: nowrap;\n}\n#malp select,\n#malp input,\n#malp a,\n#malp #malTotalVol,\n#malp #malTotalCha {\n  display: inline-block !important;\n}\n#malp select option {\n  color: black !important;\n  background-color: white !important;\n}\n#malp {\n  background-color: #fff;\n  border-radius: 3px;\n  box-shadow: 0 0 30px 0 rgba(0, 0, 0, 0.1);\n  padding: 15px 20px 20px;\n}\n", ""]);

// exports


/***/ }),
/* 113 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(114);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 114 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: black;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: black;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n#malp a,\nselect,\ninput,\n#malTotal {\n  color: white !important;\n}\n", ""]);

// exports


/***/ }),
/* 115 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(116);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 116 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: black;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: black;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\nhtml #malp select option {\n  color: black !important;\n  background-color: white !important;\n}\ni.my-float.open-info-popup {\n  padding-right: 0px !important;\n}\n", ""]);

// exports


/***/ }),
/* 117 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(118);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 118 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: black;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: black;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n", ""]);

// exports


/***/ }),
/* 119 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(120);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 120 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: black;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: black;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n#malp {\n  margin-top: 10px;\n}\n#malp select option {\n  color: black !important;\n  background-color: white !important;\n}\n", ""]);

// exports


/***/ }),
/* 121 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(122);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 122 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: black;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: black;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n#malp {\n  font-family: arial, helvetica, sans-serif;\n  max-width: 90%;\n  margin-left: 10px;\n  color: white!important;\n}\n#malp a,\n#malp select,\n#malp input,\n#malp span {\n  color: white!important;\n}\n#malp select option {\n  color: white !important;\n  background-color: black !important;\n}\n#MalData > * {\n  white-space: nowrap;\n}\n#malp select,\n#malp input,\n#malp a,\n#malp #malTotalVol,\n#malp #malTotalCha {\n  display: inline-block !important;\n}\n.mal-sync-active .infoept {\n  background-color: #002966;\n}\n.mal-sync-active div {\n  color: white !important;\n}\n", ""]);

// exports


/***/ }),
/* 123 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(124);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 124 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: white;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: white;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n#malp {\n  margin-bottom: 10px;\n}\n#malp a:hover {\n  color: #e3474b;\n}\n#MalData > * {\n  white-space: nowrap;\n}\n#malp select,\n#malp input,\n#malp a,\n#malp #malTotalVol,\n#malp #malTotalCha {\n  display: inline-block !important;\n}\n", ""]);

// exports


/***/ }),
/* 125 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(126);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 126 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: black;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: black;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n#malp select option {\n  color: white !important;\n  background-color: black !important;\n}\n#malp a,\nselect,\ninput,\nspan {\n  color: white !important;\n}\n", ""]);

// exports


/***/ }),
/* 127 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(128);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 128 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: black;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: black;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n#malp span,\nselect,\ninput,\na {\n  color: white !important;\n}\n#malp select option {\n  color: white !important;\n  background-color: black !important;\n}\n#malp {\n  padding-left: 10px;\n  padding-right: 10px;\n}\n#malp .info {\n  background-color: transparent;\n  border: none;\n}\n", ""]);

// exports


/***/ }),
/* 129 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(130);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 130 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: black;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: black;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n#malp select option {\n  color: black !important;\n  background-color: white !important;\n}\n", ""]);

// exports


/***/ }),
/* 131 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(132);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 132 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: black;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: black;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n#flashinfo-div {\n  z-index: 100 !important;\n}\n#malp #malVolumes,\n#malp #malEpisodes,\n#malp span {\n  float: none;\n  display: inline-block;\n  border-radius: 0;\n  margin-top: 0;\n}\n#malp select option {\n  color: black !important;\n  background-color: white !important;\n}\n", ""]);

// exports


/***/ }),
/* 133 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(134);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 134 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: black;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: black;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n#malp select option {\n  color: black !important;\n  background-color: white !important;\n}\n", ""]);

// exports


/***/ }),
/* 135 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(136);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 136 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: black;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: black;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n", ""]);

// exports


/***/ }),
/* 137 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(138);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 138 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: black;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: black;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n#malp select option {\n  color: white !important;\n  background-color: black !important;\n}\n#malp span,\nselect,\ninput,\na {\n  color: white !important;\n}\n", ""]);

// exports


/***/ }),
/* 139 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(140);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 140 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: black;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: black;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n#malp select option {\n  color: black !important;\n  background-color: white !important;\n}\n", ""]);

// exports


/***/ }),
/* 141 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(142);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 142 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: #f62ed3;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: #f62ed3;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n", ""]);

// exports


/***/ }),
/* 143 */
/***/ (function(module, exports, __webpack_require__) {


        var result = __webpack_require__(144);

        if (typeof result === "string") {
            module.exports = result;
        } else {
            module.exports = result.toString();
        }
    

/***/ }),
/* 144 */
/***/ (function(module, exports, __webpack_require__) {

exports = module.exports = __webpack_require__(2)(false);
// imports


// module
exports.push([module.i, "#malStatus,\n#malTotal,\n#malEpisodes,\n#malUserRating,\n#malRating,\n#malVolumes,\n#malTotalVol,\n#malTotalCha,\n#AddMal {\n  color: white;\n}\n.mal-sync-active {\n  background-color: #002966;\n}\n#malp select option {\n  background-color: #111111;\n}\n#malp #malStatus,\n#malp #malUserRating,\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  font-size: inherit;\n  font-family: inherit;\n  background: transparent;\n  border-width: 1px;\n  border-color: grey;\n  text-decoration: none;\n  outline: medium none;\n  border-width: 0px;\n  height: auto;\n  padding: 0;\n  margin: 0;\n  line-height: 1;\n}\n#malp #malEpisodes,\n#malp #malVolumes,\n#malp #malEpisodes {\n  text-align: center;\n  border-bottom-width: 1px;\n}\n#malp #malEpisodes:focus,\n#malp #malVolumes:focus,\n#malp #malEpisodes:focus {\n  border-color: white;\n}\n#malSyncProgress.ms-loading {\n  height: 4px;\n  width: 100%;\n  position: relative;\n  overflow: hidden;\n  background-color: #ddd;\n}\n#malSyncProgress.ms-loading:before {\n  display: block;\n  position: absolute;\n  content: \"\";\n  left: -200px;\n  width: 200px;\n  height: 4px;\n  background-color: #2980b9;\n  animation: loading 2s linear infinite;\n}\n@keyframes loading {\n  from {\n    left: -200px;\n    width: 30%;\n  }\n  50% {\n    width: 30%;\n  }\n  70% {\n    width: 70%;\n  }\n  80% {\n    left: 50%;\n  }\n  95% {\n    left: 120%;\n  }\n  to {\n    left: 100%;\n  }\n}\n#malSyncProgress.ms-done .ms-progress {\n  width: 100% !important;\n  background-color: #ff4081 !important;\n  transition: background-color 1s !important;\n}\n", ""]);

// exports


/***/ })
/******/ ]);
长期地址
遇到问题?请前往 GitHub 提 Issues,或加Q群1031348184

赞助商

Fishcpy

广告

Rainyun

注册一下就行

Rainyun

一年攒够 12 元