@eaprelsky/nocturna-wheel 3.0.2 → 3.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/nocturna-wheel.bundle.js +88 -16
- package/dist/nocturna-wheel.bundle.js.map +1 -1
- package/dist/nocturna-wheel.es.js +88 -16
- package/dist/nocturna-wheel.es.js.map +1 -1
- package/dist/nocturna-wheel.min.js +1 -1
- package/dist/nocturna-wheel.min.js.map +1 -1
- package/dist/nocturna-wheel.umd.js +88 -16
- package/dist/nocturna-wheel.umd.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).NocturnaWheel={})}(this,(function(e){"use strict";class t{static#e=new Map;static register(e,t){this.#e.set(e,t)}static get(e){return this.#e.get(e)}static has(e){return this.#e.has(e)}static clear(){this.#e.clear()}static getSvgUtils(){if(!this.has("svgUtils")){const e={svgNS:"http://www.w3.org/2000/svg",createSVGElement(e,t={}){const s=document.createElementNS(this.svgNS,e);for(const[e,r]of Object.entries(t))s.setAttribute(e,r);return s},addTooltip(e,t){const s=document.createElementNS(this.svgNS,"title");return s.textContent=t,e.appendChild(s),e},pointOnCircle(e,t,s,r){const i=(r-90)*(Math.PI/180);return{x:e+s*Math.cos(i),y:t+s*Math.sin(i)}}};this.register("svgUtils",e)}return this.get("svgUtils")}static getIconProvider(){return this.has("iconProvider")?this.get("iconProvider"):(console.warn("ServiceRegistry: IconProvider not registered. Icons may not work correctly."),console.warn("ServiceRegistry: This should be initialized in main.js with inline IconData."),null)}static initializeServices(e={}){this.getSvgUtils(),console.log("ServiceRegistry: Core services initialized")}}class s{constructor(e={}){"string"==typeof e&&(e={basePath:e,useInline:!1}),this.basePath=e.basePath||"./assets/svg/zodiac/",this.useInline=!1!==e.useInline,this.customIcons=e.customIcons||null,this.inlineData=null,this._warnedAboutMissingData=!1}_getInlineData(){return this.inlineData}setInlineData(e){this.inlineData=e,console.log("IconProvider.setInlineData(): Data loaded successfully","planets:",Object.keys(e?.planets||{}).length,"signs:",Object.keys(e?.signs||{}).length,"aspects:",Object.keys(e?.aspects||{}).length)}getPlanetIconPath(e){const t=e.toLowerCase();if(this.customIcons?.planets?.[t])return this.customIcons.planets[t];if(this.useInline){const e=this._getInlineData();if(e?.planets?.[t])return e.planets[t];this._warnedAboutMissingData||(this._warnedAboutMissingData=!0,e?e.planets||console.warn("IconProvider: Inline data missing 'planets' category"):console.warn("IconProvider: Inline data not loaded, falling back to external paths. Call setInlineData() to load inline icons."))}return`${this.basePath}zodiac-planet-${t}.svg`}getZodiacIconPath(e){const t=e.toLowerCase();if(this.customIcons?.signs?.[t])return this.customIcons.signs[t];if(this.useInline){const e=this._getInlineData();if(e?.signs?.[t])return e.signs[t]}return`${this.basePath}zodiac-sign-${t}.svg`}getAspectIconPath(e){const t=e.toLowerCase();if(this.customIcons?.aspects?.[t])return this.customIcons.aspects[t];if(this.useInline){const e=this._getInlineData();if(e?.aspects?.[t])return e.aspects[t]}return`${this.basePath}zodiac-aspect-${t}.svg`}createTextFallback(e,t,s){const{x:r,y:i,size:n="16px",color:o="#000000",className:a="icon-fallback"}=t,l=e.createSVGElement("text",{x:r,y:i,"text-anchor":"middle","dominant-baseline":"middle","font-size":n,class:a,fill:o});return l.textContent=s,l}}const r={planets:{},signs:{},aspects:{}};r.planets.jupiter="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22kVkwGe1VFLANDFw4YKh--3%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20120%20169%20L%20120.41%2052%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22kVkwGe1VFLANDFw4YKh--4%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2055.45%20117%20L%20114.55%20117%20L%20150%20117%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22kVkwGe1VFLANDFw4YKh--5%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2049.17%2039.62%20C%2061.72%2037.13%2074.51%2042.25%2082.68%2053.02%20C%2090.85%2063.79%2093.13%2078.55%2088.66%2091.68%20C%2084.18%20104.81%2073.64%20114.29%2061.06%20116.51%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22zDjTfItpbO8d8TAwGvx0-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.planets.ketu="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22nZi6tGyZIidbp-v6qjZQ-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22nZi6tGyZIidbp-v6qjZQ-6%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22nZi6tGyZIidbp-v6qjZQ-7%22%3E%3Cg%3E%3Cellipse%20cx%3D%2265%22%20cy%3D%2265%22%20rx%3D%2215%22%20ry%3D%2215%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22nZi6tGyZIidbp-v6qjZQ-8%22%3E%3Cg%3E%3Cellipse%20cx%3D%22135%22%20cy%3D%2265%22%20rx%3D%2215%22%20ry%3D%2215%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22nZi6tGyZIidbp-v6qjZQ-9%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20124.39%2054.39%20Q%20120%2060%20120%2065%20Q%20120%2070%20130%2095%20Q%20140%20120%20130%20135%20Q%20120%20150%20100%20150%20Q%2080%20150%2070%20135%20Q%2060%20120%2070%2095%20Q%2080%2070%2080%2065%20Q%2080%2060%2075.61%2054.39%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22fzDwOAeg_iJ89Dt6VeXd-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.planets.lilith="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22iy5LzPKV1b8-u4Rshwn2-1%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20139%20150%20L%2059%20150%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22iy5LzPKV1b8-u4Rshwn2-2%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2098.2%20117.1%20L%2099%20180%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22iy5LzPKV1b8-u4Rshwn2-3%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2073.37%2033.62%20C%2062.66%2050.93%2065.45%2073.12%2080.13%2087.41%20C%2094.81%20101.7%20117.6%20104.42%20135.38%2093.99%20C%20125.69%20109.66%20107.04%20117.86%2088.56%20114.57%20C%2070.07%20111.28%2055.61%2097.2%2052.23%2079.2%20C%2048.85%2061.21%2057.27%2043.05%2073.37%2033.62%20Z%22%20fill%3D%22%23000000%22%20stroke%3D%22%23000000%22%20stroke-width%3D%222%22%20stroke-miterlimit%3D%2210%22%20transform%3D%22rotate(225%2C92.12%2C75.74)%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20rgb(0%2C%200%2C%200)%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22skUIsOvDlGxpmukY0j3V-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.planets.mars="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22201px%22%20height%3D%22201px%22%20viewBox%3D%22-0.5%20-0.5%20201%20201%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22dfX1GTXx0dsaOR7s5UN7-2%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%2210%22%20height%3D%2210%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22dfX1GTXx0dsaOR7s5UN7-3%22%3E%3Cg%3E%3Cellipse%20cx%3D%22100%22%20cy%3D%22115%22%20rx%3D%2240%22%20ry%3D%2240%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22dfX1GTXx0dsaOR7s5UN7-4%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20130%2085%20L%20155.97%2059.03%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3Cpath%20d%3D%22M%20166.05%2048.95%20L%20159.33%2069.11%20L%20155.97%2059.03%20L%20145.89%2055.67%20Z%22%20fill%3D%22%23000000%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22WfpUhmjnT6FgT6mvTSny-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.planets.mercury="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22201px%22%20viewBox%3D%22-0.5%20-0.5%20200%20201%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22P34d2Aacb0rAMBlJQ82S-5%22%3E%3Cg%3E%3Cellipse%20cx%3D%22100%22%20cy%3D%2290%22%20rx%3D%2240%22%20ry%3D%2240%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22P34d2Aacb0rAMBlJQ82S-6%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20129.98%2025.18%20C%20130.36%2034.02%20124.63%2042.31%20115.07%2046.75%20C%20105.51%2051.19%2093.67%2051.07%2084.26%2046.43%20C%2074.85%2041.79%2069.39%2033.39%2070.05%2024.56%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22P34d2Aacb0rAMBlJQ82S-7%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20100%20180%20L%20100%20130%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22P34d2Aacb0rAMBlJQ82S-8%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2060%20160%20L%20140%20160%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22YspeTQYn8OWxfiwJ6-K5-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.planets.moon="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%20%3Cpath%20d%3D%22M%20106.38%2031%20C%20133.61%2035.85%20154.8%2057.4%20159.18%2084.71%20C%20163.56%20112.02%20150.17%20139.12%20125.82%20152.23%20C%20101.46%20165.35%2071.47%20161.61%2051.08%20142.92%20Q%2059.25%20148.63%2089.31%20129.94%20Q%20119.38%20111.25%20119.38%2074.69%20Q%20119.38%2038.13%20108.81%2031.63%20Z%22%20fill%3D%22white%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%20%3C%2Fsvg%3E",r.planets.neptune="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22xklInLVkXW5TzGvFd8Wp-13%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20100%20170%20L%20100%2061.18%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3Cpath%20d%3D%22M%20105.67%2072.59%20L%20100%2055.59%20L%2094.33%2072.59%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22xklInLVkXW5TzGvFd8Wp-14%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20140%20140%20L%2060%20140%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22xklInLVkXW5TzGvFd8Wp-15%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2060%2061.18%20Q%2060%20100%2080%20110%20Q%20100%20120%20120%20110%20Q%20140%20100%20140%2061.18%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3Cpath%20d%3D%22M%2063.67%2066.59%20L%2060%2055.59%20L%2056.33%2066.59%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3Cpath%20d%3D%22M%20145.67%2072.59%20L%20140%2055.59%20L%20134.33%2072.59%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22zbcp-zu0BkE59QIL-Zbj-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.planets.pluto="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%222_PLy7GvWnqgv2neW7ed-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%222_PLy7GvWnqgv2neW7ed-9%22%3E%3Cg%3E%3Cellipse%20cx%3D%22100%22%20cy%3D%22149%22%20rx%3D%2222.5%22%20ry%3D%2220%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%222_PLy7GvWnqgv2neW7ed-10%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20100%20129%20L%20100.5%20110%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%222_PLy7GvWnqgv2neW7ed-11%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20140%2070.4%20C%20139.78%2092.49%20121.69%20110.22%2099.6%20110%20C%2077.51%20109.78%2059.78%2091.69%2060%2069.6%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%222_PLy7GvWnqgv2neW7ed-12%22%3E%3Cg%3E%3Cellipse%20cx%3D%22100%22%20cy%3D%2270%22%20rx%3D%2222.5%22%20ry%3D%2220%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%227pAuGvqZmXAXuP9MepSf-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.planets.rahu="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22nMoK0GtzClMlq9khWL09-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22nMoK0GtzClMlq9khWL09-6%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22nMoK0GtzClMlq9khWL09-7%22%3E%3Cg%3E%3Cellipse%20cx%3D%2265%22%20cy%3D%2265%22%20rx%3D%2215%22%20ry%3D%2215%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22nMoK0GtzClMlq9khWL09-8%22%3E%3Cg%3E%3Cellipse%20cx%3D%22135%22%20cy%3D%2265%22%20rx%3D%2215%22%20ry%3D%2215%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22nMoK0GtzClMlq9khWL09-9%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20124.39%2054.39%20Q%20120%2060%20120%2065%20Q%20120%2070%20130%2095%20Q%20140%20120%20130%20135%20Q%20120%20150%20100%20150%20Q%2080%20150%2070%20135%20Q%2060%20120%2070%2095%20Q%2080%2070%2080%2065%20Q%2080%2060%2075.61%2054.39%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%223M6Cx9xprG5cO1lWqNEw-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.planets.saturn="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22PGt55_aUy3Njtwruwuk4-5%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2090%20139%20L%2090%2039%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22PGt55_aUy3Njtwruwuk4-6%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2060%2059%20L%20120%2059%20L%2090%2059%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22PGt55_aUy3Njtwruwuk4-7%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20150%20169%20Q%20138%20179%20129%20174%20Q%20120%20169%20129%20144%20Q%20138%20119%20134%20104%20Q%20130%2089%20110%2089%20Q%2090%2089%2090%20109%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%226yAxXstixJTfL81ozoQc-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22sU4-NP-8qgTjRoMx9Fv4-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.planets.selena="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22jFIPWhlccuGsN_-w-8e2-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22jFIPWhlccuGsN_-w-8e2-6%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20140%20150%20L%2060%20150%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22jFIPWhlccuGsN_-w-8e2-7%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2099.2%20117.1%20L%20100%20180%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22jFIPWhlccuGsN_-w-8e2-8%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2073.37%2031.14%20C%2062.66%2048.46%2065.45%2070.65%2080.13%2084.94%20C%2094.81%2099.23%20117.6%20101.95%20135.38%2091.52%20C%20125.69%20107.19%20107.04%20115.39%2088.56%20112.1%20C%2070.07%20108.81%2055.61%2094.73%2052.23%2076.73%20C%2048.85%2058.74%2057.27%2040.58%2073.37%2031.14%20Z%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20transform%3D%22rotate(225%2C92.12%2C73.26)%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22B7BV3EczgGRAOl1qaG-U-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.planets.sun="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22KMRcx8_Z6FSBlqI5tEZE-1%22%3E%3Cg%3E%3Cellipse%20cx%3D%22100%22%20cy%3D%22100%22%20rx%3D%2265%22%20ry%3D%2260%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22KMRcx8_Z6FSBlqI5tEZE-2%22%3E%3Cg%3E%3Cellipse%20cx%3D%22100%22%20cy%3D%22100%22%20rx%3D%2210%22%20ry%3D%2210%22%20fill%3D%22%23000000%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(237%2C%20237%2C%20237))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22adE6InmPBndy7Uo4bRgR-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.planets.uranus="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22-Ga99g4WFrNk1u2N47Tz-4%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22-Ga99g4WFrNk1u2N47Tz-9%22%3E%3Cg%3E%3Cellipse%20cx%3D%22100%22%20cy%3D%22149%22%20rx%3D%2222.5%22%20ry%3D%2220%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22-Ga99g4WFrNk1u2N47Tz-10%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2080.91%2089.92%20L%20120.91%2089.92%20L%20100.91%2089.92%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22-Ga99g4WFrNk1u2N47Tz-11%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20100%20129%20L%20100%2060%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22-Ga99g4WFrNk1u2N47Tz-12%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2052.39%2051.12%20C%2066.57%2052.6%2078%2066.81%2079.77%2085.16%20C%2081.53%20103.5%2073.15%20120.94%2059.69%20126.91%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22-Ga99g4WFrNk1u2N47Tz-13%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20141.64%20127.44%20C%20128.11%20122.27%20119.13%20105.39%20120.07%2086.87%20C%20121.01%2068.35%20131.61%2053.19%20145.55%2050.44%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22An7hOLSuI-_JKes7hUzt-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22XEAaU1rfczp1g1rg0gsK-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.planets.venus="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%2282gSs5GHCCOlAdsS7Y_n-5%22%3E%3Cg%3E%3Cellipse%20cx%3D%22100%22%20cy%3D%2279%22%20rx%3D%2240%22%20ry%3D%2240%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%2282gSs5GHCCOlAdsS7Y_n-6%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20100%20180%20L%20100%20119%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%2282gSs5GHCCOlAdsS7Y_n-7%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2060%20150%20L%20140%20150%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22wT5vcnIU1864jlhb-1KB-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.signs.aquarius="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22pYeec5tt2UMA0w_zhV47-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22pYeec5tt2UMA0w_zhV47-6%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20161.5%2090%20Q%20151.5%2070%20136.5%2080%20Q%20121.5%2090%20116.5%2075%20Q%20111.5%2060%2096%2075%20Q%2080.5%2090%2074.5%2075%20Q%2068.5%2060%2041.5%2090%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22pYeec5tt2UMA0w_zhV47-7%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20158.5%20120%20Q%20148.5%20100%20133.5%20110%20Q%20118.5%20120%20113.5%20105%20Q%20108.5%2090%2093%20105%20Q%2077.5%20120%2071.5%20105%20Q%2065.5%2090%2038.5%20120%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22fXDPfsLTpfVXU3cFdg-k-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.signs.aries="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22blLjc4XcNJx5ieieuYer-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22G6Vla6dTyV-LotFg2Pob-7%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20101%20160%20Q%20100%20100%2095%2075%20Q%2090%2050%2070%2045%20Q%2050%2040%2030%2060%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22G6Vla6dTyV-LotFg2Pob-8%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20101%20160%20Q%20100%20110%20105%2080%20Q%20110%2050%20130%2045%20Q%20150%2040%20170%2060%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22vkXA4BL2LVM82eNTlpCW-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.signs.cancer="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22F9CagPl8JsqmlfRdU_IR-17%22%3E%3Cg%3E%3Cellipse%20cx%3D%22131%22%20cy%3D%22106.62%22%20rx%3D%2222.5%22%20ry%3D%2220%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22F9CagPl8JsqmlfRdU_IR-18%22%3E%3Cg%3E%3Cellipse%20cx%3D%2272.5%22%20cy%3D%2275.62%22%20rx%3D%2222.5%22%20ry%3D%2220%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22F9CagPl8JsqmlfRdU_IR-19%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2097.18%20159.61%20C%2081.71%20156.42%2070.06%20134.3%2070%20108%20C%2069.94%2081.71%2081.49%2059.45%2096.95%2056.06%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20transform%3D%22rotate(-90%2C100.94%2C107.81)%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22F9CagPl8JsqmlfRdU_IR-20%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2097.18%20125.49%20C%2081.71%20122.39%2070.06%20100.94%2070%2075.43%20C%2069.94%2049.93%2081.49%2028.33%2096.95%2025.04%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20transform%3D%22rotate(90%2C100.94%2C75.25)%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22-nztp9pWxBHcmyZ08QR4-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.signs.capricorn="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22FCZELrIV3grwh7Eqi1pe-8%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22FCZELrIV3grwh7Eqi1pe-9%22%3E%3Cg%3E%3Cellipse%20cx%3D%22135%22%20cy%3D%22118.25%22%20rx%3D%2215%22%20ry%3D%2216.5%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22FCZELrIV3grwh7Eqi1pe-10%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20120%20112.75%20Q%20120%20130.35%20120%20110.55%20Q%20120%2090.75%20120%2068.75%20Q%20120%2046.75%20107.5%2041.25%20Q%2095%2035.75%2085%2079.75%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22FCZELrIV3grwh7Eqi1pe-11%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2085%2079.75%20Q%2080%2035.75%2060%2035.75%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22FCZELrIV3grwh7Eqi1pe-12%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20100%20145.75%20Q%20110%20145.75%20115%20134.75%20Q%20120%20123.75%20120%20118.25%20Q%20120%20112.75%20124.23%20106.76%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22BpOhtRGwmzoIQpnF7pUJ-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.signs.gemini="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22vdI9q3M43HH2vRBbEY2U-37%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2097.31%2096.94%20C%2081.84%2093.35%2070.19%2068.48%2070.13%2038.91%20C%2070.07%209.34%2081.62%20-15.7%2097.08%20-19.51%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20transform%3D%22rotate(-90%2C101.07%2C38.69)%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22vdI9q3M43HH2vRBbEY2U-38%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2095.68%20223.38%20C%2080.21%20219.76%2068.56%20194.71%2068.5%20164.91%20C%2068.44%20135.12%2079.99%20109.9%2095.45%20106.06%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20transform%3D%22rotate(90%2C99.44%2C164.69)%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22vdI9q3M43HH2vRBbEY2U-39%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2079.93%20136.79%20L%2079.47%2067.65%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22vdI9q3M43HH2vRBbEY2U-40%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20119.66%20135.3%20L%20119.73%2067.65%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22jCEtXZTTY2g2Gjzo-qMJ-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.signs.leo="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%225dCEg9FfoHjf9y-4Zlng-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%225dCEg9FfoHjf9y-4Zlng-6%22%3E%3Cg%3E%3Cellipse%20cx%3D%2272.5%22%20cy%3D%22100%22%20rx%3D%2222.5%22%20ry%3D%2220%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%225dCEg9FfoHjf9y-4Zlng-7%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20160%20140%20Q%20150%20150%20137.5%20150%20Q%20125%20150%20122.5%20135%20Q%20120%20120%20130%2080%20Q%20140%2040%20110%2040%20Q%2080%2040%2095%20100%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.signs.libra="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22DDuQtP-VmcjbW8JG7HV6-5%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2040%20136.78%20L%20160%20136.78%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22DDuQtP-VmcjbW8JG7HV6-6%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2040%20108.6%20L%2084.04%20109.09%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22DDuQtP-VmcjbW8JG7HV6-7%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20116.38%20109.09%20L%20160%20108.6%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22DDuQtP-VmcjbW8JG7HV6-8%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20125.48%2098.82%20C%20119.06%20110.71%20105.66%20116.67%2092.85%20113.33%20C%2080.03%20109.99%2071%2098.19%2070.85%2084.59%20C%2070.7%2070.98%2079.47%2058.98%2092.21%2055.34%20C%20104.95%2051.71%20118.48%2057.35%20125.16%2069.09%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20transform%3D%22rotate(90%2C100%2C84.25)%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22Vif0qCJVHSTV2Csg5cyl-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.signs.pisces="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22ufDh7fpc4K_yNdC7vCHW-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22ufDh7fpc4K_yNdC7vCHW-6%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2057.79%2045.18%20C%2074.33%2047.25%2087.67%2067.3%2089.73%2093.17%20C%2091.79%20119.04%2082.01%20143.63%2066.3%20152.05%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22ufDh7fpc4K_yNdC7vCHW-7%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20135.25%20152.82%20C%20119.46%20145.63%20108.98%20122.12%20110.08%2096.34%20C%20111.17%2070.55%20123.54%2049.44%20139.81%2045.61%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22ufDh7fpc4K_yNdC7vCHW-8%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2055.01%2099.91%20L%20144.99%2099.86%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%222UPBxVXPtNNG9HLaSRjR-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.signs.sagittarius="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22bNOf38aV_gRLlzT1H2mC-8%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2059%20127.75%20L%20138%2048.75%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22bNOf38aV_gRLlzT1H2mC-9%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2060%2086.75%20L%20100%20126.75%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22bNOf38aV_gRLlzT1H2mC-10%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2099%2047.75%20L%20141%2047.75%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22bNOf38aV_gRLlzT1H2mC-11%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20139%2087.75%20L%20139%2045.75%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22bTJtWIvd38qZUwxlYIHf-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.signs.scorpio="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22xiVi_kujB_bSvCnK_Mbj-8%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2060%20143%20Q%2060%2080%2060%2060%20Q%2060%2040%2060%2035%20Q%2060%2030%2050%2020%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22xiVi_kujB_bSvCnK_Mbj-9%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2090%20143%20Q%2090%2080%2090%2060%20Q%2090%2040%2080%2030.75%20Q%2070%2021.5%2060%2041.5%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22xiVi_kujB_bSvCnK_Mbj-10%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20152.09%20133.66%20Q%20120%20165.75%20120%20122.88%20Q%20120%2080%20120%2060%20Q%20120%2040%20110%2030.75%20Q%20100%2021.5%2089%2044.5%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3Cpath%20d%3D%22M%20150.86%20140.07%20L%20156.05%20129.7%20L%20145.68%20134.89%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%2278SzmRzQp-I1tTwLOdSe-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.signs.taurus="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22-6Y1EZ5wd5mKBmpr7pZl-13%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20150%2050%20Q%20130%2050%20125%2060%20Q%20120%2070%20115%2075%20Q%20110%2080%20105%2080%20Q%20100%2080%2095%2080%20Q%2090%2080%2085%2075%20Q%2080%2070%2075%2060%20Q%2070%2050%2050%2050%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22-6Y1EZ5wd5mKBmpr7pZl-14%22%3E%3Cg%3E%3Cellipse%20cx%3D%22100%22%20cy%3D%22120%22%20rx%3D%2240%22%20ry%3D%2240%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22UmnKpyvcFwhx0IRVoUol-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.signs.virgo="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22NISO0k0YKw3UAR4flL04-8%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22NISO0k0YKw3UAR4flL04-9%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2060%20143%20Q%2060%2080%2060%2060%20Q%2060%2040%2060%2035%20Q%2060%2030%2050%2020%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22NISO0k0YKw3UAR4flL04-10%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2090%20143%20Q%2090%2080%2090%2060%20Q%2090%2040%2080%2030.75%20Q%2070%2021.5%2060%2041.5%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22NISO0k0YKw3UAR4flL04-11%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20150%20171.5%20Q%20120%20141.5%20120%20110.75%20Q%20120%2080%20120%2060%20Q%20120%2040%20110%2030.75%20Q%20100%2021.5%2089%2044.5%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22NISO0k0YKw3UAR4flL04-12%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20110%20161.5%20Q%20130%20141.5%20135%20131.5%20Q%20140%20121.5%20140%20106.5%20Q%20140%2091.5%20135%2086.5%20Q%20130%2081.5%20120%20101.5%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%2234pg9PiOzKNUfzoN4yK9-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.aspects.conjunction="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22gGTkRmc-nT83Q299-C-k-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22a2c2rf50iBX5W4IijcMr-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22a2c2rf50iBX5W4IijcMr-6%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20108.47%2092.68%20L%20128.5%2072%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(237%2C%20237%2C%20237))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22a2c2rf50iBX5W4IijcMr-7%22%3E%3Cg%3E%3Cellipse%20cx%3D%2294%22%20cy%3D%22108%22%20rx%3D%2222.5%22%20ry%3D%2220%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(237%2C%20237%2C%20237))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.aspects.opposition="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22xVQDPyRT5oTKQHZ23-IM-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22xVQDPyRT5oTKQHZ23-IM-6%22%3E%3Cg%3E%3Cellipse%20cx%3D%2275%22%20cy%3D%22125%22%20rx%3D%2222.5%22%20ry%3D%2220%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23990000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(153%2C%200%2C%200)%2C%20rgb(255%2C%20181%2C%20181))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22xVQDPyRT5oTKQHZ23-IM-7%22%3E%3Cg%3E%3Cellipse%20cx%3D%22125%22%20cy%3D%2275%22%20rx%3D%2222.5%22%20ry%3D%2220%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23990000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(153%2C%200%2C%200)%2C%20rgb(255%2C%20181%2C%20181))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22xVQDPyRT5oTKQHZ23-IM-8%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2089.71%20109.86%20L%20109.27%2089.3%22%20fill%3D%22none%22%20stroke%3D%22%23990000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(153%2C%200%2C%200)%2C%20rgb(255%2C%20181%2C%20181))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22EZUqS9dHCJ6ET5sfbTn7-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.aspects.quincunx="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22vdzi6F08xrY5ULLa3aSw-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22vdzi6F08xrY5ULLa3aSw-6%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2070%2065%20L%20130%20100%20L%2070%20135%20Z%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23009900%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20transform%3D%22rotate(-90%2C100%2C100)%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%20153%2C%200)%2C%20rgb(50%2C%20181%2C%2050))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22bWTqftR76DX4mWTuiE5u-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.aspects.semisextile="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22vdzi6F08xrY5ULLa3aSw-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22vdzi6F08xrY5ULLa3aSw-6%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2070%2065%20L%20130%20100%20L%2070%20135%20Z%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23009900%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20transform%3D%22rotate(-90%2C100%2C100)%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%20153%2C%200)%2C%20rgb(50%2C%20181%2C%2050))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22bWTqftR76DX4mWTuiE5u-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.aspects.semisquare="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22vdzi6F08xrY5ULLa3aSw-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22vdzi6F08xrY5ULLa3aSw-6%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2070%2065%20L%20130%20100%20L%2070%20135%20Z%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23009900%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20transform%3D%22rotate(-90%2C100%2C100)%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%20153%2C%200)%2C%20rgb(50%2C%20181%2C%2050))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22bWTqftR76DX4mWTuiE5u-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.aspects.sesquisquare="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22vdzi6F08xrY5ULLa3aSw-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22vdzi6F08xrY5ULLa3aSw-6%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2070%2065%20L%20130%20100%20L%2070%20135%20Z%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23009900%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20transform%3D%22rotate(-90%2C100%2C100)%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%20153%2C%200)%2C%20rgb(50%2C%20181%2C%2050))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22bWTqftR76DX4mWTuiE5u-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.aspects.sextile="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%222H47zmM80uQNvDx8u0mK-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%222H47zmM80uQNvDx8u0mK-6%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2060%20100%20L%20140%20100%22%20fill%3D%22none%22%20stroke%3D%22%23009900%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%20153%2C%200)%2C%20rgb(50%2C%20181%2C%2050))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%222H47zmM80uQNvDx8u0mK-7%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2070%2070%20L%20130%20130%22%20fill%3D%22none%22%20stroke%3D%22%23009900%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%20153%2C%200)%2C%20rgb(50%2C%20181%2C%2050))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%222H47zmM80uQNvDx8u0mK-8%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2070%20130%20L%20130%2070%22%20fill%3D%22none%22%20stroke%3D%22%23009900%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%20153%2C%200)%2C%20rgb(50%2C%20181%2C%2050))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%221QpNWf1EhDtsYVpd6CiN-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.aspects.square="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22p0KHWF2mTDFWD3EQTWJK-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22p0KHWF2mTDFWD3EQTWJK-6%22%3E%3Cg%3E%3Crect%20x%3D%2270%22%20y%3D%2270%22%20width%3D%2260%22%20height%3D%2260%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23990000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(153%2C%200%2C%200)%2C%20rgb(255%2C%20181%2C%20181))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22Uxbd23ua_aHTV4gALoXr-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.aspects.trine="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22vdzi6F08xrY5ULLa3aSw-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22vdzi6F08xrY5ULLa3aSw-6%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2070%2065%20L%20130%20100%20L%2070%20135%20Z%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23009900%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20transform%3D%22rotate(-90%2C100%2C100)%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%20153%2C%200)%2C%20rgb(50%2C%20181%2C%2050))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22bWTqftR76DX4mWTuiE5u-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.planets,r.signs,r.aspects;class i{constructor(){this.houseSystems={Placidus:this.calculatePlacidus.bind(this),Koch:this.calculateKoch.bind(this),Equal:this.calculateEqual.bind(this),"Whole Sign":this.calculateWholeSign.bind(this),Porphyry:this.calculatePorphyry.bind(this),Regiomontanus:this.calculateRegiomontanus.bind(this),Campanus:this.calculateCampanus.bind(this),Morinus:this.calculateMorinus.bind(this),Topocentric:this.calculateTopocentric.bind(this)}}getAvailableHouseSystems(){return Object.keys(this.houseSystems)}calculateHouseCusps(e,t="Placidus",s={}){if("number"!=typeof e||e<0||e>=360)throw new Error("Ascendant must be a number between 0 and 360");if(!this.houseSystems[t])throw new Error(`House system "${t}" is not supported`);return this.houseSystems[t](e,s)}calculatePlacidus(e,{latitude:t,mc:s}){if("number"!=typeof t||"number"!=typeof s)throw new Error("Placidus house system requires latitude and mc");if(Math.abs(t)>=66.5)return this.calculatePorphyry(e,{mc:s});const r=23.4367,i=new Array(12);i[0]=e,i[9]=s,i[6]=this.normalizeAngle(e+180),i[3]=this.normalizeAngle(s+180),this.degreesToRadians(t),this.degreesToRadians(r),this.degreesToRadians(s);try{i[10]=this.calculatePlacidusIntermediateHouse(s,e,1/3,t,r),i[11]=this.calculatePlacidusIntermediateHouse(s,e,2/3,t,r),i[1]=this.calculatePlacidusIntermediateHouse(e,i[3],1/3,t,r),i[2]=this.calculatePlacidusIntermediateHouse(e,i[3],2/3,t,r),i[4]=this.calculatePlacidusIntermediateHouse(i[3],i[6],1/3,t,r),i[5]=this.calculatePlacidusIntermediateHouse(i[3],i[6],2/3,t,r),i[7]=this.calculatePlacidusIntermediateHouse(i[6],i[9],1/3,t,r),i[8]=this.calculatePlacidusIntermediateHouse(i[6],i[9],2/3,t,r)}catch(t){return console.warn(`Placidus calculation failed: ${t.message}. Falling back to Porphyry.`),this.calculatePorphyry(e,{mc:s})}return i}calculatePlacidusIntermediateHouse(e,t,s,r,i){const n=this.calculateArc(e,t);return this.normalizeAngle(e+n*s)}calculateKoch(e,{latitude:t,mc:s}){if("number"!=typeof t||"number"!=typeof s)throw new Error("Koch house system requires latitude and mc");const r=new Array(12);r[0]=e,r[9]=s,r[6]=this.normalizeAngle(e+180),r[3]=this.normalizeAngle(s+180);const i=this.calculateArc(r[9],r[0]);r[10]=this.normalizeAngle(r[9]+i/3),r[11]=this.normalizeAngle(r[9]+2*i/3);const n=this.calculateArc(r[0],r[3]);r[1]=this.normalizeAngle(r[0]+n/3),r[2]=this.normalizeAngle(r[0]+2*n/3);const o=this.calculateArc(r[3],r[6]);r[4]=this.normalizeAngle(r[3]+o/3),r[5]=this.normalizeAngle(r[3]+2*o/3);const a=this.calculateArc(r[6],r[9]);return r[7]=this.normalizeAngle(r[6]+a/3),r[8]=this.normalizeAngle(r[6]+2*a/3),r}calculateEqual(e){const t=new Array(12);for(let s=0;s<12;s++)t[s]=this.normalizeAngle(e+30*s);return t}calculateWholeSign(e){const t=new Array(12),s=Math.floor(e/30);for(let e=0;e<12;e++)t[e]=(s+e)%12*30;return t}calculatePorphyry(e,{mc:t}){if("number"!=typeof t)throw new Error("Porphyry house system requires mc");const s=new Array(12);s[0]=e,s[9]=t,s[6]=this.normalizeAngle(e+180),s[3]=this.normalizeAngle(t+180);const r=this.calculateArc(s[9],s[0]);s[10]=this.normalizeAngle(s[9]+r/3),s[11]=this.normalizeAngle(s[9]+2*r/3);const i=this.calculateArc(s[0],s[3]);s[1]=this.normalizeAngle(s[0]+i/3),s[2]=this.normalizeAngle(s[0]+2*i/3);const n=this.calculateArc(s[3],s[6]);s[4]=this.normalizeAngle(s[3]+n/3),s[5]=this.normalizeAngle(s[3]+2*n/3);const o=this.calculateArc(s[6],s[9]);return s[7]=this.normalizeAngle(s[6]+o/3),s[8]=this.normalizeAngle(s[6]+2*o/3),s}calculateRegiomontanus(e,{latitude:t,mc:s}){if("number"!=typeof t||"number"!=typeof s)throw new Error("Regiomontanus house system requires latitude and mc");const r=new Array(12);r[0]=e,r[9]=s,r[6]=this.normalizeAngle(e+180),r[3]=this.normalizeAngle(s+180);const i=this.calculateArc(r[9],r[0]);r[10]=this.normalizeAngle(r[9]+i/3),r[11]=this.normalizeAngle(r[9]+2*i/3);const n=this.calculateArc(r[0],r[3]);r[1]=this.normalizeAngle(r[0]+n/3),r[2]=this.normalizeAngle(r[0]+2*n/3);const o=this.calculateArc(r[3],r[6]);r[4]=this.normalizeAngle(r[3]+o/3),r[5]=this.normalizeAngle(r[3]+2*o/3);const a=this.calculateArc(r[6],r[9]);return r[7]=this.normalizeAngle(r[6]+a/3),r[8]=this.normalizeAngle(r[6]+2*a/3),r}calculateCampanus(e,{latitude:t,mc:s}){if("number"!=typeof t||"number"!=typeof s)throw new Error("Campanus house system requires latitude and mc");const r=new Array(12);r[0]=e,r[9]=s,r[6]=this.normalizeAngle(e+180),r[3]=this.normalizeAngle(s+180);const i=this.calculateArc(r[9],r[0]);r[10]=this.normalizeAngle(r[9]+i/3),r[11]=this.normalizeAngle(r[9]+2*i/3);const n=this.calculateArc(r[0],r[3]);r[1]=this.normalizeAngle(r[0]+n/3),r[2]=this.normalizeAngle(r[0]+2*n/3);const o=this.calculateArc(r[3],r[6]);r[4]=this.normalizeAngle(r[3]+o/3),r[5]=this.normalizeAngle(r[3]+2*o/3);const a=this.calculateArc(r[6],r[9]);return r[7]=this.normalizeAngle(r[6]+a/3),r[8]=this.normalizeAngle(r[6]+2*a/3),r}calculateMorinus(e,{mc:t}){if("number"!=typeof t)throw new Error("Morinus house system requires mc");const s=new Array(12);s[0]=e,s[9]=t,s[6]=this.normalizeAngle(e+180),s[3]=this.normalizeAngle(t+180);const r=this.calculateArc(s[9],s[0]);s[10]=this.normalizeAngle(s[9]+r/3),s[11]=this.normalizeAngle(s[9]+2*r/3);const i=this.calculateArc(s[0],s[3]);s[1]=this.normalizeAngle(s[0]+i/3),s[2]=this.normalizeAngle(s[0]+2*i/3);const n=this.calculateArc(s[3],s[6]);s[4]=this.normalizeAngle(s[3]+n/3),s[5]=this.normalizeAngle(s[3]+2*n/3);const o=this.calculateArc(s[6],s[9]);return s[7]=this.normalizeAngle(s[6]+o/3),s[8]=this.normalizeAngle(s[6]+2*o/3),s}calculateTopocentric(e,{latitude:t,mc:s}){if("number"!=typeof t||"number"!=typeof s)throw new Error("Topocentric house system requires latitude and mc");const r=new Array(12);r[0]=e,r[9]=s,r[6]=this.normalizeAngle(e+180),r[3]=this.normalizeAngle(s+180);const i=this.calculateArc(r[9],r[0]);r[10]=this.normalizeAngle(r[9]+i/3),r[11]=this.normalizeAngle(r[9]+2*i/3);const n=this.calculateArc(r[0],r[3]);r[1]=this.normalizeAngle(r[0]+n/3),r[2]=this.normalizeAngle(r[0]+2*n/3);const o=this.calculateArc(r[3],r[6]);r[4]=this.normalizeAngle(r[3]+o/3),r[5]=this.normalizeAngle(r[3]+2*o/3);const a=this.calculateArc(r[6],r[9]);return r[7]=this.normalizeAngle(r[6]+a/3),r[8]=this.normalizeAngle(r[6]+2*a/3),r}calculateArc(e,t){const s=this.normalizeAngle(t-e);return s<=180?s:360-s}normalizeAngle(e){return(e%360+360)%360}rightAscensionToLongitude(e,t){return this.radiansToDegrees(Math.atan2(Math.sin(e)*Math.cos(t),Math.cos(e)))}longitudeToRightAscension(e,t){const s=this.degreesToRadians(e);return Math.atan2(Math.sin(s)*Math.cos(t),Math.cos(s))}degreesToRadians(e){return e*Math.PI/180}radiansToDegrees(e){return 180*e/Math.PI}}class n{constructor(e={}){this.astronomicalData={ascendant:0,mc:90,latitude:51.5,houseSystem:"Placidus",planets:{sun:0,moon:0,mercury:0,venus:0,mars:0,jupiter:0,saturn:0,uranus:0,neptune:0,pluto:0}},this.primaryAspectSettings={enabled:!0,orb:6,types:{conjunction:{angle:0,orb:8,color:"#000000",enabled:!0,lineStyle:"none",strokeWidth:1},opposition:{angle:180,orb:6,color:"#E41B17",enabled:!0,lineStyle:"solid",strokeWidth:1},trine:{angle:120,orb:6,color:"#4CC417",enabled:!0,lineStyle:"solid",strokeWidth:1},square:{angle:90,orb:6,color:"#F62817",enabled:!0,lineStyle:"dashed",strokeWidth:1},sextile:{angle:60,orb:4,color:"#56A5EC",enabled:!0,lineStyle:"dashed",strokeWidth:1}}},this.secondaryAspectSettings={enabled:!0,orb:6,types:{conjunction:{angle:0,orb:8,color:"#AA00AA",enabled:!0,lineStyle:"none",strokeWidth:1},opposition:{angle:180,orb:6,color:"#FF6600",enabled:!0,lineStyle:"solid",strokeWidth:1},trine:{angle:120,orb:6,color:"#00AA00",enabled:!0,lineStyle:"solid",strokeWidth:1},square:{angle:90,orb:6,color:"#CC0066",enabled:!0,lineStyle:"dashed",strokeWidth:1},sextile:{angle:60,orb:4,color:"#0099CC",enabled:!0,lineStyle:"dashed",strokeWidth:1}}},this.synastryAspectSettings={enabled:!0,orb:6,types:{conjunction:{angle:0,orb:8,color:"#666666",enabled:!0,lineStyle:"none",strokeWidth:1},opposition:{angle:180,orb:6,color:"#9933CC",enabled:!0,lineStyle:"solid",strokeWidth:.5},trine:{angle:120,orb:6,color:"#33AA55",enabled:!0,lineStyle:"solid",strokeWidth:.5},square:{angle:90,orb:6,color:"#CC6633",enabled:!0,lineStyle:"dotted",strokeWidth:.5},sextile:{angle:60,orb:4,color:"#5599DD",enabled:!0,lineStyle:"dotted",strokeWidth:.5}}},this.aspectSettings={enabled:!0,orb:6,types:{conjunction:{angle:0,orb:8,color:"#000000",enabled:!0,lineStyle:"none",strokeWidth:1},opposition:{angle:180,orb:6,color:"#E41B17",enabled:!0,lineStyle:"solid",strokeWidth:1},trine:{angle:120,orb:6,color:"#4CC417",enabled:!0,lineStyle:"solid",strokeWidth:1},square:{angle:90,orb:6,color:"#F62817",enabled:!0,lineStyle:"dashed",strokeWidth:1},sextile:{angle:60,orb:4,color:"#56A5EC",enabled:!0,lineStyle:"dashed",strokeWidth:1}}},this.planetSettings={enabled:!0,primaryEnabled:!0,secondaryEnabled:!0,dotSize:3,iconSize:24,orbs:{sun:8,moon:8,mercury:6,venus:6,mars:6,jupiter:6,saturn:6,uranus:4,neptune:4,pluto:4},colors:{sun:"#ff9900",moon:"#aaaaaa",mercury:"#3399cc",venus:"#cc66cc",mars:"#cc3333",jupiter:"#9966cc",saturn:"#336633",uranus:"#33cccc",neptune:"#3366ff",pluto:"#663366"},visible:{sun:!0,moon:!0,mercury:!0,venus:!0,mars:!0,jupiter:!0,saturn:!0,uranus:!0,neptune:!0,pluto:!0}},this.houseSettings={enabled:!0,lineColor:"#666666",textColor:"#333333",fontSize:10,rotationAngle:0},this.zodiacSettings={enabled:!0,colors:{aries:"#ff6666",taurus:"#66cc66",gemini:"#ffcc66",cancer:"#6699cc",leo:"#ff9900",virgo:"#996633",libra:"#6699ff",scorpio:"#cc3366",sagittarius:"#cc66ff",capricorn:"#339966",aquarius:"#3399ff",pisces:"#9966cc"},fontSize:10},this.radius={innermost:90,zodiacInner:120,zodiacMiddle:150,zodiacOuter:180,planet:105,aspectInner:20,aspectOuter:120,houseNumberRadius:210},this.svg={width:460,height:460,viewBox:"0 0 460 460",center:{x:230,y:230}},this.assets={basePath:"./assets/",zodiacIconPath:"svg/zodiac/",planetIconPath:"svg/zodiac/"},this.theme={backgroundColor:"transparent",textColor:"#333333",lineColor:"#666666",lightLineColor:"#cccccc",fontFamily:"'Arial', sans-serif"},this.houseCusps=[],this.mergeConfig(e),this._initializeHouseCusps()}mergeConfig(e){const t=(e,s)=>{if("object"!=typeof s||null===s)return s;for(const r in s)Object.prototype.hasOwnProperty.call(s,r)&&("object"==typeof s[r]&&null!==s[r]&&"object"==typeof e[r]&&null!==e[r]?e[r]=t(e[r],s[r]):e[r]=s[r]);return e};for(const s in e)Object.prototype.hasOwnProperty.call(e,s)&&Object.prototype.hasOwnProperty.call(this,s)&&(this[s]=t(this[s],e[s]))}_initializeHouseCusps(){if("number"==typeof this.astronomicalData.ascendant&&"number"==typeof this.astronomicalData.mc)try{const e=new i;this.houseCusps=e.calculateHouseCusps(this.astronomicalData.ascendant,this.astronomicalData.houseSystem,{latitude:this.astronomicalData.latitude,mc:this.astronomicalData.mc})}catch(e){console.error("Failed to calculate house cusps:",e?.message||e),this.houseCusps=[]}}getPlanetSettings(e){const t=e.toLowerCase();return{color:this.planetSettings.colors[t]||"#000000",size:this.planetSettings.size,visible:!1!==this.planetSettings.visible[t]}}getAspectSettings(e){const t=e.toLowerCase();return this.aspectSettings.types[t]||{angle:0,orb:this.aspectSettings.orb,color:"#999999",enabled:!0}}getZodiacSettings(e){const t=e.toLowerCase();return{color:this.zodiacSettings.colors[t]||"#666666",fontSize:this.zodiacSettings.fontSize}}updateAspectSettings(e){this.aspectSettings={...this.aspectSettings,...e},this.primaryAspectSettings={...this.primaryAspectSettings,...e}}updatePrimaryAspectSettings(e){this.primaryAspectSettings={...this.primaryAspectSettings,...e}}updateSecondaryAspectSettings(e){this.secondaryAspectSettings={...this.secondaryAspectSettings,...e}}updateSynastryAspectSettings(e){this.synastryAspectSettings={...this.synastryAspectSettings,...e}}updatePlanetSettings(e){this.planetSettings={...this.planetSettings,...e}}updateHouseSettings(e){this.houseSettings={...this.houseSettings,...e}}updateZodiacSettings(e){this.zodiacSettings={...this.zodiacSettings,...e}}setRadius(e,t){Object.prototype.hasOwnProperty.call(this.radius,e)&&(this.radius[e]=t)}togglePlanetVisibility(e,t){this.planetSettings&&this.planetSettings.visible&&(this.planetSettings.visible[e]=t)}toggleHousesVisibility(e){this.houseSettings.enabled=e}toggleAspectsVisibility(e){this.aspectSettings.enabled=e,this.primaryAspectSettings.enabled=e,this.secondaryAspectSettings.enabled=e,this.synastryAspectSettings.enabled=e}togglePrimaryAspectsVisibility(e){this.primaryAspectSettings.enabled=e}toggleSecondaryAspectsVisibility(e){this.secondaryAspectSettings.enabled=e}toggleSynastryAspectsVisibility(e){this.synastryAspectSettings.enabled=e}togglePrimaryPlanetsVisibility(e){this.planetSettings.primaryEnabled=e}toggleSecondaryPlanetsVisibility(e){this.planetSettings.secondaryEnabled=e}setHouseSystem(e){return this.astronomicalData.houseSystem=e,this._initializeHouseCusps(),!0}getHouseCusps(){return this.houseCusps&&0!==this.houseCusps.length||this._initializeHouseCusps(),this.houseCusps.length>0&&"number"==typeof this.houseCusps[0]?this.houseCusps.map((e=>({lon:e}))):this.houseCusps}setAscendant(e){return!("number"!=typeof e||e<0||e>=360)&&(this.astronomicalData.ascendant=e,this._initializeHouseCusps(),!0)}setMidheaven(e){return!("number"!=typeof e||e<0||e>=360)&&(this.astronomicalData.mc=e,this._initializeHouseCusps(),!0)}setLatitude(e){return!("number"!=typeof e||e<-90||e>90)&&(this.astronomicalData.latitude=e,this._initializeHouseCusps(),!0)}setPlanetPosition(e,t){const s=e.toLowerCase();return!("number"!=typeof t||t<0||t>=360)&&(!!this.astronomicalData.planets.hasOwnProperty(s)&&(this.astronomicalData.planets[s]=t,!0))}getPlanetPosition(e){const t=e.toLowerCase();return this.astronomicalData.planets.hasOwnProperty(t)?this.astronomicalData.planets[t]:null}getHouseSystem(){return this.astronomicalData.houseSystem}getAvailableHouseSystems(){return(new i).getAvailableHouseSystems()}}class o{constructor(){this.svgNS="http://www.w3.org/2000/svg"}createSVGElement(e,t={}){const s=document.createElementNS(this.svgNS,e);for(const[e,r]of Object.entries(t))s.setAttribute(e,r);return s}addTooltip(e,t){const s=document.createElementNS(this.svgNS,"title");return s.textContent=t,e.appendChild(s),e}pointOnCircle(e,t,s,r){const i=(r-90)*(Math.PI/180);return{x:e+s*Math.cos(i),y:t+s*Math.sin(i)}}}class a{constructor(e={}){this.svgNS="http://www.w3.org/2000/svg",this.svg=null,this.groups={},this.svgUtils=e.svgUtils||t.getSvgUtils(),this.groupOrder=["zodiac","houseDivisions","primaryAspects","secondaryAspects","synastryAspects","aspects","primaryPlanets","secondaryPlanets","houses"]}initialize(e,t={}){let s;if("string"==typeof e){if(s=document.querySelector(e),!s)return console.error(`SVGManager: Container not found with selector: ${e}`),null}else{if(!(e instanceof Element||e instanceof HTMLElement))return console.error("SVGManager: Invalid container. Expected string selector or DOM element."),null;s=e}s.innerHTML="";const r={width:"100%",height:"100%",viewBox:"0 0 460 460",preserveAspectRatio:"xMidYMid meet",class:"nocturna-wheel-svg",...t};this.svg=document.createElementNS(this.svgNS,"svg");for(const[e,t]of Object.entries(r))this.svg.setAttribute(e,t);return s.appendChild(this.svg),console.log("SVGManager: SVG initialized"),this.svg}createStandardGroups(){this.svg?(this.groups={},this.svg.querySelectorAll("g").forEach((e=>e.remove())),console.log("SVGManager: Creating standard groups:",this.groupOrder),this.groupOrder.forEach((e=>{this.createGroup(e)})),this.createGroup("planets")):console.error("SVGManager: Cannot create groups, SVG not initialized.")}createGroup(e){if(!this.svg)return console.error(`SVGManager: Cannot create group '${e}', SVG not initialized.`),null;if(this.groups[e])return this.groups[e];const t=document.createElementNS(this.svgNS,"g");return t.setAttribute("id",`group-${e}`),t.setAttribute("class",`svg-group svg-group-${e}`),this.svg.appendChild(t),this.groups[e]=t,t}getGroup(e){return this.svg?("planets"===e&&(console.warn('SVGManager: Using deprecated "planets" group. Use "primaryPlanets" or "secondaryPlanets" instead.'),e="primaryPlanets"),this.groups[e]?this.groups[e]:(console.warn(`SVGManager: Group '${e}' not found. Creating it.`),this.createGroup(e))):(console.warn(`SVGManager: Cannot get group '${e}', SVG not initialized.`),null)}getAllGroups(){return this.groups}getSVG(){return this.svg}}class l{constructor(e){if(!e||!e.svgNS||!e.config)throw new Error(`${this.constructor.name}: Missing required options (svgNS, config)`);this.svgNS=e.svgNS,this.config=e.config,this.options=e,this.svgUtils=e.svgUtils||{svgNS:this.svgNS,createSVGElement:(e,t={})=>{const s=document.createElementNS(this.svgNS,e);for(const[e,r]of Object.entries(t))s.setAttribute(e,r);return s},addTooltip:(e,t)=>{const s=document.createElementNS(this.svgNS,"title");return s.textContent=t,e.appendChild(s),e},pointOnCircle:(e,t,s,r)=>{const i=(r-90)*(Math.PI/180);return{x:e+s*Math.cos(i),y:t+s*Math.sin(i)}}},this.centerX=this.config.svg.center.x,this.centerY=this.config.svg.center.y,this.innerRadius=this.config.radius.zodiacInner,this.middleRadius=this.config.radius.zodiacMiddle,this.outerRadius=this.config.radius.zodiacOuter}clearGroup(e){e&&(e.innerHTML="")}render(e){throw new Error(`${this.constructor.name}: render() not implemented.`)}}class g{static capitalizeFirstLetter(e){return e.charAt(0).toUpperCase()+e.slice(1)}static getHouseFromPosition(e,t=0){const s=(e-t+360)%360;return Math.floor(s/30)+1}static getZodiacSigns(){return["aries","taurus","gemini","cancer","leo","virgo","libra","scorpio","sagittarius","capricorn","aquarius","pisces"]}static getHouseSystems(){return{Placidus:"Most commonly used house system in Western astrology, based on time of day",Koch:"Developed by Walter Koch, a time-based system similar to Placidus",Campanus:"Medieval system dividing the prime vertical into equal parts",Regiomontanus:"Similar to Campanus, but using the celestial equator instead of prime vertical",Equal:"Divides the ecliptic into 12 equal segments of 30° each from the Ascendant","Whole Sign":"Assigns the entire rising sign to the 1st house, with subsequent signs as houses",Porphyry:"Simple system that divides each quadrant into three equal parts",Topocentric:"Modern system similar to Placidus but more accurate for extreme latitudes"}}static getPlanets(){return["sun","moon","mercury","venus","mars","jupiter","saturn","uranus","neptune","pluto"]}static houseToRoman(e){return["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII"][e-1]||""}static getPlanetFullName(e,t="en"){const s={en:{sun:"Sun",moon:"Moon",mercury:"Mercury",venus:"Venus",mars:"Mars",jupiter:"Jupiter",saturn:"Saturn",uranus:"Uranus",neptune:"Neptune",pluto:"Pluto"},ru:{sun:"Солнце",moon:"Луна",mercury:"Меркурий",venus:"Венера",mars:"Марс",jupiter:"Юпитер",saturn:"Сатурн",uranus:"Уран",neptune:"Нептун",pluto:"Плутон"}};return(s[t]||s.en)[e.toLowerCase()]||this.capitalizeFirstLetter(e)}static getZodiacSignFullName(e,t="en"){const s={en:{aries:"Aries",taurus:"Taurus",gemini:"Gemini",cancer:"Cancer",leo:"Leo",virgo:"Virgo",libra:"Libra",scorpio:"Scorpio",sagittarius:"Sagittarius",capricorn:"Capricorn",aquarius:"Aquarius",pisces:"Pisces"},ru:{aries:"Овен",taurus:"Телец",gemini:"Близнецы",cancer:"Рак",leo:"Лев",virgo:"Дева",libra:"Весы",scorpio:"Скорпион",sagittarius:"Стрелец",capricorn:"Козерог",aquarius:"Водолей",pisces:"Рыбы"}};return(s[t]||s.en)[e.toLowerCase()]||this.capitalizeFirstLetter(e)}}class c extends l{constructor(e){if(super(e),this.iconProvider=e.iconProvider,!e.assetBasePath&&!this.iconProvider)throw new Error("ZodiacRenderer: Missing required option assetBasePath or iconProvider");this.assetBasePath=e.assetBasePath||"./assets/",this.signIconRadius=(this.outerRadius+this.middleRadius)/2,this.signIconSize=30}render(e){if(!e)return console.error("ZodiacRenderer: parentGroup is null or undefined."),[];this.clearGroup(e);const t=[];return t.push(...this.renderBaseCircles(e)),t.push(...this.renderDivisionLines(e)),t.push(...this.renderZodiacSigns(e)),console.log("ZodiacRenderer: Rendering complete."),t}renderBaseCircles(e){const t=[];return[{r:this.outerRadius,class:"chart-outer-circle"},{r:this.middleRadius,class:"chart-middle-circle"},{r:this.innerRadius,class:"chart-inner-circle"}].forEach((s=>{let r="#999",i="0.5";"chart-outer-circle"===s.class&&(r="#666",i="1");const n=this.svgUtils.createSVGElement("circle",{cx:this.centerX,cy:this.centerY,r:s.r,fill:"transparent",stroke:r,"stroke-width":i,class:`zodiac-element ${s.class}`});e.appendChild(n),t.push(n)})),t}renderDivisionLines(e){const t=[];for(let s=0;s<12;s++){const r=30*s,i=this.svgUtils.pointOnCircle(this.centerX,this.centerY,this.middleRadius,r),n=this.svgUtils.pointOnCircle(this.centerX,this.centerY,this.outerRadius,r);let o="";0===r?o="aries-point":90===r?o="cancer-point":180===r?o="libra-point":270===r&&(o="capricorn-point");const a=this.svgUtils.createSVGElement("line",{x1:i.x,y1:i.y,x2:n.x,y2:n.y,stroke:"#999","stroke-width":"0.75",class:`zodiac-element zodiac-division-line ${o}`});e.appendChild(a),t.push(a)}return t}renderZodiacSigns(e){const t=[],s=g.getZodiacSigns();for(let r=0;r<12;r++){const i=s[r],n=30*r+15,o=this.svgUtils.pointOnCircle(this.centerX,this.centerY,this.signIconRadius,n);let a;if(this.iconProvider)a=this.iconProvider.getZodiacIconPath(i);else{const e=this.options.assetBasePath||this.assetBasePath||"./assets/";a=`${e}svg/zodiac/zodiac-sign-${i}.svg`}this._loggedSigns||(this._loggedSigns={}),this._loggedSigns[i]||(console.log(`ZodiacRenderer: Loading sign '${i}':`,a.startsWith("data:")?"inline data URL":a),this._loggedSigns[i]=!0);const l=this.svgUtils.createSVGElement("image",{x:o.x-this.signIconSize/2,y:o.y-this.signIconSize/2,width:this.signIconSize,height:this.signIconSize,href:a,class:`zodiac-element zodiac-sign zodiac-sign-${i}`});l.addEventListener("error",(()=>{console.warn(`Zodiac sign icon not found: ${a}`),l.setAttribute("href","");const s=i.substring(0,3).toUpperCase();let r;this.iconProvider?r=this.iconProvider.createTextFallback(this.svgUtils,{x:o.x,y:o.y,size:"10px",color:"#ccc",className:`zodiac-element zodiac-sign zodiac-sign-${i}`},s):(r=this.svgUtils.createSVGElement("text",{x:o.x,y:o.y,"text-anchor":"middle","dominant-baseline":"central","font-size":"10px",fill:"#ccc",class:`zodiac-element zodiac-sign zodiac-sign-${i}`}),r.textContent=s),e.appendChild(r),t.push(r)})),this.svgUtils.addTooltip(l,g.getZodiacSignFullName(i)),e.appendChild(l),t.push(l)}return t}}class d extends l{constructor(e){super(e),this.houseData=e.houseData||[],this.extendedRadius=this.outerRadius+25,this.numberRadius=this.outerRadius+30}render(e,t=0){if(!e)return console.error("HouseRenderer: parentGroup is null or undefined."),[];this.clearGroup(e);const s=[];return s.push(...this.renderDivisions(e,t)),s.push(...this.renderNumbers(e,t)),console.log("HouseRenderer: Rendering complete."),s}renderDivisions(e,t){const s=[];let r=0;if(console.log("HouseRenderer: House data for divisions:",this.houseData),this.houseData&&this.houseData.length>=12){r=(360-this.getHouseLongitude(this.houseData[0]))%360}for(let i=0;i<12;i++){let n;n=this.houseData&&this.houseData.length>=12?this.getHouseLongitude(this.houseData[i]):30*i;const o=(n+r+t)%360;let a="";0===i?a="axis asc":3===i?a="axis ic":6===i?a="axis dsc":9===i&&(a="axis mc");const l=this.svgUtils.pointOnCircle(this.centerX,this.centerY,this.innerRadius,o),g=this.svgUtils.pointOnCircle(this.centerX,this.centerY,this.middleRadius,o);let c="#999",d="0.75",h="#999",C="0.75",D=null;a.includes("axis")?(c="#555",d="1",h="#555",C="1"):D="2,2";const p=this.svgUtils.createSVGElement("line",{x1:l.x,y1:l.y,x2:g.x,y2:g.y,stroke:c,"stroke-width":d,class:`house-element house-division-line ${a}`});a.includes("axis")&&(p.style.zIndex=10),e.appendChild(p),s.push(p);const F=this.svgUtils.pointOnCircle(this.centerX,this.centerY,this.outerRadius,o),u=this.svgUtils.pointOnCircle(this.centerX,this.centerY,this.extendedRadius,o),E={x1:F.x,y1:F.y,x2:u.x,y2:u.y,stroke:h,"stroke-width":C,class:`house-element house-division-line outer ${a}`};D&&(E["stroke-dasharray"]=D);const f=this.svgUtils.createSVGElement("line",E);a.includes("axis")&&(f.style.zIndex=10),e.appendChild(f),s.push(f)}return s}renderNumbers(e,t){const s=[];let r=0;if(console.log("HouseRenderer: House data for numbers:",this.houseData),this.houseData&&this.houseData.length>=12){r=(360-this.getHouseLongitude(this.houseData[0]))%360}for(let i=0;i<12;i++){let n;n=this.houseData&&this.houseData.length>=12?this.getHouseLongitude(this.houseData[i]):30*i;const o=((n+r+t)%360+15)%360,a=this.svgUtils.pointOnCircle(this.centerX,this.centerY,this.numberRadius,o),l=this.svgUtils.createSVGElement("text",{x:a.x,y:a.y,class:"house-element house-number"});o>=315||o<45?(l.setAttribute("text-anchor","middle"),l.setAttribute("dominant-baseline","auto")):o>=45&&o<135?(l.setAttribute("text-anchor","start"),l.setAttribute("dominant-baseline","middle")):o>=135&&o<225?(l.setAttribute("text-anchor","middle"),l.setAttribute("dominant-baseline","hanging")):(l.setAttribute("text-anchor","end"),l.setAttribute("dominant-baseline","middle")),l.textContent=g.houseToRoman(i+1),this.svgUtils.addTooltip(l,`House ${i+1}`),e.appendChild(l),s.push(l)}return s}getHouseLongitude(e){return null==e?(console.warn("HouseRenderer: Null or undefined house data"),0):"object"==typeof e&&null!==e&&"lon"in e?e.lon:"number"==typeof e?e:(console.warn("HouseRenderer: Unrecognized house data format",e),0)}}class h extends l{constructor(e){if(super(e),this.iconProvider=e.iconProvider,!e.assetBasePath&&!this.iconProvider)throw new Error(`${this.constructor.name}: Missing required option assetBasePath or iconProvider`);this.assetBasePath=e.assetBasePath||"./assets/"}calculateBasePositions(e,t,s){e.forEach((e=>{const r=(e.position-90)*(Math.PI/180);e.radians=r;const i=this.svgUtils.pointOnCircle(this.centerX,this.centerY,t,e.position);e.x=i.x,e.y=i.y;const n=this.svgUtils.pointOnCircle(this.centerX,this.centerY,s,e.position);e.iconX=n.x,e.iconY=n.y,e.adjustedIconX=e.iconX,e.adjustedIconY=e.iconY}))}preparePlanetData(e,t,s,r){return e.map((e=>({...e,name:e.name||"unknown",position:void 0!==e.position?e.position:0,x:0,y:0,iconX:0,iconY:0,adjustedIconX:0,adjustedIconY:0,radians:0,zodiacSign:g.getZodiacSigns()[Math.floor(e.position/30)%12],position_in_sign:e.position%30,isPrimary:"primary"===t,type:t,color:e.color||"#000000",dotRadius:s,iconRadius:r})))}render(e,t,s=0,r={}){throw new Error(`${this.constructor.name}: render() not implemented.`)}}class C extends h{constructor(e){super(e)}renderPlanetSymbol(e,t,s=24){let r;if(this.iconProvider)r=this.iconProvider.getPlanetIconPath(t.name);else{const e=this.options.assetBasePath||this.assetBasePath||"./assets/";r=`${e}svg/zodiac/zodiac-planet-${t.name.toLowerCase()}.svg`}const i=t.adjustedIconX-s/2,n=t.adjustedIconY-s/2,o=t.isPrimary?"primary":"secondary",a=this.svgUtils.createSVGElement("image",{x:i,y:n,width:s,height:s,href:r,class:`planet-icon planet-${t.name}-icon planet-${o}-icon`});return a.addEventListener("error",(()=>{console.warn(`Planet icon not found: ${r}`),a.setAttribute("href","");const i=t.name.charAt(0).toUpperCase();let n;this.iconProvider?n=this.iconProvider.createTextFallback(this.svgUtils,{x:t.adjustedIconX,y:t.adjustedIconY,size:`${s}px`,color:t.color||"#000000",className:`planet-symbol planet-${t.name}-symbol planet-${o}-symbol`},i):(n=this.svgUtils.createSVGElement("text",{x:t.adjustedIconX,y:t.adjustedIconY,"text-anchor":"middle","dominant-baseline":"middle","font-size":`${s}px`,class:`planet-symbol planet-${t.name}-symbol planet-${o}-symbol`,fill:t.color||"#000000"}),n.textContent=t.name.charAt(0).toUpperCase()),e.appendChild(n)})),a}renderPlanetDot(e,t,s=3){const r=t.isPrimary?"primary":"secondary";return this.svgUtils.createSVGElement("circle",{cx:t.x,cy:t.y,r:s,class:`planet-dot planet-${t.name}-dot planet-${r}-dot`,fill:t.color||"#000000"})}renderConnector(e,t,s,r=.3){const i=t.isPrimary?"primary":"secondary",n=t.x-t.adjustedIconX,o=t.y-t.adjustedIconY;if(Math.sqrt(n*n+o*o)>s*r){return this.svgUtils.createSVGElement("line",{x1:t.x,y1:t.y,x2:t.adjustedIconX,y2:t.adjustedIconY,class:`planet-element planet-${t.name.toLowerCase()} planet-connector planet-${i}-connector`,stroke:t.color||"#000000","stroke-width":.75,"stroke-opacity":.5})}return null}addPlanetTooltip(e,t){const s=`${t.isPrimary?"Primary":"Secondary"} ${g.getPlanetFullName(t.name)}: ${t.position.toFixed(1)}° ${t.zodiacSign.toUpperCase()} (${t.position_in_sign.toFixed(1)}°)`;this.svgUtils.addTooltip(e,s)}render(e,t,s=0,r={}){throw new Error(`${this.constructor.name}: This is a utility renderer, use specific rendering methods instead.`)}}class D{static calculatePosition(e){const{centerX:t,centerY:s,radius:r,longitude:i,iconSize:n=24}=e,a=(new o).pointOnCircle(t,s,r,i),l=a.x-n/2,g=a.y-n/2;return{x:a.x,y:a.y,iconX:l,iconY:g,iconCenterX:a.x,iconCenterY:a.y,longitude:i,radius:r}}static detectOverlaps(e,t=24){const s=[],r=new Set;for(let i=0;i<e.length;i++){if(r.has(i))continue;const n=[i];r.add(i);for(let s=0;s<e.length;s++){if(i===s||r.has(s))continue;Math.sqrt(Math.pow(e[i].x-e[s].x,2)+Math.pow(e[i].y-e[s].y,2))<t&&(n.push(s),r.add(s))}n.length>1&&s.push(n)}return s}static adjustOverlaps(e,t={}){const{minDistance:s=24,centerX:r,centerY:i,baseRadius:n,iconSize:o=24}=t;if(!e||e.length<=1)return e;if(!r||!i||!n)return console.error("PlanetPositionCalculator: Missing required parameters (centerX, centerY, or baseRadius)"),e;console.log(`PlanetPositionCalculator: Adjusting overlaps for ${e.length} positions`);const a=[...e],l=s/n*(180/Math.PI);console.log(`PlanetPositionCalculator: Minimum angular distance: ${l.toFixed(2)}°`);const g=a.map(((e,t)=>({pos:e,idx:t}))).sort(((e,t)=>e.pos.longitude-t.pos.longitude)).map((e=>({...a[e.idx],originalIndex:e.idx}))),c=this._findOverlappingClusters(g,l);return console.log(`PlanetPositionCalculator: Found ${c.length} clusters of overlapping positions`),c.forEach(((e,t)=>{console.log(`PlanetPositionCalculator: Cluster ${t+1} has ${e.length} positions`)})),c.forEach(((e,t)=>{if(console.log(`PlanetPositionCalculator: Processing cluster ${t+1}`),e.length<=1){const t=e[0];console.log(`PlanetPositionCalculator: Single position in cluster, keeping at original longitude ${t.longitude.toFixed(2)}°`),this._setExactPosition(t,t.longitude,n,r,i,o)}else console.log(`PlanetPositionCalculator: Distributing ${e.length} positions in cluster`),this._distributeClusterByAngle(e,n,l,r,i,o),e.forEach(((e,s)=>{console.log(`PlanetPositionCalculator: Position ${s+1} in cluster ${t+1} adjusted from ${e.longitude.toFixed(2)}° to ${e.adjustedLongitude.toFixed(2)}°`)}))})),g.forEach((e=>{const t=e.originalIndex;void 0!==t&&t>=0&&t<a.length&&(a[t].x=e.x,a[t].y=e.y,a[t].iconX=e.iconX,a[t].iconY=e.iconY,a[t].iconCenterX=e.iconCenterX,a[t].iconCenterY=e.iconCenterY,void 0!==e.adjustedLongitude&&(a[t].adjustedLongitude=e.adjustedLongitude))})),a}static _findOverlappingClusters(e,t){if(!e.length)return[];if(1===e.length)return[e];const s=[];let r=[e[0]];const i=e.length;e[0],e[0].longitude;for(let n=1;n<i;n++){const i=e[n-1],o=e[n];let a=o.longitude-i.longitude;a<0&&(a+=360),a<t?r.push(o):(r.length>0&&s.push(r),r=[o])}r.length>0&&s.push(r);const n=e[i-1],o=e[0];let a=o.longitude+360-n.longitude;if(a<0&&(a+=360),a<t&&s.length>=2){const e=s[0],t=s[s.length-1];if(e.includes(o)&&t.includes(n)){const r=[...t,...e];s.pop(),s[0]=r}}return s}static _distributeClusterByAngle(e,t,s,r,i,n){const o=e.length;e.sort(((e,t)=>e.longitude-t.longitude));const a=e[0].longitude,l=e[o-1].longitude;let g=l-a;(g<0||g>180)&&(g=(360+l-a)%360);let c=(a+g/2)%360;const d=(o-1)*s,h=Math.max(g,d),C=(c-h/2+360)%360;for(let s=0;s<o;s++){if(1===o){this._setExactPosition(e[s],e[s].longitude,t,r,i,n);continue}const a=(C+s*(h/(o-1)))%360;this._setExactPosition(e[s],a,t,r,i,n)}}static _setExactPosition(e,t,s,r,i,n){const a=(new o).pointOnCircle(r,i,s,t);e.x=a.x,e.y=a.y,e.iconCenterX=a.x,e.iconCenterY=a.y,e.iconX=a.x-n/2,e.iconY=a.y-n/2,e.adjustedLongitude=t}}class p extends h{constructor(e){super(e),this.symbolRenderer=e.symbolRenderer,this.circleConfig={circle:"inner"}}calculateRadii(e=null){const t=e?.radius?.inner||this.innerRadius;return{dotRadius:t,iconRadius:t+((e?.radius?.middle||this.middleRadius)-t)/2}}adjustOverlappingPlanets(e){if(e.length<=1)return;const t=e[0].iconRadius,s=24*1.2,r=e.map(((e,s)=>({x:e.iconX,y:e.iconY,iconX:e.iconX,iconY:e.iconY,iconCenterX:e.iconX,iconCenterY:e.iconY,longitude:e.position,radius:t,originalIndex:s,name:e.name})));D.adjustOverlaps(r,{minDistance:s,centerX:this.centerX,centerY:this.centerY,baseRadius:t,iconSize:24}).forEach(((t,s)=>{const r=e[s];r.position,r.adjustedIconX=t.iconCenterX,r.adjustedIconY=t.iconCenterY,void 0!==t.adjustedLongitude&&(r.adjustedPosition=t.adjustedLongitude)}))}render(e,t,s=0,r={}){if(!e)return console.error("PrimaryPlanetRenderer: parentGroup is null or undefined."),[];const{dotRadius:i,iconRadius:n}=r.dotRadius&&r.iconRadius?{dotRadius:r.dotRadius,iconRadius:r.iconRadius}:this.calculateRadii(r.config||this.config);if(!i||!n)return console.error("PrimaryPlanetRenderer: Could not determine radius values"),[];this.clearGroup(e);const o=this.preparePlanetData(t,"primary",i,n);return o.sort(((e,t)=>e.position-t.position)),this.calculateBasePositions(o,i,n),this.adjustOverlappingPlanets(o),this.drawPlanets(e,o),o}drawPlanets(e,t){t.forEach((t=>{const s=this.svgUtils.createSVGElement("g",{"data-planet":t.name,"data-type":t.type,class:`planet-element planet-${t.name} planet-primary`,transform:"translate(0,0)"}),r=this.symbolRenderer.renderPlanetDot(s,t);s.appendChild(r);const i=this.symbolRenderer.renderPlanetSymbol(s,t,24);s.appendChild(i),this.symbolRenderer.addPlanetTooltip(s,t);const n=this.symbolRenderer.renderConnector(s,t,24);n&&s.appendChild(n),e.appendChild(s)}))}}class F extends h{constructor(e){super(e),this.symbolRenderer=e.symbolRenderer,this.circleConfig={circle:"innermost"}}calculateRadii(e=null){const t=e?.radius?.innermost||.5*this.innerRadius;return{dotRadius:t,iconRadius:t+((e?.radius?.zodiacInner||this.innerRadius)-t)/2}}adjustOverlappingPlanets(e){if(e.length<=1)return;const t=e[0].iconRadius,s=e.map(((e,s)=>({x:e.iconX,y:e.iconY,iconX:e.iconX,iconY:e.iconY,iconCenterX:e.iconX,iconCenterY:e.iconY,longitude:e.position,radius:t,originalIndex:s,name:e.name})));D.adjustOverlaps(s,{minDistance:19.8,centerX:this.centerX,centerY:this.centerY,baseRadius:t,iconSize:18}).forEach(((t,s)=>{const r=e[s];r.adjustedIconX=t.iconCenterX,r.adjustedIconY=t.iconCenterY,void 0!==t.adjustedLongitude&&(r.adjustedPosition=t.adjustedLongitude)}))}render(e,t,s=0,r={}){if(!e)return console.error("SecondaryPlanetRenderer: parentGroup is null or undefined."),[];const{dotRadius:i,iconRadius:n}=r.dotRadius&&r.iconRadius?{dotRadius:r.dotRadius,iconRadius:r.iconRadius}:this.calculateRadii(r.config||this.config);if(!i||!n)return console.error("SecondaryPlanetRenderer: Could not determine radius values"),[];this.clearGroup(e);const o=this.preparePlanetData(t,"secondary",i,n);return o.sort(((e,t)=>e.position-t.position)),this.calculateBasePositions(o,i,n),this.adjustOverlappingPlanets(o),this.drawPlanets(e,o),o}drawPlanets(e,t){t.forEach((t=>{const s=this.svgUtils.createSVGElement("g",{"data-planet":t.name,"data-type":t.type,class:`planet-element planet-${t.name} planet-secondary`,transform:"translate(0,0)"}),r=this.symbolRenderer.renderPlanetDot(s,t,2);s.appendChild(r);const i=this.symbolRenderer.renderPlanetSymbol(s,t,18);s.appendChild(i),this.symbolRenderer.addPlanetTooltip(s,t);const n=this.symbolRenderer.renderConnector(s,t,18);n&&s.appendChild(n),e.appendChild(s)}))}}class u extends h{constructor(e){super(e),this.primaryRenderer=e.primaryRenderer,this.secondaryRenderer=e.secondaryRenderer,this.symbolRenderer=e.symbolRenderer,this.circleConfigs={primary:{circle:"inner"},secondary:{circle:"innermost"}}}calculateRadii(e,t=null){if(!this.circleConfigs[e])return console.error(`PlanetRendererCoordinator: No circle configuration found for planet type: ${e}`),{dotRadius:null,iconRadius:null};switch(e){case"primary":return this.primaryRenderer.calculateRadii(t);case"secondary":return this.secondaryRenderer.calculateRadii(t);default:return console.error(`PlanetRendererCoordinator: Unknown planet type: ${e}`),{dotRadius:null,iconRadius:null}}}render(e,t,s=0,r={}){const i=r.type||"primary";switch(console.log(`PlanetRendererCoordinator: Rendering ${i} planets, count:`,t.length),i){case"primary":return this.primaryRenderer.render(e,t,s,r);case"secondary":return this.secondaryRenderer.render(e,t,s,r);default:return console.error(`PlanetRendererCoordinator: Unknown planet type: ${i}`),[]}}renderAllPlanetTypes(e){const{svgManager:t,planetsData:s,config:r,enabledTypes:i={primary:!0,secondary:!0}}=e;if(!t||!s||!r)return console.error("PlanetRendererCoordinator: Missing required parameters"),{};const n=Object.entries(s).filter((([e,t])=>!1!==r.planetSettings.visible?.[e])).map((([e,t])=>({name:e,position:t.lon,color:t.color||"#000000"}))),o={},a=this.centerX,l=this.centerY;if(this.centerX=r.svg.center.x,this.centerY=r.svg.center.y,this.primaryRenderer.centerX=this.centerX,this.primaryRenderer.centerY=this.centerY,this.secondaryRenderer.centerX=this.centerX,this.secondaryRenderer.centerY=this.centerY,i.primary){const e=t.getGroup("primaryPlanets");o.primary=this.primaryRenderer.render(e,n,0,{config:r}),console.log(`PlanetRendererCoordinator: Rendered ${o.primary.length} primary planets`)}else o.primary=[];if(i.secondary){const e=t.getGroup("secondaryPlanets");o.secondary=this.secondaryRenderer.render(e,n,0,{config:r}),console.log(`PlanetRendererCoordinator: Rendered ${o.secondary.length} secondary planets`)}else o.secondary=[];return this.centerX=a,this.centerY=l,this.primaryRenderer.centerX=a,this.primaryRenderer.centerY=l,this.secondaryRenderer.centerX=a,this.secondaryRenderer.centerY=l,o}renderAllPlanets(e){return console.warn("PlanetRendererCoordinator: renderAllPlanets is deprecated, use renderAllPlanetTypes instead"),this.renderAllPlanetTypes(e)}}class E extends l{constructor(e){super(e),this.astrologyUtils=g,this.renderedAspects=[],this._aspectCacheKey=null,this._aspectCache=[],this.assetBasePath=e.assetBasePath||"./assets/",this.iconProvider=e.iconProvider,this.defaultAspectDefinitions={conjunction:{angle:0,orb:8,color:"#FF4500",abbr:"CON"},opposition:{angle:180,orb:6,color:"#DC143C",abbr:"OPP"},trine:{angle:120,orb:6,color:"#2E8B57",abbr:"TRI"},square:{angle:90,orb:6,color:"#FF0000",abbr:"SQR"},sextile:{angle:60,orb:4,color:"#4682B4",abbr:"SEX"}}}_angularDistance(e,t){const s=Math.abs(e-t)%360;return Math.min(s,360-s)}calculateAspects(e,t=null){const s=[];if(!e||e.length<2)return s;const r=t||this.config.aspectSettings||{},i=`${JSON.stringify(r)}|${e.map((e=>`${e.name}:${e.position}`)).join("|")}`;if(i===this._aspectCacheKey)return console.log(`ClientSideAspectRenderer: Using cached aspects (${this._aspectCache.length})`),this._aspectCache;const n=r.orb||6,o=r.types||this.defaultAspectDefinitions;for(let t=0;t<e.length;t++)for(let r=t+1;r<e.length;r++){const i=e[t],a=e[r],l=this._angularDistance(i.position,a.position);for(const e in o){const t=o[e],r=t.angle,g=void 0!==t.orb?t.orb:n;Math.abs(l-r)<=g&&s.push({planet1:i.name,planet2:a.name,type:e,angle:r,angleDiff:l,orb:Math.abs(l-r),p1:i,p2:a,color:t.color||"#888",lineStyle:t.lineStyle,abbr:t.abbr||e.substring(0,3).toUpperCase()})}}return console.log(`ClientSideAspectRenderer: Calculated ${s.length} aspects.`),this._aspectCacheKey=i,this._aspectCache=s,s}calculateCrossAspects(e,t,s=null){const r=[];if(!e||e.length<1||!t||t.length<1)return r;const i=s||this.config.synastryAspectSettings||{},n=i.orb||6,o=i.types||this.defaultAspectDefinitions;for(let s=0;s<e.length;s++)for(let i=0;i<t.length;i++){const a=e[s],l=t[i],g=this._angularDistance(a.position,l.position);for(const e in o){const t=o[e],s=t.angle,i=void 0!==t.orb?t.orb:n;Math.abs(g-s)<=i&&r.push({planet1:a.name,planet2:l.name,type:e,angle:s,angleDiff:g,orb:Math.abs(g-s),p1:a,p2:l,color:t.color||"#888",lineStyle:t.lineStyle,abbr:t.abbr||e.substring(0,3).toUpperCase(),isCross:!0})}}return console.log(`ClientSideAspectRenderer: Calculated ${r.length} cross-aspects (synastry).`),r}render(e,t,s=null){if(!e)return console.error("ClientSideAspectRenderer.render: parentGroup is null or undefined."),[];this.clearGroup(e);const r=[];if(!t||t.length<2)return console.warn("ClientSideAspectRenderer: Not enough planet data with coordinates to render aspects."),this.renderedAspects=[],[];const i=this.calculateAspects(t,s);this.renderedAspects=i,console.log(`ClientSideAspectRenderer: Rendering ${i.length} aspects.`);const n=(s||this.config.aspectSettings||{}).types||{},o={};return t.forEach((e=>{o[e.name]={x:e.x,y:e.y}})),i.forEach((t=>{const s=o[t.planet1],i=o[t.planet2],a=n[t.type],l=!a||!1!==a.enabled,g=a?a.lineStyle:"solid";if(!l||"none"===g)return;if(!s||!i)return void console.warn(`ClientSideAspectRenderer: Could not find coordinates for aspect: ${t.planet1} ${t.type} ${t.planet2}`);const c=(t.planet1||"").toLowerCase().replace(/[^a-z0-9]/g,"-"),d=(t.planet2||"").toLowerCase().replace(/[^a-z0-9]/g,"-");let h="none";"dashed"===g?h="5, 5":"dotted"===g&&(h="1, 3");const C=this.svgUtils.createSVGElement("line",{x1:s.x,y1:s.y,x2:i.x,y2:i.y,class:`aspect-element aspect-line aspect-${t.type} aspect-planet-${c} aspect-planet-${d}`,stroke:t.color||"#888888","stroke-dasharray":h}),D=`${this.astrologyUtils.capitalizeFirstLetter(t.planet1)} ${t.type} ${this.astrologyUtils.capitalizeFirstLetter(t.planet2)} (${t.angleDiff.toFixed(1)}°, orb ${t.orb.toFixed(1)}°)`;this.svgUtils.addTooltip(C,D),e.appendChild(C),r.push(C),this._addAspectIcon(e,t,s,i,D)})),r}renderCrossAspects(e,t,s,r=null){if(!e)return console.error("ClientSideAspectRenderer.renderCrossAspects: parentGroup is null or undefined."),[];this.clearGroup(e);const i=[];if(!t||t.length<1||!s||s.length<1)return console.warn("ClientSideAspectRenderer: Not enough planet data to render cross-aspects."),[];const n=this.calculateCrossAspects(t,s,r);console.log(`ClientSideAspectRenderer: Rendering ${n.length} cross-aspects.`);const o=(r||this.config.synastryAspectSettings||{}).types||{},a={};t.forEach((e=>{a[e.name]={x:e.x,y:e.y}}));const l={};return s.forEach((e=>{l[e.name]={x:e.x,y:e.y}})),n.forEach((t=>{const s=t.p1;t.p2;const r=this.config.radius.innermost||90,n=(s.position-90)*(Math.PI/180),a={x:this.centerX+r*Math.cos(n),y:this.centerY+r*Math.sin(n)},g=l[t.planet2],c=o[t.type],d=!c||!1!==c.enabled,h=c?c.lineStyle:"solid";if(!d||"none"===h)return;if(!a||!g)return void console.warn(`ClientSideAspectRenderer: Could not find coordinates for cross-aspect: ${t.planet1} ${t.type} ${t.planet2}`);const C=(t.planet1||"").toLowerCase().replace(/[^a-z0-9]/g,"-"),D=(t.planet2||"").toLowerCase().replace(/[^a-z0-9]/g,"-");let p="none";"dashed"===h?p="5, 5":"dotted"===h&&(p="1, 3");const F=this.svgUtils.createSVGElement("line",{x1:a.x,y1:a.y,x2:g.x,y2:g.y,class:`aspect-element aspect-line aspect-${t.type} aspect-cross aspect-planet-${C} aspect-planet-${D}`,stroke:t.color||"#888888","stroke-dasharray":p}),u=`${this.astrologyUtils.capitalizeFirstLetter(t.planet1)} ${t.type} ${this.astrologyUtils.capitalizeFirstLetter(t.planet2)} (${t.angleDiff.toFixed(1)}°, orb ${t.orb.toFixed(1)}°) [Synastry]`;this.svgUtils.addTooltip(F,u),e.appendChild(F),i.push(F),this._addAspectIcon(e,t,a,g,u)})),this._renderProjectionDots(e,t),i}_renderProjectionDots(e,t){const s=this.config.radius.innermost||90;t.forEach((t=>{const r=t.position,i=(r-90)*(Math.PI/180),n=this.centerX+s*Math.cos(i),o=this.centerY+s*Math.sin(i),a=this.svgUtils.createSVGElement("circle",{cx:n,cy:o,r:3,class:`projection-dot projection-${t.name}`,fill:"none",stroke:t.color||"#666666","stroke-width":"1.5"}),l=`${this.astrologyUtils.capitalizeFirstLetter(t.name)} projection (${r.toFixed(1)}°)`;this.svgUtils.addTooltip(a,l),e.appendChild(a)}))}clearGroup(e){super.clearGroup(e)}getCurrentAspects(){return this.renderedAspects}_addAspectIcon(e,t,s,r,i){const n=(s.x+r.x)/2,o=(s.y+r.y)/2,a=n-this.centerX,l=o-this.centerY;if(Math.sqrt(a*a+l*l)<20)return;let g;g=this.iconProvider?this.iconProvider.getAspectIconPath(t.type):`${this.assetBasePath}/svg/zodiac/zodiac-aspect-${t.type}.svg`;const c=this.svgUtils.createSVGElement("image",{x:n-8,y:o-8,width:16,height:16,href:g,class:`aspect-element aspect-symbol aspect-${t.type}`});c.addEventListener("error",(()=>{console.warn(`Failed to load aspect icon for ${t.type} from path: ${g}`);const s=this.defaultAspectDefinitions[t.type],r=s&&s.abbr?s.abbr:t.type.substring(0,3).toUpperCase();let a;this.iconProvider?a=this.iconProvider.createTextFallback(this.svgUtils,{x:n,y:o,size:"12px",color:t.color||"#888888",className:`aspect-element aspect-symbol aspect-${t.type}`},r):(a=this.svgUtils.createSVGElement("text",{x:n,y:o,"text-anchor":"middle","dominant-baseline":"middle","font-size":"12px","font-weight":"bold",class:`aspect-element aspect-symbol aspect-${t.type}`,fill:t.color||"#888888"}),a.textContent=r),this.svgUtils.addTooltip(a,i),e.appendChild(a)})),this.svgUtils.addTooltip(c,i),e.appendChild(c)}}class f{constructor(e,s){this.config=e,this.svgNS=s,this.svgUtils=t.getSvgUtils(),this.iconProvider=t.getIconProvider(),this.iconProvider||console.error("RendererFactory: IconProvider not available. Icons will not render correctly.")}createZodiacRenderer(e={}){return new c({svgNS:this.svgNS,config:this.config,svgUtils:this.svgUtils,iconProvider:this.iconProvider,...e})}createHouseRenderer(e={}){return new d({svgNS:this.svgNS,config:this.config,svgUtils:this.svgUtils,iconProvider:this.iconProvider,...e})}createPlanetRenderer(e={}){const t=new C({svgNS:this.svgNS,config:this.config,svgUtils:this.svgUtils,iconProvider:this.iconProvider,assetBasePath:e.assetBasePath||this.config.assets?.basePath,...e}),s=new p({svgNS:this.svgNS,config:this.config,svgUtils:this.svgUtils,iconProvider:this.iconProvider,symbolRenderer:t,assetBasePath:e.assetBasePath||this.config.assets?.basePath,...e}),r=new F({svgNS:this.svgNS,config:this.config,svgUtils:this.svgUtils,iconProvider:this.iconProvider,symbolRenderer:t,assetBasePath:e.assetBasePath||this.config.assets?.basePath,...e});return new u({svgNS:this.svgNS,config:this.config,svgUtils:this.svgUtils,iconProvider:this.iconProvider,primaryRenderer:s,secondaryRenderer:r,symbolRenderer:t,assetBasePath:e.assetBasePath||this.config.assets?.basePath,...e})}createAspectRenderer(e={}){return new E({svgNS:this.svgNS,config:this.config,svgUtils:this.svgUtils,iconProvider:this.iconProvider,...e})}}class m{constructor(e){this.config=e.config,this.svgManager=e.svgManager,this.planets=e.planets||{},this.houses=e.houses||[],this.renderers={},this.svgManager&&this.svgManager.getSVG()&&this._initializeRenderers()}_initializeRenderers(){this.rendererFactory=new f(this.config,this.svgManager.svgNS),this.renderers.zodiac=this.rendererFactory.createZodiacRenderer({assetBasePath:this.config.assets.basePath});const e=this.config.getHouseCusps(),t=e&&e.length>0?e:this.houses;this.renderers.house=this.rendererFactory.createHouseRenderer({houseData:t}),this.renderers.planet=this.rendererFactory.createPlanetRenderer({assetBasePath:this.config.assets.basePath}),this.renderers.aspect=this.rendererFactory.createAspectRenderer({assetBasePath:this.config.assets.basePath})}updatePlanets(e){this.planets=e}updateHouses(e){this.houses=e,this.renderers.house&&(this.renderers.house.houseData=this.houses)}renderAll(){if(!this.svgManager.getSVG())return;Object.values(this.svgManager.getAllGroups()).forEach((e=>{e.innerHTML=""})),this.renderZodiac(),this.renderHouses();const e=this.renderPlanets();this.renderAspects(e),console.log("RenderingCoordinator: Chart rendered")}renderZodiac(){return!(!this.config.zodiacSettings.enabled||!this.renderers.zodiac)&&(this.renderers.zodiac.render(this.svgManager.getGroup("zodiac")),!0)}renderHouses(){if(!this.config.houseSettings.enabled||!this.renderers.house)return!1;const e=this.svgManager.getGroup("houses"),t=this.svgManager.getGroup("houseDivisions"),s=this.config.getHouseCusps();return s&&s.length>0&&(this.renderers.house.houseData=s),this.renderers.house.renderDivisions(t,this.config.houseSettings.rotationAngle),this.renderers.house.renderNumbers(e,this.config.houseSettings.rotationAngle),!0}renderPlanets(){if(!this.config.planetSettings.enabled||!this.renderers.planet)return[];const e=!1!==this.config.planetSettings.primaryEnabled,t=!1!==this.config.planetSettings.secondaryEnabled,s=this.renderers.planet.renderAllPlanetTypes({svgManager:this.svgManager,planetsData:this.planets,config:this.config,primaryEnabled:e,secondaryEnabled:t});return console.log(`RenderingCoordinator: Rendered ${s.primary.length} primary planets and ${s.secondary.length} secondary planets`),s.primary}renderAspects(e){return!(!this.config.aspectSettings.enabled||!this.renderers.aspect)&&(this.renderers.aspect.render(this.svgManager.getGroup("aspects"),e),!0)}}class k{constructor(e){this.config=e.config,this.svgManager=e.svgManager}updateConfig(e){return this.config.mergeConfig(e),e.aspectSettings&&this.config.updateAspectSettings(e.aspectSettings),console.log("ChartStateManager: Updated configuration"),!0}togglePlanetVisibility(e,t){return this.config.togglePlanetVisibility(e,t),!0}toggleHousesVisibility(e){return this.config.toggleHousesVisibility(e),!0}toggleAspectsVisibility(e){return this.config.toggleAspectsVisibility(e),!0}setHouseRotation(e){return this.config.houseSettings.rotationAngle=e,!0}setHouseSystem(e){return this.config.setHouseSystem(e)}getAvailableHouseSystems(){return this.config.getAvailableHouseSystems()}getCurrentHouseSystem(){return this.config.getHouseSystem()}togglePrimaryPlanets(e){if(this.config.togglePrimaryPlanetsVisibility(e),this.svgManager){const t=this.svgManager.getGroup("primaryPlanets");t&&(t.style.display=e?"block":"none")}return console.log("ChartStateManager: Primary planets "+(e?"enabled":"disabled")),!0}toggleSecondaryPlanets(e){if(this.config.toggleSecondaryPlanetsVisibility(e),this.svgManager){const t=this.svgManager.getGroup("secondaryPlanets");t&&(t.style.display=e?"block":"none");const s=document.querySelector(".chart-innermost-circle");s&&(s.style.display=e?"block":"none")}return console.log("ChartStateManager: Secondary planets "+(e?"enabled":"disabled")),!0}}class y{constructor(e){if(!e||!e.container)throw new Error("ChartManager: Container element or selector is required");if(this.options=e,this.container="string"==typeof e.container?document.querySelector(e.container):e.container,!this.container)throw new Error(`ChartManager: Container not found: ${e.container}`);this.config=new n(e.config||{}),this.planets=e.planets||{},this.houses=e.houses||[],e.aspectSettings&&this.config.updateAspectSettings(e.aspectSettings),t.initializeServices();const s=t.getSvgUtils();this.svgManager=new a({svgUtils:s}),this.renderingCoordinator=new m({config:this.config,svgManager:this.svgManager,planets:this.planets,houses:this.houses}),this.stateManager=new k({config:this.config,svgManager:this.svgManager}),console.log("ChartManager: Initialized")}_initialize(){const e={width:this.config.svg.width,height:this.config.svg.height,viewBox:this.config.svg.viewBox};this.svgManager.initialize(this.container,e),this.svgManager.createStandardGroups()}render(){return this.svgManager.getSVG()||this._initialize(),this.renderingCoordinator.renderAll(),console.log("ChartManager: Chart rendered"),this}update(e){return e.planets&&(this.planets=e.planets,this.renderingCoordinator.updatePlanets(this.planets)),e.houses&&(this.houses=e.houses,this.renderingCoordinator.updateHouses(this.houses)),e.config&&this.stateManager.updateConfig(e.config),this.render(),this}togglePlanet(e,t){return this.stateManager.togglePlanetVisibility(e,t),this.render(),this}toggleHouses(e){return this.stateManager.toggleHousesVisibility(e),this.render(),this}toggleAspects(e){return this.stateManager.toggleAspectsVisibility(e),this.render(),this}setHouseRotation(e){return this.stateManager.setHouseRotation(e),this.render(),this}destroy(){this.svgManager.getSVG()&&this.svgManager.getSVG().remove(),this.renderingCoordinator=null,this.stateManager=null,this.planets={},this.houses=[],console.log("ChartManager: Destroyed")}updateData(e){return e.planets&&("object"!=typeof e.planets||Array.isArray(e.planets)?console.warn("ChartManager.updateData: Invalid planets data format. Expected object."):(this.planets={...this.planets,...e.planets},this.renderingCoordinator.updatePlanets(this.planets),console.log("ChartManager: Updated planets data."))),e.houses&&(Array.isArray(e.houses)?(this.houses=e.houses,this.renderingCoordinator.updateHouses(this.houses),console.log("ChartManager: Updated houses data.")):console.warn("ChartManager.updateData: Invalid houses data format. Expected array.")),this.render(),this}updateConfig(e){return this.stateManager.updateConfig(e),console.log("ChartManager: Updated configuration."),this.render(),this}setHouseSystem(e){return this.stateManager.setHouseSystem(e),this.render(),this}getAvailableHouseSystems(){return this.stateManager.getAvailableHouseSystems()}getCurrentHouseSystem(){return this.stateManager.getCurrentHouseSystem()}togglePrimaryPlanets(e){return this.stateManager.togglePrimaryPlanets(e),this.render(),this}toggleSecondaryPlanets(e){return this.stateManager.toggleSecondaryPlanets(e),this.render(),this}}class v{constructor(e){if(!e||!e.container)throw new Error("NocturnaWheel: Container element or selector is required");if(this.options=e,this.container="string"==typeof e.container?document.querySelector(e.container):e.container,!this.container)throw new Error(`NocturnaWheel: Container not found: ${e.container}`);this.config=new n(e.config||{}),this.planets=e.planets||{},this.secondaryPlanets=e.secondaryPlanets||{},this.houses=e.houses||[],e.aspectSettings&&this.config.updateAspectSettings(e.aspectSettings),e.primaryAspectSettings&&this.config.updatePrimaryAspectSettings(e.primaryAspectSettings),e.secondaryAspectSettings&&this.config.updateSecondaryAspectSettings(e.secondaryAspectSettings),e.synastryAspectSettings&&this.config.updateSynastryAspectSettings(e.synastryAspectSettings),t.initializeServices();const s=t.getSvgUtils();this.svgManager=new a({svgUtils:s}),this.renderers={},console.log("NocturnaWheel: Initialized")}_initialize(){const e={width:this.config.svg.width,height:this.config.svg.height,viewBox:this.config.svg.viewBox};this.svgManager.initialize(this.container,e),this.svgManager.createStandardGroups(),this._initializeRenderers()}_initializeRenderers(){this.rendererFactory=new f(this.config,this.svgManager.svgNS),this.renderers.zodiac=this.rendererFactory.createZodiacRenderer({assetBasePath:this.config.assets.basePath});const e=this.config.getHouseCusps(),t=e&&e.length>0?e:this.houses;this.renderers.house=this.rendererFactory.createHouseRenderer({houseData:t}),this.renderers.planet=this.rendererFactory.createPlanetRenderer({assetBasePath:this.config.assets.basePath}),this.renderers.aspect=this.rendererFactory.createAspectRenderer({assetBasePath:this.config.assets.basePath})}render(){if(this.svgManager.getSVG()||this._initialize(),Object.values(this.svgManager.getAllGroups()).forEach((e=>{e.innerHTML=""})),this.config.zodiacSettings.enabled&&this.renderers.zodiac.render(this.svgManager.getGroup("zodiac")),this.config.houseSettings.enabled){const e=this.svgManager.getGroup("houses"),t=this.svgManager.getGroup("houseDivisions"),s=this.config.getHouseCusps();s&&s.length>0&&(this.renderers.house.houseData=s),this.renderers.house.renderDivisions(t,this.config.houseSettings.rotationAngle),this.renderers.house.renderNumbers(e,this.config.houseSettings.rotationAngle)}let e=[],t=[];if(this.config.planetSettings.enabled){const s=!1!==this.config.planetSettings.primaryEnabled,r=!1!==this.config.planetSettings.secondaryEnabled;if(s&&Object.keys(this.planets).length>0){const t=this.svgManager.getGroup("primaryPlanets"),s=Object.entries(this.planets).filter((([e,t])=>!1!==this.config.planetSettings.visible?.[e])).map((([e,t])=>({name:e,position:t.lon,color:t.color||"#000000"})));e=this.renderers.planet.primaryRenderer.render(t,s,0,{config:this.config})}if(r&&Object.keys(this.secondaryPlanets).length>0){const e=this.svgManager.getGroup("secondaryPlanets"),s=Object.entries(this.secondaryPlanets).filter((([e,t])=>!1!==this.config.planetSettings.visible?.[e])).map((([e,t])=>({name:e,position:t.lon,color:t.color||"#000000"})));t=this.renderers.planet.secondaryRenderer.render(e,s,0,{config:this.config})}console.log(`NocturnaWheel: Rendered ${e.length} primary planets and ${t.length} secondary planets`)}if(this.config.primaryAspectSettings.enabled&&e.length>=2){const t=this.svgManager.getGroup("primaryAspects");this.renderers.aspect.render(t,e,this.config.primaryAspectSettings),console.log("NocturnaWheel: Rendered primary aspects")}if(this.config.secondaryAspectSettings.enabled&&t.length>=2){const e=this.svgManager.getGroup("secondaryAspects");this.renderers.aspect.render(e,t,this.config.secondaryAspectSettings),console.log("NocturnaWheel: Rendered secondary aspects")}if(this.config.synastryAspectSettings.enabled&&e.length>=1&&t.length>=1){const s=this.svgManager.getGroup("synastryAspects");this.renderers.aspect.renderCrossAspects(s,e,t,this.config.synastryAspectSettings),console.log("NocturnaWheel: Rendered synastry aspects")}return console.log("NocturnaWheel: Chart rendered"),this}update(e){return e.planets&&(this.planets=e.planets),e.houses&&(this.houses=e.houses,this.renderers.house&&(this.renderers.house.houseData=this.houses)),e.config&&this.config.mergeConfig(e.config),this.render(),this}togglePlanet(e,t){return this.config.togglePlanetVisibility(e,t),this.render(),this}toggleHouses(e){return this.config.toggleHousesVisibility(e),this.render(),this}toggleAspects(e){return this.config.toggleAspectsVisibility(e),this.render(),this}togglePrimaryAspects(e){return this.config.togglePrimaryAspectsVisibility(e),this.render(),this}toggleSecondaryAspects(e){return this.config.toggleSecondaryAspectsVisibility(e),this.render(),this}toggleSynastryAspects(e){return this.config.toggleSynastryAspectsVisibility(e),this.render(),this}setHouseRotation(e){return this.config.houseSettings.rotationAngle=e,this.render(),this}destroy(){this.svgManager.getSVG()&&this.svgManager.getSVG().remove(),this.renderers={},this.planets={},this.houses=[],console.log("NocturnaWheel: Destroyed")}updateData(e){return e.planets&&("object"!=typeof e.planets||Array.isArray(e.planets)?console.warn("NocturnaWheel.updateData: Invalid planets data format. Expected object."):(this.planets={...this.planets,...e.planets},console.log("NocturnaWheel: Updated planets data."))),e.secondaryPlanets&&("object"!=typeof e.secondaryPlanets||Array.isArray(e.secondaryPlanets)?console.warn("NocturnaWheel.updateData: Invalid secondaryPlanets data format. Expected object."):(this.secondaryPlanets={...this.secondaryPlanets,...e.secondaryPlanets},console.log("NocturnaWheel: Updated secondary planets data."))),e.houses&&(Array.isArray(e.houses)?(this.houses=e.houses,this.renderers.house&&(this.renderers.house.houseData=this.houses),console.log("NocturnaWheel: Updated houses data.")):console.warn("NocturnaWheel.updateData: Invalid houses data format. Expected array.")),this.render(),this}updateConfig(e){return this.config.mergeConfig(e),e.aspectSettings&&this.config.updateAspectSettings(e.aspectSettings),console.log("NocturnaWheel: Updated configuration."),this.render(),this}setHouseSystem(e){return this.config.setHouseSystem(e),this.render(),this}getAvailableHouseSystems(){return this.config.getAvailableHouseSystems()}getCurrentHouseSystem(){return this.config.getHouseSystem()}togglePrimaryPlanets(e){this.config.togglePrimaryPlanetsVisibility(e);const t=this.svgManager.getGroup("primaryPlanets");return t&&(t.style.display=e?"block":"none"),console.log("NocturnaWheel: Primary planets "+(e?"enabled":"disabled")),this}toggleSecondaryPlanets(e){this.config.toggleSecondaryPlanetsVisibility(e);const t=this.svgManager.getGroup("secondaryPlanets");t&&(t.style.display=e?"block":"none");const s=document.querySelector(".chart-innermost-circle");return s&&(s.style.display=e?"block":"none"),console.log("NocturnaWheel: Secondary planets "+(e?"enabled":"disabled")),this}}class w{constructor(e,t={}){this.wheelChart=e,this.chart=e.chart,this.options=t,this.svgUtils=new o,console.log("ChartRenderer: Initialized with chart",this.chart)}renderInnerElements(){if(!this.chart||!this.chart.svgManager)return void console.error("ChartRenderer: Invalid chart or missing svgManager");if(!this.chart.svgManager.getSVG())return void console.error("ChartRenderer: SVG not found");const e=this.chart.svgManager.getGroup("zodiac");if(!e)return void console.error("ChartRenderer: Zodiac group not found");const t=e.querySelector(".chart-innermost-circle");t&&e.removeChild(t);const s=this.chart.config.svg.center.x,r=this.chart.config.svg.center.y,i=this.chart.config.radius.innermost;!1!==this.chart.config.planetSettings.secondaryEnabled&&this.drawInnermostCircle(e,this.svgUtils,s,r,i),console.log("ChartRenderer: Innermost circle rendered (if enabled). Planet rendering is now handled by NocturnaWheel.")}drawInnermostCircle(e,t,s,r,i){const n=t.createSVGElement("circle",{cx:s,cy:r,r:i,fill:"transparent",stroke:"#999","stroke-width":"0.5",class:"zodiac-element chart-innermost-circle"});e.appendChild(n)}renderPlanets(e,t,s,r){return console.warn("ChartRenderer: renderPlanets is deprecated. Planet rendering is now handled by NocturnaWheel."),[]}drawPlanetsAndIcons(e,t,s,r,i){return console.warn("ChartRenderer: drawPlanetsAndIcons is deprecated, use renderPlanets instead"),this.renderPlanets(t,s,r,i)}drawPlanetDot(e,t,s,r,i,n){console.warn("ChartRenderer: drawPlanetDot is deprecated")}drawPlanetIcon(e,t,s,r,i){console.warn("ChartRenderer: drawPlanetIcon is deprecated")}drawConnector(e,t,s,r,i,n,o,a){console.warn("ChartRenderer: drawConnector is deprecated")}}class A{constructor(e,t=null){if(!e||!e.container)throw new Error("WheelChart: Container element or selector is required");this.options=e;const s=e.config||{};if("function"==typeof t?(console.log("WheelChart: Using provided chart factory function"),this.chart=t(e)):(console.log("WheelChart: Using default chart creation"),this.chart=new v({...e,config:s})),!this.chart||"function"!=typeof this.chart.render)throw new Error("WheelChart: Invalid chart instance created. Missing required methods.");this.renderer=new w(this,e),console.log("WheelChart: Initialized")}render(){return this.chart.render(),setTimeout((()=>{try{console.log("WheelChart: Rendering inner elements"),this.renderer.renderInnerElements()}catch(e){console.error("WheelChart: Error rendering inner elements:",e)}}),0),console.log("WheelChart: Chart rendered with inner circle"),this}update(e){return this.chart.update(e),this.renderer.renderInnerElements(),this}_delegateToChart(e,...t){if("function"==typeof this.chart[e])return this.chart[e](...t);throw new Error(`WheelChart: Method ${e} not found in NocturnaWheel`)}_delegateAndRedraw(e,...t){const s=this._delegateToChart(e,...t);return this.renderer.renderInnerElements(),s}togglePlanet(e,t){return this._delegateAndRedraw("togglePlanet",e,t)}toggleHouses(e){return this._delegateAndRedraw("toggleHouses",e)}toggleAspects(e){return this._delegateAndRedraw("toggleAspects",e)}togglePrimaryAspects(e){return this._delegateAndRedraw("togglePrimaryAspects",e)}toggleSecondaryAspects(e){return this._delegateAndRedraw("toggleSecondaryAspects",e)}toggleSynastryAspects(e){return this._delegateAndRedraw("toggleSynastryAspects",e)}togglePrimaryPlanets(e){return this._delegateAndRedraw("togglePrimaryPlanets",e)}toggleSecondaryPlanets(e){const t=this._delegateToChart("toggleSecondaryPlanets",e);try{const t="string"==typeof this.options.container?document.querySelector(this.options.container):this.options.container;if(t){const s=t.querySelector(".chart-innermost-circle");s?(console.log("WheelChart: Setting innermost circle display to "+(e?"block":"none")),s.style.display=e?"block":"none"):console.log("WheelChart: No innermost circle found to toggle visibility")}}catch(e){console.error("WheelChart: Error toggling innermost circle visibility:",e)}return this.renderer.renderInnerElements(),t}setHouseRotation(e){return this._delegateAndRedraw("setHouseRotation",e)}destroy(){return this._delegateToChart("destroy")}setHouseSystem(e){return this._delegateAndRedraw("setHouseSystem",e)}get config(){return this.chart.config}updateData(e){return this._delegateAndRedraw("updateData",e)}getCurrentHouseSystem(){return this.chart.getCurrentHouseSystem()}}const b=new s({useInline:!0,basePath:"./assets/svg/zodiac/"});r&&Object.keys(r.planets||{}).length>0?(b.setInlineData(r),console.log("IconProvider: Initialized with inline icons -","Planets:",Object.keys(r.planets).length,"Signs:",Object.keys(r.signs).length,"Aspects:",Object.keys(r.aspects).length)):console.warn("IconProvider: IconData not loaded, will use external paths"),t.register("iconProvider",b),t.initializeServices();var x={ChartManager:y,NocturnaWheel:v,WheelChart:A,ChartConfig:n,ServiceRegistry:t,SvgUtils:o,AstrologyUtils:g,IconProvider:s,IconData:r};e.AstrologyUtils=g,e.ChartConfig=n,e.ChartManager=y,e.IconData=r,e.IconProvider=s,e.NocturnaWheel=v,e.ServiceRegistry=t,e.SvgUtils=o,e.VERSION="0.2.0",e.WheelChart=A,e.default=x,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).NocturnaWheel={})}(this,function(e){"use strict";class t{static#e=new Map;static register(e,t){this.#e.set(e,t)}static get(e){return this.#e.get(e)}static has(e){return this.#e.has(e)}static clear(){this.#e.clear()}static getSvgUtils(){if(!this.has("svgUtils")){const e={svgNS:"http://www.w3.org/2000/svg",createSVGElement(e,t={}){const s=document.createElementNS(this.svgNS,e);for(const[e,r]of Object.entries(t))s.setAttribute(e,r);return s},addTooltip(e,t){const s=document.createElementNS(this.svgNS,"title");return s.textContent=t,e.appendChild(s),e},pointOnCircle(e,t,s,r){const i=(r-90)*(Math.PI/180);return{x:e+s*Math.cos(i),y:t+s*Math.sin(i)}}};this.register("svgUtils",e)}return this.get("svgUtils")}static getIconProvider(){return this.has("iconProvider")?this.get("iconProvider"):(console.warn("ServiceRegistry: IconProvider not registered. Icons may not work correctly."),console.warn("ServiceRegistry: This should be initialized in main.js with inline IconData."),null)}static initializeServices(e={}){this.getSvgUtils(),console.log("ServiceRegistry: Core services initialized")}}class s{constructor(e={}){"string"==typeof e&&(e={basePath:e,useInline:!1}),this.basePath=e.basePath||"./assets/svg/zodiac/",this.useInline=!1!==e.useInline,this.customIcons=e.customIcons||null,this.inlineData=null,this._warnedAboutMissingData=!1}_getInlineData(){return this.inlineData}setInlineData(e){this.inlineData=e,console.log("IconProvider.setInlineData(): Data loaded successfully","planets:",Object.keys(e?.planets||{}).length,"signs:",Object.keys(e?.signs||{}).length,"aspects:",Object.keys(e?.aspects||{}).length)}getPlanetIconPath(e){const t=e.toLowerCase();if(this.customIcons?.planets?.[t])return this.customIcons.planets[t];if(this.useInline){const e=this._getInlineData();if(e?.planets?.[t])return e.planets[t];this._warnedAboutMissingData||(this._warnedAboutMissingData=!0,e?e.planets||console.warn("IconProvider: Inline data missing 'planets' category"):console.warn("IconProvider: Inline data not loaded, falling back to external paths. Call setInlineData() to load inline icons."))}return`${this.basePath}zodiac-planet-${t}.svg`}getZodiacIconPath(e){const t=e.toLowerCase();if(this.customIcons?.signs?.[t])return this.customIcons.signs[t];if(this.useInline){const e=this._getInlineData();if(e?.signs?.[t])return e.signs[t]}return`${this.basePath}zodiac-sign-${t}.svg`}getAspectIconPath(e){const t=e.toLowerCase();if(this.customIcons?.aspects?.[t])return this.customIcons.aspects[t];if(this.useInline){const e=this._getInlineData();if(e?.aspects?.[t])return e.aspects[t]}return`${this.basePath}zodiac-aspect-${t}.svg`}createTextFallback(e,t,s){const{x:r,y:i,size:n="16px",color:o="#000000",className:a="icon-fallback"}=t,l=e.createSVGElement("text",{x:r,y:i,"text-anchor":"middle","dominant-baseline":"middle","font-size":n,class:a,fill:o});return l.textContent=s,l}}const r={planets:{},signs:{},aspects:{}};r.planets.jupiter="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22kVkwGe1VFLANDFw4YKh--3%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20120%20169%20L%20120.41%2052%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22kVkwGe1VFLANDFw4YKh--4%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2055.45%20117%20L%20114.55%20117%20L%20150%20117%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22kVkwGe1VFLANDFw4YKh--5%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2049.17%2039.62%20C%2061.72%2037.13%2074.51%2042.25%2082.68%2053.02%20C%2090.85%2063.79%2093.13%2078.55%2088.66%2091.68%20C%2084.18%20104.81%2073.64%20114.29%2061.06%20116.51%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22zDjTfItpbO8d8TAwGvx0-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.planets.ketu="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22nZi6tGyZIidbp-v6qjZQ-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22nZi6tGyZIidbp-v6qjZQ-6%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22nZi6tGyZIidbp-v6qjZQ-7%22%3E%3Cg%3E%3Cellipse%20cx%3D%2265%22%20cy%3D%2265%22%20rx%3D%2215%22%20ry%3D%2215%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22nZi6tGyZIidbp-v6qjZQ-8%22%3E%3Cg%3E%3Cellipse%20cx%3D%22135%22%20cy%3D%2265%22%20rx%3D%2215%22%20ry%3D%2215%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22nZi6tGyZIidbp-v6qjZQ-9%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20124.39%2054.39%20Q%20120%2060%20120%2065%20Q%20120%2070%20130%2095%20Q%20140%20120%20130%20135%20Q%20120%20150%20100%20150%20Q%2080%20150%2070%20135%20Q%2060%20120%2070%2095%20Q%2080%2070%2080%2065%20Q%2080%2060%2075.61%2054.39%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22fzDwOAeg_iJ89Dt6VeXd-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.planets.lilith="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22iy5LzPKV1b8-u4Rshwn2-1%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20139%20150%20L%2059%20150%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22iy5LzPKV1b8-u4Rshwn2-2%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2098.2%20117.1%20L%2099%20180%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22iy5LzPKV1b8-u4Rshwn2-3%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2073.37%2033.62%20C%2062.66%2050.93%2065.45%2073.12%2080.13%2087.41%20C%2094.81%20101.7%20117.6%20104.42%20135.38%2093.99%20C%20125.69%20109.66%20107.04%20117.86%2088.56%20114.57%20C%2070.07%20111.28%2055.61%2097.2%2052.23%2079.2%20C%2048.85%2061.21%2057.27%2043.05%2073.37%2033.62%20Z%22%20fill%3D%22%23000000%22%20stroke%3D%22%23000000%22%20stroke-width%3D%222%22%20stroke-miterlimit%3D%2210%22%20transform%3D%22rotate(225%2C92.12%2C75.74)%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20rgb(0%2C%200%2C%200)%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22skUIsOvDlGxpmukY0j3V-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.planets.mars="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22201px%22%20height%3D%22201px%22%20viewBox%3D%22-0.5%20-0.5%20201%20201%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22dfX1GTXx0dsaOR7s5UN7-2%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%2210%22%20height%3D%2210%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22dfX1GTXx0dsaOR7s5UN7-3%22%3E%3Cg%3E%3Cellipse%20cx%3D%22100%22%20cy%3D%22115%22%20rx%3D%2240%22%20ry%3D%2240%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22dfX1GTXx0dsaOR7s5UN7-4%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20130%2085%20L%20155.97%2059.03%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3Cpath%20d%3D%22M%20166.05%2048.95%20L%20159.33%2069.11%20L%20155.97%2059.03%20L%20145.89%2055.67%20Z%22%20fill%3D%22%23000000%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22WfpUhmjnT6FgT6mvTSny-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.planets.mercury="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22201px%22%20viewBox%3D%22-0.5%20-0.5%20200%20201%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22P34d2Aacb0rAMBlJQ82S-5%22%3E%3Cg%3E%3Cellipse%20cx%3D%22100%22%20cy%3D%2290%22%20rx%3D%2240%22%20ry%3D%2240%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22P34d2Aacb0rAMBlJQ82S-6%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20129.98%2025.18%20C%20130.36%2034.02%20124.63%2042.31%20115.07%2046.75%20C%20105.51%2051.19%2093.67%2051.07%2084.26%2046.43%20C%2074.85%2041.79%2069.39%2033.39%2070.05%2024.56%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22P34d2Aacb0rAMBlJQ82S-7%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20100%20180%20L%20100%20130%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22P34d2Aacb0rAMBlJQ82S-8%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2060%20160%20L%20140%20160%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22YspeTQYn8OWxfiwJ6-K5-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.planets.moon="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%20%3Cpath%20d%3D%22M%20106.38%2031%20C%20133.61%2035.85%20154.8%2057.4%20159.18%2084.71%20C%20163.56%20112.02%20150.17%20139.12%20125.82%20152.23%20C%20101.46%20165.35%2071.47%20161.61%2051.08%20142.92%20Q%2059.25%20148.63%2089.31%20129.94%20Q%20119.38%20111.25%20119.38%2074.69%20Q%20119.38%2038.13%20108.81%2031.63%20Z%22%20fill%3D%22white%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%20%3C%2Fsvg%3E",r.planets.neptune="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22xklInLVkXW5TzGvFd8Wp-13%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20100%20170%20L%20100%2061.18%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3Cpath%20d%3D%22M%20105.67%2072.59%20L%20100%2055.59%20L%2094.33%2072.59%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22xklInLVkXW5TzGvFd8Wp-14%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20140%20140%20L%2060%20140%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22xklInLVkXW5TzGvFd8Wp-15%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2060%2061.18%20Q%2060%20100%2080%20110%20Q%20100%20120%20120%20110%20Q%20140%20100%20140%2061.18%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3Cpath%20d%3D%22M%2063.67%2066.59%20L%2060%2055.59%20L%2056.33%2066.59%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3Cpath%20d%3D%22M%20145.67%2072.59%20L%20140%2055.59%20L%20134.33%2072.59%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22zbcp-zu0BkE59QIL-Zbj-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.planets.pluto="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%222_PLy7GvWnqgv2neW7ed-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%222_PLy7GvWnqgv2neW7ed-9%22%3E%3Cg%3E%3Cellipse%20cx%3D%22100%22%20cy%3D%22149%22%20rx%3D%2222.5%22%20ry%3D%2220%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%222_PLy7GvWnqgv2neW7ed-10%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20100%20129%20L%20100.5%20110%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%222_PLy7GvWnqgv2neW7ed-11%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20140%2070.4%20C%20139.78%2092.49%20121.69%20110.22%2099.6%20110%20C%2077.51%20109.78%2059.78%2091.69%2060%2069.6%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%222_PLy7GvWnqgv2neW7ed-12%22%3E%3Cg%3E%3Cellipse%20cx%3D%22100%22%20cy%3D%2270%22%20rx%3D%2222.5%22%20ry%3D%2220%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%227pAuGvqZmXAXuP9MepSf-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.planets.rahu="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22nMoK0GtzClMlq9khWL09-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22nMoK0GtzClMlq9khWL09-6%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22nMoK0GtzClMlq9khWL09-7%22%3E%3Cg%3E%3Cellipse%20cx%3D%2265%22%20cy%3D%2265%22%20rx%3D%2215%22%20ry%3D%2215%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22nMoK0GtzClMlq9khWL09-8%22%3E%3Cg%3E%3Cellipse%20cx%3D%22135%22%20cy%3D%2265%22%20rx%3D%2215%22%20ry%3D%2215%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22nMoK0GtzClMlq9khWL09-9%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20124.39%2054.39%20Q%20120%2060%20120%2065%20Q%20120%2070%20130%2095%20Q%20140%20120%20130%20135%20Q%20120%20150%20100%20150%20Q%2080%20150%2070%20135%20Q%2060%20120%2070%2095%20Q%2080%2070%2080%2065%20Q%2080%2060%2075.61%2054.39%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%223M6Cx9xprG5cO1lWqNEw-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.planets.saturn="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22PGt55_aUy3Njtwruwuk4-5%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2090%20139%20L%2090%2039%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22PGt55_aUy3Njtwruwuk4-6%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2060%2059%20L%20120%2059%20L%2090%2059%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22PGt55_aUy3Njtwruwuk4-7%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20150%20169%20Q%20138%20179%20129%20174%20Q%20120%20169%20129%20144%20Q%20138%20119%20134%20104%20Q%20130%2089%20110%2089%20Q%2090%2089%2090%20109%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%226yAxXstixJTfL81ozoQc-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22sU4-NP-8qgTjRoMx9Fv4-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.planets.selena="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22jFIPWhlccuGsN_-w-8e2-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22jFIPWhlccuGsN_-w-8e2-6%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20140%20150%20L%2060%20150%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22jFIPWhlccuGsN_-w-8e2-7%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2099.2%20117.1%20L%20100%20180%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22jFIPWhlccuGsN_-w-8e2-8%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2073.37%2031.14%20C%2062.66%2048.46%2065.45%2070.65%2080.13%2084.94%20C%2094.81%2099.23%20117.6%20101.95%20135.38%2091.52%20C%20125.69%20107.19%20107.04%20115.39%2088.56%20112.1%20C%2070.07%20108.81%2055.61%2094.73%2052.23%2076.73%20C%2048.85%2058.74%2057.27%2040.58%2073.37%2031.14%20Z%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20transform%3D%22rotate(225%2C92.12%2C73.26)%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22B7BV3EczgGRAOl1qaG-U-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.planets.sun="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22KMRcx8_Z6FSBlqI5tEZE-1%22%3E%3Cg%3E%3Cellipse%20cx%3D%22100%22%20cy%3D%22100%22%20rx%3D%2265%22%20ry%3D%2260%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22KMRcx8_Z6FSBlqI5tEZE-2%22%3E%3Cg%3E%3Cellipse%20cx%3D%22100%22%20cy%3D%22100%22%20rx%3D%2210%22%20ry%3D%2210%22%20fill%3D%22%23000000%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(237%2C%20237%2C%20237))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22adE6InmPBndy7Uo4bRgR-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.planets.uranus="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22-Ga99g4WFrNk1u2N47Tz-4%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22-Ga99g4WFrNk1u2N47Tz-9%22%3E%3Cg%3E%3Cellipse%20cx%3D%22100%22%20cy%3D%22149%22%20rx%3D%2222.5%22%20ry%3D%2220%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22-Ga99g4WFrNk1u2N47Tz-10%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2080.91%2089.92%20L%20120.91%2089.92%20L%20100.91%2089.92%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22-Ga99g4WFrNk1u2N47Tz-11%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20100%20129%20L%20100%2060%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22-Ga99g4WFrNk1u2N47Tz-12%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2052.39%2051.12%20C%2066.57%2052.6%2078%2066.81%2079.77%2085.16%20C%2081.53%20103.5%2073.15%20120.94%2059.69%20126.91%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22-Ga99g4WFrNk1u2N47Tz-13%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20141.64%20127.44%20C%20128.11%20122.27%20119.13%20105.39%20120.07%2086.87%20C%20121.01%2068.35%20131.61%2053.19%20145.55%2050.44%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22An7hOLSuI-_JKes7hUzt-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22XEAaU1rfczp1g1rg0gsK-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.planets.venus="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%2282gSs5GHCCOlAdsS7Y_n-5%22%3E%3Cg%3E%3Cellipse%20cx%3D%22100%22%20cy%3D%2279%22%20rx%3D%2240%22%20ry%3D%2240%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%2282gSs5GHCCOlAdsS7Y_n-6%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20100%20180%20L%20100%20119%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%2282gSs5GHCCOlAdsS7Y_n-7%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2060%20150%20L%20140%20150%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22wT5vcnIU1864jlhb-1KB-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.signs.aquarius="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22pYeec5tt2UMA0w_zhV47-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22pYeec5tt2UMA0w_zhV47-6%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20161.5%2090%20Q%20151.5%2070%20136.5%2080%20Q%20121.5%2090%20116.5%2075%20Q%20111.5%2060%2096%2075%20Q%2080.5%2090%2074.5%2075%20Q%2068.5%2060%2041.5%2090%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22pYeec5tt2UMA0w_zhV47-7%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20158.5%20120%20Q%20148.5%20100%20133.5%20110%20Q%20118.5%20120%20113.5%20105%20Q%20108.5%2090%2093%20105%20Q%2077.5%20120%2071.5%20105%20Q%2065.5%2090%2038.5%20120%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22fXDPfsLTpfVXU3cFdg-k-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.signs.aries="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22blLjc4XcNJx5ieieuYer-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22G6Vla6dTyV-LotFg2Pob-7%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20101%20160%20Q%20100%20100%2095%2075%20Q%2090%2050%2070%2045%20Q%2050%2040%2030%2060%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22G6Vla6dTyV-LotFg2Pob-8%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20101%20160%20Q%20100%20110%20105%2080%20Q%20110%2050%20130%2045%20Q%20150%2040%20170%2060%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22vkXA4BL2LVM82eNTlpCW-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.signs.cancer="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22F9CagPl8JsqmlfRdU_IR-17%22%3E%3Cg%3E%3Cellipse%20cx%3D%22131%22%20cy%3D%22106.62%22%20rx%3D%2222.5%22%20ry%3D%2220%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22F9CagPl8JsqmlfRdU_IR-18%22%3E%3Cg%3E%3Cellipse%20cx%3D%2272.5%22%20cy%3D%2275.62%22%20rx%3D%2222.5%22%20ry%3D%2220%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22F9CagPl8JsqmlfRdU_IR-19%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2097.18%20159.61%20C%2081.71%20156.42%2070.06%20134.3%2070%20108%20C%2069.94%2081.71%2081.49%2059.45%2096.95%2056.06%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20transform%3D%22rotate(-90%2C100.94%2C107.81)%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22F9CagPl8JsqmlfRdU_IR-20%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2097.18%20125.49%20C%2081.71%20122.39%2070.06%20100.94%2070%2075.43%20C%2069.94%2049.93%2081.49%2028.33%2096.95%2025.04%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20transform%3D%22rotate(90%2C100.94%2C75.25)%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22-nztp9pWxBHcmyZ08QR4-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.signs.capricorn="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22FCZELrIV3grwh7Eqi1pe-8%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22FCZELrIV3grwh7Eqi1pe-9%22%3E%3Cg%3E%3Cellipse%20cx%3D%22135%22%20cy%3D%22118.25%22%20rx%3D%2215%22%20ry%3D%2216.5%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22FCZELrIV3grwh7Eqi1pe-10%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20120%20112.75%20Q%20120%20130.35%20120%20110.55%20Q%20120%2090.75%20120%2068.75%20Q%20120%2046.75%20107.5%2041.25%20Q%2095%2035.75%2085%2079.75%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22FCZELrIV3grwh7Eqi1pe-11%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2085%2079.75%20Q%2080%2035.75%2060%2035.75%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22FCZELrIV3grwh7Eqi1pe-12%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20100%20145.75%20Q%20110%20145.75%20115%20134.75%20Q%20120%20123.75%20120%20118.25%20Q%20120%20112.75%20124.23%20106.76%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22BpOhtRGwmzoIQpnF7pUJ-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.signs.gemini="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22vdI9q3M43HH2vRBbEY2U-37%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2097.31%2096.94%20C%2081.84%2093.35%2070.19%2068.48%2070.13%2038.91%20C%2070.07%209.34%2081.62%20-15.7%2097.08%20-19.51%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20transform%3D%22rotate(-90%2C101.07%2C38.69)%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22vdI9q3M43HH2vRBbEY2U-38%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2095.68%20223.38%20C%2080.21%20219.76%2068.56%20194.71%2068.5%20164.91%20C%2068.44%20135.12%2079.99%20109.9%2095.45%20106.06%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20transform%3D%22rotate(90%2C99.44%2C164.69)%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22vdI9q3M43HH2vRBbEY2U-39%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2079.93%20136.79%20L%2079.47%2067.65%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22vdI9q3M43HH2vRBbEY2U-40%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20119.66%20135.3%20L%20119.73%2067.65%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22jCEtXZTTY2g2Gjzo-qMJ-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.signs.leo="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%225dCEg9FfoHjf9y-4Zlng-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%225dCEg9FfoHjf9y-4Zlng-6%22%3E%3Cg%3E%3Cellipse%20cx%3D%2272.5%22%20cy%3D%22100%22%20rx%3D%2222.5%22%20ry%3D%2220%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%225dCEg9FfoHjf9y-4Zlng-7%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20160%20140%20Q%20150%20150%20137.5%20150%20Q%20125%20150%20122.5%20135%20Q%20120%20120%20130%2080%20Q%20140%2040%20110%2040%20Q%2080%2040%2095%20100%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.signs.libra="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22DDuQtP-VmcjbW8JG7HV6-5%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2040%20136.78%20L%20160%20136.78%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22DDuQtP-VmcjbW8JG7HV6-6%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2040%20108.6%20L%2084.04%20109.09%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22DDuQtP-VmcjbW8JG7HV6-7%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20116.38%20109.09%20L%20160%20108.6%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22DDuQtP-VmcjbW8JG7HV6-8%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20125.48%2098.82%20C%20119.06%20110.71%20105.66%20116.67%2092.85%20113.33%20C%2080.03%20109.99%2071%2098.19%2070.85%2084.59%20C%2070.7%2070.98%2079.47%2058.98%2092.21%2055.34%20C%20104.95%2051.71%20118.48%2057.35%20125.16%2069.09%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20transform%3D%22rotate(90%2C100%2C84.25)%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22Vif0qCJVHSTV2Csg5cyl-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.signs.pisces="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22ufDh7fpc4K_yNdC7vCHW-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22ufDh7fpc4K_yNdC7vCHW-6%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2057.79%2045.18%20C%2074.33%2047.25%2087.67%2067.3%2089.73%2093.17%20C%2091.79%20119.04%2082.01%20143.63%2066.3%20152.05%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22ufDh7fpc4K_yNdC7vCHW-7%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20135.25%20152.82%20C%20119.46%20145.63%20108.98%20122.12%20110.08%2096.34%20C%20111.17%2070.55%20123.54%2049.44%20139.81%2045.61%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22ufDh7fpc4K_yNdC7vCHW-8%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2055.01%2099.91%20L%20144.99%2099.86%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%222UPBxVXPtNNG9HLaSRjR-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.signs.sagittarius="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22bNOf38aV_gRLlzT1H2mC-8%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2059%20127.75%20L%20138%2048.75%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22bNOf38aV_gRLlzT1H2mC-9%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2060%2086.75%20L%20100%20126.75%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22bNOf38aV_gRLlzT1H2mC-10%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2099%2047.75%20L%20141%2047.75%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22bNOf38aV_gRLlzT1H2mC-11%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20139%2087.75%20L%20139%2045.75%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22bTJtWIvd38qZUwxlYIHf-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.signs.scorpio="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22xiVi_kujB_bSvCnK_Mbj-8%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2060%20143%20Q%2060%2080%2060%2060%20Q%2060%2040%2060%2035%20Q%2060%2030%2050%2020%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22xiVi_kujB_bSvCnK_Mbj-9%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2090%20143%20Q%2090%2080%2090%2060%20Q%2090%2040%2080%2030.75%20Q%2070%2021.5%2060%2041.5%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22xiVi_kujB_bSvCnK_Mbj-10%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20152.09%20133.66%20Q%20120%20165.75%20120%20122.88%20Q%20120%2080%20120%2060%20Q%20120%2040%20110%2030.75%20Q%20100%2021.5%2089%2044.5%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3Cpath%20d%3D%22M%20150.86%20140.07%20L%20156.05%20129.7%20L%20145.68%20134.89%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22all%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%2278SzmRzQp-I1tTwLOdSe-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.signs.taurus="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22-6Y1EZ5wd5mKBmpr7pZl-13%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20150%2050%20Q%20130%2050%20125%2060%20Q%20120%2070%20115%2075%20Q%20110%2080%20105%2080%20Q%20100%2080%2095%2080%20Q%2090%2080%2085%2075%20Q%2080%2070%2075%2060%20Q%2070%2050%2050%2050%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22-6Y1EZ5wd5mKBmpr7pZl-14%22%3E%3Cg%3E%3Cellipse%20cx%3D%22100%22%20cy%3D%22120%22%20rx%3D%2240%22%20ry%3D%2240%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22UmnKpyvcFwhx0IRVoUol-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.signs.virgo="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22NISO0k0YKw3UAR4flL04-8%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22NISO0k0YKw3UAR4flL04-9%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2060%20143%20Q%2060%2080%2060%2060%20Q%2060%2040%2060%2035%20Q%2060%2030%2050%2020%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22NISO0k0YKw3UAR4flL04-10%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2090%20143%20Q%2090%2080%2090%2060%20Q%2090%2040%2080%2030.75%20Q%2070%2021.5%2060%2041.5%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22NISO0k0YKw3UAR4flL04-11%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20150%20171.5%20Q%20120%20141.5%20120%20110.75%20Q%20120%2080%20120%2060%20Q%20120%2040%20110%2030.75%20Q%20100%2021.5%2089%2044.5%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22NISO0k0YKw3UAR4flL04-12%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20110%20161.5%20Q%20130%20141.5%20135%20131.5%20Q%20140%20121.5%20140%20106.5%20Q%20140%2091.5%20135%2086.5%20Q%20130%2081.5%20120%20101.5%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(255%2C%20255%2C%20255))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%2234pg9PiOzKNUfzoN4yK9-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.aspects.conjunction="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22gGTkRmc-nT83Q299-C-k-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22a2c2rf50iBX5W4IijcMr-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22a2c2rf50iBX5W4IijcMr-6%22%3E%3Cg%3E%3Cpath%20d%3D%22M%20108.47%2092.68%20L%20128.5%2072%22%20fill%3D%22none%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(237%2C%20237%2C%20237))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22a2c2rf50iBX5W4IijcMr-7%22%3E%3Cg%3E%3Cellipse%20cx%3D%2294%22%20cy%3D%22108%22%20rx%3D%2222.5%22%20ry%3D%2220%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23000000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%200%2C%200)%2C%20rgb(237%2C%20237%2C%20237))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.aspects.opposition="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22xVQDPyRT5oTKQHZ23-IM-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22xVQDPyRT5oTKQHZ23-IM-6%22%3E%3Cg%3E%3Cellipse%20cx%3D%2275%22%20cy%3D%22125%22%20rx%3D%2222.5%22%20ry%3D%2220%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23990000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(153%2C%200%2C%200)%2C%20rgb(255%2C%20181%2C%20181))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22xVQDPyRT5oTKQHZ23-IM-7%22%3E%3Cg%3E%3Cellipse%20cx%3D%22125%22%20cy%3D%2275%22%20rx%3D%2222.5%22%20ry%3D%2220%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23990000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(153%2C%200%2C%200)%2C%20rgb(255%2C%20181%2C%20181))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22xVQDPyRT5oTKQHZ23-IM-8%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2089.71%20109.86%20L%20109.27%2089.3%22%20fill%3D%22none%22%20stroke%3D%22%23990000%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(153%2C%200%2C%200)%2C%20rgb(255%2C%20181%2C%20181))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22EZUqS9dHCJ6ET5sfbTn7-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.aspects.quincunx="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22vdzi6F08xrY5ULLa3aSw-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22vdzi6F08xrY5ULLa3aSw-6%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2070%2065%20L%20130%20100%20L%2070%20135%20Z%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23009900%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20transform%3D%22rotate(-90%2C100%2C100)%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%20153%2C%200)%2C%20rgb(50%2C%20181%2C%2050))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22bWTqftR76DX4mWTuiE5u-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.aspects.semisextile="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22vdzi6F08xrY5ULLa3aSw-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22vdzi6F08xrY5ULLa3aSw-6%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2070%2065%20L%20130%20100%20L%2070%20135%20Z%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23009900%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20transform%3D%22rotate(-90%2C100%2C100)%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%20153%2C%200)%2C%20rgb(50%2C%20181%2C%2050))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22bWTqftR76DX4mWTuiE5u-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.aspects.semisquare="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22vdzi6F08xrY5ULLa3aSw-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22vdzi6F08xrY5ULLa3aSw-6%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2070%2065%20L%20130%20100%20L%2070%20135%20Z%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23009900%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20transform%3D%22rotate(-90%2C100%2C100)%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%20153%2C%200)%2C%20rgb(50%2C%20181%2C%2050))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22bWTqftR76DX4mWTuiE5u-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.aspects.sesquisquare="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22vdzi6F08xrY5ULLa3aSw-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22vdzi6F08xrY5ULLa3aSw-6%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2070%2065%20L%20130%20100%20L%2070%20135%20Z%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23009900%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20transform%3D%22rotate(-90%2C100%2C100)%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%20153%2C%200)%2C%20rgb(50%2C%20181%2C%2050))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22bWTqftR76DX4mWTuiE5u-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.aspects.sextile="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%222H47zmM80uQNvDx8u0mK-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%222H47zmM80uQNvDx8u0mK-6%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2060%20100%20L%20140%20100%22%20fill%3D%22none%22%20stroke%3D%22%23009900%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%20153%2C%200)%2C%20rgb(50%2C%20181%2C%2050))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%222H47zmM80uQNvDx8u0mK-7%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2070%2070%20L%20130%20130%22%20fill%3D%22none%22%20stroke%3D%22%23009900%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%20153%2C%200)%2C%20rgb(50%2C%20181%2C%2050))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%222H47zmM80uQNvDx8u0mK-8%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2070%20130%20L%20130%2070%22%20fill%3D%22none%22%20stroke%3D%22%23009900%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20pointer-events%3D%22stroke%22%20style%3D%22stroke%3A%20light-dark(rgb(0%2C%20153%2C%200)%2C%20rgb(50%2C%20181%2C%2050))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%221QpNWf1EhDtsYVpd6CiN-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.aspects.square="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22p0KHWF2mTDFWD3EQTWJK-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22p0KHWF2mTDFWD3EQTWJK-6%22%3E%3Cg%3E%3Crect%20x%3D%2270%22%20y%3D%2270%22%20width%3D%2260%22%20height%3D%2260%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23990000%22%20stroke-width%3D%225%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(153%2C%200%2C%200)%2C%20rgb(255%2C%20181%2C%20181))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22Uxbd23ua_aHTV4gALoXr-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.aspects.trine="data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22UTF-8%22%3F%3E%20%3C!DOCTYPE%20svg%20PUBLIC%20%22-%2F%2FW3C%2F%2FDTD%20SVG%201.1%2F%2FEN%22%20%22http%3A%2F%2Fwww.w3.org%2FGraphics%2FSVG%2F1.1%2FDTD%2Fsvg11.dtd%22%3E%20%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20style%3D%22background%3A%20transparent%3B%20background-color%3A%20transparent%3B%20color-scheme%3A%20light%20dark%3B%22%20xmlns%3Axlink%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20version%3D%221.1%22%20width%3D%22200px%22%20height%3D%22200px%22%20viewBox%3D%22-0.5%20-0.5%20200%20200%22%3E%3Cdefs%2F%3E%3Cg%3E%3Cg%20data-cell-id%3D%220%22%3E%3Cg%20data-cell-id%3D%221%22%3E%3Cg%20data-cell-id%3D%22vdzi6F08xrY5ULLa3aSw-1%22%3E%3Cg%2F%3E%3Cg%20data-cell-id%3D%22vdzi6F08xrY5ULLa3aSw-6%22%3E%3Cg%3E%3Cpath%20d%3D%22M%2070%2065%20L%20130%20100%20L%2070%20135%20Z%22%20fill%3D%22%23ffffff%22%20stroke%3D%22%23009900%22%20stroke-width%3D%225%22%20stroke-miterlimit%3D%2210%22%20transform%3D%22rotate(-90%2C100%2C100)%22%20pointer-events%3D%22all%22%20style%3D%22fill%3A%20light-dark(%23ffffff%2C%20var(--ge-dark-color%2C%20%23121212))%3B%20stroke%3A%20light-dark(rgb(0%2C%20153%2C%200)%2C%20rgb(50%2C%20181%2C%2050))%3B%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3Cg%20data-cell-id%3D%22bWTqftR76DX4mWTuiE5u-1%22%3E%3Cg%3E%3Crect%20x%3D%220%22%20y%3D%220%22%20width%3D%22200%22%20height%3D%22200%22%20fill%3D%22none%22%20stroke%3D%22none%22%20pointer-events%3D%22all%22%2F%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fg%3E%3C%2Fsvg%3E",r.planets,r.signs,r.aspects;class i{constructor(){this.houseSystems={Placidus:this.calculatePlacidus.bind(this),Koch:this.calculateKoch.bind(this),Equal:this.calculateEqual.bind(this),"Whole Sign":this.calculateWholeSign.bind(this),Porphyry:this.calculatePorphyry.bind(this),Regiomontanus:this.calculateRegiomontanus.bind(this),Campanus:this.calculateCampanus.bind(this),Morinus:this.calculateMorinus.bind(this),Topocentric:this.calculateTopocentric.bind(this)}}getAvailableHouseSystems(){return Object.keys(this.houseSystems)}calculateHouseCusps(e,t="Placidus",s={}){if("number"!=typeof e||e<0||e>=360)throw new Error("Ascendant must be a number between 0 and 360");if(!this.houseSystems[t])throw new Error(`House system "${t}" is not supported`);return this.houseSystems[t](e,s)}calculatePlacidus(e,{latitude:t,mc:s}){if("number"!=typeof t||"number"!=typeof s)throw new Error("Placidus house system requires latitude and mc");if(Math.abs(t)>=66.5)return this.calculatePorphyry(e,{mc:s});const r=23.4367,i=new Array(12);i[0]=e,i[9]=s,i[6]=this.normalizeAngle(e+180),i[3]=this.normalizeAngle(s+180),this.degreesToRadians(t),this.degreesToRadians(r),this.degreesToRadians(s);try{i[10]=this.calculatePlacidusIntermediateHouse(s,e,1/3,t,r),i[11]=this.calculatePlacidusIntermediateHouse(s,e,2/3,t,r),i[1]=this.calculatePlacidusIntermediateHouse(e,i[3],1/3,t,r),i[2]=this.calculatePlacidusIntermediateHouse(e,i[3],2/3,t,r),i[4]=this.calculatePlacidusIntermediateHouse(i[3],i[6],1/3,t,r),i[5]=this.calculatePlacidusIntermediateHouse(i[3],i[6],2/3,t,r),i[7]=this.calculatePlacidusIntermediateHouse(i[6],i[9],1/3,t,r),i[8]=this.calculatePlacidusIntermediateHouse(i[6],i[9],2/3,t,r)}catch(t){return console.warn(`Placidus calculation failed: ${t.message}. Falling back to Porphyry.`),this.calculatePorphyry(e,{mc:s})}return i}calculatePlacidusIntermediateHouse(e,t,s,r,i){const n=this.calculateArc(e,t);return this.normalizeAngle(e+n*s)}calculateKoch(e,{latitude:t,mc:s}){if("number"!=typeof t||"number"!=typeof s)throw new Error("Koch house system requires latitude and mc");const r=new Array(12);r[0]=e,r[9]=s,r[6]=this.normalizeAngle(e+180),r[3]=this.normalizeAngle(s+180);const i=this.calculateArc(r[9],r[0]);r[10]=this.normalizeAngle(r[9]+i/3),r[11]=this.normalizeAngle(r[9]+2*i/3);const n=this.calculateArc(r[0],r[3]);r[1]=this.normalizeAngle(r[0]+n/3),r[2]=this.normalizeAngle(r[0]+2*n/3);const o=this.calculateArc(r[3],r[6]);r[4]=this.normalizeAngle(r[3]+o/3),r[5]=this.normalizeAngle(r[3]+2*o/3);const a=this.calculateArc(r[6],r[9]);return r[7]=this.normalizeAngle(r[6]+a/3),r[8]=this.normalizeAngle(r[6]+2*a/3),r}calculateEqual(e){const t=new Array(12);for(let s=0;s<12;s++)t[s]=this.normalizeAngle(e+30*s);return t}calculateWholeSign(e){const t=new Array(12),s=Math.floor(e/30);for(let e=0;e<12;e++)t[e]=(s+e)%12*30;return t}calculatePorphyry(e,{mc:t}){if("number"!=typeof t)throw new Error("Porphyry house system requires mc");const s=new Array(12);s[0]=e,s[9]=t,s[6]=this.normalizeAngle(e+180),s[3]=this.normalizeAngle(t+180);const r=this.calculateArc(s[9],s[0]);s[10]=this.normalizeAngle(s[9]+r/3),s[11]=this.normalizeAngle(s[9]+2*r/3);const i=this.calculateArc(s[0],s[3]);s[1]=this.normalizeAngle(s[0]+i/3),s[2]=this.normalizeAngle(s[0]+2*i/3);const n=this.calculateArc(s[3],s[6]);s[4]=this.normalizeAngle(s[3]+n/3),s[5]=this.normalizeAngle(s[3]+2*n/3);const o=this.calculateArc(s[6],s[9]);return s[7]=this.normalizeAngle(s[6]+o/3),s[8]=this.normalizeAngle(s[6]+2*o/3),s}calculateRegiomontanus(e,{latitude:t,mc:s}){if("number"!=typeof t||"number"!=typeof s)throw new Error("Regiomontanus house system requires latitude and mc");const r=new Array(12);r[0]=e,r[9]=s,r[6]=this.normalizeAngle(e+180),r[3]=this.normalizeAngle(s+180);const i=this.calculateArc(r[9],r[0]);r[10]=this.normalizeAngle(r[9]+i/3),r[11]=this.normalizeAngle(r[9]+2*i/3);const n=this.calculateArc(r[0],r[3]);r[1]=this.normalizeAngle(r[0]+n/3),r[2]=this.normalizeAngle(r[0]+2*n/3);const o=this.calculateArc(r[3],r[6]);r[4]=this.normalizeAngle(r[3]+o/3),r[5]=this.normalizeAngle(r[3]+2*o/3);const a=this.calculateArc(r[6],r[9]);return r[7]=this.normalizeAngle(r[6]+a/3),r[8]=this.normalizeAngle(r[6]+2*a/3),r}calculateCampanus(e,{latitude:t,mc:s}){if("number"!=typeof t||"number"!=typeof s)throw new Error("Campanus house system requires latitude and mc");const r=new Array(12);r[0]=e,r[9]=s,r[6]=this.normalizeAngle(e+180),r[3]=this.normalizeAngle(s+180);const i=this.calculateArc(r[9],r[0]);r[10]=this.normalizeAngle(r[9]+i/3),r[11]=this.normalizeAngle(r[9]+2*i/3);const n=this.calculateArc(r[0],r[3]);r[1]=this.normalizeAngle(r[0]+n/3),r[2]=this.normalizeAngle(r[0]+2*n/3);const o=this.calculateArc(r[3],r[6]);r[4]=this.normalizeAngle(r[3]+o/3),r[5]=this.normalizeAngle(r[3]+2*o/3);const a=this.calculateArc(r[6],r[9]);return r[7]=this.normalizeAngle(r[6]+a/3),r[8]=this.normalizeAngle(r[6]+2*a/3),r}calculateMorinus(e,{mc:t}){if("number"!=typeof t)throw new Error("Morinus house system requires mc");const s=new Array(12);s[0]=e,s[9]=t,s[6]=this.normalizeAngle(e+180),s[3]=this.normalizeAngle(t+180);const r=this.calculateArc(s[9],s[0]);s[10]=this.normalizeAngle(s[9]+r/3),s[11]=this.normalizeAngle(s[9]+2*r/3);const i=this.calculateArc(s[0],s[3]);s[1]=this.normalizeAngle(s[0]+i/3),s[2]=this.normalizeAngle(s[0]+2*i/3);const n=this.calculateArc(s[3],s[6]);s[4]=this.normalizeAngle(s[3]+n/3),s[5]=this.normalizeAngle(s[3]+2*n/3);const o=this.calculateArc(s[6],s[9]);return s[7]=this.normalizeAngle(s[6]+o/3),s[8]=this.normalizeAngle(s[6]+2*o/3),s}calculateTopocentric(e,{latitude:t,mc:s}){if("number"!=typeof t||"number"!=typeof s)throw new Error("Topocentric house system requires latitude and mc");const r=new Array(12);r[0]=e,r[9]=s,r[6]=this.normalizeAngle(e+180),r[3]=this.normalizeAngle(s+180);const i=this.calculateArc(r[9],r[0]);r[10]=this.normalizeAngle(r[9]+i/3),r[11]=this.normalizeAngle(r[9]+2*i/3);const n=this.calculateArc(r[0],r[3]);r[1]=this.normalizeAngle(r[0]+n/3),r[2]=this.normalizeAngle(r[0]+2*n/3);const o=this.calculateArc(r[3],r[6]);r[4]=this.normalizeAngle(r[3]+o/3),r[5]=this.normalizeAngle(r[3]+2*o/3);const a=this.calculateArc(r[6],r[9]);return r[7]=this.normalizeAngle(r[6]+a/3),r[8]=this.normalizeAngle(r[6]+2*a/3),r}calculateArc(e,t){const s=this.normalizeAngle(t-e);return s<=180?s:360-s}normalizeAngle(e){return(e%360+360)%360}rightAscensionToLongitude(e,t){return this.radiansToDegrees(Math.atan2(Math.sin(e)*Math.cos(t),Math.cos(e)))}longitudeToRightAscension(e,t){const s=this.degreesToRadians(e);return Math.atan2(Math.sin(s)*Math.cos(t),Math.cos(s))}degreesToRadians(e){return e*Math.PI/180}radiansToDegrees(e){return 180*e/Math.PI}}class n{constructor(e={}){this.astronomicalData={ascendant:0,mc:90,latitude:51.5,houseSystem:"Placidus",planets:{sun:0,moon:0,mercury:0,venus:0,mars:0,jupiter:0,saturn:0,uranus:0,neptune:0,pluto:0}},this.primaryAspectSettings={enabled:!0,orb:6,types:{conjunction:{angle:0,orb:8,color:"#000000",enabled:!0,lineStyle:"none",strokeWidth:1},opposition:{angle:180,orb:6,color:"#E41B17",enabled:!0,lineStyle:"solid",strokeWidth:1},trine:{angle:120,orb:6,color:"#4CC417",enabled:!0,lineStyle:"solid",strokeWidth:1},square:{angle:90,orb:6,color:"#F62817",enabled:!0,lineStyle:"dashed",strokeWidth:1},sextile:{angle:60,orb:4,color:"#56A5EC",enabled:!0,lineStyle:"dashed",strokeWidth:1}}},this.secondaryAspectSettings={enabled:!0,orb:6,types:{conjunction:{angle:0,orb:8,color:"#AA00AA",enabled:!0,lineStyle:"none",strokeWidth:1},opposition:{angle:180,orb:6,color:"#FF6600",enabled:!0,lineStyle:"solid",strokeWidth:1},trine:{angle:120,orb:6,color:"#00AA00",enabled:!0,lineStyle:"solid",strokeWidth:1},square:{angle:90,orb:6,color:"#CC0066",enabled:!0,lineStyle:"dashed",strokeWidth:1},sextile:{angle:60,orb:4,color:"#0099CC",enabled:!0,lineStyle:"dashed",strokeWidth:1}}},this.synastryAspectSettings={enabled:!0,orb:6,types:{conjunction:{angle:0,orb:8,color:"#666666",enabled:!0,lineStyle:"none",strokeWidth:1},opposition:{angle:180,orb:6,color:"#9933CC",enabled:!0,lineStyle:"solid",strokeWidth:.5},trine:{angle:120,orb:6,color:"#33AA55",enabled:!0,lineStyle:"solid",strokeWidth:.5},square:{angle:90,orb:6,color:"#CC6633",enabled:!0,lineStyle:"dotted",strokeWidth:.5},sextile:{angle:60,orb:4,color:"#5599DD",enabled:!0,lineStyle:"dotted",strokeWidth:.5}}},this.aspectSettings={enabled:!0,orb:6,types:{conjunction:{angle:0,orb:8,color:"#000000",enabled:!0,lineStyle:"none",strokeWidth:1},opposition:{angle:180,orb:6,color:"#E41B17",enabled:!0,lineStyle:"solid",strokeWidth:1},trine:{angle:120,orb:6,color:"#4CC417",enabled:!0,lineStyle:"solid",strokeWidth:1},square:{angle:90,orb:6,color:"#F62817",enabled:!0,lineStyle:"dashed",strokeWidth:1},sextile:{angle:60,orb:4,color:"#56A5EC",enabled:!0,lineStyle:"dashed",strokeWidth:1}}},this.planetSettings={enabled:!0,primaryEnabled:!0,secondaryEnabled:!0,dotSize:3,iconSize:24,orbs:{sun:8,moon:8,mercury:6,venus:6,mars:6,jupiter:6,saturn:6,uranus:4,neptune:4,pluto:4},colors:{sun:"#ff9900",moon:"#aaaaaa",mercury:"#3399cc",venus:"#cc66cc",mars:"#cc3333",jupiter:"#9966cc",saturn:"#336633",uranus:"#33cccc",neptune:"#3366ff",pluto:"#663366"},visible:{sun:!0,moon:!0,mercury:!0,venus:!0,mars:!0,jupiter:!0,saturn:!0,uranus:!0,neptune:!0,pluto:!0}},this.houseSettings={enabled:!0,lineColor:"#666666",textColor:"#333333",fontSize:10,rotationAngle:0},this.zodiacSettings={enabled:!0,colors:{aries:"#ff6666",taurus:"#66cc66",gemini:"#ffcc66",cancer:"#6699cc",leo:"#ff9900",virgo:"#996633",libra:"#6699ff",scorpio:"#cc3366",sagittarius:"#cc66ff",capricorn:"#339966",aquarius:"#3399ff",pisces:"#9966cc"},fontSize:10},this.radius={innermost:90,zodiacInner:120,zodiacMiddle:150,zodiacOuter:180,planet:105,aspectInner:20,aspectOuter:120,houseNumberRadius:210},this.svg={width:460,height:460,viewBox:"0 0 460 460",center:{x:230,y:230}},this.assets={basePath:"./assets/",zodiacIconPath:"svg/zodiac/",planetIconPath:"svg/zodiac/"},this.theme={backgroundColor:"transparent",textColor:"#333333",lineColor:"#666666",lightLineColor:"#cccccc",fontFamily:"'Arial', sans-serif"},this.houseCusps=[],this.mergeConfig(e),this._initializeHouseCusps()}mergeConfig(e){const t=(e,s)=>{if("object"!=typeof s||null===s)return s;for(const r in s)Object.prototype.hasOwnProperty.call(s,r)&&("object"==typeof s[r]&&null!==s[r]&&"object"==typeof e[r]&&null!==e[r]?e[r]=t(e[r],s[r]):e[r]=s[r]);return e};for(const s in e)Object.prototype.hasOwnProperty.call(e,s)&&Object.prototype.hasOwnProperty.call(this,s)&&(this[s]=t(this[s],e[s]))}_initializeHouseCusps(){if("number"==typeof this.astronomicalData.ascendant&&"number"==typeof this.astronomicalData.mc)try{const e=new i;this.houseCusps=e.calculateHouseCusps(this.astronomicalData.ascendant,this.astronomicalData.houseSystem,{latitude:this.astronomicalData.latitude,mc:this.astronomicalData.mc})}catch(e){console.error("Failed to calculate house cusps:",e?.message||e),this.houseCusps=[]}}getPlanetSettings(e){const t=e.toLowerCase();return{color:this.planetSettings.colors[t]||"#000000",size:this.planetSettings.size,visible:!1!==this.planetSettings.visible[t]}}getAspectSettings(e){const t=e.toLowerCase();return this.aspectSettings.types[t]||{angle:0,orb:this.aspectSettings.orb,color:"#999999",enabled:!0}}getZodiacSettings(e){const t=e.toLowerCase();return{color:this.zodiacSettings.colors[t]||"#666666",fontSize:this.zodiacSettings.fontSize}}updateAspectSettings(e){this.aspectSettings={...this.aspectSettings,...e},this.primaryAspectSettings={...this.primaryAspectSettings,...e}}updatePrimaryAspectSettings(e){this.primaryAspectSettings={...this.primaryAspectSettings,...e}}updateSecondaryAspectSettings(e){this.secondaryAspectSettings={...this.secondaryAspectSettings,...e}}updateSynastryAspectSettings(e){this.synastryAspectSettings={...this.synastryAspectSettings,...e}}updatePlanetSettings(e){this.planetSettings={...this.planetSettings,...e}}updateHouseSettings(e){this.houseSettings={...this.houseSettings,...e}}updateZodiacSettings(e){this.zodiacSettings={...this.zodiacSettings,...e}}setRadius(e,t){Object.prototype.hasOwnProperty.call(this.radius,e)&&(this.radius[e]=t)}togglePlanetVisibility(e,t){this.planetSettings&&this.planetSettings.visible&&(this.planetSettings.visible[e]=t)}toggleHousesVisibility(e){this.houseSettings.enabled=e}toggleAspectsVisibility(e){this.aspectSettings.enabled=e,this.primaryAspectSettings.enabled=e,this.secondaryAspectSettings.enabled=e,this.synastryAspectSettings.enabled=e}togglePrimaryAspectsVisibility(e){this.primaryAspectSettings.enabled=e}toggleSecondaryAspectsVisibility(e){this.secondaryAspectSettings.enabled=e}toggleSynastryAspectsVisibility(e){this.synastryAspectSettings.enabled=e}togglePrimaryPlanetsVisibility(e){this.planetSettings.primaryEnabled=e}toggleSecondaryPlanetsVisibility(e){this.planetSettings.secondaryEnabled=e}setHouseSystem(e){return this.astronomicalData.houseSystem=e,this._initializeHouseCusps(),!0}getHouseCusps(){return this.houseCusps&&0!==this.houseCusps.length||this._initializeHouseCusps(),this.houseCusps.length>0&&"number"==typeof this.houseCusps[0]?this.houseCusps.map(e=>({lon:e})):this.houseCusps}setAscendant(e){return!("number"!=typeof e||e<0||e>=360)&&(this.astronomicalData.ascendant=e,this._initializeHouseCusps(),!0)}setMidheaven(e){return!("number"!=typeof e||e<0||e>=360)&&(this.astronomicalData.mc=e,this._initializeHouseCusps(),!0)}setLatitude(e){return!("number"!=typeof e||e<-90||e>90)&&(this.astronomicalData.latitude=e,this._initializeHouseCusps(),!0)}setPlanetPosition(e,t){const s=e.toLowerCase();return!("number"!=typeof t||t<0||t>=360)&&(!!this.astronomicalData.planets.hasOwnProperty(s)&&(this.astronomicalData.planets[s]=t,!0))}getPlanetPosition(e){const t=e.toLowerCase();return this.astronomicalData.planets.hasOwnProperty(t)?this.astronomicalData.planets[t]:null}getHouseSystem(){return this.astronomicalData.houseSystem}getAvailableHouseSystems(){return(new i).getAvailableHouseSystems()}}class o{constructor(){this.svgNS="http://www.w3.org/2000/svg"}createSVGElement(e,t={}){const s=document.createElementNS(this.svgNS,e);for(const[e,r]of Object.entries(t))s.setAttribute(e,r);return s}addTooltip(e,t){const s=document.createElementNS(this.svgNS,"title");return s.textContent=t,e.appendChild(s),e}pointOnCircle(e,t,s,r){const i=(r-90)*(Math.PI/180);return{x:e+s*Math.cos(i),y:t+s*Math.sin(i)}}}class a{constructor(e={}){this.svgNS="http://www.w3.org/2000/svg",this.svg=null,this.groups={},this.svgUtils=e.svgUtils||t.getSvgUtils(),this.groupOrder=["zodiac","houseDivisions","primaryAspects","secondaryAspects","synastryAspects","aspects","primaryPlanets","secondaryPlanets","houses"]}initialize(e,t={}){let s;if("string"==typeof e){if(s=document.querySelector(e),!s)return console.error(`SVGManager: Container not found with selector: ${e}`),null}else{if(!(e instanceof Element||e instanceof HTMLElement))return console.error("SVGManager: Invalid container. Expected string selector or DOM element."),null;s=e}s.innerHTML="";const r={width:"100%",height:"100%",viewBox:"0 0 460 460",preserveAspectRatio:"xMidYMid meet",class:"nocturna-wheel-svg",...t};this.svg=document.createElementNS(this.svgNS,"svg");for(const[e,t]of Object.entries(r))this.svg.setAttribute(e,t);return s.appendChild(this.svg),console.log("SVGManager: SVG initialized"),this.svg}createStandardGroups(){this.svg?(this.groups={},this.svg.querySelectorAll("g").forEach(e=>e.remove()),console.log("SVGManager: Creating standard groups:",this.groupOrder),this.groupOrder.forEach(e=>{this.createGroup(e)}),this.createGroup("planets")):console.error("SVGManager: Cannot create groups, SVG not initialized.")}createGroup(e){if(!this.svg)return console.error(`SVGManager: Cannot create group '${e}', SVG not initialized.`),null;if(this.groups[e])return this.groups[e];const t=document.createElementNS(this.svgNS,"g");return t.setAttribute("id",`group-${e}`),t.setAttribute("class",`svg-group svg-group-${e}`),this.svg.appendChild(t),this.groups[e]=t,t}getGroup(e){return this.svg?("planets"===e&&(console.warn('SVGManager: Using deprecated "planets" group. Use "primaryPlanets" or "secondaryPlanets" instead.'),e="primaryPlanets"),this.groups[e]?this.groups[e]:(console.warn(`SVGManager: Group '${e}' not found. Creating it.`),this.createGroup(e))):(console.warn(`SVGManager: Cannot get group '${e}', SVG not initialized.`),null)}getAllGroups(){return this.groups}getSVG(){return this.svg}}class l{constructor(e){if(!e||!e.svgNS||!e.config)throw new Error(`${this.constructor.name}: Missing required options (svgNS, config)`);this.svgNS=e.svgNS,this.config=e.config,this.options=e,this.svgUtils=e.svgUtils||{svgNS:this.svgNS,createSVGElement:(e,t={})=>{const s=document.createElementNS(this.svgNS,e);for(const[e,r]of Object.entries(t))s.setAttribute(e,r);return s},addTooltip:(e,t)=>{const s=document.createElementNS(this.svgNS,"title");return s.textContent=t,e.appendChild(s),e},pointOnCircle:(e,t,s,r)=>{const i=(r-90)*(Math.PI/180);return{x:e+s*Math.cos(i),y:t+s*Math.sin(i)}}},this.centerX=this.config.svg.center.x,this.centerY=this.config.svg.center.y,this.innerRadius=this.config.radius.zodiacInner,this.middleRadius=this.config.radius.zodiacMiddle,this.outerRadius=this.config.radius.zodiacOuter}clearGroup(e){e&&(e.innerHTML="")}render(e){throw new Error(`${this.constructor.name}: render() not implemented.`)}}class g{static capitalizeFirstLetter(e){return e.charAt(0).toUpperCase()+e.slice(1)}static getHouseFromPosition(e,t=0){const s=(e-t+360)%360;return Math.floor(s/30)+1}static getZodiacSigns(){return["aries","taurus","gemini","cancer","leo","virgo","libra","scorpio","sagittarius","capricorn","aquarius","pisces"]}static getHouseSystems(){return{Placidus:"Most commonly used house system in Western astrology, based on time of day",Koch:"Developed by Walter Koch, a time-based system similar to Placidus",Campanus:"Medieval system dividing the prime vertical into equal parts",Regiomontanus:"Similar to Campanus, but using the celestial equator instead of prime vertical",Equal:"Divides the ecliptic into 12 equal segments of 30° each from the Ascendant","Whole Sign":"Assigns the entire rising sign to the 1st house, with subsequent signs as houses",Porphyry:"Simple system that divides each quadrant into three equal parts",Topocentric:"Modern system similar to Placidus but more accurate for extreme latitudes"}}static getPlanets(){return["sun","moon","mercury","venus","mars","jupiter","saturn","uranus","neptune","pluto"]}static houseToRoman(e){return["I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII"][e-1]||""}static getPlanetFullName(e,t="en"){const s={en:{sun:"Sun",moon:"Moon",mercury:"Mercury",venus:"Venus",mars:"Mars",jupiter:"Jupiter",saturn:"Saturn",uranus:"Uranus",neptune:"Neptune",pluto:"Pluto"},ru:{sun:"Солнце",moon:"Луна",mercury:"Меркурий",venus:"Венера",mars:"Марс",jupiter:"Юпитер",saturn:"Сатурн",uranus:"Уран",neptune:"Нептун",pluto:"Плутон"}};return(s[t]||s.en)[e.toLowerCase()]||this.capitalizeFirstLetter(e)}static getZodiacSignFullName(e,t="en"){const s={en:{aries:"Aries",taurus:"Taurus",gemini:"Gemini",cancer:"Cancer",leo:"Leo",virgo:"Virgo",libra:"Libra",scorpio:"Scorpio",sagittarius:"Sagittarius",capricorn:"Capricorn",aquarius:"Aquarius",pisces:"Pisces"},ru:{aries:"Овен",taurus:"Телец",gemini:"Близнецы",cancer:"Рак",leo:"Лев",virgo:"Дева",libra:"Весы",scorpio:"Скорпион",sagittarius:"Стрелец",capricorn:"Козерог",aquarius:"Водолей",pisces:"Рыбы"}};return(s[t]||s.en)[e.toLowerCase()]||this.capitalizeFirstLetter(e)}}class c extends l{constructor(e){if(super(e),this.iconProvider=e.iconProvider,!e.assetBasePath&&!this.iconProvider)throw new Error("ZodiacRenderer: Missing required option assetBasePath or iconProvider");this.assetBasePath=e.assetBasePath||"./assets/",this.signIconRadius=(this.outerRadius+this.middleRadius)/2,this.signIconSize=30}render(e){if(!e)return console.error("ZodiacRenderer: parentGroup is null or undefined."),[];this.clearGroup(e);const t=[];return t.push(...this.renderBaseCircles(e)),t.push(...this.renderDivisionLines(e)),t.push(...this.renderZodiacSigns(e)),console.log("ZodiacRenderer: Rendering complete."),t}renderBaseCircles(e){const t=[];return[{r:this.outerRadius,class:"chart-outer-circle"},{r:this.middleRadius,class:"chart-middle-circle"},{r:this.innerRadius,class:"chart-inner-circle"}].forEach(s=>{let r="#999",i="0.5";"chart-outer-circle"===s.class&&(r="#666",i="1");const n=this.svgUtils.createSVGElement("circle",{cx:this.centerX,cy:this.centerY,r:s.r,fill:"transparent",stroke:r,"stroke-width":i,class:`zodiac-element ${s.class}`});e.appendChild(n),t.push(n)}),t}renderDivisionLines(e){const t=[];for(let s=0;s<12;s++){const r=30*s,i=this.svgUtils.pointOnCircle(this.centerX,this.centerY,this.middleRadius,r),n=this.svgUtils.pointOnCircle(this.centerX,this.centerY,this.outerRadius,r);let o="";0===r?o="aries-point":90===r?o="cancer-point":180===r?o="libra-point":270===r&&(o="capricorn-point");const a=this.svgUtils.createSVGElement("line",{x1:i.x,y1:i.y,x2:n.x,y2:n.y,stroke:"#999","stroke-width":"0.75",class:`zodiac-element zodiac-division-line ${o}`});e.appendChild(a),t.push(a)}return t}renderZodiacSigns(e){const t=[],s=g.getZodiacSigns();for(let r=0;r<12;r++){const i=s[r],n=30*r+15,o=this.svgUtils.pointOnCircle(this.centerX,this.centerY,this.signIconRadius,n);let a;if(this.iconProvider)a=this.iconProvider.getZodiacIconPath(i);else{const e=this.options.assetBasePath||this.assetBasePath||"./assets/";a=`${e}svg/zodiac/zodiac-sign-${i}.svg`}this._loggedSigns||(this._loggedSigns={}),this._loggedSigns[i]||(console.log(`ZodiacRenderer: Loading sign '${i}':`,a.startsWith("data:")?"inline data URL":a),this._loggedSigns[i]=!0);const l=this.svgUtils.createSVGElement("image",{x:o.x-this.signIconSize/2,y:o.y-this.signIconSize/2,width:this.signIconSize,height:this.signIconSize,href:a,class:`zodiac-element zodiac-sign zodiac-sign-${i}`});l.addEventListener("error",()=>{console.warn(`Zodiac sign icon not found: ${a}`),l.setAttribute("href","");const s=i.substring(0,3).toUpperCase();let r;this.iconProvider?r=this.iconProvider.createTextFallback(this.svgUtils,{x:o.x,y:o.y,size:"10px",color:"#ccc",className:`zodiac-element zodiac-sign zodiac-sign-${i}`},s):(r=this.svgUtils.createSVGElement("text",{x:o.x,y:o.y,"text-anchor":"middle","dominant-baseline":"central","font-size":"10px",fill:"#ccc",class:`zodiac-element zodiac-sign zodiac-sign-${i}`}),r.textContent=s),e.appendChild(r),t.push(r)}),this.svgUtils.addTooltip(l,g.getZodiacSignFullName(i)),e.appendChild(l),t.push(l)}return t}}class d extends l{constructor(e){super(e),this.houseData=e.houseData||[],this.extendedRadius=this.outerRadius+25,this.numberRadius=this.outerRadius+30}render(e,t=0){if(!e)return console.error("HouseRenderer: parentGroup is null or undefined."),[];this.clearGroup(e);const s=[];return s.push(...this.renderDivisions(e,t)),s.push(...this.renderNumbers(e,t)),console.log("HouseRenderer: Rendering complete."),s}renderDivisions(e,t){const s=[];let r=0;if(console.log("HouseRenderer: House data for divisions:",this.houseData),this.houseData&&this.houseData.length>=12){r=(360-this.getHouseLongitude(this.houseData[0]))%360}for(let i=0;i<12;i++){let n;n=this.houseData&&this.houseData.length>=12?this.getHouseLongitude(this.houseData[i]):30*i;const o=(n+r+t)%360;let a="";0===i?a="axis asc":3===i?a="axis ic":6===i?a="axis dsc":9===i&&(a="axis mc");const l=this.svgUtils.pointOnCircle(this.centerX,this.centerY,this.innerRadius,o),g=this.svgUtils.pointOnCircle(this.centerX,this.centerY,this.middleRadius,o);let c="#999",d="0.75",h="#999",C="0.75",D=null;a.includes("axis")?(c="#555",d="1",h="#555",C="1"):D="2,2";const p=this.svgUtils.createSVGElement("line",{x1:l.x,y1:l.y,x2:g.x,y2:g.y,stroke:c,"stroke-width":d,class:`house-element house-division-line ${a}`});a.includes("axis")&&(p.style.zIndex=10),e.appendChild(p),s.push(p);const F=this.svgUtils.pointOnCircle(this.centerX,this.centerY,this.outerRadius,o),u=this.svgUtils.pointOnCircle(this.centerX,this.centerY,this.extendedRadius,o),E={x1:F.x,y1:F.y,x2:u.x,y2:u.y,stroke:h,"stroke-width":C,class:`house-element house-division-line outer ${a}`};D&&(E["stroke-dasharray"]=D);const f=this.svgUtils.createSVGElement("line",E);a.includes("axis")&&(f.style.zIndex=10),e.appendChild(f),s.push(f)}return s}renderNumbers(e,t){const s=[];let r=0;if(console.log("HouseRenderer: House data for numbers:",this.houseData),this.houseData&&this.houseData.length>=12){r=(360-this.getHouseLongitude(this.houseData[0]))%360}for(let i=0;i<12;i++){let n;n=this.houseData&&this.houseData.length>=12?this.getHouseLongitude(this.houseData[i]):30*i;const o=((n+r+t)%360+15)%360,a=this.svgUtils.pointOnCircle(this.centerX,this.centerY,this.numberRadius,o),l=this.svgUtils.createSVGElement("text",{x:a.x,y:a.y,class:"house-element house-number"});o>=315||o<45?(l.setAttribute("text-anchor","middle"),l.setAttribute("dominant-baseline","auto")):o>=45&&o<135?(l.setAttribute("text-anchor","start"),l.setAttribute("dominant-baseline","middle")):o>=135&&o<225?(l.setAttribute("text-anchor","middle"),l.setAttribute("dominant-baseline","hanging")):(l.setAttribute("text-anchor","end"),l.setAttribute("dominant-baseline","middle")),l.textContent=g.houseToRoman(i+1),this.svgUtils.addTooltip(l,`House ${i+1}`),e.appendChild(l),s.push(l)}return s}getHouseLongitude(e){return null==e?(console.warn("HouseRenderer: Null or undefined house data"),0):"object"==typeof e&&null!==e&&"lon"in e?e.lon:"number"==typeof e?e:(console.warn("HouseRenderer: Unrecognized house data format",e),0)}}class h extends l{constructor(e){if(super(e),this.iconProvider=e.iconProvider,!e.assetBasePath&&!this.iconProvider)throw new Error(`${this.constructor.name}: Missing required option assetBasePath or iconProvider`);this.assetBasePath=e.assetBasePath||"./assets/"}calculateBasePositions(e,t,s){e.forEach(e=>{const r=(e.position-90)*(Math.PI/180);e.radians=r;const i=this.svgUtils.pointOnCircle(this.centerX,this.centerY,t,e.position);e.x=i.x,e.y=i.y;const n=this.svgUtils.pointOnCircle(this.centerX,this.centerY,s,e.position);e.iconX=n.x,e.iconY=n.y,e.adjustedIconX=e.iconX,e.adjustedIconY=e.iconY})}preparePlanetData(e,t,s,r){return e.map(e=>({...e,name:e.name||"unknown",position:void 0!==e.position?e.position:0,x:0,y:0,iconX:0,iconY:0,adjustedIconX:0,adjustedIconY:0,radians:0,zodiacSign:g.getZodiacSigns()[Math.floor(e.position/30)%12],position_in_sign:e.position%30,isPrimary:"primary"===t,type:t,color:e.color||"#000000",retrograde:!0===e.retrograde,dotRadius:s,iconRadius:r}))}render(e,t,s=0,r={}){throw new Error(`${this.constructor.name}: render() not implemented.`)}}class C extends h{constructor(e){super(e)}renderPlanetSymbol(e,t,s=24){let r;if(this.iconProvider)r=this.iconProvider.getPlanetIconPath(t.name);else{const e=this.options.assetBasePath||this.assetBasePath||"./assets/";r=`${e}svg/zodiac/zodiac-planet-${t.name.toLowerCase()}.svg`}const i=t.adjustedIconX-s/2,n=t.adjustedIconY-s/2,o=t.isPrimary?"primary":"secondary",a=this.svgUtils.createSVGElement("image",{x:i,y:n,width:s,height:s,href:r,class:`planet-icon planet-${t.name}-icon planet-${o}-icon`});return a.addEventListener("error",()=>{console.warn(`Planet icon not found: ${r}`),a.setAttribute("href","");const i=t.name.charAt(0).toUpperCase();let n;this.iconProvider?n=this.iconProvider.createTextFallback(this.svgUtils,{x:t.adjustedIconX,y:t.adjustedIconY,size:`${s}px`,color:t.color||"#000000",className:`planet-symbol planet-${t.name}-symbol planet-${o}-symbol`},i):(n=this.svgUtils.createSVGElement("text",{x:t.adjustedIconX,y:t.adjustedIconY,"text-anchor":"middle","dominant-baseline":"middle","font-size":`${s}px`,class:`planet-symbol planet-${t.name}-symbol planet-${o}-symbol`,fill:t.color||"#000000"}),n.textContent=t.name.charAt(0).toUpperCase()),e.appendChild(n)}),a}renderRetrogradeIndicator(e,t,s=24){const r=s/2-2,i=s/2-2,n=t.adjustedIconX+r,o=t.adjustedIconY+i,a=t.isPrimary?"primary":"secondary",l=t.color||"#000000",g=this.svgUtils.createSVGElement("text",{x:n,y:o,"text-anchor":"end","dominant-baseline":"alphabetic","font-size":`${Math.max(7,.3*s)}px`,"font-weight":"bold","font-family":"Arial, sans-serif",class:`planet-retrograde planet-${t.name}-retrograde planet-${a}-retrograde`,fill:l,stroke:"#ffffff","stroke-width":"0.5","paint-order":"stroke fill"});return g.textContent="R",g}renderPlanetDot(e,t,s=3){const r=t.isPrimary?"primary":"secondary";return this.svgUtils.createSVGElement("circle",{cx:t.x,cy:t.y,r:s,class:`planet-dot planet-${t.name}-dot planet-${r}-dot`,fill:t.color||"#000000"})}renderConnector(e,t,s,r=.3){const i=t.isPrimary?"primary":"secondary",n=t.x-t.adjustedIconX,o=t.y-t.adjustedIconY;if(Math.sqrt(n*n+o*o)>s*r){return this.svgUtils.createSVGElement("line",{x1:t.x,y1:t.y,x2:t.adjustedIconX,y2:t.adjustedIconY,class:`planet-element planet-${t.name.toLowerCase()} planet-connector planet-${i}-connector`,stroke:t.color||"#000000","stroke-width":.75,"stroke-opacity":.5})}return null}addPlanetTooltip(e,t){const s=`${t.isPrimary?"Primary":"Secondary"} ${g.getPlanetFullName(t.name)}: ${t.position.toFixed(1)}° ${t.zodiacSign.toUpperCase()} (${t.position_in_sign.toFixed(1)}°)`;this.svgUtils.addTooltip(e,s)}render(e,t,s=0,r={}){throw new Error(`${this.constructor.name}: This is a utility renderer, use specific rendering methods instead.`)}}class D{static calculatePosition(e){const{centerX:t,centerY:s,radius:r,longitude:i,iconSize:n=24}=e,a=(new o).pointOnCircle(t,s,r,i),l=a.x-n/2,g=a.y-n/2;return{x:a.x,y:a.y,iconX:l,iconY:g,iconCenterX:a.x,iconCenterY:a.y,longitude:i,radius:r}}static detectOverlaps(e,t=24){const s=[],r=new Set;for(let i=0;i<e.length;i++){if(r.has(i))continue;const n=[i];r.add(i);for(let s=0;s<e.length;s++){if(i===s||r.has(s))continue;Math.sqrt(Math.pow(e[i].x-e[s].x,2)+Math.pow(e[i].y-e[s].y,2))<t&&(n.push(s),r.add(s))}n.length>1&&s.push(n)}return s}static adjustOverlaps(e,t={}){const{minDistance:s=24,centerX:r,centerY:i,baseRadius:n,iconSize:o=24}=t;if(!e||e.length<=1)return e;if(!r||!i||!n)return console.error("PlanetPositionCalculator: Missing required parameters (centerX, centerY, or baseRadius)"),e;console.log(`PlanetPositionCalculator: Adjusting overlaps for ${e.length} positions`);const a=[...e],l=s/n*(180/Math.PI);console.log(`PlanetPositionCalculator: Minimum angular distance: ${l.toFixed(2)}°`);const g=a.map((e,t)=>({pos:e,idx:t})).sort((e,t)=>e.pos.longitude-t.pos.longitude).map(e=>({...a[e.idx],originalIndex:e.idx})),c=this._findOverlappingClusters(g,l);return console.log(`PlanetPositionCalculator: Found ${c.length} clusters of overlapping positions`),c.forEach((e,t)=>{console.log(`PlanetPositionCalculator: Cluster ${t+1} has ${e.length} positions`)}),c.forEach((e,t)=>{if(console.log(`PlanetPositionCalculator: Processing cluster ${t+1}`),e.length<=1){const t=e[0];console.log(`PlanetPositionCalculator: Single position in cluster, keeping at original longitude ${t.longitude.toFixed(2)}°`),this._setExactPosition(t,t.longitude,n,r,i,o)}else console.log(`PlanetPositionCalculator: Distributing ${e.length} positions in cluster`),this._distributeClusterByAngle(e,n,l,r,i,o),e.forEach((e,s)=>{console.log(`PlanetPositionCalculator: Position ${s+1} in cluster ${t+1} adjusted from ${e.longitude.toFixed(2)}° to ${e.adjustedLongitude.toFixed(2)}°`)})}),g.forEach(e=>{const t=e.originalIndex;void 0!==t&&t>=0&&t<a.length&&(a[t].x=e.x,a[t].y=e.y,a[t].iconX=e.iconX,a[t].iconY=e.iconY,a[t].iconCenterX=e.iconCenterX,a[t].iconCenterY=e.iconCenterY,void 0!==e.adjustedLongitude&&(a[t].adjustedLongitude=e.adjustedLongitude))}),a}static _findOverlappingClusters(e,t){if(!e.length)return[];if(1===e.length)return[e];const s=[];let r=[e[0]];const i=e.length;e[0],e[0].longitude;for(let n=1;n<i;n++){const i=e[n-1],o=e[n];let a=o.longitude-i.longitude;a<0&&(a+=360),a<t?r.push(o):(r.length>0&&s.push(r),r=[o])}r.length>0&&s.push(r);const n=e[i-1],o=e[0];let a=o.longitude+360-n.longitude;if(a<0&&(a+=360),a<t&&s.length>=2){const e=s[0],t=s[s.length-1];if(e.includes(o)&&t.includes(n)){const r=[...t,...e];s.pop(),s[0]=r}}return s}static _distributeClusterByAngle(e,t,s,r,i,n){const o=e.length;e.sort((e,t)=>e.longitude-t.longitude);const a=e[0].longitude,l=e[o-1].longitude;let g=l-a;(g<0||g>180)&&(g=(360+l-a)%360);let c=(a+g/2)%360;const d=(o-1)*s,h=Math.max(g,d),C=(c-h/2+360)%360;for(let s=0;s<o;s++){if(1===o){this._setExactPosition(e[s],e[s].longitude,t,r,i,n);continue}const a=(C+s*(h/(o-1)))%360;this._setExactPosition(e[s],a,t,r,i,n)}}static _setExactPosition(e,t,s,r,i,n){const a=(new o).pointOnCircle(r,i,s,t);e.x=a.x,e.y=a.y,e.iconCenterX=a.x,e.iconCenterY=a.y,e.iconX=a.x-n/2,e.iconY=a.y-n/2,e.adjustedLongitude=t}}class p extends h{constructor(e){super(e),this.symbolRenderer=e.symbolRenderer,this.circleConfig={circle:"inner"}}calculateRadii(e=null){const t=e?.radius?.inner||this.innerRadius;return{dotRadius:t,iconRadius:t+((e?.radius?.middle||this.middleRadius)-t)/2}}adjustOverlappingPlanets(e){if(e.length<=1)return;const t=e[0].iconRadius,s=24*1.2,r=e.map((e,s)=>({x:e.iconX,y:e.iconY,iconX:e.iconX,iconY:e.iconY,iconCenterX:e.iconX,iconCenterY:e.iconY,longitude:e.position,radius:t,originalIndex:s,name:e.name}));D.adjustOverlaps(r,{minDistance:s,centerX:this.centerX,centerY:this.centerY,baseRadius:t,iconSize:24}).forEach((t,s)=>{const r=e[s];r.position,r.adjustedIconX=t.iconCenterX,r.adjustedIconY=t.iconCenterY,void 0!==t.adjustedLongitude&&(r.adjustedPosition=t.adjustedLongitude)})}render(e,t,s=0,r={}){if(!e)return console.error("PrimaryPlanetRenderer: parentGroup is null or undefined."),[];const{dotRadius:i,iconRadius:n}=r.dotRadius&&r.iconRadius?{dotRadius:r.dotRadius,iconRadius:r.iconRadius}:this.calculateRadii(r.config||this.config);if(!i||!n)return console.error("PrimaryPlanetRenderer: Could not determine radius values"),[];this.clearGroup(e);const o=this.preparePlanetData(t,"primary",i,n);return o.sort((e,t)=>e.position-t.position),this.calculateBasePositions(o,i,n),this.adjustOverlappingPlanets(o),this.drawPlanets(e,o),o}drawPlanets(e,t){t.forEach(t=>{const s=this.svgUtils.createSVGElement("g",{"data-planet":t.name,"data-type":t.type,class:`planet-element planet-${t.name} planet-primary`,transform:"translate(0,0)"}),r=this.symbolRenderer.renderPlanetDot(s,t);s.appendChild(r);const i=this.symbolRenderer.renderPlanetSymbol(s,t,24);if(s.appendChild(i),t.retrograde){const e=this.symbolRenderer.renderRetrogradeIndicator(s,t,24);s.appendChild(e)}this.symbolRenderer.addPlanetTooltip(s,t);const n=this.symbolRenderer.renderConnector(s,t,24);n&&s.appendChild(n),e.appendChild(s)})}}class F extends h{constructor(e){super(e),this.symbolRenderer=e.symbolRenderer,this.circleConfig={circle:"innermost"}}calculateRadii(e=null){const t=e?.radius?.innermost||.5*this.innerRadius;return{dotRadius:t,iconRadius:t+((e?.radius?.zodiacInner||this.innerRadius)-t)/2}}adjustOverlappingPlanets(e){if(e.length<=1)return;const t=e[0].iconRadius,s=e.map((e,s)=>({x:e.iconX,y:e.iconY,iconX:e.iconX,iconY:e.iconY,iconCenterX:e.iconX,iconCenterY:e.iconY,longitude:e.position,radius:t,originalIndex:s,name:e.name}));D.adjustOverlaps(s,{minDistance:19.8,centerX:this.centerX,centerY:this.centerY,baseRadius:t,iconSize:18}).forEach((t,s)=>{const r=e[s];r.adjustedIconX=t.iconCenterX,r.adjustedIconY=t.iconCenterY,void 0!==t.adjustedLongitude&&(r.adjustedPosition=t.adjustedLongitude)})}render(e,t,s=0,r={}){if(!e)return console.error("SecondaryPlanetRenderer: parentGroup is null or undefined."),[];const{dotRadius:i,iconRadius:n}=r.dotRadius&&r.iconRadius?{dotRadius:r.dotRadius,iconRadius:r.iconRadius}:this.calculateRadii(r.config||this.config);if(!i||!n)return console.error("SecondaryPlanetRenderer: Could not determine radius values"),[];this.clearGroup(e);const o=this.preparePlanetData(t,"secondary",i,n);return o.sort((e,t)=>e.position-t.position),this.calculateBasePositions(o,i,n),this.adjustOverlappingPlanets(o),this.drawPlanets(e,o),o}drawPlanets(e,t){t.forEach(t=>{const s=this.svgUtils.createSVGElement("g",{"data-planet":t.name,"data-type":t.type,class:`planet-element planet-${t.name} planet-secondary`,transform:"translate(0,0)"}),r=this.symbolRenderer.renderPlanetDot(s,t,2);s.appendChild(r);const i=this.symbolRenderer.renderPlanetSymbol(s,t,18);if(s.appendChild(i),t.retrograde){const e=this.symbolRenderer.renderRetrogradeIndicator(s,t,18);s.appendChild(e)}this.symbolRenderer.addPlanetTooltip(s,t);const n=this.symbolRenderer.renderConnector(s,t,18);n&&s.appendChild(n),e.appendChild(s)})}}class u extends h{constructor(e){super(e),this.primaryRenderer=e.primaryRenderer,this.secondaryRenderer=e.secondaryRenderer,this.symbolRenderer=e.symbolRenderer,this.circleConfigs={primary:{circle:"inner"},secondary:{circle:"innermost"}}}calculateRadii(e,t=null){if(!this.circleConfigs[e])return console.error(`PlanetRendererCoordinator: No circle configuration found for planet type: ${e}`),{dotRadius:null,iconRadius:null};switch(e){case"primary":return this.primaryRenderer.calculateRadii(t);case"secondary":return this.secondaryRenderer.calculateRadii(t);default:return console.error(`PlanetRendererCoordinator: Unknown planet type: ${e}`),{dotRadius:null,iconRadius:null}}}render(e,t,s=0,r={}){const i=r.type||"primary";switch(console.log(`PlanetRendererCoordinator: Rendering ${i} planets, count:`,t.length),i){case"primary":return this.primaryRenderer.render(e,t,s,r);case"secondary":return this.secondaryRenderer.render(e,t,s,r);default:return console.error(`PlanetRendererCoordinator: Unknown planet type: ${i}`),[]}}renderAllPlanetTypes(e){const{svgManager:t,planetsData:s,config:r,enabledTypes:i={primary:!0,secondary:!0}}=e;if(!t||!s||!r)return console.error("PlanetRendererCoordinator: Missing required parameters"),{};const n=Object.entries(s).filter(([e,t])=>!1!==r.planetSettings.visible?.[e]).map(([e,t])=>({name:e,position:t.lon,color:t.color||"#000000"})),o={},a=this.centerX,l=this.centerY;if(this.centerX=r.svg.center.x,this.centerY=r.svg.center.y,this.primaryRenderer.centerX=this.centerX,this.primaryRenderer.centerY=this.centerY,this.secondaryRenderer.centerX=this.centerX,this.secondaryRenderer.centerY=this.centerY,i.primary){const e=t.getGroup("primaryPlanets");o.primary=this.primaryRenderer.render(e,n,0,{config:r}),console.log(`PlanetRendererCoordinator: Rendered ${o.primary.length} primary planets`)}else o.primary=[];if(i.secondary){const e=t.getGroup("secondaryPlanets");o.secondary=this.secondaryRenderer.render(e,n,0,{config:r}),console.log(`PlanetRendererCoordinator: Rendered ${o.secondary.length} secondary planets`)}else o.secondary=[];return this.centerX=a,this.centerY=l,this.primaryRenderer.centerX=a,this.primaryRenderer.centerY=l,this.secondaryRenderer.centerX=a,this.secondaryRenderer.centerY=l,o}renderAllPlanets(e){return console.warn("PlanetRendererCoordinator: renderAllPlanets is deprecated, use renderAllPlanetTypes instead"),this.renderAllPlanetTypes(e)}}class E extends l{constructor(e){super(e),this.astrologyUtils=g,this.renderedAspects=[],this._aspectCacheKey=null,this._aspectCache=[],this.assetBasePath=e.assetBasePath||"./assets/",this.iconProvider=e.iconProvider,this.defaultAspectDefinitions={conjunction:{angle:0,orb:8,color:"#FF4500",abbr:"CON"},opposition:{angle:180,orb:6,color:"#DC143C",abbr:"OPP"},trine:{angle:120,orb:6,color:"#2E8B57",abbr:"TRI"},square:{angle:90,orb:6,color:"#FF0000",abbr:"SQR"},sextile:{angle:60,orb:4,color:"#4682B4",abbr:"SEX"}}}_angularDistance(e,t){const s=Math.abs(e-t)%360;return Math.min(s,360-s)}calculateAspects(e,t=null){const s=[];if(!e||e.length<2)return s;const r=t||this.config.aspectSettings||{},i=`${JSON.stringify(r)}|${e.map(e=>`${e.name}:${e.position}`).join("|")}`;if(i===this._aspectCacheKey)return console.log(`ClientSideAspectRenderer: Using cached aspects (${this._aspectCache.length})`),this._aspectCache;const n=r.orb||6,o=r.types||this.defaultAspectDefinitions;for(let t=0;t<e.length;t++)for(let r=t+1;r<e.length;r++){const i=e[t],a=e[r],l=this._angularDistance(i.position,a.position);for(const e in o){const t=o[e],r=t.angle,g=void 0!==t.orb?t.orb:n;Math.abs(l-r)<=g&&s.push({planet1:i.name,planet2:a.name,type:e,angle:r,angleDiff:l,orb:Math.abs(l-r),p1:i,p2:a,color:t.color||"#888",lineStyle:t.lineStyle,abbr:t.abbr||e.substring(0,3).toUpperCase()})}}return console.log(`ClientSideAspectRenderer: Calculated ${s.length} aspects.`),this._aspectCacheKey=i,this._aspectCache=s,s}calculateCrossAspects(e,t,s=null){const r=[];if(!e||e.length<1||!t||t.length<1)return r;const i=s||this.config.synastryAspectSettings||{},n=i.orb||6,o=i.types||this.defaultAspectDefinitions;for(let s=0;s<e.length;s++)for(let i=0;i<t.length;i++){const a=e[s],l=t[i],g=this._angularDistance(a.position,l.position);for(const e in o){const t=o[e],s=t.angle,i=void 0!==t.orb?t.orb:n;Math.abs(g-s)<=i&&r.push({planet1:a.name,planet2:l.name,type:e,angle:s,angleDiff:g,orb:Math.abs(g-s),p1:a,p2:l,color:t.color||"#888",lineStyle:t.lineStyle,abbr:t.abbr||e.substring(0,3).toUpperCase(),isCross:!0})}}return console.log(`ClientSideAspectRenderer: Calculated ${r.length} cross-aspects (synastry).`),r}render(e,t,s=null){if(!e)return console.error("ClientSideAspectRenderer.render: parentGroup is null or undefined."),[];this.clearGroup(e);const r=[];if(!t||t.length<2)return console.warn("ClientSideAspectRenderer: Not enough planet data with coordinates to render aspects."),this.renderedAspects=[],[];const i=this.calculateAspects(t,s);this.renderedAspects=i,console.log(`ClientSideAspectRenderer: Rendering ${i.length} aspects.`);const n=(s||this.config.aspectSettings||{}).types||{},o={};return t.forEach(e=>{o[e.name]={x:e.x,y:e.y}}),i.forEach(t=>{const s=o[t.planet1],i=o[t.planet2],a=n[t.type],l=!a||!1!==a.enabled,g=a?a.lineStyle:"solid";if(!l||"none"===g)return;if(!s||!i)return void console.warn(`ClientSideAspectRenderer: Could not find coordinates for aspect: ${t.planet1} ${t.type} ${t.planet2}`);const c=(t.planet1||"").toLowerCase().replace(/[^a-z0-9]/g,"-"),d=(t.planet2||"").toLowerCase().replace(/[^a-z0-9]/g,"-");let h="none";"dashed"===g?h="5, 5":"dotted"===g&&(h="1, 3");const C=this.svgUtils.createSVGElement("line",{x1:s.x,y1:s.y,x2:i.x,y2:i.y,class:`aspect-element aspect-line aspect-${t.type} aspect-planet-${c} aspect-planet-${d}`,stroke:t.color||"#888888","stroke-dasharray":h}),D=`${this.astrologyUtils.capitalizeFirstLetter(t.planet1)} ${t.type} ${this.astrologyUtils.capitalizeFirstLetter(t.planet2)} (${t.angleDiff.toFixed(1)}°, orb ${t.orb.toFixed(1)}°)`;this.svgUtils.addTooltip(C,D),e.appendChild(C),r.push(C),this._addAspectIcon(e,t,s,i,D)}),r}renderCrossAspects(e,t,s,r=null){if(!e)return console.error("ClientSideAspectRenderer.renderCrossAspects: parentGroup is null or undefined."),[];this.clearGroup(e);const i=[];if(!t||t.length<1||!s||s.length<1)return console.warn("ClientSideAspectRenderer: Not enough planet data to render cross-aspects."),[];const n=this.calculateCrossAspects(t,s,r);console.log(`ClientSideAspectRenderer: Rendering ${n.length} cross-aspects.`);const o=(r||this.config.synastryAspectSettings||{}).types||{},a={};t.forEach(e=>{a[e.name]={x:e.x,y:e.y}});const l={};return s.forEach(e=>{l[e.name]={x:e.x,y:e.y}}),n.forEach(t=>{const s=t.p1;t.p2;const r=this.config.radius.innermost||90,n=(s.position-90)*(Math.PI/180),a={x:this.centerX+r*Math.cos(n),y:this.centerY+r*Math.sin(n)},g=l[t.planet2],c=o[t.type],d=!c||!1!==c.enabled,h=c?c.lineStyle:"solid";if(!d||"none"===h)return;if(!a||!g)return void console.warn(`ClientSideAspectRenderer: Could not find coordinates for cross-aspect: ${t.planet1} ${t.type} ${t.planet2}`);const C=(t.planet1||"").toLowerCase().replace(/[^a-z0-9]/g,"-"),D=(t.planet2||"").toLowerCase().replace(/[^a-z0-9]/g,"-");let p="none";"dashed"===h?p="5, 5":"dotted"===h&&(p="1, 3");const F=this.svgUtils.createSVGElement("line",{x1:a.x,y1:a.y,x2:g.x,y2:g.y,class:`aspect-element aspect-line aspect-${t.type} aspect-cross aspect-planet-${C} aspect-planet-${D}`,stroke:t.color||"#888888","stroke-dasharray":p}),u=`${this.astrologyUtils.capitalizeFirstLetter(t.planet1)} ${t.type} ${this.astrologyUtils.capitalizeFirstLetter(t.planet2)} (${t.angleDiff.toFixed(1)}°, orb ${t.orb.toFixed(1)}°) [Synastry]`;this.svgUtils.addTooltip(F,u),e.appendChild(F),i.push(F),this._addAspectIcon(e,t,a,g,u)}),this._renderProjectionDots(e,t),i}_renderProjectionDots(e,t){const s=this.config.radius.innermost||90;t.forEach(t=>{const r=t.position,i=(r-90)*(Math.PI/180),n=this.centerX+s*Math.cos(i),o=this.centerY+s*Math.sin(i),a=this.svgUtils.createSVGElement("circle",{cx:n,cy:o,r:3,class:`projection-dot projection-${t.name}`,fill:"none",stroke:t.color||"#666666","stroke-width":"1.5"}),l=`${this.astrologyUtils.capitalizeFirstLetter(t.name)} projection (${r.toFixed(1)}°)`;this.svgUtils.addTooltip(a,l),e.appendChild(a)})}clearGroup(e){super.clearGroup(e)}getCurrentAspects(){return this.renderedAspects}_addAspectIcon(e,t,s,r,i){const n=(s.x+r.x)/2,o=(s.y+r.y)/2,a=n-this.centerX,l=o-this.centerY;if(Math.sqrt(a*a+l*l)<20)return;let g;g=this.iconProvider?this.iconProvider.getAspectIconPath(t.type):`${this.assetBasePath}/svg/zodiac/zodiac-aspect-${t.type}.svg`;const c=this.svgUtils.createSVGElement("image",{x:n-8,y:o-8,width:16,height:16,href:g,class:`aspect-element aspect-symbol aspect-${t.type}`});c.addEventListener("error",()=>{console.warn(`Failed to load aspect icon for ${t.type} from path: ${g}`);const s=this.defaultAspectDefinitions[t.type],r=s&&s.abbr?s.abbr:t.type.substring(0,3).toUpperCase();let a;this.iconProvider?a=this.iconProvider.createTextFallback(this.svgUtils,{x:n,y:o,size:"12px",color:t.color||"#888888",className:`aspect-element aspect-symbol aspect-${t.type}`},r):(a=this.svgUtils.createSVGElement("text",{x:n,y:o,"text-anchor":"middle","dominant-baseline":"middle","font-size":"12px","font-weight":"bold",class:`aspect-element aspect-symbol aspect-${t.type}`,fill:t.color||"#888888"}),a.textContent=r),this.svgUtils.addTooltip(a,i),e.appendChild(a)}),this.svgUtils.addTooltip(c,i),e.appendChild(c)}}class f{constructor(e,s){this.config=e,this.svgNS=s,this.svgUtils=t.getSvgUtils(),this.iconProvider=t.getIconProvider(),this.iconProvider||console.error("RendererFactory: IconProvider not available. Icons will not render correctly.")}createZodiacRenderer(e={}){return new c({svgNS:this.svgNS,config:this.config,svgUtils:this.svgUtils,iconProvider:this.iconProvider,...e})}createHouseRenderer(e={}){return new d({svgNS:this.svgNS,config:this.config,svgUtils:this.svgUtils,iconProvider:this.iconProvider,...e})}createPlanetRenderer(e={}){const t=new C({svgNS:this.svgNS,config:this.config,svgUtils:this.svgUtils,iconProvider:this.iconProvider,assetBasePath:e.assetBasePath||this.config.assets?.basePath,...e}),s=new p({svgNS:this.svgNS,config:this.config,svgUtils:this.svgUtils,iconProvider:this.iconProvider,symbolRenderer:t,assetBasePath:e.assetBasePath||this.config.assets?.basePath,...e}),r=new F({svgNS:this.svgNS,config:this.config,svgUtils:this.svgUtils,iconProvider:this.iconProvider,symbolRenderer:t,assetBasePath:e.assetBasePath||this.config.assets?.basePath,...e});return new u({svgNS:this.svgNS,config:this.config,svgUtils:this.svgUtils,iconProvider:this.iconProvider,primaryRenderer:s,secondaryRenderer:r,symbolRenderer:t,assetBasePath:e.assetBasePath||this.config.assets?.basePath,...e})}createAspectRenderer(e={}){return new E({svgNS:this.svgNS,config:this.config,svgUtils:this.svgUtils,iconProvider:this.iconProvider,...e})}}class m{constructor(e){this.config=e.config,this.svgManager=e.svgManager,this.planets=e.planets||{},this.houses=e.houses||[],this.renderers={},this.svgManager&&this.svgManager.getSVG()&&this._initializeRenderers()}_initializeRenderers(){this.rendererFactory=new f(this.config,this.svgManager.svgNS),this.renderers.zodiac=this.rendererFactory.createZodiacRenderer({assetBasePath:this.config.assets.basePath});const e=this.config.getHouseCusps(),t=e&&e.length>0?e:this.houses;this.renderers.house=this.rendererFactory.createHouseRenderer({houseData:t}),this.renderers.planet=this.rendererFactory.createPlanetRenderer({assetBasePath:this.config.assets.basePath}),this.renderers.aspect=this.rendererFactory.createAspectRenderer({assetBasePath:this.config.assets.basePath})}updatePlanets(e){this.planets=e}updateHouses(e){this.houses=e,this.renderers.house&&(this.renderers.house.houseData=this.houses)}renderAll(){if(!this.svgManager.getSVG())return;Object.values(this.svgManager.getAllGroups()).forEach(e=>{e.innerHTML=""}),this.renderZodiac(),this.renderHouses();const e=this.renderPlanets();this.renderAspects(e),console.log("RenderingCoordinator: Chart rendered")}renderZodiac(){return!(!this.config.zodiacSettings.enabled||!this.renderers.zodiac)&&(this.renderers.zodiac.render(this.svgManager.getGroup("zodiac")),!0)}renderHouses(){if(!this.config.houseSettings.enabled||!this.renderers.house)return!1;const e=this.svgManager.getGroup("houses"),t=this.svgManager.getGroup("houseDivisions"),s=this.config.getHouseCusps();return s&&s.length>0&&(this.renderers.house.houseData=s),this.renderers.house.renderDivisions(t,this.config.houseSettings.rotationAngle),this.renderers.house.renderNumbers(e,this.config.houseSettings.rotationAngle),!0}renderPlanets(){if(!this.config.planetSettings.enabled||!this.renderers.planet)return[];const e=!1!==this.config.planetSettings.primaryEnabled,t=!1!==this.config.planetSettings.secondaryEnabled,s=this.renderers.planet.renderAllPlanetTypes({svgManager:this.svgManager,planetsData:this.planets,config:this.config,primaryEnabled:e,secondaryEnabled:t});return console.log(`RenderingCoordinator: Rendered ${s.primary.length} primary planets and ${s.secondary.length} secondary planets`),s.primary}renderAspects(e){return!(!this.config.aspectSettings.enabled||!this.renderers.aspect)&&(this.renderers.aspect.render(this.svgManager.getGroup("aspects"),e),!0)}}class k{constructor(e){this.config=e.config,this.svgManager=e.svgManager}updateConfig(e){return this.config.mergeConfig(e),e.aspectSettings&&this.config.updateAspectSettings(e.aspectSettings),console.log("ChartStateManager: Updated configuration"),!0}togglePlanetVisibility(e,t){return this.config.togglePlanetVisibility(e,t),!0}toggleHousesVisibility(e){return this.config.toggleHousesVisibility(e),!0}toggleAspectsVisibility(e){return this.config.toggleAspectsVisibility(e),!0}setHouseRotation(e){return this.config.houseSettings.rotationAngle=e,!0}setHouseSystem(e){return this.config.setHouseSystem(e)}getAvailableHouseSystems(){return this.config.getAvailableHouseSystems()}getCurrentHouseSystem(){return this.config.getHouseSystem()}togglePrimaryPlanets(e){if(this.config.togglePrimaryPlanetsVisibility(e),this.svgManager){const t=this.svgManager.getGroup("primaryPlanets");t&&(t.style.display=e?"block":"none")}return console.log("ChartStateManager: Primary planets "+(e?"enabled":"disabled")),!0}toggleSecondaryPlanets(e){if(this.config.toggleSecondaryPlanetsVisibility(e),this.svgManager){const t=this.svgManager.getGroup("secondaryPlanets");t&&(t.style.display=e?"block":"none");const s=document.querySelector(".chart-innermost-circle");s&&(s.style.display=e?"block":"none")}return console.log("ChartStateManager: Secondary planets "+(e?"enabled":"disabled")),!0}}class y{constructor(e){if(!e||!e.container)throw new Error("ChartManager: Container element or selector is required");if(this.options=e,this.container="string"==typeof e.container?document.querySelector(e.container):e.container,!this.container)throw new Error(`ChartManager: Container not found: ${e.container}`);this.config=new n(e.config||{}),this.planets=e.planets||{},this.houses=e.houses||[],e.aspectSettings&&this.config.updateAspectSettings(e.aspectSettings),t.initializeServices();const s=t.getSvgUtils();this.svgManager=new a({svgUtils:s}),this.renderingCoordinator=new m({config:this.config,svgManager:this.svgManager,planets:this.planets,houses:this.houses}),this.stateManager=new k({config:this.config,svgManager:this.svgManager}),console.log("ChartManager: Initialized")}_initialize(){const e={width:this.config.svg.width,height:this.config.svg.height,viewBox:this.config.svg.viewBox};this.svgManager.initialize(this.container,e),this.svgManager.createStandardGroups()}render(){return this.svgManager.getSVG()||this._initialize(),this.renderingCoordinator.renderAll(),console.log("ChartManager: Chart rendered"),this}update(e){return e.planets&&(this.planets=e.planets,this.renderingCoordinator.updatePlanets(this.planets)),e.houses&&(this.houses=e.houses,this.renderingCoordinator.updateHouses(this.houses)),e.config&&this.stateManager.updateConfig(e.config),this.render(),this}togglePlanet(e,t){return this.stateManager.togglePlanetVisibility(e,t),this.render(),this}toggleHouses(e){return this.stateManager.toggleHousesVisibility(e),this.render(),this}toggleAspects(e){return this.stateManager.toggleAspectsVisibility(e),this.render(),this}setHouseRotation(e){return this.stateManager.setHouseRotation(e),this.render(),this}destroy(){this.svgManager.getSVG()&&this.svgManager.getSVG().remove(),this.renderingCoordinator=null,this.stateManager=null,this.planets={},this.houses=[],console.log("ChartManager: Destroyed")}updateData(e){return e.planets&&("object"!=typeof e.planets||Array.isArray(e.planets)?console.warn("ChartManager.updateData: Invalid planets data format. Expected object."):(this.planets={...this.planets,...e.planets},this.renderingCoordinator.updatePlanets(this.planets),console.log("ChartManager: Updated planets data."))),e.houses&&(Array.isArray(e.houses)?(this.houses=e.houses,this.renderingCoordinator.updateHouses(this.houses),console.log("ChartManager: Updated houses data.")):console.warn("ChartManager.updateData: Invalid houses data format. Expected array.")),this.render(),this}updateConfig(e){return this.stateManager.updateConfig(e),console.log("ChartManager: Updated configuration."),this.render(),this}setHouseSystem(e){return this.stateManager.setHouseSystem(e),this.render(),this}getAvailableHouseSystems(){return this.stateManager.getAvailableHouseSystems()}getCurrentHouseSystem(){return this.stateManager.getCurrentHouseSystem()}togglePrimaryPlanets(e){return this.stateManager.togglePrimaryPlanets(e),this.render(),this}toggleSecondaryPlanets(e){return this.stateManager.toggleSecondaryPlanets(e),this.render(),this}}class v{constructor(e){if(!e||!e.container)throw new Error("NocturnaWheel: Container element or selector is required");if(this.options=e,this.container="string"==typeof e.container?document.querySelector(e.container):e.container,!this.container)throw new Error(`NocturnaWheel: Container not found: ${e.container}`);this.config=new n(e.config||{}),this.planets=e.planets||{},this.secondaryPlanets=e.secondaryPlanets||{},this.houses=e.houses||[],e.aspectSettings&&this.config.updateAspectSettings(e.aspectSettings),e.primaryAspectSettings&&this.config.updatePrimaryAspectSettings(e.primaryAspectSettings),e.secondaryAspectSettings&&this.config.updateSecondaryAspectSettings(e.secondaryAspectSettings),e.synastryAspectSettings&&this.config.updateSynastryAspectSettings(e.synastryAspectSettings),t.initializeServices();const s=t.getSvgUtils();this.svgManager=new a({svgUtils:s}),this.renderers={},console.log("NocturnaWheel: Initialized")}_initialize(){const e={width:this.config.svg.width,height:this.config.svg.height,viewBox:this.config.svg.viewBox};this.svgManager.initialize(this.container,e),this.svgManager.createStandardGroups(),this._initializeRenderers()}_initializeRenderers(){this.rendererFactory=new f(this.config,this.svgManager.svgNS),this.renderers.zodiac=this.rendererFactory.createZodiacRenderer({assetBasePath:this.config.assets.basePath});const e=this.config.getHouseCusps(),t=e&&e.length>0?e:this.houses;this.renderers.house=this.rendererFactory.createHouseRenderer({houseData:t}),this.renderers.planet=this.rendererFactory.createPlanetRenderer({assetBasePath:this.config.assets.basePath}),this.renderers.aspect=this.rendererFactory.createAspectRenderer({assetBasePath:this.config.assets.basePath})}render(){if(this.svgManager.getSVG()||this._initialize(),Object.values(this.svgManager.getAllGroups()).forEach(e=>{e.innerHTML=""}),this.config.zodiacSettings.enabled&&this.renderers.zodiac.render(this.svgManager.getGroup("zodiac")),this.config.houseSettings.enabled){const e=this.svgManager.getGroup("houses"),t=this.svgManager.getGroup("houseDivisions"),s=this.config.getHouseCusps();s&&s.length>0&&(this.renderers.house.houseData=s),this.renderers.house.renderDivisions(t,this.config.houseSettings.rotationAngle),this.renderers.house.renderNumbers(e,this.config.houseSettings.rotationAngle)}let e=[],t=[];if(this.config.planetSettings.enabled){const s=!1!==this.config.planetSettings.primaryEnabled,r=!1!==this.config.planetSettings.secondaryEnabled;if(s&&Object.keys(this.planets).length>0){const t=this.svgManager.getGroup("primaryPlanets"),s=Object.entries(this.planets).filter(([e,t])=>!1!==this.config.planetSettings.visible?.[e]).map(([e,t])=>({name:e,position:t.lon,color:t.color||"#000000",retrograde:!!t.retrograde}));e=this.renderers.planet.primaryRenderer.render(t,s,0,{config:this.config})}if(r&&Object.keys(this.secondaryPlanets).length>0){const e=this.svgManager.getGroup("secondaryPlanets"),s=Object.entries(this.secondaryPlanets).filter(([e,t])=>!1!==this.config.planetSettings.visible?.[e]).map(([e,t])=>({name:e,position:t.lon,color:t.color||"#000000",retrograde:!!t.retrograde}));t=this.renderers.planet.secondaryRenderer.render(e,s,0,{config:this.config})}}if(this.config.primaryAspectSettings.enabled&&e.length>=2){const t=this.svgManager.getGroup("primaryAspects");this.renderers.aspect.render(t,e,this.config.primaryAspectSettings)}if(this.config.secondaryAspectSettings.enabled&&t.length>=2){const e=this.svgManager.getGroup("secondaryAspects");this.renderers.aspect.render(e,t,this.config.secondaryAspectSettings)}if(this.config.synastryAspectSettings.enabled&&e.length>=1&&t.length>=1){const s=this.svgManager.getGroup("synastryAspects");this.renderers.aspect.renderCrossAspects(s,e,t,this.config.synastryAspectSettings)}return this}update(e){return e.planets&&(this.planets=e.planets),e.houses&&(this.houses=e.houses,this.renderers.house&&(this.renderers.house.houseData=this.houses)),e.config&&this.config.mergeConfig(e.config),this.render(),this}togglePlanet(e,t){return this.config.togglePlanetVisibility(e,t),this.render(),this}toggleHouses(e){return this.config.toggleHousesVisibility(e),this.render(),this}toggleAspects(e){return this.config.toggleAspectsVisibility(e),this.render(),this}togglePrimaryAspects(e){return this.config.togglePrimaryAspectsVisibility(e),this.render(),this}toggleSecondaryAspects(e){return this.config.toggleSecondaryAspectsVisibility(e),this.render(),this}toggleSynastryAspects(e){return this.config.toggleSynastryAspectsVisibility(e),this.render(),this}setHouseRotation(e){return this.config.houseSettings.rotationAngle=e,this.render(),this}destroy(){this.svgManager.getSVG()&&this.svgManager.getSVG().remove(),this.renderers={},this.planets={},this.houses=[],console.log("NocturnaWheel: Destroyed")}updateData(e){if(e.planets)if("object"!=typeof e.planets||Array.isArray(e.planets))console.warn("NocturnaWheel.updateData: Invalid planets data format. Expected object.");else{for(const t in e.planets)this.planets[t]?this.planets[t]={...this.planets[t],...e.planets[t]}:this.planets[t]=e.planets[t];Object.keys(this.planets).forEach(e=>{})}if(e.secondaryPlanets)if("object"!=typeof e.secondaryPlanets||Array.isArray(e.secondaryPlanets))console.warn("NocturnaWheel.updateData: Invalid secondaryPlanets data format. Expected object.");else for(const t in e.secondaryPlanets)this.secondaryPlanets[t]?this.secondaryPlanets[t]={...this.secondaryPlanets[t],...e.secondaryPlanets[t]}:this.secondaryPlanets[t]=e.secondaryPlanets[t];return e.houses&&(Array.isArray(e.houses)?(this.houses=e.houses,this.renderers.house&&(this.renderers.house.houseData=this.houses)):console.warn("NocturnaWheel.updateData: Invalid houses data format. Expected array.")),this.render(),this}updateConfig(e){return this.config.mergeConfig(e),e.aspectSettings&&this.config.updateAspectSettings(e.aspectSettings),this.render(),this}setHouseSystem(e){return this.config.setHouseSystem(e),this.render(),this}getAvailableHouseSystems(){return this.config.getAvailableHouseSystems()}getCurrentHouseSystem(){return this.config.getHouseSystem()}togglePrimaryPlanets(e){this.config.togglePrimaryPlanetsVisibility(e);const t=this.svgManager.getGroup("primaryPlanets");return t&&(t.style.display=e?"block":"none"),this}toggleSecondaryPlanets(e){this.config.toggleSecondaryPlanetsVisibility(e);const t=this.svgManager.getGroup("secondaryPlanets");t&&(t.style.display=e?"block":"none");const s=document.querySelector(".chart-innermost-circle");return s&&(s.style.display=e?"block":"none"),this}}class w{constructor(e,t={}){this.wheelChart=e,this.chart=e.chart,this.options=t,this.svgUtils=new o,console.log("ChartRenderer: Initialized with chart",this.chart)}renderInnerElements(){if(!this.chart||!this.chart.svgManager)return void console.error("ChartRenderer: Invalid chart or missing svgManager");if(!this.chart.svgManager.getSVG())return void console.error("ChartRenderer: SVG not found");const e=this.chart.svgManager.getGroup("zodiac");if(!e)return void console.error("ChartRenderer: Zodiac group not found");const t=e.querySelector(".chart-innermost-circle");t&&e.removeChild(t);const s=this.chart.config.svg.center.x,r=this.chart.config.svg.center.y,i=this.chart.config.radius.innermost;!1!==this.chart.config.planetSettings.secondaryEnabled&&this.drawInnermostCircle(e,this.svgUtils,s,r,i),console.log("ChartRenderer: Innermost circle rendered (if enabled). Planet rendering is now handled by NocturnaWheel.")}drawInnermostCircle(e,t,s,r,i){const n=t.createSVGElement("circle",{cx:s,cy:r,r:i,fill:"transparent",stroke:"#999","stroke-width":"0.5",class:"zodiac-element chart-innermost-circle"});e.appendChild(n)}renderPlanets(e,t,s,r){return console.warn("ChartRenderer: renderPlanets is deprecated. Planet rendering is now handled by NocturnaWheel."),[]}drawPlanetsAndIcons(e,t,s,r,i){return console.warn("ChartRenderer: drawPlanetsAndIcons is deprecated, use renderPlanets instead"),this.renderPlanets(t,s,r,i)}drawPlanetDot(e,t,s,r,i,n){console.warn("ChartRenderer: drawPlanetDot is deprecated")}drawPlanetIcon(e,t,s,r,i){console.warn("ChartRenderer: drawPlanetIcon is deprecated")}drawConnector(e,t,s,r,i,n,o,a){console.warn("ChartRenderer: drawConnector is deprecated")}}class A{constructor(e,t=null){if(!e||!e.container)throw new Error("WheelChart: Container element or selector is required");this.options=e;const s=e.config||{};if("function"==typeof t?(console.log("WheelChart: Using provided chart factory function"),this.chart=t(e)):(console.log("WheelChart: Using default chart creation"),this.chart=new v({...e,config:s})),!this.chart||"function"!=typeof this.chart.render)throw new Error("WheelChart: Invalid chart instance created. Missing required methods.");this.renderer=new w(this,e),console.log("WheelChart: Initialized")}render(){return this.chart.render(),setTimeout(()=>{try{console.log("WheelChart: Rendering inner elements"),this.renderer.renderInnerElements()}catch(e){console.error("WheelChart: Error rendering inner elements:",e)}},0),console.log("WheelChart: Chart rendered with inner circle"),this}update(e){return this.chart.update(e),this.renderer.renderInnerElements(),this}_delegateToChart(e,...t){if("function"==typeof this.chart[e])return this.chart[e](...t);throw new Error(`WheelChart: Method ${e} not found in NocturnaWheel`)}_delegateAndRedraw(e,...t){const s=this._delegateToChart(e,...t);return this.renderer.renderInnerElements(),s}togglePlanet(e,t){return this._delegateAndRedraw("togglePlanet",e,t)}toggleHouses(e){return this._delegateAndRedraw("toggleHouses",e)}toggleAspects(e){return this._delegateAndRedraw("toggleAspects",e)}togglePrimaryAspects(e){return this._delegateAndRedraw("togglePrimaryAspects",e)}toggleSecondaryAspects(e){return this._delegateAndRedraw("toggleSecondaryAspects",e)}toggleSynastryAspects(e){return this._delegateAndRedraw("toggleSynastryAspects",e)}togglePrimaryPlanets(e){return this._delegateAndRedraw("togglePrimaryPlanets",e)}toggleSecondaryPlanets(e){const t=this._delegateToChart("toggleSecondaryPlanets",e);try{const t="string"==typeof this.options.container?document.querySelector(this.options.container):this.options.container;if(t){const s=t.querySelector(".chart-innermost-circle");s?(console.log("WheelChart: Setting innermost circle display to "+(e?"block":"none")),s.style.display=e?"block":"none"):console.log("WheelChart: No innermost circle found to toggle visibility")}}catch(e){console.error("WheelChart: Error toggling innermost circle visibility:",e)}return this.renderer.renderInnerElements(),t}setHouseRotation(e){return this._delegateAndRedraw("setHouseRotation",e)}destroy(){return this._delegateToChart("destroy")}setHouseSystem(e){return this._delegateAndRedraw("setHouseSystem",e)}get config(){return this.chart.config}updateData(e){return this._delegateAndRedraw("updateData",e)}getCurrentHouseSystem(){return this.chart.getCurrentHouseSystem()}}const b=new s({useInline:!0,basePath:"./assets/svg/zodiac/"});r&&Object.keys(r.planets||{}).length>0?(b.setInlineData(r),console.log("IconProvider: Initialized with inline icons -","Planets:",Object.keys(r.planets).length,"Signs:",Object.keys(r.signs).length,"Aspects:",Object.keys(r.aspects).length)):console.warn("IconProvider: IconData not loaded, will use external paths"),t.register("iconProvider",b),t.initializeServices();var x={ChartManager:y,NocturnaWheel:v,WheelChart:A,ChartConfig:n,ServiceRegistry:t,SvgUtils:o,AstrologyUtils:g,IconProvider:s,IconData:r};e.AstrologyUtils=g,e.ChartConfig=n,e.ChartManager=y,e.IconData=r,e.IconProvider=s,e.NocturnaWheel=v,e.ServiceRegistry=t,e.SvgUtils=o,e.VERSION="0.2.0",e.WheelChart=A,e.default=x,Object.defineProperty(e,"__esModule",{value:!0})});
|
|
2
2
|
//# sourceMappingURL=nocturna-wheel.min.js.map
|