import LisioStyleSheetController from "../controllers/lisio-stylesheet-controller";
import LisioCSSProperties from "../enums/lisio-css-properties";
import LisioTextTreeWalker from "../walkers/lisio-text-tree-walker";
import LisioAdapter from "./lisio-adapter";

interface LisioCursors {
  auto: {
    big: string;
    very_big: string;
  };
  default: {
    big: string;
    very_big: string;
  };
  help: {
    big: string;
    very_big: string;
  };
  pause: {
    big: string;
    very_big: string;
  };
  play: {
    big: string;
    very_big: string;
  };
  pointer: {
    big: string;
    very_big: string;
  };
  text: {
    big: string;
    very_big: string;
  };
  vocal: {
    big: string;
    very_big: string;
  };
}

/**
 * Class representing a cursor adapter extending an adapter.\
 * It aims to represents the font style functionality of Lisio.\
 * A cursor adapter is basically a functionality of Lisio which will change the cursor of texts in the main page.\
 */
class LisioCursorAdapter extends LisioAdapter<string> {
  private _cursors: LisioCursors = {
    auto: {
      big:
        __BUILD_TARGET__ === "extension"
          ? "PHN2ZyB3aWR0aD0iMzQiIGhlaWdodD0iNTAiIHZpZXdCb3g9IjAgMCAzNCA1MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGQ9Ik0xOC4zIDI2LjNMMjcuNSA0NC43TDE5LjUgNDguNkwxMC4zIDMwLjJMMS4wOTk5OCAzOC45VjJMMzEgMjQuMUwxOC4zIDI2LjNaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiLz4NCjwvc3ZnPg0K"
          : "cursors/auto/auto-big.svg",
      very_big:
        __BUILD_TARGET__ === "extension"
          ? "PHN2ZyB3aWR0aD0iODEiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgODEgMTIwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KPHBhdGggZD0iTTQ0LjUyMDkgNjMuMTE5OEw2Ni41OTkgMTA3LjI3Nkw0Ny40MDExIDExNi42NDFMMjUuMzIzIDcyLjQ3OTJMMy4yMzk2MiA5My4zNTk0VjQuODAyMDhMNzUgNTcuODM4NUw0NC41MjA5IDYzLjExOThaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSI0LjgiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIvPg0KPC9zdmc+DQo="
          : "cursors/auto/auto-verybig.svg",
    },
    default: {
      big:
        __BUILD_TARGET__ === "extension"
          ? "PHN2ZyB3aWR0aD0iMzQiIGhlaWdodD0iNTAiIHZpZXdCb3g9IjAgMCAzNCA1MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGQ9Ik0xOC4zIDI2LjNMMjcuNSA0NC43TDE5LjUgNDguNkwxMC4zIDMwLjJMMS4wOTk5OCAzOC45VjJMMzEgMjQuMUwxOC4zIDI2LjNaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiLz4NCjwvc3ZnPg0K"
          : "cursors/default/default-big.svg",
      very_big:
        __BUILD_TARGET__ === "extension"
          ? "PHN2ZyB3aWR0aD0iODEiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgODEgMTIwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KPHBhdGggZD0iTTQ0LjUyMDkgNjMuMTE5OEw2Ni41OTkgMTA3LjI3Nkw0Ny40MDExIDExNi42NDFMMjUuMzIzIDcyLjQ3OTJMMy4yMzk2MiA5My4zNTk0VjQuODAyMDhMNzUgNTcuODM4NUw0NC41MjA5IDYzLjExOThaIiBmaWxsPSJ3aGl0ZSIgc3Ryb2tlPSJibGFjayIgc3Ryb2tlLXdpZHRoPSI0LjgiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIvPg0KPC9zdmc+DQo="
          : "cursors/default/default-verybig.svg",
    },
    pointer: {
      big:
        __BUILD_TARGET__ === "extension"
          ? "PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNjciIHZpZXdCb3g9IjAgMCA1MCA2NyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGQ9Ik0xMS43MzQ0IDI1LjA5MzhMMTEuNzQ0OCA2LjA5ODk2QzExLjc1IDMuMzg1NDIgMTMuODAyMSAxLjE4NzUgMTYuMzMzMyAxLjE4NzVDMTguODY5OCAxLjE4NzUgMjAuOTIxOSAzLjM5MDYzIDIwLjkyMTkgNi4xMDQxN1YyNC45MDFDMjEuMDA1MiAyMi4yNjU2IDIzLjAyNjEgMjAuMTU2MyAyNS41MDUyIDIwLjE1NjNIMjUuNjE0NkMyOC4xNDU4IDIwLjE1NjMgMzAuMTk3OSAyMi4zNTQyIDMwLjE5NzkgMjUuMDY3N1YyNi42NTFDMzAuMTk3OSAyMy45Mzc1IDMyLjI1NTIgMjEuNzM5NiAzNC43ODY1IDIxLjczOTZIMzQuNzk2OUMzNy4zMjgxIDIxLjczOTYgMzkuMzg1NCAyMy45Mzc1IDM5LjM4NTQgMjYuNjUxVjI5LjE0MDZDMzkuMzg1NCAyNi40MzIzIDQxLjQzNzUgMjQuMjI5MiA0My45Njg4IDI0LjIyOTJINDQuMDcyOUM0Ni41OTkgMjQuMjI5MiA0OC42NTExIDI2LjQyMTkgNDguNjYxNSAyOS4xMzAyQzQ4LjY3NzEgMzcuOTg5NiA0OC42NjY3IDM4Ljg1OTQgNDguNjU2MyA1Mi4wOTlDNDguNjQ1OCA1OS41MjYgNDMuMDIwOCA2NS41NDY5IDM2LjA4MzMgNjUuNTQ2OUgyMS4xODc1QzE2LjYzMDIgNjUuNTQ2OSAxMi40MjcxIDYyLjkwNjMgMTAuMjA4MyA1OC42NDA2TDIuNTc4MTQgMzguNzgxMkMxLjcxMzU1IDM2LjUyNiAyLjI5Njg5IDMzLjk3NCA0LjA1MjA5IDMyLjMxNzdMMTEuNzM0NCAyNS4wOTM4WiIgZmlsbD0id2hpdGUiLz4NCjxwYXRoIGQ9Ik00NC4wNzI5IDIzLjExNDZINDMuOTY4OEM0Mi41NzgxIDIzLjEwNDIgNDEuMjM5NiAyMy42MTk4IDQwLjIwODMgMjQuNTUyMUMzOS4zODU0IDIyLjIzOTYgMzcuMjcwOCAyMC41Njc3IDM0Ljc4NjUgMjAuNTY3N0MzMy4yNjA0IDIwLjU2NzcgMzEuODA3MyAyMS4xODc1IDMwLjc1IDIyLjI5MTdDMjkuNzkxNyAyMC4zMTc3IDI3Ljg0OSAxOC45NDc5IDI1LjYxNDYgMTguOTQ3OUgyNS41MDUyQzI0LjI4NjUgMTguOTQ3OSAyMy4xMDQyIDE5LjM1OTQgMjIuMTU2MyAyMC4xMTk4VjYuMTA0MTdDMjIuMTU2MyAyLjczOTU4IDE5LjU0MTcgMCAxNi4zNTQyIDBDMTMuMTcxOSAwIDEwLjU3MjkgMi43MzQzOCAxMC41Njc3IDYuMDk4OTZMMTAuNTUyMSAyNC41NzgxTDMuMjQ0OCAzMS40NTMxQzEuMTI1MDEgMzMuNDMyMyAwLjQyMTg4NyAzNi41MDUyIDEuNDY4NzYgMzkuMjA4M0w5LjA5ODk3IDU5LjA2NzdDOS4xMTQ2IDU5LjEwOTQgOS4xMzU0MyA1OS4xMTQ2IDkuMTU2MjYgNTkuMTUxMUMxMS41NzgxIDYzLjgwNzMgMTYuMTg3NSA2Ni42NjY3IDIxLjE4NzUgNjYuNjY2N0gzNi4wODMzQzQzLjY2MTUgNjYuNjY2NyA0OS44MzMzIDYwLjEzNTQgNDkuODQzOCA1Mi4wNjI1QzQ5Ljg0OSA0OC42NDA2IDQ5Ljg0OSA0Ni4wNjI1IDQ5Ljg1NDIgNDMuOTQyN0M0OS44NTk0IDM3LjkzMjMgNDkuODY0NiAzNS43MjQgNDkuODQ5IDI5LjE1MUM0OS44Mzg2IDI1Ljc5NjkgNDcuMjUgMjMuMTE0NiA0NC4wNzI5IDIzLjExNDZaTTQ3LjQ3NCA0My45NTgzQzQ3LjQ3NCA0Ni4wNzgxIDQ3LjQ2ODggNDguNjM1NCA0Ny40NjM2IDUyLjA2MjVDNDcuNDU4MyA1OC44MjI5IDQyLjM1NDIgNjQuMjg2NSAzNi4wODMzIDY0LjI4NjVIMjEuMTg3NUMxNy4wOTkgNjQuMjg2NSAxMy4zMTI1IDYxLjk0NzkgMTEuMjkxNyA1OC4xMTQ2TDMuNjg3NTEgMzguMzM4NUMyLjk4OTYgMzYuNTM2NSAzLjQ1ODM1IDM0LjQ5NDggNC44Njk4IDMzLjE3NzFMMTAuNTQxNyAyNy44NDM4TDEwLjUzNjUgMzcuMjI5MkMxMC41MzY1IDM3Ljg4NTQgMTEuMDY3NyAzOC40MjE5IDExLjcyNCAzOC40MjE5QzEyLjM4MDIgMzguNDIxOSAxMi45MTY3IDM3Ljg5MDYgMTIuOTE2NyAzNy4yMjkyTDEyLjkzNzUgNi4xMDQxN0MxMi45Mzc1IDQuMDUyMDggMTQuNDg0NCAyLjM4MDIxIDE2LjM1OTQgMi4zODAyMUMxOC4yMjkyIDIuMzgwMjEgMTkuNzc2MSA0LjA0Njg4IDE5Ljc3NjEgNi4xMDQxN1YyNC44OTA2QzE5Ljc3NjEgMjQuOTUzMSAxOS43NzYxIDI1LjAxMDQgMTkuNzc2MSAyNS4wNjc3QzE5Ljc3NjEgMjUuMDg4NSAxOS43NzYxIDI1LjEwOTQgMTkuNzc2MSAyNS4xMzAyVjMzLjE3NzFDMTkuNzc2MSAzMy44MzMzIDIwLjMwNzMgMzQuMzY0NiAyMC45Njg4IDM0LjM2NDZDMjEuNjI1IDM0LjM2NDYgMjIuMTU2MyAzMy44MzMzIDIyLjE1NjMgMzMuMTc3MVYyNC45MjcxQzIyLjE1NjMgMjIuOTE2NyAyMy42NjY3IDIxLjMyODEgMjUuNTA1MiAyMS4zMjgxSDI1LjYxNDZDMjcuNDg0NCAyMS4zMjgxIDI4Ljk5NDggMjMuMDE1NiAyOC45OTQ4IDI1LjA2NzdWMzIuNDExNUMyOC45OTQ4IDMzLjA2NzcgMjkuNTI2MSAzMy41OTkgMzAuMTgyMyAzMy41OTlDMzAuODM4NiAzMy41OTkgMzEuMzY5OCAzMy4wNjc3IDMxLjM2OTggMzIuNDExNVYyNi42NTFDMzEuMzY5OCAyNC41OTkgMzIuOTExNSAyMi45MjcxIDM0Ljc5NjkgMjIuOTI3MUMzNi42NjY3IDIyLjkyNzEgMzguMjA4MyAyNC41OTkgMzguMjA4MyAyNi42NTFWMzIuMDg4NUMzOC4yMDgzIDMyLjc0NDggMzguNzM5NiAzMy4yNzYgMzkuNDAxMSAzMy4yNzZDNDAuMDU3MyAzMy4yNzYgNDAuNTg4NiAzMi43NDQ4IDQwLjU4ODYgMzIuMDg4NVYyOS4xNDA2QzQwLjU4ODYgMjcuMDg4NSA0Mi4wOTkgMjUuNDg5NiA0My45Njg4IDI1LjQ4OTZINDQuMDcyOUM0NS45NDI3IDI1LjQ4OTYgNDcuNDYzNiAyNy4xMTk4IDQ3LjQ2ODggMjkuMTY2N0M0Ny40ODQ0IDM1LjczNDQgNDcuNDg0NCAzNy45NDc5IDQ3LjQ3NCA0My45NTgzWiIgZmlsbD0iYmxhY2siLz4NCjwvc3ZnPg0K"
          : "cursors/pointer/pointer-big.svg",
      very_big:
        __BUILD_TARGET__ === "extension"
          ? "PHN2ZyB3aWR0aD0iODgiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgODggMTIwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KPHBhdGggZD0iTTE5LjIzOTYgNDQuODEyNUwxOS4yNjA1IDEwLjg5MDZDMTkuMjcwOSA2LjA0Njg4IDIyLjkzMjQgMi4xMTk3OSAyNy40NTMyIDIuMTE5NzlDMzEuOTc5MiAyLjExOTc5IDM1LjY0NTkgNi4wNTcyOSAzNS42NDU5IDEwLjg5NThWNDQuNDYzNUMzNS43OTY5IDM5Ljc2MDQgMzkuNDAxMSAzNS45OTQ4IDQzLjgzMzQgMzUuOTk0OEg0NC4wMjYxQzQ4LjU0NjkgMzUuOTk0OCA1Mi4yMTM2IDM5LjkxNjcgNTIuMjEzNiA0NC43NjU2VjQ3LjU5MzhDNTIuMjEzNiA0Mi43NDQ4IDU1Ljg4NTUgMzguODIyOSA2MC40MDYzIDM4LjgyMjlINjAuNDI3MkM2NC45NDI4IDM4LjgyMjkgNjguNjE5OSA0Mi43NDQ4IDY4LjYxOTkgNDcuNTkzOFY1Mi4wMzY1QzY4LjYxOTkgNDcuMTk3OSA3Mi4yODEzIDQzLjI2NTYgNzYuODAyMiA0My4yNjU2SDc2Ljk4NDRDODEuNTAwMSA0My4yNjU2IDg1LjE2MTUgNDcuMTc3MSA4NS4xNzcyIDUyLjAxNTZDODUuMjA4NCA2Ny44Mzg1IDg1LjE4NzYgNjkuMzk1OCA4NS4xNzE5IDkzLjAzMTJDODUuMTUxMSAxMDYuMjk3IDc1LjEwOTQgMTE3LjA0NyA2Mi43MjQgMTE3LjA0N0gzNi4xMTk5QzI3Ljk4NDQgMTE3LjA0NyAyMC40NzkyIDExMi4zMzMgMTYuNTE1NyAxMDQuNzE0TDIuODkwNjkgNjkuMjU1MkMxLjM0MzgxIDY1LjIyOTIgMi4zOTA2OSA2MC42NjY3IDUuNTIwOSA1Ny43MTM1TDE5LjIzOTYgNDQuODEyNVoiIGZpbGw9IndoaXRlIi8+DQo8cGF0aCBkPSJNNzYuOTg0NCA0MS4yNzZINzYuODAyMkM3NC4zMTc4IDQxLjI2MDQgNzEuOTI3MiA0Mi4xNzcxIDcwLjA4MzQgNDMuODQzOEM2OC42MTk5IDM5LjcxMzUgNjQuODM4NiAzNi43MjkyIDYwLjQwNjMgMzYuNzI5MkM1Ny42NzcyIDM2LjcyOTIgNTUuMDgzNCAzNy44MzMzIDUzLjE5OCAzOS44MDczQzUxLjQ4NDQgMzYuMjgxMyA0OC4wMTU3IDMzLjgzMzMgNDQuMDI2MSAzMy44MzMzSDQzLjgzMzRDNDEuNjU2MyAzMy44MzMzIDM5LjU0MTcgMzQuNTcyOSAzNy44NDkgMzUuOTI3MVYxMC44OTU4QzM3Ljg0OSA0Ljg5NTgzIDMzLjE4MjQgMCAyNy40ODk2IDBDMjEuODAyMSAwIDE3LjE2NjcgNC44ODU0MiAxNy4xNTYzIDEwLjg5MDZMMTcuMTI1MSA0My44OTA2TDQuMDgzNCA1Ni4xNjY3QzAuMjkxNzMxIDU5LjY5NzkgLTAuOTYzNDc3IDY1LjE4NzUgMC45MDYzMTUgNzAuMDE1NkwxNC41MzY1IDEwNS40NzlDMTQuNTYyNiAxMDUuNTUyIDE0LjU5OSAxMDUuNTYzIDE0LjYzNTUgMTA1LjYzQzE4Ljk1ODQgMTEzLjk0MyAyNy4xOTI4IDExOS4wNDcgMzYuMTE5OSAxMTkuMDQ3SDYyLjcyNEM3Ni4yNTUzIDExOS4wNDcgODcuMjc2MSAxMDcuMzg1IDg3LjI5MTcgOTIuOTY4OEM4Ny4zMDIxIDg2Ljg1OTQgODcuMzAyMSA4Mi4yNTUyIDg3LjMxMjYgNzguNDY4OEM4Ny4zMjMgNjcuNzM0NCA4Ny4zMzM0IDYzLjc5MTcgODcuMzAyMSA1Mi4wNTIxQzg3LjI4NjUgNDYuMDYyNSA4Mi42NjE1IDQxLjI3NiA3Ni45ODQ0IDQxLjI3NlpNODMuMDYyNiA3OC40OTQ4QzgzLjA2MjYgODIuMjg2NSA4My4wNTIxIDg2Ljg0OSA4My4wNDE3IDkyLjk2ODhDODMuMDMxMyAxMDUuMDQyIDczLjkyMTkgMTE0Ljc5NyA2Mi43MjQgMTE0Ljc5N0gzNi4xMTk5QzI4LjgyMyAxMTQuNzk3IDIyLjA1NzQgMTEwLjYyIDE4LjQ0OCAxMDMuNzc2TDQuODY5ODYgNjguNDU4M0MzLjYyNTA2IDY1LjI0NDggNC40NTg0IDYxLjU5OSA2Ljk4NDQ0IDU5LjI0NDhMMTcuMTA5NCA0OS43MTg4TDE3LjEwNDIgNjYuNDg0NEMxNy4xMDQyIDY3LjY1NjMgMTguMDUyMSA2OC42MDk0IDE5LjIyNCA2OC42MDk0QzIwLjM5NTkgNjguNjA5NCAyMS4zNDkgNjcuNjY2NyAyMS4zNDkgNjYuNDg0NEwyMS4zODU1IDEwLjg5NThDMjEuMzg1NSA3LjIzOTU4IDI0LjE0NTkgNC4yNSAyNy41MDAxIDQuMjVDMzAuODM4NiA0LjI1IDMzLjU5OSA3LjIyOTE3IDMzLjU5OSAxMC44OTU4VjQ0LjQ0NzlDMzMuNTk5IDQ0LjU1NzMgMzMuNTk5IDQ0LjY2MTUgMzMuNTk5IDQ0Ljc2NTZDMzMuNTk5IDQ0LjgwMjEgMzMuNTk5IDQ0LjgzMzMgMzMuNTk5IDQ0Ljg3NVY1OS4yNDQ4QzMzLjU5OSA2MC40MTY3IDM0LjU1MjEgNjEuMzY0NiAzNS43MjkyIDYxLjM2NDZDMzYuOTAxMSA2MS4zNjQ2IDM3Ljg0OSA2MC40MTY3IDM3Ljg0OSA1OS4yNDQ4VjQ0LjUxMDRDMzcuODQ5IDQwLjkyMTkgNDAuNTQ2OSAzOC4wODMzIDQzLjgzMzQgMzguMDgzM0g0NC4wMjYxQzQ3LjM2NDcgMzguMDgzMyA1MC4wNjI2IDQxLjA5OSA1MC4wNjI2IDQ0Ljc2NTZWNTcuODc1QzUwLjA2MjYgNTkuMDQ2OSA1MS4wMTA1IDYwIDUyLjE4MjQgNjBDNTMuMzU0MiA2MCA1NC4zMDIyIDU5LjA0NjkgNTQuMzAyMiA1Ny44NzVWNDcuNTkzOEM1NC4zMDIyIDQzLjkyNzEgNTcuMDUyMiA0MC45NDI3IDYwLjQyNzIgNDAuOTQyN0M2My43NjA1IDQwLjk0MjcgNjYuNTE1NyA0My45MjcxIDY2LjUxNTcgNDcuNTkzOFY1Ny4zMDIxQzY2LjUxNTcgNTguNDc0IDY3LjQ2MzYgNTkuNDIxOSA2OC42NDU5IDU5LjQyMTlDNjkuODE3OCA1OS40MjE5IDcwLjc2NTcgNTguNDc0IDcwLjc2NTcgNTcuMzAyMVY1Mi4wMzY1QzcwLjc2NTcgNDguMzY5OCA3My40NTg0IDQ1LjUxNTYgNzYuODAyMiA0NS41MTU2SDc2Ljk4NDRDODAuMzI4MiA0NS41MTU2IDgzLjA0MTcgNDguNDI3MSA4My4wNTIyIDUyLjA4MzNDODMuMDc4MiA2My44MTI1IDgzLjA3ODIgNjcuNzYwNCA4My4wNjI2IDc4LjQ5NDhaIiBmaWxsPSJibGFjayIvPg0KPC9zdmc+DQo="
          : "cursors/pointer/pointer-verybig.svg",
    },
    text: {
      big:
        __BUILD_TARGET__ === "extension"
          ? "PHN2ZyB3aWR0aD0iMjEiIGhlaWdodD0iNjciIHZpZXdCb3g9IjAgMCAyMSA2NyIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGQ9Ik0xOS4wMzEyIDYzLjc2NTZIMTYuMTMwMkMxMy43MjkyIDYzLjc2NTYgMTEuNzgxMiA2MS44MjI5IDExLjc4MTIgNTkuNDIxOVYzNC43ODEzSDE2LjEzMDJDMTYuOTMyMyAzNC43ODEzIDE3LjU3ODEgMzQuMTM1NCAxNy41NzgxIDMzLjMzMzNDMTcuNTc4MSAzMi41MzEzIDE2LjkzMjMgMzEuODg1NCAxNi4xMzAyIDMxLjg4NTRIMTEuNzgxMlY3LjI0NDc5QzExLjc4MTIgNC44NDM3NSAxMy43MjkyIDIuOTAxMDQgMTYuMTMwMiAyLjkwMTA0SDE5LjAzMTJDMTkuODI4MSAyLjkwMTA0IDIwLjQ3OTIgMi4yNSAyMC40NzkyIDEuNDQ3OTJDMjAuNDc5MiAwLjY1MTA0MSAxOS44MjgxIDAgMTkuMDMxMiAwSDE2LjEzMDJDMTMuODM4NSAwLjAwNTIwODMzIDExLjY4NzUgMS4wOTg5NiAxMC4zMzMzIDIuOTQyNzFDOC45NzkxNyAxLjA5ODk2IDYuODI4MTMgMC4wMDUyMDgzMyA0LjUzNjQ2IDBIMS42MzU0MkMwLjgzODU0MiAwIDAuMTg3NSAwLjY1MTA0MSAwLjE4NzUgMS40NDc5MkMwLjE4NzUgMi4yNSAwLjgzODU0MiAyLjkwMTA0IDEuNjM1NDIgMi45MDEwNEg0LjUzNjQ2QzYuOTM3NSAyLjkwMTA0IDguODg1NDIgNC44NDM3NSA4Ljg4NTQyIDcuMjQ0NzlWMzEuODg1NEg0LjUzNjQ2QzMuNzM0MzcgMzEuODg1NCAzLjA4ODU0IDMyLjUzMTMgMy4wODg1NCAzMy4zMzMzQzMuMDg4NTQgMzQuMTM1NCAzLjczNDM3IDM0Ljc4MTMgNC41MzY0NiAzNC43ODEzSDguODg1NDJWNTkuNDIxOUM4Ljg4NTQyIDYxLjgyMjkgNi45Mzc1IDYzLjc2NTYgNC41MzY0NiA2My43NjU2SDEuNjM1NDJDMC44Mzg1NDIgNjMuNzY1NiAwLjE4NzUgNjQuNDE2NyAwLjE4NzUgNjUuMjE4OEMwLjE4NzUgNjYuMDE1NiAwLjgzODU0MiA2Ni42NjY3IDEuNjM1NDIgNjYuNjY2N0g0LjUzNjQ2QzYuODI4MTMgNjYuNjYxNSA4Ljk3OTE3IDY1LjU2NzcgMTAuMzMzMyA2My43MjRDMTEuNjg3NSA2NS41Njc3IDEzLjgzODUgNjYuNjYxNSAxNi4xMzAyIDY2LjY2NjdIMTkuMDMxMkMxOS44MjgxIDY2LjY2NjcgMjAuNDc5MiA2Ni4wMTU2IDIwLjQ3OTIgNjUuMjE4OEMyMC40NzkyIDY0LjQxNjcgMTkuODI4MSA2My43NjU2IDE5LjAzMTIgNjMuNzY1NloiIGZpbGw9ImJsYWNrIi8+DQo8cGF0aCBkPSJNNC41MzY0NiA2Ni42NjY3SDEuNjM1NDJDMC44Mzg1NDIgNjYuNjY2NyAwLjE4NzUgNjYuMDE1NiAwLjE4NzUgNjUuMjE4OEMwLjE4NzUgNjQuNDE2NyAwLjgzODU0MiA2My43NjU2IDEuNjM1NDIgNjMuNzY1Nkg0LjUzNjQ2QzYuOTM3NSA2My43NjU2IDguODg1NDIgNjEuODIyOSA4Ljg4NTQyIDU5LjQyMTlWNy4yNDQ3OUM4Ljg4NTQyIDQuODQzNzUgNi45Mzc1IDIuOTAxMDQgNC41MzY0NiAyLjkwMTA0SDEuNjM1NDJDMC44Mzg1NDIgMi45MDEwNCAwLjE4NzUgMi4yNSAwLjE4NzUgMS40NDc5MkMwLjE4NzUgMC42NTEwNDEgMC44Mzg1NDIgMCAxLjYzNTQyIDBINC41MzY0NkM4LjUzNjQ2IDAgMTEuNzgxMiAzLjI0NDc5IDExLjc4MTIgNy4yNDQ3OVY1OS40MjE5QzExLjc4MTIgNjMuNDIxOSA4LjUzNjQ2IDY2LjY2NjcgNC41MzY0NiA2Ni42NjY3WiIgZmlsbD0iYmxhY2siLz4NCjxwYXRoIGQ9Ik0xOS4wMzEyIDY2LjY2NjdIMTYuMTMwMkMxMi4xMzAyIDY2LjY2NjcgOC44ODU0MiA2My40MjE5IDguODg1NDIgNTkuNDIxOVY3LjI0NDc5QzguODg1NDIgMy4yNDQ3OSAxMi4xMzAyIDAgMTYuMTMwMiAwSDE5LjAzMTJDMTkuODI4MSAwIDIwLjQ3OTIgMC42NTEwNDEgMjAuNDc5MiAxLjQ0NzkyQzIwLjQ3OTIgMi4yNSAxOS44MjgxIDIuOTAxMDQgMTkuMDMxMiAyLjkwMTA0SDE2LjEzMDJDMTMuNzI5MiAyLjkwMTA0IDExLjc4MTIgNC44NDM3NSAxMS43ODEyIDcuMjQ0NzlWNTkuNDIxOUMxMS43ODEyIDYxLjgyMjkgMTMuNzI5MiA2My43NjU2IDE2LjEzMDIgNjMuNzY1NkgxOS4wMzEyQzE5LjgyODEgNjMuNzY1NiAyMC40NzkyIDY0LjQxNjcgMjAuNDc5MiA2NS4yMTg4QzIwLjQ3OTIgNjYuMDE1NiAxOS44MjgxIDY2LjY2NjcgMTkuMDMxMiA2Ni42NjY3WiIgZmlsbD0iYmxhY2siLz4NCjxwYXRoIGQ9Ik0xNi4xMzAyIDM0Ljc4MTNINC41MzY0NkMzLjczNDM3IDM0Ljc4MTMgMy4wODg1NCAzNC4xMzU0IDMuMDg4NTQgMzMuMzMzM0MzLjA4ODU0IDMyLjUzMTMgMy43MzQzNyAzMS44ODU0IDQuNTM2NDYgMzEuODg1NEgxNi4xMzAyQzE2LjkzMjMgMzEuODg1NCAxNy41NzgxIDMyLjUzMTMgMTcuNTc4MSAzMy4zMzMzQzE3LjU3ODEgMzQuMTM1NCAxNi45MzIzIDM0Ljc4MTMgMTYuMTMwMiAzNC43ODEzWiIgZmlsbD0iYmxhY2siLz4NCjwvc3ZnPg0K"
          : "cursors/text/text-big.svg",
      very_big:
        __BUILD_TARGET__ === "extension"
          ? "PHN2ZyB3aWR0aD0iMzgiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMzggMTIwIiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KPHBhdGggZD0iTTM0LjY1MTEgMTE0Ljc4MUgyOS40MzIzQzI1LjExNDYgMTE0Ljc4MSAyMS42MDk0IDExMS4yNzYgMjEuNjA5NCAxMDYuOTUzVjYyLjYwOTRIMjkuNDMyM0MzMC44NzUgNjIuNjA5NCAzMi4wNDY5IDYxLjQzNzUgMzIuMDQ2OSA2MEMzMi4wNDY5IDU4LjU2MjUgMzAuODc1IDU3LjM5MDYgMjkuNDMyMyA1Ny4zOTA2SDIxLjYwOTRWMTMuMDQ2OUMyMS42MDk0IDguNzIzOTYgMjUuMTE0NiA1LjIxODc1IDI5LjQzMjMgNS4yMTg3NUgzNC42NTExQzM2LjA4ODYgNS4yMTg3NSAzNy4yNjA1IDQuMDUyMDggMzcuMjYwNSAyLjYwNDE3QzM3LjI2MDUgMS4xNjY2NyAzNi4wODg2IDAgMzQuNjUxMSAwSDI5LjQzMjNDMjUuMzEyNSAwLjAxMDQxNjcgMjEuNDQyNyAxLjk3OTE3IDE5IDUuMjk2ODhDMTYuNTU3MyAxLjk3OTE3IDEyLjY4NzUgMC4wMTA0MTY3IDguNTY3NzUgMEgzLjM0OUMxLjkxMTUgMCAwLjczOTYyNCAxLjE2NjY3IDAuNzM5NjI0IDIuNjA5MzdDMC43Mzk2MjQgNC4wNTIwOCAxLjkxMTUgNS4yMTg3NSAzLjM0OSA1LjIxODc1SDguNTY3NzVDMTIuODg1NSA1LjIxODc1IDE2LjM5MDcgOC43MjM5NiAxNi4zOTA3IDEzLjA0NjlWNTcuMzkwNkg4LjU2Nzc1QzcuMTI1MDQgNTcuMzkwNiA1Ljk1MzE3IDU4LjU2MjUgNS45NTMxNyA2MEM1Ljk1MzE3IDYxLjQzNzUgNy4xMjUwNCA2Mi42MDk0IDguNTY3NzUgNjIuNjA5NEgxNi4zOTA3VjEwNi45NTNDMTYuMzkwNyAxMTEuMjc2IDEyLjg4NTUgMTE0Ljc4MSA4LjU2Nzc1IDExNC43ODFIMy4zNDlDMS45MTE1IDExNC43ODEgMC43Mzk2MjQgMTE1Ljk0OCAwLjczOTYyNCAxMTcuMzk2QzAuNzM5NjI0IDExOC44MzMgMS45MTE1IDEyMCAzLjM0OSAxMjBIOC41Njc3NUMxMi42ODc1IDExOS45OSAxNi41NTczIDExOC4wMjYgMTkgMTE0LjcwM0MyMS40NDI3IDExOC4wMjYgMjUuMzEyNSAxMTkuOTkgMjkuNDMyMyAxMjBIMzQuNjUxMUMzNi4wOTM4IDEyMCAzNy4yNjA1IDExOC44MzMgMzcuMjYwNSAxMTcuMzk2QzM3LjI2MDUgMTE1Ljk0OCAzNi4wODg2IDExNC43ODEgMzQuNjUxMSAxMTQuNzgxWiIgZmlsbD0iYmxhY2siLz4NCjxwYXRoIGQ9Ik04LjU2Nzc1IDEyMEgzLjM0OUMxLjkxMTUgMTIwIDAuNzM5NjI0IDExOC44MzMgMC43Mzk2MjQgMTE3LjM5MUMwLjczOTYyNCAxMTUuOTQ4IDEuOTExNSAxMTQuNzgxIDMuMzQ5IDExNC43ODFIOC41Njc3NUMxMi44ODU1IDExNC43ODEgMTYuMzkwNyAxMTEuMjc2IDE2LjM5MDcgMTA2Ljk1M1YxMy4wNDY5QzE2LjM5MDcgOC43MjM5NiAxMi44ODU1IDUuMjE4NzUgOC41Njc3NSA1LjIxODc1SDMuMzQ5QzEuOTExNSA1LjIxODc1IDAuNzM5NjI0IDQuMDUyMDggMC43Mzk2MjQgMi42MDQxN0MwLjczOTYyNCAxLjE2NjY3IDEuOTA2MjkgMCAzLjM0OSAwSDguNTY3NzVDMTUuNzcwOSAwIDIxLjYwOTQgNS44Mzg1NCAyMS42MDk0IDEzLjA0NjlWMTA2Ljk1M0MyMS42MDk0IDExNC4xNjEgMTUuNzcwOSAxMjAgOC41Njc3NSAxMjBaIiBmaWxsPSJibGFjayIvPg0KPHBhdGggZD0iTTM0LjY1MTEgMTIwSDI5LjQzMjNDMjIuMjI5MiAxMjAgMTYuMzkwNyAxMTQuMTYxIDE2LjM5MDcgMTA2Ljk1M1YxMy4wNDY5QzE2LjM5MDcgNS44Mzg1NCAyMi4yMjkyIDAgMjkuNDMyMyAwSDM0LjY1MTFDMzYuMDg4NiAwIDM3LjI2MDUgMS4xNjY2NyAzNy4yNjA1IDIuNjA5MzdDMzcuMjYwNSA0LjA1MjA4IDM2LjA4ODYgNS4yMTg3NSAzNC42NTExIDUuMjE4NzVIMjkuNDMyM0MyNS4xMTQ2IDUuMjE4NzUgMjEuNjA5NCA4LjcyMzk2IDIxLjYwOTQgMTMuMDQ2OVYxMDYuOTUzQzIxLjYwOTQgMTExLjI3NiAyNS4xMTQ2IDExNC43ODEgMjkuNDMyMyAxMTQuNzgxSDM0LjY1MTFDMzYuMDg4NiAxMTQuNzgxIDM3LjI2MDUgMTE1Ljk0OCAzNy4yNjA1IDExNy4zOTZDMzcuMjYwNSAxMTguODMzIDM2LjA4ODYgMTIwIDM0LjY1MTEgMTIwWiIgZmlsbD0iYmxhY2siLz4NCjxwYXRoIGQ9Ik0yOS40MzIzIDYyLjYwOTRIOC41Njc3NUM3LjEyNTA0IDYyLjYwOTQgNS45NTMxNyA2MS40Mzc1IDUuOTUzMTcgNjBDNS45NTMxNyA1OC41NjI1IDcuMTI1MDQgNTcuMzkwNiA4LjU2Nzc1IDU3LjM5MDZIMjkuNDMyM0MzMC44NzUgNTcuMzkwNiAzMi4wNDY5IDU4LjU2MjUgMzIuMDQ2OSA2MEMzMi4wNDY5IDYxLjQzNzUgMzAuODc1IDYyLjYwOTQgMjkuNDMyMyA2Mi42MDk0WiIgZmlsbD0iYmxhY2siLz4NCjwvc3ZnPg0K"
          : "cursors/text/text-verybig.svg",
    },
    help: {
      big:
        __BUILD_TARGET__ === "extension"
          ? "PHN2ZyB3aWR0aD0iNjciIGhlaWdodD0iNjAiIHZpZXdCb3g9IjAgMCA2NyA2MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGQ9Ik0zOCAxOC42NTFDMzguNTY3NyAxNS4wMTU2IDM5Ljc2NTYgMTIuMzI4MSA0MS41NDY5IDEwLjY1NjNDNDMuMzM4NSA4Ljk4NDM4IDQ1LjUxNTYgOC4xNzE4OCA0OC4yMTM1IDguMTcxODhDNTEgOC4xNzE4OCA1My4yODY1IDkuMDcyOTIgNTUuMjAzMSAxMC45MzIzQzU3LjEwOTQgMTIuNzgxMyA1OC4wMzY1IDE0Ljg1OTQgNTguMDM2NSAxNy4yODEzQzU4LjAzNjUgMTguNTgzMyA1Ny43MTg4IDE5LjgwMjEgNTcuMDkzOCAyMC45MDFDNTYuNDM3NSAyMi4wNDE3IDU0Ljk1ODMgMjMuNjQwNiA1Mi42ODc1IDI1LjY0MDZDNTAuMzIyOSAyNy43MjkyIDQ4LjY1MSAyOS4zNDkgNDcuNzI0IDMwLjQ1ODNDNDYuNDM3NSAzMi4wMDUyIDQ1LjQ4OTYgMzMuNTY3NyA0NC45MTE1IDM1LjA5MzhDNDQuMTI1IDM3LjExNDYgNDMuNzI0IDM5LjUzNjUgNDMuNzI0IDQyLjI4NjVDNDMuNzI0IDQyLjc1NTIgNDMuNzM5NiA0My40NDI3IDQzLjc2NTYgNDQuMzQzOEw0My43ODY1IDQ1LjE1MUg1MS45MjcxTDUxLjk0MjcgNDQuMzM4NUM1MS45ODk2IDQxLjcwODMgNTIuMTcxOSAzOS43OTY5IDUyLjQ3OTIgMzguNjYxNUM1Mi43NzYgMzcuNTYyNSA1My4yMzk2IDM2LjU3ODEgNTMuODU0MiAzNS43MzQ0QzU0LjQ5NDggMzQuODU5NCA1NS45MTE1IDMzLjQ0MjcgNTguMDYyNSAzMS41MzY1QzYxLjQ1MzEgMjguNTM2NSA2My42ODIzIDI2LjAzNjUgNjQuODY0NiAyMy45MDFDNjYuMDYyNSAyMS43NSA2Ni42NjY3IDE5LjM3NSA2Ni42NjY3IDE2LjgyODFDNjYuNjY2NyAxMi40Mzc1IDY0Ljk1MzEgOC42NDU4MyA2MS41NzI5IDUuNTU3MjlDNTguMjE4OCAyLjQ4OTU4IDUzLjY4MjMgMC45Mzc1IDQ4LjA5OSAwLjkzNzVDNDIuODE3NyAwLjkzNzUgMzguNDk0OCAyLjM4NTQyIDM1LjI1IDUuMjVDMzIuMDEwNCA4LjEwOTM3IDMwLjAzNjUgMTIuMjY1NiAyOS4zODU0IDE3LjU5MzhMMjkuMjgxMyAxOC40MjE5TDM3Ljg3NSAxOS40NDc5TDM4IDE4LjY1MVpNNDQuMDUyMSA0OS43MzQ0VjU3LjcxMzVINTIuMDMxM1Y0OS43MzQ0SDQ0LjA1MjFaTTMzLjUzMTMgMzYuMjY1NkwwIDIuMTA0MTdWNDkuOTc0TDkuNzUgNDEuNTA1MkwxNy4yMDMxIDU5LjcyOTJMMjguMDkzOCA1NS4yODEyTDIwLjY0MDYgMzcuMDUyMUwzMy41MzEzIDM2LjI2NTZaIiBmaWxsPSJibGFjayIvPg0KPC9zdmc+DQo="
          : "cursors/help/help-big.svg",
      very_big:
        __BUILD_TARGET__ === "extension"
          ? "PHN2ZyB3aWR0aD0iMTIwIiBoZWlnaHQ9IjEwNiIgdmlld0JveD0iMCAwIDEyMCAxMDYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+DQo8cGF0aCBkPSJNNjguMTQ1OCAzMS44Mzg1QzY5LjE3MTkgMjUuMzE3NyA3MS4zMTI1IDIwLjQ5NDggNzQuNTIwOCAxNy40OTQ4Qzc3LjcyNCAxNC40OTQ4IDgxLjYzNTQgMTMuMDM2NCA4Ni40NjM1IDEzLjAzNjRDOTEuNDYzNSAxMy4wMzY0IDk1LjU2NzcgMTQuNjU2MiA5OSAxNy45ODk1QzEwMi40MjIgMjEuMzAyIDEwNC4wODkgMjUuMDMxMiAxMDQuMDg5IDI5LjM3NUMxMDQuMDg5IDMxLjcxMzUgMTAzLjUxNiAzMy44OTU4IDEwMi4zOTEgMzUuODY0NUMxMDEuMjE5IDM3LjkxNjYgOTguNTYyNSA0MC43NzYgOTQuNDk0OCA0NC4zNjQ1QzkwLjI1IDQ4LjEwOTMgODcuMjYwNCA1MS4wMTA0IDg1LjU4MzMgNTMuMDA1MkM4My4yODEzIDU1Ljc4MTIgODEuNTg4NSA1OC41ODMzIDgwLjU1MjEgNjEuMzIyOUM3OS4xMzU0IDY0Ljk0MjcgNzguNDIxOSA2OS4yODY0IDc4LjQyMTkgNzQuMjIzOUM3OC40MjE5IDc1LjA1NzMgNzguNDQ3OSA3Ni4zMDIgNzguNDk0OCA3Ny45MTE0TDc4LjUyNiA3OS4zNjQ1SDkzLjEzMDJMOTMuMTYxNSA3Ny44OTU4QzkzLjIzOTYgNzMuMTgyMyA5My41Njc3IDY5Ljc2MDQgOTQuMTE0NiA2Ny43MjM5Qzk0LjY1NjMgNjUuNzUgOTUuNDg0NCA2My45ODQzIDk2LjU4ODUgNjIuNDY4N0M5Ny43MzQ0IDYwLjg5NTggMTAwLjI3NiA1OC4zNjQ1IDEwNC4xMzUgNTQuOTM3NUMxMTAuMjE5IDQ5LjU1NzMgMTE0LjIwOCA0NS4wNzgxIDExNi4zMzkgNDEuMjM5NUMxMTguNDc5IDM3LjM4NTQgMTE5LjU2OCAzMy4xMjUgMTE5LjU2OCAyOC41Njc3QzExOS41NjggMjAuNjkyNyAxMTYuNDkgMTMuODg1NCAxMTAuNDMyIDguMzU0MTNDMTA0LjQxNyAyLjg0ODkyIDk2LjI4NjUgMC4wNTcyNTEgODYuMjY1NiAwLjA1NzI1MUM3Ni43OTE3IDAuMDU3MjUxIDY5LjAzNjUgMi42NjE0MiA2My4yMjQgNy43OTE2M0M1Ny40MDYzIDEyLjkzMjMgNTMuODY0NiAyMC4zODAyIDUyLjY5NzkgMjkuOTM3NUw1Mi41MTU2IDMxLjQyN0w2Ny45MjE5IDMzLjI1NTJMNjguMTQ1OCAzMS44Mzg1Wk03OS4wMTA0IDg3LjU3ODFWMTAxLjg4NUg5My4zMTc3Vjg3LjU3ODFINzkuMDEwNFpNNjAuMTQwNiA2My40MjdMMCAyLjE1NjIxTDAuMDA1MjA4MzMgODguMDA1MkwxNy40ODQ0IDcyLjgyMjlMMzAuODQ5IDEwNS41MUw1MC4zODU0IDk3LjUyMDhMMzcuMDI2IDY0LjgzODVMNjAuMTQwNiA2My40MjdaIiBmaWxsPSJibGFjayIvPg0KPC9zdmc+DQo="
          : "cursors/help/help-verybig.svg",
    },
    play: {
      big:
        __BUILD_TARGET__ === "extension"
          ? "PHN2ZyB3aWR0aD0iODQiIGhlaWdodD0iNDQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMuMjUgMUMyLjU2IDEgMiAxLjU2IDIgMi4yNWMwIC4yOSAxLjEzIDQuMiAxLjEzIDguMjUgMCA1LjU5LS44MyAxMS42Ny0uODMgMTEuNjdsOS41OC05LjM4IDkuNTgtOS4zN1MxNi4zIDMuNyAxMi4zIDNjLTMuMDQtLjUzLTguNzUtMi05LjA1LTJaIiBmaWxsPSIjZmZmIiBzdHJva2U9IiMwMTVlNjYiIHN0cm9rZS13aWR0aD0iMiIvPjxwYXRoIGQ9Ik0yLjMgMjIuMDRjMC0xMC4zNiA4LjQtMTguNzUgMTguNzUtMTguNzVoNDIuMkM3My42MSAzLjI5IDgyIDExLjY5IDgyIDIyLjA0di43MkM4MiAzMy4xIDczLjYgNDEuNSA2My4yNSA0MS41aC00Mi4yQTE4Ljc1IDE4Ljc1IDAgMCAxIDIuMyAyMi43NnYtLjcyWiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik03NC44MyAyMi4zN2ExMy43NSAxMy43NSAwIDEgMS0yNy41IDAgMTMuNzUgMTMuNzUgMCAwIDEgMjcuNSAwWiIgZmlsbD0iIzAxNWU2NiIvPjxwYXRoIGQ9Ik02OC45MiAyMS41YS44OS44OSAwIDAgMSAwIDEuNWwtMTEuMzQgN2EuODkuODkgMCAwIDEtMS4zNi0uNzV2LTE0YzAtLjcuNzctMS4xMiAxLjM2LS43NmwxMS4zNCA3WiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0yNi45MiAyNC42M2E4IDggMCAwIDEtOS4zIDAgNi40IDYuNCAwIDAgMC01Ljg0IDYuMnYyLjVjMCAxLjYuOCAyLjI1IDIuMjYgMi4yNUgzMC41YzEuMzMgMCAyLjI2LS42NiAyLjI2LTIuMjR2LTIuNWMwLTMuMTgtMi41My01LjgyLTUuODUtNi4yMVptLTQuNjUtMTIuMjhhNi4xNSA2LjE1IDAgMCAwLTQuMzIgMS43OCA2LjA1IDYuMDUgMCAwIDAtMS43OSA0LjMgNi4wNCA2LjA0IDAgMCAwIDMuOSA1LjUyIDYuMTUgNi4xNSAwIDAgMCA2LjU0LTEuMzYgNi4wNSA2LjA1IDAgMCAwIDEuNzgtNC4xNyA2LjA1IDYuMDUgMCAwIDAtNi4xLTYuMDdaTTM1Ljk2IDI2LjZhMTIuNSAxMi41IDAgMCAwIDAtMTcuN2wtMiAxLjk5YTkuNjMgOS42MyAwIDAgMSAyLjE0IDEwLjU4IDkuNjMgOS42MyAwIDAgMS0yLjE0IDMuMTVsMiAxLjk4WiIgZmlsbD0iIzAxNWU2NiIvPjxwYXRoIGQ9Ik0zMi4yMyAyMy4xNGE3LjU4IDcuNTggMCAwIDAgMS41My0yLjQ1IDggOCAwIDAgMC0xLjUzLTguMjJsLTEuNzkgMS45MmE0LjgyIDQuODIgMCAwIDEgMS4zNCAzLjQyIDUuMDkgNS4wOSAwIDAgMS0xLjM0IDMuNDFsMS43OSAxLjkyWiIgZmlsbD0iIzAxNWU2NiIvPjxwYXRoIGQ9Ik02My4yNSAyLjI5aC00Mi4yQTE5Ljc1IDE5Ljc1IDAgMCAwIDEuMyAyMi4wNHYuNzJjMCAxMC45IDguODQgMTkuNzUgMTkuNzUgMTkuNzVoNDIuMkM3NC4xNSA0Mi41IDgzIDMzLjY3IDgzIDIyLjc2di0uNzJjMC0xMC45MS04Ljg0LTE5Ljc1LTE5Ljc1LTE5Ljc1WiIgc3Ryb2tlPSIjMDE1ZTY2IiBzdHJva2Utd2lkdGg9IjIiLz48L3N2Zz4="
          : "cursors/play/play-big.svg",
      very_big:
        __BUILD_TARGET__ === "extension"
          ? "PHN2ZyB3aWR0aD0iMTI0IiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgODQgNDQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMuMjUgMUMyLjU2IDEgMiAxLjU2IDIgMi4yNWMwIC4yOSAxLjEzIDQuMiAxLjEzIDguMjUgMCA1LjU5LS44MyAxMS42Ny0uODMgMTEuNjdsOS41OC05LjM4IDkuNTgtOS4zN1MxNi4zIDMuNyAxMi4zIDNjLTMuMDQtLjUzLTguNzUtMi05LjA1LTJaIiBmaWxsPSIjZmZmIiBzdHJva2U9IiMwMTVlNjYiIHN0cm9rZS13aWR0aD0iMiIvPjxwYXRoIGQ9Ik0yLjMgMjIuMDRjMC0xMC4zNiA4LjQtMTguNzUgMTguNzUtMTguNzVoNDIuMkM3My42MSAzLjI5IDgyIDExLjY5IDgyIDIyLjA0di43MkM4MiAzMy4xIDczLjYgNDEuNSA2My4yNSA0MS41aC00Mi4yQTE4Ljc1IDE4Ljc1IDAgMCAxIDIuMyAyMi43NnYtLjcyWiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik03NC44MyAyMi4zN2ExMy43NSAxMy43NSAwIDEgMS0yNy41IDAgMTMuNzUgMTMuNzUgMCAwIDEgMjcuNSAwWiIgZmlsbD0iIzAxNWU2NiIvPjxwYXRoIGQ9Ik02OC45MiAyMS41YS44OS44OSAwIDAgMSAwIDEuNWwtMTEuMzQgN2EuODkuODkgMCAwIDEtMS4zNi0uNzV2LTE0YzAtLjcuNzctMS4xMiAxLjM2LS43NmwxMS4zNCA3WiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0yNi45MiAyNC42M2E4IDggMCAwIDEtOS4zIDAgNi40IDYuNCAwIDAgMC01Ljg0IDYuMnYyLjVjMCAxLjYuOCAyLjI1IDIuMjYgMi4yNUgzMC41YzEuMzMgMCAyLjI2LS42NiAyLjI2LTIuMjR2LTIuNWMwLTMuMTgtMi41My01LjgyLTUuODUtNi4yMVptLTQuNjUtMTIuMjhhNi4xNSA2LjE1IDAgMCAwLTQuMzIgMS43OCA2LjA1IDYuMDUgMCAwIDAtMS43OSA0LjMgNi4wNCA2LjA0IDAgMCAwIDMuOSA1LjUyIDYuMTUgNi4xNSAwIDAgMCA2LjU0LTEuMzYgNi4wNSA2LjA1IDAgMCAwIDEuNzgtNC4xNyA2LjA1IDYuMDUgMCAwIDAtNi4xLTYuMDdaTTM1Ljk2IDI2LjZhMTIuNSAxMi41IDAgMCAwIDAtMTcuN2wtMiAxLjk5YTkuNjMgOS42MyAwIDAgMSAyLjE0IDEwLjU4IDkuNjMgOS42MyAwIDAgMS0yLjE0IDMuMTVsMiAxLjk4WiIgZmlsbD0iIzAxNWU2NiIvPjxwYXRoIGQ9Ik0zMi4yMyAyMy4xNGE3LjU4IDcuNTggMCAwIDAgMS41My0yLjQ1IDggOCAwIDAgMC0xLjUzLTguMjJsLTEuNzkgMS45MmE0LjgyIDQuODIgMCAwIDEgMS4zNCAzLjQyIDUuMDkgNS4wOSAwIDAgMS0xLjM0IDMuNDFsMS43OSAxLjkyWiIgZmlsbD0iIzAxNWU2NiIvPjxwYXRoIGQ9Ik02My4yNSAyLjI5aC00Mi4yQTE5Ljc1IDE5Ljc1IDAgMCAwIDEuMyAyMi4wNHYuNzJjMCAxMC45IDguODQgMTkuNzUgMTkuNzUgMTkuNzVoNDIuMkM3NC4xNSA0Mi41IDgzIDMzLjY3IDgzIDIyLjc2di0uNzJjMC0xMC45MS04Ljg0LTE5Ljc1LTE5Ljc1LTE5Ljc1WiIgc3Ryb2tlPSIjMDE1ZTY2IiBzdHJva2Utd2lkdGg9IjIiLz48L3N2Zz4="
          : "cursors/play/play-verybig.svg",
    },
    vocal: {
      big:
        __BUILD_TARGET__ === "extension"
          ? "PHN2ZyB3aWR0aD0iODQiIGhlaWdodD0iNDQiIHZpZXdCb3g9IjAgMCA2MCAzMSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZyBjbGlwLXBhdGg9InVybCgjYSkiPjxwYXRoIGQ9Ik0yLjcuN2MtLjQ5IDAtLjg4LjQtLjg4Ljg5IDAgLjIuOCAyLjk1LjggNS44IDAgMy45NS0uNiA4LjIzLS42IDguMjNsNi43Ni02LjYgNi43NS02LjYxcy0zLjY0LjItNi40Ni0uM0M2LjkzIDEuNzQgMi45MS43MSAyLjcuNzFaIiBmaWxsPSIjZmZmIiBzdHJva2U9IiMwMTVlNjYiIHN0cm9rZS13aWR0aD0iMS40MSIvPjxwYXRoIGQ9Ik0yLjAzIDE1LjUzYzAtNy4zIDUuOTEtMTMuMjEgMTMuMi0xMy4yMWgyOS43NGM3LjMgMCAxMy4yMSA1LjkxIDEzLjIxIDEzLjJ2LjUyYzAgNy4zLTUuOTEgMTMuMi0xMy4yIDEzLjJIMTUuMjNjLTcuMyAwLTEzLjIxLTUuOS0xMy4yMS0xMy4ydi0uNTFaIiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTMwLjY3IDE3LjA3YTUuNjQgNS42NCAwIDAgMS02LjU1IDBBNC41IDQuNSAwIDAgMCAyMCAyMS40NHYxLjc3YzAgMS4xMS41NiAxLjU4IDEuNiAxLjU4aDExLjZjLjkzIDAgMS41OS0uNDcgMS41OS0xLjU4di0xLjc3YzAtMi4yMy0xLjc4LTQuMS00LjEyLTQuMzdabS0zLjI4LTguNjVhNC4zMyA0LjMzIDAgMCAwLTMuMDQgMS4yNWMtLjguOC0xLjI2IDEuOS0xLjI2IDMuMDNhNC4yNSA0LjI1IDAgMCAwIDIuNzQgMy45IDQuMzMgNC4zMyAwIDAgMCA1Ljg3LTMuOSA0LjI2IDQuMjYgMCAwIDAtNC4zLTQuMjhabTkuNjQgMTAuMDRhOC44IDguOCAwIDAgMCAwLTEyLjQ2bC0xLjQgMS40YTYuNzkgNi43OSAwIDAgMSAwIDkuNjdsMS40IDEuNFoiIGZpbGw9IiMwMTVlNjYiLz48cGF0aCBkPSJNMzQuNCAxNi4wMmE1LjM0IDUuMzQgMCAwIDAgMS40Ny0zLjc2IDUuNjQgNS42NCAwIDAgMC0xLjQ2LTMuNzVsLTEuMjYgMS4zNGEzLjQgMy40IDAgMCAxIC45NSAyLjQxIDMuNTkgMy41OSAwIDAgMS0uOTUgMi40MWwxLjI2IDEuMzVaIiBmaWxsPSIjMDE1ZTY2Ii8+PHBhdGggZD0iTTQ0Ljk3IDEuNjFIMTUuMjRBMTMuOTEgMTMuOTEgMCAwIDAgMS4zMiAxNS41M3YuNWMwIDcuNjkgNi4yMyAxMy45MiAxMy45MiAxMy45MmgyOS43M2M3LjY5IDAgMTMuOTItNi4yMyAxMy45Mi0xMy45MXYtLjUxYzAtNy42OS02LjIzLTEzLjkyLTEzLjkyLTEzLjkyWiIgc3Ryb2tlPSIjMDE1ZTY2IiBzdHJva2Utd2lkdGg9IjEuNDEiLz48L2c+PGRlZnM+PGNsaXBQYXRoIGlkPSJhIj48cGF0aCBmaWxsPSIjZmZmIiBkPSJNMCAwaDg0djQ0SDB6Ii8+PC9jbGlwUGF0aD48L2RlZnM+PC9zdmc+"
          : "cursors/vocal/vocal-big.svg",
      very_big:
        __BUILD_TARGET__ === "extension"
          ? "PHN2ZyB3aWR0aD0iMTI0IiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgNjAgMzEiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgY2xpcC1wYXRoPSJ1cmwoI2EpIj48cGF0aCBkPSJNMi43LjdjLS40OSAwLS44OC40LS44OC44OSAwIC4yLjggMi45NS44IDUuOCAwIDMuOTUtLjYgOC4yMy0uNiA4LjIzbDYuNzYtNi42IDYuNzUtNi42MXMtMy42NC4yLTYuNDYtLjNDNi45MyAxLjc0IDIuOTEuNzEgMi43LjcxWiIgZmlsbD0iI2ZmZiIgc3Ryb2tlPSIjMDE1ZTY2IiBzdHJva2Utd2lkdGg9IjEuNDEiLz48cGF0aCBkPSJNMi4wMyAxNS41M2MwLTcuMyA1LjkxLTEzLjIxIDEzLjItMTMuMjFoMjkuNzRjNy4zIDAgMTMuMjEgNS45MSAxMy4yMSAxMy4ydi41MmMwIDcuMy01LjkxIDEzLjItMTMuMiAxMy4ySDE1LjIzYy03LjMgMC0xMy4yMS01LjktMTMuMjEtMTMuMnYtLjUxWiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0zMC42NyAxNy4wN2E1LjY0IDUuNjQgMCAwIDEtNi41NSAwQTQuNSA0LjUgMCAwIDAgMjAgMjEuNDR2MS43N2MwIDEuMTEuNTYgMS41OCAxLjYgMS41OGgxMS42Yy45MyAwIDEuNTktLjQ3IDEuNTktMS41OHYtMS43N2MwLTIuMjMtMS43OC00LjEtNC4xMi00LjM3Wm0tMy4yOC04LjY1YTQuMzMgNC4zMyAwIDAgMC0zLjA0IDEuMjVjLS44LjgtMS4yNiAxLjktMS4yNiAzLjAzYTQuMjUgNC4yNSAwIDAgMCAyLjc0IDMuOSA0LjMzIDQuMzMgMCAwIDAgNS44Ny0zLjkgNC4yNiA0LjI2IDAgMCAwLTQuMy00LjI4Wm05LjY0IDEwLjA0YTguOCA4LjggMCAwIDAgMC0xMi40NmwtMS40IDEuNGE2Ljc5IDYuNzkgMCAwIDEgMCA5LjY3bDEuNCAxLjRaIiBmaWxsPSIjMDE1ZTY2Ii8+PHBhdGggZD0iTTM0LjQgMTYuMDJhNS4zNCA1LjM0IDAgMCAwIDEuNDctMy43NiA1LjY0IDUuNjQgMCAwIDAtMS40Ni0zLjc1bC0xLjI2IDEuMzRhMy40IDMuNCAwIDAgMSAuOTUgMi40MSAzLjU5IDMuNTkgMCAwIDEtLjk1IDIuNDFsMS4yNiAxLjM1WiIgZmlsbD0iIzAxNWU2NiIvPjxwYXRoIGQ9Ik00NC45NyAxLjYxSDE1LjI0QTEzLjkxIDEzLjkxIDAgMCAwIDEuMzIgMTUuNTN2LjVjMCA3LjY5IDYuMjMgMTMuOTIgMTMuOTIgMTMuOTJoMjkuNzNjNy42OSAwIDEzLjkyLTYuMjMgMTMuOTItMTMuOTF2LS41MWMwLTcuNjktNi4yMy0xMy45Mi0xMy45Mi0xMy45MloiIHN0cm9rZT0iIzAxNWU2NiIgc3Ryb2tlLXdpZHRoPSIxLjQxIi8+PC9nPjxkZWZzPjxjbGlwUGF0aCBpZD0iYSI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTAgMGgxMjR2NjRIMHoiLz48L2NsaXBQYXRoPjwvZGVmcz48L3N2Zz4="
          : "cursors/vocal/vocal-verybig.svg",
    },
    pause: {
      big:
        __BUILD_TARGET__ === "extension"
          ? "PHN2ZyB3aWR0aD0iODQiIGhlaWdodD0iNDQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMuMjUgMUMyLjU2IDEgMiAxLjU2IDIgMi4yNWMwIC4yOSAxLjEzIDQuMiAxLjEzIDguMjUgMCA1LjU5LS44MyAxMS42Ny0uODMgMTEuNjdMMjEuNDYgMy40MlMxNi4zIDMuNyAxMi4zIDNjLTMuMDQtLjUzLTguNzUtMi05LjA1LTJaIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNBRDFBMDAiIHN0cm9rZS13aWR0aD0iMiIvPjxwYXRoIGQ9Ik0yLjMgMjIuMDRjMC0xMC4zNiA4LjQtMTguNzUgMTguNzUtMTguNzVoNDIuMkM3My42MSAzLjI5IDgyIDExLjY5IDgyIDIyLjA0di43MkM4MiAzMy4xIDczLjYgNDEuNSA2My4yNSA0MS41aC00Mi4yQTE4Ljc1IDE4Ljc1IDAgMCAxIDIuMyAyMi43NnYtLjcyWiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik03NC44MyAyMi4zN2ExMy43NSAxMy43NSAwIDEgMS0yNy41IDAgMTMuNzUgMTMuNzUgMCAwIDEgMjcuNSAwWiIgZmlsbD0iI0FEMUEwMCIvPjxwYXRoIGQ9Ik01My44NSAxN2MwLTEuMTUuOTMtMi4wNyAyLjA4LTIuMDdoMS40OGMxLjE0IDAgMi4wNy45MiAyLjA3IDIuMDd2MTAuNjdjMCAxLjE0LS45MyAyLjA3LTIuMDcgMi4wN2gtMS40OGEyLjA3IDIuMDcgMCAwIDEtMi4wOC0yLjA3VjE3Wk02My4wNCAxN2MwLTEuMTUuOTMtMi4wNyAyLjA3LTIuMDdoMS40OGMxLjE1IDAgMi4wOC45MiAyLjA4IDIuMDd2MTAuNjdjMCAxLjE0LS45MyAyLjA3LTIuMDggMi4wN2gtMS40OGEyLjA3IDIuMDcgMCAwIDEtMi4wNy0yLjA3VjE3WiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0yNi45MiAyNC42M2E4IDggMCAwIDEtOS4zIDAgNi40IDYuNCAwIDAgMC01Ljg0IDYuMnYyLjVjMCAxLjYuOCAyLjI1IDIuMjYgMi4yNUgzMC41YzEuMzMgMCAyLjI2LS42NiAyLjI2LTIuMjR2LTIuNWMwLTMuMTgtMi41My01LjgyLTUuODUtNi4yMVptLTQuNjUtMTIuMjhhNi4xNSA2LjE1IDAgMCAwLTQuMzIgMS43OCA2LjA1IDYuMDUgMCAwIDAtMS43OSA0LjMgNi4wNCA2LjA0IDAgMCAwIDMuOSA1LjUyIDYuMTUgNi4xNSAwIDAgMCA2LjU0LTEuMzYgNi4wNSA2LjA1IDAgMCAwIDEuNzgtNC4xNyA2LjA1IDYuMDUgMCAwIDAtNi4xLTYuMDdaTTM1Ljk2IDI2LjZhMTIuNSAxMi41IDAgMCAwIDAtMTcuN2wtMiAxLjk5YTkuNjMgOS42MyAwIDAgMSAyLjE0IDEwLjU4IDkuNjMgOS42MyAwIDAgMS0yLjE0IDMuMTVsMiAxLjk4WiIgZmlsbD0iI0FEMUEwMCIvPjxwYXRoIGQ9Ik0zMi4yMyAyMy4xNGE3LjU4IDcuNTggMCAwIDAgMS41My0yLjQ1IDggOCAwIDAgMC0xLjUzLTguMjJsLTEuNzkgMS45MmE0LjgyIDQuODIgMCAwIDEgMS4zNCAzLjQyIDUuMDkgNS4wOSAwIDAgMS0xLjM0IDMuNDFsMS43OSAxLjkyWiIgZmlsbD0iI0FEMUEwMCIvPjxwYXRoIGQ9Ik02My4yNSAyLjI5aC00Mi4yQTE5Ljc1IDE5Ljc1IDAgMCAwIDEuMyAyMi4wNHYuNzJjMCAxMC45IDguODQgMTkuNzUgMTkuNzUgMTkuNzVoNDIuMkM3NC4xNSA0Mi41IDgzIDMzLjY3IDgzIDIyLjc2di0uNzJjMC0xMC45MS04Ljg0LTE5Ljc1LTE5Ljc1LTE5Ljc1WiIgc3Ryb2tlPSIjQUQxQTAwIiBzdHJva2Utd2lkdGg9IjIiLz48L3N2Zz4="
          : "cursors/pause/pause-big.svg",
      very_big:
        __BUILD_TARGET__ === "extension"
          ? "PHN2ZyB3aWR0aD0iMTI0IiBoZWlnaHQ9IjY0IiB2aWV3Qm94PSIwIDAgODQgNDQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMuMjUgMUMyLjU2IDEgMiAxLjU2IDIgMi4yNWMwIC4yOSAxLjEzIDQuMiAxLjEzIDguMjUgMCA1LjU5LS44MyAxMS42Ny0uODMgMTEuNjdMMjEuNDYgMy40MlMxNi4zIDMuNyAxMi4zIDNjLTMuMDQtLjUzLTguNzUtMi05LjA1LTJaIiBmaWxsPSIjZmZmIiBzdHJva2U9IiNBRDFBMDAiIHN0cm9rZS13aWR0aD0iMiIvPjxwYXRoIGQ9Ik0yLjMgMjIuMDRjMC0xMC4zNiA4LjQtMTguNzUgMTguNzUtMTguNzVoNDIuMkM3My42MSAzLjI5IDgyIDExLjY5IDgyIDIyLjA0di43MkM4MiAzMy4xIDczLjYgNDEuNSA2My4yNSA0MS41aC00Mi4yQTE4Ljc1IDE4Ljc1IDAgMCAxIDIuMyAyMi43NnYtLjcyWiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik03NC44MyAyMi4zN2ExMy43NSAxMy43NSAwIDEgMS0yNy41IDAgMTMuNzUgMTMuNzUgMCAwIDEgMjcuNSAwWiIgZmlsbD0iI0FEMUEwMCIvPjxwYXRoIGQ9Ik01My44NSAxN2MwLTEuMTUuOTMtMi4wNyAyLjA4LTIuMDdoMS40OGMxLjE0IDAgMi4wNy45MiAyLjA3IDIuMDd2MTAuNjdjMCAxLjE0LS45MyAyLjA3LTIuMDcgMi4wN2gtMS40OGEyLjA3IDIuMDcgMCAwIDEtMi4wOC0yLjA3VjE3Wk02My4wNCAxN2MwLTEuMTUuOTMtMi4wNyAyLjA3LTIuMDdoMS40OGMxLjE1IDAgMi4wOC45MiAyLjA4IDIuMDd2MTAuNjdjMCAxLjE0LS45MyAyLjA3LTIuMDggMi4wN2gtMS40OGEyLjA3IDIuMDcgMCAwIDEtMi4wNy0yLjA3VjE3WiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0yNi45MiAyNC42M2E4IDggMCAwIDEtOS4zIDAgNi40IDYuNCAwIDAgMC01Ljg0IDYuMnYyLjVjMCAxLjYuOCAyLjI1IDIuMjYgMi4yNUgzMC41YzEuMzMgMCAyLjI2LS42NiAyLjI2LTIuMjR2LTIuNWMwLTMuMTgtMi41My01LjgyLTUuODUtNi4yMVptLTQuNjUtMTIuMjhhNi4xNSA2LjE1IDAgMCAwLTQuMzIgMS43OCA2LjA1IDYuMDUgMCAwIDAtMS43OSA0LjMgNi4wNCA2LjA0IDAgMCAwIDMuOSA1LjUyIDYuMTUgNi4xNSAwIDAgMCA2LjU0LTEuMzYgNi4wNSA2LjA1IDAgMCAwIDEuNzgtNC4xNyA2LjA1IDYuMDUgMCAwIDAtNi4xLTYuMDdaTTM1Ljk2IDI2LjZhMTIuNSAxMi41IDAgMCAwIDAtMTcuN2wtMiAxLjk5YTkuNjMgOS42MyAwIDAgMSAyLjE0IDEwLjU4IDkuNjMgOS42MyAwIDAgMS0yLjE0IDMuMTVsMiAxLjk4WiIgZmlsbD0iI0FEMUEwMCIvPjxwYXRoIGQ9Ik0zMi4yMyAyMy4xNGE3LjU4IDcuNTggMCAwIDAgMS41My0yLjQ1IDggOCAwIDAgMC0xLjUzLTguMjJsLTEuNzkgMS45MmE0LjgyIDQuODIgMCAwIDEgMS4zNCAzLjQyIDUuMDkgNS4wOSAwIDAgMS0xLjM0IDMuNDFsMS43OSAxLjkyWiIgZmlsbD0iI0FEMUEwMCIvPjxwYXRoIGQ9Ik02My4yNSAyLjI5aC00Mi4yQTE5Ljc1IDE5Ljc1IDAgMCAwIDEuMyAyMi4wNHYuNzJjMCAxMC45IDguODQgMTkuNzUgMTkuNzUgMTkuNzVoNDIuMkM3NC4xNSA0Mi41IDgzIDMzLjY3IDgzIDIyLjc2di0uNzJjMC0xMC45MS04Ljg0LTE5Ljc1LTE5Ljc1LTE5Ljc1WiIgc3Ryb2tlPSIjQUQxQTAwIiBzdHJva2Utd2lkdGg9IjIiLz48L3N2Zz4="
          : "cursors/pause/pause-verybig.svg",
    },
  };
  private _cursorsPath = `${import.meta.env.VITE_LISIO_DOMAIN}/solution/dist-site/`;

  /**
   * Public method implementing abstract method adapt of Adapter
   * @param {LisioTextTreeWalker} walker - A walker to explore the DOM
   * @param {string} value - Value of the functionality
   * @returns Returns nothing
   * @source
   */
  public adapt(
    walker: LisioTextTreeWalker,
    value: "default" | "big" | "very_big",
  ): void {
    for (const tag of [
      document.body,
      document.documentElement,
      ...walker.tags.values(),
    ]) {
      this.adaptFunction(tag, value);
    }

    if (value === "default") {
      document
        .querySelector("div#lisio-label")
        ?.classList.remove(`lisio-cursor-pointer`);
    } else {
      document
        .querySelector("div#lisio-label")
        ?.classList.add(`lisio-cursor-pointer`);
    }
    if (value === "default") {
      document.documentElement.classList.remove("synth-verybig");
      document.documentElement.classList.remove("synth-big");
    } else if (value === "big") {
      document.documentElement.classList.remove("synth-verybig");
      document.documentElement.classList.add("synth-big");
    } else if (value === "very_big") {
      document.documentElement.classList.remove("synth-big");
      document.documentElement.classList.add("synth-verybig");
    }
  }

  protected adaptFunction(
    element: HTMLElement,
    value: "default" | "big" | "very_big",
  ): void {
    if (element.localName != "style" && element.localName != "script") {
      const { cursor } = window.getComputedStyle(element);
      const allCursors = cursor.split(/,\s+/);
      let selectedCursor: string | undefined;
      // if (!cursor?.includes("url")) {
      if (
        cursor.includes("url") &&
        (cursor.includes("play.svg") ||
          cursor.includes("vocal.svg") ||
          cursor.includes("pause.svg"))
      ) {
        if (cursor.includes("play.svg")) {
          selectedCursor = "play";
        }
        if (cursor.includes("vocal.svg")) {
          selectedCursor = "vocal";
        }
        if (cursor.includes("pause.svg")) {
          selectedCursor = "pause";
        }
      } else {
        selectedCursor = allCursors.pop()?.split(" ").shift();
      }
      if (
        selectedCursor === "auto" ||
        selectedCursor === "pointer" ||
        selectedCursor === "text" ||
        selectedCursor === "default" ||
        selectedCursor === "help" ||
        selectedCursor === "vocal" ||
        selectedCursor === "play" ||
        selectedCursor === "pause"
      ) {
        if (value === "default") {
          element.classList.remove(`lisio-cursor-${selectedCursor}`);
        } else {
          element.classList.add(`lisio-cursor-${selectedCursor}`);
        }
        LisioStyleSheetController.current.replaceImportantInStyleAttribute(
          [LisioCSSProperties.CURSOR],
          element,
        );
        if (value === "default") {
          LisioStyleSheetController.current.removeRule(
            `.lisio-cursor-${selectedCursor}`,
          );
        } else {
          const cursorUrl =
            __BUILD_TARGET__ === "extension"
              ? "data:image/svg+xml;base64," +
                this._cursors[selectedCursor][value]
              : this._cursorsPath + this._cursors[selectedCursor][value];
          LisioStyleSheetController.current.insertOrReplaceRule(
            new Map<LisioCSSProperties, string>([
              [
                LisioCSSProperties.CURSOR,
                `url(${cursorUrl})${
                  selectedCursor == "text"
                    ? value == "big"
                      ? "25 25"
                      : "50 50"
                    : ""
                }, ${
                  ["play", "pause", "vocal"].includes(selectedCursor)
                    ? "default"
                    : selectedCursor
                }`,
              ],
            ]),
            `.lisio-cursor-${selectedCursor}`,
            `.lisio-cursor-${selectedCursor}`,
          );
        }
      }
      // }
    }
  }
}

export default LisioCursorAdapter;
