@rnacanvas/draw 10.1.0 → 11.0.0

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.
Files changed (2) hide show
  1. package/dist/index.js +1 -1
  2. package/package.json +4 -4
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.draw=e():t.draw=e()}(this,(()=>(()=>{var t={127:function(t){var e;e=()=>(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>p,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function p(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},369:function(t){var e;e=()=>(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>p,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function p(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function h(t){return null==t}function u(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}function l(t){return c(t)&&t.every(r)}function d(t){return c(t)&&t.every(n)}function f(t){return c(t)&&t.every(i)}function p(t){return c(t)&&t.every(a)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>d,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>f,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>u,isNullish:()=>h,isNumber:()=>r,isNumbersArray:()=>l,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>p}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Linkers:()=>g,Stems:()=>m,areConflicting:()=>u,areCrossing:()=>d,areEqual:()=>a,areKnotless:()=>l,areStacked:()=>h,deepCopy:()=>i,knotless:()=>p,mountainPlotTraversal:()=>y,parseDotBracket:()=>w,sorted:()=>o});var t=r(854),e=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function i(r){return(0,t.isNumbersArray)(r)?e([],r,!0):r.map((function(t){return e([],t,!0)}))}var s=r(986);function o(t){var e=i(t);return e.forEach(s.sortNumbers),e.sort((function(t,e){return t[0]-e[0]})),e}function a(t,e){var r=i(t),n=i(e);return(0,s.sortNumbers)(r),(0,s.sortNumbers)(n),[0,1].every((function(t){return r[t]==n[t]}))}function h(t,e){var r=o([t,e]);return r[0][0]==r[1][0]-1&&r[0][1]==r[1][1]+1}function u(t,e){return(0,s.min)(t)==(0,s.min)(e)&&(0,s.max)(t)!=(0,s.max)(e)||(0,s.min)(t)!=(0,s.min)(e)&&(0,s.max)(t)==(0,s.max)(e)}function c(t){if(0==t.length)return[];for(var e=[],r=0;r<(0,s.max)(t.flat());r++)e.push(void 0);return t.forEach((function(t){e[t[0]-1]=t[1],e[t[1]-1]=t[0]})),e}function l(t){var e=c(t),r=[],n=!1;return e.forEach((function(t,e){var i=e+1;null==t||(i<t?r.push(i):i==t||r.pop()!=t&&(n=!0))})),!n}function d(t,e){return!l([t,e])}var f=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function p(t){var e=[],r=i(t);return r.sort((function(t,e){return Math.abs(t[0]-t[1])-Math.abs(e[0]-e[1])})),r.forEach((function(t){l(f(f([],e,!0),[t],!1))&&e.push(t)})),e}var m=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=this.targetStructure[1];if(0==t.length)return[];var e=o(t),r=[],n=[];return e.forEach((function(t){var e=0==n.length?null:n[n.length-1];!e||h(e,t)?n.push(t):(r.push(n),n=[t])})),r.push(n),r},t}(),g=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=(new(m.bind.apply(m,function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))}([void 0],this.targetStructure,!1)))).get().flatMap((function(t){return[t.map(s.min),t.map(s.max)]}));t.forEach(s.sortNumbers),t.sort((function(t,e){return(0,s.min)(t)-(0,s.min)(e)}));for(var e=[],r=t.shift(),n=t.shift();r&&n;){for(var i=[],o=(0,s.max)(r),a=(0,s.min)(n),h=o;h<=a;h++)i.push(h);e.push(i),r=n,n=t.shift()}return e},t}();function y(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=t[0],n=t[1],i=c(n);if(!l(n))throw new Error("Pseudoknot(s) encountered.");var s=[],o=0;return r.forEach((function(t,e){var r=e+1,n=i[e];null==n?s.push(o):r<n?(s.push(o),o++):(r==n||o--,s.push(o))})),s}function w(t){var e=t.split(""),r=[".","(",")"];e.forEach((function(t){if(!r.includes(t))throw new Error('Unrecognized character in dot-bracket notation: "'.concat(t,'".'))}));var n=[],i=[];if(e.forEach((function(t,e){var r=e+1;if("("==t)i.push(r);else if(")"==t){var s=i.pop();if("number"!=typeof s)throw new Error("Unmatched downstream partner(s) in dot-bracket notation.");n.push([s,r])}})),i.length>0)throw new Error("Unmatched upstream partner(s) in dot-bracket notation.");return o(n)}})(),n})(),t.exports=e()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{FirstPairedBase:()=>e,LastPairedBase:()=>s,LeadingDanglingBases:()=>o,Linkers:()=>c,PositionPairs:()=>t,Stems:()=>u,TrailingDanglingBases:()=>a,consecutivePairs:()=>f,knotless:()=>l,parseDotBracket:()=>d});class t{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];return this.targetStructure[1].map((e=>[t.indexOf(e[0])+1,t.indexOf(e[1])+1]))}}class e{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=this.targetStructure[1];if(0==e.length)throw new Error("There are no paired bases.");let r=e.flat(),n=t.findIndex((t=>r.includes(t)));if(n<0)throw new Error("No paired bases present in sequence.");return t[n]}}var i=r(986);class s{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=this.targetStructure[1];if(0==e.length)throw new Error("There are no paired bases.");let r=e.flat().map((e=>t.indexOf(e)));if((0,i.max)(r)<0)throw new Error("No paired bases present in sequence.");return t[(0,i.max)(r)]}}class o{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let r=new e(...this.targetStructure).get(),n=t.indexOf(r);if(n<0)throw new Error("No paired bases present in sequence.");return t.slice(0,n)}}class a{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let e=new s(...this.targetStructure).get(),r=t.indexOf(e);if(r<0)throw new Error("No paired bases present in sequence.");return t.slice(r+1)}}var h=r(369);class u{constructor(...t){this.targetStructure=t}get(){let e=this.targetStructure[0],r=new t(...this.targetStructure).get();return new h.Stems(e,r).get().map((t=>t.map((t=>[e[t[0]-1],e[t[1]-1]]))))}}class c{constructor(...t){this.targetStructure=t}get(){let e=this.targetStructure[0],r=new t(...this.targetStructure).get();return new h.Linkers(e,r).get().map((t=>t.map((t=>e[t-1]))))}}function l(...e){let[r,n]=e,i=new t(...e).get();(0,h.areKnotless)(i)||(i=(0,h.knotless)(i));let s=i.map((t=>[r[t[0]-1],r[t[1]-1]]));return[[...r],s]}function d(t,e){if(e.length>t.length)throw new Error("Dot-bracket notation is longer than the sequence.");return[...(0,h.parseDotBracket)(e)].map((e=>{let r=e[0],n=e[1];return[t[r-1],t[n-1]]}))}function f(t){return t.length<2?[]:t.slice(0,-1).map(((e,r)=>[t[r],t[r+1]]))}})(),n})(),t.exports=e()},661:function(t){var e;e=()=>(()=>{var t={127:function(t){var e;e=()=>(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>p,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function p(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},369:function(t){var e;e=()=>(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>p,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function p(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function h(t){return null==t}function u(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}function l(t){return c(t)&&t.every(r)}function d(t){return c(t)&&t.every(n)}function f(t){return c(t)&&t.every(i)}function p(t){return c(t)&&t.every(a)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>d,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>f,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>u,isNullish:()=>h,isNumber:()=>r,isNumbersArray:()=>l,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>p}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Linkers:()=>g,Stems:()=>m,areConflicting:()=>u,areCrossing:()=>d,areEqual:()=>a,areKnotless:()=>l,areStacked:()=>h,deepCopy:()=>i,knotless:()=>p,mountainPlotTraversal:()=>y,parseDotBracket:()=>w,sorted:()=>o});var t=r(854),e=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function i(r){return(0,t.isNumbersArray)(r)?e([],r,!0):r.map((function(t){return e([],t,!0)}))}var s=r(986);function o(t){var e=i(t);return e.forEach(s.sortNumbers),e.sort((function(t,e){return t[0]-e[0]})),e}function a(t,e){var r=i(t),n=i(e);return(0,s.sortNumbers)(r),(0,s.sortNumbers)(n),[0,1].every((function(t){return r[t]==n[t]}))}function h(t,e){var r=o([t,e]);return r[0][0]==r[1][0]-1&&r[0][1]==r[1][1]+1}function u(t,e){return(0,s.min)(t)==(0,s.min)(e)&&(0,s.max)(t)!=(0,s.max)(e)||(0,s.min)(t)!=(0,s.min)(e)&&(0,s.max)(t)==(0,s.max)(e)}function c(t){if(0==t.length)return[];for(var e=[],r=0;r<(0,s.max)(t.flat());r++)e.push(void 0);return t.forEach((function(t){e[t[0]-1]=t[1],e[t[1]-1]=t[0]})),e}function l(t){var e=c(t),r=[],n=!1;return e.forEach((function(t,e){var i=e+1;null==t||(i<t?r.push(i):i==t||r.pop()!=t&&(n=!0))})),!n}function d(t,e){return!l([t,e])}var f=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function p(t){var e=[],r=i(t);return r.sort((function(t,e){return Math.abs(t[0]-t[1])-Math.abs(e[0]-e[1])})),r.forEach((function(t){l(f(f([],e,!0),[t],!1))&&e.push(t)})),e}var m=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=this.targetStructure[1];if(0==t.length)return[];var e=o(t),r=[],n=[];return e.forEach((function(t){var e=0==n.length?null:n[n.length-1];!e||h(e,t)?n.push(t):(r.push(n),n=[t])})),r.push(n),r},t}(),g=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=(new(m.bind.apply(m,function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))}([void 0],this.targetStructure,!1)))).get().flatMap((function(t){return[t.map(s.min),t.map(s.max)]}));t.forEach(s.sortNumbers),t.sort((function(t,e){return(0,s.min)(t)-(0,s.min)(e)}));for(var e=[],r=t.shift(),n=t.shift();r&&n;){for(var i=[],o=(0,s.max)(r),a=(0,s.min)(n),h=o;h<=a;h++)i.push(h);e.push(i),r=n,n=t.shift()}return e},t}();function y(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=t[0],n=t[1],i=c(n);if(!l(n))throw new Error("Pseudoknot(s) encountered.");var s=[],o=0;return r.forEach((function(t,e){var r=e+1,n=i[e];null==n?s.push(o):r<n?(s.push(o),o++):(r==n||o--,s.push(o))})),s}function w(t){var e=t.split(""),r=[".","(",")"];e.forEach((function(t){if(!r.includes(t))throw new Error('Unrecognized character in dot-bracket notation: "'.concat(t,'".'))}));var n=[],i=[];if(e.forEach((function(t,e){var r=e+1;if("("==t)i.push(r);else if(")"==t){var s=i.pop();if("number"!=typeof s)throw new Error("Unmatched downstream partner(s) in dot-bracket notation.");n.push([s,r])}})),i.length>0)throw new Error("Unmatched upstream partner(s) in dot-bracket notation.");return o(n)}})(),n})(),t.exports=e()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{FirstPairedBase:()=>e,LastPairedBase:()=>s,LeadingDanglingBases:()=>o,Linkers:()=>c,PositionPairs:()=>t,Stems:()=>u,TrailingDanglingBases:()=>a,consecutivePairs:()=>f,knotless:()=>l,parseDotBracket:()=>d});class t{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];return this.targetStructure[1].map((e=>[t.indexOf(e[0])+1,t.indexOf(e[1])+1]))}}class e{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=this.targetStructure[1];if(0==e.length)throw new Error("There are no paired bases.");let r=e.flat(),n=t.findIndex((t=>r.includes(t)));if(n<0)throw new Error("No paired bases present in sequence.");return t[n]}}var i=r(986);class s{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=this.targetStructure[1];if(0==e.length)throw new Error("There are no paired bases.");let r=e.flat().map((e=>t.indexOf(e)));if((0,i.max)(r)<0)throw new Error("No paired bases present in sequence.");return t[(0,i.max)(r)]}}class o{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let r=new e(...this.targetStructure).get(),n=t.indexOf(r);if(n<0)throw new Error("No paired bases present in sequence.");return t.slice(0,n)}}class a{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let e=new s(...this.targetStructure).get(),r=t.indexOf(e);if(r<0)throw new Error("No paired bases present in sequence.");return t.slice(r+1)}}var h=r(369);class u{constructor(...t){this.targetStructure=t}get(){let e=this.targetStructure[0],r=new t(...this.targetStructure).get();return new h.Stems(e,r).get().map((t=>t.map((t=>[e[t[0]-1],e[t[1]-1]]))))}}class c{constructor(...t){this.targetStructure=t}get(){let e=this.targetStructure[0],r=new t(...this.targetStructure).get();return new h.Linkers(e,r).get().map((t=>t.map((t=>e[t-1]))))}}function l(...e){let[r,n]=e,i=new t(...e).get();(0,h.areKnotless)(i)||(i=(0,h.knotless)(i));let s=i.map((t=>[r[t[0]-1],r[t[1]-1]]));return[[...r],s]}function d(t,e){if(e.length>t.length)throw new Error("Dot-bracket notation is longer than the sequence.");return[...(0,h.parseDotBracket)(e)].map((e=>{let r=e[0],n=e[1];return[t[r-1],t[n-1]]}))}function f(t){return t.length<2?[]:t.slice(0,-1).map(((e,r)=>[t[r],t[r+1]]))}})(),n})(),t.exports=e()},173:function(t){var e;e=()=>(()=>{var t={422:function(t){t.exports=(()=>{var t={138:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}return t.r(e),t.d(e,{average:()=>n,mean:()=>n,sum:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function t(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function e(t,e){return{x:e.x-t.x,y:e.y-t.y}}r.r(n),r.d(n,{centroid:()=>s,displacement:()=>e,distance:()=>t,midpoint:()=>o});var i=r(138);function s(t){return{x:(0,i.mean)(t.map((function(t){return t.x}))),y:(0,i.mean)(t.map((function(t){return t.y})))}}function o(t,e){return s([t,e])}})(),n})()},872:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{CircularSegment:()=>a,Semicircle:()=>e});var t=r(422),e=function(){function e(t){this.chord=t}return Object.defineProperty(e.prototype,"chordLength",{get:function(){return(0,t.distance)(this.chord[0],this.chord[1])},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"arcLength",{get:function(){return Math.PI*this.chordLength/2},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"arcAngle",{get:function(){return Math.PI},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleRadius",{get:function(){return this.chordLength/2},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleDiameter",{get:function(){return 2*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCircumference",{get:function(){return 2*Math.PI*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCenterPoint",{get:function(){return(0,t.midpoint)(this.chord[0],this.chord[1])},enumerable:!1,configurable:!0}),e}(),i=r(872),s=function(){function e(e,r){this.chord=e,this.moreProps=r;var n=r.arcLength,i=(0,t.distance)(e[0],e[1]);if(n<=i)throw new Error("Arc length is too small.");if(n>=Math.PI*i/2)throw new Error("Arc length is too big.");for(var s=Math.PI/2,o=0;o<20;o++)s-=(n/i*Math.sin(s)-s)/(n/i*Math.cos(s)-1);this.arcAngle=2*s}return Object.defineProperty(e.prototype,"chordLength",{get:function(){return(0,t.distance)(this.chord[0],this.chord[1])},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"arcLength",{get:function(){return this.moreProps.arcLength},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleRadius",{get:function(){return this.arcLength/this.arcAngle},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleDiameter",{get:function(){return 2*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCircumference",{get:function(){return 2*Math.PI*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCenterPoint",{get:function(){var e=(0,i.direction)((0,t.displacement)(this.chord[0],this.chord[1]));e+=(Math.PI-this.arcAngle)/2;var r=this.parentCircleRadius;return{x:this.chord[0].x+r*Math.cos(e),y:this.chord[0].y+r*Math.sin(e)}},enumerable:!1,configurable:!0}),e}(),o=function(){function e(e,r){this.chord=e,this.moreProps=r;var n=r.arcLength,i=(0,t.distance)(e[0],e[1]);if(0==i)throw new Error("Chord length cannot be zero.");if(n<=Math.PI*i/2)throw new Error("Arc length is too small.");for(var s=Math.PI,o=0;o<20;o++)s-=(n/i*Math.sin(Math.PI-s)-s)/(-n/i*Math.cos(Math.PI-s)-1);this.arcAngle=2*s}return Object.defineProperty(e.prototype,"chordLength",{get:function(){return(0,t.distance)(this.chord[0],this.chord[1])},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"arcLength",{get:function(){return this.moreProps.arcLength},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleRadius",{get:function(){return this.arcLength/this.arcAngle},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleDiameter",{get:function(){return 2*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCircumference",{get:function(){return 2*Math.PI*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCenterPoint",{get:function(){var e=(0,i.direction)((0,t.displacement)(this.chord[0],this.chord[1]));e-=(this.arcAngle-Math.PI)/2;var r=this.parentCircleRadius;return{x:this.chord[0].x+r*Math.cos(e),y:this.chord[0].y+r*Math.sin(e)}},enumerable:!1,configurable:!0}),e}(),a=function(){function r(r,n){this.chord=r,this.moreProps=n;var i=n.arcLength,a=(0,t.distance)(r[0],r[1]);if(a>0&&i<=a)throw new Error("Arc length is too small.");var h=a<.001&&i<.001,u=Math.PI*a/2,c=Math.abs(i-u)<.001;this.wrappedCircularSegment=h||c?new e(r):i<u?new s(r,{arcLength:i}):new o(r,{arcLength:i})}return Object.defineProperty(r.prototype,"chordLength",{get:function(){return this.wrappedCircularSegment.chordLength},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"arcLength",{get:function(){return this.moreProps.arcLength},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"arcAngle",{get:function(){return this.wrappedCircularSegment.arcAngle},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"parentCircleRadius",{get:function(){return this.wrappedCircularSegment.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"parentCircleDiameter",{get:function(){return this.wrappedCircularSegment.parentCircleDiameter},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"parentCircleCircumference",{get:function(){return this.wrappedCircularSegment.parentCircleCircumference},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"parentCircleCenterPoint",{get:function(){return this.wrappedCircularSegment.parentCircleCenterPoint},enumerable:!1,configurable:!0}),r}()})(),n})(),t.exports=e()},986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>p,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function p(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},456:function(t){var e;e=()=>(()=>{var t={277:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{Vector:()=>r});class r{static matching(t){return new r(t.x,t.y)}constructor(t,e){this.x=t,this.y=e}[Symbol.iterator](){return[this.x,this.y].values()}get magnitude(){return Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2))}get direction(){return Math.atan2(this.y,this.x)}}return e})(),t.exports=e()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Point:()=>e,RelativePoint:()=>c});var t=r(277);class e{static matching(t){return new e(t.x,t.y)}constructor(t,e){this.x=t,this.y=e}[Symbol.iterator](){return[this.x,this.y].values()}displacementTo(e){return new t.Vector(e.x-this.x,e.y-this.y)}displacementFrom(e){return new t.Vector(this.x-e.x,this.y-e.y)}distanceTo(t){return this.displacementTo(t).magnitude}distanceFrom(t){return this.distanceTo(t)}directionTo(t){return this.displacementTo(t).direction}directionFrom(t){return this.displacementFrom(t).direction}}var i,s,o,a,h,u=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class c{constructor(e){i.add(this),s.set(this,void 0),o.set(this,new t.Vector(0,0)),a.set(this,{move:[]}),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,s,e),e.addEventListener("move",(()=>u(this,i,"m",h).call(this,"move")))}get x(){return u(this,s,"f").x+u(this,o,"f").x}set x(t){u(this,o,"f").x=t-u(this,s,"f").x,u(this,i,"m",h).call(this,"move")}get y(){return u(this,s,"f").y+u(this,o,"f").y}set y(t){u(this,o,"f").y=t-u(this,s,"f").y,u(this,i,"m",h).call(this,"move")}addEventListener(t,e){u(this,a,"f")[t].push(e)}removeEventListener(t,e){u(this,a,"f")[t]=u(this,a,"f")[t].filter((t=>t!==e))}}s=new WeakMap,o=new WeakMap,a=new WeakMap,i=new WeakSet,h=function(t){u(this,a,"f")[t].forEach((t=>t()))}})(),n})(),t.exports=e()},725:function(t){t.exports=(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>d,average:()=>n,degrees:()=>m,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>g,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>f,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return Math.abs(t-e)<=r}function f(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function m(t){return t*(180/Math.PI)}function g(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function h(t){return null==t}function u(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isNonFiniteNumber:()=>i,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>u,isNullish:()=>h,isNumber:()=>r,isPositiveFiniteNumber:()=>s,isString:()=>a}),e})()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{areWithin:()=>a,centroid:()=>f,deepCopy:()=>s,direction:()=>l,displaced:()=>u,displacement:()=>h,distance:()=>o,isFinitePoint:()=>i,isPoint:()=>e,midpoint:()=>p});var t=r(854);function e(e){return(0,t.isNonNullObject)(e)&&(0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)}function i(r){return e(r)&&(0,t.isFiniteNumber)(r.x)&&(0,t.isFiniteNumber)(r.y)}function s(t){return{x:t.x,y:t.y}}function o(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function a(t,e,r){return o(t,e)<=r}function h(t,e){return{x:e.x-t.x,y:e.y-t.y}}function u(t,e){return{x:t.x+e.x,y:t.y+e.y}}var c=r(30);function l(t,e){return(0,c.direction)(h(t,e))}var d=r(986);function f(t){return{x:(0,d.mean)(t.map((function(t){return t.x}))),y:(0,d.mean)(t.map((function(t){return t.y})))}}function p(t,e){return f([t,e])}})(),n})()},369:function(t){var e;e=()=>(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>p,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function p(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function h(t){return null==t}function u(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}function l(t){return c(t)&&t.every(r)}function d(t){return c(t)&&t.every(n)}function f(t){return c(t)&&t.every(i)}function p(t){return c(t)&&t.every(a)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>d,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>f,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>u,isNullish:()=>h,isNumber:()=>r,isNumbersArray:()=>l,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>p}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Linkers:()=>g,Stems:()=>m,areConflicting:()=>u,areCrossing:()=>d,areEqual:()=>a,areKnotless:()=>l,areStacked:()=>h,deepCopy:()=>i,knotless:()=>p,mountainPlotTraversal:()=>y,parseDotBracket:()=>w,sorted:()=>o});var t=r(854),e=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function i(r){return(0,t.isNumbersArray)(r)?e([],r,!0):r.map((function(t){return e([],t,!0)}))}var s=r(986);function o(t){var e=i(t);return e.forEach(s.sortNumbers),e.sort((function(t,e){return t[0]-e[0]})),e}function a(t,e){var r=i(t),n=i(e);return(0,s.sortNumbers)(r),(0,s.sortNumbers)(n),[0,1].every((function(t){return r[t]==n[t]}))}function h(t,e){var r=o([t,e]);return r[0][0]==r[1][0]-1&&r[0][1]==r[1][1]+1}function u(t,e){return(0,s.min)(t)==(0,s.min)(e)&&(0,s.max)(t)!=(0,s.max)(e)||(0,s.min)(t)!=(0,s.min)(e)&&(0,s.max)(t)==(0,s.max)(e)}function c(t){if(0==t.length)return[];for(var e=[],r=0;r<(0,s.max)(t.flat());r++)e.push(void 0);return t.forEach((function(t){e[t[0]-1]=t[1],e[t[1]-1]=t[0]})),e}function l(t){var e=c(t),r=[],n=!1;return e.forEach((function(t,e){var i=e+1;null==t||(i<t?r.push(i):i==t||r.pop()!=t&&(n=!0))})),!n}function d(t,e){return!l([t,e])}var f=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function p(t){var e=[],r=i(t);return r.sort((function(t,e){return Math.abs(t[0]-t[1])-Math.abs(e[0]-e[1])})),r.forEach((function(t){l(f(f([],e,!0),[t],!1))&&e.push(t)})),e}var m=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=this.targetStructure[1];if(0==t.length)return[];var e=o(t),r=[],n=[];return e.forEach((function(t){var e=0==n.length?null:n[n.length-1];!e||h(e,t)?n.push(t):(r.push(n),n=[t])})),r.push(n),r},t}(),g=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=(new(m.bind.apply(m,function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))}([void 0],this.targetStructure,!1)))).get().flatMap((function(t){return[t.map(s.min),t.map(s.max)]}));t.forEach(s.sortNumbers),t.sort((function(t,e){return(0,s.min)(t)-(0,s.min)(e)}));for(var e=[],r=t.shift(),n=t.shift();r&&n;){for(var i=[],o=(0,s.max)(r),a=(0,s.min)(n),h=o;h<=a;h++)i.push(h);e.push(i),r=n,n=t.shift()}return e},t}();function y(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=t[0],n=t[1],i=c(n);if(!l(n))throw new Error("Pseudoknot(s) encountered.");var s=[],o=0;return r.forEach((function(t,e){var r=e+1,n=i[e];null==n?s.push(o):r<n?(s.push(o),o++):(r==n||o--,s.push(o))})),s}function w(t){var e=t.split(""),r=[".","(",")"];e.forEach((function(t){if(!r.includes(t))throw new Error('Unrecognized character in dot-bracket notation: "'.concat(t,'".'))}));var n=[],i=[];if(e.forEach((function(t,e){var r=e+1;if("("==t)i.push(r);else if(")"==t){var s=i.pop();if("number"!=typeof s)throw new Error("Unmatched downstream partner(s) in dot-bracket notation.");n.push([s,r])}})),i.length>0)throw new Error("Unmatched upstream partner(s) in dot-bracket notation.");return o(n)}})(),n})(),t.exports=e()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Centroid:()=>s,Direction:()=>f,MaxCenterX:()=>h,MaxCenterY:()=>c,MinCenterX:()=>a,MinCenterY:()=>u,NucleobaseMock:()=>t,arrange:()=>C,circularize:()=>v,flipSelfX:()=>g,flipSelfY:()=>y,flipX:()=>p,flipY:()=>m,linearize:()=>w,radialize:()=>V,rotate:()=>d,round:()=>S,shift:()=>e,stemmify:()=>x,straighten:()=>b});class t{constructor(t){this.props=t}getCenterPoint(){return this.props.centerPoint}setCenterPoint(t){this.props.centerPoint=t}}function e(t,e){t.forEach((t=>{let r=t.getCenterPoint();t.setCenterPoint({x:r.x+e.x,y:r.y+e.y})}))}var i=r(725);class s{constructor(t){this.targetBases=t}get(){let t=this.targetBases.map((t=>t.getCenterPoint()));return(0,i.centroid)(t)}set(t){let r=this.get(),n=(0,i.displacement)(r,t);e(this.targetBases,n)}}var o=r(986);class a{constructor(t){this.targetBases=t}get(){return(0,o.min)(this.targetBases.map((t=>t.getCenterPoint().x)))}set(t){let r=this.get();e(this.targetBases,{x:t-r,y:0})}}class h{constructor(t){this.targetBases=t}get(){return(0,o.max)(this.targetBases.map((t=>t.getCenterPoint().x)))}set(t){let r=this.get();e(this.targetBases,{x:t-r,y:0})}}class u{constructor(t){this.targetBases=t}get(){return(0,o.min)(this.targetBases.map((t=>t.getCenterPoint().y)))}set(t){let r=this.get();e(this.targetBases,{x:0,y:t-r})}}class c{constructor(t){this.targetBases=t}get(){return(0,o.max)(this.targetBases.map((t=>t.getCenterPoint().y)))}set(t){let r=this.get();e(this.targetBases,{x:0,y:t-r})}}var l=r(30);function d(t,e){if(t.length<2)return;let r=t[0],n=t[t.length-1],s=(0,i.midpoint)(r.getCenterPoint(),n.getCenterPoint());t.forEach((t=>{let r=t.getCenterPoint(),n=(0,i.distance)(s,r),o=(0,l.direction)((0,i.displacement)(s,r));o+=e,t.setCenterPoint({x:s.x+n*Math.cos(o),y:s.y+n*Math.sin(o)})}))}class f{constructor(t){this.targetBases=t}get(){if(this.targetBases.length<2)return 0;let t=this.targetBases[0],e=this.targetBases[this.targetBases.length-1];return(0,l.direction)((0,i.displacement)(t.getCenterPoint(),e.getCenterPoint()))}set(t){let e=t-this.get();d(this.targetBases,e)}}function p(t){let e=new s(t).get().y;t.forEach((t=>{let r=t.getCenterPoint(),n=r.y-e;t.setCenterPoint({x:r.x,y:e-n})}))}function m(t){let e=new s(t).get().x;t.forEach((t=>{let r=t.getCenterPoint(),n=r.x-e;t.setCenterPoint({x:e-n,y:r.y})}))}function g(t){if(0==t.length)return;let r=t[0],{x:n,y:s}=r.getCenterPoint(),o={x:n,y:s},a=new f(t).get();d(t,-a),p(t),d(t,a),e(t,(0,i.displacement)(r.getCenterPoint(),o))}function y(t){let e=new s(t),{x:r,y:n}=e.get(),i=r,o=n,a=new f(t).get();d(t,-a),m(t),d(t,a),e.set({x:i,y:o})}function w(t,e){let{spacing:r}=e;if(t.length<2)return;let n=new f(t),i=n.get(),o=new s(t),{x:a,y:h}=o.get(),u={x:a,y:h};t.forEach(((t,e)=>{t.setCenterPoint({x:e*r,y:0})})),n.set(i),o.set(u)}function b(t){if(t.length<3)return;let e=t[0],r=t[t.length-1],n=[e.getCenterPoint(),r.getCenterPoint()],s=(0,i.distance)(n[0],n[1]),o=(0,l.direction)((0,i.displacement)(n[0],n[1])),a=s/(t.length-1),h=a*Math.cos(o),u=a*Math.sin(o),{x:c,y:d}=n[0];t.forEach((t=>{t.setCenterPoint({x:c,y:d}),c+=h,d+=u}))}function x(t,r){let{basePairLength:n,basePairSpacing:o}=r;if(t.length<2)return;let a=Math.ceil(t.length/2),h=t.slice(0,a),u=t.slice(a),c=new s(t),{x:l,y:p}=c.get(),m={x:l,y:p},g=new f(t).get();w(h,{spacing:o}),w(u,{spacing:o}),new f(h).set(-Math.PI/2),new f(u).set(Math.PI/2);let y=t[0],b=t[t.length-1];e(h,(0,i.displacement)(y.getCenterPoint(),{x:0,y:0})),e(u,(0,i.displacement)(b.getCenterPoint(),{x:n,y:0})),d(t,g),c.set(m)}function v(t,e){let{spacing:r,terminiGap:n}=e;if(t.length<2)return;let i=new s(t),{x:o,y:a}=i.get(),h=o,u=a,c=new f(t).get(),l=r*(t.length-1);l+=n,Math.abs(l)<1e-5&&(l=1e-5);let p=l/(2*Math.PI),m=Math.PI/2+2*Math.PI*(.5*n/l);t.forEach(((t,e)=>{let n=m+2*Math.PI*(e*r)/l;t.setCenterPoint({x:p*Math.cos(n),y:p*Math.sin(n)})})),d(t,c),i.set({x:h,y:u})}var _=r(173);function S(t,r){let{spacing:n}=r;if(t.length<3)return;let s=t[0],o=t[t.length-1],a=[s.getCenterPoint(),o.getCenterPoint()],h=(0,i.distance)(a[0],a[1]),u=n*(t.length-1);if(u-h<.001)return void b(t);if(h<.001){let{x:r,y:o}=s.getCenterPoint();return v(t,{spacing:n,terminiGap:h}),void e(t,(0,i.displacement)(s.getCenterPoint(),{x:r,y:o}))}let c=new _.CircularSegment(a,{arcLength:u}),d=c.parentCircleCenterPoint,f=c.parentCircleRadius,p=(0,l.direction)((0,i.displacement)(d,s.getCenterPoint())),m=c.arcAngle/(t.length-1);t.forEach((t=>{t.setCenterPoint({x:d.x+f*Math.cos(p),y:d.y+f*Math.sin(p)}),p+=m}))}var M=r(127),O=r(369);function C(t,r,n){var a,h,u;let{spacing:c}=n,l=null!==(a=n.basePairSpacing)&&void 0!==a?a:c,d=null!==(h=n.hairpinLoopSpacing)&&void 0!==h?h:c,p=null!==(u=n.terminiGap)&&void 0!==u?u:c,{x:m,y:g}=new s(t).get(),y={x:m,y:g},w=new f(t).get();[,r]=(0,M.knotless)(t,r);let b=new M.PositionPairs(t,r).get(),_=(0,O.mountainPlotTraversal)(t,b),C=t.filter(((t,e)=>0==_[e]));v(C,{spacing:c,terminiGap:p});let N=new M.Stems(t,r).get(),P=new Set(C),A=N.filter((t=>P.has(t[0][0]))),E=r=>{let n=r[0],{x:a,y:h}=new s(n).get(),u={x:a,y:h},p=new f(r[0]).get(),m=[...r.map((t=>t[0])),...r.map((t=>t[1])).reverse()];x(m,{basePairLength:c,basePairSpacing:l}),new f(m).set(p),e(m,(0,i.displacement)(new s(n).get(),u));let g=r[r.length-1],y=g.map((e=>t.indexOf(e))),w=t.filter(((t,e)=>(0,o.isBetweenExclusive)(e,(0,o.min)(y),(0,o.max)(y))&&_[e]==_[(0,o.min)(y)]+1)),b=new Set(w),v=N.filter((t=>b.has(t[0][0])));S([g[0],...w,g[1]],{spacing:v.length>0?c:d}),v.forEach((t=>E(t)))};A.forEach((t=>E(t))),new f(t).set(w),new s(t).set(y)}var N=r(456);class P{static from(t){return{to:e=>({inclusive:()=>{let r=e-t+1;return Array.from({length:r},((e,r)=>t+r))}})}}}class A{static of(...t){let[e,r]=t,n=new M.PositionPairs(...t).get();n=(0,O.sorted)(n);let i=n.map((t=>t.map((t=>t-1)))),s=[],a=0;return e.forEach(((t,e)=>{let r=i.find((t=>t.includes(e)));r&&e==(0,o.min)(r)?(s.push(a),a+=1):r&&e==(0,o.max)(r)?(a-=1,s.push(a)):s.push(a)})),s}}class E{constructor(...t){let[e,r]=t;this.rawForm=t,this.mountainPlotTraversal=A.of(...t),this.positionPairs=new M.PositionPairs(...t).get(),this.indexPairs=this.positionPairs.map((t=>[t[0]-1,t[1]-1])),this.pairedBases=new Set(r.flat()),this.pairedIndices=new Set(e.map(((t,e)=>({b:t,i:e}))).filter((t=>this.pairedBases.has(t.b))).map((t=>t.i)))}[Symbol.iterator](){return this.rawForm.values()}get sequence(){return this.rawForm[0]}get basePairs(){return this.rawForm[1]}}class T{static correspondingTo(t){return{in:e=>t.map((t=>e.sequence.indexOf(t)))}}}class j{static composedOf(t){if(0==t.length)throw new Error("All stems must have at least one base-pair.");let r=t[0],n=t[t.length-1],s=t.map((t=>t[0])),o=t.map((t=>t[1])).reverse(),a=r[0],h=r[1],u=[...s,...o];return{[Symbol.iterator]:()=>t.values(),bottomBasePair:r,topBasePair:n,side5:s,side3:o,flat:()=>u,firstBase:a,lastBase:h,stemmify:()=>({with:t=>{let{basePairLength:r,basePairSpacing:n}=t,s=N.Point.matching(a.getCenterPoint());x(u,{basePairLength:r,basePairSpacing:n}),e(u,(0,i.displacement)(a.getCenterPoint(),s))}})}}}class D{static in(t){return{[Symbol.iterator]:()=>new M.Stems(t.sequence,t.basePairs).get().map((t=>j.composedOf(t))).values()}}}class k{static composedOf(t){if(t.length<2)throw new Error("Linkers must have at least two bases.");let r=t[0],n=t[t.length-1],s=t.slice(1,-1);return{in:o=>{let a=o.sequence.indexOf(r),h=o.sequence.indexOf(n),u=P.from(a).to(h).inclusive(),c=!!o.indexPairs.find((t=>t.includes(a)&&t.includes(h))),l=u.every((t=>0==o.mountainPlotTraversal[t])),d=1==new Set(u.map((t=>o.mountainPlotTraversal[t]))).size&&!c;return{[Symbol.iterator]:()=>t.values(),indices:u,firstBase:r,lastBase:n,firstIndex:a,lastIndex:h,unpairedBases:{[Symbol.iterator]:()=>s.values(),stemmify:()=>({with:t=>{let{spacing:r}=t;if(s.length<3)return;let n=s[0],o=s[s.length-1],a=N.Point.matching(n.getCenterPoint());x(s,{basePairLength:(0,i.distance)(n.getCenterPoint(),o.getCenterPoint()),basePairSpacing:r}),e(s,(0,i.displacement)(n.getCenterPoint(),a))}})},get middleThreeUnpairedBases(){if(s.length<3)throw new Error("This linker has less than three unpaired bases.");if(s.length%2==0)throw new Error("This linker has an even number of unpaired bases.");let t=Math.floor(s.length/2);return[s[t-1],s[t],s[t+1]]},isHairpinLoop:()=>c,isInOutermostLoop:()=>l,isBetweenSiblingStems:()=>d,round:()=>({with:e=>{let{spacing:r}=e;S(t,{spacing:r})}})}}}}}class B{static in(t){let e=new M.Linkers(t.sequence,t.basePairs).get().map((e=>k.composedOf(e).in(t)));return{[Symbol.iterator]:()=>e.values(),thatAreHairpinLoops:{[Symbol.iterator]:()=>e.filter((t=>t.isHairpinLoop())).values()},inOutermostLoop:{[Symbol.iterator]:()=>e.filter((t=>t.isInOutermostLoop())).values()},notInOutermostLoop:{[Symbol.iterator]:()=>e.filter((t=>!t.isInOutermostLoop())).values(),betweenSiblingStems:{[Symbol.iterator]:()=>e.filter((t=>!t.isInOutermostLoop())).filter((t=>t.isBetweenSiblingStems())).values()}},notBetweenSiblingStems:{[Symbol.iterator]:()=>e.filter((t=>!t.isBetweenSiblingStems())).values()}}}}class I{static closedBy(r){return{in:n=>{let s=r.topBasePair,a=T.correspondingTo(s).in(n),h=(0,o.min)(a),u=n.sequence.filter(((t,e)=>e>(0,o.min)(a)&&e<(0,o.max)(a)&&n.mountainPlotTraversal[e]==n.mountainPlotTraversal[h]+1)),c=u.map((t=>n.sequence.indexOf(t))),l=u.filter((t=>n.pairedBases.has(t))),d=c.filter((t=>n.pairedIndices.has(t))),f=[s[0],...u,s[1]];return{[Symbol.iterator]:()=>f.values(),parentStructure:n,closingStem:r,closingBasePair:s,closingIndexPair:a,enclosedBases:u,enclosedIndices:c,enclosedPairedBases:l,enclosedPairedIndices:d,get platform(){if(0==d.length)throw new Error("This loop does not have a platform.");let r=(0,o.min)(d),h=(0,o.max)(d),u=n.sequence.filter(((t,e)=>e>=r&&e<=h&&c.includes(e)&&[e-1,e,e+1].some((t=>d.includes(t)))));return{[Symbol.iterator]:()=>u.values(),firstIndex:r,lastIndex:h,arch:()=>({with:n=>{let{spacing:c}=n,l=(0,o.max)([u.length-2,r-(0,o.min)(a)-1,(0,o.max)(a)-h-1,0]),d=P.from(1).to(l).inclusive().map((()=>new t({centerPoint:{x:0,y:0}}))),f=d.map((()=>new t({centerPoint:{x:0,y:0}}))),p=N.Point.matching(s[0].getCenterPoint());v([s[0],...d,...u,...f,s[1]],{spacing:c,terminiGap:c}),e([...s,...u],(0,i.displacement)(s[0].getCenterPoint(),p))}})}}}}}}}class L{static of(t){let e=t.sequence.filter(((e,r)=>0==t.mountainPlotTraversal[r]));return{[Symbol.iterator]:()=>e.values()}}}function V(t,e,r){var n;let{spacing:i,basePairSpacing:o}=r,a=null!==(n=r.hairpinLoopSpacing)&&void 0!==n?n:i,h=new E(t,e);if(t.length<2)return;if(0==e.length)return void v(t,{spacing:i,terminiGap:2*i});let u=N.Point.matching(new s(t).get()),c=new f(t).get(),l=D.in(h),d=B.in(h);v([...L.of(h)],{spacing:i,terminiGap:2*i});let p=[...l].map((t=>I.closedBy(t).in(h)));p.filter((t=>t.enclosedPairedBases.length>0)).forEach((t=>{t.closingStem.stemmify().with({basePairLength:i,basePairSpacing:o}),t.platform.arch().with({spacing:i}),t.closingStem.stemmify().with({basePairLength:i,basePairSpacing:o})})),p.filter((t=>0==t.enclosedPairedBases.length)).forEach((t=>t.closingStem.stemmify().with({basePairLength:i,basePairSpacing:o}))),[...d.notBetweenSiblingStems].forEach((t=>t.round().with({spacing:i}))),[...d.thatAreHairpinLoops].forEach((t=>t.round().with({spacing:a}))),[...d.notInOutermostLoop.betweenSiblingStems].filter((t=>[...t.unpairedBases].length>=3)).forEach((t=>{t.unpairedBases.stemmify().with({spacing:i}),[...t.unpairedBases].length%2!=0&&S(t.middleThreeUnpairedBases,{spacing:i})})),new f(t).set(c),new s(t).set(u)}})(),n})(),t.exports=e()},282:function(t){var e;e=()=>(()=>{var t={726:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{CoordinateSystem:()=>c,HorizontalClientScaling:()=>d,InnerXML:()=>w,OuterXML:()=>v,Scaling:()=>l,VerticalClientScaling:()=>f,assignUUID:()=>u,bringToFront:()=>p,sendToBack:()=>m});const r={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};var n,i=new Uint8Array(16);function s(){if(!n&&!(n="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return n(i)}for(var o=[],a=0;a<256;++a)o.push((a+256).toString(16).slice(1));const h=function(t,e,n){if(r.randomUUID&&!e&&!t)return r.randomUUID();var i=(t=t||{}).random||(t.rng||s)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,e){n=n||0;for(var a=0;a<16;++a)e[n+a]=i[a];return e}return function(t,e=0){return(o[t[e+0]]+o[t[e+1]]+o[t[e+2]]+o[t[e+3]]+"-"+o[t[e+4]]+o[t[e+5]]+"-"+o[t[e+6]]+o[t[e+7]]+"-"+o[t[e+8]]+o[t[e+9]]+"-"+o[t[e+10]]+o[t[e+11]]+o[t[e+12]]+o[t[e+13]]+o[t[e+14]]+o[t[e+15]]).toLowerCase()}(i)};function u(t){t.id="uuid-"+h()}class c{constructor(t){this.targetSVGDoc=t}get width(){return this.targetSVGDoc.viewBox.baseVal.width}get height(){return this.targetSVGDoc.viewBox.baseVal.height}get minX(){return this.targetSVGDoc.viewBox.baseVal.x}get maxX(){return this.minX+this.width}get minY(){return this.targetSVGDoc.viewBox.baseVal.y}get maxY(){return this.minY+this.height}get horizontalScaling(){return this.targetSVGDoc.width.baseVal.value/this.width}get verticalScaling(){return this.targetSVGDoc.height.baseVal.value/this.height}setScaling(t){this.targetSVGDoc.setAttribute("width",""+t*this.width),this.targetSVGDoc.setAttribute("height",""+t*this.height)}get clientWidth(){return this.targetSVGDoc.getBoundingClientRect().width}get clientHeight(){return this.targetSVGDoc.getBoundingClientRect().height}get horizontalClientScaling(){return this.clientWidth/this.width}get verticalClientScaling(){return this.clientHeight/this.height}get minClientX(){return this.targetSVGDoc.getBoundingClientRect().x}get minClientY(){return this.targetSVGDoc.getBoundingClientRect().y}fromClientX(t){return this.minX+(t-this.minClientX)/this.horizontalClientScaling}fromClientY(t){return this.minY+(t-this.minClientY)/this.verticalClientScaling}fromClientCoordinates(t,e){return[this.fromClientX(t),this.fromClientY(e)]}fromClientPoint(t){return{x:this.fromClientX(t.x),y:this.fromClientY(t.y)}}toClientX(t){return this.minClientX+this.horizontalClientScaling*(t-this.minX)}toClientY(t){return this.minClientY+this.verticalClientScaling*(t-this.minY)}toClientCoordinates(t,e){return[this.toClientX(t),this.toClientY(e)]}toClientPoint(t){return{x:this.toClientX(t.x),y:this.toClientY(t.y)}}}class l{constructor(t){this.targetSVGDoc=t}set(t){let e=this.targetSVGDoc.viewBox.baseVal;this.targetSVGDoc.setAttribute("width",t*e.width+"px"),this.targetSVGDoc.setAttribute("height",t*e.height+"px")}}class d{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.width/e.width}}class f{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.height/e.height}}function p(t){let e=t.parentNode;e&&e.appendChild(t)}function m(t){let e=t.parentNode;e&&e.prepend(t)}var g,y=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class w{constructor(t){g.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,g,t)}toString(){return y(this,g,"f").innerHTML}set(t){y(this,g,"f").innerHTML=t}}g=new WeakMap;var b,x=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class v{constructor(t){b.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,b,t)}toString(){return x(this,b,"f").outerHTML}set(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");if(e.style.height="0px",document.body.append(e),e.innerHTML=t,!e.firstElementChild)throw new Error("Outer XML must encode an SVG element.");if(e.childNodes.length>1)throw new Error("Outer XML cannot encode multiple DOM nodes.");if(e.firstElementChild.tagName.toLowerCase()!=x(this,b,"f").tagName.toLowerCase())throw new Error("Outer XML must specify an SVG element with the same tag name as the target SVG element.");[...x(this,b,"f").attributes].forEach((t=>x(this,b,"f").removeAttribute(t.name))),[...e.firstElementChild.attributes].forEach((t=>x(this,b,"f").setAttribute(t.name,t.value))),x(this,b,"f").innerHTML=e.firstElementChild.innerHTML,e.remove()}}return b=new WeakMap,e})(),t.exports=e()},725:function(t){t.exports=(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>d,average:()=>n,degrees:()=>m,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>g,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>f,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return Math.abs(t-e)<=r}function f(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function m(t){return t*(180/Math.PI)}function g(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function h(t){return null==t}function u(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}return t.r(e),t.d(e,{isArray:()=>c,isFiniteNumber:()=>n,isNonFiniteNumber:()=>i,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>u,isNullish:()=>h,isNumber:()=>r,isPositiveFiniteNumber:()=>s,isString:()=>a}),e})()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{areWithin:()=>a,centroid:()=>f,deepCopy:()=>s,direction:()=>l,displaced:()=>u,displacement:()=>h,distance:()=>o,isFinitePoint:()=>i,isPoint:()=>e,midpoint:()=>p});var t=r(854);function e(e){return(0,t.isNonNullObject)(e)&&(0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)}function i(r){return e(r)&&(0,t.isFiniteNumber)(r.x)&&(0,t.isFiniteNumber)(r.y)}function s(t){return{x:t.x,y:t.y}}function o(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function a(t,e,r){return o(t,e)<=r}function h(t,e){return{x:e.x-t.x,y:e.y-t.y}}function u(t,e){return{x:t.x+e.x,y:t.y+e.y}}var c=r(30);function l(t,e){return(0,c.direction)(h(t,e))}var d=r(986);function f(t){return{x:(0,d.mean)(t.map((function(t){return t.x}))),y:(0,d.mean)(t.map((function(t){return t.y})))}}function p(t,e){return f([t,e])}})(),n})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function h(t){return null==t}function u(t){return"object"==typeof t&&null!==t}function c(t){return Array.isArray(t)}function l(t){return c(t)&&0==t.length}function d(t){return c(t)&&t.length>0}function f(t){return c(t)&&t.every(r)}function p(t){return f(t)&&t.length>0}function m(t){return c(t)&&t.every(n)}function g(t){return c(t)&&t.every(i)}function y(t){return c(t)&&t.every(a)}function w(t){return y(t)&&t.length>0}return t.r(e),t.d(e,{isArray:()=>c,isEmptyArray:()=>l,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>m,isNonEmptyArray:()=>d,isNonEmptyNumbersArray:()=>p,isNonEmptyStringsArray:()=>w,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>g,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>u,isNullish:()=>h,isNumber:()=>r,isNumbersArray:()=>f,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>y}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{InvertedStraightBondsHider:()=>en,SavableStraightBond:()=>Lr,SavedStraightBond:()=>tn,StraightBond:()=>kr});var t={};r.r(t),r.d(t,{cx:()=>It,cy:()=>Lt,height:()=>Rt,rx:()=>jt,ry:()=>Dt,width:()=>Vt,x:()=>kt,y:()=>Bt});var e={};r.r(e),r.d(e,{from:()=>qt,to:()=>Gt});var i={};r.r(i),r.d(i,{MorphArray:()=>Qt,height:()=>te,width:()=>Kt,x:()=>Jt,y:()=>Zt});var s={};r.r(s),r.d(s,{array:()=>Pe,clear:()=>Ae,move:()=>Ee,plot:()=>Te,size:()=>je});var o={};r.r(o),r.d(o,{amove:()=>or,ax:()=>ir,ay:()=>sr,build:()=>ar,center:()=>nr,cx:()=>er,cy:()=>rr,length:()=>Je,move:()=>tr,plain:()=>Qe,x:()=>Ze,y:()=>Ke});var a={};r.r(a),r.d(a,{dmove:()=>fr,dx:()=>pr,dy:()=>mr,height:()=>gr,move:()=>yr,size:()=>wr,width:()=>br,x:()=>xr,y:()=>vr});const h={},u=[];function c(t,e){if(Array.isArray(t))for(const r of t)c(r,e);else if("object"!=typeof t)d(Object.getOwnPropertyNames(e)),h[t]=Object.assign(h[t]||{},e);else for(const e in t)c(e,t[e])}function l(t){return h[t]||{}}function d(t){u.push(...t)}function f(t,e){let r;const n=t.length,i=[];for(r=0;r<n;r++)i.push(e(t[r]));return i}function p(t){return t%360*Math.PI/180}function m(t){return t.charAt(0).toUpperCase()+t.slice(1)}function g(t,e,r,n){return null!=e&&null!=r||(n=n||t.bbox(),null==e?e=n.width/n.height*r:null==r&&(r=n.height/n.width*e)),{width:e,height:r}}function y(t,e){const r=t.origin;let n=null!=t.ox?t.ox:null!=t.originX?t.originX:"center",i=null!=t.oy?t.oy:null!=t.originY?t.originY:"center";null!=r&&([n,i]=Array.isArray(r)?r:"object"==typeof r?[r.x,r.y]:[r,r]);const s="string"==typeof n,o="string"==typeof i;if(s||o){const{height:t,width:r,x:a,y:h}=e.bbox();s&&(n=n.includes("left")?a:n.includes("right")?a+r:a+r/2),o&&(i=i.includes("top")?h:i.includes("bottom")?h+t:h+t/2)}return[n,i]}const w=new Set(["desc","metadata","title"]),b=t=>w.has(t.nodeName),x=(t,e,r={})=>{const n={...e};for(const t in n)n[t].valueOf()===r[t]&&delete n[t];Object.keys(n).length?t.node.setAttribute("data-svgjs",JSON.stringify(n)):(t.node.removeAttribute("data-svgjs"),t.node.removeAttribute("svgjs:data"))},v="http://www.w3.org/2000/svg",_="http://www.w3.org/2000/xmlns/",S="http://www.w3.org/1999/xlink",M={window:"undefined"==typeof window?null:window,document:"undefined"==typeof document?null:document};class O{}const C={},N="___SYMBOL___ROOT___";function P(t,e=v){return M.document.createElementNS(e,t)}function A(t,e=!1){if(t instanceof O)return t;if("object"==typeof t)return j(t);if(null==t)return new C[N];if("string"==typeof t&&"<"!==t.charAt(0))return j(M.document.querySelector(t));const r=e?M.document.createElement("div"):P("svg");return r.innerHTML=t,t=j(r.firstChild),r.removeChild(r.firstChild),t}function E(t,e){return e&&(e instanceof M.window.Node||e.ownerDocument&&e instanceof e.ownerDocument.defaultView.Node)?e:P(t)}function T(t){if(!t)return null;if(t.instance instanceof O)return t.instance;if("#document-fragment"===t.nodeName)return new C.Fragment(t);let e=m(t.nodeName||"Dom");return"LinearGradient"===e||"RadialGradient"===e?e="Gradient":C[e]||(e="Dom"),new C[e](t)}let j=T;function D(t,e=t.name,r=!1){return C[e]=t,r&&(C[N]=t),d(Object.getOwnPropertyNames(t.prototype)),t}let k=1e3;function B(t){return"Svgjs"+m(t)+k++}function I(t){for(let e=t.children.length-1;e>=0;e--)I(t.children[e]);return t.id?(t.id=B(t.nodeName),t):t}function L(t,e){let r,n;for(n=(t=Array.isArray(t)?t:[t]).length-1;n>=0;n--)for(r in e)t[n].prototype[r]=e[r]}function V(t){return function(...e){const r=e[e.length-1];return!r||r.constructor!==Object||r instanceof Array?t.apply(this,e):t.apply(this,e.slice(0,-1)).attr(r)}}c("Dom",{siblings:function(){return this.parent().children()},position:function(){return this.parent().index(this)},next:function(){return this.siblings()[this.position()+1]},prev:function(){return this.siblings()[this.position()-1]},forward:function(){const t=this.position();return this.parent().add(this.remove(),t+1),this},backward:function(){const t=this.position();return this.parent().add(this.remove(),t?t-1:0),this},front:function(){return this.parent().add(this.remove()),this},back:function(){return this.parent().add(this.remove(),0),this},before:function(t){(t=A(t)).remove();const e=this.position();return this.parent().add(t,e),this},after:function(t){(t=A(t)).remove();const e=this.position();return this.parent().add(t,e+1),this},insertBefore:function(t){return(t=A(t)).before(this),this},insertAfter:function(t){return(t=A(t)).after(this),this}});const R=/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,z=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,F=/rgb\((\d+),(\d+),(\d+)\)/,X=/(#[a-z_][a-z0-9\-_]*)/i,q=/\)\s*,?\s*/,G=/\s/g,Y=/^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i,U=/^rgb\(/,H=/^(\s+)?$/,$=/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,W=/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,Q=/[\s,]+/,J=/[MLHVCSQTAZ]/i;function Z(t){const e=Math.round(t),r=Math.max(0,Math.min(255,e)).toString(16);return 1===r.length?"0"+r:r}function K(t,e){for(let r=e.length;r--;)if(null==t[e[r]])return!1;return!0}function tt(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}c("Dom",{classes:function(){const t=this.attr("class");return null==t?[]:t.trim().split(Q)},hasClass:function(t){return-1!==this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){const e=this.classes();e.push(t),this.attr("class",e.join(" "))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr("class",this.classes().filter((function(e){return e!==t})).join(" ")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)}}),c("Dom",{css:function(t,e){const r={};if(0===arguments.length)return this.node.style.cssText.split(/\s*;\s*/).filter((function(t){return!!t.length})).forEach((function(t){const e=t.split(/\s*:\s*/);r[e[0]]=e[1]})),r;if(arguments.length<2){if(Array.isArray(t)){for(const e of t){const t=e;r[e]=this.node.style.getPropertyValue(t)}return r}if("string"==typeof t)return this.node.style.getPropertyValue(t);if("object"==typeof t)for(const e in t)this.node.style.setProperty(e,null==t[e]||H.test(t[e])?"":t[e])}return 2===arguments.length&&this.node.style.setProperty(t,null==e||H.test(e)?"":e),this},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},visible:function(){return"none"!==this.css("display")}}),c("Dom",{data:function(t,e,r){if(null==t)return this.data(f(function(t){let e;const r=t.length,n=[];for(e=0;e<r;e++)0===t[e].nodeName.indexOf("data-")&&n.push(t[e]);return n}(this.node.attributes),(t=>t.nodeName.slice(5))));if(t instanceof Array){const e={};for(const r of t)e[r]=this.data(r);return e}if("object"==typeof t)for(e in t)this.data(e,t[e]);else if(arguments.length<2)try{return JSON.parse(this.attr("data-"+t))}catch(e){return this.attr("data-"+t)}else this.attr("data-"+t,null===e?null:!0===r||"string"==typeof e||"number"==typeof e?e:JSON.stringify(e));return this}}),c("Dom",{remember:function(t,e){if("object"==typeof arguments[0])for(const e in t)this.remember(e,t[e]);else{if(1===arguments.length)return this.memory()[t];this.memory()[t]=e}return this},forget:function(){if(0===arguments.length)this._memory={};else for(let t=arguments.length-1;t>=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory=this._memory||{}}});class et{constructor(...t){this.init(...t)}static isColor(t){return t&&(t instanceof et||this.isRgb(t)||this.test(t))}static isRgb(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b}static random(t="vibrant",e){const{random:r,round:n,sin:i,PI:s}=Math;if("vibrant"===t){const t=24*r()+57,e=38*r()+45,n=360*r();return new et(t,e,n,"lch")}if("sine"===t){const t=n(80*i(2*s*(e=null==e?r():e)/.5+.01)+150),o=n(50*i(2*s*e/.5+4.6)+200),a=n(100*i(2*s*e/.5+2.3)+150);return new et(t,o,a)}if("pastel"===t){const t=8*r()+86,e=17*r()+9,n=360*r();return new et(t,e,n,"lch")}if("dark"===t){const t=10+10*r(),e=50*r()+86,n=360*r();return new et(t,e,n,"lch")}if("rgb"===t){const t=255*r(),e=255*r(),n=255*r();return new et(t,e,n)}if("lab"===t){const t=100*r(),e=256*r()-128,n=256*r()-128;return new et(t,e,n,"lab")}if("grey"===t){const t=255*r();return new et(t,t,t)}throw new Error("Unsupported random color mode")}static test(t){return"string"==typeof t&&(Y.test(t)||U.test(t))}cmyk(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=Math.min(1-n,1-i,1-s);return 1===o?new et(0,0,0,1,"cmyk"):new et((1-n-o)/(1-o),(1-i-o)/(1-o),(1-s-o)/(1-o),o,"cmyk")}hsl(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=Math.max(n,i,s),a=Math.min(n,i,s),h=(o+a)/2,u=o===a,c=o-a;return new et(360*(u?0:o===n?((i-s)/c+(i<s?6:0))/6:o===i?((s-n)/c+2)/6:o===s?((n-i)/c+4)/6:0),100*(u?0:h>.5?c/(2-o-a):c/(o+a)),100*h,"hsl")}init(t=0,e=0,r=0,n=0,i="rgb"){if(t=t||0,this.space)for(const t in this.space)delete this[this.space[t]];if("number"==typeof t)i="string"==typeof n?n:i,n="string"==typeof n?0:n,Object.assign(this,{_a:t,_b:e,_c:r,_d:n,space:i});else if(t instanceof Array)this.space=e||("string"==typeof t[3]?t[3]:t[4])||"rgb",Object.assign(this,{_a:t[0],_b:t[1],_c:t[2],_d:t[3]||0});else if(t instanceof Object){const r=function(t,e){const r=K(t,"rgb")?{_a:t.r,_b:t.g,_c:t.b,_d:0,space:"rgb"}:K(t,"xyz")?{_a:t.x,_b:t.y,_c:t.z,_d:0,space:"xyz"}:K(t,"hsl")?{_a:t.h,_b:t.s,_c:t.l,_d:0,space:"hsl"}:K(t,"lab")?{_a:t.l,_b:t.a,_c:t.b,_d:0,space:"lab"}:K(t,"lch")?{_a:t.l,_b:t.c,_c:t.h,_d:0,space:"lch"}:K(t,"cmyk")?{_a:t.c,_b:t.m,_c:t.y,_d:t.k,space:"cmyk"}:{_a:0,_b:0,_c:0,space:"rgb"};return r.space=e||r.space,r}(t,e);Object.assign(this,r)}else if("string"==typeof t)if(U.test(t)){const e=t.replace(G,""),[r,n,i]=F.exec(e).slice(1,4).map((t=>parseInt(t)));Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}else{if(!Y.test(t))throw Error("Unsupported string format, can't construct Color");{const e=t=>parseInt(t,16),[,r,n,i]=z.exec(function(t){return 4===t.length?["#",t.substring(1,2),t.substring(1,2),t.substring(2,3),t.substring(2,3),t.substring(3,4),t.substring(3,4)].join(""):t}(t)).map(e);Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}}const{_a:s,_b:o,_c:a,_d:h}=this,u="rgb"===this.space?{r:s,g:o,b:a}:"xyz"===this.space?{x:s,y:o,z:a}:"hsl"===this.space?{h:s,s:o,l:a}:"lab"===this.space?{l:s,a:o,b:a}:"lch"===this.space?{l:s,c:o,h:a}:"cmyk"===this.space?{c:s,m:o,y:a,k:h}:{};Object.assign(this,u)}lab(){const{x:t,y:e,z:r}=this.xyz();return new et(116*e-16,500*(t-e),200*(e-r),"lab")}lch(){const{l:t,a:e,b:r}=this.lab(),n=Math.sqrt(e**2+r**2);let i=180*Math.atan2(r,e)/Math.PI;return i<0&&(i*=-1,i=360-i),new et(t,n,i,"lch")}rgb(){if("rgb"===this.space)return this;if("lab"===(t=this.space)||"xyz"===t||"lch"===t){let{x:t,y:e,z:r}=this;if("lab"===this.space||"lch"===this.space){let{l:n,a:i,b:s}=this;if("lch"===this.space){const{c:t,h:e}=this,r=Math.PI/180;i=t*Math.cos(r*e),s=t*Math.sin(r*e)}const o=(n+16)/116,a=i/500+o,h=o-s/200,u=16/116,c=.008856,l=7.787;t=.95047*(a**3>c?a**3:(a-u)/l),e=1*(o**3>c?o**3:(o-u)/l),r=1.08883*(h**3>c?h**3:(h-u)/l)}const n=3.2406*t+-1.5372*e+-.4986*r,i=-.9689*t+1.8758*e+.0415*r,s=.0557*t+-.204*e+1.057*r,o=Math.pow,a=.0031308,h=n>a?1.055*o(n,1/2.4)-.055:12.92*n,u=i>a?1.055*o(i,1/2.4)-.055:12.92*i,c=s>a?1.055*o(s,1/2.4)-.055:12.92*s;return new et(255*h,255*u,255*c)}if("hsl"===this.space){let{h:t,s:e,l:r}=this;if(t/=360,e/=100,r/=100,0===e)return r*=255,new et(r,r,r);const n=r<.5?r*(1+e):r+e-r*e,i=2*r-n,s=255*tt(i,n,t+1/3),o=255*tt(i,n,t),a=255*tt(i,n,t-1/3);return new et(s,o,a)}if("cmyk"===this.space){const{c:t,m:e,y:r,k:n}=this,i=255*(1-Math.min(1,t*(1-n)+n)),s=255*(1-Math.min(1,e*(1-n)+n)),o=255*(1-Math.min(1,r*(1-n)+n));return new et(i,s,o)}return this;var t}toArray(){const{_a:t,_b:e,_c:r,_d:n,space:i}=this;return[t,e,r,n,i]}toHex(){const[t,e,r]=this._clamped().map(Z);return`#${t}${e}${r}`}toRgb(){const[t,e,r]=this._clamped();return`rgb(${t},${e},${r})`}toString(){return this.toHex()}xyz(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92,a=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92,h=s>.04045?Math.pow((s+.055)/1.055,2.4):s/12.92,u=(.4124*o+.3576*a+.1805*h)/.95047,c=(.2126*o+.7152*a+.0722*h)/1,l=(.0193*o+.1192*a+.9505*h)/1.08883,d=u>.008856?Math.pow(u,1/3):7.787*u+16/116,f=c>.008856?Math.pow(c,1/3):7.787*c+16/116,p=l>.008856?Math.pow(l,1/3):7.787*l+16/116;return new et(d,f,p,"xyz")}_clamped(){const{_a:t,_b:e,_c:r}=this.rgb(),{max:n,min:i,round:s}=Math;return[t,e,r].map((t=>n(0,i(s(t),255))))}}class rt{constructor(...t){this.init(...t)}clone(){return new rt(this)}init(t,e){const r=Array.isArray(t)?{x:t[0],y:t[1]}:"object"==typeof t?{x:t.x,y:t.y}:{x:t,y:e};return this.x=null==r.x?0:r.x,this.y=null==r.y?0:r.y,this}toArray(){return[this.x,this.y]}transform(t){return this.clone().transformO(t)}transformO(t){it.isMatrixLike(t)||(t=new it(t));const{x:e,y:r}=this;return this.x=t.a*e+t.c*r+t.e,this.y=t.b*e+t.d*r+t.f,this}}function nt(t,e,r){return Math.abs(e-t)<(r||1e-6)}class it{constructor(...t){this.init(...t)}static formatTransforms(t){const e="both"===t.flip||!0===t.flip,r=t.flip&&(e||"x"===t.flip)?-1:1,n=t.flip&&(e||"y"===t.flip)?-1:1,i=t.skew&&t.skew.length?t.skew[0]:isFinite(t.skew)?t.skew:isFinite(t.skewX)?t.skewX:0,s=t.skew&&t.skew.length?t.skew[1]:isFinite(t.skew)?t.skew:isFinite(t.skewY)?t.skewY:0,o=t.scale&&t.scale.length?t.scale[0]*r:isFinite(t.scale)?t.scale*r:isFinite(t.scaleX)?t.scaleX*r:r,a=t.scale&&t.scale.length?t.scale[1]*n:isFinite(t.scale)?t.scale*n:isFinite(t.scaleY)?t.scaleY*n:n,h=t.shear||0,u=t.rotate||t.theta||0,c=new rt(t.origin||t.around||t.ox||t.originX,t.oy||t.originY),l=c.x,d=c.y,f=new rt(t.position||t.px||t.positionX||NaN,t.py||t.positionY||NaN),p=f.x,m=f.y,g=new rt(t.translate||t.tx||t.translateX,t.ty||t.translateY),y=g.x,w=g.y,b=new rt(t.relative||t.rx||t.relativeX,t.ry||t.relativeY);return{scaleX:o,scaleY:a,skewX:i,skewY:s,shear:h,theta:u,rx:b.x,ry:b.y,tx:y,ty:w,ox:l,oy:d,px:p,py:m}}static fromArray(t){return{a:t[0],b:t[1],c:t[2],d:t[3],e:t[4],f:t[5]}}static isMatrixLike(t){return null!=t.a||null!=t.b||null!=t.c||null!=t.d||null!=t.e||null!=t.f}static matrixMultiply(t,e,r){const n=t.a*e.a+t.c*e.b,i=t.b*e.a+t.d*e.b,s=t.a*e.c+t.c*e.d,o=t.b*e.c+t.d*e.d,a=t.e+t.a*e.e+t.c*e.f,h=t.f+t.b*e.e+t.d*e.f;return r.a=n,r.b=i,r.c=s,r.d=o,r.e=a,r.f=h,r}around(t,e,r){return this.clone().aroundO(t,e,r)}aroundO(t,e,r){const n=t||0,i=e||0;return this.translateO(-n,-i).lmultiplyO(r).translateO(n,i)}clone(){return new it(this)}decompose(t=0,e=0){const r=this.a,n=this.b,i=this.c,s=this.d,o=this.e,a=this.f,h=r*s-n*i,u=h>0?1:-1,c=u*Math.sqrt(r*r+n*n),l=Math.atan2(u*n,u*r),d=180/Math.PI*l,f=Math.cos(l),p=Math.sin(l),m=(r*i+n*s)/h,g=i*c/(m*r-n)||s*c/(m*n+r);return{scaleX:c,scaleY:g,shear:m,rotate:d,translateX:o-t+t*f*c+e*(m*f*c-p*g),translateY:a-e+t*p*c+e*(m*p*c+f*g),originX:t,originY:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}equals(t){if(t===this)return!0;const e=new it(t);return nt(this.a,e.a)&&nt(this.b,e.b)&&nt(this.c,e.c)&&nt(this.d,e.d)&&nt(this.e,e.e)&&nt(this.f,e.f)}flip(t,e){return this.clone().flipO(t,e)}flipO(t,e){return"x"===t?this.scaleO(-1,1,e,0):"y"===t?this.scaleO(1,-1,0,e):this.scaleO(-1,-1,t,e||t)}init(t){const e=it.fromArray([1,0,0,1,0,0]);return t=t instanceof Nt?t.matrixify():"string"==typeof t?it.fromArray(t.split(Q).map(parseFloat)):Array.isArray(t)?it.fromArray(t):"object"==typeof t&&it.isMatrixLike(t)?t:"object"==typeof t?(new it).transform(t):6===arguments.length?it.fromArray([].slice.call(arguments)):e,this.a=null!=t.a?t.a:e.a,this.b=null!=t.b?t.b:e.b,this.c=null!=t.c?t.c:e.c,this.d=null!=t.d?t.d:e.d,this.e=null!=t.e?t.e:e.e,this.f=null!=t.f?t.f:e.f,this}inverse(){return this.clone().inverseO()}inverseO(){const t=this.a,e=this.b,r=this.c,n=this.d,i=this.e,s=this.f,o=t*n-e*r;if(!o)throw new Error("Cannot invert "+this);const a=n/o,h=-e/o,u=-r/o,c=t/o,l=-(a*i+u*s),d=-(h*i+c*s);return this.a=a,this.b=h,this.c=u,this.d=c,this.e=l,this.f=d,this}lmultiply(t){return this.clone().lmultiplyO(t)}lmultiplyO(t){const e=t instanceof it?t:new it(t);return it.matrixMultiply(e,this,this)}multiply(t){return this.clone().multiplyO(t)}multiplyO(t){const e=t instanceof it?t:new it(t);return it.matrixMultiply(this,e,this)}rotate(t,e,r){return this.clone().rotateO(t,e,r)}rotateO(t,e=0,r=0){t=p(t);const n=Math.cos(t),i=Math.sin(t),{a:s,b:o,c:a,d:h,e:u,f:c}=this;return this.a=s*n-o*i,this.b=o*n+s*i,this.c=a*n-h*i,this.d=h*n+a*i,this.e=u*n-c*i+r*i-e*n+e,this.f=c*n+u*i-e*i-r*n+r,this}scale(){return this.clone().scaleO(...arguments)}scaleO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t);const{a:i,b:s,c:o,d:a,e:h,f:u}=this;return this.a=i*t,this.b=s*e,this.c=o*t,this.d=a*e,this.e=h*t-r*t+r,this.f=u*e-n*e+n,this}shear(t,e,r){return this.clone().shearO(t,e,r)}shearO(t,e=0,r=0){const{a:n,b:i,c:s,d:o,e:a,f:h}=this;return this.a=n+i*t,this.c=s+o*t,this.e=a+h*t-r*t,this}skew(){return this.clone().skewO(...arguments)}skewO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t),t=p(t),e=p(e);const i=Math.tan(t),s=Math.tan(e),{a:o,b:a,c:h,d:u,e:c,f:l}=this;return this.a=o+a*i,this.b=a+o*s,this.c=h+u*i,this.d=u+h*s,this.e=c+l*i-n*i,this.f=l+c*s-r*s,this}skewX(t,e,r){return this.skew(t,0,e,r)}skewY(t,e,r){return this.skew(0,t,e,r)}toArray(){return[this.a,this.b,this.c,this.d,this.e,this.f]}toString(){return"matrix("+this.a+","+this.b+","+this.c+","+this.d+","+this.e+","+this.f+")"}transform(t){if(it.isMatrixLike(t))return new it(t).multiplyO(this);const e=it.formatTransforms(t),{x:r,y:n}=new rt(e.ox,e.oy).transform(this),i=(new it).translateO(e.rx,e.ry).lmultiplyO(this).translateO(-r,-n).scaleO(e.scaleX,e.scaleY).skewO(e.skewX,e.skewY).shearO(e.shear).rotateO(e.theta).translateO(r,n);if(isFinite(e.px)||isFinite(e.py)){const t=new rt(r,n).transform(i),s=isFinite(e.px)?e.px-t.x:0,o=isFinite(e.py)?e.py-t.y:0;i.translateO(s,o)}return i.translateO(e.tx,e.ty),i}translate(t,e){return this.clone().translateO(t,e)}translateO(t,e){return this.e+=t||0,this.f+=e||0,this}valueOf(){return{a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}}function st(){if(!st.nodes){const t=A().size(2,0);t.node.style.cssText=["opacity: 0","position: absolute","left: -100%","top: -100%","overflow: hidden"].join(";"),t.attr("focusable","false"),t.attr("aria-hidden","true");const e=t.path().node;st.nodes={svg:t,path:e}}if(!st.nodes.svg.node.parentNode){const t=M.document.body||M.document.documentElement;st.nodes.svg.addTo(t)}return st.nodes}function ot(t){return!(t.width||t.height||t.x||t.y)}D(it,"Matrix");class at{constructor(...t){this.init(...t)}addOffset(){return this.x+=M.window.pageXOffset,this.y+=M.window.pageYOffset,new at(this)}init(t){return t="string"==typeof t?t.split(Q).map(parseFloat):Array.isArray(t)?t:"object"==typeof t?[null!=t.left?t.left:t.x,null!=t.top?t.top:t.y,t.width,t.height]:4===arguments.length?[].slice.call(arguments):[0,0,0,0],this.x=t[0]||0,this.y=t[1]||0,this.width=this.w=t[2]||0,this.height=this.h=t[3]||0,this.x2=this.x+this.w,this.y2=this.y+this.h,this.cx=this.x+this.w/2,this.cy=this.y+this.h/2,this}isNulled(){return ot(this)}merge(t){const e=Math.min(this.x,t.x),r=Math.min(this.y,t.y),n=Math.max(this.x+this.width,t.x+t.width)-e,i=Math.max(this.y+this.height,t.y+t.height)-r;return new at(e,r,n,i)}toArray(){return[this.x,this.y,this.width,this.height]}toString(){return this.x+" "+this.y+" "+this.width+" "+this.height}transform(t){t instanceof it||(t=new it(t));let e=1/0,r=-1/0,n=1/0,i=-1/0;return[new rt(this.x,this.y),new rt(this.x2,this.y),new rt(this.x,this.y2),new rt(this.x2,this.y2)].forEach((function(s){s=s.transform(t),e=Math.min(e,s.x),r=Math.max(r,s.x),n=Math.min(n,s.y),i=Math.max(i,s.y)})),new at(e,n,r-e,i-n)}}function ht(t,e,r){let n;try{if(n=e(t.node),ot(n)&&(i=t.node)!==M.document&&!(M.document.documentElement.contains||function(t){for(;t.parentNode;)t=t.parentNode;return t===M.document}).call(M.document.documentElement,i))throw new Error("Element not in the dom")}catch(e){n=r(t)}var i;return n}c({viewbox:{viewbox(t,e,r,n){return null==t?new at(this.attr("viewBox")):this.attr("viewBox",new at(t,e,r,n))},zoom(t,e){let{width:r,height:n}=this.attr(["width","height"]);if((r||n)&&"string"!=typeof r&&"string"!=typeof n||(r=this.node.clientWidth,n=this.node.clientHeight),!r||!n)throw new Error("Impossible to get absolute width and height. Please provide an absolute width and height attribute on the zooming element");const i=this.viewbox(),s=r/i.width,o=n/i.height,a=Math.min(s,o);if(null==t)return a;let h=a/t;h===1/0&&(h=Number.MAX_SAFE_INTEGER/100),e=e||new rt(r/2/s+i.x,n/2/o+i.y);const u=new at(i).transform(new it({scale:h,origin:e}));return this.viewbox(u)}}}),D(at,"Box");class ut extends Array{constructor(t=[],...e){if(super(t,...e),"number"==typeof t)return this;this.length=0,this.push(...t)}}const ct=ut;L([ut],{each(t,...e){return"function"==typeof t?this.map(((e,r,n)=>t.call(e,e,r,n))):this.map((r=>r[t](...e)))},toArray(){return Array.prototype.concat.apply([],this)}});const lt=["toArray","constructor","each"];function dt(t,e){return new ct(f((e||M.document).querySelectorAll(t),(function(t){return T(t)})))}ut.extend=function(t){t=t.reduce(((t,e)=>(lt.includes(e)||"_"===e[0]||(e in Array.prototype&&(t["$"+e]=Array.prototype[e]),t[e]=function(...t){return this.each(e,...t)}),t)),{}),L([ut],t)};let ft=0;const pt={};function mt(t){let e=t.getEventHolder();return e===M.window&&(e=pt),e.events||(e.events={}),e.events}function gt(t){return t.getEventTarget()}function yt(t,e,r,n,i){const s=r.bind(n||t),o=A(t),a=mt(o),h=gt(o);e=Array.isArray(e)?e:e.split(Q),r._svgjsListenerId||(r._svgjsListenerId=++ft),e.forEach((function(t){const e=t.split(".")[0],n=t.split(".")[1]||"*";a[e]=a[e]||{},a[e][n]=a[e][n]||{},a[e][n][r._svgjsListenerId]=s,h.addEventListener(e,s,i||!1)}))}function wt(t,e,r,n){const i=A(t),s=mt(i),o=gt(i);("function"!=typeof r||(r=r._svgjsListenerId))&&(e=Array.isArray(e)?e:(e||"").split(Q)).forEach((function(t){const e=t&&t.split(".")[0],a=t&&t.split(".")[1];let h,u;if(r)s[e]&&s[e][a||"*"]&&(o.removeEventListener(e,s[e][a||"*"][r],n||!1),delete s[e][a||"*"][r]);else if(e&&a){if(s[e]&&s[e][a]){for(u in s[e][a])wt(o,[e,a].join("."),u);delete s[e][a]}}else if(a)for(t in s)for(h in s[t])a===h&&wt(o,[t,a].join("."));else if(e){if(s[e]){for(h in s[e])wt(o,[e,h].join("."));delete s[e]}}else{for(t in s)wt(o,t);!function(t){let e=t.getEventHolder();e===M.window&&(e=pt),e.events&&(e.events={})}(i)}}))}class bt extends O{addEventListener(){}dispatch(t,e,r){return function(t,e,r,n){const i=gt(t);return e instanceof M.window.Event||(e=new M.window.CustomEvent(e,{detail:r,cancelable:!0,...n})),i.dispatchEvent(e),e}(this,t,e,r)}dispatchEvent(t){const e=this.getEventHolder().events;if(!e)return!0;const r=e[t.type];for(const e in r)for(const n in r[e])r[e][n](t);return!t.defaultPrevented}fire(t,e,r){return this.dispatch(t,e,r),this}getEventHolder(){return this}getEventTarget(){return this}off(t,e,r){return wt(this,t,e,r),this}on(t,e,r,n){return yt(this,t,e,r,n),this}removeEventListener(){}}function xt(){}D(bt,"EventTarget");const vt={"fill-opacity":1,"stroke-opacity":1,"stroke-width":0,"stroke-linejoin":"miter","stroke-linecap":"butt",fill:"#000000",stroke:"#000000",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,"stop-opacity":1,"stop-color":"#000000","text-anchor":"start"};class _t extends Array{constructor(...t){super(...t),this.init(...t)}clone(){return new this.constructor(this)}init(t){return"number"==typeof t||(this.length=0,this.push(...this.parse(t))),this}parse(t=[]){return t instanceof Array?t:t.trim().split(Q).map(parseFloat)}toArray(){return Array.prototype.concat.apply([],this)}toSet(){return new Set(this)}toString(){return this.join(" ")}valueOf(){const t=[];return t.push(...this),t}}class St{constructor(...t){this.init(...t)}convert(t){return new St(this.value,t)}divide(t){return t=new St(t),new St(this/t,this.unit||t.unit)}init(t,e){return e=Array.isArray(t)?t[1]:e,t=Array.isArray(t)?t[0]:t,this.value=0,this.unit=e||"","number"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-34e37:34e37:"string"==typeof t?(e=t.match(R))&&(this.value=parseFloat(e[1]),"%"===e[5]?this.value/=100:"s"===e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof St&&(this.value=t.valueOf(),this.unit=t.unit),this}minus(t){return t=new St(t),new St(this-t,this.unit||t.unit)}plus(t){return t=new St(t),new St(this+t,this.unit||t.unit)}times(t){return t=new St(t),new St(this*t,this.unit||t.unit)}toArray(){return[this.value,this.unit]}toJSON(){return this.toString()}toString(){return("%"===this.unit?~~(1e8*this.value)/1e6:"s"===this.unit?this.value/1e3:this.value)+this.unit}valueOf(){return this.value}}const Mt=new Set(["fill","stroke","color","bgcolor","stop-color","flood-color","lighting-color"]),Ot=[];class Ct extends bt{constructor(t,e){super(),this.node=t,this.type=t.nodeName,e&&t!==e&&this.attr(e)}add(t,e){return(t=A(t)).removeNamespace&&this.node instanceof M.window.SVGElement&&t.removeNamespace(),null==e?this.node.appendChild(t.node):t.node!==this.node.childNodes[e]&&this.node.insertBefore(t.node,this.node.childNodes[e]),this}addTo(t,e){return A(t).put(this,e)}children(){return new ct(f(this.node.children,(function(t){return T(t)})))}clear(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return this}clone(t=!0,e=!0){this.writeDataToDom();let r=this.node.cloneNode(t);return e&&(r=I(r)),new this.constructor(r)}each(t,e){const r=this.children();let n,i;for(n=0,i=r.length;n<i;n++)t.apply(r[n],[n,r]),e&&r[n].each(t,e);return this}element(t,e){return this.put(new Ct(P(t),e))}first(){return T(this.node.firstChild)}get(t){return T(this.node.childNodes[t])}getEventHolder(){return this.node}getEventTarget(){return this.node}has(t){return this.index(t)>=0}html(t,e){return this.xml(t,e,"http://www.w3.org/1999/xhtml")}id(t){return void 0!==t||this.node.id||(this.node.id=B(this.type)),this.attr("id",t)}index(t){return[].slice.call(this.node.childNodes).indexOf(t.node)}last(){return T(this.node.lastChild)}matches(t){const e=this.node,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector||null;return r&&r.call(e,t)}parent(t){let e=this;if(!e.node.parentNode)return null;if(e=T(e.node.parentNode),!t)return e;do{if("string"==typeof t?e.matches(t):e instanceof t)return e}while(e=T(e.node.parentNode));return e}put(t,e){return t=A(t),this.add(t,e),t}putIn(t,e){return A(t).add(this,e)}remove(){return this.parent()&&this.parent().removeElement(this),this}removeElement(t){return this.node.removeChild(t.node),this}replace(t){return t=A(t),this.node.parentNode&&this.node.parentNode.replaceChild(t.node,this.node),t}round(t=2,e=null){const r=10**t,n=this.attr(e);for(const t in n)"number"==typeof n[t]&&(n[t]=Math.round(n[t]*r)/r);return this.attr(n),this}svg(t,e){return this.xml(t,e,v)}toString(){return this.id()}words(t){return this.node.textContent=t,this}wrap(t){const e=this.parent();if(!e)return this.addTo(t);const r=e.index(this);return e.put(t,r).put(this)}writeDataToDom(){return this.each((function(){this.writeDataToDom()})),this}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){e=null==e||e,this.writeDataToDom();let r=this;if(null!=t){if(r=T(r.node.cloneNode(!0)),e){const e=t(r);if(r=e||r,!1===e)return""}r.each((function(){const e=t(this),r=e||this;!1===e?this.remove():e&&this!==r&&this.replace(r)}),!0)}return e?r.node.outerHTML:r.node.innerHTML}e=null!=e&&e;const n=P("wrapper",r),i=M.document.createDocumentFragment();n.innerHTML=t;for(let t=n.children.length;t--;)i.appendChild(n.firstElementChild);const s=this.parent();return e?this.replace(i)&&s:this.add(i)}}L(Ct,{attr:function(t,e,r){if(null==t){t={},e=this.node.attributes;for(const r of e)t[r.nodeName]=$.test(r.nodeValue)?parseFloat(r.nodeValue):r.nodeValue;return t}if(t instanceof Array)return t.reduce(((t,e)=>(t[e]=this.attr(e),t)),{});if("object"==typeof t&&t.constructor===Object)for(e in t)this.attr(e,t[e]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?vt[t]:$.test(e)?parseFloat(e):e;"number"==typeof(e=Ot.reduce(((e,r)=>r(t,e,this)),e))?e=new St(e):Mt.has(t)&&et.isColor(e)?e=new et(e):e.constructor===Array&&(e=new _t(e)),"leading"===t?this.leading&&this.leading(e):"string"==typeof r?this.node.setAttributeNS(r,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||"font-size"!==t&&"x"!==t||this.rebuild()}return this},find:function(t){return dt(t,this.node)},findOne:function(t){return T(this.node.querySelector(t))}}),D(Ct,"Dom");class Nt extends Ct{constructor(t,e){super(t,e),this.dom={},this.node.instance=this,(t.hasAttribute("data-svgjs")||t.hasAttribute("svgjs:data"))&&this.setData(JSON.parse(t.getAttribute("data-svgjs"))??JSON.parse(t.getAttribute("svgjs:data"))??{})}center(t,e){return this.cx(t).cy(e)}cx(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)}cy(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)}defs(){const t=this.root();return t&&t.defs()}dmove(t,e){return this.dx(t).dy(e)}dx(t=0){return this.x(new St(t).plus(this.x()))}dy(t=0){return this.y(new St(t).plus(this.y()))}getEventHolder(){return this}height(t){return this.attr("height",t)}move(t,e){return this.x(t).y(e)}parents(t=this.root()){const e="string"==typeof t;e||(t=A(t));const r=new ct;let n=this;for(;(n=n.parent())&&n.node!==M.document&&"#document-fragment"!==n.nodeName&&(r.push(n),e||n.node!==t.node)&&(!e||!n.matches(t));)if(n.node===this.root().node)return null;return r}reference(t){if(!(t=this.attr(t)))return null;const e=(t+"").match(X);return e?A(e[1]):null}root(){const t=this.parent(C[N]);return t&&t.root()}setData(t){return this.dom=t,this}size(t,e){const r=g(this,t,e);return this.width(new St(r.width)).height(new St(r.height))}width(t){return this.attr("width",t)}writeDataToDom(){return x(this,this.dom),super.writeDataToDom()}x(t){return this.attr("x",t)}y(t){return this.attr("y",t)}}L(Nt,{bbox:function(){const t=ht(this,(t=>t.getBBox()),(t=>{try{const e=t.clone().addTo(st().svg).show(),r=e.node.getBBox();return e.remove(),r}catch(e){throw new Error(`Getting bbox of element "${t.node.nodeName}" is not possible: ${e.toString()}`)}}));return new at(t)},rbox:function(t){const e=ht(this,(t=>t.getBoundingClientRect()),(t=>{throw new Error(`Getting rbox of element "${t.node.nodeName}" is not possible`)})),r=new at(e);return t?r.transform(t.screenCTM().inverseO()):r.addOffset()},inside:function(t,e){const r=this.bbox();return t>r.x&&e>r.y&&t<r.x+r.width&&e<r.y+r.height},point:function(t,e){return new rt(t,e).transformO(this.screenCTM().inverseO())},ctm:function(){return new it(this.node.getCTM())},screenCTM:function(){try{if("function"==typeof this.isRoot&&!this.isRoot()){const t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new it(e)}return new it(this.node.getScreenCTM())}catch(t){return console.warn(`Cannot get CTM from SVG node ${this.node.nodeName}. Is the element rendered?`),new it}}}),D(Nt,"Element");const Pt={stroke:["color","width","opacity","linecap","linejoin","miterlimit","dasharray","dashoffset"],fill:["color","opacity","rule"],prefix:function(t,e){return"color"===e?t:t+"-"+e}};["fill","stroke"].forEach((function(t){const e={};let r;e[t]=function(e){if(void 0===e)return this.attr(t);if("string"==typeof e||e instanceof et||et.isRgb(e)||e instanceof Nt)this.attr(t,e);else for(r=Pt[t].length-1;r>=0;r--)null!=e[Pt[t][r]]&&this.attr(Pt.prefix(t,Pt[t][r]),e[Pt[t][r]]);return this},c(["Element","Runner"],e)})),c(["Element","Runner"],{matrix:function(t,e,r,n,i,s){return null==t?new it(this):this.attr("transform",new it(t,e,r,n,i,s))},rotate:function(t,e,r){return this.transform({rotate:t,ox:e,oy:r},!0)},skew:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({skew:t,ox:e,oy:r},!0):this.transform({skew:[t,e],ox:r,oy:n},!0)},shear:function(t,e,r){return this.transform({shear:t,ox:e,oy:r},!0)},scale:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({scale:t,ox:e,oy:r},!0):this.transform({scale:[t,e],ox:r,oy:n},!0)},translate:function(t,e){return this.transform({translate:[t,e]},!0)},relative:function(t,e){return this.transform({relative:[t,e]},!0)},flip:function(t="both",e="center"){return-1==="xybothtrue".indexOf(t)&&(e=t,t="both"),this.transform({flip:t,origin:e},!0)},opacity:function(t){return this.attr("opacity",t)}}),c("radius",{radius:function(t,e=t){return"radialGradient"===(this._element||this).type?this.attr("r",new St(t)):this.rx(t).ry(e)}}),c("Path",{length:function(){return this.node.getTotalLength()},pointAt:function(t){return new rt(this.node.getPointAtLength(t))}}),c(["Element","Runner"],{font:function(t,e){if("object"==typeof t){for(e in t)this.font(e,t[e]);return this}return"leading"===t?this.leading(e):"anchor"===t?this.attr("text-anchor",e):"size"===t||"family"===t||"weight"===t||"stretch"===t||"variant"===t||"style"===t?this.attr("font-"+t,e):this.attr(t,e)}}),c("Element",["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","touchstart","touchmove","touchleave","touchend","touchcancel","contextmenu","wheel","pointerdown","pointermove","pointerup","pointerleave","pointercancel"].reduce((function(t,e){return t[e]=function(t){return null===t?this.off(e):this.on(e,t),this},t}),{})),c("Element",{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(q).slice(0,-1).map((function(t){const e=t.trim().split("(");return[e[0],e[1].split(Q).map((function(t){return parseFloat(t)}))]})).reverse().reduce((function(t,e){return"matrix"===e[0]?t.lmultiply(it.fromArray(e[1])):t[e[0]].apply(t,e[1])}),new it)},toParent:function(t,e){if(this===t)return this;if(b(this.node))return this.addTo(t,e);const r=this.screenCTM(),n=t.screenCTM().inverse();return this.addTo(t,e).untransform().transform(n.multiply(r)),this},toRoot:function(t){return this.toParent(this.root(),t)},transform:function(t,e){if(null==t||"string"==typeof t){const e=new it(this).decompose();return null==t?e:e[t]}it.isMatrixLike(t)||(t={...t,origin:y(t,this)});const r=new it(!0===e?this:e||!1).transform(t);return this.attr("transform",r)}});class At extends Nt{flatten(){return this.each((function(){if(this instanceof At)return this.flatten().ungroup()})),this}ungroup(t=this.parent(),e=t.index(this)){return e=-1===e?t.children().length:e,this.each((function(r,n){return n[n.length-r-1].toParent(t,e)})),this.remove()}}D(At,"Container");class Et extends At{constructor(t,e=t){super(E("defs",t),e)}flatten(){return this}ungroup(){return this}}D(Et,"Defs");class Tt extends Nt{}function jt(t){return this.attr("rx",t)}function Dt(t){return this.attr("ry",t)}function kt(t){return null==t?this.cx()-this.rx():this.cx(t+this.rx())}function Bt(t){return null==t?this.cy()-this.ry():this.cy(t+this.ry())}function It(t){return this.attr("cx",t)}function Lt(t){return this.attr("cy",t)}function Vt(t){return null==t?2*this.rx():this.rx(new St(t).divide(2))}function Rt(t){return null==t?2*this.ry():this.ry(new St(t).divide(2))}D(Tt,"Shape");class zt extends Tt{constructor(t,e=t){super(E("ellipse",t),e)}size(t,e){const r=g(this,t,e);return this.rx(new St(r.width).divide(2)).ry(new St(r.height).divide(2))}}L(zt,t),c("Container",{ellipse:V((function(t=0,e=t){return this.put(new zt).size(t,e).move(0,0)}))}),D(zt,"Ellipse");class Ft extends Ct{constructor(t=M.document.createDocumentFragment()){super(t)}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){const t=new Ct(P("wrapper",r));return t.add(this.node.cloneNode(!0)),t.xml(!1,r)}return super.xml(t,!1,r)}}D(Ft,"Fragment");const Xt=Ft;function qt(t,e){return"radialGradient"===(this._element||this).type?this.attr({fx:new St(t),fy:new St(e)}):this.attr({x1:new St(t),y1:new St(e)})}function Gt(t,e){return"radialGradient"===(this._element||this).type?this.attr({cx:new St(t),cy:new St(e)}):this.attr({x2:new St(t),y2:new St(e)})}class Yt extends At{constructor(t,e){super(E(t+"Gradient","string"==typeof t?null:t),e)}attr(t,e,r){return"transform"===t&&(t="gradientTransform"),super.attr(t,e,r)}bbox(){return new at}targets(){return dt("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}}L(Yt,e),c({Container:{gradient(...t){return this.defs().gradient(...t)}},Defs:{gradient:V((function(t,e){return this.put(new Yt(t)).update(e)}))}}),D(Yt,"Gradient");class Ut extends At{constructor(t,e=t){super(E("pattern",t),e)}attr(t,e,r){return"transform"===t&&(t="patternTransform"),super.attr(t,e,r)}bbox(){return new at}targets(){return dt("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}}c({Container:{pattern(...t){return this.defs().pattern(...t)}},Defs:{pattern:V((function(t,e,r){return this.put(new Ut).update(r).attr({x:0,y:0,width:t,height:e,patternUnits:"userSpaceOnUse"})}))}}),D(Ut,"Pattern");class Ht extends Tt{constructor(t,e=t){super(E("image",t),e)}load(t,e){if(!t)return this;const r=new M.window.Image;return yt(r,"load",(function(t){const n=this.parent(Ut);0===this.width()&&0===this.height()&&this.size(r.width,r.height),n instanceof Ut&&0===n.width()&&0===n.height()&&n.size(this.width(),this.height()),"function"==typeof e&&e.call(this,t)}),this),yt(r,"load error",(function(){wt(r)})),this.attr("href",r.src=t,S)}}var $t;$t=function(t,e,r){return"fill"!==t&&"stroke"!==t||W.test(e)&&(e=r.root().defs().image(e)),e instanceof Ht&&(e=r.root().defs().pattern(0,0,(t=>{t.add(e)}))),e},Ot.push($t),c({Container:{image:V((function(t,e){return this.put(new Ht).size(0,0).load(t,e)}))}}),D(Ht,"Image");class Wt extends _t{bbox(){let t=-1/0,e=-1/0,r=1/0,n=1/0;return this.forEach((function(i){t=Math.max(i[0],t),e=Math.max(i[1],e),r=Math.min(i[0],r),n=Math.min(i[1],n)})),new at(r,n,t-r,e-n)}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r=this.length-1;r>=0;r--)this[r]=[this[r][0]+t,this[r][1]+e];return this}parse(t=[0,0]){const e=[];(t=t instanceof Array?Array.prototype.concat.apply([],t):t.trim().split(Q).map(parseFloat)).length%2!=0&&t.pop();for(let r=0,n=t.length;r<n;r+=2)e.push([t[r],t[r+1]]);return e}size(t,e){let r;const n=this.bbox();for(r=this.length-1;r>=0;r--)n.width&&(this[r][0]=(this[r][0]-n.x)*t/n.width+n.x),n.height&&(this[r][1]=(this[r][1]-n.y)*e/n.height+n.y);return this}toLine(){return{x1:this[0][0],y1:this[0][1],x2:this[1][0],y2:this[1][1]}}toString(){const t=[];for(let e=0,r=this.length;e<r;e++)t.push(this[e].join(","));return t.join(" ")}transform(t){return this.clone().transformO(t)}transformO(t){it.isMatrixLike(t)||(t=new it(t));for(let e=this.length;e--;){const[r,n]=this[e];this[e][0]=t.a*r+t.c*n+t.e,this[e][1]=t.b*r+t.d*n+t.f}return this}}const Qt=Wt;function Jt(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}function Zt(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}function Kt(t){const e=this.bbox();return null==t?e.width:this.size(t,e.height)}function te(t){const e=this.bbox();return null==t?e.height:this.size(e.width,t)}class ee extends Tt{constructor(t,e=t){super(E("line",t),e)}array(){return new Wt([[this.attr("x1"),this.attr("y1")],[this.attr("x2"),this.attr("y2")]])}move(t,e){return this.attr(this.array().move(t,e).toLine())}plot(t,e,r,n){return null==t?this.array():(t=void 0!==e?{x1:t,y1:e,x2:r,y2:n}:new Wt(t).toLine(),this.attr(t))}size(t,e){const r=g(this,t,e);return this.attr(this.array().size(r.width,r.height).toLine())}}L(ee,i),c({Container:{line:V((function(...t){return ee.prototype.plot.apply(this.put(new ee),null!=t[0]?t:[0,0,0,0])}))}}),D(ee,"Line");class re extends At{constructor(t,e=t){super(E("marker",t),e)}height(t){return this.attr("markerHeight",t)}orient(t){return this.attr("orient",t)}ref(t,e){return this.attr("refX",t).attr("refY",e)}toString(){return"url(#"+this.id()+")"}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}width(t){return this.attr("markerWidth",t)}}function ne(t,e){return function(r){return null==r?this[t]:(this[t]=r,e&&e.call(this),this)}}c({Container:{marker(...t){return this.defs().marker(...t)}},Defs:{marker:V((function(t,e,r){return this.put(new re).size(t,e).ref(t/2,e/2).viewbox(0,0,t,e).attr("orient","auto").update(r)}))},marker:{marker(t,e,r,n){let i=["marker"];return"all"!==t&&i.push(t),i=i.join("-"),t=arguments[1]instanceof re?arguments[1]:this.defs().marker(e,r,n),this.attr(i,t)}}}),D(re,"Marker");const ie={"-":function(t){return t},"<>":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)},bezier:function(t,e,r,n){return function(i){return i<0?t>0?e/t*i:r>0?n/r*i:0:i>1?r<1?(1-n)/(1-r)*i+(n-r)/(1-r):t<1?(1-e)/(1-t)*i+(e-t)/(1-t):1:3*i*(1-i)**2*e+3*i**2*(1-i)*n+i**3}},steps:function(t,e="end"){e=e.split("-").reverse()[0];let r=t;return"none"===e?--r:"both"===e&&++r,(n,i=!1)=>{let s=Math.floor(n*t);const o=n*s%1==0;return"start"!==e&&"both"!==e||++s,i&&o&&--s,n>=0&&s<0&&(s=0),n<=1&&s>r&&(s=r),s/r}}};class se{done(){return!1}}class oe extends se{constructor(t=">"){super(),this.ease=ie[t]||t}step(t,e,r){return"number"!=typeof t?r<1?t:e:t+(e-t)*this.ease(r)}}class ae extends se{constructor(t){super(),this.stepper=t}done(t){return t.done}step(t,e,r,n){return this.stepper(t,e,r,n)}}function he(){const t=(this._duration||500)/1e3,e=this._overshoot||0,r=Math.PI,n=Math.log(e/100+1e-10),i=-n/Math.sqrt(r*r+n*n),s=3.9/(i*t);this.d=2*i*s,this.k=s*s}L(class extends ae{constructor(t=500,e=0){super(),this.duration(t).overshoot(e)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;r>100&&(r=16),r/=1e3;const i=n.velocity||0,s=-this.d*i-this.k*(t-e),o=t+i*r+s*r*r/2;return n.velocity=i+s*r,n.done=Math.abs(e-o)+Math.abs(i)<.002,n.done?e:o}},{duration:ne("_duration",he),overshoot:ne("_overshoot",he)}),L(class extends ae{constructor(t=.1,e=.01,r=0,n=1e3){super(),this.p(t).i(e).d(r).windup(n)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;const i=e-t;let s=(n.integral||0)+i*r;const o=(i-(n.error||0))/r,a=this._windup;return!1!==a&&(s=Math.max(-a,Math.min(s,a))),n.error=i,n.integral=s,n.done=Math.abs(i)<.001,n.done?e:t+(this.P*i+this.I*s+this.D*o)}},{windup:ne("_windup"),p:ne("P"),i:ne("I"),d:ne("D")});const ue={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0},ce={M:function(t,e,r){return e.x=r.x=t[0],e.y=r.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},S:function(t,e){return e.x=t[2],e.y=t[3],["S",t[0],t[1],t[2],t[3]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},T:function(t,e){return e.x=t[0],e.y=t[1],["T",t[0],t[1]]},Z:function(t,e,r){return e.x=r.x,e.y=r.y,["Z"]},A:function(t,e){return e.x=t[5],e.y=t[6],["A",t[0],t[1],t[2],t[3],t[4],t[5],t[6]]}},le="mlhvqtcsaz".split("");for(let t=0,e=le.length;t<e;++t)ce[le[t]]=function(t){return function(e,r,n){if("H"===t)e[0]=e[0]+r.x;else if("V"===t)e[0]=e[0]+r.y;else if("A"===t)e[5]=e[5]+r.x,e[6]=e[6]+r.y;else for(let t=0,n=e.length;t<n;++t)e[t]=e[t]+(t%2?r.y:r.x);return ce[t](e,r,n)}}(le[t].toUpperCase());function de(t){return t.segment.length&&t.segment.length-1===ue[t.segment[0].toUpperCase()]}function fe(t,e){t.inNumber&&pe(t,!1);const r=J.test(e);if(r)t.segment=[e];else{const e=t.lastCommand,r=e.toLowerCase(),n=e===r;t.segment=["m"===r?n?"l":"L":e]}return t.inSegment=!0,t.lastCommand=t.segment[0],r}function pe(t,e){if(!t.inNumber)throw new Error("Parser Error");t.number&&t.segment.push(parseFloat(t.number)),t.inNumber=e,t.number="",t.pointSeen=!1,t.hasExponent=!1,de(t)&&me(t)}function me(t){t.inSegment=!1,t.absolute&&(t.segment=function(t){const e=t.segment[0];return ce[e](t.segment.slice(1),t.p,t.p0)}(t)),t.segments.push(t.segment)}function ge(t){if(!t.segment.length)return!1;const e="A"===t.segment[0].toUpperCase(),r=t.segment.length;return e&&(4===r||5===r)}function ye(t){return"E"===t.lastToken.toUpperCase()}const we=new Set([" ",",","\t","\n","\r","\f"]);class be extends _t{bbox(){return st().path.setAttribute("d",this.toString()),new at(st.nodes.path.getBBox())}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r,n=this.length-1;n>=0;n--)r=this[n][0],"M"===r||"L"===r||"T"===r?(this[n][1]+=t,this[n][2]+=e):"H"===r?this[n][1]+=t:"V"===r?this[n][1]+=e:"C"===r||"S"===r||"Q"===r?(this[n][1]+=t,this[n][2]+=e,this[n][3]+=t,this[n][4]+=e,"C"===r&&(this[n][5]+=t,this[n][6]+=e)):"A"===r&&(this[n][6]+=t,this[n][7]+=e);return this}parse(t="M0 0"){return Array.isArray(t)&&(t=Array.prototype.concat.apply([],t).toString()),function(t,e=!0){let r=0,n="";const i={segment:[],inNumber:!1,number:"",lastToken:"",inSegment:!1,segments:[],pointSeen:!1,hasExponent:!1,absolute:e,p0:new rt,p:new rt};for(;i.lastToken=n,n=t.charAt(r++);)if(i.inSegment||!fe(i,n))if("."!==n)if(isNaN(parseInt(n)))if(we.has(n))i.inNumber&&pe(i,!1);else if("-"!==n&&"+"!==n)if("E"!==n.toUpperCase()){if(J.test(n)){if(i.inNumber)pe(i,!1);else{if(!de(i))throw new Error("parser Error");me(i)}--r}}else i.number+=n,i.hasExponent=!0;else{if(i.inNumber&&!ye(i)){pe(i,!1),--r;continue}i.number+=n,i.inNumber=!0}else{if("0"===i.number||ge(i)){i.inNumber=!0,i.number=n,pe(i,!0);continue}i.inNumber=!0,i.number+=n}else{if(i.pointSeen||i.hasExponent){pe(i,!1),--r;continue}i.inNumber=!0,i.pointSeen=!0,i.number+=n}return i.inNumber&&pe(i,!1),i.inSegment&&de(i)&&me(i),i.segments}(t)}size(t,e){const r=this.bbox();let n,i;for(r.width=0===r.width?1:r.width,r.height=0===r.height?1:r.height,n=this.length-1;n>=0;n--)i=this[n][0],"M"===i||"L"===i||"T"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y):"H"===i?this[n][1]=(this[n][1]-r.x)*t/r.width+r.x:"V"===i?this[n][1]=(this[n][1]-r.y)*e/r.height+r.y:"C"===i||"S"===i||"Q"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y,this[n][3]=(this[n][3]-r.x)*t/r.width+r.x,this[n][4]=(this[n][4]-r.y)*e/r.height+r.y,"C"===i&&(this[n][5]=(this[n][5]-r.x)*t/r.width+r.x,this[n][6]=(this[n][6]-r.y)*e/r.height+r.y)):"A"===i&&(this[n][1]=this[n][1]*t/r.width,this[n][2]=this[n][2]*e/r.height,this[n][6]=(this[n][6]-r.x)*t/r.width+r.x,this[n][7]=(this[n][7]-r.y)*e/r.height+r.y);return this}toString(){return function(t){let e="";for(let r=0,n=t.length;r<n;r++)e+=t[r][0],null!=t[r][1]&&(e+=t[r][1],null!=t[r][2]&&(e+=" ",e+=t[r][2],null!=t[r][3]&&(e+=" ",e+=t[r][3],e+=" ",e+=t[r][4],null!=t[r][5]&&(e+=" ",e+=t[r][5],e+=" ",e+=t[r][6],null!=t[r][7]&&(e+=" ",e+=t[r][7])))));return e+" "}(this)}}const xe=t=>{const e=typeof t;return"number"===e?St:"string"===e?et.isColor(t)?et:Q.test(t)?J.test(t)?be:_t:R.test(t)?St:_e:Ce.indexOf(t.constructor)>-1?t.constructor:Array.isArray(t)?_t:"object"===e?Oe:_e};class ve{constructor(t){this._stepper=t||new oe("-"),this._from=null,this._to=null,this._type=null,this._context=null,this._morphObj=null}at(t){return this._morphObj.morph(this._from,this._to,t,this._stepper,this._context)}done(){return this._context.map(this._stepper.done).reduce((function(t,e){return t&&e}),!0)}from(t){return null==t?this._from:(this._from=this._set(t),this)}stepper(t){return null==t?this._stepper:(this._stepper=t,this)}to(t){return null==t?this._to:(this._to=this._set(t),this)}type(t){return null==t?this._type:(this._type=t,this)}_set(t){this._type||this.type(xe(t));let e=new this._type(t);return this._type===et&&(e=this._to?e[this._to[4]]():this._from?e[this._from[4]]():e),this._type===Oe&&(e=this._to?e.align(this._to):this._from?e.align(this._from):e),e=e.toConsumable(),this._morphObj=this._morphObj||new this._type,this._context=this._context||Array.apply(null,Array(e.length)).map(Object).map((function(t){return t.done=!0,t})),e}}class _e{constructor(...t){this.init(...t)}init(t){return t=Array.isArray(t)?t[0]:t,this.value=t,this}toArray(){return[this.value]}valueOf(){return this.value}}class Se{constructor(...t){this.init(...t)}init(t){return Array.isArray(t)&&(t={scaleX:t[0],scaleY:t[1],shear:t[2],rotate:t[3],translateX:t[4],translateY:t[5],originX:t[6],originY:t[7]}),Object.assign(this,Se.defaults,t),this}toArray(){const t=this;return[t.scaleX,t.scaleY,t.shear,t.rotate,t.translateX,t.translateY,t.originX,t.originY]}}Se.defaults={scaleX:1,scaleY:1,shear:0,rotate:0,translateX:0,translateY:0,originX:0,originY:0};const Me=(t,e)=>t[0]<e[0]?-1:t[0]>e[0]?1:0;class Oe{constructor(...t){this.init(...t)}align(t){const e=this.values;for(let r=0,n=e.length;r<n;++r){if(e[r+1]===t[r+1]){if(e[r+1]===et&&t[r+7]!==e[r+7]){const e=t[r+7],n=new et(this.values.splice(r+3,5))[e]().toArray();this.values.splice(r+3,0,...n)}r+=e[r+2]+2;continue}if(!t[r+1])return this;const n=(new t[r+1]).toArray(),i=e[r+2]+3;e.splice(r,i,t[r],t[r+1],t[r+2],...n),r+=e[r+2]+2}return this}init(t){if(this.values=[],Array.isArray(t))return void(this.values=t.slice());t=t||{};const e=[];for(const r in t){const n=xe(t[r]),i=new n(t[r]).toArray();e.push([r,n,i.length,...i])}return e.sort(Me),this.values=e.reduce(((t,e)=>t.concat(e)),[]),this}toArray(){return this.values}valueOf(){const t={},e=this.values;for(;e.length;){const r=e.shift(),n=e.shift(),i=e.shift(),s=e.splice(0,i);t[r]=new n(s)}return t}}const Ce=[_e,Se,Oe];class Ne extends Tt{constructor(t,e=t){super(E("path",t),e)}array(){return this._array||(this._array=new be(this.attr("d")))}clear(){return delete this._array,this}height(t){return null==t?this.bbox().height:this.size(this.bbox().width,t)}move(t,e){return this.attr("d",this.array().move(t,e))}plot(t){return null==t?this.array():this.clear().attr("d","string"==typeof t?t:this._array=new be(t))}size(t,e){const r=g(this,t,e);return this.attr("d",this.array().size(r.width,r.height))}width(t){return null==t?this.bbox().width:this.size(t,this.bbox().height)}x(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}y(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}}function Pe(){return this._array||(this._array=new Wt(this.attr("points")))}function Ae(){return delete this._array,this}function Ee(t,e){return this.attr("points",this.array().move(t,e))}function Te(t){return null==t?this.array():this.clear().attr("points","string"==typeof t?t:this._array=new Wt(t))}function je(t,e){const r=g(this,t,e);return this.attr("points",this.array().size(r.width,r.height))}Ne.prototype.MorphArray=be,c({Container:{path:V((function(t){return this.put(new Ne).plot(t||new be)}))}}),D(Ne,"Path");class De extends Tt{constructor(t,e=t){super(E("polygon",t),e)}}c({Container:{polygon:V((function(t){return this.put(new De).plot(t||new Wt)}))}}),L(De,i),L(De,s),D(De,"Polygon");class ke extends Tt{constructor(t,e=t){super(E("polyline",t),e)}}c({Container:{polyline:V((function(t){return this.put(new ke).plot(t||new Wt)}))}}),L(ke,i),L(ke,s),D(ke,"Polyline");class Be extends Tt{constructor(t,e=t){super(E("rect",t),e)}}L(Be,{rx:jt,ry:Dt}),c({Container:{rect:V((function(t,e){return this.put(new Be).size(t,e)}))}}),D(Be,"Rect");class Ie{constructor(){this._first=null,this._last=null}first(){return this._first&&this._first.value}last(){return this._last&&this._last.value}push(t){const e=void 0!==t.next?t:{value:t,next:null,prev:null};return this._last?(e.prev=this._last,this._last.next=e,this._last=e):(this._last=e,this._first=e),e}remove(t){t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t===this._last&&(this._last=t.prev),t===this._first&&(this._first=t.next),t.prev=null,t.next=null}shift(){const t=this._first;return t?(this._first=t.next,this._first&&(this._first.prev=null),this._last=this._first?this._last:null,t.value):null}}const Le={nextDraw:null,frames:new Ie,timeouts:new Ie,immediates:new Ie,timer:()=>M.window.performance||M.window.Date,transforms:[],frame(t){const e=Le.frames.push({run:t});return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),e},timeout(t,e){e=e||0;const r=Le.timer().now()+e,n=Le.timeouts.push({run:t,time:r});return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),n},immediate(t){const e=Le.immediates.push(t);return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),e},cancelFrame(t){null!=t&&Le.frames.remove(t)},clearTimeout(t){null!=t&&Le.timeouts.remove(t)},cancelImmediate(t){null!=t&&Le.immediates.remove(t)},_draw(t){let e=null;const r=Le.timeouts.last();for(;(e=Le.timeouts.shift())&&(t>=e.time?e.run():Le.timeouts.push(e),e!==r););let n=null;const i=Le.frames.last();for(;n!==i&&(n=Le.frames.shift());)n.run(t);let s=null;for(;s=Le.immediates.shift();)s();Le.nextDraw=Le.timeouts.first()||Le.frames.first()?M.window.requestAnimationFrame(Le._draw):null}},Ve=Le,Re=function(t){const e=t.start,r=t.runner.duration();return{start:e,duration:r,end:e+r,runner:t.runner}},ze=function(){const t=M.window;return(t.performance||t.Date).now()};class Fe extends bt{constructor(t=ze){super(),this._timeSource=t,this.terminate()}active(){return!!this._nextFrame}finish(){return this.time(this.getEndTimeOfTimeline()+1),this.pause()}getEndTime(){const t=this.getLastRunnerInfo(),e=t?t.runner.duration():0;return(t?t.start:this._time)+e}getEndTimeOfTimeline(){const t=this._runners.map((t=>t.start+t.runner.duration()));return Math.max(0,...t)}getLastRunnerInfo(){return this.getRunnerInfoById(this._lastRunnerId)}getRunnerInfoById(t){return this._runners[this._runnerIds.indexOf(t)]||null}pause(){return this._paused=!0,this._continue()}persist(t){return null==t?this._persist:(this._persist=t,this)}play(){return this._paused=!1,this.updateTime()._continue()}reverse(t){const e=this.speed();if(null==t)return this.speed(-e);const r=Math.abs(e);return this.speed(t?-r:r)}schedule(t,e,r){if(null==t)return this._runners.map(Re);let n=0;const i=this.getEndTime();if(e=e||0,null==r||"last"===r||"after"===r)n=i;else if("absolute"===r||"start"===r)n=e,e=0;else if("now"===r)n=this._time;else if("relative"===r){const r=this.getRunnerInfoById(t.id);r&&(n=r.start+e,e=0)}else{if("with-last"!==r)throw new Error('Invalid value for the "when" parameter');{const t=this.getLastRunnerInfo();n=t?t.start:this._time}}t.unschedule(),t.timeline(this);const s=t.persist(),o={persist:null===s?this._persist:s,start:n+e,runner:t};return this._lastRunnerId=t.id,this._runners.push(o),this._runners.sort(((t,e)=>t.start-e.start)),this._runnerIds=this._runners.map((t=>t.runner.id)),this.updateTime()._continue(),this}seek(t){return this.time(this._time+t)}source(t){return null==t?this._timeSource:(this._timeSource=t,this)}speed(t){return null==t?this._speed:(this._speed=t,this)}stop(){return this.time(0),this.pause()}time(t){return null==t?this._time:(this._time=t,this._continue(!0))}unschedule(t){const e=this._runnerIds.indexOf(t.id);return e<0||(this._runners.splice(e,1),this._runnerIds.splice(e,1),t.timeline(null)),this}updateTime(){return this.active()||(this._lastSourceTime=this._timeSource()),this}_continue(t=!1){return Ve.cancelFrame(this._nextFrame),this._nextFrame=null,t?this._stepImmediate():(this._paused||(this._nextFrame=Ve.frame(this._step)),this)}_stepFn(t=!1){const e=this._timeSource();let r=e-this._lastSourceTime;t&&(r=0);const n=this._speed*r+(this._time-this._lastStepTime);this._lastSourceTime=e,t||(this._time+=n,this._time=this._time<0?0:this._time),this._lastStepTime=this._time,this.fire("time",this._time);for(let t=this._runners.length;t--;){const e=this._runners[t],r=e.runner;this._time-e.start<=0&&r.reset()}let i=!1;for(let t=0,e=this._runners.length;t<e;t++){const r=this._runners[t],s=r.runner;let o=n;const a=this._time-r.start;a<=0?i=!0:(a<o&&(o=a),s.active()&&(s.step(o).done?!0!==r.persist&&s.duration()-s.time()+this._time+r.persist<this._time&&(s.unschedule(),--t,--e):i=!0))}return i&&!(this._speed<0&&0===this._time)||this._runnerIds.length&&this._speed<0&&this._time>0?this._continue():(this.pause(),this.fire("finished")),this}terminate(){this._startTime=0,this._speed=1,this._persist=0,this._nextFrame=null,this._paused=!0,this._runners=[],this._runnerIds=[],this._lastRunnerId=-1,this._time=0,this._lastSourceTime=0,this._lastStepTime=0,this._step=this._stepFn.bind(this,!1),this._stepImmediate=this._stepFn.bind(this,!0)}}c({Element:{timeline:function(t){return null==t?(this._timeline=this._timeline||new Fe,this._timeline):(this._timeline=t,this)}}});class Xe extends bt{constructor(t){super(),this.id=Xe.id++,t="function"==typeof(t=null==t?400:t)?new ae(t):t,this._element=null,this._timeline=null,this.done=!1,this._queue=[],this._duration="number"==typeof t&&t,this._isDeclarative=t instanceof ae,this._stepper=this._isDeclarative?t:new oe,this._history={},this.enabled=!0,this._time=0,this._lastTime=0,this._reseted=!0,this.transforms=new it,this.transformId=1,this._haveReversed=!1,this._reverse=!1,this._loopsDone=0,this._swing=!1,this._wait=0,this._times=1,this._frameId=null,this._persist=!!this._isDeclarative||null}static sanitise(t,e,r){let n=1,i=!1,s=0;return e=e??0,r=r||"last","object"!=typeof(t=t??400)||t instanceof se||(e=t.delay??e,r=t.when??r,i=t.swing||i,n=t.times??n,s=t.wait??s,t=t.duration??400),{duration:t,delay:e,swing:i,times:n,wait:s,when:r}}active(t){return null==t?this.enabled:(this.enabled=t,this)}addTransform(t){return this.transforms.lmultiplyO(t),this}after(t){return this.on("finished",t)}animate(t,e,r){const n=Xe.sanitise(t,e,r),i=new Xe(n.duration);return this._timeline&&i.timeline(this._timeline),this._element&&i.element(this._element),i.loop(n).schedule(n.delay,n.when)}clearTransform(){return this.transforms=new it,this}clearTransformsFromQueue(){this.done&&this._timeline&&this._timeline._runnerIds.includes(this.id)||(this._queue=this._queue.filter((t=>!t.isTransform)))}delay(t){return this.animate(0,t)}duration(){return this._times*(this._wait+this._duration)-this._wait}during(t){return this.queue(null,t)}ease(t){return this._stepper=new oe(t),this}element(t){return null==t?this._element:(this._element=t,t._prepareRunner(),this)}finish(){return this.step(1/0)}loop(t,e,r){return"object"==typeof t&&(e=t.swing,r=t.wait,t=t.times),this._times=t||1/0,this._swing=e||!1,this._wait=r||0,!0===this._times&&(this._times=1/0),this}loops(t){const e=this._duration+this._wait;if(null==t){const t=Math.floor(this._time/e),r=(this._time-t*e)/this._duration;return Math.min(t+r,this._times)}const r=t%1,n=e*Math.floor(t)+this._duration*r;return this.time(n)}persist(t){return null==t?this._persist:(this._persist=t,this)}position(t){const e=this._time,r=this._duration,n=this._wait,i=this._times,s=this._swing,o=this._reverse;let a;if(null==t){const t=function(t){const e=s*Math.floor(t%(2*(n+r))/(n+r)),i=e&&!o||!e&&o,a=Math.pow(-1,i)*(t%(n+r))/r+i;return Math.max(Math.min(a,1),0)},h=i*(n+r)-n;return a=e<=0?Math.round(t(1e-5)):e<h?t(e):Math.round(t(h-1e-5)),a}const h=Math.floor(this.loops()),u=s&&h%2==0;return a=h+(u&&!o||o&&u?t:1-t),this.loops(a)}progress(t){return null==t?Math.min(1,this._time/this.duration()):this.time(t*this.duration())}queue(t,e,r,n){return this._queue.push({initialiser:t||xt,runner:e||xt,retarget:r,isTransform:n,initialised:!1,finished:!1}),this.timeline()&&this.timeline()._continue(),this}reset(){return this._reseted||(this.time(0),this._reseted=!0),this}reverse(t){return this._reverse=null==t?!this._reverse:t,this}schedule(t,e,r){if(t instanceof Fe||(r=e,e=t,t=this.timeline()),!t)throw Error("Runner cannot be scheduled without timeline");return t.schedule(this,e,r),this}step(t){if(!this.enabled)return this;t=null==t?16:t,this._time+=t;const e=this.position(),r=this._lastPosition!==e&&this._time>=0;this._lastPosition=e;const n=this.duration(),i=this._lastTime<=0&&this._time>0,s=this._lastTime<n&&this._time>=n;this._lastTime=this._time,i&&this.fire("start",this);const o=this._isDeclarative;this.done=!o&&!s&&this._time>=n,this._reseted=!1;let a=!1;return(r||o)&&(this._initialise(r),this.transforms=new it,a=this._run(o?t:e),this.fire("step",this)),this.done=this.done||a&&o,s&&this.fire("finished",this),this}time(t){if(null==t)return this._time;const e=t-this._time;return this.step(e),this}timeline(t){return void 0===t?this._timeline:(this._timeline=t,this)}unschedule(){const t=this.timeline();return t&&t.unschedule(this),this}_initialise(t){if(t||this._isDeclarative)for(let e=0,r=this._queue.length;e<r;++e){const r=this._queue[e],n=this._isDeclarative||!r.initialised&&t;t=!r.finished,n&&t&&(r.initialiser.call(this),r.initialised=!0)}}_rememberMorpher(t,e){if(this._history[t]={morpher:e,caller:this._queue[this._queue.length-1]},this._isDeclarative){const t=this.timeline();t&&t.play()}}_run(t){let e=!0;for(let r=0,n=this._queue.length;r<n;++r){const n=this._queue[r],i=n.runner.call(this,t);n.finished=n.finished||!0===i,e=e&&n.finished}return e}_tryRetarget(t,e,r){if(this._history[t]){if(!this._history[t].caller.initialised){const e=this._queue.indexOf(this._history[t].caller);return this._queue.splice(e,1),!1}this._history[t].caller.retarget?this._history[t].caller.retarget.call(this,e,r):this._history[t].morpher.to(e),this._history[t].caller.finished=!1;const n=this.timeline();return n&&n.play(),!0}return!1}}Xe.id=0;class qe{constructor(t=new it,e=-1,r=!0){this.transforms=t,this.id=e,this.done=r}clearTransformsFromQueue(){}}L([Xe,qe],{mergeWith(t){return new qe(t.transforms.lmultiply(this.transforms),t.id)}});const Ge=(t,e)=>t.lmultiplyO(e),Ye=t=>t.transforms;function Ue(){const t=this._transformationRunners.runners.map(Ye).reduce(Ge,new it);this.transform(t),this._transformationRunners.merge(),1===this._transformationRunners.length()&&(this._frameId=null)}class He{constructor(){this.runners=[],this.ids=[]}add(t){if(this.runners.includes(t))return;const e=t.id+1;return this.runners.push(t),this.ids.push(e),this}clearBefore(t){const e=this.ids.indexOf(t+1)||1;return this.ids.splice(0,e,0),this.runners.splice(0,e,new qe).forEach((t=>t.clearTransformsFromQueue())),this}edit(t,e){const r=this.ids.indexOf(t+1);return this.ids.splice(r,1,t+1),this.runners.splice(r,1,e),this}getByID(t){return this.runners[this.ids.indexOf(t+1)]}length(){return this.ids.length}merge(){let t=null;for(let e=0;e<this.runners.length;++e){const r=this.runners[e];if(!(t&&r.done&&t.done)||r._timeline&&r._timeline._runnerIds.includes(r.id)||t._timeline&&t._timeline._runnerIds.includes(t.id))t=r;else{this.remove(r.id);const n=r.mergeWith(t);this.edit(t.id,n),t=n,--e}}return this}remove(t){const e=this.ids.indexOf(t+1);return this.ids.splice(e,1),this.runners.splice(e,1),this}}c({Element:{animate(t,e,r){const n=Xe.sanitise(t,e,r),i=this.timeline();return new Xe(n.duration).loop(n).element(this).timeline(i.play()).schedule(n.delay,n.when)},delay(t,e){return this.animate(0,t,e)},_clearTransformRunnersBefore(t){this._transformationRunners.clearBefore(t.id)},_currentTransform(t){return this._transformationRunners.runners.filter((e=>e.id<=t.id)).map(Ye).reduce(Ge,new it)},_addRunner(t){this._transformationRunners.add(t),Ve.cancelImmediate(this._frameId),this._frameId=Ve.immediate(Ue.bind(this))},_prepareRunner(){null==this._frameId&&(this._transformationRunners=(new He).add(new qe(new it(this))))}}}),L(Xe,{attr(t,e){return this.styleAttr("attr",t,e)},css(t,e){return this.styleAttr("css",t,e)},styleAttr(t,e,r){if("string"==typeof e)return this.styleAttr(t,{[e]:r});let n=e;if(this._tryRetarget(t,n))return this;let i=new ve(this._stepper).to(n),s=Object.keys(n);return this.queue((function(){i=i.from(this.element()[t](s))}),(function(e){return this.element()[t](i.at(e).valueOf()),i.done()}),(function(e){const r=Object.keys(e),o=(a=s,r.filter((t=>!a.includes(t))));var a;if(o.length){const e=this.element()[t](o),r=new Oe(i.from()).valueOf();Object.assign(r,e),i.from(r)}const h=new Oe(i.to()).valueOf();Object.assign(h,e),i.to(h),s=r,n=e})),this._rememberMorpher(t,i),this},zoom(t,e){if(this._tryRetarget("zoom",t,e))return this;let r=new ve(this._stepper).to(new St(t));return this.queue((function(){r=r.from(this.element().zoom())}),(function(t){return this.element().zoom(r.at(t),e),r.done()}),(function(t,n){e=n,r.to(t)})),this._rememberMorpher("zoom",r),this},transform(t,e,r){if(e=t.relative||e,this._isDeclarative&&!e&&this._tryRetarget("transform",t))return this;const n=it.isMatrixLike(t);r=null!=t.affine?t.affine:null!=r?r:!n;const i=new ve(this._stepper).type(r?Se:it);let s,o,a,h,u;return this.queue((function(){o=o||this.element(),s=s||y(t,o),u=new it(e?void 0:o),o._addRunner(this),e||o._clearTransformRunnersBefore(this)}),(function(c){e||this.clearTransform();const{x:l,y:d}=new rt(s).transform(o._currentTransform(this));let f=new it({...t,origin:[l,d]}),p=this._isDeclarative&&a?a:u;if(r){f=f.decompose(l,d),p=p.decompose(l,d);const t=f.rotate,e=p.rotate,r=[t-360,t,t+360],n=r.map((t=>Math.abs(t-e))),i=Math.min(...n),s=n.indexOf(i);f.rotate=r[s]}e&&(n||(f.rotate=t.rotate||0),this._isDeclarative&&h&&(p.rotate=h)),i.from(p),i.to(f);const m=i.at(c);return h=m.rotate,a=new it(m),this.addTransform(a),o._addRunner(this),i.done()}),(function(e){(e.origin||"center").toString()!==(t.origin||"center").toString()&&(s=y(e,o)),t={...e,origin:s}}),!0),this._isDeclarative&&this._rememberMorpher("transform",i),this},x(t){return this._queueNumber("x",t)},y(t){return this._queueNumber("y",t)},ax(t){return this._queueNumber("ax",t)},ay(t){return this._queueNumber("ay",t)},dx(t=0){return this._queueNumberDelta("x",t)},dy(t=0){return this._queueNumberDelta("y",t)},dmove(t,e){return this.dx(t).dy(e)},_queueNumberDelta(t,e){if(e=new St(e),this._tryRetarget(t,e))return this;const r=new ve(this._stepper).to(e);let n=null;return this.queue((function(){n=this.element()[t](),r.from(n),r.to(n+e)}),(function(e){return this.element()[t](r.at(e)),r.done()}),(function(t){r.to(n+new St(t))})),this._rememberMorpher(t,r),this},_queueObject(t,e){if(this._tryRetarget(t,e))return this;const r=new ve(this._stepper).to(e);return this.queue((function(){r.from(this.element()[t]())}),(function(e){return this.element()[t](r.at(e)),r.done()})),this._rememberMorpher(t,r),this},_queueNumber(t,e){return this._queueObject(t,new St(e))},cx(t){return this._queueNumber("cx",t)},cy(t){return this._queueNumber("cy",t)},move(t,e){return this.x(t).y(e)},amove(t,e){return this.ax(t).ay(e)},center(t,e){return this.cx(t).cy(e)},size(t,e){let r;return t&&e||(r=this._element.bbox()),t||(t=r.width/r.height*e),e||(e=r.height/r.width*t),this.width(t).height(e)},width(t){return this._queueNumber("width",t)},height(t){return this._queueNumber("height",t)},plot(t,e,r,n){if(4===arguments.length)return this.plot([t,e,r,n]);if(this._tryRetarget("plot",t))return this;const i=new ve(this._stepper).type(this._element.MorphArray).to(t);return this.queue((function(){i.from(this._element.array())}),(function(t){return this._element.plot(i.at(t)),i.done()})),this._rememberMorpher("plot",i),this},leading(t){return this._queueNumber("leading",t)},viewbox(t,e,r,n){return this._queueObject("viewbox",new at(t,e,r,n))},update(t){return"object"!=typeof t?this.update({offset:arguments[0],color:arguments[1],opacity:arguments[2]}):(null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",t.offset),this)}}),L(Xe,{rx:jt,ry:Dt,from:qt,to:Gt}),D(Xe,"Runner");class $e extends At{constructor(t,e=t){super(E("svg",t),e),this.namespace()}defs(){return this.isRoot()?T(this.node.querySelector("defs"))||this.put(new Et):this.root().defs()}isRoot(){return!this.node.parentNode||!(this.node.parentNode instanceof M.window.SVGElement)&&"#document-fragment"!==this.node.parentNode.nodeName}namespace(){return this.isRoot()?this.attr({xmlns:v,version:"1.1"}).attr("xmlns:xlink",S,_):this.root().namespace()}removeNamespace(){return this.attr({xmlns:null,version:null}).attr("xmlns:xlink",null,_).attr("xmlns:svgjs",null,_)}root(){return this.isRoot()?this:super.root()}}c({Container:{nested:V((function(){return this.put(new $e)}))}}),D($e,"Svg",!0);class We extends At{constructor(t,e=t){super(E("symbol",t),e)}}function Qe(t){return!1===this._build&&this.clear(),this.node.appendChild(M.document.createTextNode(t)),this}function Je(){return this.node.getComputedTextLength()}function Ze(t,e=this.bbox()){return null==t?e.x:this.attr("x",this.attr("x")+t-e.x)}function Ke(t,e=this.bbox()){return null==t?e.y:this.attr("y",this.attr("y")+t-e.y)}function tr(t,e,r=this.bbox()){return this.x(t,r).y(e,r)}function er(t,e=this.bbox()){return null==t?e.cx:this.attr("x",this.attr("x")+t-e.cx)}function rr(t,e=this.bbox()){return null==t?e.cy:this.attr("y",this.attr("y")+t-e.cy)}function nr(t,e,r=this.bbox()){return this.cx(t,r).cy(e,r)}function ir(t){return this.attr("x",t)}function sr(t){return this.attr("y",t)}function or(t,e){return this.ax(t).ay(e)}function ar(t){return this._build=!!t,this}c({Container:{symbol:V((function(){return this.put(new We)}))}}),D(We,"Symbol");class hr extends Tt{constructor(t,e=t){super(E("text",t),e),this.dom.leading=this.dom.leading??new St(1.3),this._rebuild=!0,this._build=!1}leading(t){return null==t?this.dom.leading:(this.dom.leading=new St(t),this.rebuild())}rebuild(t){if("boolean"==typeof t&&(this._rebuild=t),this._rebuild){const t=this;let e=0;const r=this.dom.leading;this.each((function(n){if(b(this.node))return;const i=M.window.getComputedStyle(this.node).getPropertyValue("font-size"),s=r*new St(i);this.dom.newLined&&(this.attr("x",t.attr("x")),"\n"===this.text()?e+=s:(this.attr("dy",n?s+e:0),e=0))})),this.fire("rebuild")}return this}setData(t){return this.dom=t,this.dom.leading=new St(t.leading||1.3),this}writeDataToDom(){return x(this,this.dom,{leading:1.3}),this}text(t){if(void 0===t){const e=this.node.childNodes;let r=0;t="";for(let n=0,i=e.length;n<i;++n)"textPath"===e[n].nodeName||b(e[n])?0===n&&(r=n+1):(n!==r&&3!==e[n].nodeType&&!0===T(e[n]).dom.newLined&&(t+="\n"),t+=e[n].textContent);return t}if(this.clear().build(!0),"function"==typeof t)t.call(this,this);else for(let e=0,r=(t=(t+"").split("\n")).length;e<r;e++)this.newLine(t[e]);return this.build(!1).rebuild()}}L(hr,o),c({Container:{text:V((function(t=""){return this.put(new hr).text(t)})),plain:V((function(t=""){return this.put(new hr).plain(t)}))}}),D(hr,"Text");class ur extends Tt{constructor(t,e=t){super(E("tspan",t),e),this._build=!1}dx(t){return this.attr("dx",t)}dy(t){return this.attr("dy",t)}newLine(){this.dom.newLined=!0;const t=this.parent();if(!(t instanceof hr))return this;const e=t.index(this),r=M.window.getComputedStyle(this.node).getPropertyValue("font-size"),n=t.dom.leading*new St(r);return this.dy(e?n:0).attr("x",t.x())}text(t){return null==t?this.node.textContent+(this.dom.newLined?"\n":""):("function"==typeof t?(this.clear().build(!0),t.call(this,this),this.build(!1)):this.plain(t),this)}}L(ur,o),c({Tspan:{tspan:V((function(t=""){const e=new ur;return this._build||this.clear(),this.put(e).text(t)}))},Text:{newLine:function(t=""){return this.tspan(t).newLine()}}}),D(ur,"Tspan");class cr extends Tt{constructor(t,e=t){super(E("circle",t),e)}radius(t){return this.attr("r",t)}rx(t){return this.attr("r",t)}ry(t){return this.rx(t)}size(t){return this.radius(new St(t).divide(2))}}L(cr,{x:kt,y:Bt,cx:It,cy:Lt,width:Vt,height:Rt}),c({Container:{circle:V((function(t=0){return this.put(new cr).size(t).move(0,0)}))}}),D(cr,"Circle");class lr extends At{constructor(t,e=t){super(E("clipPath",t),e)}remove(){return this.targets().forEach((function(t){t.unclip()})),super.remove()}targets(){return dt("svg [clip-path*="+this.id()+"]")}}c({Container:{clip:V((function(){return this.defs().put(new lr)}))},Element:{clipper(){return this.reference("clip-path")},clipWith(t){const e=t instanceof lr?t:this.parent().clip().add(t);return this.attr("clip-path","url(#"+e.id()+")")},unclip(){return this.attr("clip-path",null)}}}),D(lr,"ClipPath");class dr extends Nt{constructor(t,e=t){super(E("foreignObject",t),e)}}function fr(t,e){return this.children().forEach((r=>{let n;try{n=r.node instanceof M.window.SVGSVGElement?new at(r.attr(["x","y","width","height"])):r.bbox()}catch(t){return}const i=new it(r),s=i.translate(t,e).transform(i.inverse()),o=new rt(n.x,n.y).transform(s);r.move(o.x,o.y)})),this}function pr(t){return this.dmove(t,0)}function mr(t){return this.dmove(0,t)}function gr(t,e=this.bbox()){return null==t?e.height:this.size(e.width,t,e)}function yr(t=0,e=0,r=this.bbox()){const n=t-r.x,i=e-r.y;return this.dmove(n,i)}function wr(t,e,r=this.bbox()){const n=g(this,t,e,r),i=n.width/r.width,s=n.height/r.height;return this.children().forEach((t=>{const e=new rt(r).transform(new it(t).inverse());t.scale(i,s,e.x,e.y)})),this}function br(t,e=this.bbox()){return null==t?e.width:this.size(t,e.height,e)}function xr(t,e=this.bbox()){return null==t?e.x:this.move(t,e.y,e)}function vr(t,e=this.bbox()){return null==t?e.y:this.move(e.x,t,e)}c({Container:{foreignObject:V((function(t,e){return this.put(new dr).size(t,e)}))}}),D(dr,"ForeignObject");class _r extends At{constructor(t,e=t){super(E("g",t),e)}}L(_r,a),c({Container:{group:V((function(){return this.put(new _r)}))}}),D(_r,"G");class Sr extends At{constructor(t,e=t){super(E("a",t),e)}target(t){return this.attr("target",t)}to(t){return this.attr("href",t,S)}}L(Sr,a),c({Container:{link:V((function(t){return this.put(new Sr).to(t)}))},Element:{unlink(){const t=this.linker();if(!t)return this;const e=t.parent();if(!e)return this.remove();const r=e.index(t);return e.add(this,r),t.remove(),this},linkTo(t){let e=this.linker();return e||(e=new Sr,this.wrap(e)),"function"==typeof t?t.call(e,e):e.to(t),this},linker(){const t=this.parent();return t&&"a"===t.node.nodeName.toLowerCase()?t:null}}}),D(Sr,"A");class Mr extends At{constructor(t,e=t){super(E("mask",t),e)}remove(){return this.targets().forEach((function(t){t.unmask()})),super.remove()}targets(){return dt("svg [mask*="+this.id()+"]")}}c({Container:{mask:V((function(){return this.defs().put(new Mr)}))},Element:{masker(){return this.reference("mask")},maskWith(t){const e=t instanceof Mr?t:this.parent().mask().add(t);return this.attr("mask","url(#"+e.id()+")")},unmask(){return this.attr("mask",null)}}}),D(Mr,"Mask");class Or extends Nt{constructor(t,e=t){super(E("stop",t),e)}update(t){return("number"==typeof t||t instanceof St)&&(t={offset:arguments[0],color:arguments[1],opacity:arguments[2]}),null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",new St(t.offset)),this}}c({Gradient:{stop:function(t,e,r){return this.put(new Or).update(t,e,r)}}}),D(Or,"Stop");class Cr extends Nt{constructor(t,e=t){super(E("style",t),e)}addText(t=""){return this.node.textContent+=t,this}font(t,e,r={}){return this.rule("@font-face",{fontFamily:t,src:e,...r})}rule(t,e){return this.addText(function(t,e){if(!t)return"";if(!e)return t;let r=t+"{";for(const t in e)r+=t.replace(/([A-Z])/g,(function(t,e){return"-"+e.toLowerCase()}))+":"+e[t]+";";return r+="}",r}(t,e))}}c("Dom",{style(t,e){return this.put(new Cr).rule(t,e)},fontface(t,e,r){return this.put(new Cr).font(t,e,r)}}),D(Cr,"Style");class Nr extends hr{constructor(t,e=t){super(E("textPath",t),e)}array(){const t=this.track();return t?t.array():null}plot(t){const e=this.track();let r=null;return e&&(r=e.plot(t)),null==t?r:this}track(){return this.reference("href")}}c({Container:{textPath:V((function(t,e){return t instanceof hr||(t=this.text(t)),t.path(e)}))},Text:{path:V((function(t,e=!0){const r=new Nr;let n;if(t instanceof Ne||(t=this.defs().path(t)),r.attr("href","#"+t,S),e)for(;n=this.node.firstChild;)r.node.appendChild(n);return this.put(r)})),textPath(){return this.findOne("textPath")}},Path:{text:V((function(t){return t instanceof hr||(t=(new hr).addTo(this.parent()).text(t)),t.path(this)})),targets(){return dt("svg textPath").filter((t=>(t.attr("href")||"").includes(this.id())))}}}),Nr.prototype.MorphArray=be,D(Nr,"TextPath");class Pr extends Tt{constructor(t,e=t){super(E("use",t),e)}use(t,e){return this.attr("href",(e||"")+"#"+t,S)}}c({Container:{use:V((function(t,e){return this.put(new Pr).use(t,e)}))}}),D(Pr,"Use"),L([$e,We,Ht,Ut,re],l("viewbox")),L([ee,ke,De,Ne],l("marker")),L(hr,l("Text")),L(Ne,l("Path")),L(Et,l("Defs")),L([hr,ur],l("Tspan")),L([Be,zt,Yt,Xe],l("radius")),L(bt,l("EventTarget")),L(Ct,l("Dom")),L(Nt,l("Element")),L(Tt,l("Shape")),L([At,Xt],l("Container")),L(Yt,l("Gradient")),L(Xe,l("Runner")),ct.extend([...new Set(u)]),function(t=[]){Ce.push(...[].concat(t))}([St,et,at,it,_t,Wt,be,rt]),L(Ce,{to(t){return(new ve).type(this.constructor).from(this.toArray()).to(t)},fromArray(t){return this.init(t),this},toConsumable(){return this.toArray()},morph(t,e,r,n,i){return this.fromArray(t.map((function(t,s){return n.step(t,e[s],r,i[s],i)})))}});var Ar=r(726),Er=r(725),Tr=r(854);const jr=["basePadding1","basePadding2"],Dr={basePadding1:"setBasePadding1",basePadding2:"setBasePadding2"};class kr{static between(t,e){let r=(new ee).node,n=new kr(r,t,e);return n.assignUUID(),n.set(kr.defaultValues),n.reposition(),n}constructor(t,e,r){this.line=t,this.base1=e,this.base2=r,this.cachedBasePadding1=(0,Er.distance)(this.point1,this.base1.centerPoint),this.cachedBasePadding2=(0,Er.distance)(this.point2,this.base2.centerPoint),e.centerPoint.addEventListener("move",(()=>this.reposition())),r.centerPoint.addEventListener("move",(()=>this.reposition()))}get basePair(){return[this.base1,this.base2]}get domNode(){return this.line}getAttribute(t){return this.domNode.getAttribute(t)}setAttribute(t,e){this.domNode.setAttribute(t,e)}setAttributes(t){if((0,Tr.isNonNullObject)(t))try{new ee(this.domNode).attr(t)}catch(t){}}get id(){return this.domNode.id}assignUUID(){(0,Ar.assignUUID)(this.domNode)}appendTo(t){t.appendChild(this.domNode)}remove(){this.domNode.remove()}isIn(t){return t.contains(this.domNode)&&t!==this.domNode}hasParent(){return!!this.domNode.parentNode}getTotalLength(){return this.domNode.getTotalLength()}getPointAtLength(t){return this.domNode.getPointAtLength(t)}get point1(){return{x:this.domNode.x1.baseVal.value,y:this.domNode.y1.baseVal.value}}get point2(){return{x:this.domNode.x2.baseVal.value,y:this.domNode.y2.baseVal.value}}get basePadding1(){return this.cachedBasePadding1}set basePadding1(t){this.cachedBasePadding1=t,this.reposition()}setBasePadding1(t){(0,Tr.isFiniteNumber)(t)&&(this.basePadding1=Math.max(0,t))}get basePadding2(){return this.cachedBasePadding2}set basePadding2(t){this.cachedBasePadding2=t,this.reposition()}setBasePadding2(t){(0,Tr.isFiniteNumber)(t)&&(this.basePadding2=Math.max(0,t))}isInverted(){return this.basePadding1+this.basePadding2>(0,Er.distance)(this.base1.centerPoint,this.base2.centerPoint)}set(t){try{this.setAttributes(t.attributes)}catch(t){}jr.forEach((e=>{try{this[Dr[e]](t[e])}catch(t){}}))}reposition(){let t=this.base1.centerPoint,e=this.base2.centerPoint,r=(0,Er.direction)(t,e);this.setAttribute("x1",`${t.x+this.basePadding1*Math.cos(r)}`),this.setAttribute("y1",`${t.y+this.basePadding1*Math.sin(r)}`),this.setAttribute("x2",""+(e.x-this.basePadding2*Math.cos(r))),this.setAttribute("y2",""+(e.y-this.basePadding2*Math.sin(r)))}}kr.defaultValues={attributes:{stroke:"#000000","stroke-width":"2"},basePadding1:6,basePadding2:6};var Br,Ir=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class Lr{constructor(t){Br.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,Br,t)}toJSONSerializable(){let t=Ir(this,Br,"f").id,e=Ir(this,Br,"f").base1.id,r=Ir(this,Br,"f").base2.id;if(!t)throw new Error("Straight bond ID is falsy.");if(!e)throw new Error("Base ID 1 is falsy.");if(!r)throw new Error("Base ID 2 is falsy.");return{id:t,baseID1:e,baseID2:r,basePadding1:Ir(this,Br,"f").basePadding1,basePadding2:Ir(this,Br,"f").basePadding2}}}Br=new WeakMap;var Vr,Rr,zr,Fr,Xr,qr,Gr,Yr,Ur,Hr,$r,Wr,Qr,Jr,Zr=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},Kr=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class tn{constructor(t,e){Vr.add(this),Rr.set(this,void 0),zr.set(this,void 0),Zr(this,Rr,t,"f"),Zr(this,zr,e,"f")}recreate(){let t=new kr(Kr(this,Vr,"a",qr),Kr(this,Vr,"a",Hr),Kr(this,Vr,"a",$r));try{t.basePadding1=Kr(this,Vr,"a",Qr)}catch(t){}try{t.basePadding2=Kr(this,Vr,"a",Jr)}catch(t){}return t}}Rr=new WeakMap,zr=new WeakMap,Vr=new WeakSet,Fr=function(t){let e=Kr(this,Rr,"f")[t];if(!e)throw new Error(`No ID with name "${t}" was saved.`);if("string"!=typeof e)throw new Error(`The ID with name "${t}" is not a string: ${e}.`);return e},Xr=function(){try{return Kr(this,Vr,"m",Fr).call(this,"id")}catch(t){return Kr(this,Vr,"m",Fr).call(this,"lineId")}},qr=function(){let t=Kr(this,Vr,"a",Xr),e=Kr(this,zr,"f").domNode.querySelector(`#${t}`);if(!e)throw new Error(`No DOM node in the drawing has the ID "${t}".`);if(!(e instanceof SVGLineElement))throw new Error(`The DOM node with ID "${t}" is not an SVG line element.`);return e},Gr=function(){try{return Kr(this,Vr,"m",Fr).call(this,"baseID1")}catch(t){return Kr(this,Vr,"m",Fr).call(this,"baseId1")}},Yr=function(){try{return Kr(this,Vr,"m",Fr).call(this,"baseID2")}catch(t){return Kr(this,Vr,"m",Fr).call(this,"baseId2")}},Ur=function(t){let e={1:Kr(this,Vr,"a",Gr),2:Kr(this,Vr,"a",Yr)}[t],r=[...Kr(this,zr,"f").bases].find((t=>t.id===e));if(!r)throw new Error(`No base in the drawing has the ID "${e}".`);return r},Hr=function(){return Kr(this,Vr,"m",Ur).call(this,1)},$r=function(){return Kr(this,Vr,"m",Ur).call(this,2)},Wr=function(t){let e=Kr(this,Rr,"f")[`basePadding${t}`];if("number"!=typeof e)throw new Error(`Saved base padding ${t} is not a number: ${e}.`);return e},Qr=function(){return Kr(this,Vr,"m",Wr).call(this,1)},Jr=function(){return Kr(this,Vr,"m",Wr).call(this,2)};class en{constructor(t,e){this.targetStraightBonds=t,new MutationObserver((t=>{let e=new Set([...this.targetStraightBonds].map((t=>t.domNode)));!t.some((t=>e.has(t.target)))||this.updateOpacities()})).observe(e,{attributes:!0,attributeFilter:["x1","y1","x2","y2"],subtree:!0})}updateOpacities(){[...this.targetStraightBonds].forEach((t=>{let e=t.isInverted()?"0":"1";t.setAttribute("opacity",e)}))}}})(),n})(),t.exports=e()},775:function(t){var e;e=()=>(()=>{var t={726:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t,e){for(let[r,n]of Object.entries(e))t.setAttribute(r,n)}t.r(e),t.d(e,{CoordinateSystem:()=>l,HorizontalClientScaling:()=>f,InnerXML:()=>b,OuterXML:()=>_,Scaling:()=>d,VerticalClientScaling:()=>p,assignUUID:()=>c,bringToFront:()=>m,sendToBack:()=>g,setAttributes:()=>r});const n={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};var i,s=new Uint8Array(16);function o(){if(!i&&!(i="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return i(s)}for(var a=[],h=0;h<256;++h)a.push((h+256).toString(16).slice(1));const u=function(t,e,r){if(n.randomUUID&&!e&&!t)return n.randomUUID();var i=(t=t||{}).random||(t.rng||o)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,e){r=r||0;for(var s=0;s<16;++s)e[r+s]=i[s];return e}return function(t,e=0){return(a[t[e+0]]+a[t[e+1]]+a[t[e+2]]+a[t[e+3]]+"-"+a[t[e+4]]+a[t[e+5]]+"-"+a[t[e+6]]+a[t[e+7]]+"-"+a[t[e+8]]+a[t[e+9]]+"-"+a[t[e+10]]+a[t[e+11]]+a[t[e+12]]+a[t[e+13]]+a[t[e+14]]+a[t[e+15]]).toLowerCase()}(i)};function c(t){t.id="uuid-"+u()}class l{constructor(t){this.targetSVGDoc=t}get width(){return this.targetSVGDoc.viewBox.baseVal.width}get height(){return this.targetSVGDoc.viewBox.baseVal.height}get minX(){return this.targetSVGDoc.viewBox.baseVal.x}get maxX(){return this.minX+this.width}get minY(){return this.targetSVGDoc.viewBox.baseVal.y}get maxY(){return this.minY+this.height}get horizontalScaling(){return this.targetSVGDoc.width.baseVal.value/this.width}get verticalScaling(){return this.targetSVGDoc.height.baseVal.value/this.height}setScaling(t){this.targetSVGDoc.setAttribute("width",""+t*this.width),this.targetSVGDoc.setAttribute("height",""+t*this.height)}get clientWidth(){return this.targetSVGDoc.getBoundingClientRect().width}get clientHeight(){return this.targetSVGDoc.getBoundingClientRect().height}get horizontalClientScaling(){return this.clientWidth/this.width}get verticalClientScaling(){return this.clientHeight/this.height}get minClientX(){return this.targetSVGDoc.getBoundingClientRect().x}get minClientY(){return this.targetSVGDoc.getBoundingClientRect().y}fromClientX(t){return this.minX+(t-this.minClientX)/this.horizontalClientScaling}fromClientY(t){return this.minY+(t-this.minClientY)/this.verticalClientScaling}fromClientCoordinates(t,e){return[this.fromClientX(t),this.fromClientY(e)]}fromClientPoint(t){return{x:this.fromClientX(t.x),y:this.fromClientY(t.y)}}toClientX(t){return this.minClientX+this.horizontalClientScaling*(t-this.minX)}toClientY(t){return this.minClientY+this.verticalClientScaling*(t-this.minY)}toClientCoordinates(t,e){return[this.toClientX(t),this.toClientY(e)]}toClientPoint(t){return{x:this.toClientX(t.x),y:this.toClientY(t.y)}}}class d{constructor(t){this.targetSVGDoc=t}set(t){let e=this.targetSVGDoc.viewBox.baseVal;this.targetSVGDoc.setAttribute("width",t*e.width+"px"),this.targetSVGDoc.setAttribute("height",t*e.height+"px")}}class f{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.width/e.width}}class p{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.height/e.height}}function m(t){let e=t.parentNode;e&&e.appendChild(t)}function g(t){let e=t.parentNode;e&&e.prepend(t)}var y,w=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class b{constructor(t){y.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,y,t)}toString(){return w(this,y,"f").innerHTML}set(t){w(this,y,"f").innerHTML=t}}y=new WeakMap;var x,v=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class _{constructor(t){x.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,x,t)}toString(){return v(this,x,"f").outerHTML}set(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");if(e.style.height="0px",document.body.append(e),e.innerHTML=t,!e.firstElementChild)throw new Error("Outer XML must encode an SVG element.");if(e.childNodes.length>1)throw new Error("Outer XML cannot encode multiple DOM nodes.");if(e.firstElementChild.tagName.toLowerCase()!=v(this,x,"f").tagName.toLowerCase())throw new Error("Outer XML must specify an SVG element with the same tag name as the target SVG element.");[...v(this,x,"f").attributes].forEach((t=>v(this,x,"f").removeAttribute(t.name))),[...e.firstElementChild.attributes].forEach((t=>v(this,x,"f").setAttribute(t.name,t.value))),v(this,x,"f").innerHTML=e.firstElementChild.innerHTML,e.remove()}}return x=new WeakMap,e})(),t.exports=e()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{BaseOutline:()=>e});var t=r(726);class e{static outlining(r){let n=document.createElementNS("http://www.w3.org/2000/svg","circle");(0,t.assignUUID)(n),n.setAttribute("cx",`${r.centerPoint.x}`),n.setAttribute("cy",`${r.centerPoint.y}`);let i=new e(n,r);return i.set(e.defaultValues.circle),i}constructor(t,e){this.domNode=t,this.owner=e,e.centerPoint.addEventListener("move",(()=>{t.setAttribute("cx",`${e.centerPoint.x}`),t.setAttribute("cy",`${e.centerPoint.y}`)}))}get id(){return this.domNode.id}getAttribute(t){return this.domNode.getAttribute(t)}setAttribute(t,e){this.domNode.setAttribute(t,e)}setAttributes(e){(0,t.setAttributes)(this.domNode,e)}set(t){t.attributes&&this.setAttributes(t.attributes)}}e.defaultValues={circle:{attributes:{r:"5.5",stroke:"#000000","stroke-width":"0","stroke-opacity":"1",fill:"#00ffff","fill-opacity":"1"}}}})(),n})(),t.exports=e()},358:function(t){var e;e=()=>(()=>{var t={731:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{CenterPoint:()=>u});var r,n,i,s,o,a=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},h=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class u{constructor(t){r.add(this),n.set(this,void 0),i.set(this,{move:[]}),s.set(this,void 0),a(this,n,t,"f"),a(this,s,new MutationObserver((()=>h(this,r,"m",o).call(this,"move"))),"f"),h(this,s,"f").observe(t,{attributes:!0,childList:!0,characterData:!0,subtree:!0})}get x(){let t=h(this,n,"f").getBBox();return t.x+t.width/2}set x(t){let e=this.x,r=[...h(this,n,"f").x.baseVal].map((t=>t.value));0!=r.length||r.push(0),r=r.map((r=>r+(t-e))),h(this,n,"f").setAttribute("x",r.join(", "))}get y(){let t=h(this,n,"f").getBBox();return t.y+t.height/2}set y(t){let e=this.y,r=[...h(this,n,"f").y.baseVal].map((t=>t.value));0!=r.length||r.push(0),r=r.map((r=>r+(t-e))),h(this,n,"f").setAttribute("y",r.join(", "))}addEventListener(t,e){h(this,i,"f")[t].push(e)}removeEventListener(t,e){h(this,i,"f")[t]=h(this,i,"f")[t].filter((t=>t!==e))}}return n=new WeakMap,i=new WeakMap,s=new WeakMap,r=new WeakSet,o=function(t){h(this,i,"f")[t].forEach((t=>t()))},e})(),t.exports=e()},726:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t,e){for(let[r,n]of Object.entries(e))t.setAttribute(r,n)}t.r(e),t.d(e,{CoordinateSystem:()=>l,HorizontalClientScaling:()=>f,InnerXML:()=>b,OuterXML:()=>_,Scaling:()=>d,VerticalClientScaling:()=>p,assignUUID:()=>c,bringToFront:()=>m,sendToBack:()=>g,setAttributes:()=>r});const n={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};var i,s=new Uint8Array(16);function o(){if(!i&&!(i="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return i(s)}for(var a=[],h=0;h<256;++h)a.push((h+256).toString(16).slice(1));const u=function(t,e,r){if(n.randomUUID&&!e&&!t)return n.randomUUID();var i=(t=t||{}).random||(t.rng||o)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,e){r=r||0;for(var s=0;s<16;++s)e[r+s]=i[s];return e}return function(t,e=0){return(a[t[e+0]]+a[t[e+1]]+a[t[e+2]]+a[t[e+3]]+"-"+a[t[e+4]]+a[t[e+5]]+"-"+a[t[e+6]]+a[t[e+7]]+"-"+a[t[e+8]]+a[t[e+9]]+"-"+a[t[e+10]]+a[t[e+11]]+a[t[e+12]]+a[t[e+13]]+a[t[e+14]]+a[t[e+15]]).toLowerCase()}(i)};function c(t){t.id="uuid-"+u()}class l{constructor(t){this.targetSVGDoc=t}get width(){return this.targetSVGDoc.viewBox.baseVal.width}get height(){return this.targetSVGDoc.viewBox.baseVal.height}get minX(){return this.targetSVGDoc.viewBox.baseVal.x}get maxX(){return this.minX+this.width}get minY(){return this.targetSVGDoc.viewBox.baseVal.y}get maxY(){return this.minY+this.height}get horizontalScaling(){return this.targetSVGDoc.width.baseVal.value/this.width}get verticalScaling(){return this.targetSVGDoc.height.baseVal.value/this.height}setScaling(t){this.targetSVGDoc.setAttribute("width",""+t*this.width),this.targetSVGDoc.setAttribute("height",""+t*this.height)}get clientWidth(){return this.targetSVGDoc.getBoundingClientRect().width}get clientHeight(){return this.targetSVGDoc.getBoundingClientRect().height}get horizontalClientScaling(){return this.clientWidth/this.width}get verticalClientScaling(){return this.clientHeight/this.height}get minClientX(){return this.targetSVGDoc.getBoundingClientRect().x}get minClientY(){return this.targetSVGDoc.getBoundingClientRect().y}fromClientX(t){return this.minX+(t-this.minClientX)/this.horizontalClientScaling}fromClientY(t){return this.minY+(t-this.minClientY)/this.verticalClientScaling}fromClientCoordinates(t,e){return[this.fromClientX(t),this.fromClientY(e)]}fromClientPoint(t){return{x:this.fromClientX(t.x),y:this.fromClientY(t.y)}}toClientX(t){return this.minClientX+this.horizontalClientScaling*(t-this.minX)}toClientY(t){return this.minClientY+this.verticalClientScaling*(t-this.minY)}toClientCoordinates(t,e){return[this.toClientX(t),this.toClientY(e)]}toClientPoint(t){return{x:this.toClientX(t.x),y:this.toClientY(t.y)}}}class d{constructor(t){this.targetSVGDoc=t}set(t){let e=this.targetSVGDoc.viewBox.baseVal;this.targetSVGDoc.setAttribute("width",t*e.width+"px"),this.targetSVGDoc.setAttribute("height",t*e.height+"px")}}class f{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.width/e.width}}class p{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.height/e.height}}function m(t){let e=t.parentNode;e&&e.appendChild(t)}function g(t){let e=t.parentNode;e&&e.prepend(t)}var y,w=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class b{constructor(t){y.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,y,t)}toString(){return w(this,y,"f").innerHTML}set(t){w(this,y,"f").innerHTML=t}}y=new WeakMap;var x,v=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class _{constructor(t){x.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,x,t)}toString(){return v(this,x,"f").outerHTML}set(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");if(e.style.height="0px",document.body.append(e),e.innerHTML=t,!e.firstElementChild)throw new Error("Outer XML must encode an SVG element.");if(e.childNodes.length>1)throw new Error("Outer XML cannot encode multiple DOM nodes.");if(e.firstElementChild.tagName.toLowerCase()!=v(this,x,"f").tagName.toLowerCase())throw new Error("Outer XML must specify an SVG element with the same tag name as the target SVG element.");[...v(this,x,"f").attributes].forEach((t=>v(this,x,"f").removeAttribute(t.name))),[...e.firstElementChild.attributes].forEach((t=>v(this,x,"f").setAttribute(t.name,t.value))),v(this,x,"f").innerHTML=e.firstElementChild.innerHTML,e.remove()}}return x=new WeakMap,e})(),t.exports=e()},986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>p,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function p(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Nucleobase:()=>jr,SavableNucleobase:()=>Br,SavedNucleobase:()=>qr});var t={};r.r(t),r.d(t,{cx:()=>It,cy:()=>Lt,height:()=>Rt,rx:()=>jt,ry:()=>Dt,width:()=>Vt,x:()=>kt,y:()=>Bt});var e={};r.r(e),r.d(e,{from:()=>qt,to:()=>Gt});var i={};r.r(i),r.d(i,{MorphArray:()=>Qt,height:()=>te,width:()=>Kt,x:()=>Jt,y:()=>Zt});var s={};r.r(s),r.d(s,{array:()=>Pe,clear:()=>Ae,move:()=>Ee,plot:()=>Te,size:()=>je});var o={};r.r(o),r.d(o,{amove:()=>or,ax:()=>ir,ay:()=>sr,build:()=>ar,center:()=>nr,cx:()=>er,cy:()=>rr,length:()=>Je,move:()=>tr,plain:()=>Qe,x:()=>Ze,y:()=>Ke});var a={};r.r(a),r.d(a,{dmove:()=>fr,dx:()=>pr,dy:()=>mr,height:()=>gr,move:()=>yr,size:()=>wr,width:()=>br,x:()=>xr,y:()=>vr});const h={},u=[];function c(t,e){if(Array.isArray(t))for(const r of t)c(r,e);else if("object"!=typeof t)d(Object.getOwnPropertyNames(e)),h[t]=Object.assign(h[t]||{},e);else for(const e in t)c(e,t[e])}function l(t){return h[t]||{}}function d(t){u.push(...t)}function f(t,e){let r;const n=t.length,i=[];for(r=0;r<n;r++)i.push(e(t[r]));return i}function p(t){return t%360*Math.PI/180}function m(t){return t.charAt(0).toUpperCase()+t.slice(1)}function g(t,e,r,n){return null!=e&&null!=r||(n=n||t.bbox(),null==e?e=n.width/n.height*r:null==r&&(r=n.height/n.width*e)),{width:e,height:r}}function y(t,e){const r=t.origin;let n=null!=t.ox?t.ox:null!=t.originX?t.originX:"center",i=null!=t.oy?t.oy:null!=t.originY?t.originY:"center";null!=r&&([n,i]=Array.isArray(r)?r:"object"==typeof r?[r.x,r.y]:[r,r]);const s="string"==typeof n,o="string"==typeof i;if(s||o){const{height:t,width:r,x:a,y:h}=e.bbox();s&&(n=n.includes("left")?a:n.includes("right")?a+r:a+r/2),o&&(i=i.includes("top")?h:i.includes("bottom")?h+t:h+t/2)}return[n,i]}const w=new Set(["desc","metadata","title"]),b=t=>w.has(t.nodeName),x=(t,e,r={})=>{const n={...e};for(const t in n)n[t].valueOf()===r[t]&&delete n[t];Object.keys(n).length?t.node.setAttribute("data-svgjs",JSON.stringify(n)):(t.node.removeAttribute("data-svgjs"),t.node.removeAttribute("svgjs:data"))},v="http://www.w3.org/2000/svg",_="http://www.w3.org/2000/xmlns/",S="http://www.w3.org/1999/xlink",M={window:"undefined"==typeof window?null:window,document:"undefined"==typeof document?null:document};class O{}const C={},N="___SYMBOL___ROOT___";function P(t,e=v){return M.document.createElementNS(e,t)}function A(t,e=!1){if(t instanceof O)return t;if("object"==typeof t)return j(t);if(null==t)return new C[N];if("string"==typeof t&&"<"!==t.charAt(0))return j(M.document.querySelector(t));const r=e?M.document.createElement("div"):P("svg");return r.innerHTML=t,t=j(r.firstChild),r.removeChild(r.firstChild),t}function E(t,e){return e&&(e instanceof M.window.Node||e.ownerDocument&&e instanceof e.ownerDocument.defaultView.Node)?e:P(t)}function T(t){if(!t)return null;if(t.instance instanceof O)return t.instance;if("#document-fragment"===t.nodeName)return new C.Fragment(t);let e=m(t.nodeName||"Dom");return"LinearGradient"===e||"RadialGradient"===e?e="Gradient":C[e]||(e="Dom"),new C[e](t)}let j=T;function D(t,e=t.name,r=!1){return C[e]=t,r&&(C[N]=t),d(Object.getOwnPropertyNames(t.prototype)),t}let k=1e3;function B(t){return"Svgjs"+m(t)+k++}function I(t){for(let e=t.children.length-1;e>=0;e--)I(t.children[e]);return t.id?(t.id=B(t.nodeName),t):t}function L(t,e){let r,n;for(n=(t=Array.isArray(t)?t:[t]).length-1;n>=0;n--)for(r in e)t[n].prototype[r]=e[r]}function V(t){return function(...e){const r=e[e.length-1];return!r||r.constructor!==Object||r instanceof Array?t.apply(this,e):t.apply(this,e.slice(0,-1)).attr(r)}}c("Dom",{siblings:function(){return this.parent().children()},position:function(){return this.parent().index(this)},next:function(){return this.siblings()[this.position()+1]},prev:function(){return this.siblings()[this.position()-1]},forward:function(){const t=this.position();return this.parent().add(this.remove(),t+1),this},backward:function(){const t=this.position();return this.parent().add(this.remove(),t?t-1:0),this},front:function(){return this.parent().add(this.remove()),this},back:function(){return this.parent().add(this.remove(),0),this},before:function(t){(t=A(t)).remove();const e=this.position();return this.parent().add(t,e),this},after:function(t){(t=A(t)).remove();const e=this.position();return this.parent().add(t,e+1),this},insertBefore:function(t){return(t=A(t)).before(this),this},insertAfter:function(t){return(t=A(t)).after(this),this}});const R=/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,z=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,F=/rgb\((\d+),(\d+),(\d+)\)/,X=/(#[a-z_][a-z0-9\-_]*)/i,q=/\)\s*,?\s*/,G=/\s/g,Y=/^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i,U=/^rgb\(/,H=/^(\s+)?$/,$=/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,W=/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,Q=/[\s,]+/,J=/[MLHVCSQTAZ]/i;function Z(t){const e=Math.round(t),r=Math.max(0,Math.min(255,e)).toString(16);return 1===r.length?"0"+r:r}function K(t,e){for(let r=e.length;r--;)if(null==t[e[r]])return!1;return!0}function tt(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}c("Dom",{classes:function(){const t=this.attr("class");return null==t?[]:t.trim().split(Q)},hasClass:function(t){return-1!==this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){const e=this.classes();e.push(t),this.attr("class",e.join(" "))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr("class",this.classes().filter((function(e){return e!==t})).join(" ")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)}}),c("Dom",{css:function(t,e){const r={};if(0===arguments.length)return this.node.style.cssText.split(/\s*;\s*/).filter((function(t){return!!t.length})).forEach((function(t){const e=t.split(/\s*:\s*/);r[e[0]]=e[1]})),r;if(arguments.length<2){if(Array.isArray(t)){for(const e of t){const t=e;r[e]=this.node.style.getPropertyValue(t)}return r}if("string"==typeof t)return this.node.style.getPropertyValue(t);if("object"==typeof t)for(const e in t)this.node.style.setProperty(e,null==t[e]||H.test(t[e])?"":t[e])}return 2===arguments.length&&this.node.style.setProperty(t,null==e||H.test(e)?"":e),this},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},visible:function(){return"none"!==this.css("display")}}),c("Dom",{data:function(t,e,r){if(null==t)return this.data(f(function(t){let e;const r=t.length,n=[];for(e=0;e<r;e++)0===t[e].nodeName.indexOf("data-")&&n.push(t[e]);return n}(this.node.attributes),(t=>t.nodeName.slice(5))));if(t instanceof Array){const e={};for(const r of t)e[r]=this.data(r);return e}if("object"==typeof t)for(e in t)this.data(e,t[e]);else if(arguments.length<2)try{return JSON.parse(this.attr("data-"+t))}catch(e){return this.attr("data-"+t)}else this.attr("data-"+t,null===e?null:!0===r||"string"==typeof e||"number"==typeof e?e:JSON.stringify(e));return this}}),c("Dom",{remember:function(t,e){if("object"==typeof arguments[0])for(const e in t)this.remember(e,t[e]);else{if(1===arguments.length)return this.memory()[t];this.memory()[t]=e}return this},forget:function(){if(0===arguments.length)this._memory={};else for(let t=arguments.length-1;t>=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory=this._memory||{}}});class et{constructor(...t){this.init(...t)}static isColor(t){return t&&(t instanceof et||this.isRgb(t)||this.test(t))}static isRgb(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b}static random(t="vibrant",e){const{random:r,round:n,sin:i,PI:s}=Math;if("vibrant"===t){const t=24*r()+57,e=38*r()+45,n=360*r();return new et(t,e,n,"lch")}if("sine"===t){const t=n(80*i(2*s*(e=null==e?r():e)/.5+.01)+150),o=n(50*i(2*s*e/.5+4.6)+200),a=n(100*i(2*s*e/.5+2.3)+150);return new et(t,o,a)}if("pastel"===t){const t=8*r()+86,e=17*r()+9,n=360*r();return new et(t,e,n,"lch")}if("dark"===t){const t=10+10*r(),e=50*r()+86,n=360*r();return new et(t,e,n,"lch")}if("rgb"===t){const t=255*r(),e=255*r(),n=255*r();return new et(t,e,n)}if("lab"===t){const t=100*r(),e=256*r()-128,n=256*r()-128;return new et(t,e,n,"lab")}if("grey"===t){const t=255*r();return new et(t,t,t)}throw new Error("Unsupported random color mode")}static test(t){return"string"==typeof t&&(Y.test(t)||U.test(t))}cmyk(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=Math.min(1-n,1-i,1-s);return 1===o?new et(0,0,0,1,"cmyk"):new et((1-n-o)/(1-o),(1-i-o)/(1-o),(1-s-o)/(1-o),o,"cmyk")}hsl(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=Math.max(n,i,s),a=Math.min(n,i,s),h=(o+a)/2,u=o===a,c=o-a;return new et(360*(u?0:o===n?((i-s)/c+(i<s?6:0))/6:o===i?((s-n)/c+2)/6:o===s?((n-i)/c+4)/6:0),100*(u?0:h>.5?c/(2-o-a):c/(o+a)),100*h,"hsl")}init(t=0,e=0,r=0,n=0,i="rgb"){if(t=t||0,this.space)for(const t in this.space)delete this[this.space[t]];if("number"==typeof t)i="string"==typeof n?n:i,n="string"==typeof n?0:n,Object.assign(this,{_a:t,_b:e,_c:r,_d:n,space:i});else if(t instanceof Array)this.space=e||("string"==typeof t[3]?t[3]:t[4])||"rgb",Object.assign(this,{_a:t[0],_b:t[1],_c:t[2],_d:t[3]||0});else if(t instanceof Object){const r=function(t,e){const r=K(t,"rgb")?{_a:t.r,_b:t.g,_c:t.b,_d:0,space:"rgb"}:K(t,"xyz")?{_a:t.x,_b:t.y,_c:t.z,_d:0,space:"xyz"}:K(t,"hsl")?{_a:t.h,_b:t.s,_c:t.l,_d:0,space:"hsl"}:K(t,"lab")?{_a:t.l,_b:t.a,_c:t.b,_d:0,space:"lab"}:K(t,"lch")?{_a:t.l,_b:t.c,_c:t.h,_d:0,space:"lch"}:K(t,"cmyk")?{_a:t.c,_b:t.m,_c:t.y,_d:t.k,space:"cmyk"}:{_a:0,_b:0,_c:0,space:"rgb"};return r.space=e||r.space,r}(t,e);Object.assign(this,r)}else if("string"==typeof t)if(U.test(t)){const e=t.replace(G,""),[r,n,i]=F.exec(e).slice(1,4).map((t=>parseInt(t)));Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}else{if(!Y.test(t))throw Error("Unsupported string format, can't construct Color");{const e=t=>parseInt(t,16),[,r,n,i]=z.exec(function(t){return 4===t.length?["#",t.substring(1,2),t.substring(1,2),t.substring(2,3),t.substring(2,3),t.substring(3,4),t.substring(3,4)].join(""):t}(t)).map(e);Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}}const{_a:s,_b:o,_c:a,_d:h}=this,u="rgb"===this.space?{r:s,g:o,b:a}:"xyz"===this.space?{x:s,y:o,z:a}:"hsl"===this.space?{h:s,s:o,l:a}:"lab"===this.space?{l:s,a:o,b:a}:"lch"===this.space?{l:s,c:o,h:a}:"cmyk"===this.space?{c:s,m:o,y:a,k:h}:{};Object.assign(this,u)}lab(){const{x:t,y:e,z:r}=this.xyz();return new et(116*e-16,500*(t-e),200*(e-r),"lab")}lch(){const{l:t,a:e,b:r}=this.lab(),n=Math.sqrt(e**2+r**2);let i=180*Math.atan2(r,e)/Math.PI;return i<0&&(i*=-1,i=360-i),new et(t,n,i,"lch")}rgb(){if("rgb"===this.space)return this;if("lab"===(t=this.space)||"xyz"===t||"lch"===t){let{x:t,y:e,z:r}=this;if("lab"===this.space||"lch"===this.space){let{l:n,a:i,b:s}=this;if("lch"===this.space){const{c:t,h:e}=this,r=Math.PI/180;i=t*Math.cos(r*e),s=t*Math.sin(r*e)}const o=(n+16)/116,a=i/500+o,h=o-s/200,u=16/116,c=.008856,l=7.787;t=.95047*(a**3>c?a**3:(a-u)/l),e=1*(o**3>c?o**3:(o-u)/l),r=1.08883*(h**3>c?h**3:(h-u)/l)}const n=3.2406*t+-1.5372*e+-.4986*r,i=-.9689*t+1.8758*e+.0415*r,s=.0557*t+-.204*e+1.057*r,o=Math.pow,a=.0031308,h=n>a?1.055*o(n,1/2.4)-.055:12.92*n,u=i>a?1.055*o(i,1/2.4)-.055:12.92*i,c=s>a?1.055*o(s,1/2.4)-.055:12.92*s;return new et(255*h,255*u,255*c)}if("hsl"===this.space){let{h:t,s:e,l:r}=this;if(t/=360,e/=100,r/=100,0===e)return r*=255,new et(r,r,r);const n=r<.5?r*(1+e):r+e-r*e,i=2*r-n,s=255*tt(i,n,t+1/3),o=255*tt(i,n,t),a=255*tt(i,n,t-1/3);return new et(s,o,a)}if("cmyk"===this.space){const{c:t,m:e,y:r,k:n}=this,i=255*(1-Math.min(1,t*(1-n)+n)),s=255*(1-Math.min(1,e*(1-n)+n)),o=255*(1-Math.min(1,r*(1-n)+n));return new et(i,s,o)}return this;var t}toArray(){const{_a:t,_b:e,_c:r,_d:n,space:i}=this;return[t,e,r,n,i]}toHex(){const[t,e,r]=this._clamped().map(Z);return`#${t}${e}${r}`}toRgb(){const[t,e,r]=this._clamped();return`rgb(${t},${e},${r})`}toString(){return this.toHex()}xyz(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92,a=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92,h=s>.04045?Math.pow((s+.055)/1.055,2.4):s/12.92,u=(.4124*o+.3576*a+.1805*h)/.95047,c=(.2126*o+.7152*a+.0722*h)/1,l=(.0193*o+.1192*a+.9505*h)/1.08883,d=u>.008856?Math.pow(u,1/3):7.787*u+16/116,f=c>.008856?Math.pow(c,1/3):7.787*c+16/116,p=l>.008856?Math.pow(l,1/3):7.787*l+16/116;return new et(d,f,p,"xyz")}_clamped(){const{_a:t,_b:e,_c:r}=this.rgb(),{max:n,min:i,round:s}=Math;return[t,e,r].map((t=>n(0,i(s(t),255))))}}class rt{constructor(...t){this.init(...t)}clone(){return new rt(this)}init(t,e){const r=Array.isArray(t)?{x:t[0],y:t[1]}:"object"==typeof t?{x:t.x,y:t.y}:{x:t,y:e};return this.x=null==r.x?0:r.x,this.y=null==r.y?0:r.y,this}toArray(){return[this.x,this.y]}transform(t){return this.clone().transformO(t)}transformO(t){it.isMatrixLike(t)||(t=new it(t));const{x:e,y:r}=this;return this.x=t.a*e+t.c*r+t.e,this.y=t.b*e+t.d*r+t.f,this}}function nt(t,e,r){return Math.abs(e-t)<(r||1e-6)}class it{constructor(...t){this.init(...t)}static formatTransforms(t){const e="both"===t.flip||!0===t.flip,r=t.flip&&(e||"x"===t.flip)?-1:1,n=t.flip&&(e||"y"===t.flip)?-1:1,i=t.skew&&t.skew.length?t.skew[0]:isFinite(t.skew)?t.skew:isFinite(t.skewX)?t.skewX:0,s=t.skew&&t.skew.length?t.skew[1]:isFinite(t.skew)?t.skew:isFinite(t.skewY)?t.skewY:0,o=t.scale&&t.scale.length?t.scale[0]*r:isFinite(t.scale)?t.scale*r:isFinite(t.scaleX)?t.scaleX*r:r,a=t.scale&&t.scale.length?t.scale[1]*n:isFinite(t.scale)?t.scale*n:isFinite(t.scaleY)?t.scaleY*n:n,h=t.shear||0,u=t.rotate||t.theta||0,c=new rt(t.origin||t.around||t.ox||t.originX,t.oy||t.originY),l=c.x,d=c.y,f=new rt(t.position||t.px||t.positionX||NaN,t.py||t.positionY||NaN),p=f.x,m=f.y,g=new rt(t.translate||t.tx||t.translateX,t.ty||t.translateY),y=g.x,w=g.y,b=new rt(t.relative||t.rx||t.relativeX,t.ry||t.relativeY);return{scaleX:o,scaleY:a,skewX:i,skewY:s,shear:h,theta:u,rx:b.x,ry:b.y,tx:y,ty:w,ox:l,oy:d,px:p,py:m}}static fromArray(t){return{a:t[0],b:t[1],c:t[2],d:t[3],e:t[4],f:t[5]}}static isMatrixLike(t){return null!=t.a||null!=t.b||null!=t.c||null!=t.d||null!=t.e||null!=t.f}static matrixMultiply(t,e,r){const n=t.a*e.a+t.c*e.b,i=t.b*e.a+t.d*e.b,s=t.a*e.c+t.c*e.d,o=t.b*e.c+t.d*e.d,a=t.e+t.a*e.e+t.c*e.f,h=t.f+t.b*e.e+t.d*e.f;return r.a=n,r.b=i,r.c=s,r.d=o,r.e=a,r.f=h,r}around(t,e,r){return this.clone().aroundO(t,e,r)}aroundO(t,e,r){const n=t||0,i=e||0;return this.translateO(-n,-i).lmultiplyO(r).translateO(n,i)}clone(){return new it(this)}decompose(t=0,e=0){const r=this.a,n=this.b,i=this.c,s=this.d,o=this.e,a=this.f,h=r*s-n*i,u=h>0?1:-1,c=u*Math.sqrt(r*r+n*n),l=Math.atan2(u*n,u*r),d=180/Math.PI*l,f=Math.cos(l),p=Math.sin(l),m=(r*i+n*s)/h,g=i*c/(m*r-n)||s*c/(m*n+r);return{scaleX:c,scaleY:g,shear:m,rotate:d,translateX:o-t+t*f*c+e*(m*f*c-p*g),translateY:a-e+t*p*c+e*(m*p*c+f*g),originX:t,originY:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}equals(t){if(t===this)return!0;const e=new it(t);return nt(this.a,e.a)&&nt(this.b,e.b)&&nt(this.c,e.c)&&nt(this.d,e.d)&&nt(this.e,e.e)&&nt(this.f,e.f)}flip(t,e){return this.clone().flipO(t,e)}flipO(t,e){return"x"===t?this.scaleO(-1,1,e,0):"y"===t?this.scaleO(1,-1,0,e):this.scaleO(-1,-1,t,e||t)}init(t){const e=it.fromArray([1,0,0,1,0,0]);return t=t instanceof Nt?t.matrixify():"string"==typeof t?it.fromArray(t.split(Q).map(parseFloat)):Array.isArray(t)?it.fromArray(t):"object"==typeof t&&it.isMatrixLike(t)?t:"object"==typeof t?(new it).transform(t):6===arguments.length?it.fromArray([].slice.call(arguments)):e,this.a=null!=t.a?t.a:e.a,this.b=null!=t.b?t.b:e.b,this.c=null!=t.c?t.c:e.c,this.d=null!=t.d?t.d:e.d,this.e=null!=t.e?t.e:e.e,this.f=null!=t.f?t.f:e.f,this}inverse(){return this.clone().inverseO()}inverseO(){const t=this.a,e=this.b,r=this.c,n=this.d,i=this.e,s=this.f,o=t*n-e*r;if(!o)throw new Error("Cannot invert "+this);const a=n/o,h=-e/o,u=-r/o,c=t/o,l=-(a*i+u*s),d=-(h*i+c*s);return this.a=a,this.b=h,this.c=u,this.d=c,this.e=l,this.f=d,this}lmultiply(t){return this.clone().lmultiplyO(t)}lmultiplyO(t){const e=t instanceof it?t:new it(t);return it.matrixMultiply(e,this,this)}multiply(t){return this.clone().multiplyO(t)}multiplyO(t){const e=t instanceof it?t:new it(t);return it.matrixMultiply(this,e,this)}rotate(t,e,r){return this.clone().rotateO(t,e,r)}rotateO(t,e=0,r=0){t=p(t);const n=Math.cos(t),i=Math.sin(t),{a:s,b:o,c:a,d:h,e:u,f:c}=this;return this.a=s*n-o*i,this.b=o*n+s*i,this.c=a*n-h*i,this.d=h*n+a*i,this.e=u*n-c*i+r*i-e*n+e,this.f=c*n+u*i-e*i-r*n+r,this}scale(){return this.clone().scaleO(...arguments)}scaleO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t);const{a:i,b:s,c:o,d:a,e:h,f:u}=this;return this.a=i*t,this.b=s*e,this.c=o*t,this.d=a*e,this.e=h*t-r*t+r,this.f=u*e-n*e+n,this}shear(t,e,r){return this.clone().shearO(t,e,r)}shearO(t,e=0,r=0){const{a:n,b:i,c:s,d:o,e:a,f:h}=this;return this.a=n+i*t,this.c=s+o*t,this.e=a+h*t-r*t,this}skew(){return this.clone().skewO(...arguments)}skewO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t),t=p(t),e=p(e);const i=Math.tan(t),s=Math.tan(e),{a:o,b:a,c:h,d:u,e:c,f:l}=this;return this.a=o+a*i,this.b=a+o*s,this.c=h+u*i,this.d=u+h*s,this.e=c+l*i-n*i,this.f=l+c*s-r*s,this}skewX(t,e,r){return this.skew(t,0,e,r)}skewY(t,e,r){return this.skew(0,t,e,r)}toArray(){return[this.a,this.b,this.c,this.d,this.e,this.f]}toString(){return"matrix("+this.a+","+this.b+","+this.c+","+this.d+","+this.e+","+this.f+")"}transform(t){if(it.isMatrixLike(t))return new it(t).multiplyO(this);const e=it.formatTransforms(t),{x:r,y:n}=new rt(e.ox,e.oy).transform(this),i=(new it).translateO(e.rx,e.ry).lmultiplyO(this).translateO(-r,-n).scaleO(e.scaleX,e.scaleY).skewO(e.skewX,e.skewY).shearO(e.shear).rotateO(e.theta).translateO(r,n);if(isFinite(e.px)||isFinite(e.py)){const t=new rt(r,n).transform(i),s=isFinite(e.px)?e.px-t.x:0,o=isFinite(e.py)?e.py-t.y:0;i.translateO(s,o)}return i.translateO(e.tx,e.ty),i}translate(t,e){return this.clone().translateO(t,e)}translateO(t,e){return this.e+=t||0,this.f+=e||0,this}valueOf(){return{a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}}function st(){if(!st.nodes){const t=A().size(2,0);t.node.style.cssText=["opacity: 0","position: absolute","left: -100%","top: -100%","overflow: hidden"].join(";"),t.attr("focusable","false"),t.attr("aria-hidden","true");const e=t.path().node;st.nodes={svg:t,path:e}}if(!st.nodes.svg.node.parentNode){const t=M.document.body||M.document.documentElement;st.nodes.svg.addTo(t)}return st.nodes}function ot(t){return!(t.width||t.height||t.x||t.y)}D(it,"Matrix");class at{constructor(...t){this.init(...t)}addOffset(){return this.x+=M.window.pageXOffset,this.y+=M.window.pageYOffset,new at(this)}init(t){return t="string"==typeof t?t.split(Q).map(parseFloat):Array.isArray(t)?t:"object"==typeof t?[null!=t.left?t.left:t.x,null!=t.top?t.top:t.y,t.width,t.height]:4===arguments.length?[].slice.call(arguments):[0,0,0,0],this.x=t[0]||0,this.y=t[1]||0,this.width=this.w=t[2]||0,this.height=this.h=t[3]||0,this.x2=this.x+this.w,this.y2=this.y+this.h,this.cx=this.x+this.w/2,this.cy=this.y+this.h/2,this}isNulled(){return ot(this)}merge(t){const e=Math.min(this.x,t.x),r=Math.min(this.y,t.y),n=Math.max(this.x+this.width,t.x+t.width)-e,i=Math.max(this.y+this.height,t.y+t.height)-r;return new at(e,r,n,i)}toArray(){return[this.x,this.y,this.width,this.height]}toString(){return this.x+" "+this.y+" "+this.width+" "+this.height}transform(t){t instanceof it||(t=new it(t));let e=1/0,r=-1/0,n=1/0,i=-1/0;return[new rt(this.x,this.y),new rt(this.x2,this.y),new rt(this.x,this.y2),new rt(this.x2,this.y2)].forEach((function(s){s=s.transform(t),e=Math.min(e,s.x),r=Math.max(r,s.x),n=Math.min(n,s.y),i=Math.max(i,s.y)})),new at(e,n,r-e,i-n)}}function ht(t,e,r){let n;try{if(n=e(t.node),ot(n)&&(i=t.node)!==M.document&&!(M.document.documentElement.contains||function(t){for(;t.parentNode;)t=t.parentNode;return t===M.document}).call(M.document.documentElement,i))throw new Error("Element not in the dom")}catch(e){n=r(t)}var i;return n}c({viewbox:{viewbox(t,e,r,n){return null==t?new at(this.attr("viewBox")):this.attr("viewBox",new at(t,e,r,n))},zoom(t,e){let{width:r,height:n}=this.attr(["width","height"]);if((r||n)&&"string"!=typeof r&&"string"!=typeof n||(r=this.node.clientWidth,n=this.node.clientHeight),!r||!n)throw new Error("Impossible to get absolute width and height. Please provide an absolute width and height attribute on the zooming element");const i=this.viewbox(),s=r/i.width,o=n/i.height,a=Math.min(s,o);if(null==t)return a;let h=a/t;h===1/0&&(h=Number.MAX_SAFE_INTEGER/100),e=e||new rt(r/2/s+i.x,n/2/o+i.y);const u=new at(i).transform(new it({scale:h,origin:e}));return this.viewbox(u)}}}),D(at,"Box");class ut extends Array{constructor(t=[],...e){if(super(t,...e),"number"==typeof t)return this;this.length=0,this.push(...t)}}const ct=ut;L([ut],{each(t,...e){return"function"==typeof t?this.map(((e,r,n)=>t.call(e,e,r,n))):this.map((r=>r[t](...e)))},toArray(){return Array.prototype.concat.apply([],this)}});const lt=["toArray","constructor","each"];function dt(t,e){return new ct(f((e||M.document).querySelectorAll(t),(function(t){return T(t)})))}ut.extend=function(t){t=t.reduce(((t,e)=>(lt.includes(e)||"_"===e[0]||(e in Array.prototype&&(t["$"+e]=Array.prototype[e]),t[e]=function(...t){return this.each(e,...t)}),t)),{}),L([ut],t)};let ft=0;const pt={};function mt(t){let e=t.getEventHolder();return e===M.window&&(e=pt),e.events||(e.events={}),e.events}function gt(t){return t.getEventTarget()}function yt(t,e,r,n,i){const s=r.bind(n||t),o=A(t),a=mt(o),h=gt(o);e=Array.isArray(e)?e:e.split(Q),r._svgjsListenerId||(r._svgjsListenerId=++ft),e.forEach((function(t){const e=t.split(".")[0],n=t.split(".")[1]||"*";a[e]=a[e]||{},a[e][n]=a[e][n]||{},a[e][n][r._svgjsListenerId]=s,h.addEventListener(e,s,i||!1)}))}function wt(t,e,r,n){const i=A(t),s=mt(i),o=gt(i);("function"!=typeof r||(r=r._svgjsListenerId))&&(e=Array.isArray(e)?e:(e||"").split(Q)).forEach((function(t){const e=t&&t.split(".")[0],a=t&&t.split(".")[1];let h,u;if(r)s[e]&&s[e][a||"*"]&&(o.removeEventListener(e,s[e][a||"*"][r],n||!1),delete s[e][a||"*"][r]);else if(e&&a){if(s[e]&&s[e][a]){for(u in s[e][a])wt(o,[e,a].join("."),u);delete s[e][a]}}else if(a)for(t in s)for(h in s[t])a===h&&wt(o,[t,a].join("."));else if(e){if(s[e]){for(h in s[e])wt(o,[e,h].join("."));delete s[e]}}else{for(t in s)wt(o,t);!function(t){let e=t.getEventHolder();e===M.window&&(e=pt),e.events&&(e.events={})}(i)}}))}class bt extends O{addEventListener(){}dispatch(t,e,r){return function(t,e,r,n){const i=gt(t);return e instanceof M.window.Event||(e=new M.window.CustomEvent(e,{detail:r,cancelable:!0,...n})),i.dispatchEvent(e),e}(this,t,e,r)}dispatchEvent(t){const e=this.getEventHolder().events;if(!e)return!0;const r=e[t.type];for(const e in r)for(const n in r[e])r[e][n](t);return!t.defaultPrevented}fire(t,e,r){return this.dispatch(t,e,r),this}getEventHolder(){return this}getEventTarget(){return this}off(t,e,r){return wt(this,t,e,r),this}on(t,e,r,n){return yt(this,t,e,r,n),this}removeEventListener(){}}function xt(){}D(bt,"EventTarget");const vt={"fill-opacity":1,"stroke-opacity":1,"stroke-width":0,"stroke-linejoin":"miter","stroke-linecap":"butt",fill:"#000000",stroke:"#000000",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,"stop-opacity":1,"stop-color":"#000000","text-anchor":"start"};class _t extends Array{constructor(...t){super(...t),this.init(...t)}clone(){return new this.constructor(this)}init(t){return"number"==typeof t||(this.length=0,this.push(...this.parse(t))),this}parse(t=[]){return t instanceof Array?t:t.trim().split(Q).map(parseFloat)}toArray(){return Array.prototype.concat.apply([],this)}toSet(){return new Set(this)}toString(){return this.join(" ")}valueOf(){const t=[];return t.push(...this),t}}class St{constructor(...t){this.init(...t)}convert(t){return new St(this.value,t)}divide(t){return t=new St(t),new St(this/t,this.unit||t.unit)}init(t,e){return e=Array.isArray(t)?t[1]:e,t=Array.isArray(t)?t[0]:t,this.value=0,this.unit=e||"","number"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-34e37:34e37:"string"==typeof t?(e=t.match(R))&&(this.value=parseFloat(e[1]),"%"===e[5]?this.value/=100:"s"===e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof St&&(this.value=t.valueOf(),this.unit=t.unit),this}minus(t){return t=new St(t),new St(this-t,this.unit||t.unit)}plus(t){return t=new St(t),new St(this+t,this.unit||t.unit)}times(t){return t=new St(t),new St(this*t,this.unit||t.unit)}toArray(){return[this.value,this.unit]}toJSON(){return this.toString()}toString(){return("%"===this.unit?~~(1e8*this.value)/1e6:"s"===this.unit?this.value/1e3:this.value)+this.unit}valueOf(){return this.value}}const Mt=new Set(["fill","stroke","color","bgcolor","stop-color","flood-color","lighting-color"]),Ot=[];class Ct extends bt{constructor(t,e){super(),this.node=t,this.type=t.nodeName,e&&t!==e&&this.attr(e)}add(t,e){return(t=A(t)).removeNamespace&&this.node instanceof M.window.SVGElement&&t.removeNamespace(),null==e?this.node.appendChild(t.node):t.node!==this.node.childNodes[e]&&this.node.insertBefore(t.node,this.node.childNodes[e]),this}addTo(t,e){return A(t).put(this,e)}children(){return new ct(f(this.node.children,(function(t){return T(t)})))}clear(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return this}clone(t=!0,e=!0){this.writeDataToDom();let r=this.node.cloneNode(t);return e&&(r=I(r)),new this.constructor(r)}each(t,e){const r=this.children();let n,i;for(n=0,i=r.length;n<i;n++)t.apply(r[n],[n,r]),e&&r[n].each(t,e);return this}element(t,e){return this.put(new Ct(P(t),e))}first(){return T(this.node.firstChild)}get(t){return T(this.node.childNodes[t])}getEventHolder(){return this.node}getEventTarget(){return this.node}has(t){return this.index(t)>=0}html(t,e){return this.xml(t,e,"http://www.w3.org/1999/xhtml")}id(t){return void 0!==t||this.node.id||(this.node.id=B(this.type)),this.attr("id",t)}index(t){return[].slice.call(this.node.childNodes).indexOf(t.node)}last(){return T(this.node.lastChild)}matches(t){const e=this.node,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector||null;return r&&r.call(e,t)}parent(t){let e=this;if(!e.node.parentNode)return null;if(e=T(e.node.parentNode),!t)return e;do{if("string"==typeof t?e.matches(t):e instanceof t)return e}while(e=T(e.node.parentNode));return e}put(t,e){return t=A(t),this.add(t,e),t}putIn(t,e){return A(t).add(this,e)}remove(){return this.parent()&&this.parent().removeElement(this),this}removeElement(t){return this.node.removeChild(t.node),this}replace(t){return t=A(t),this.node.parentNode&&this.node.parentNode.replaceChild(t.node,this.node),t}round(t=2,e=null){const r=10**t,n=this.attr(e);for(const t in n)"number"==typeof n[t]&&(n[t]=Math.round(n[t]*r)/r);return this.attr(n),this}svg(t,e){return this.xml(t,e,v)}toString(){return this.id()}words(t){return this.node.textContent=t,this}wrap(t){const e=this.parent();if(!e)return this.addTo(t);const r=e.index(this);return e.put(t,r).put(this)}writeDataToDom(){return this.each((function(){this.writeDataToDom()})),this}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){e=null==e||e,this.writeDataToDom();let r=this;if(null!=t){if(r=T(r.node.cloneNode(!0)),e){const e=t(r);if(r=e||r,!1===e)return""}r.each((function(){const e=t(this),r=e||this;!1===e?this.remove():e&&this!==r&&this.replace(r)}),!0)}return e?r.node.outerHTML:r.node.innerHTML}e=null!=e&&e;const n=P("wrapper",r),i=M.document.createDocumentFragment();n.innerHTML=t;for(let t=n.children.length;t--;)i.appendChild(n.firstElementChild);const s=this.parent();return e?this.replace(i)&&s:this.add(i)}}L(Ct,{attr:function(t,e,r){if(null==t){t={},e=this.node.attributes;for(const r of e)t[r.nodeName]=$.test(r.nodeValue)?parseFloat(r.nodeValue):r.nodeValue;return t}if(t instanceof Array)return t.reduce(((t,e)=>(t[e]=this.attr(e),t)),{});if("object"==typeof t&&t.constructor===Object)for(e in t)this.attr(e,t[e]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?vt[t]:$.test(e)?parseFloat(e):e;"number"==typeof(e=Ot.reduce(((e,r)=>r(t,e,this)),e))?e=new St(e):Mt.has(t)&&et.isColor(e)?e=new et(e):e.constructor===Array&&(e=new _t(e)),"leading"===t?this.leading&&this.leading(e):"string"==typeof r?this.node.setAttributeNS(r,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||"font-size"!==t&&"x"!==t||this.rebuild()}return this},find:function(t){return dt(t,this.node)},findOne:function(t){return T(this.node.querySelector(t))}}),D(Ct,"Dom");class Nt extends Ct{constructor(t,e){super(t,e),this.dom={},this.node.instance=this,(t.hasAttribute("data-svgjs")||t.hasAttribute("svgjs:data"))&&this.setData(JSON.parse(t.getAttribute("data-svgjs"))??JSON.parse(t.getAttribute("svgjs:data"))??{})}center(t,e){return this.cx(t).cy(e)}cx(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)}cy(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)}defs(){const t=this.root();return t&&t.defs()}dmove(t,e){return this.dx(t).dy(e)}dx(t=0){return this.x(new St(t).plus(this.x()))}dy(t=0){return this.y(new St(t).plus(this.y()))}getEventHolder(){return this}height(t){return this.attr("height",t)}move(t,e){return this.x(t).y(e)}parents(t=this.root()){const e="string"==typeof t;e||(t=A(t));const r=new ct;let n=this;for(;(n=n.parent())&&n.node!==M.document&&"#document-fragment"!==n.nodeName&&(r.push(n),e||n.node!==t.node)&&(!e||!n.matches(t));)if(n.node===this.root().node)return null;return r}reference(t){if(!(t=this.attr(t)))return null;const e=(t+"").match(X);return e?A(e[1]):null}root(){const t=this.parent(C[N]);return t&&t.root()}setData(t){return this.dom=t,this}size(t,e){const r=g(this,t,e);return this.width(new St(r.width)).height(new St(r.height))}width(t){return this.attr("width",t)}writeDataToDom(){return x(this,this.dom),super.writeDataToDom()}x(t){return this.attr("x",t)}y(t){return this.attr("y",t)}}L(Nt,{bbox:function(){const t=ht(this,(t=>t.getBBox()),(t=>{try{const e=t.clone().addTo(st().svg).show(),r=e.node.getBBox();return e.remove(),r}catch(e){throw new Error(`Getting bbox of element "${t.node.nodeName}" is not possible: ${e.toString()}`)}}));return new at(t)},rbox:function(t){const e=ht(this,(t=>t.getBoundingClientRect()),(t=>{throw new Error(`Getting rbox of element "${t.node.nodeName}" is not possible`)})),r=new at(e);return t?r.transform(t.screenCTM().inverseO()):r.addOffset()},inside:function(t,e){const r=this.bbox();return t>r.x&&e>r.y&&t<r.x+r.width&&e<r.y+r.height},point:function(t,e){return new rt(t,e).transformO(this.screenCTM().inverseO())},ctm:function(){return new it(this.node.getCTM())},screenCTM:function(){try{if("function"==typeof this.isRoot&&!this.isRoot()){const t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new it(e)}return new it(this.node.getScreenCTM())}catch(t){return console.warn(`Cannot get CTM from SVG node ${this.node.nodeName}. Is the element rendered?`),new it}}}),D(Nt,"Element");const Pt={stroke:["color","width","opacity","linecap","linejoin","miterlimit","dasharray","dashoffset"],fill:["color","opacity","rule"],prefix:function(t,e){return"color"===e?t:t+"-"+e}};["fill","stroke"].forEach((function(t){const e={};let r;e[t]=function(e){if(void 0===e)return this.attr(t);if("string"==typeof e||e instanceof et||et.isRgb(e)||e instanceof Nt)this.attr(t,e);else for(r=Pt[t].length-1;r>=0;r--)null!=e[Pt[t][r]]&&this.attr(Pt.prefix(t,Pt[t][r]),e[Pt[t][r]]);return this},c(["Element","Runner"],e)})),c(["Element","Runner"],{matrix:function(t,e,r,n,i,s){return null==t?new it(this):this.attr("transform",new it(t,e,r,n,i,s))},rotate:function(t,e,r){return this.transform({rotate:t,ox:e,oy:r},!0)},skew:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({skew:t,ox:e,oy:r},!0):this.transform({skew:[t,e],ox:r,oy:n},!0)},shear:function(t,e,r){return this.transform({shear:t,ox:e,oy:r},!0)},scale:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({scale:t,ox:e,oy:r},!0):this.transform({scale:[t,e],ox:r,oy:n},!0)},translate:function(t,e){return this.transform({translate:[t,e]},!0)},relative:function(t,e){return this.transform({relative:[t,e]},!0)},flip:function(t="both",e="center"){return-1==="xybothtrue".indexOf(t)&&(e=t,t="both"),this.transform({flip:t,origin:e},!0)},opacity:function(t){return this.attr("opacity",t)}}),c("radius",{radius:function(t,e=t){return"radialGradient"===(this._element||this).type?this.attr("r",new St(t)):this.rx(t).ry(e)}}),c("Path",{length:function(){return this.node.getTotalLength()},pointAt:function(t){return new rt(this.node.getPointAtLength(t))}}),c(["Element","Runner"],{font:function(t,e){if("object"==typeof t){for(e in t)this.font(e,t[e]);return this}return"leading"===t?this.leading(e):"anchor"===t?this.attr("text-anchor",e):"size"===t||"family"===t||"weight"===t||"stretch"===t||"variant"===t||"style"===t?this.attr("font-"+t,e):this.attr(t,e)}}),c("Element",["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","touchstart","touchmove","touchleave","touchend","touchcancel","contextmenu","wheel","pointerdown","pointermove","pointerup","pointerleave","pointercancel"].reduce((function(t,e){return t[e]=function(t){return null===t?this.off(e):this.on(e,t),this},t}),{})),c("Element",{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(q).slice(0,-1).map((function(t){const e=t.trim().split("(");return[e[0],e[1].split(Q).map((function(t){return parseFloat(t)}))]})).reverse().reduce((function(t,e){return"matrix"===e[0]?t.lmultiply(it.fromArray(e[1])):t[e[0]].apply(t,e[1])}),new it)},toParent:function(t,e){if(this===t)return this;if(b(this.node))return this.addTo(t,e);const r=this.screenCTM(),n=t.screenCTM().inverse();return this.addTo(t,e).untransform().transform(n.multiply(r)),this},toRoot:function(t){return this.toParent(this.root(),t)},transform:function(t,e){if(null==t||"string"==typeof t){const e=new it(this).decompose();return null==t?e:e[t]}it.isMatrixLike(t)||(t={...t,origin:y(t,this)});const r=new it(!0===e?this:e||!1).transform(t);return this.attr("transform",r)}});class At extends Nt{flatten(){return this.each((function(){if(this instanceof At)return this.flatten().ungroup()})),this}ungroup(t=this.parent(),e=t.index(this)){return e=-1===e?t.children().length:e,this.each((function(r,n){return n[n.length-r-1].toParent(t,e)})),this.remove()}}D(At,"Container");class Et extends At{constructor(t,e=t){super(E("defs",t),e)}flatten(){return this}ungroup(){return this}}D(Et,"Defs");class Tt extends Nt{}function jt(t){return this.attr("rx",t)}function Dt(t){return this.attr("ry",t)}function kt(t){return null==t?this.cx()-this.rx():this.cx(t+this.rx())}function Bt(t){return null==t?this.cy()-this.ry():this.cy(t+this.ry())}function It(t){return this.attr("cx",t)}function Lt(t){return this.attr("cy",t)}function Vt(t){return null==t?2*this.rx():this.rx(new St(t).divide(2))}function Rt(t){return null==t?2*this.ry():this.ry(new St(t).divide(2))}D(Tt,"Shape");class zt extends Tt{constructor(t,e=t){super(E("ellipse",t),e)}size(t,e){const r=g(this,t,e);return this.rx(new St(r.width).divide(2)).ry(new St(r.height).divide(2))}}L(zt,t),c("Container",{ellipse:V((function(t=0,e=t){return this.put(new zt).size(t,e).move(0,0)}))}),D(zt,"Ellipse");class Ft extends Ct{constructor(t=M.document.createDocumentFragment()){super(t)}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){const t=new Ct(P("wrapper",r));return t.add(this.node.cloneNode(!0)),t.xml(!1,r)}return super.xml(t,!1,r)}}D(Ft,"Fragment");const Xt=Ft;function qt(t,e){return"radialGradient"===(this._element||this).type?this.attr({fx:new St(t),fy:new St(e)}):this.attr({x1:new St(t),y1:new St(e)})}function Gt(t,e){return"radialGradient"===(this._element||this).type?this.attr({cx:new St(t),cy:new St(e)}):this.attr({x2:new St(t),y2:new St(e)})}class Yt extends At{constructor(t,e){super(E(t+"Gradient","string"==typeof t?null:t),e)}attr(t,e,r){return"transform"===t&&(t="gradientTransform"),super.attr(t,e,r)}bbox(){return new at}targets(){return dt("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}}L(Yt,e),c({Container:{gradient(...t){return this.defs().gradient(...t)}},Defs:{gradient:V((function(t,e){return this.put(new Yt(t)).update(e)}))}}),D(Yt,"Gradient");class Ut extends At{constructor(t,e=t){super(E("pattern",t),e)}attr(t,e,r){return"transform"===t&&(t="patternTransform"),super.attr(t,e,r)}bbox(){return new at}targets(){return dt("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}}c({Container:{pattern(...t){return this.defs().pattern(...t)}},Defs:{pattern:V((function(t,e,r){return this.put(new Ut).update(r).attr({x:0,y:0,width:t,height:e,patternUnits:"userSpaceOnUse"})}))}}),D(Ut,"Pattern");class Ht extends Tt{constructor(t,e=t){super(E("image",t),e)}load(t,e){if(!t)return this;const r=new M.window.Image;return yt(r,"load",(function(t){const n=this.parent(Ut);0===this.width()&&0===this.height()&&this.size(r.width,r.height),n instanceof Ut&&0===n.width()&&0===n.height()&&n.size(this.width(),this.height()),"function"==typeof e&&e.call(this,t)}),this),yt(r,"load error",(function(){wt(r)})),this.attr("href",r.src=t,S)}}var $t;$t=function(t,e,r){return"fill"!==t&&"stroke"!==t||W.test(e)&&(e=r.root().defs().image(e)),e instanceof Ht&&(e=r.root().defs().pattern(0,0,(t=>{t.add(e)}))),e},Ot.push($t),c({Container:{image:V((function(t,e){return this.put(new Ht).size(0,0).load(t,e)}))}}),D(Ht,"Image");class Wt extends _t{bbox(){let t=-1/0,e=-1/0,r=1/0,n=1/0;return this.forEach((function(i){t=Math.max(i[0],t),e=Math.max(i[1],e),r=Math.min(i[0],r),n=Math.min(i[1],n)})),new at(r,n,t-r,e-n)}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r=this.length-1;r>=0;r--)this[r]=[this[r][0]+t,this[r][1]+e];return this}parse(t=[0,0]){const e=[];(t=t instanceof Array?Array.prototype.concat.apply([],t):t.trim().split(Q).map(parseFloat)).length%2!=0&&t.pop();for(let r=0,n=t.length;r<n;r+=2)e.push([t[r],t[r+1]]);return e}size(t,e){let r;const n=this.bbox();for(r=this.length-1;r>=0;r--)n.width&&(this[r][0]=(this[r][0]-n.x)*t/n.width+n.x),n.height&&(this[r][1]=(this[r][1]-n.y)*e/n.height+n.y);return this}toLine(){return{x1:this[0][0],y1:this[0][1],x2:this[1][0],y2:this[1][1]}}toString(){const t=[];for(let e=0,r=this.length;e<r;e++)t.push(this[e].join(","));return t.join(" ")}transform(t){return this.clone().transformO(t)}transformO(t){it.isMatrixLike(t)||(t=new it(t));for(let e=this.length;e--;){const[r,n]=this[e];this[e][0]=t.a*r+t.c*n+t.e,this[e][1]=t.b*r+t.d*n+t.f}return this}}const Qt=Wt;function Jt(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}function Zt(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}function Kt(t){const e=this.bbox();return null==t?e.width:this.size(t,e.height)}function te(t){const e=this.bbox();return null==t?e.height:this.size(e.width,t)}class ee extends Tt{constructor(t,e=t){super(E("line",t),e)}array(){return new Wt([[this.attr("x1"),this.attr("y1")],[this.attr("x2"),this.attr("y2")]])}move(t,e){return this.attr(this.array().move(t,e).toLine())}plot(t,e,r,n){return null==t?this.array():(t=void 0!==e?{x1:t,y1:e,x2:r,y2:n}:new Wt(t).toLine(),this.attr(t))}size(t,e){const r=g(this,t,e);return this.attr(this.array().size(r.width,r.height).toLine())}}L(ee,i),c({Container:{line:V((function(...t){return ee.prototype.plot.apply(this.put(new ee),null!=t[0]?t:[0,0,0,0])}))}}),D(ee,"Line");class re extends At{constructor(t,e=t){super(E("marker",t),e)}height(t){return this.attr("markerHeight",t)}orient(t){return this.attr("orient",t)}ref(t,e){return this.attr("refX",t).attr("refY",e)}toString(){return"url(#"+this.id()+")"}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}width(t){return this.attr("markerWidth",t)}}function ne(t,e){return function(r){return null==r?this[t]:(this[t]=r,e&&e.call(this),this)}}c({Container:{marker(...t){return this.defs().marker(...t)}},Defs:{marker:V((function(t,e,r){return this.put(new re).size(t,e).ref(t/2,e/2).viewbox(0,0,t,e).attr("orient","auto").update(r)}))},marker:{marker(t,e,r,n){let i=["marker"];return"all"!==t&&i.push(t),i=i.join("-"),t=arguments[1]instanceof re?arguments[1]:this.defs().marker(e,r,n),this.attr(i,t)}}}),D(re,"Marker");const ie={"-":function(t){return t},"<>":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)},bezier:function(t,e,r,n){return function(i){return i<0?t>0?e/t*i:r>0?n/r*i:0:i>1?r<1?(1-n)/(1-r)*i+(n-r)/(1-r):t<1?(1-e)/(1-t)*i+(e-t)/(1-t):1:3*i*(1-i)**2*e+3*i**2*(1-i)*n+i**3}},steps:function(t,e="end"){e=e.split("-").reverse()[0];let r=t;return"none"===e?--r:"both"===e&&++r,(n,i=!1)=>{let s=Math.floor(n*t);const o=n*s%1==0;return"start"!==e&&"both"!==e||++s,i&&o&&--s,n>=0&&s<0&&(s=0),n<=1&&s>r&&(s=r),s/r}}};class se{done(){return!1}}class oe extends se{constructor(t=">"){super(),this.ease=ie[t]||t}step(t,e,r){return"number"!=typeof t?r<1?t:e:t+(e-t)*this.ease(r)}}class ae extends se{constructor(t){super(),this.stepper=t}done(t){return t.done}step(t,e,r,n){return this.stepper(t,e,r,n)}}function he(){const t=(this._duration||500)/1e3,e=this._overshoot||0,r=Math.PI,n=Math.log(e/100+1e-10),i=-n/Math.sqrt(r*r+n*n),s=3.9/(i*t);this.d=2*i*s,this.k=s*s}L(class extends ae{constructor(t=500,e=0){super(),this.duration(t).overshoot(e)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;r>100&&(r=16),r/=1e3;const i=n.velocity||0,s=-this.d*i-this.k*(t-e),o=t+i*r+s*r*r/2;return n.velocity=i+s*r,n.done=Math.abs(e-o)+Math.abs(i)<.002,n.done?e:o}},{duration:ne("_duration",he),overshoot:ne("_overshoot",he)}),L(class extends ae{constructor(t=.1,e=.01,r=0,n=1e3){super(),this.p(t).i(e).d(r).windup(n)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;const i=e-t;let s=(n.integral||0)+i*r;const o=(i-(n.error||0))/r,a=this._windup;return!1!==a&&(s=Math.max(-a,Math.min(s,a))),n.error=i,n.integral=s,n.done=Math.abs(i)<.001,n.done?e:t+(this.P*i+this.I*s+this.D*o)}},{windup:ne("_windup"),p:ne("P"),i:ne("I"),d:ne("D")});const ue={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0},ce={M:function(t,e,r){return e.x=r.x=t[0],e.y=r.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},S:function(t,e){return e.x=t[2],e.y=t[3],["S",t[0],t[1],t[2],t[3]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},T:function(t,e){return e.x=t[0],e.y=t[1],["T",t[0],t[1]]},Z:function(t,e,r){return e.x=r.x,e.y=r.y,["Z"]},A:function(t,e){return e.x=t[5],e.y=t[6],["A",t[0],t[1],t[2],t[3],t[4],t[5],t[6]]}},le="mlhvqtcsaz".split("");for(let t=0,e=le.length;t<e;++t)ce[le[t]]=function(t){return function(e,r,n){if("H"===t)e[0]=e[0]+r.x;else if("V"===t)e[0]=e[0]+r.y;else if("A"===t)e[5]=e[5]+r.x,e[6]=e[6]+r.y;else for(let t=0,n=e.length;t<n;++t)e[t]=e[t]+(t%2?r.y:r.x);return ce[t](e,r,n)}}(le[t].toUpperCase());function de(t){return t.segment.length&&t.segment.length-1===ue[t.segment[0].toUpperCase()]}function fe(t,e){t.inNumber&&pe(t,!1);const r=J.test(e);if(r)t.segment=[e];else{const e=t.lastCommand,r=e.toLowerCase(),n=e===r;t.segment=["m"===r?n?"l":"L":e]}return t.inSegment=!0,t.lastCommand=t.segment[0],r}function pe(t,e){if(!t.inNumber)throw new Error("Parser Error");t.number&&t.segment.push(parseFloat(t.number)),t.inNumber=e,t.number="",t.pointSeen=!1,t.hasExponent=!1,de(t)&&me(t)}function me(t){t.inSegment=!1,t.absolute&&(t.segment=function(t){const e=t.segment[0];return ce[e](t.segment.slice(1),t.p,t.p0)}(t)),t.segments.push(t.segment)}function ge(t){if(!t.segment.length)return!1;const e="A"===t.segment[0].toUpperCase(),r=t.segment.length;return e&&(4===r||5===r)}function ye(t){return"E"===t.lastToken.toUpperCase()}const we=new Set([" ",",","\t","\n","\r","\f"]);class be extends _t{bbox(){return st().path.setAttribute("d",this.toString()),new at(st.nodes.path.getBBox())}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r,n=this.length-1;n>=0;n--)r=this[n][0],"M"===r||"L"===r||"T"===r?(this[n][1]+=t,this[n][2]+=e):"H"===r?this[n][1]+=t:"V"===r?this[n][1]+=e:"C"===r||"S"===r||"Q"===r?(this[n][1]+=t,this[n][2]+=e,this[n][3]+=t,this[n][4]+=e,"C"===r&&(this[n][5]+=t,this[n][6]+=e)):"A"===r&&(this[n][6]+=t,this[n][7]+=e);return this}parse(t="M0 0"){return Array.isArray(t)&&(t=Array.prototype.concat.apply([],t).toString()),function(t,e=!0){let r=0,n="";const i={segment:[],inNumber:!1,number:"",lastToken:"",inSegment:!1,segments:[],pointSeen:!1,hasExponent:!1,absolute:e,p0:new rt,p:new rt};for(;i.lastToken=n,n=t.charAt(r++);)if(i.inSegment||!fe(i,n))if("."!==n)if(isNaN(parseInt(n)))if(we.has(n))i.inNumber&&pe(i,!1);else if("-"!==n&&"+"!==n)if("E"!==n.toUpperCase()){if(J.test(n)){if(i.inNumber)pe(i,!1);else{if(!de(i))throw new Error("parser Error");me(i)}--r}}else i.number+=n,i.hasExponent=!0;else{if(i.inNumber&&!ye(i)){pe(i,!1),--r;continue}i.number+=n,i.inNumber=!0}else{if("0"===i.number||ge(i)){i.inNumber=!0,i.number=n,pe(i,!0);continue}i.inNumber=!0,i.number+=n}else{if(i.pointSeen||i.hasExponent){pe(i,!1),--r;continue}i.inNumber=!0,i.pointSeen=!0,i.number+=n}return i.inNumber&&pe(i,!1),i.inSegment&&de(i)&&me(i),i.segments}(t)}size(t,e){const r=this.bbox();let n,i;for(r.width=0===r.width?1:r.width,r.height=0===r.height?1:r.height,n=this.length-1;n>=0;n--)i=this[n][0],"M"===i||"L"===i||"T"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y):"H"===i?this[n][1]=(this[n][1]-r.x)*t/r.width+r.x:"V"===i?this[n][1]=(this[n][1]-r.y)*e/r.height+r.y:"C"===i||"S"===i||"Q"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y,this[n][3]=(this[n][3]-r.x)*t/r.width+r.x,this[n][4]=(this[n][4]-r.y)*e/r.height+r.y,"C"===i&&(this[n][5]=(this[n][5]-r.x)*t/r.width+r.x,this[n][6]=(this[n][6]-r.y)*e/r.height+r.y)):"A"===i&&(this[n][1]=this[n][1]*t/r.width,this[n][2]=this[n][2]*e/r.height,this[n][6]=(this[n][6]-r.x)*t/r.width+r.x,this[n][7]=(this[n][7]-r.y)*e/r.height+r.y);return this}toString(){return function(t){let e="";for(let r=0,n=t.length;r<n;r++)e+=t[r][0],null!=t[r][1]&&(e+=t[r][1],null!=t[r][2]&&(e+=" ",e+=t[r][2],null!=t[r][3]&&(e+=" ",e+=t[r][3],e+=" ",e+=t[r][4],null!=t[r][5]&&(e+=" ",e+=t[r][5],e+=" ",e+=t[r][6],null!=t[r][7]&&(e+=" ",e+=t[r][7])))));return e+" "}(this)}}const xe=t=>{const e=typeof t;return"number"===e?St:"string"===e?et.isColor(t)?et:Q.test(t)?J.test(t)?be:_t:R.test(t)?St:_e:Ce.indexOf(t.constructor)>-1?t.constructor:Array.isArray(t)?_t:"object"===e?Oe:_e};class ve{constructor(t){this._stepper=t||new oe("-"),this._from=null,this._to=null,this._type=null,this._context=null,this._morphObj=null}at(t){return this._morphObj.morph(this._from,this._to,t,this._stepper,this._context)}done(){return this._context.map(this._stepper.done).reduce((function(t,e){return t&&e}),!0)}from(t){return null==t?this._from:(this._from=this._set(t),this)}stepper(t){return null==t?this._stepper:(this._stepper=t,this)}to(t){return null==t?this._to:(this._to=this._set(t),this)}type(t){return null==t?this._type:(this._type=t,this)}_set(t){this._type||this.type(xe(t));let e=new this._type(t);return this._type===et&&(e=this._to?e[this._to[4]]():this._from?e[this._from[4]]():e),this._type===Oe&&(e=this._to?e.align(this._to):this._from?e.align(this._from):e),e=e.toConsumable(),this._morphObj=this._morphObj||new this._type,this._context=this._context||Array.apply(null,Array(e.length)).map(Object).map((function(t){return t.done=!0,t})),e}}class _e{constructor(...t){this.init(...t)}init(t){return t=Array.isArray(t)?t[0]:t,this.value=t,this}toArray(){return[this.value]}valueOf(){return this.value}}class Se{constructor(...t){this.init(...t)}init(t){return Array.isArray(t)&&(t={scaleX:t[0],scaleY:t[1],shear:t[2],rotate:t[3],translateX:t[4],translateY:t[5],originX:t[6],originY:t[7]}),Object.assign(this,Se.defaults,t),this}toArray(){const t=this;return[t.scaleX,t.scaleY,t.shear,t.rotate,t.translateX,t.translateY,t.originX,t.originY]}}Se.defaults={scaleX:1,scaleY:1,shear:0,rotate:0,translateX:0,translateY:0,originX:0,originY:0};const Me=(t,e)=>t[0]<e[0]?-1:t[0]>e[0]?1:0;class Oe{constructor(...t){this.init(...t)}align(t){const e=this.values;for(let r=0,n=e.length;r<n;++r){if(e[r+1]===t[r+1]){if(e[r+1]===et&&t[r+7]!==e[r+7]){const e=t[r+7],n=new et(this.values.splice(r+3,5))[e]().toArray();this.values.splice(r+3,0,...n)}r+=e[r+2]+2;continue}if(!t[r+1])return this;const n=(new t[r+1]).toArray(),i=e[r+2]+3;e.splice(r,i,t[r],t[r+1],t[r+2],...n),r+=e[r+2]+2}return this}init(t){if(this.values=[],Array.isArray(t))return void(this.values=t.slice());t=t||{};const e=[];for(const r in t){const n=xe(t[r]),i=new n(t[r]).toArray();e.push([r,n,i.length,...i])}return e.sort(Me),this.values=e.reduce(((t,e)=>t.concat(e)),[]),this}toArray(){return this.values}valueOf(){const t={},e=this.values;for(;e.length;){const r=e.shift(),n=e.shift(),i=e.shift(),s=e.splice(0,i);t[r]=new n(s)}return t}}const Ce=[_e,Se,Oe];class Ne extends Tt{constructor(t,e=t){super(E("path",t),e)}array(){return this._array||(this._array=new be(this.attr("d")))}clear(){return delete this._array,this}height(t){return null==t?this.bbox().height:this.size(this.bbox().width,t)}move(t,e){return this.attr("d",this.array().move(t,e))}plot(t){return null==t?this.array():this.clear().attr("d","string"==typeof t?t:this._array=new be(t))}size(t,e){const r=g(this,t,e);return this.attr("d",this.array().size(r.width,r.height))}width(t){return null==t?this.bbox().width:this.size(t,this.bbox().height)}x(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}y(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}}function Pe(){return this._array||(this._array=new Wt(this.attr("points")))}function Ae(){return delete this._array,this}function Ee(t,e){return this.attr("points",this.array().move(t,e))}function Te(t){return null==t?this.array():this.clear().attr("points","string"==typeof t?t:this._array=new Wt(t))}function je(t,e){const r=g(this,t,e);return this.attr("points",this.array().size(r.width,r.height))}Ne.prototype.MorphArray=be,c({Container:{path:V((function(t){return this.put(new Ne).plot(t||new be)}))}}),D(Ne,"Path");class De extends Tt{constructor(t,e=t){super(E("polygon",t),e)}}c({Container:{polygon:V((function(t){return this.put(new De).plot(t||new Wt)}))}}),L(De,i),L(De,s),D(De,"Polygon");class ke extends Tt{constructor(t,e=t){super(E("polyline",t),e)}}c({Container:{polyline:V((function(t){return this.put(new ke).plot(t||new Wt)}))}}),L(ke,i),L(ke,s),D(ke,"Polyline");class Be extends Tt{constructor(t,e=t){super(E("rect",t),e)}}L(Be,{rx:jt,ry:Dt}),c({Container:{rect:V((function(t,e){return this.put(new Be).size(t,e)}))}}),D(Be,"Rect");class Ie{constructor(){this._first=null,this._last=null}first(){return this._first&&this._first.value}last(){return this._last&&this._last.value}push(t){const e=void 0!==t.next?t:{value:t,next:null,prev:null};return this._last?(e.prev=this._last,this._last.next=e,this._last=e):(this._last=e,this._first=e),e}remove(t){t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t===this._last&&(this._last=t.prev),t===this._first&&(this._first=t.next),t.prev=null,t.next=null}shift(){const t=this._first;return t?(this._first=t.next,this._first&&(this._first.prev=null),this._last=this._first?this._last:null,t.value):null}}const Le={nextDraw:null,frames:new Ie,timeouts:new Ie,immediates:new Ie,timer:()=>M.window.performance||M.window.Date,transforms:[],frame(t){const e=Le.frames.push({run:t});return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),e},timeout(t,e){e=e||0;const r=Le.timer().now()+e,n=Le.timeouts.push({run:t,time:r});return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),n},immediate(t){const e=Le.immediates.push(t);return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),e},cancelFrame(t){null!=t&&Le.frames.remove(t)},clearTimeout(t){null!=t&&Le.timeouts.remove(t)},cancelImmediate(t){null!=t&&Le.immediates.remove(t)},_draw(t){let e=null;const r=Le.timeouts.last();for(;(e=Le.timeouts.shift())&&(t>=e.time?e.run():Le.timeouts.push(e),e!==r););let n=null;const i=Le.frames.last();for(;n!==i&&(n=Le.frames.shift());)n.run(t);let s=null;for(;s=Le.immediates.shift();)s();Le.nextDraw=Le.timeouts.first()||Le.frames.first()?M.window.requestAnimationFrame(Le._draw):null}},Ve=Le,Re=function(t){const e=t.start,r=t.runner.duration();return{start:e,duration:r,end:e+r,runner:t.runner}},ze=function(){const t=M.window;return(t.performance||t.Date).now()};class Fe extends bt{constructor(t=ze){super(),this._timeSource=t,this.terminate()}active(){return!!this._nextFrame}finish(){return this.time(this.getEndTimeOfTimeline()+1),this.pause()}getEndTime(){const t=this.getLastRunnerInfo(),e=t?t.runner.duration():0;return(t?t.start:this._time)+e}getEndTimeOfTimeline(){const t=this._runners.map((t=>t.start+t.runner.duration()));return Math.max(0,...t)}getLastRunnerInfo(){return this.getRunnerInfoById(this._lastRunnerId)}getRunnerInfoById(t){return this._runners[this._runnerIds.indexOf(t)]||null}pause(){return this._paused=!0,this._continue()}persist(t){return null==t?this._persist:(this._persist=t,this)}play(){return this._paused=!1,this.updateTime()._continue()}reverse(t){const e=this.speed();if(null==t)return this.speed(-e);const r=Math.abs(e);return this.speed(t?-r:r)}schedule(t,e,r){if(null==t)return this._runners.map(Re);let n=0;const i=this.getEndTime();if(e=e||0,null==r||"last"===r||"after"===r)n=i;else if("absolute"===r||"start"===r)n=e,e=0;else if("now"===r)n=this._time;else if("relative"===r){const r=this.getRunnerInfoById(t.id);r&&(n=r.start+e,e=0)}else{if("with-last"!==r)throw new Error('Invalid value for the "when" parameter');{const t=this.getLastRunnerInfo();n=t?t.start:this._time}}t.unschedule(),t.timeline(this);const s=t.persist(),o={persist:null===s?this._persist:s,start:n+e,runner:t};return this._lastRunnerId=t.id,this._runners.push(o),this._runners.sort(((t,e)=>t.start-e.start)),this._runnerIds=this._runners.map((t=>t.runner.id)),this.updateTime()._continue(),this}seek(t){return this.time(this._time+t)}source(t){return null==t?this._timeSource:(this._timeSource=t,this)}speed(t){return null==t?this._speed:(this._speed=t,this)}stop(){return this.time(0),this.pause()}time(t){return null==t?this._time:(this._time=t,this._continue(!0))}unschedule(t){const e=this._runnerIds.indexOf(t.id);return e<0||(this._runners.splice(e,1),this._runnerIds.splice(e,1),t.timeline(null)),this}updateTime(){return this.active()||(this._lastSourceTime=this._timeSource()),this}_continue(t=!1){return Ve.cancelFrame(this._nextFrame),this._nextFrame=null,t?this._stepImmediate():(this._paused||(this._nextFrame=Ve.frame(this._step)),this)}_stepFn(t=!1){const e=this._timeSource();let r=e-this._lastSourceTime;t&&(r=0);const n=this._speed*r+(this._time-this._lastStepTime);this._lastSourceTime=e,t||(this._time+=n,this._time=this._time<0?0:this._time),this._lastStepTime=this._time,this.fire("time",this._time);for(let t=this._runners.length;t--;){const e=this._runners[t],r=e.runner;this._time-e.start<=0&&r.reset()}let i=!1;for(let t=0,e=this._runners.length;t<e;t++){const r=this._runners[t],s=r.runner;let o=n;const a=this._time-r.start;a<=0?i=!0:(a<o&&(o=a),s.active()&&(s.step(o).done?!0!==r.persist&&s.duration()-s.time()+this._time+r.persist<this._time&&(s.unschedule(),--t,--e):i=!0))}return i&&!(this._speed<0&&0===this._time)||this._runnerIds.length&&this._speed<0&&this._time>0?this._continue():(this.pause(),this.fire("finished")),this}terminate(){this._startTime=0,this._speed=1,this._persist=0,this._nextFrame=null,this._paused=!0,this._runners=[],this._runnerIds=[],this._lastRunnerId=-1,this._time=0,this._lastSourceTime=0,this._lastStepTime=0,this._step=this._stepFn.bind(this,!1),this._stepImmediate=this._stepFn.bind(this,!0)}}c({Element:{timeline:function(t){return null==t?(this._timeline=this._timeline||new Fe,this._timeline):(this._timeline=t,this)}}});class Xe extends bt{constructor(t){super(),this.id=Xe.id++,t="function"==typeof(t=null==t?400:t)?new ae(t):t,this._element=null,this._timeline=null,this.done=!1,this._queue=[],this._duration="number"==typeof t&&t,this._isDeclarative=t instanceof ae,this._stepper=this._isDeclarative?t:new oe,this._history={},this.enabled=!0,this._time=0,this._lastTime=0,this._reseted=!0,this.transforms=new it,this.transformId=1,this._haveReversed=!1,this._reverse=!1,this._loopsDone=0,this._swing=!1,this._wait=0,this._times=1,this._frameId=null,this._persist=!!this._isDeclarative||null}static sanitise(t,e,r){let n=1,i=!1,s=0;return e=e??0,r=r||"last","object"!=typeof(t=t??400)||t instanceof se||(e=t.delay??e,r=t.when??r,i=t.swing||i,n=t.times??n,s=t.wait??s,t=t.duration??400),{duration:t,delay:e,swing:i,times:n,wait:s,when:r}}active(t){return null==t?this.enabled:(this.enabled=t,this)}addTransform(t){return this.transforms.lmultiplyO(t),this}after(t){return this.on("finished",t)}animate(t,e,r){const n=Xe.sanitise(t,e,r),i=new Xe(n.duration);return this._timeline&&i.timeline(this._timeline),this._element&&i.element(this._element),i.loop(n).schedule(n.delay,n.when)}clearTransform(){return this.transforms=new it,this}clearTransformsFromQueue(){this.done&&this._timeline&&this._timeline._runnerIds.includes(this.id)||(this._queue=this._queue.filter((t=>!t.isTransform)))}delay(t){return this.animate(0,t)}duration(){return this._times*(this._wait+this._duration)-this._wait}during(t){return this.queue(null,t)}ease(t){return this._stepper=new oe(t),this}element(t){return null==t?this._element:(this._element=t,t._prepareRunner(),this)}finish(){return this.step(1/0)}loop(t,e,r){return"object"==typeof t&&(e=t.swing,r=t.wait,t=t.times),this._times=t||1/0,this._swing=e||!1,this._wait=r||0,!0===this._times&&(this._times=1/0),this}loops(t){const e=this._duration+this._wait;if(null==t){const t=Math.floor(this._time/e),r=(this._time-t*e)/this._duration;return Math.min(t+r,this._times)}const r=t%1,n=e*Math.floor(t)+this._duration*r;return this.time(n)}persist(t){return null==t?this._persist:(this._persist=t,this)}position(t){const e=this._time,r=this._duration,n=this._wait,i=this._times,s=this._swing,o=this._reverse;let a;if(null==t){const t=function(t){const e=s*Math.floor(t%(2*(n+r))/(n+r)),i=e&&!o||!e&&o,a=Math.pow(-1,i)*(t%(n+r))/r+i;return Math.max(Math.min(a,1),0)},h=i*(n+r)-n;return a=e<=0?Math.round(t(1e-5)):e<h?t(e):Math.round(t(h-1e-5)),a}const h=Math.floor(this.loops()),u=s&&h%2==0;return a=h+(u&&!o||o&&u?t:1-t),this.loops(a)}progress(t){return null==t?Math.min(1,this._time/this.duration()):this.time(t*this.duration())}queue(t,e,r,n){return this._queue.push({initialiser:t||xt,runner:e||xt,retarget:r,isTransform:n,initialised:!1,finished:!1}),this.timeline()&&this.timeline()._continue(),this}reset(){return this._reseted||(this.time(0),this._reseted=!0),this}reverse(t){return this._reverse=null==t?!this._reverse:t,this}schedule(t,e,r){if(t instanceof Fe||(r=e,e=t,t=this.timeline()),!t)throw Error("Runner cannot be scheduled without timeline");return t.schedule(this,e,r),this}step(t){if(!this.enabled)return this;t=null==t?16:t,this._time+=t;const e=this.position(),r=this._lastPosition!==e&&this._time>=0;this._lastPosition=e;const n=this.duration(),i=this._lastTime<=0&&this._time>0,s=this._lastTime<n&&this._time>=n;this._lastTime=this._time,i&&this.fire("start",this);const o=this._isDeclarative;this.done=!o&&!s&&this._time>=n,this._reseted=!1;let a=!1;return(r||o)&&(this._initialise(r),this.transforms=new it,a=this._run(o?t:e),this.fire("step",this)),this.done=this.done||a&&o,s&&this.fire("finished",this),this}time(t){if(null==t)return this._time;const e=t-this._time;return this.step(e),this}timeline(t){return void 0===t?this._timeline:(this._timeline=t,this)}unschedule(){const t=this.timeline();return t&&t.unschedule(this),this}_initialise(t){if(t||this._isDeclarative)for(let e=0,r=this._queue.length;e<r;++e){const r=this._queue[e],n=this._isDeclarative||!r.initialised&&t;t=!r.finished,n&&t&&(r.initialiser.call(this),r.initialised=!0)}}_rememberMorpher(t,e){if(this._history[t]={morpher:e,caller:this._queue[this._queue.length-1]},this._isDeclarative){const t=this.timeline();t&&t.play()}}_run(t){let e=!0;for(let r=0,n=this._queue.length;r<n;++r){const n=this._queue[r],i=n.runner.call(this,t);n.finished=n.finished||!0===i,e=e&&n.finished}return e}_tryRetarget(t,e,r){if(this._history[t]){if(!this._history[t].caller.initialised){const e=this._queue.indexOf(this._history[t].caller);return this._queue.splice(e,1),!1}this._history[t].caller.retarget?this._history[t].caller.retarget.call(this,e,r):this._history[t].morpher.to(e),this._history[t].caller.finished=!1;const n=this.timeline();return n&&n.play(),!0}return!1}}Xe.id=0;class qe{constructor(t=new it,e=-1,r=!0){this.transforms=t,this.id=e,this.done=r}clearTransformsFromQueue(){}}L([Xe,qe],{mergeWith(t){return new qe(t.transforms.lmultiply(this.transforms),t.id)}});const Ge=(t,e)=>t.lmultiplyO(e),Ye=t=>t.transforms;function Ue(){const t=this._transformationRunners.runners.map(Ye).reduce(Ge,new it);this.transform(t),this._transformationRunners.merge(),1===this._transformationRunners.length()&&(this._frameId=null)}class He{constructor(){this.runners=[],this.ids=[]}add(t){if(this.runners.includes(t))return;const e=t.id+1;return this.runners.push(t),this.ids.push(e),this}clearBefore(t){const e=this.ids.indexOf(t+1)||1;return this.ids.splice(0,e,0),this.runners.splice(0,e,new qe).forEach((t=>t.clearTransformsFromQueue())),this}edit(t,e){const r=this.ids.indexOf(t+1);return this.ids.splice(r,1,t+1),this.runners.splice(r,1,e),this}getByID(t){return this.runners[this.ids.indexOf(t+1)]}length(){return this.ids.length}merge(){let t=null;for(let e=0;e<this.runners.length;++e){const r=this.runners[e];if(!(t&&r.done&&t.done)||r._timeline&&r._timeline._runnerIds.includes(r.id)||t._timeline&&t._timeline._runnerIds.includes(t.id))t=r;else{this.remove(r.id);const n=r.mergeWith(t);this.edit(t.id,n),t=n,--e}}return this}remove(t){const e=this.ids.indexOf(t+1);return this.ids.splice(e,1),this.runners.splice(e,1),this}}c({Element:{animate(t,e,r){const n=Xe.sanitise(t,e,r),i=this.timeline();return new Xe(n.duration).loop(n).element(this).timeline(i.play()).schedule(n.delay,n.when)},delay(t,e){return this.animate(0,t,e)},_clearTransformRunnersBefore(t){this._transformationRunners.clearBefore(t.id)},_currentTransform(t){return this._transformationRunners.runners.filter((e=>e.id<=t.id)).map(Ye).reduce(Ge,new it)},_addRunner(t){this._transformationRunners.add(t),Ve.cancelImmediate(this._frameId),this._frameId=Ve.immediate(Ue.bind(this))},_prepareRunner(){null==this._frameId&&(this._transformationRunners=(new He).add(new qe(new it(this))))}}}),L(Xe,{attr(t,e){return this.styleAttr("attr",t,e)},css(t,e){return this.styleAttr("css",t,e)},styleAttr(t,e,r){if("string"==typeof e)return this.styleAttr(t,{[e]:r});let n=e;if(this._tryRetarget(t,n))return this;let i=new ve(this._stepper).to(n),s=Object.keys(n);return this.queue((function(){i=i.from(this.element()[t](s))}),(function(e){return this.element()[t](i.at(e).valueOf()),i.done()}),(function(e){const r=Object.keys(e),o=(a=s,r.filter((t=>!a.includes(t))));var a;if(o.length){const e=this.element()[t](o),r=new Oe(i.from()).valueOf();Object.assign(r,e),i.from(r)}const h=new Oe(i.to()).valueOf();Object.assign(h,e),i.to(h),s=r,n=e})),this._rememberMorpher(t,i),this},zoom(t,e){if(this._tryRetarget("zoom",t,e))return this;let r=new ve(this._stepper).to(new St(t));return this.queue((function(){r=r.from(this.element().zoom())}),(function(t){return this.element().zoom(r.at(t),e),r.done()}),(function(t,n){e=n,r.to(t)})),this._rememberMorpher("zoom",r),this},transform(t,e,r){if(e=t.relative||e,this._isDeclarative&&!e&&this._tryRetarget("transform",t))return this;const n=it.isMatrixLike(t);r=null!=t.affine?t.affine:null!=r?r:!n;const i=new ve(this._stepper).type(r?Se:it);let s,o,a,h,u;return this.queue((function(){o=o||this.element(),s=s||y(t,o),u=new it(e?void 0:o),o._addRunner(this),e||o._clearTransformRunnersBefore(this)}),(function(c){e||this.clearTransform();const{x:l,y:d}=new rt(s).transform(o._currentTransform(this));let f=new it({...t,origin:[l,d]}),p=this._isDeclarative&&a?a:u;if(r){f=f.decompose(l,d),p=p.decompose(l,d);const t=f.rotate,e=p.rotate,r=[t-360,t,t+360],n=r.map((t=>Math.abs(t-e))),i=Math.min(...n),s=n.indexOf(i);f.rotate=r[s]}e&&(n||(f.rotate=t.rotate||0),this._isDeclarative&&h&&(p.rotate=h)),i.from(p),i.to(f);const m=i.at(c);return h=m.rotate,a=new it(m),this.addTransform(a),o._addRunner(this),i.done()}),(function(e){(e.origin||"center").toString()!==(t.origin||"center").toString()&&(s=y(e,o)),t={...e,origin:s}}),!0),this._isDeclarative&&this._rememberMorpher("transform",i),this},x(t){return this._queueNumber("x",t)},y(t){return this._queueNumber("y",t)},ax(t){return this._queueNumber("ax",t)},ay(t){return this._queueNumber("ay",t)},dx(t=0){return this._queueNumberDelta("x",t)},dy(t=0){return this._queueNumberDelta("y",t)},dmove(t,e){return this.dx(t).dy(e)},_queueNumberDelta(t,e){if(e=new St(e),this._tryRetarget(t,e))return this;const r=new ve(this._stepper).to(e);let n=null;return this.queue((function(){n=this.element()[t](),r.from(n),r.to(n+e)}),(function(e){return this.element()[t](r.at(e)),r.done()}),(function(t){r.to(n+new St(t))})),this._rememberMorpher(t,r),this},_queueObject(t,e){if(this._tryRetarget(t,e))return this;const r=new ve(this._stepper).to(e);return this.queue((function(){r.from(this.element()[t]())}),(function(e){return this.element()[t](r.at(e)),r.done()})),this._rememberMorpher(t,r),this},_queueNumber(t,e){return this._queueObject(t,new St(e))},cx(t){return this._queueNumber("cx",t)},cy(t){return this._queueNumber("cy",t)},move(t,e){return this.x(t).y(e)},amove(t,e){return this.ax(t).ay(e)},center(t,e){return this.cx(t).cy(e)},size(t,e){let r;return t&&e||(r=this._element.bbox()),t||(t=r.width/r.height*e),e||(e=r.height/r.width*t),this.width(t).height(e)},width(t){return this._queueNumber("width",t)},height(t){return this._queueNumber("height",t)},plot(t,e,r,n){if(4===arguments.length)return this.plot([t,e,r,n]);if(this._tryRetarget("plot",t))return this;const i=new ve(this._stepper).type(this._element.MorphArray).to(t);return this.queue((function(){i.from(this._element.array())}),(function(t){return this._element.plot(i.at(t)),i.done()})),this._rememberMorpher("plot",i),this},leading(t){return this._queueNumber("leading",t)},viewbox(t,e,r,n){return this._queueObject("viewbox",new at(t,e,r,n))},update(t){return"object"!=typeof t?this.update({offset:arguments[0],color:arguments[1],opacity:arguments[2]}):(null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",t.offset),this)}}),L(Xe,{rx:jt,ry:Dt,from:qt,to:Gt}),D(Xe,"Runner");class $e extends At{constructor(t,e=t){super(E("svg",t),e),this.namespace()}defs(){return this.isRoot()?T(this.node.querySelector("defs"))||this.put(new Et):this.root().defs()}isRoot(){return!this.node.parentNode||!(this.node.parentNode instanceof M.window.SVGElement)&&"#document-fragment"!==this.node.parentNode.nodeName}namespace(){return this.isRoot()?this.attr({xmlns:v,version:"1.1"}).attr("xmlns:xlink",S,_):this.root().namespace()}removeNamespace(){return this.attr({xmlns:null,version:null}).attr("xmlns:xlink",null,_).attr("xmlns:svgjs",null,_)}root(){return this.isRoot()?this:super.root()}}c({Container:{nested:V((function(){return this.put(new $e)}))}}),D($e,"Svg",!0);class We extends At{constructor(t,e=t){super(E("symbol",t),e)}}function Qe(t){return!1===this._build&&this.clear(),this.node.appendChild(M.document.createTextNode(t)),this}function Je(){return this.node.getComputedTextLength()}function Ze(t,e=this.bbox()){return null==t?e.x:this.attr("x",this.attr("x")+t-e.x)}function Ke(t,e=this.bbox()){return null==t?e.y:this.attr("y",this.attr("y")+t-e.y)}function tr(t,e,r=this.bbox()){return this.x(t,r).y(e,r)}function er(t,e=this.bbox()){return null==t?e.cx:this.attr("x",this.attr("x")+t-e.cx)}function rr(t,e=this.bbox()){return null==t?e.cy:this.attr("y",this.attr("y")+t-e.cy)}function nr(t,e,r=this.bbox()){return this.cx(t,r).cy(e,r)}function ir(t){return this.attr("x",t)}function sr(t){return this.attr("y",t)}function or(t,e){return this.ax(t).ay(e)}function ar(t){return this._build=!!t,this}c({Container:{symbol:V((function(){return this.put(new We)}))}}),D(We,"Symbol");class hr extends Tt{constructor(t,e=t){super(E("text",t),e),this.dom.leading=this.dom.leading??new St(1.3),this._rebuild=!0,this._build=!1}leading(t){return null==t?this.dom.leading:(this.dom.leading=new St(t),this.rebuild())}rebuild(t){if("boolean"==typeof t&&(this._rebuild=t),this._rebuild){const t=this;let e=0;const r=this.dom.leading;this.each((function(n){if(b(this.node))return;const i=M.window.getComputedStyle(this.node).getPropertyValue("font-size"),s=r*new St(i);this.dom.newLined&&(this.attr("x",t.attr("x")),"\n"===this.text()?e+=s:(this.attr("dy",n?s+e:0),e=0))})),this.fire("rebuild")}return this}setData(t){return this.dom=t,this.dom.leading=new St(t.leading||1.3),this}writeDataToDom(){return x(this,this.dom,{leading:1.3}),this}text(t){if(void 0===t){const e=this.node.childNodes;let r=0;t="";for(let n=0,i=e.length;n<i;++n)"textPath"===e[n].nodeName||b(e[n])?0===n&&(r=n+1):(n!==r&&3!==e[n].nodeType&&!0===T(e[n]).dom.newLined&&(t+="\n"),t+=e[n].textContent);return t}if(this.clear().build(!0),"function"==typeof t)t.call(this,this);else for(let e=0,r=(t=(t+"").split("\n")).length;e<r;e++)this.newLine(t[e]);return this.build(!1).rebuild()}}L(hr,o),c({Container:{text:V((function(t=""){return this.put(new hr).text(t)})),plain:V((function(t=""){return this.put(new hr).plain(t)}))}}),D(hr,"Text");class ur extends Tt{constructor(t,e=t){super(E("tspan",t),e),this._build=!1}dx(t){return this.attr("dx",t)}dy(t){return this.attr("dy",t)}newLine(){this.dom.newLined=!0;const t=this.parent();if(!(t instanceof hr))return this;const e=t.index(this),r=M.window.getComputedStyle(this.node).getPropertyValue("font-size"),n=t.dom.leading*new St(r);return this.dy(e?n:0).attr("x",t.x())}text(t){return null==t?this.node.textContent+(this.dom.newLined?"\n":""):("function"==typeof t?(this.clear().build(!0),t.call(this,this),this.build(!1)):this.plain(t),this)}}L(ur,o),c({Tspan:{tspan:V((function(t=""){const e=new ur;return this._build||this.clear(),this.put(e).text(t)}))},Text:{newLine:function(t=""){return this.tspan(t).newLine()}}}),D(ur,"Tspan");class cr extends Tt{constructor(t,e=t){super(E("circle",t),e)}radius(t){return this.attr("r",t)}rx(t){return this.attr("r",t)}ry(t){return this.rx(t)}size(t){return this.radius(new St(t).divide(2))}}L(cr,{x:kt,y:Bt,cx:It,cy:Lt,width:Vt,height:Rt}),c({Container:{circle:V((function(t=0){return this.put(new cr).size(t).move(0,0)}))}}),D(cr,"Circle");class lr extends At{constructor(t,e=t){super(E("clipPath",t),e)}remove(){return this.targets().forEach((function(t){t.unclip()})),super.remove()}targets(){return dt("svg [clip-path*="+this.id()+"]")}}c({Container:{clip:V((function(){return this.defs().put(new lr)}))},Element:{clipper(){return this.reference("clip-path")},clipWith(t){const e=t instanceof lr?t:this.parent().clip().add(t);return this.attr("clip-path","url(#"+e.id()+")")},unclip(){return this.attr("clip-path",null)}}}),D(lr,"ClipPath");class dr extends Nt{constructor(t,e=t){super(E("foreignObject",t),e)}}function fr(t,e){return this.children().forEach((r=>{let n;try{n=r.node instanceof M.window.SVGSVGElement?new at(r.attr(["x","y","width","height"])):r.bbox()}catch(t){return}const i=new it(r),s=i.translate(t,e).transform(i.inverse()),o=new rt(n.x,n.y).transform(s);r.move(o.x,o.y)})),this}function pr(t){return this.dmove(t,0)}function mr(t){return this.dmove(0,t)}function gr(t,e=this.bbox()){return null==t?e.height:this.size(e.width,t,e)}function yr(t=0,e=0,r=this.bbox()){const n=t-r.x,i=e-r.y;return this.dmove(n,i)}function wr(t,e,r=this.bbox()){const n=g(this,t,e,r),i=n.width/r.width,s=n.height/r.height;return this.children().forEach((t=>{const e=new rt(r).transform(new it(t).inverse());t.scale(i,s,e.x,e.y)})),this}function br(t,e=this.bbox()){return null==t?e.width:this.size(t,e.height,e)}function xr(t,e=this.bbox()){return null==t?e.x:this.move(t,e.y,e)}function vr(t,e=this.bbox()){return null==t?e.y:this.move(e.x,t,e)}c({Container:{foreignObject:V((function(t,e){return this.put(new dr).size(t,e)}))}}),D(dr,"ForeignObject");class _r extends At{constructor(t,e=t){super(E("g",t),e)}}L(_r,a),c({Container:{group:V((function(){return this.put(new _r)}))}}),D(_r,"G");class Sr extends At{constructor(t,e=t){super(E("a",t),e)}target(t){return this.attr("target",t)}to(t){return this.attr("href",t,S)}}L(Sr,a),c({Container:{link:V((function(t){return this.put(new Sr).to(t)}))},Element:{unlink(){const t=this.linker();if(!t)return this;const e=t.parent();if(!e)return this.remove();const r=e.index(t);return e.add(this,r),t.remove(),this},linkTo(t){let e=this.linker();return e||(e=new Sr,this.wrap(e)),"function"==typeof t?t.call(e,e):e.to(t),this},linker(){const t=this.parent();return t&&"a"===t.node.nodeName.toLowerCase()?t:null}}}),D(Sr,"A");class Mr extends At{constructor(t,e=t){super(E("mask",t),e)}remove(){return this.targets().forEach((function(t){t.unmask()})),super.remove()}targets(){return dt("svg [mask*="+this.id()+"]")}}c({Container:{mask:V((function(){return this.defs().put(new Mr)}))},Element:{masker(){return this.reference("mask")},maskWith(t){const e=t instanceof Mr?t:this.parent().mask().add(t);return this.attr("mask","url(#"+e.id()+")")},unmask(){return this.attr("mask",null)}}}),D(Mr,"Mask");class Or extends Nt{constructor(t,e=t){super(E("stop",t),e)}update(t){return("number"==typeof t||t instanceof St)&&(t={offset:arguments[0],color:arguments[1],opacity:arguments[2]}),null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",new St(t.offset)),this}}c({Gradient:{stop:function(t,e,r){return this.put(new Or).update(t,e,r)}}}),D(Or,"Stop");class Cr extends Nt{constructor(t,e=t){super(E("style",t),e)}addText(t=""){return this.node.textContent+=t,this}font(t,e,r={}){return this.rule("@font-face",{fontFamily:t,src:e,...r})}rule(t,e){return this.addText(function(t,e){if(!t)return"";if(!e)return t;let r=t+"{";for(const t in e)r+=t.replace(/([A-Z])/g,(function(t,e){return"-"+e.toLowerCase()}))+":"+e[t]+";";return r+="}",r}(t,e))}}c("Dom",{style(t,e){return this.put(new Cr).rule(t,e)},fontface(t,e,r){return this.put(new Cr).font(t,e,r)}}),D(Cr,"Style");class Nr extends hr{constructor(t,e=t){super(E("textPath",t),e)}array(){const t=this.track();return t?t.array():null}plot(t){const e=this.track();let r=null;return e&&(r=e.plot(t)),null==t?r:this}track(){return this.reference("href")}}c({Container:{textPath:V((function(t,e){return t instanceof hr||(t=this.text(t)),t.path(e)}))},Text:{path:V((function(t,e=!0){const r=new Nr;let n;if(t instanceof Ne||(t=this.defs().path(t)),r.attr("href","#"+t,S),e)for(;n=this.node.firstChild;)r.node.appendChild(n);return this.put(r)})),textPath(){return this.findOne("textPath")}},Path:{text:V((function(t){return t instanceof hr||(t=(new hr).addTo(this.parent()).text(t)),t.path(this)})),targets(){return dt("svg textPath").filter((t=>(t.attr("href")||"").includes(this.id())))}}}),Nr.prototype.MorphArray=be,D(Nr,"TextPath");class Pr extends Tt{constructor(t,e=t){super(E("use",t),e)}use(t,e){return this.attr("href",(e||"")+"#"+t,S)}}c({Container:{use:V((function(t,e){return this.put(new Pr).use(t,e)}))}}),D(Pr,"Use"),L([$e,We,Ht,Ut,re],l("viewbox")),L([ee,ke,De,Ne],l("marker")),L(hr,l("Text")),L(Ne,l("Path")),L(Et,l("Defs")),L([hr,ur],l("Tspan")),L([Be,zt,Yt,Xe],l("radius")),L(bt,l("EventTarget")),L(Ct,l("Dom")),L(Nt,l("Element")),L(Tt,l("Shape")),L([At,Xt],l("Container")),L(Yt,l("Gradient")),L(Xe,l("Runner")),ct.extend([...new Set(u)]),function(t=[]){Ce.push(...[].concat(t))}([St,et,at,it,_t,Wt,be,rt]),L(Ce,{to(t){return(new ve).type(this.constructor).from(this.toArray()).to(t)},fromArray(t){return this.init(t),this},toConsumable(){return this.toArray()},morph(t,e,r,n,i){return this.fromArray(t.map((function(t,s){return n.step(t,e[s],r,i[s],i)})))}});var Ar=r(726),Er=r(731),Tr=r(986);class jr{static create(t){let e=document.createElementNS("http://www.w3.org/2000/svg","text");e.textContent=t;let r=new jr(e);return r.assignUUID(),r.setAttributes(jr.defaultAttributes),r}constructor(t){this.textElement=t,this.centerPoint=new Er.CenterPoint(t)}get domNode(){return this.textElement}appendTo(t){t.appendChild(this.domNode)}remove(){this.domNode.remove()}isIn(t){return t.contains(this.domNode)&&t!==this.domNode}hasParent(){return!!this.domNode.parentNode}bringToFront(){(0,Ar.bringToFront)(this.domNode)}sendToBack(){(0,Ar.sendToBack)(this.domNode)}getAttribute(t){return this.domNode.getAttribute(t)}setAttribute(t,e){this.domNode.setAttribute(t,e)}setAttributes(t){try{new hr(this.domNode).attr(t)}catch(t){}}get id(){return this.domNode.id}assignUUID(){(0,Ar.assignUUID)(this.domNode)}get textContent(){return this.domNode.textContent}set textContent(t){this.domNode.textContent=t}get bbox(){return this.domNode.getBBox()}getCenterPoint(){return this.centerPoint}setCenterPoint(t){this.centerPoint.x=t.x,this.centerPoint.y=t.y}maintainingCenterPoint(t){let{x:e,y:r}=this.centerPoint;t(),this.centerPoint.x=e,this.centerPoint.y=r}get boundingClientRect(){return this.domNode.getBoundingClientRect()}get clientCenterPoint(){let t=this.domNode.getBoundingClientRect();return{x:(0,Tr.mean)([t.left,t.right]),y:(0,Tr.mean)([t.top,t.bottom])}}getClientCenterPoint(){return this.clientCenterPoint}}jr.defaultAttributes={"font-family":"Arial","font-size":"9","font-weight":"700"},jr.defaultAttributeNames=["font-family","font-size","font-weight"];var Dr,kr=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class Br{constructor(t){Dr.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,Dr,t)}toJSONSerializable(){if(!kr(this,Dr,"f").id)throw new Error("Nucleobase has a falsy ID.");return{id:kr(this,Dr,"f").id}}}Dr=new WeakMap;var Ir,Lr,Vr,Rr,zr,Fr=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},Xr=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class qr{constructor(t,e){Ir.add(this),Lr.set(this,void 0),Vr.set(this,void 0),Fr(this,Lr,t,"f"),Fr(this,Vr,e,"f")}recreate(){return new jr(Xr(this,Ir,"a",zr))}}Lr=new WeakMap,Vr=new WeakMap,Ir=new WeakSet,Rr=function(){let t=Xr(this,Lr,"f").id;if(t=null!=t?t:Xr(this,Lr,"f").textId,!t)throw new Error("Unable to find nucleobase ID.");if("string"!=typeof t)throw new Error("Nucleobase ID is not a string.");return t},zr=function(){let t=Xr(this,Ir,"a",Rr),e=Xr(this,Vr,"f").domNode.querySelector(`#${t}`);if(!e)throw new Error(`No DOM node in the drawing has the nucleobase ID "${t}".`);if(!(e instanceof SVGTextElement))throw new Error(`The DOM node with ID "${t}" is not an SVG text element.`);return e}})(),n})(),t.exports=e()},726:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t,e){for(let[r,n]of Object.entries(e))t.setAttribute(r,n)}t.r(e),t.d(e,{CoordinateSystem:()=>l,HorizontalClientScaling:()=>f,InnerXML:()=>b,OuterXML:()=>_,Scaling:()=>d,VerticalClientScaling:()=>p,assignUUID:()=>c,bringToFront:()=>m,sendToBack:()=>g,setAttributes:()=>r});const n={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};var i,s=new Uint8Array(16);function o(){if(!i&&!(i="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return i(s)}for(var a=[],h=0;h<256;++h)a.push((h+256).toString(16).slice(1));const u=function(t,e,r){if(n.randomUUID&&!e&&!t)return n.randomUUID();var i=(t=t||{}).random||(t.rng||o)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,e){r=r||0;for(var s=0;s<16;++s)e[r+s]=i[s];return e}return function(t,e=0){return(a[t[e+0]]+a[t[e+1]]+a[t[e+2]]+a[t[e+3]]+"-"+a[t[e+4]]+a[t[e+5]]+"-"+a[t[e+6]]+a[t[e+7]]+"-"+a[t[e+8]]+a[t[e+9]]+"-"+a[t[e+10]]+a[t[e+11]]+a[t[e+12]]+a[t[e+13]]+a[t[e+14]]+a[t[e+15]]).toLowerCase()}(i)};function c(t){t.id="uuid-"+u()}class l{constructor(t){this.targetSVGDoc=t}get width(){return this.targetSVGDoc.viewBox.baseVal.width}get height(){return this.targetSVGDoc.viewBox.baseVal.height}get minX(){return this.targetSVGDoc.viewBox.baseVal.x}get maxX(){return this.minX+this.width}get minY(){return this.targetSVGDoc.viewBox.baseVal.y}get maxY(){return this.minY+this.height}get horizontalScaling(){return this.targetSVGDoc.width.baseVal.value/this.width}get verticalScaling(){return this.targetSVGDoc.height.baseVal.value/this.height}setScaling(t){this.targetSVGDoc.setAttribute("width",""+t*this.width),this.targetSVGDoc.setAttribute("height",""+t*this.height)}get clientWidth(){return this.targetSVGDoc.getBoundingClientRect().width}get clientHeight(){return this.targetSVGDoc.getBoundingClientRect().height}get horizontalClientScaling(){return this.clientWidth/this.width}get verticalClientScaling(){return this.clientHeight/this.height}get minClientX(){return this.targetSVGDoc.getBoundingClientRect().x}get minClientY(){return this.targetSVGDoc.getBoundingClientRect().y}fromClientX(t){return this.minX+(t-this.minClientX)/this.horizontalClientScaling}fromClientY(t){return this.minY+(t-this.minClientY)/this.verticalClientScaling}fromClientCoordinates(t,e){return[this.fromClientX(t),this.fromClientY(e)]}fromClientPoint(t){return{x:this.fromClientX(t.x),y:this.fromClientY(t.y)}}toClientX(t){return this.minClientX+this.horizontalClientScaling*(t-this.minX)}toClientY(t){return this.minClientY+this.verticalClientScaling*(t-this.minY)}toClientCoordinates(t,e){return[this.toClientX(t),this.toClientY(e)]}toClientPoint(t){return{x:this.toClientX(t.x),y:this.toClientY(t.y)}}}class d{constructor(t){this.targetSVGDoc=t}set(t){let e=this.targetSVGDoc.viewBox.baseVal;this.targetSVGDoc.setAttribute("width",t*e.width+"px"),this.targetSVGDoc.setAttribute("height",t*e.height+"px")}}class f{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.width/e.width}}class p{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.height/e.height}}function m(t){let e=t.parentNode;e&&e.appendChild(t)}function g(t){let e=t.parentNode;e&&e.prepend(t)}var y,w=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class b{constructor(t){y.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,y,t)}toString(){return w(this,y,"f").innerHTML}set(t){w(this,y,"f").innerHTML=t}}y=new WeakMap;var x,v=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class _{constructor(t){x.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,x,t)}toString(){return v(this,x,"f").outerHTML}set(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");if(e.style.height="0px",document.body.append(e),e.innerHTML=t,!e.firstElementChild)throw new Error("Outer XML must encode an SVG element.");if(e.childNodes.length>1)throw new Error("Outer XML cannot encode multiple DOM nodes.");if(e.firstElementChild.tagName.toLowerCase()!=v(this,x,"f").tagName.toLowerCase())throw new Error("Outer XML must specify an SVG element with the same tag name as the target SVG element.");[...v(this,x,"f").attributes].forEach((t=>v(this,x,"f").removeAttribute(t.name))),[...e.firstElementChild.attributes].forEach((t=>v(this,x,"f").setAttribute(t.name,t.value))),v(this,x,"f").innerHTML=e.firstElementChild.innerHTML,e.remove()}}return x=new WeakMap,e})(),t.exports=e()},986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>c,isBetweenExclusive:()=>l,isBetweenInclusive:()=>c,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>p,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function c(t,e,r){return t>=e&&t<=r}function l(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function p(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{BaseOutline:()=>Br.BaseOutline,DotBracketDrawer:()=>tn,Drawing:()=>$r,Nucleobase:()=>Er.Nucleobase,SchemaDrawer:()=>an,StraightBond:()=>Xr.StraightBond});var t={};r.r(t),r.d(t,{cx:()=>It,cy:()=>Lt,height:()=>Rt,rx:()=>jt,ry:()=>Dt,width:()=>Vt,x:()=>kt,y:()=>Bt});var e={};r.r(e),r.d(e,{from:()=>qt,to:()=>Gt});var i={};r.r(i),r.d(i,{MorphArray:()=>Qt,height:()=>te,width:()=>Kt,x:()=>Jt,y:()=>Zt});var s={};r.r(s),r.d(s,{array:()=>Pe,clear:()=>Ae,move:()=>Ee,plot:()=>Te,size:()=>je});var o={};r.r(o),r.d(o,{amove:()=>or,ax:()=>ir,ay:()=>sr,build:()=>ar,center:()=>nr,cx:()=>er,cy:()=>rr,length:()=>Je,move:()=>tr,plain:()=>Qe,x:()=>Ze,y:()=>Ke});var a={};r.r(a),r.d(a,{dmove:()=>fr,dx:()=>pr,dy:()=>mr,height:()=>gr,move:()=>yr,size:()=>wr,width:()=>br,x:()=>xr,y:()=>vr});const h={},u=[];function c(t,e){if(Array.isArray(t))for(const r of t)c(r,e);else if("object"!=typeof t)d(Object.getOwnPropertyNames(e)),h[t]=Object.assign(h[t]||{},e);else for(const e in t)c(e,t[e])}function l(t){return h[t]||{}}function d(t){u.push(...t)}function f(t,e){let r;const n=t.length,i=[];for(r=0;r<n;r++)i.push(e(t[r]));return i}function p(t){return t%360*Math.PI/180}function m(t){return t.charAt(0).toUpperCase()+t.slice(1)}function g(t,e,r,n){return null!=e&&null!=r||(n=n||t.bbox(),null==e?e=n.width/n.height*r:null==r&&(r=n.height/n.width*e)),{width:e,height:r}}function y(t,e){const r=t.origin;let n=null!=t.ox?t.ox:null!=t.originX?t.originX:"center",i=null!=t.oy?t.oy:null!=t.originY?t.originY:"center";null!=r&&([n,i]=Array.isArray(r)?r:"object"==typeof r?[r.x,r.y]:[r,r]);const s="string"==typeof n,o="string"==typeof i;if(s||o){const{height:t,width:r,x:a,y:h}=e.bbox();s&&(n=n.includes("left")?a:n.includes("right")?a+r:a+r/2),o&&(i=i.includes("top")?h:i.includes("bottom")?h+t:h+t/2)}return[n,i]}const w=new Set(["desc","metadata","title"]),b=t=>w.has(t.nodeName),x=(t,e,r={})=>{const n={...e};for(const t in n)n[t].valueOf()===r[t]&&delete n[t];Object.keys(n).length?t.node.setAttribute("data-svgjs",JSON.stringify(n)):(t.node.removeAttribute("data-svgjs"),t.node.removeAttribute("svgjs:data"))},v="http://www.w3.org/2000/svg",_="http://www.w3.org/2000/xmlns/",S="http://www.w3.org/1999/xlink",M={window:"undefined"==typeof window?null:window,document:"undefined"==typeof document?null:document};class O{}const C={},N="___SYMBOL___ROOT___";function P(t,e=v){return M.document.createElementNS(e,t)}function A(t,e=!1){if(t instanceof O)return t;if("object"==typeof t)return j(t);if(null==t)return new C[N];if("string"==typeof t&&"<"!==t.charAt(0))return j(M.document.querySelector(t));const r=e?M.document.createElement("div"):P("svg");return r.innerHTML=t,t=j(r.firstChild),r.removeChild(r.firstChild),t}function E(t,e){return e&&(e instanceof M.window.Node||e.ownerDocument&&e instanceof e.ownerDocument.defaultView.Node)?e:P(t)}function T(t){if(!t)return null;if(t.instance instanceof O)return t.instance;if("#document-fragment"===t.nodeName)return new C.Fragment(t);let e=m(t.nodeName||"Dom");return"LinearGradient"===e||"RadialGradient"===e?e="Gradient":C[e]||(e="Dom"),new C[e](t)}let j=T;function D(t,e=t.name,r=!1){return C[e]=t,r&&(C[N]=t),d(Object.getOwnPropertyNames(t.prototype)),t}let k=1e3;function B(t){return"Svgjs"+m(t)+k++}function I(t){for(let e=t.children.length-1;e>=0;e--)I(t.children[e]);return t.id?(t.id=B(t.nodeName),t):t}function L(t,e){let r,n;for(n=(t=Array.isArray(t)?t:[t]).length-1;n>=0;n--)for(r in e)t[n].prototype[r]=e[r]}function V(t){return function(...e){const r=e[e.length-1];return!r||r.constructor!==Object||r instanceof Array?t.apply(this,e):t.apply(this,e.slice(0,-1)).attr(r)}}c("Dom",{siblings:function(){return this.parent().children()},position:function(){return this.parent().index(this)},next:function(){return this.siblings()[this.position()+1]},prev:function(){return this.siblings()[this.position()-1]},forward:function(){const t=this.position();return this.parent().add(this.remove(),t+1),this},backward:function(){const t=this.position();return this.parent().add(this.remove(),t?t-1:0),this},front:function(){return this.parent().add(this.remove()),this},back:function(){return this.parent().add(this.remove(),0),this},before:function(t){(t=A(t)).remove();const e=this.position();return this.parent().add(t,e),this},after:function(t){(t=A(t)).remove();const e=this.position();return this.parent().add(t,e+1),this},insertBefore:function(t){return(t=A(t)).before(this),this},insertAfter:function(t){return(t=A(t)).after(this),this}});const R=/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,z=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,F=/rgb\((\d+),(\d+),(\d+)\)/,X=/(#[a-z_][a-z0-9\-_]*)/i,q=/\)\s*,?\s*/,G=/\s/g,Y=/^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i,U=/^rgb\(/,H=/^(\s+)?$/,$=/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,W=/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,Q=/[\s,]+/,J=/[MLHVCSQTAZ]/i;function Z(t){const e=Math.round(t),r=Math.max(0,Math.min(255,e)).toString(16);return 1===r.length?"0"+r:r}function K(t,e){for(let r=e.length;r--;)if(null==t[e[r]])return!1;return!0}function tt(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}c("Dom",{classes:function(){const t=this.attr("class");return null==t?[]:t.trim().split(Q)},hasClass:function(t){return-1!==this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){const e=this.classes();e.push(t),this.attr("class",e.join(" "))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr("class",this.classes().filter((function(e){return e!==t})).join(" ")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)}}),c("Dom",{css:function(t,e){const r={};if(0===arguments.length)return this.node.style.cssText.split(/\s*;\s*/).filter((function(t){return!!t.length})).forEach((function(t){const e=t.split(/\s*:\s*/);r[e[0]]=e[1]})),r;if(arguments.length<2){if(Array.isArray(t)){for(const e of t){const t=e;r[e]=this.node.style.getPropertyValue(t)}return r}if("string"==typeof t)return this.node.style.getPropertyValue(t);if("object"==typeof t)for(const e in t)this.node.style.setProperty(e,null==t[e]||H.test(t[e])?"":t[e])}return 2===arguments.length&&this.node.style.setProperty(t,null==e||H.test(e)?"":e),this},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},visible:function(){return"none"!==this.css("display")}}),c("Dom",{data:function(t,e,r){if(null==t)return this.data(f(function(t){let e;const r=t.length,n=[];for(e=0;e<r;e++)0===t[e].nodeName.indexOf("data-")&&n.push(t[e]);return n}(this.node.attributes),(t=>t.nodeName.slice(5))));if(t instanceof Array){const e={};for(const r of t)e[r]=this.data(r);return e}if("object"==typeof t)for(e in t)this.data(e,t[e]);else if(arguments.length<2)try{return JSON.parse(this.attr("data-"+t))}catch(e){return this.attr("data-"+t)}else this.attr("data-"+t,null===e?null:!0===r||"string"==typeof e||"number"==typeof e?e:JSON.stringify(e));return this}}),c("Dom",{remember:function(t,e){if("object"==typeof arguments[0])for(const e in t)this.remember(e,t[e]);else{if(1===arguments.length)return this.memory()[t];this.memory()[t]=e}return this},forget:function(){if(0===arguments.length)this._memory={};else for(let t=arguments.length-1;t>=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory=this._memory||{}}});class et{constructor(...t){this.init(...t)}static isColor(t){return t&&(t instanceof et||this.isRgb(t)||this.test(t))}static isRgb(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b}static random(t="vibrant",e){const{random:r,round:n,sin:i,PI:s}=Math;if("vibrant"===t){const t=24*r()+57,e=38*r()+45,n=360*r();return new et(t,e,n,"lch")}if("sine"===t){const t=n(80*i(2*s*(e=null==e?r():e)/.5+.01)+150),o=n(50*i(2*s*e/.5+4.6)+200),a=n(100*i(2*s*e/.5+2.3)+150);return new et(t,o,a)}if("pastel"===t){const t=8*r()+86,e=17*r()+9,n=360*r();return new et(t,e,n,"lch")}if("dark"===t){const t=10+10*r(),e=50*r()+86,n=360*r();return new et(t,e,n,"lch")}if("rgb"===t){const t=255*r(),e=255*r(),n=255*r();return new et(t,e,n)}if("lab"===t){const t=100*r(),e=256*r()-128,n=256*r()-128;return new et(t,e,n,"lab")}if("grey"===t){const t=255*r();return new et(t,t,t)}throw new Error("Unsupported random color mode")}static test(t){return"string"==typeof t&&(Y.test(t)||U.test(t))}cmyk(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=Math.min(1-n,1-i,1-s);return 1===o?new et(0,0,0,1,"cmyk"):new et((1-n-o)/(1-o),(1-i-o)/(1-o),(1-s-o)/(1-o),o,"cmyk")}hsl(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=Math.max(n,i,s),a=Math.min(n,i,s),h=(o+a)/2,u=o===a,c=o-a;return new et(360*(u?0:o===n?((i-s)/c+(i<s?6:0))/6:o===i?((s-n)/c+2)/6:o===s?((n-i)/c+4)/6:0),100*(u?0:h>.5?c/(2-o-a):c/(o+a)),100*h,"hsl")}init(t=0,e=0,r=0,n=0,i="rgb"){if(t=t||0,this.space)for(const t in this.space)delete this[this.space[t]];if("number"==typeof t)i="string"==typeof n?n:i,n="string"==typeof n?0:n,Object.assign(this,{_a:t,_b:e,_c:r,_d:n,space:i});else if(t instanceof Array)this.space=e||("string"==typeof t[3]?t[3]:t[4])||"rgb",Object.assign(this,{_a:t[0],_b:t[1],_c:t[2],_d:t[3]||0});else if(t instanceof Object){const r=function(t,e){const r=K(t,"rgb")?{_a:t.r,_b:t.g,_c:t.b,_d:0,space:"rgb"}:K(t,"xyz")?{_a:t.x,_b:t.y,_c:t.z,_d:0,space:"xyz"}:K(t,"hsl")?{_a:t.h,_b:t.s,_c:t.l,_d:0,space:"hsl"}:K(t,"lab")?{_a:t.l,_b:t.a,_c:t.b,_d:0,space:"lab"}:K(t,"lch")?{_a:t.l,_b:t.c,_c:t.h,_d:0,space:"lch"}:K(t,"cmyk")?{_a:t.c,_b:t.m,_c:t.y,_d:t.k,space:"cmyk"}:{_a:0,_b:0,_c:0,space:"rgb"};return r.space=e||r.space,r}(t,e);Object.assign(this,r)}else if("string"==typeof t)if(U.test(t)){const e=t.replace(G,""),[r,n,i]=F.exec(e).slice(1,4).map((t=>parseInt(t)));Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}else{if(!Y.test(t))throw Error("Unsupported string format, can't construct Color");{const e=t=>parseInt(t,16),[,r,n,i]=z.exec(function(t){return 4===t.length?["#",t.substring(1,2),t.substring(1,2),t.substring(2,3),t.substring(2,3),t.substring(3,4),t.substring(3,4)].join(""):t}(t)).map(e);Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}}const{_a:s,_b:o,_c:a,_d:h}=this,u="rgb"===this.space?{r:s,g:o,b:a}:"xyz"===this.space?{x:s,y:o,z:a}:"hsl"===this.space?{h:s,s:o,l:a}:"lab"===this.space?{l:s,a:o,b:a}:"lch"===this.space?{l:s,c:o,h:a}:"cmyk"===this.space?{c:s,m:o,y:a,k:h}:{};Object.assign(this,u)}lab(){const{x:t,y:e,z:r}=this.xyz();return new et(116*e-16,500*(t-e),200*(e-r),"lab")}lch(){const{l:t,a:e,b:r}=this.lab(),n=Math.sqrt(e**2+r**2);let i=180*Math.atan2(r,e)/Math.PI;return i<0&&(i*=-1,i=360-i),new et(t,n,i,"lch")}rgb(){if("rgb"===this.space)return this;if("lab"===(t=this.space)||"xyz"===t||"lch"===t){let{x:t,y:e,z:r}=this;if("lab"===this.space||"lch"===this.space){let{l:n,a:i,b:s}=this;if("lch"===this.space){const{c:t,h:e}=this,r=Math.PI/180;i=t*Math.cos(r*e),s=t*Math.sin(r*e)}const o=(n+16)/116,a=i/500+o,h=o-s/200,u=16/116,c=.008856,l=7.787;t=.95047*(a**3>c?a**3:(a-u)/l),e=1*(o**3>c?o**3:(o-u)/l),r=1.08883*(h**3>c?h**3:(h-u)/l)}const n=3.2406*t+-1.5372*e+-.4986*r,i=-.9689*t+1.8758*e+.0415*r,s=.0557*t+-.204*e+1.057*r,o=Math.pow,a=.0031308,h=n>a?1.055*o(n,1/2.4)-.055:12.92*n,u=i>a?1.055*o(i,1/2.4)-.055:12.92*i,c=s>a?1.055*o(s,1/2.4)-.055:12.92*s;return new et(255*h,255*u,255*c)}if("hsl"===this.space){let{h:t,s:e,l:r}=this;if(t/=360,e/=100,r/=100,0===e)return r*=255,new et(r,r,r);const n=r<.5?r*(1+e):r+e-r*e,i=2*r-n,s=255*tt(i,n,t+1/3),o=255*tt(i,n,t),a=255*tt(i,n,t-1/3);return new et(s,o,a)}if("cmyk"===this.space){const{c:t,m:e,y:r,k:n}=this,i=255*(1-Math.min(1,t*(1-n)+n)),s=255*(1-Math.min(1,e*(1-n)+n)),o=255*(1-Math.min(1,r*(1-n)+n));return new et(i,s,o)}return this;var t}toArray(){const{_a:t,_b:e,_c:r,_d:n,space:i}=this;return[t,e,r,n,i]}toHex(){const[t,e,r]=this._clamped().map(Z);return`#${t}${e}${r}`}toRgb(){const[t,e,r]=this._clamped();return`rgb(${t},${e},${r})`}toString(){return this.toHex()}xyz(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92,a=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92,h=s>.04045?Math.pow((s+.055)/1.055,2.4):s/12.92,u=(.4124*o+.3576*a+.1805*h)/.95047,c=(.2126*o+.7152*a+.0722*h)/1,l=(.0193*o+.1192*a+.9505*h)/1.08883,d=u>.008856?Math.pow(u,1/3):7.787*u+16/116,f=c>.008856?Math.pow(c,1/3):7.787*c+16/116,p=l>.008856?Math.pow(l,1/3):7.787*l+16/116;return new et(d,f,p,"xyz")}_clamped(){const{_a:t,_b:e,_c:r}=this.rgb(),{max:n,min:i,round:s}=Math;return[t,e,r].map((t=>n(0,i(s(t),255))))}}class rt{constructor(...t){this.init(...t)}clone(){return new rt(this)}init(t,e){const r=Array.isArray(t)?{x:t[0],y:t[1]}:"object"==typeof t?{x:t.x,y:t.y}:{x:t,y:e};return this.x=null==r.x?0:r.x,this.y=null==r.y?0:r.y,this}toArray(){return[this.x,this.y]}transform(t){return this.clone().transformO(t)}transformO(t){it.isMatrixLike(t)||(t=new it(t));const{x:e,y:r}=this;return this.x=t.a*e+t.c*r+t.e,this.y=t.b*e+t.d*r+t.f,this}}function nt(t,e,r){return Math.abs(e-t)<(r||1e-6)}class it{constructor(...t){this.init(...t)}static formatTransforms(t){const e="both"===t.flip||!0===t.flip,r=t.flip&&(e||"x"===t.flip)?-1:1,n=t.flip&&(e||"y"===t.flip)?-1:1,i=t.skew&&t.skew.length?t.skew[0]:isFinite(t.skew)?t.skew:isFinite(t.skewX)?t.skewX:0,s=t.skew&&t.skew.length?t.skew[1]:isFinite(t.skew)?t.skew:isFinite(t.skewY)?t.skewY:0,o=t.scale&&t.scale.length?t.scale[0]*r:isFinite(t.scale)?t.scale*r:isFinite(t.scaleX)?t.scaleX*r:r,a=t.scale&&t.scale.length?t.scale[1]*n:isFinite(t.scale)?t.scale*n:isFinite(t.scaleY)?t.scaleY*n:n,h=t.shear||0,u=t.rotate||t.theta||0,c=new rt(t.origin||t.around||t.ox||t.originX,t.oy||t.originY),l=c.x,d=c.y,f=new rt(t.position||t.px||t.positionX||NaN,t.py||t.positionY||NaN),p=f.x,m=f.y,g=new rt(t.translate||t.tx||t.translateX,t.ty||t.translateY),y=g.x,w=g.y,b=new rt(t.relative||t.rx||t.relativeX,t.ry||t.relativeY);return{scaleX:o,scaleY:a,skewX:i,skewY:s,shear:h,theta:u,rx:b.x,ry:b.y,tx:y,ty:w,ox:l,oy:d,px:p,py:m}}static fromArray(t){return{a:t[0],b:t[1],c:t[2],d:t[3],e:t[4],f:t[5]}}static isMatrixLike(t){return null!=t.a||null!=t.b||null!=t.c||null!=t.d||null!=t.e||null!=t.f}static matrixMultiply(t,e,r){const n=t.a*e.a+t.c*e.b,i=t.b*e.a+t.d*e.b,s=t.a*e.c+t.c*e.d,o=t.b*e.c+t.d*e.d,a=t.e+t.a*e.e+t.c*e.f,h=t.f+t.b*e.e+t.d*e.f;return r.a=n,r.b=i,r.c=s,r.d=o,r.e=a,r.f=h,r}around(t,e,r){return this.clone().aroundO(t,e,r)}aroundO(t,e,r){const n=t||0,i=e||0;return this.translateO(-n,-i).lmultiplyO(r).translateO(n,i)}clone(){return new it(this)}decompose(t=0,e=0){const r=this.a,n=this.b,i=this.c,s=this.d,o=this.e,a=this.f,h=r*s-n*i,u=h>0?1:-1,c=u*Math.sqrt(r*r+n*n),l=Math.atan2(u*n,u*r),d=180/Math.PI*l,f=Math.cos(l),p=Math.sin(l),m=(r*i+n*s)/h,g=i*c/(m*r-n)||s*c/(m*n+r);return{scaleX:c,scaleY:g,shear:m,rotate:d,translateX:o-t+t*f*c+e*(m*f*c-p*g),translateY:a-e+t*p*c+e*(m*p*c+f*g),originX:t,originY:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}equals(t){if(t===this)return!0;const e=new it(t);return nt(this.a,e.a)&&nt(this.b,e.b)&&nt(this.c,e.c)&&nt(this.d,e.d)&&nt(this.e,e.e)&&nt(this.f,e.f)}flip(t,e){return this.clone().flipO(t,e)}flipO(t,e){return"x"===t?this.scaleO(-1,1,e,0):"y"===t?this.scaleO(1,-1,0,e):this.scaleO(-1,-1,t,e||t)}init(t){const e=it.fromArray([1,0,0,1,0,0]);return t=t instanceof Nt?t.matrixify():"string"==typeof t?it.fromArray(t.split(Q).map(parseFloat)):Array.isArray(t)?it.fromArray(t):"object"==typeof t&&it.isMatrixLike(t)?t:"object"==typeof t?(new it).transform(t):6===arguments.length?it.fromArray([].slice.call(arguments)):e,this.a=null!=t.a?t.a:e.a,this.b=null!=t.b?t.b:e.b,this.c=null!=t.c?t.c:e.c,this.d=null!=t.d?t.d:e.d,this.e=null!=t.e?t.e:e.e,this.f=null!=t.f?t.f:e.f,this}inverse(){return this.clone().inverseO()}inverseO(){const t=this.a,e=this.b,r=this.c,n=this.d,i=this.e,s=this.f,o=t*n-e*r;if(!o)throw new Error("Cannot invert "+this);const a=n/o,h=-e/o,u=-r/o,c=t/o,l=-(a*i+u*s),d=-(h*i+c*s);return this.a=a,this.b=h,this.c=u,this.d=c,this.e=l,this.f=d,this}lmultiply(t){return this.clone().lmultiplyO(t)}lmultiplyO(t){const e=t instanceof it?t:new it(t);return it.matrixMultiply(e,this,this)}multiply(t){return this.clone().multiplyO(t)}multiplyO(t){const e=t instanceof it?t:new it(t);return it.matrixMultiply(this,e,this)}rotate(t,e,r){return this.clone().rotateO(t,e,r)}rotateO(t,e=0,r=0){t=p(t);const n=Math.cos(t),i=Math.sin(t),{a:s,b:o,c:a,d:h,e:u,f:c}=this;return this.a=s*n-o*i,this.b=o*n+s*i,this.c=a*n-h*i,this.d=h*n+a*i,this.e=u*n-c*i+r*i-e*n+e,this.f=c*n+u*i-e*i-r*n+r,this}scale(){return this.clone().scaleO(...arguments)}scaleO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t);const{a:i,b:s,c:o,d:a,e:h,f:u}=this;return this.a=i*t,this.b=s*e,this.c=o*t,this.d=a*e,this.e=h*t-r*t+r,this.f=u*e-n*e+n,this}shear(t,e,r){return this.clone().shearO(t,e,r)}shearO(t,e=0,r=0){const{a:n,b:i,c:s,d:o,e:a,f:h}=this;return this.a=n+i*t,this.c=s+o*t,this.e=a+h*t-r*t,this}skew(){return this.clone().skewO(...arguments)}skewO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t),t=p(t),e=p(e);const i=Math.tan(t),s=Math.tan(e),{a:o,b:a,c:h,d:u,e:c,f:l}=this;return this.a=o+a*i,this.b=a+o*s,this.c=h+u*i,this.d=u+h*s,this.e=c+l*i-n*i,this.f=l+c*s-r*s,this}skewX(t,e,r){return this.skew(t,0,e,r)}skewY(t,e,r){return this.skew(0,t,e,r)}toArray(){return[this.a,this.b,this.c,this.d,this.e,this.f]}toString(){return"matrix("+this.a+","+this.b+","+this.c+","+this.d+","+this.e+","+this.f+")"}transform(t){if(it.isMatrixLike(t))return new it(t).multiplyO(this);const e=it.formatTransforms(t),{x:r,y:n}=new rt(e.ox,e.oy).transform(this),i=(new it).translateO(e.rx,e.ry).lmultiplyO(this).translateO(-r,-n).scaleO(e.scaleX,e.scaleY).skewO(e.skewX,e.skewY).shearO(e.shear).rotateO(e.theta).translateO(r,n);if(isFinite(e.px)||isFinite(e.py)){const t=new rt(r,n).transform(i),s=isFinite(e.px)?e.px-t.x:0,o=isFinite(e.py)?e.py-t.y:0;i.translateO(s,o)}return i.translateO(e.tx,e.ty),i}translate(t,e){return this.clone().translateO(t,e)}translateO(t,e){return this.e+=t||0,this.f+=e||0,this}valueOf(){return{a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}}function st(){if(!st.nodes){const t=A().size(2,0);t.node.style.cssText=["opacity: 0","position: absolute","left: -100%","top: -100%","overflow: hidden"].join(";"),t.attr("focusable","false"),t.attr("aria-hidden","true");const e=t.path().node;st.nodes={svg:t,path:e}}if(!st.nodes.svg.node.parentNode){const t=M.document.body||M.document.documentElement;st.nodes.svg.addTo(t)}return st.nodes}function ot(t){return!(t.width||t.height||t.x||t.y)}D(it,"Matrix");class at{constructor(...t){this.init(...t)}addOffset(){return this.x+=M.window.pageXOffset,this.y+=M.window.pageYOffset,new at(this)}init(t){return t="string"==typeof t?t.split(Q).map(parseFloat):Array.isArray(t)?t:"object"==typeof t?[null!=t.left?t.left:t.x,null!=t.top?t.top:t.y,t.width,t.height]:4===arguments.length?[].slice.call(arguments):[0,0,0,0],this.x=t[0]||0,this.y=t[1]||0,this.width=this.w=t[2]||0,this.height=this.h=t[3]||0,this.x2=this.x+this.w,this.y2=this.y+this.h,this.cx=this.x+this.w/2,this.cy=this.y+this.h/2,this}isNulled(){return ot(this)}merge(t){const e=Math.min(this.x,t.x),r=Math.min(this.y,t.y),n=Math.max(this.x+this.width,t.x+t.width)-e,i=Math.max(this.y+this.height,t.y+t.height)-r;return new at(e,r,n,i)}toArray(){return[this.x,this.y,this.width,this.height]}toString(){return this.x+" "+this.y+" "+this.width+" "+this.height}transform(t){t instanceof it||(t=new it(t));let e=1/0,r=-1/0,n=1/0,i=-1/0;return[new rt(this.x,this.y),new rt(this.x2,this.y),new rt(this.x,this.y2),new rt(this.x2,this.y2)].forEach((function(s){s=s.transform(t),e=Math.min(e,s.x),r=Math.max(r,s.x),n=Math.min(n,s.y),i=Math.max(i,s.y)})),new at(e,n,r-e,i-n)}}function ht(t,e,r){let n;try{if(n=e(t.node),ot(n)&&(i=t.node)!==M.document&&!(M.document.documentElement.contains||function(t){for(;t.parentNode;)t=t.parentNode;return t===M.document}).call(M.document.documentElement,i))throw new Error("Element not in the dom")}catch(e){n=r(t)}var i;return n}c({viewbox:{viewbox(t,e,r,n){return null==t?new at(this.attr("viewBox")):this.attr("viewBox",new at(t,e,r,n))},zoom(t,e){let{width:r,height:n}=this.attr(["width","height"]);if((r||n)&&"string"!=typeof r&&"string"!=typeof n||(r=this.node.clientWidth,n=this.node.clientHeight),!r||!n)throw new Error("Impossible to get absolute width and height. Please provide an absolute width and height attribute on the zooming element");const i=this.viewbox(),s=r/i.width,o=n/i.height,a=Math.min(s,o);if(null==t)return a;let h=a/t;h===1/0&&(h=Number.MAX_SAFE_INTEGER/100),e=e||new rt(r/2/s+i.x,n/2/o+i.y);const u=new at(i).transform(new it({scale:h,origin:e}));return this.viewbox(u)}}}),D(at,"Box");class ut extends Array{constructor(t=[],...e){if(super(t,...e),"number"==typeof t)return this;this.length=0,this.push(...t)}}const ct=ut;L([ut],{each(t,...e){return"function"==typeof t?this.map(((e,r,n)=>t.call(e,e,r,n))):this.map((r=>r[t](...e)))},toArray(){return Array.prototype.concat.apply([],this)}});const lt=["toArray","constructor","each"];function dt(t,e){return new ct(f((e||M.document).querySelectorAll(t),(function(t){return T(t)})))}ut.extend=function(t){t=t.reduce(((t,e)=>(lt.includes(e)||"_"===e[0]||(e in Array.prototype&&(t["$"+e]=Array.prototype[e]),t[e]=function(...t){return this.each(e,...t)}),t)),{}),L([ut],t)};let ft=0;const pt={};function mt(t){let e=t.getEventHolder();return e===M.window&&(e=pt),e.events||(e.events={}),e.events}function gt(t){return t.getEventTarget()}function yt(t,e,r,n,i){const s=r.bind(n||t),o=A(t),a=mt(o),h=gt(o);e=Array.isArray(e)?e:e.split(Q),r._svgjsListenerId||(r._svgjsListenerId=++ft),e.forEach((function(t){const e=t.split(".")[0],n=t.split(".")[1]||"*";a[e]=a[e]||{},a[e][n]=a[e][n]||{},a[e][n][r._svgjsListenerId]=s,h.addEventListener(e,s,i||!1)}))}function wt(t,e,r,n){const i=A(t),s=mt(i),o=gt(i);("function"!=typeof r||(r=r._svgjsListenerId))&&(e=Array.isArray(e)?e:(e||"").split(Q)).forEach((function(t){const e=t&&t.split(".")[0],a=t&&t.split(".")[1];let h,u;if(r)s[e]&&s[e][a||"*"]&&(o.removeEventListener(e,s[e][a||"*"][r],n||!1),delete s[e][a||"*"][r]);else if(e&&a){if(s[e]&&s[e][a]){for(u in s[e][a])wt(o,[e,a].join("."),u);delete s[e][a]}}else if(a)for(t in s)for(h in s[t])a===h&&wt(o,[t,a].join("."));else if(e){if(s[e]){for(h in s[e])wt(o,[e,h].join("."));delete s[e]}}else{for(t in s)wt(o,t);!function(t){let e=t.getEventHolder();e===M.window&&(e=pt),e.events&&(e.events={})}(i)}}))}class bt extends O{addEventListener(){}dispatch(t,e,r){return function(t,e,r,n){const i=gt(t);return e instanceof M.window.Event||(e=new M.window.CustomEvent(e,{detail:r,cancelable:!0,...n})),i.dispatchEvent(e),e}(this,t,e,r)}dispatchEvent(t){const e=this.getEventHolder().events;if(!e)return!0;const r=e[t.type];for(const e in r)for(const n in r[e])r[e][n](t);return!t.defaultPrevented}fire(t,e,r){return this.dispatch(t,e,r),this}getEventHolder(){return this}getEventTarget(){return this}off(t,e,r){return wt(this,t,e,r),this}on(t,e,r,n){return yt(this,t,e,r,n),this}removeEventListener(){}}function xt(){}D(bt,"EventTarget");const vt={"fill-opacity":1,"stroke-opacity":1,"stroke-width":0,"stroke-linejoin":"miter","stroke-linecap":"butt",fill:"#000000",stroke:"#000000",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,"stop-opacity":1,"stop-color":"#000000","text-anchor":"start"};class _t extends Array{constructor(...t){super(...t),this.init(...t)}clone(){return new this.constructor(this)}init(t){return"number"==typeof t||(this.length=0,this.push(...this.parse(t))),this}parse(t=[]){return t instanceof Array?t:t.trim().split(Q).map(parseFloat)}toArray(){return Array.prototype.concat.apply([],this)}toSet(){return new Set(this)}toString(){return this.join(" ")}valueOf(){const t=[];return t.push(...this),t}}class St{constructor(...t){this.init(...t)}convert(t){return new St(this.value,t)}divide(t){return t=new St(t),new St(this/t,this.unit||t.unit)}init(t,e){return e=Array.isArray(t)?t[1]:e,t=Array.isArray(t)?t[0]:t,this.value=0,this.unit=e||"","number"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-34e37:34e37:"string"==typeof t?(e=t.match(R))&&(this.value=parseFloat(e[1]),"%"===e[5]?this.value/=100:"s"===e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof St&&(this.value=t.valueOf(),this.unit=t.unit),this}minus(t){return t=new St(t),new St(this-t,this.unit||t.unit)}plus(t){return t=new St(t),new St(this+t,this.unit||t.unit)}times(t){return t=new St(t),new St(this*t,this.unit||t.unit)}toArray(){return[this.value,this.unit]}toJSON(){return this.toString()}toString(){return("%"===this.unit?~~(1e8*this.value)/1e6:"s"===this.unit?this.value/1e3:this.value)+this.unit}valueOf(){return this.value}}const Mt=new Set(["fill","stroke","color","bgcolor","stop-color","flood-color","lighting-color"]),Ot=[];class Ct extends bt{constructor(t,e){super(),this.node=t,this.type=t.nodeName,e&&t!==e&&this.attr(e)}add(t,e){return(t=A(t)).removeNamespace&&this.node instanceof M.window.SVGElement&&t.removeNamespace(),null==e?this.node.appendChild(t.node):t.node!==this.node.childNodes[e]&&this.node.insertBefore(t.node,this.node.childNodes[e]),this}addTo(t,e){return A(t).put(this,e)}children(){return new ct(f(this.node.children,(function(t){return T(t)})))}clear(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return this}clone(t=!0,e=!0){this.writeDataToDom();let r=this.node.cloneNode(t);return e&&(r=I(r)),new this.constructor(r)}each(t,e){const r=this.children();let n,i;for(n=0,i=r.length;n<i;n++)t.apply(r[n],[n,r]),e&&r[n].each(t,e);return this}element(t,e){return this.put(new Ct(P(t),e))}first(){return T(this.node.firstChild)}get(t){return T(this.node.childNodes[t])}getEventHolder(){return this.node}getEventTarget(){return this.node}has(t){return this.index(t)>=0}html(t,e){return this.xml(t,e,"http://www.w3.org/1999/xhtml")}id(t){return void 0!==t||this.node.id||(this.node.id=B(this.type)),this.attr("id",t)}index(t){return[].slice.call(this.node.childNodes).indexOf(t.node)}last(){return T(this.node.lastChild)}matches(t){const e=this.node,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector||null;return r&&r.call(e,t)}parent(t){let e=this;if(!e.node.parentNode)return null;if(e=T(e.node.parentNode),!t)return e;do{if("string"==typeof t?e.matches(t):e instanceof t)return e}while(e=T(e.node.parentNode));return e}put(t,e){return t=A(t),this.add(t,e),t}putIn(t,e){return A(t).add(this,e)}remove(){return this.parent()&&this.parent().removeElement(this),this}removeElement(t){return this.node.removeChild(t.node),this}replace(t){return t=A(t),this.node.parentNode&&this.node.parentNode.replaceChild(t.node,this.node),t}round(t=2,e=null){const r=10**t,n=this.attr(e);for(const t in n)"number"==typeof n[t]&&(n[t]=Math.round(n[t]*r)/r);return this.attr(n),this}svg(t,e){return this.xml(t,e,v)}toString(){return this.id()}words(t){return this.node.textContent=t,this}wrap(t){const e=this.parent();if(!e)return this.addTo(t);const r=e.index(this);return e.put(t,r).put(this)}writeDataToDom(){return this.each((function(){this.writeDataToDom()})),this}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){e=null==e||e,this.writeDataToDom();let r=this;if(null!=t){if(r=T(r.node.cloneNode(!0)),e){const e=t(r);if(r=e||r,!1===e)return""}r.each((function(){const e=t(this),r=e||this;!1===e?this.remove():e&&this!==r&&this.replace(r)}),!0)}return e?r.node.outerHTML:r.node.innerHTML}e=null!=e&&e;const n=P("wrapper",r),i=M.document.createDocumentFragment();n.innerHTML=t;for(let t=n.children.length;t--;)i.appendChild(n.firstElementChild);const s=this.parent();return e?this.replace(i)&&s:this.add(i)}}L(Ct,{attr:function(t,e,r){if(null==t){t={},e=this.node.attributes;for(const r of e)t[r.nodeName]=$.test(r.nodeValue)?parseFloat(r.nodeValue):r.nodeValue;return t}if(t instanceof Array)return t.reduce(((t,e)=>(t[e]=this.attr(e),t)),{});if("object"==typeof t&&t.constructor===Object)for(e in t)this.attr(e,t[e]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?vt[t]:$.test(e)?parseFloat(e):e;"number"==typeof(e=Ot.reduce(((e,r)=>r(t,e,this)),e))?e=new St(e):Mt.has(t)&&et.isColor(e)?e=new et(e):e.constructor===Array&&(e=new _t(e)),"leading"===t?this.leading&&this.leading(e):"string"==typeof r?this.node.setAttributeNS(r,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||"font-size"!==t&&"x"!==t||this.rebuild()}return this},find:function(t){return dt(t,this.node)},findOne:function(t){return T(this.node.querySelector(t))}}),D(Ct,"Dom");class Nt extends Ct{constructor(t,e){super(t,e),this.dom={},this.node.instance=this,(t.hasAttribute("data-svgjs")||t.hasAttribute("svgjs:data"))&&this.setData(JSON.parse(t.getAttribute("data-svgjs"))??JSON.parse(t.getAttribute("svgjs:data"))??{})}center(t,e){return this.cx(t).cy(e)}cx(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)}cy(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)}defs(){const t=this.root();return t&&t.defs()}dmove(t,e){return this.dx(t).dy(e)}dx(t=0){return this.x(new St(t).plus(this.x()))}dy(t=0){return this.y(new St(t).plus(this.y()))}getEventHolder(){return this}height(t){return this.attr("height",t)}move(t,e){return this.x(t).y(e)}parents(t=this.root()){const e="string"==typeof t;e||(t=A(t));const r=new ct;let n=this;for(;(n=n.parent())&&n.node!==M.document&&"#document-fragment"!==n.nodeName&&(r.push(n),e||n.node!==t.node)&&(!e||!n.matches(t));)if(n.node===this.root().node)return null;return r}reference(t){if(!(t=this.attr(t)))return null;const e=(t+"").match(X);return e?A(e[1]):null}root(){const t=this.parent(C[N]);return t&&t.root()}setData(t){return this.dom=t,this}size(t,e){const r=g(this,t,e);return this.width(new St(r.width)).height(new St(r.height))}width(t){return this.attr("width",t)}writeDataToDom(){return x(this,this.dom),super.writeDataToDom()}x(t){return this.attr("x",t)}y(t){return this.attr("y",t)}}L(Nt,{bbox:function(){const t=ht(this,(t=>t.getBBox()),(t=>{try{const e=t.clone().addTo(st().svg).show(),r=e.node.getBBox();return e.remove(),r}catch(e){throw new Error(`Getting bbox of element "${t.node.nodeName}" is not possible: ${e.toString()}`)}}));return new at(t)},rbox:function(t){const e=ht(this,(t=>t.getBoundingClientRect()),(t=>{throw new Error(`Getting rbox of element "${t.node.nodeName}" is not possible`)})),r=new at(e);return t?r.transform(t.screenCTM().inverseO()):r.addOffset()},inside:function(t,e){const r=this.bbox();return t>r.x&&e>r.y&&t<r.x+r.width&&e<r.y+r.height},point:function(t,e){return new rt(t,e).transformO(this.screenCTM().inverseO())},ctm:function(){return new it(this.node.getCTM())},screenCTM:function(){try{if("function"==typeof this.isRoot&&!this.isRoot()){const t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new it(e)}return new it(this.node.getScreenCTM())}catch(t){return console.warn(`Cannot get CTM from SVG node ${this.node.nodeName}. Is the element rendered?`),new it}}}),D(Nt,"Element");const Pt={stroke:["color","width","opacity","linecap","linejoin","miterlimit","dasharray","dashoffset"],fill:["color","opacity","rule"],prefix:function(t,e){return"color"===e?t:t+"-"+e}};["fill","stroke"].forEach((function(t){const e={};let r;e[t]=function(e){if(void 0===e)return this.attr(t);if("string"==typeof e||e instanceof et||et.isRgb(e)||e instanceof Nt)this.attr(t,e);else for(r=Pt[t].length-1;r>=0;r--)null!=e[Pt[t][r]]&&this.attr(Pt.prefix(t,Pt[t][r]),e[Pt[t][r]]);return this},c(["Element","Runner"],e)})),c(["Element","Runner"],{matrix:function(t,e,r,n,i,s){return null==t?new it(this):this.attr("transform",new it(t,e,r,n,i,s))},rotate:function(t,e,r){return this.transform({rotate:t,ox:e,oy:r},!0)},skew:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({skew:t,ox:e,oy:r},!0):this.transform({skew:[t,e],ox:r,oy:n},!0)},shear:function(t,e,r){return this.transform({shear:t,ox:e,oy:r},!0)},scale:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({scale:t,ox:e,oy:r},!0):this.transform({scale:[t,e],ox:r,oy:n},!0)},translate:function(t,e){return this.transform({translate:[t,e]},!0)},relative:function(t,e){return this.transform({relative:[t,e]},!0)},flip:function(t="both",e="center"){return-1==="xybothtrue".indexOf(t)&&(e=t,t="both"),this.transform({flip:t,origin:e},!0)},opacity:function(t){return this.attr("opacity",t)}}),c("radius",{radius:function(t,e=t){return"radialGradient"===(this._element||this).type?this.attr("r",new St(t)):this.rx(t).ry(e)}}),c("Path",{length:function(){return this.node.getTotalLength()},pointAt:function(t){return new rt(this.node.getPointAtLength(t))}}),c(["Element","Runner"],{font:function(t,e){if("object"==typeof t){for(e in t)this.font(e,t[e]);return this}return"leading"===t?this.leading(e):"anchor"===t?this.attr("text-anchor",e):"size"===t||"family"===t||"weight"===t||"stretch"===t||"variant"===t||"style"===t?this.attr("font-"+t,e):this.attr(t,e)}}),c("Element",["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","touchstart","touchmove","touchleave","touchend","touchcancel","contextmenu","wheel","pointerdown","pointermove","pointerup","pointerleave","pointercancel"].reduce((function(t,e){return t[e]=function(t){return null===t?this.off(e):this.on(e,t),this},t}),{})),c("Element",{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(q).slice(0,-1).map((function(t){const e=t.trim().split("(");return[e[0],e[1].split(Q).map((function(t){return parseFloat(t)}))]})).reverse().reduce((function(t,e){return"matrix"===e[0]?t.lmultiply(it.fromArray(e[1])):t[e[0]].apply(t,e[1])}),new it)},toParent:function(t,e){if(this===t)return this;if(b(this.node))return this.addTo(t,e);const r=this.screenCTM(),n=t.screenCTM().inverse();return this.addTo(t,e).untransform().transform(n.multiply(r)),this},toRoot:function(t){return this.toParent(this.root(),t)},transform:function(t,e){if(null==t||"string"==typeof t){const e=new it(this).decompose();return null==t?e:e[t]}it.isMatrixLike(t)||(t={...t,origin:y(t,this)});const r=new it(!0===e?this:e||!1).transform(t);return this.attr("transform",r)}});class At extends Nt{flatten(){return this.each((function(){if(this instanceof At)return this.flatten().ungroup()})),this}ungroup(t=this.parent(),e=t.index(this)){return e=-1===e?t.children().length:e,this.each((function(r,n){return n[n.length-r-1].toParent(t,e)})),this.remove()}}D(At,"Container");class Et extends At{constructor(t,e=t){super(E("defs",t),e)}flatten(){return this}ungroup(){return this}}D(Et,"Defs");class Tt extends Nt{}function jt(t){return this.attr("rx",t)}function Dt(t){return this.attr("ry",t)}function kt(t){return null==t?this.cx()-this.rx():this.cx(t+this.rx())}function Bt(t){return null==t?this.cy()-this.ry():this.cy(t+this.ry())}function It(t){return this.attr("cx",t)}function Lt(t){return this.attr("cy",t)}function Vt(t){return null==t?2*this.rx():this.rx(new St(t).divide(2))}function Rt(t){return null==t?2*this.ry():this.ry(new St(t).divide(2))}D(Tt,"Shape");class zt extends Tt{constructor(t,e=t){super(E("ellipse",t),e)}size(t,e){const r=g(this,t,e);return this.rx(new St(r.width).divide(2)).ry(new St(r.height).divide(2))}}L(zt,t),c("Container",{ellipse:V((function(t=0,e=t){return this.put(new zt).size(t,e).move(0,0)}))}),D(zt,"Ellipse");class Ft extends Ct{constructor(t=M.document.createDocumentFragment()){super(t)}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){const t=new Ct(P("wrapper",r));return t.add(this.node.cloneNode(!0)),t.xml(!1,r)}return super.xml(t,!1,r)}}D(Ft,"Fragment");const Xt=Ft;function qt(t,e){return"radialGradient"===(this._element||this).type?this.attr({fx:new St(t),fy:new St(e)}):this.attr({x1:new St(t),y1:new St(e)})}function Gt(t,e){return"radialGradient"===(this._element||this).type?this.attr({cx:new St(t),cy:new St(e)}):this.attr({x2:new St(t),y2:new St(e)})}class Yt extends At{constructor(t,e){super(E(t+"Gradient","string"==typeof t?null:t),e)}attr(t,e,r){return"transform"===t&&(t="gradientTransform"),super.attr(t,e,r)}bbox(){return new at}targets(){return dt("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}}L(Yt,e),c({Container:{gradient(...t){return this.defs().gradient(...t)}},Defs:{gradient:V((function(t,e){return this.put(new Yt(t)).update(e)}))}}),D(Yt,"Gradient");class Ut extends At{constructor(t,e=t){super(E("pattern",t),e)}attr(t,e,r){return"transform"===t&&(t="patternTransform"),super.attr(t,e,r)}bbox(){return new at}targets(){return dt("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}}c({Container:{pattern(...t){return this.defs().pattern(...t)}},Defs:{pattern:V((function(t,e,r){return this.put(new Ut).update(r).attr({x:0,y:0,width:t,height:e,patternUnits:"userSpaceOnUse"})}))}}),D(Ut,"Pattern");class Ht extends Tt{constructor(t,e=t){super(E("image",t),e)}load(t,e){if(!t)return this;const r=new M.window.Image;return yt(r,"load",(function(t){const n=this.parent(Ut);0===this.width()&&0===this.height()&&this.size(r.width,r.height),n instanceof Ut&&0===n.width()&&0===n.height()&&n.size(this.width(),this.height()),"function"==typeof e&&e.call(this,t)}),this),yt(r,"load error",(function(){wt(r)})),this.attr("href",r.src=t,S)}}var $t;$t=function(t,e,r){return"fill"!==t&&"stroke"!==t||W.test(e)&&(e=r.root().defs().image(e)),e instanceof Ht&&(e=r.root().defs().pattern(0,0,(t=>{t.add(e)}))),e},Ot.push($t),c({Container:{image:V((function(t,e){return this.put(new Ht).size(0,0).load(t,e)}))}}),D(Ht,"Image");class Wt extends _t{bbox(){let t=-1/0,e=-1/0,r=1/0,n=1/0;return this.forEach((function(i){t=Math.max(i[0],t),e=Math.max(i[1],e),r=Math.min(i[0],r),n=Math.min(i[1],n)})),new at(r,n,t-r,e-n)}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r=this.length-1;r>=0;r--)this[r]=[this[r][0]+t,this[r][1]+e];return this}parse(t=[0,0]){const e=[];(t=t instanceof Array?Array.prototype.concat.apply([],t):t.trim().split(Q).map(parseFloat)).length%2!=0&&t.pop();for(let r=0,n=t.length;r<n;r+=2)e.push([t[r],t[r+1]]);return e}size(t,e){let r;const n=this.bbox();for(r=this.length-1;r>=0;r--)n.width&&(this[r][0]=(this[r][0]-n.x)*t/n.width+n.x),n.height&&(this[r][1]=(this[r][1]-n.y)*e/n.height+n.y);return this}toLine(){return{x1:this[0][0],y1:this[0][1],x2:this[1][0],y2:this[1][1]}}toString(){const t=[];for(let e=0,r=this.length;e<r;e++)t.push(this[e].join(","));return t.join(" ")}transform(t){return this.clone().transformO(t)}transformO(t){it.isMatrixLike(t)||(t=new it(t));for(let e=this.length;e--;){const[r,n]=this[e];this[e][0]=t.a*r+t.c*n+t.e,this[e][1]=t.b*r+t.d*n+t.f}return this}}const Qt=Wt;function Jt(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}function Zt(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}function Kt(t){const e=this.bbox();return null==t?e.width:this.size(t,e.height)}function te(t){const e=this.bbox();return null==t?e.height:this.size(e.width,t)}class ee extends Tt{constructor(t,e=t){super(E("line",t),e)}array(){return new Wt([[this.attr("x1"),this.attr("y1")],[this.attr("x2"),this.attr("y2")]])}move(t,e){return this.attr(this.array().move(t,e).toLine())}plot(t,e,r,n){return null==t?this.array():(t=void 0!==e?{x1:t,y1:e,x2:r,y2:n}:new Wt(t).toLine(),this.attr(t))}size(t,e){const r=g(this,t,e);return this.attr(this.array().size(r.width,r.height).toLine())}}L(ee,i),c({Container:{line:V((function(...t){return ee.prototype.plot.apply(this.put(new ee),null!=t[0]?t:[0,0,0,0])}))}}),D(ee,"Line");class re extends At{constructor(t,e=t){super(E("marker",t),e)}height(t){return this.attr("markerHeight",t)}orient(t){return this.attr("orient",t)}ref(t,e){return this.attr("refX",t).attr("refY",e)}toString(){return"url(#"+this.id()+")"}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}width(t){return this.attr("markerWidth",t)}}function ne(t,e){return function(r){return null==r?this[t]:(this[t]=r,e&&e.call(this),this)}}c({Container:{marker(...t){return this.defs().marker(...t)}},Defs:{marker:V((function(t,e,r){return this.put(new re).size(t,e).ref(t/2,e/2).viewbox(0,0,t,e).attr("orient","auto").update(r)}))},marker:{marker(t,e,r,n){let i=["marker"];return"all"!==t&&i.push(t),i=i.join("-"),t=arguments[1]instanceof re?arguments[1]:this.defs().marker(e,r,n),this.attr(i,t)}}}),D(re,"Marker");const ie={"-":function(t){return t},"<>":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)},bezier:function(t,e,r,n){return function(i){return i<0?t>0?e/t*i:r>0?n/r*i:0:i>1?r<1?(1-n)/(1-r)*i+(n-r)/(1-r):t<1?(1-e)/(1-t)*i+(e-t)/(1-t):1:3*i*(1-i)**2*e+3*i**2*(1-i)*n+i**3}},steps:function(t,e="end"){e=e.split("-").reverse()[0];let r=t;return"none"===e?--r:"both"===e&&++r,(n,i=!1)=>{let s=Math.floor(n*t);const o=n*s%1==0;return"start"!==e&&"both"!==e||++s,i&&o&&--s,n>=0&&s<0&&(s=0),n<=1&&s>r&&(s=r),s/r}}};class se{done(){return!1}}class oe extends se{constructor(t=">"){super(),this.ease=ie[t]||t}step(t,e,r){return"number"!=typeof t?r<1?t:e:t+(e-t)*this.ease(r)}}class ae extends se{constructor(t){super(),this.stepper=t}done(t){return t.done}step(t,e,r,n){return this.stepper(t,e,r,n)}}function he(){const t=(this._duration||500)/1e3,e=this._overshoot||0,r=Math.PI,n=Math.log(e/100+1e-10),i=-n/Math.sqrt(r*r+n*n),s=3.9/(i*t);this.d=2*i*s,this.k=s*s}L(class extends ae{constructor(t=500,e=0){super(),this.duration(t).overshoot(e)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;r>100&&(r=16),r/=1e3;const i=n.velocity||0,s=-this.d*i-this.k*(t-e),o=t+i*r+s*r*r/2;return n.velocity=i+s*r,n.done=Math.abs(e-o)+Math.abs(i)<.002,n.done?e:o}},{duration:ne("_duration",he),overshoot:ne("_overshoot",he)}),L(class extends ae{constructor(t=.1,e=.01,r=0,n=1e3){super(),this.p(t).i(e).d(r).windup(n)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;const i=e-t;let s=(n.integral||0)+i*r;const o=(i-(n.error||0))/r,a=this._windup;return!1!==a&&(s=Math.max(-a,Math.min(s,a))),n.error=i,n.integral=s,n.done=Math.abs(i)<.001,n.done?e:t+(this.P*i+this.I*s+this.D*o)}},{windup:ne("_windup"),p:ne("P"),i:ne("I"),d:ne("D")});const ue={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0},ce={M:function(t,e,r){return e.x=r.x=t[0],e.y=r.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},S:function(t,e){return e.x=t[2],e.y=t[3],["S",t[0],t[1],t[2],t[3]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},T:function(t,e){return e.x=t[0],e.y=t[1],["T",t[0],t[1]]},Z:function(t,e,r){return e.x=r.x,e.y=r.y,["Z"]},A:function(t,e){return e.x=t[5],e.y=t[6],["A",t[0],t[1],t[2],t[3],t[4],t[5],t[6]]}},le="mlhvqtcsaz".split("");for(let t=0,e=le.length;t<e;++t)ce[le[t]]=function(t){return function(e,r,n){if("H"===t)e[0]=e[0]+r.x;else if("V"===t)e[0]=e[0]+r.y;else if("A"===t)e[5]=e[5]+r.x,e[6]=e[6]+r.y;else for(let t=0,n=e.length;t<n;++t)e[t]=e[t]+(t%2?r.y:r.x);return ce[t](e,r,n)}}(le[t].toUpperCase());function de(t){return t.segment.length&&t.segment.length-1===ue[t.segment[0].toUpperCase()]}function fe(t,e){t.inNumber&&pe(t,!1);const r=J.test(e);if(r)t.segment=[e];else{const e=t.lastCommand,r=e.toLowerCase(),n=e===r;t.segment=["m"===r?n?"l":"L":e]}return t.inSegment=!0,t.lastCommand=t.segment[0],r}function pe(t,e){if(!t.inNumber)throw new Error("Parser Error");t.number&&t.segment.push(parseFloat(t.number)),t.inNumber=e,t.number="",t.pointSeen=!1,t.hasExponent=!1,de(t)&&me(t)}function me(t){t.inSegment=!1,t.absolute&&(t.segment=function(t){const e=t.segment[0];return ce[e](t.segment.slice(1),t.p,t.p0)}(t)),t.segments.push(t.segment)}function ge(t){if(!t.segment.length)return!1;const e="A"===t.segment[0].toUpperCase(),r=t.segment.length;return e&&(4===r||5===r)}function ye(t){return"E"===t.lastToken.toUpperCase()}const we=new Set([" ",",","\t","\n","\r","\f"]);class be extends _t{bbox(){return st().path.setAttribute("d",this.toString()),new at(st.nodes.path.getBBox())}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r,n=this.length-1;n>=0;n--)r=this[n][0],"M"===r||"L"===r||"T"===r?(this[n][1]+=t,this[n][2]+=e):"H"===r?this[n][1]+=t:"V"===r?this[n][1]+=e:"C"===r||"S"===r||"Q"===r?(this[n][1]+=t,this[n][2]+=e,this[n][3]+=t,this[n][4]+=e,"C"===r&&(this[n][5]+=t,this[n][6]+=e)):"A"===r&&(this[n][6]+=t,this[n][7]+=e);return this}parse(t="M0 0"){return Array.isArray(t)&&(t=Array.prototype.concat.apply([],t).toString()),function(t,e=!0){let r=0,n="";const i={segment:[],inNumber:!1,number:"",lastToken:"",inSegment:!1,segments:[],pointSeen:!1,hasExponent:!1,absolute:e,p0:new rt,p:new rt};for(;i.lastToken=n,n=t.charAt(r++);)if(i.inSegment||!fe(i,n))if("."!==n)if(isNaN(parseInt(n)))if(we.has(n))i.inNumber&&pe(i,!1);else if("-"!==n&&"+"!==n)if("E"!==n.toUpperCase()){if(J.test(n)){if(i.inNumber)pe(i,!1);else{if(!de(i))throw new Error("parser Error");me(i)}--r}}else i.number+=n,i.hasExponent=!0;else{if(i.inNumber&&!ye(i)){pe(i,!1),--r;continue}i.number+=n,i.inNumber=!0}else{if("0"===i.number||ge(i)){i.inNumber=!0,i.number=n,pe(i,!0);continue}i.inNumber=!0,i.number+=n}else{if(i.pointSeen||i.hasExponent){pe(i,!1),--r;continue}i.inNumber=!0,i.pointSeen=!0,i.number+=n}return i.inNumber&&pe(i,!1),i.inSegment&&de(i)&&me(i),i.segments}(t)}size(t,e){const r=this.bbox();let n,i;for(r.width=0===r.width?1:r.width,r.height=0===r.height?1:r.height,n=this.length-1;n>=0;n--)i=this[n][0],"M"===i||"L"===i||"T"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y):"H"===i?this[n][1]=(this[n][1]-r.x)*t/r.width+r.x:"V"===i?this[n][1]=(this[n][1]-r.y)*e/r.height+r.y:"C"===i||"S"===i||"Q"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y,this[n][3]=(this[n][3]-r.x)*t/r.width+r.x,this[n][4]=(this[n][4]-r.y)*e/r.height+r.y,"C"===i&&(this[n][5]=(this[n][5]-r.x)*t/r.width+r.x,this[n][6]=(this[n][6]-r.y)*e/r.height+r.y)):"A"===i&&(this[n][1]=this[n][1]*t/r.width,this[n][2]=this[n][2]*e/r.height,this[n][6]=(this[n][6]-r.x)*t/r.width+r.x,this[n][7]=(this[n][7]-r.y)*e/r.height+r.y);return this}toString(){return function(t){let e="";for(let r=0,n=t.length;r<n;r++)e+=t[r][0],null!=t[r][1]&&(e+=t[r][1],null!=t[r][2]&&(e+=" ",e+=t[r][2],null!=t[r][3]&&(e+=" ",e+=t[r][3],e+=" ",e+=t[r][4],null!=t[r][5]&&(e+=" ",e+=t[r][5],e+=" ",e+=t[r][6],null!=t[r][7]&&(e+=" ",e+=t[r][7])))));return e+" "}(this)}}const xe=t=>{const e=typeof t;return"number"===e?St:"string"===e?et.isColor(t)?et:Q.test(t)?J.test(t)?be:_t:R.test(t)?St:_e:Ce.indexOf(t.constructor)>-1?t.constructor:Array.isArray(t)?_t:"object"===e?Oe:_e};class ve{constructor(t){this._stepper=t||new oe("-"),this._from=null,this._to=null,this._type=null,this._context=null,this._morphObj=null}at(t){return this._morphObj.morph(this._from,this._to,t,this._stepper,this._context)}done(){return this._context.map(this._stepper.done).reduce((function(t,e){return t&&e}),!0)}from(t){return null==t?this._from:(this._from=this._set(t),this)}stepper(t){return null==t?this._stepper:(this._stepper=t,this)}to(t){return null==t?this._to:(this._to=this._set(t),this)}type(t){return null==t?this._type:(this._type=t,this)}_set(t){this._type||this.type(xe(t));let e=new this._type(t);return this._type===et&&(e=this._to?e[this._to[4]]():this._from?e[this._from[4]]():e),this._type===Oe&&(e=this._to?e.align(this._to):this._from?e.align(this._from):e),e=e.toConsumable(),this._morphObj=this._morphObj||new this._type,this._context=this._context||Array.apply(null,Array(e.length)).map(Object).map((function(t){return t.done=!0,t})),e}}class _e{constructor(...t){this.init(...t)}init(t){return t=Array.isArray(t)?t[0]:t,this.value=t,this}toArray(){return[this.value]}valueOf(){return this.value}}class Se{constructor(...t){this.init(...t)}init(t){return Array.isArray(t)&&(t={scaleX:t[0],scaleY:t[1],shear:t[2],rotate:t[3],translateX:t[4],translateY:t[5],originX:t[6],originY:t[7]}),Object.assign(this,Se.defaults,t),this}toArray(){const t=this;return[t.scaleX,t.scaleY,t.shear,t.rotate,t.translateX,t.translateY,t.originX,t.originY]}}Se.defaults={scaleX:1,scaleY:1,shear:0,rotate:0,translateX:0,translateY:0,originX:0,originY:0};const Me=(t,e)=>t[0]<e[0]?-1:t[0]>e[0]?1:0;class Oe{constructor(...t){this.init(...t)}align(t){const e=this.values;for(let r=0,n=e.length;r<n;++r){if(e[r+1]===t[r+1]){if(e[r+1]===et&&t[r+7]!==e[r+7]){const e=t[r+7],n=new et(this.values.splice(r+3,5))[e]().toArray();this.values.splice(r+3,0,...n)}r+=e[r+2]+2;continue}if(!t[r+1])return this;const n=(new t[r+1]).toArray(),i=e[r+2]+3;e.splice(r,i,t[r],t[r+1],t[r+2],...n),r+=e[r+2]+2}return this}init(t){if(this.values=[],Array.isArray(t))return void(this.values=t.slice());t=t||{};const e=[];for(const r in t){const n=xe(t[r]),i=new n(t[r]).toArray();e.push([r,n,i.length,...i])}return e.sort(Me),this.values=e.reduce(((t,e)=>t.concat(e)),[]),this}toArray(){return this.values}valueOf(){const t={},e=this.values;for(;e.length;){const r=e.shift(),n=e.shift(),i=e.shift(),s=e.splice(0,i);t[r]=new n(s)}return t}}const Ce=[_e,Se,Oe];class Ne extends Tt{constructor(t,e=t){super(E("path",t),e)}array(){return this._array||(this._array=new be(this.attr("d")))}clear(){return delete this._array,this}height(t){return null==t?this.bbox().height:this.size(this.bbox().width,t)}move(t,e){return this.attr("d",this.array().move(t,e))}plot(t){return null==t?this.array():this.clear().attr("d","string"==typeof t?t:this._array=new be(t))}size(t,e){const r=g(this,t,e);return this.attr("d",this.array().size(r.width,r.height))}width(t){return null==t?this.bbox().width:this.size(t,this.bbox().height)}x(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}y(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}}function Pe(){return this._array||(this._array=new Wt(this.attr("points")))}function Ae(){return delete this._array,this}function Ee(t,e){return this.attr("points",this.array().move(t,e))}function Te(t){return null==t?this.array():this.clear().attr("points","string"==typeof t?t:this._array=new Wt(t))}function je(t,e){const r=g(this,t,e);return this.attr("points",this.array().size(r.width,r.height))}Ne.prototype.MorphArray=be,c({Container:{path:V((function(t){return this.put(new Ne).plot(t||new be)}))}}),D(Ne,"Path");class De extends Tt{constructor(t,e=t){super(E("polygon",t),e)}}c({Container:{polygon:V((function(t){return this.put(new De).plot(t||new Wt)}))}}),L(De,i),L(De,s),D(De,"Polygon");class ke extends Tt{constructor(t,e=t){super(E("polyline",t),e)}}c({Container:{polyline:V((function(t){return this.put(new ke).plot(t||new Wt)}))}}),L(ke,i),L(ke,s),D(ke,"Polyline");class Be extends Tt{constructor(t,e=t){super(E("rect",t),e)}}L(Be,{rx:jt,ry:Dt}),c({Container:{rect:V((function(t,e){return this.put(new Be).size(t,e)}))}}),D(Be,"Rect");class Ie{constructor(){this._first=null,this._last=null}first(){return this._first&&this._first.value}last(){return this._last&&this._last.value}push(t){const e=void 0!==t.next?t:{value:t,next:null,prev:null};return this._last?(e.prev=this._last,this._last.next=e,this._last=e):(this._last=e,this._first=e),e}remove(t){t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t===this._last&&(this._last=t.prev),t===this._first&&(this._first=t.next),t.prev=null,t.next=null}shift(){const t=this._first;return t?(this._first=t.next,this._first&&(this._first.prev=null),this._last=this._first?this._last:null,t.value):null}}const Le={nextDraw:null,frames:new Ie,timeouts:new Ie,immediates:new Ie,timer:()=>M.window.performance||M.window.Date,transforms:[],frame(t){const e=Le.frames.push({run:t});return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),e},timeout(t,e){e=e||0;const r=Le.timer().now()+e,n=Le.timeouts.push({run:t,time:r});return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),n},immediate(t){const e=Le.immediates.push(t);return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),e},cancelFrame(t){null!=t&&Le.frames.remove(t)},clearTimeout(t){null!=t&&Le.timeouts.remove(t)},cancelImmediate(t){null!=t&&Le.immediates.remove(t)},_draw(t){let e=null;const r=Le.timeouts.last();for(;(e=Le.timeouts.shift())&&(t>=e.time?e.run():Le.timeouts.push(e),e!==r););let n=null;const i=Le.frames.last();for(;n!==i&&(n=Le.frames.shift());)n.run(t);let s=null;for(;s=Le.immediates.shift();)s();Le.nextDraw=Le.timeouts.first()||Le.frames.first()?M.window.requestAnimationFrame(Le._draw):null}},Ve=Le,Re=function(t){const e=t.start,r=t.runner.duration();return{start:e,duration:r,end:e+r,runner:t.runner}},ze=function(){const t=M.window;return(t.performance||t.Date).now()};class Fe extends bt{constructor(t=ze){super(),this._timeSource=t,this.terminate()}active(){return!!this._nextFrame}finish(){return this.time(this.getEndTimeOfTimeline()+1),this.pause()}getEndTime(){const t=this.getLastRunnerInfo(),e=t?t.runner.duration():0;return(t?t.start:this._time)+e}getEndTimeOfTimeline(){const t=this._runners.map((t=>t.start+t.runner.duration()));return Math.max(0,...t)}getLastRunnerInfo(){return this.getRunnerInfoById(this._lastRunnerId)}getRunnerInfoById(t){return this._runners[this._runnerIds.indexOf(t)]||null}pause(){return this._paused=!0,this._continue()}persist(t){return null==t?this._persist:(this._persist=t,this)}play(){return this._paused=!1,this.updateTime()._continue()}reverse(t){const e=this.speed();if(null==t)return this.speed(-e);const r=Math.abs(e);return this.speed(t?-r:r)}schedule(t,e,r){if(null==t)return this._runners.map(Re);let n=0;const i=this.getEndTime();if(e=e||0,null==r||"last"===r||"after"===r)n=i;else if("absolute"===r||"start"===r)n=e,e=0;else if("now"===r)n=this._time;else if("relative"===r){const r=this.getRunnerInfoById(t.id);r&&(n=r.start+e,e=0)}else{if("with-last"!==r)throw new Error('Invalid value for the "when" parameter');{const t=this.getLastRunnerInfo();n=t?t.start:this._time}}t.unschedule(),t.timeline(this);const s=t.persist(),o={persist:null===s?this._persist:s,start:n+e,runner:t};return this._lastRunnerId=t.id,this._runners.push(o),this._runners.sort(((t,e)=>t.start-e.start)),this._runnerIds=this._runners.map((t=>t.runner.id)),this.updateTime()._continue(),this}seek(t){return this.time(this._time+t)}source(t){return null==t?this._timeSource:(this._timeSource=t,this)}speed(t){return null==t?this._speed:(this._speed=t,this)}stop(){return this.time(0),this.pause()}time(t){return null==t?this._time:(this._time=t,this._continue(!0))}unschedule(t){const e=this._runnerIds.indexOf(t.id);return e<0||(this._runners.splice(e,1),this._runnerIds.splice(e,1),t.timeline(null)),this}updateTime(){return this.active()||(this._lastSourceTime=this._timeSource()),this}_continue(t=!1){return Ve.cancelFrame(this._nextFrame),this._nextFrame=null,t?this._stepImmediate():(this._paused||(this._nextFrame=Ve.frame(this._step)),this)}_stepFn(t=!1){const e=this._timeSource();let r=e-this._lastSourceTime;t&&(r=0);const n=this._speed*r+(this._time-this._lastStepTime);this._lastSourceTime=e,t||(this._time+=n,this._time=this._time<0?0:this._time),this._lastStepTime=this._time,this.fire("time",this._time);for(let t=this._runners.length;t--;){const e=this._runners[t],r=e.runner;this._time-e.start<=0&&r.reset()}let i=!1;for(let t=0,e=this._runners.length;t<e;t++){const r=this._runners[t],s=r.runner;let o=n;const a=this._time-r.start;a<=0?i=!0:(a<o&&(o=a),s.active()&&(s.step(o).done?!0!==r.persist&&s.duration()-s.time()+this._time+r.persist<this._time&&(s.unschedule(),--t,--e):i=!0))}return i&&!(this._speed<0&&0===this._time)||this._runnerIds.length&&this._speed<0&&this._time>0?this._continue():(this.pause(),this.fire("finished")),this}terminate(){this._startTime=0,this._speed=1,this._persist=0,this._nextFrame=null,this._paused=!0,this._runners=[],this._runnerIds=[],this._lastRunnerId=-1,this._time=0,this._lastSourceTime=0,this._lastStepTime=0,this._step=this._stepFn.bind(this,!1),this._stepImmediate=this._stepFn.bind(this,!0)}}c({Element:{timeline:function(t){return null==t?(this._timeline=this._timeline||new Fe,this._timeline):(this._timeline=t,this)}}});class Xe extends bt{constructor(t){super(),this.id=Xe.id++,t="function"==typeof(t=null==t?400:t)?new ae(t):t,this._element=null,this._timeline=null,this.done=!1,this._queue=[],this._duration="number"==typeof t&&t,this._isDeclarative=t instanceof ae,this._stepper=this._isDeclarative?t:new oe,this._history={},this.enabled=!0,this._time=0,this._lastTime=0,this._reseted=!0,this.transforms=new it,this.transformId=1,this._haveReversed=!1,this._reverse=!1,this._loopsDone=0,this._swing=!1,this._wait=0,this._times=1,this._frameId=null,this._persist=!!this._isDeclarative||null}static sanitise(t,e,r){let n=1,i=!1,s=0;return e=e??0,r=r||"last","object"!=typeof(t=t??400)||t instanceof se||(e=t.delay??e,r=t.when??r,i=t.swing||i,n=t.times??n,s=t.wait??s,t=t.duration??400),{duration:t,delay:e,swing:i,times:n,wait:s,when:r}}active(t){return null==t?this.enabled:(this.enabled=t,this)}addTransform(t){return this.transforms.lmultiplyO(t),this}after(t){return this.on("finished",t)}animate(t,e,r){const n=Xe.sanitise(t,e,r),i=new Xe(n.duration);return this._timeline&&i.timeline(this._timeline),this._element&&i.element(this._element),i.loop(n).schedule(n.delay,n.when)}clearTransform(){return this.transforms=new it,this}clearTransformsFromQueue(){this.done&&this._timeline&&this._timeline._runnerIds.includes(this.id)||(this._queue=this._queue.filter((t=>!t.isTransform)))}delay(t){return this.animate(0,t)}duration(){return this._times*(this._wait+this._duration)-this._wait}during(t){return this.queue(null,t)}ease(t){return this._stepper=new oe(t),this}element(t){return null==t?this._element:(this._element=t,t._prepareRunner(),this)}finish(){return this.step(1/0)}loop(t,e,r){return"object"==typeof t&&(e=t.swing,r=t.wait,t=t.times),this._times=t||1/0,this._swing=e||!1,this._wait=r||0,!0===this._times&&(this._times=1/0),this}loops(t){const e=this._duration+this._wait;if(null==t){const t=Math.floor(this._time/e),r=(this._time-t*e)/this._duration;return Math.min(t+r,this._times)}const r=t%1,n=e*Math.floor(t)+this._duration*r;return this.time(n)}persist(t){return null==t?this._persist:(this._persist=t,this)}position(t){const e=this._time,r=this._duration,n=this._wait,i=this._times,s=this._swing,o=this._reverse;let a;if(null==t){const t=function(t){const e=s*Math.floor(t%(2*(n+r))/(n+r)),i=e&&!o||!e&&o,a=Math.pow(-1,i)*(t%(n+r))/r+i;return Math.max(Math.min(a,1),0)},h=i*(n+r)-n;return a=e<=0?Math.round(t(1e-5)):e<h?t(e):Math.round(t(h-1e-5)),a}const h=Math.floor(this.loops()),u=s&&h%2==0;return a=h+(u&&!o||o&&u?t:1-t),this.loops(a)}progress(t){return null==t?Math.min(1,this._time/this.duration()):this.time(t*this.duration())}queue(t,e,r,n){return this._queue.push({initialiser:t||xt,runner:e||xt,retarget:r,isTransform:n,initialised:!1,finished:!1}),this.timeline()&&this.timeline()._continue(),this}reset(){return this._reseted||(this.time(0),this._reseted=!0),this}reverse(t){return this._reverse=null==t?!this._reverse:t,this}schedule(t,e,r){if(t instanceof Fe||(r=e,e=t,t=this.timeline()),!t)throw Error("Runner cannot be scheduled without timeline");return t.schedule(this,e,r),this}step(t){if(!this.enabled)return this;t=null==t?16:t,this._time+=t;const e=this.position(),r=this._lastPosition!==e&&this._time>=0;this._lastPosition=e;const n=this.duration(),i=this._lastTime<=0&&this._time>0,s=this._lastTime<n&&this._time>=n;this._lastTime=this._time,i&&this.fire("start",this);const o=this._isDeclarative;this.done=!o&&!s&&this._time>=n,this._reseted=!1;let a=!1;return(r||o)&&(this._initialise(r),this.transforms=new it,a=this._run(o?t:e),this.fire("step",this)),this.done=this.done||a&&o,s&&this.fire("finished",this),this}time(t){if(null==t)return this._time;const e=t-this._time;return this.step(e),this}timeline(t){return void 0===t?this._timeline:(this._timeline=t,this)}unschedule(){const t=this.timeline();return t&&t.unschedule(this),this}_initialise(t){if(t||this._isDeclarative)for(let e=0,r=this._queue.length;e<r;++e){const r=this._queue[e],n=this._isDeclarative||!r.initialised&&t;t=!r.finished,n&&t&&(r.initialiser.call(this),r.initialised=!0)}}_rememberMorpher(t,e){if(this._history[t]={morpher:e,caller:this._queue[this._queue.length-1]},this._isDeclarative){const t=this.timeline();t&&t.play()}}_run(t){let e=!0;for(let r=0,n=this._queue.length;r<n;++r){const n=this._queue[r],i=n.runner.call(this,t);n.finished=n.finished||!0===i,e=e&&n.finished}return e}_tryRetarget(t,e,r){if(this._history[t]){if(!this._history[t].caller.initialised){const e=this._queue.indexOf(this._history[t].caller);return this._queue.splice(e,1),!1}this._history[t].caller.retarget?this._history[t].caller.retarget.call(this,e,r):this._history[t].morpher.to(e),this._history[t].caller.finished=!1;const n=this.timeline();return n&&n.play(),!0}return!1}}Xe.id=0;class qe{constructor(t=new it,e=-1,r=!0){this.transforms=t,this.id=e,this.done=r}clearTransformsFromQueue(){}}L([Xe,qe],{mergeWith(t){return new qe(t.transforms.lmultiply(this.transforms),t.id)}});const Ge=(t,e)=>t.lmultiplyO(e),Ye=t=>t.transforms;function Ue(){const t=this._transformationRunners.runners.map(Ye).reduce(Ge,new it);this.transform(t),this._transformationRunners.merge(),1===this._transformationRunners.length()&&(this._frameId=null)}class He{constructor(){this.runners=[],this.ids=[]}add(t){if(this.runners.includes(t))return;const e=t.id+1;return this.runners.push(t),this.ids.push(e),this}clearBefore(t){const e=this.ids.indexOf(t+1)||1;return this.ids.splice(0,e,0),this.runners.splice(0,e,new qe).forEach((t=>t.clearTransformsFromQueue())),this}edit(t,e){const r=this.ids.indexOf(t+1);return this.ids.splice(r,1,t+1),this.runners.splice(r,1,e),this}getByID(t){return this.runners[this.ids.indexOf(t+1)]}length(){return this.ids.length}merge(){let t=null;for(let e=0;e<this.runners.length;++e){const r=this.runners[e];if(!(t&&r.done&&t.done)||r._timeline&&r._timeline._runnerIds.includes(r.id)||t._timeline&&t._timeline._runnerIds.includes(t.id))t=r;else{this.remove(r.id);const n=r.mergeWith(t);this.edit(t.id,n),t=n,--e}}return this}remove(t){const e=this.ids.indexOf(t+1);return this.ids.splice(e,1),this.runners.splice(e,1),this}}c({Element:{animate(t,e,r){const n=Xe.sanitise(t,e,r),i=this.timeline();return new Xe(n.duration).loop(n).element(this).timeline(i.play()).schedule(n.delay,n.when)},delay(t,e){return this.animate(0,t,e)},_clearTransformRunnersBefore(t){this._transformationRunners.clearBefore(t.id)},_currentTransform(t){return this._transformationRunners.runners.filter((e=>e.id<=t.id)).map(Ye).reduce(Ge,new it)},_addRunner(t){this._transformationRunners.add(t),Ve.cancelImmediate(this._frameId),this._frameId=Ve.immediate(Ue.bind(this))},_prepareRunner(){null==this._frameId&&(this._transformationRunners=(new He).add(new qe(new it(this))))}}}),L(Xe,{attr(t,e){return this.styleAttr("attr",t,e)},css(t,e){return this.styleAttr("css",t,e)},styleAttr(t,e,r){if("string"==typeof e)return this.styleAttr(t,{[e]:r});let n=e;if(this._tryRetarget(t,n))return this;let i=new ve(this._stepper).to(n),s=Object.keys(n);return this.queue((function(){i=i.from(this.element()[t](s))}),(function(e){return this.element()[t](i.at(e).valueOf()),i.done()}),(function(e){const r=Object.keys(e),o=(a=s,r.filter((t=>!a.includes(t))));var a;if(o.length){const e=this.element()[t](o),r=new Oe(i.from()).valueOf();Object.assign(r,e),i.from(r)}const h=new Oe(i.to()).valueOf();Object.assign(h,e),i.to(h),s=r,n=e})),this._rememberMorpher(t,i),this},zoom(t,e){if(this._tryRetarget("zoom",t,e))return this;let r=new ve(this._stepper).to(new St(t));return this.queue((function(){r=r.from(this.element().zoom())}),(function(t){return this.element().zoom(r.at(t),e),r.done()}),(function(t,n){e=n,r.to(t)})),this._rememberMorpher("zoom",r),this},transform(t,e,r){if(e=t.relative||e,this._isDeclarative&&!e&&this._tryRetarget("transform",t))return this;const n=it.isMatrixLike(t);r=null!=t.affine?t.affine:null!=r?r:!n;const i=new ve(this._stepper).type(r?Se:it);let s,o,a,h,u;return this.queue((function(){o=o||this.element(),s=s||y(t,o),u=new it(e?void 0:o),o._addRunner(this),e||o._clearTransformRunnersBefore(this)}),(function(c){e||this.clearTransform();const{x:l,y:d}=new rt(s).transform(o._currentTransform(this));let f=new it({...t,origin:[l,d]}),p=this._isDeclarative&&a?a:u;if(r){f=f.decompose(l,d),p=p.decompose(l,d);const t=f.rotate,e=p.rotate,r=[t-360,t,t+360],n=r.map((t=>Math.abs(t-e))),i=Math.min(...n),s=n.indexOf(i);f.rotate=r[s]}e&&(n||(f.rotate=t.rotate||0),this._isDeclarative&&h&&(p.rotate=h)),i.from(p),i.to(f);const m=i.at(c);return h=m.rotate,a=new it(m),this.addTransform(a),o._addRunner(this),i.done()}),(function(e){(e.origin||"center").toString()!==(t.origin||"center").toString()&&(s=y(e,o)),t={...e,origin:s}}),!0),this._isDeclarative&&this._rememberMorpher("transform",i),this},x(t){return this._queueNumber("x",t)},y(t){return this._queueNumber("y",t)},ax(t){return this._queueNumber("ax",t)},ay(t){return this._queueNumber("ay",t)},dx(t=0){return this._queueNumberDelta("x",t)},dy(t=0){return this._queueNumberDelta("y",t)},dmove(t,e){return this.dx(t).dy(e)},_queueNumberDelta(t,e){if(e=new St(e),this._tryRetarget(t,e))return this;const r=new ve(this._stepper).to(e);let n=null;return this.queue((function(){n=this.element()[t](),r.from(n),r.to(n+e)}),(function(e){return this.element()[t](r.at(e)),r.done()}),(function(t){r.to(n+new St(t))})),this._rememberMorpher(t,r),this},_queueObject(t,e){if(this._tryRetarget(t,e))return this;const r=new ve(this._stepper).to(e);return this.queue((function(){r.from(this.element()[t]())}),(function(e){return this.element()[t](r.at(e)),r.done()})),this._rememberMorpher(t,r),this},_queueNumber(t,e){return this._queueObject(t,new St(e))},cx(t){return this._queueNumber("cx",t)},cy(t){return this._queueNumber("cy",t)},move(t,e){return this.x(t).y(e)},amove(t,e){return this.ax(t).ay(e)},center(t,e){return this.cx(t).cy(e)},size(t,e){let r;return t&&e||(r=this._element.bbox()),t||(t=r.width/r.height*e),e||(e=r.height/r.width*t),this.width(t).height(e)},width(t){return this._queueNumber("width",t)},height(t){return this._queueNumber("height",t)},plot(t,e,r,n){if(4===arguments.length)return this.plot([t,e,r,n]);if(this._tryRetarget("plot",t))return this;const i=new ve(this._stepper).type(this._element.MorphArray).to(t);return this.queue((function(){i.from(this._element.array())}),(function(t){return this._element.plot(i.at(t)),i.done()})),this._rememberMorpher("plot",i),this},leading(t){return this._queueNumber("leading",t)},viewbox(t,e,r,n){return this._queueObject("viewbox",new at(t,e,r,n))},update(t){return"object"!=typeof t?this.update({offset:arguments[0],color:arguments[1],opacity:arguments[2]}):(null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",t.offset),this)}}),L(Xe,{rx:jt,ry:Dt,from:qt,to:Gt}),D(Xe,"Runner");class $e extends At{constructor(t,e=t){super(E("svg",t),e),this.namespace()}defs(){return this.isRoot()?T(this.node.querySelector("defs"))||this.put(new Et):this.root().defs()}isRoot(){return!this.node.parentNode||!(this.node.parentNode instanceof M.window.SVGElement)&&"#document-fragment"!==this.node.parentNode.nodeName}namespace(){return this.isRoot()?this.attr({xmlns:v,version:"1.1"}).attr("xmlns:xlink",S,_):this.root().namespace()}removeNamespace(){return this.attr({xmlns:null,version:null}).attr("xmlns:xlink",null,_).attr("xmlns:svgjs",null,_)}root(){return this.isRoot()?this:super.root()}}c({Container:{nested:V((function(){return this.put(new $e)}))}}),D($e,"Svg",!0);class We extends At{constructor(t,e=t){super(E("symbol",t),e)}}function Qe(t){return!1===this._build&&this.clear(),this.node.appendChild(M.document.createTextNode(t)),this}function Je(){return this.node.getComputedTextLength()}function Ze(t,e=this.bbox()){return null==t?e.x:this.attr("x",this.attr("x")+t-e.x)}function Ke(t,e=this.bbox()){return null==t?e.y:this.attr("y",this.attr("y")+t-e.y)}function tr(t,e,r=this.bbox()){return this.x(t,r).y(e,r)}function er(t,e=this.bbox()){return null==t?e.cx:this.attr("x",this.attr("x")+t-e.cx)}function rr(t,e=this.bbox()){return null==t?e.cy:this.attr("y",this.attr("y")+t-e.cy)}function nr(t,e,r=this.bbox()){return this.cx(t,r).cy(e,r)}function ir(t){return this.attr("x",t)}function sr(t){return this.attr("y",t)}function or(t,e){return this.ax(t).ay(e)}function ar(t){return this._build=!!t,this}c({Container:{symbol:V((function(){return this.put(new We)}))}}),D(We,"Symbol");class hr extends Tt{constructor(t,e=t){super(E("text",t),e),this.dom.leading=this.dom.leading??new St(1.3),this._rebuild=!0,this._build=!1}leading(t){return null==t?this.dom.leading:(this.dom.leading=new St(t),this.rebuild())}rebuild(t){if("boolean"==typeof t&&(this._rebuild=t),this._rebuild){const t=this;let e=0;const r=this.dom.leading;this.each((function(n){if(b(this.node))return;const i=M.window.getComputedStyle(this.node).getPropertyValue("font-size"),s=r*new St(i);this.dom.newLined&&(this.attr("x",t.attr("x")),"\n"===this.text()?e+=s:(this.attr("dy",n?s+e:0),e=0))})),this.fire("rebuild")}return this}setData(t){return this.dom=t,this.dom.leading=new St(t.leading||1.3),this}writeDataToDom(){return x(this,this.dom,{leading:1.3}),this}text(t){if(void 0===t){const e=this.node.childNodes;let r=0;t="";for(let n=0,i=e.length;n<i;++n)"textPath"===e[n].nodeName||b(e[n])?0===n&&(r=n+1):(n!==r&&3!==e[n].nodeType&&!0===T(e[n]).dom.newLined&&(t+="\n"),t+=e[n].textContent);return t}if(this.clear().build(!0),"function"==typeof t)t.call(this,this);else for(let e=0,r=(t=(t+"").split("\n")).length;e<r;e++)this.newLine(t[e]);return this.build(!1).rebuild()}}L(hr,o),c({Container:{text:V((function(t=""){return this.put(new hr).text(t)})),plain:V((function(t=""){return this.put(new hr).plain(t)}))}}),D(hr,"Text");class ur extends Tt{constructor(t,e=t){super(E("tspan",t),e),this._build=!1}dx(t){return this.attr("dx",t)}dy(t){return this.attr("dy",t)}newLine(){this.dom.newLined=!0;const t=this.parent();if(!(t instanceof hr))return this;const e=t.index(this),r=M.window.getComputedStyle(this.node).getPropertyValue("font-size"),n=t.dom.leading*new St(r);return this.dy(e?n:0).attr("x",t.x())}text(t){return null==t?this.node.textContent+(this.dom.newLined?"\n":""):("function"==typeof t?(this.clear().build(!0),t.call(this,this),this.build(!1)):this.plain(t),this)}}L(ur,o),c({Tspan:{tspan:V((function(t=""){const e=new ur;return this._build||this.clear(),this.put(e).text(t)}))},Text:{newLine:function(t=""){return this.tspan(t).newLine()}}}),D(ur,"Tspan");class cr extends Tt{constructor(t,e=t){super(E("circle",t),e)}radius(t){return this.attr("r",t)}rx(t){return this.attr("r",t)}ry(t){return this.rx(t)}size(t){return this.radius(new St(t).divide(2))}}L(cr,{x:kt,y:Bt,cx:It,cy:Lt,width:Vt,height:Rt}),c({Container:{circle:V((function(t=0){return this.put(new cr).size(t).move(0,0)}))}}),D(cr,"Circle");class lr extends At{constructor(t,e=t){super(E("clipPath",t),e)}remove(){return this.targets().forEach((function(t){t.unclip()})),super.remove()}targets(){return dt("svg [clip-path*="+this.id()+"]")}}c({Container:{clip:V((function(){return this.defs().put(new lr)}))},Element:{clipper(){return this.reference("clip-path")},clipWith(t){const e=t instanceof lr?t:this.parent().clip().add(t);return this.attr("clip-path","url(#"+e.id()+")")},unclip(){return this.attr("clip-path",null)}}}),D(lr,"ClipPath");class dr extends Nt{constructor(t,e=t){super(E("foreignObject",t),e)}}function fr(t,e){return this.children().forEach((r=>{let n;try{n=r.node instanceof M.window.SVGSVGElement?new at(r.attr(["x","y","width","height"])):r.bbox()}catch(t){return}const i=new it(r),s=i.translate(t,e).transform(i.inverse()),o=new rt(n.x,n.y).transform(s);r.move(o.x,o.y)})),this}function pr(t){return this.dmove(t,0)}function mr(t){return this.dmove(0,t)}function gr(t,e=this.bbox()){return null==t?e.height:this.size(e.width,t,e)}function yr(t=0,e=0,r=this.bbox()){const n=t-r.x,i=e-r.y;return this.dmove(n,i)}function wr(t,e,r=this.bbox()){const n=g(this,t,e,r),i=n.width/r.width,s=n.height/r.height;return this.children().forEach((t=>{const e=new rt(r).transform(new it(t).inverse());t.scale(i,s,e.x,e.y)})),this}function br(t,e=this.bbox()){return null==t?e.width:this.size(t,e.height,e)}function xr(t,e=this.bbox()){return null==t?e.x:this.move(t,e.y,e)}function vr(t,e=this.bbox()){return null==t?e.y:this.move(e.x,t,e)}c({Container:{foreignObject:V((function(t,e){return this.put(new dr).size(t,e)}))}}),D(dr,"ForeignObject");class _r extends At{constructor(t,e=t){super(E("g",t),e)}}L(_r,a),c({Container:{group:V((function(){return this.put(new _r)}))}}),D(_r,"G");class Sr extends At{constructor(t,e=t){super(E("a",t),e)}target(t){return this.attr("target",t)}to(t){return this.attr("href",t,S)}}L(Sr,a),c({Container:{link:V((function(t){return this.put(new Sr).to(t)}))},Element:{unlink(){const t=this.linker();if(!t)return this;const e=t.parent();if(!e)return this.remove();const r=e.index(t);return e.add(this,r),t.remove(),this},linkTo(t){let e=this.linker();return e||(e=new Sr,this.wrap(e)),"function"==typeof t?t.call(e,e):e.to(t),this},linker(){const t=this.parent();return t&&"a"===t.node.nodeName.toLowerCase()?t:null}}}),D(Sr,"A");class Mr extends At{constructor(t,e=t){super(E("mask",t),e)}remove(){return this.targets().forEach((function(t){t.unmask()})),super.remove()}targets(){return dt("svg [mask*="+this.id()+"]")}}c({Container:{mask:V((function(){return this.defs().put(new Mr)}))},Element:{masker(){return this.reference("mask")},maskWith(t){const e=t instanceof Mr?t:this.parent().mask().add(t);return this.attr("mask","url(#"+e.id()+")")},unmask(){return this.attr("mask",null)}}}),D(Mr,"Mask");class Or extends Nt{constructor(t,e=t){super(E("stop",t),e)}update(t){return("number"==typeof t||t instanceof St)&&(t={offset:arguments[0],color:arguments[1],opacity:arguments[2]}),null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",new St(t.offset)),this}}c({Gradient:{stop:function(t,e,r){return this.put(new Or).update(t,e,r)}}}),D(Or,"Stop");class Cr extends Nt{constructor(t,e=t){super(E("style",t),e)}addText(t=""){return this.node.textContent+=t,this}font(t,e,r={}){return this.rule("@font-face",{fontFamily:t,src:e,...r})}rule(t,e){return this.addText(function(t,e){if(!t)return"";if(!e)return t;let r=t+"{";for(const t in e)r+=t.replace(/([A-Z])/g,(function(t,e){return"-"+e.toLowerCase()}))+":"+e[t]+";";return r+="}",r}(t,e))}}c("Dom",{style(t,e){return this.put(new Cr).rule(t,e)},fontface(t,e,r){return this.put(new Cr).font(t,e,r)}}),D(Cr,"Style");class Nr extends hr{constructor(t,e=t){super(E("textPath",t),e)}array(){const t=this.track();return t?t.array():null}plot(t){const e=this.track();let r=null;return e&&(r=e.plot(t)),null==t?r:this}track(){return this.reference("href")}}c({Container:{textPath:V((function(t,e){return t instanceof hr||(t=this.text(t)),t.path(e)}))},Text:{path:V((function(t,e=!0){const r=new Nr;let n;if(t instanceof Ne||(t=this.defs().path(t)),r.attr("href","#"+t,S),e)for(;n=this.node.firstChild;)r.node.appendChild(n);return this.put(r)})),textPath(){return this.findOne("textPath")}},Path:{text:V((function(t){return t instanceof hr||(t=(new hr).addTo(this.parent()).text(t)),t.path(this)})),targets(){return dt("svg textPath").filter((t=>(t.attr("href")||"").includes(this.id())))}}}),Nr.prototype.MorphArray=be,D(Nr,"TextPath");class Pr extends Tt{constructor(t,e=t){super(E("use",t),e)}use(t,e){return this.attr("href",(e||"")+"#"+t,S)}}c({Container:{use:V((function(t,e){return this.put(new Pr).use(t,e)}))}}),D(Pr,"Use"),L([$e,We,Ht,Ut,re],l("viewbox")),L([ee,ke,De,Ne],l("marker")),L(hr,l("Text")),L(Ne,l("Path")),L(Et,l("Defs")),L([hr,ur],l("Tspan")),L([Be,zt,Yt,Xe],l("radius")),L(bt,l("EventTarget")),L(Ct,l("Dom")),L(Nt,l("Element")),L(Tt,l("Shape")),L([At,Xt],l("Container")),L(Yt,l("Gradient")),L(Xe,l("Runner")),ct.extend([...new Set(u)]),function(t=[]){Ce.push(...[].concat(t))}([St,et,at,it,_t,Wt,be,rt]),L(Ce,{to(t){return(new ve).type(this.constructor).from(this.toArray()).to(t)},fromArray(t){return this.init(t),this},toConsumable(){return this.toArray()},morph(t,e,r,n,i){return this.fromArray(t.map((function(t,s){return n.step(t,e[s],r,i[s],i)})))}});var Ar=r(726),Er=r(358);class Tr{constructor(t,e){this.svgDoc=t,this.elements=e,new MutationObserver((t=>{t.some((t=>t.removedNodes.length>0))&&(this.elements=this.elements.filter((t=>this.svgDoc.contains(t.domNode))))})).observe(t,{childList:!0,subtree:!0})}}class jr{constructor(t,e){this.svgDoc=t,this.elementsDrawing=new Tr(t,e)}get bases(){return this.elementsDrawing.elements}set bases(t){this.elementsDrawing.elements=t}append(t){t.appendTo(this.svgDoc),this.bases.push(t)}add(t){let e=Er.Nucleobase.create(t);return this.append(e),e}}var Dr,kr,Br=r(775),Ir=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},Lr=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class Vr{constructor(t){this.domNode=t,Dr.set(this,void 0),kr.set(this,void 0),Ir(this,Dr,new Tr(t,[]),"f"),Ir(this,kr,new MutationObserver((()=>{this.elements.forEach((t=>{this.domNode.contains(t.owner.domNode)||t.domNode.remove()}))})),"f"),Lr(this,kr,"f").observe(t,{childList:!0,subtree:!0})}get elements(){return Lr(this,Dr,"f").elements}set elements(t){Lr(this,Dr,"f").elements=t}}Dr=new WeakMap,kr=new WeakMap;var Rr,zr=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class Fr{constructor(t){this.domNode=t,Rr.set(this,void 0),function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,Rr,new Vr(t),"f")}get baseOutlines(){return zr(this,Rr,"f").elements}set baseOutlines(t){zr(this,Rr,"f").elements=t}append(t){this.domNode.append(t.domNode),this.baseOutlines.push(t)}outline(t){let e=Br.BaseOutline.outlining(t);return t.domNode.insertAdjacentElement("beforebegin",e.domNode),this.baseOutlines.push(e),e}}Rr=new WeakMap;var Xr=r(282);class qr{constructor(t,e){this.svgDoc=t,this.elementsDrawing=new Tr(t,e),new MutationObserver((()=>{this.bonds.forEach((t=>{this.svgDoc.contains(t.base1.domNode)&&this.svgDoc.contains(t.base2.domNode)||t.remove()}))})).observe(t,{childList:!0,subtree:!0})}get bonds(){return this.elementsDrawing.elements}set bonds(t){this.elementsDrawing.elements=t}}class Gr{constructor(t,e){this.svgDoc=t,this.defaultValues={attributes:{stroke:"#808080","stroke-width":"1"},basePadding1:6,basePadding2:6},this.bondsDrawing=new qr(t,e)}get primaryBonds(){return this.bondsDrawing.bonds}set primaryBonds(t){this.bondsDrawing.bonds=t}append(t){t.appendTo(this.svgDoc),this.primaryBonds.push(t)}add(t,e){let r=Xr.StraightBond.between(t,e);return this.append(r),r.set(this.defaultValues),r}}class Yr{constructor(t,e){this.svgDoc=t,this.defaultValues={attributes:{stroke:"#000000","stroke-width":"2"},basePadding1:6,basePadding2:6},this.bondsDrawing=new qr(t,e)}get secondaryBonds(){return this.bondsDrawing.bonds}set secondaryBonds(t){this.bondsDrawing.bonds=t}append(t){t.appendTo(this.svgDoc),this.secondaryBonds.push(t)}add(t,e){let r=Xr.StraightBond.between(t,e);return this.append(r),r.set(this.defaultValues),r}}var Ur,Hr=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class $r{constructor(){Ur.set(this,void 0),this.domNode=(new $e).node,this.domNode.setAttribute("viewBox",`0 0 ${Wr} ${Qr}`),this.domNode.setAttribute("width",`${Wr}`),this.domNode.setAttribute("height",`${Qr}`),this.basesDrawing=new jr(this.domNode,[]),function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,Ur,new Fr(this.domNode),"f"),this.primaryBondsDrawing=new Gr(this.domNode,[]),this.secondaryBondsDrawing=new Yr(this.domNode,[])}get outerXML(){return this.domNode.outerHTML}get innerXML(){return this.domNode.innerHTML}appendTo(t){t.appendChild(this.domNode)}remove(){this.domNode.remove()}get minX(){return this.domNode.viewBox.baseVal.x}set minX(t){let e=this.maxX-t,r=this.horizontalScaling;this.domNode.setAttribute("viewBox",`${t} ${this.minY} ${e} ${this.height}`),this.domNode.setAttribute("width",(r*e).toString())}get maxX(){return this.minX+this.width}set maxX(t){let e=t-this.minX,r=this.horizontalScaling;this.domNode.setAttribute("viewBox",`${this.minX} ${this.minY} ${e} ${this.height}`),this.domNode.setAttribute("width",(r*e).toString())}get minY(){return this.domNode.viewBox.baseVal.y}set minY(t){let e=this.maxY-t,r=this.verticalScaling;this.domNode.setAttribute("viewBox",`${this.minX} ${t} ${this.width} ${e}`),this.domNode.setAttribute("height",(r*e).toString())}get maxY(){return this.minY+this.height}set maxY(t){let e=t-this.minY,r=this.verticalScaling;this.domNode.setAttribute("viewBox",`${this.minX} ${this.minY} ${this.width} ${e}`),this.domNode.setAttribute("height",(r*e).toString())}setBoundaries({minX:t,maxX:e,minY:r,maxY:n}){this.minX=t,this.maxX=e,this.minY=r,this.maxY=n}get width(){return this.domNode.viewBox.baseVal.width}set width(t){this.maxX=this.minX+t}get height(){return this.domNode.viewBox.baseVal.height}set height(t){this.maxY=this.minY+t}get horizontalScaling(){let t=this.width;return this.domNode.width.baseVal.value/t}set horizontalScaling(t){let e=this.width;this.domNode.setAttribute("width",(t*e).toString())}get verticalScaling(){let t=this.height;return this.domNode.height.baseVal.value/t}set verticalScaling(t){let e=this.height;this.domNode.setAttribute("height",(t*e).toString())}setScaling(t){this.horizontalScaling=t,this.verticalScaling=t}get horizontalClientScaling(){return new Ar.HorizontalClientScaling(this.domNode).get()}get verticalClientScaling(){return new Ar.VerticalClientScaling(this.domNode).get()}get bases(){return this.basesDrawing.bases}appendBase(t){this.basesDrawing.append(t)}addBase(t){return this.basesDrawing.add(t)}get baseOutlines(){return Hr(this,Ur,"f").baseOutlines}outlineBase(t){return Hr(this,Ur,"f").outline(t)}appendBaseOutline(t){Hr(this,Ur,"f").append(t)}get primaryBonds(){return this.primaryBondsDrawing.primaryBonds}set primaryBonds(t){this.primaryBondsDrawing.primaryBonds=[...t]}appendPrimaryBond(t){this.primaryBondsDrawing.append(t)}addPrimaryBond(t,e){return this.primaryBondsDrawing.add(t,e)}get secondaryBonds(){return this.secondaryBondsDrawing.secondaryBonds}set secondaryBonds(t){this.secondaryBondsDrawing.secondaryBonds=[...t]}appendSecondaryBond(t){this.secondaryBondsDrawing.append(t)}addSecondaryBond(t,e){return this.secondaryBondsDrawing.add(t,e)}get defaultValues(){let t=this.primaryBondsDrawing,e=this.secondaryBondsDrawing;return{get primaryBonds(){return t.defaultValues},set primaryBonds(e){t.defaultValues=e},get secondaryBonds(){return e.defaultValues},set secondaryBonds(t){e.defaultValues=t}}}get contentBBox(){return this.domNode.getBBox()}setPadding(t){let e=this.contentBBox;this.setBoundaries({minX:e.x-t,maxX:e.x+e.width+t,minY:e.y-t,maxY:e.y+e.height+t})}reset(){this.domNode.innerHTML="",this.basesDrawing.bases=[],Hr(this,Ur,"f").baseOutlines=[],this.primaryBondsDrawing.primaryBonds=[],this.secondaryBondsDrawing.secondaryBonds=[],[...this.domNode.attributes].forEach((t=>this.domNode.removeAttribute(t.name))),this.domNode.setAttribute("viewBox",`0 0 ${Wr} ${Qr}`),this.domNode.setAttribute("width",`${Wr}`),this.domNode.setAttribute("height",`${Qr}`)}}Ur=new WeakMap;const Wr=250,Qr=250;var Jr=r(127),Zr=r(661),Kr=r(986);class tn{constructor(t){this.targetDrawing=t}draw(t,e){let r=[...t].map((t=>this.targetDrawing.addBase(t)));(0,Jr.consecutivePairs)(r).forEach((t=>this.targetDrawing.addPrimaryBond(...t)));let n=[...(0,Jr.parseDotBracket)(r,e)];n.forEach((t=>this.targetDrawing.addSecondaryBond(...t))),r.forEach((t=>t.bringToFront()));let i=1.87*(0,Kr.mean)(r.map((t=>t.bbox.height)));(0,Zr.radialize)(r,n,{spacing:i,basePairSpacing:i/2,hairpinLoopSpacing:i/2})}}var en,rn,nn,sn,on=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class an{constructor(t){en.add(this),rn.set(this,void 0),function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,rn,t,"f")}draw(t){t.rnaComplexes.forEach((e=>{e.rnaMolecules.forEach((e=>{let r=e.sequence.map((e=>on(this,en,"m",nn).call(this,e,t))),n=(0,Kr.mean)(r.map((t=>t.bbox.height)));on(this,rn,"f").defaultValues.primaryBonds.attributes["stroke-width"]=""+.125*n,on(this,rn,"f").defaultValues.primaryBonds.basePadding1=.6*n,on(this,rn,"f").defaultValues.primaryBonds.basePadding2=.6*n,(0,Jr.consecutivePairs)(r).forEach((t=>on(this,rn,"f").addPrimaryBond(...t))),on(this,rn,"f").defaultValues.secondaryBonds.attributes["stroke-width"]=""+.15*n,on(this,rn,"f").defaultValues.secondaryBonds.basePadding1=.5*n,on(this,rn,"f").defaultValues.secondaryBonds.basePadding2=.5*n,new Set(e.basePairs.map((t=>JSON.stringify(t)))).forEach((e=>on(this,en,"m",sn).call(this,JSON.parse(e),r,t)))}))}))}}rn=new WeakMap,en=new WeakSet,nn=function(t,e){let r=on(this,rn,"f").addBase(t.residueName);return t.classes.forEach((t=>{e.classes.filter((e=>e.name==t)).forEach((t=>r.setAttributes(Object.assign(Object.assign({},t),{name:void 0}))))})),r.centerPoint.x=t.x,r.centerPoint.y=t.y,r},sn=function(t,e,r){let n=e[t.residueIndex1],i=e[t.residueIndex2],s=on(this,rn,"f").addSecondaryBond(n,i);return t.classes.forEach((t=>{r.classes.filter((e=>e.name==t)).forEach((t=>s.setAttributes(Object.assign(Object.assign({},t),{name:void 0}))))})),s}})(),n})()));
1
+ !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.draw=e():t.draw=e()}(this,(()=>(()=>{var t={127:function(t){var e;e=()=>(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>l,isBetweenExclusive:()=>c,isBetweenInclusive:()=>l,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function l(t,e,r){return t>=e&&t<=r}function c(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function m(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},369:function(t){var e;e=()=>(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>l,isBetweenExclusive:()=>c,isBetweenInclusive:()=>l,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function l(t,e,r){return t>=e&&t<=r}function c(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function m(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function h(t){return null==t}function u(t){return"object"==typeof t&&null!==t}function l(t){return Array.isArray(t)}function c(t){return l(t)&&t.every(r)}function d(t){return l(t)&&t.every(n)}function f(t){return l(t)&&t.every(i)}function m(t){return l(t)&&t.every(a)}return t.r(e),t.d(e,{isArray:()=>l,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>d,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>f,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>u,isNullish:()=>h,isNumber:()=>r,isNumbersArray:()=>c,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>m}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Linkers:()=>g,Stems:()=>p,areConflicting:()=>u,areCrossing:()=>d,areEqual:()=>a,areKnotless:()=>c,areStacked:()=>h,deepCopy:()=>i,knotless:()=>m,mountainPlotTraversal:()=>y,parseDotBracket:()=>b,sorted:()=>o});var t=r(854),e=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function i(r){return(0,t.isNumbersArray)(r)?e([],r,!0):r.map((function(t){return e([],t,!0)}))}var s=r(986);function o(t){var e=i(t);return e.forEach(s.sortNumbers),e.sort((function(t,e){return t[0]-e[0]})),e}function a(t,e){var r=i(t),n=i(e);return(0,s.sortNumbers)(r),(0,s.sortNumbers)(n),[0,1].every((function(t){return r[t]==n[t]}))}function h(t,e){var r=o([t,e]);return r[0][0]==r[1][0]-1&&r[0][1]==r[1][1]+1}function u(t,e){return(0,s.min)(t)==(0,s.min)(e)&&(0,s.max)(t)!=(0,s.max)(e)||(0,s.min)(t)!=(0,s.min)(e)&&(0,s.max)(t)==(0,s.max)(e)}function l(t){if(0==t.length)return[];for(var e=[],r=0;r<(0,s.max)(t.flat());r++)e.push(void 0);return t.forEach((function(t){e[t[0]-1]=t[1],e[t[1]-1]=t[0]})),e}function c(t){var e=l(t),r=[],n=!1;return e.forEach((function(t,e){var i=e+1;null==t||(i<t?r.push(i):i==t||r.pop()!=t&&(n=!0))})),!n}function d(t,e){return!c([t,e])}var f=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function m(t){var e=[],r=i(t);return r.sort((function(t,e){return Math.abs(t[0]-t[1])-Math.abs(e[0]-e[1])})),r.forEach((function(t){c(f(f([],e,!0),[t],!1))&&e.push(t)})),e}var p=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=this.targetStructure[1];if(0==t.length)return[];var e=o(t),r=[],n=[];return e.forEach((function(t){var e=0==n.length?null:n[n.length-1];!e||h(e,t)?n.push(t):(r.push(n),n=[t])})),r.push(n),r},t}(),g=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=(new(p.bind.apply(p,function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))}([void 0],this.targetStructure,!1)))).get().flatMap((function(t){return[t.map(s.min),t.map(s.max)]}));t.forEach(s.sortNumbers),t.sort((function(t,e){return(0,s.min)(t)-(0,s.min)(e)}));for(var e=[],r=t.shift(),n=t.shift();r&&n;){for(var i=[],o=(0,s.max)(r),a=(0,s.min)(n),h=o;h<=a;h++)i.push(h);e.push(i),r=n,n=t.shift()}return e},t}();function y(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=t[0],n=t[1],i=l(n);if(!c(n))throw new Error("Pseudoknot(s) encountered.");var s=[],o=0;return r.forEach((function(t,e){var r=e+1,n=i[e];null==n?s.push(o):r<n?(s.push(o),o++):(r==n||o--,s.push(o))})),s}function b(t){var e=t.split(""),r=[".","(",")"];e.forEach((function(t){if(!r.includes(t))throw new Error('Unrecognized character in dot-bracket notation: "'.concat(t,'".'))}));var n=[],i=[];if(e.forEach((function(t,e){var r=e+1;if("("==t)i.push(r);else if(")"==t){var s=i.pop();if("number"!=typeof s)throw new Error("Unmatched downstream partner(s) in dot-bracket notation.");n.push([s,r])}})),i.length>0)throw new Error("Unmatched upstream partner(s) in dot-bracket notation.");return o(n)}})(),n})(),t.exports=e()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{FirstPairedBase:()=>e,LastPairedBase:()=>s,LeadingDanglingBases:()=>o,Linkers:()=>l,PositionPairs:()=>t,Stems:()=>u,TrailingDanglingBases:()=>a,consecutivePairs:()=>f,knotless:()=>c,parseDotBracket:()=>d});class t{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];return this.targetStructure[1].map((e=>[t.indexOf(e[0])+1,t.indexOf(e[1])+1]))}}class e{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=this.targetStructure[1];if(0==e.length)throw new Error("There are no paired bases.");let r=e.flat(),n=t.findIndex((t=>r.includes(t)));if(n<0)throw new Error("No paired bases present in sequence.");return t[n]}}var i=r(986);class s{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=this.targetStructure[1];if(0==e.length)throw new Error("There are no paired bases.");let r=e.flat().map((e=>t.indexOf(e)));if((0,i.max)(r)<0)throw new Error("No paired bases present in sequence.");return t[(0,i.max)(r)]}}class o{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let r=new e(...this.targetStructure).get(),n=t.indexOf(r);if(n<0)throw new Error("No paired bases present in sequence.");return t.slice(0,n)}}class a{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let e=new s(...this.targetStructure).get(),r=t.indexOf(e);if(r<0)throw new Error("No paired bases present in sequence.");return t.slice(r+1)}}var h=r(369);class u{constructor(...t){this.targetStructure=t}get(){let e=this.targetStructure[0],r=new t(...this.targetStructure).get();return new h.Stems(e,r).get().map((t=>t.map((t=>[e[t[0]-1],e[t[1]-1]]))))}}class l{constructor(...t){this.targetStructure=t}get(){let e=this.targetStructure[0],r=new t(...this.targetStructure).get();return new h.Linkers(e,r).get().map((t=>t.map((t=>e[t-1]))))}}function c(...e){let[r,n]=e,i=new t(...e).get();(0,h.areKnotless)(i)||(i=(0,h.knotless)(i));let s=i.map((t=>[r[t[0]-1],r[t[1]-1]]));return[[...r],s]}function d(t,e){if(e.length>t.length)throw new Error("Dot-bracket notation is longer than the sequence.");return[...(0,h.parseDotBracket)(e)].map((e=>{let r=e[0],n=e[1];return[t[r-1],t[n-1]]}))}function f(t){return t.length<2?[]:t.slice(0,-1).map(((e,r)=>[t[r],t[r+1]]))}})(),n})(),t.exports=e()},661:function(t){var e;e=()=>(()=>{var t={127:function(t){var e;e=()=>(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>l,isBetweenExclusive:()=>c,isBetweenInclusive:()=>l,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function l(t,e,r){return t>=e&&t<=r}function c(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function m(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},369:function(t){var e;e=()=>(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>l,isBetweenExclusive:()=>c,isBetweenInclusive:()=>l,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function l(t,e,r){return t>=e&&t<=r}function c(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function m(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function h(t){return null==t}function u(t){return"object"==typeof t&&null!==t}function l(t){return Array.isArray(t)}function c(t){return l(t)&&t.every(r)}function d(t){return l(t)&&t.every(n)}function f(t){return l(t)&&t.every(i)}function m(t){return l(t)&&t.every(a)}return t.r(e),t.d(e,{isArray:()=>l,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>d,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>f,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>u,isNullish:()=>h,isNumber:()=>r,isNumbersArray:()=>c,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>m}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Linkers:()=>g,Stems:()=>p,areConflicting:()=>u,areCrossing:()=>d,areEqual:()=>a,areKnotless:()=>c,areStacked:()=>h,deepCopy:()=>i,knotless:()=>m,mountainPlotTraversal:()=>y,parseDotBracket:()=>b,sorted:()=>o});var t=r(854),e=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function i(r){return(0,t.isNumbersArray)(r)?e([],r,!0):r.map((function(t){return e([],t,!0)}))}var s=r(986);function o(t){var e=i(t);return e.forEach(s.sortNumbers),e.sort((function(t,e){return t[0]-e[0]})),e}function a(t,e){var r=i(t),n=i(e);return(0,s.sortNumbers)(r),(0,s.sortNumbers)(n),[0,1].every((function(t){return r[t]==n[t]}))}function h(t,e){var r=o([t,e]);return r[0][0]==r[1][0]-1&&r[0][1]==r[1][1]+1}function u(t,e){return(0,s.min)(t)==(0,s.min)(e)&&(0,s.max)(t)!=(0,s.max)(e)||(0,s.min)(t)!=(0,s.min)(e)&&(0,s.max)(t)==(0,s.max)(e)}function l(t){if(0==t.length)return[];for(var e=[],r=0;r<(0,s.max)(t.flat());r++)e.push(void 0);return t.forEach((function(t){e[t[0]-1]=t[1],e[t[1]-1]=t[0]})),e}function c(t){var e=l(t),r=[],n=!1;return e.forEach((function(t,e){var i=e+1;null==t||(i<t?r.push(i):i==t||r.pop()!=t&&(n=!0))})),!n}function d(t,e){return!c([t,e])}var f=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function m(t){var e=[],r=i(t);return r.sort((function(t,e){return Math.abs(t[0]-t[1])-Math.abs(e[0]-e[1])})),r.forEach((function(t){c(f(f([],e,!0),[t],!1))&&e.push(t)})),e}var p=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=this.targetStructure[1];if(0==t.length)return[];var e=o(t),r=[],n=[];return e.forEach((function(t){var e=0==n.length?null:n[n.length-1];!e||h(e,t)?n.push(t):(r.push(n),n=[t])})),r.push(n),r},t}(),g=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=(new(p.bind.apply(p,function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))}([void 0],this.targetStructure,!1)))).get().flatMap((function(t){return[t.map(s.min),t.map(s.max)]}));t.forEach(s.sortNumbers),t.sort((function(t,e){return(0,s.min)(t)-(0,s.min)(e)}));for(var e=[],r=t.shift(),n=t.shift();r&&n;){for(var i=[],o=(0,s.max)(r),a=(0,s.min)(n),h=o;h<=a;h++)i.push(h);e.push(i),r=n,n=t.shift()}return e},t}();function y(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=t[0],n=t[1],i=l(n);if(!c(n))throw new Error("Pseudoknot(s) encountered.");var s=[],o=0;return r.forEach((function(t,e){var r=e+1,n=i[e];null==n?s.push(o):r<n?(s.push(o),o++):(r==n||o--,s.push(o))})),s}function b(t){var e=t.split(""),r=[".","(",")"];e.forEach((function(t){if(!r.includes(t))throw new Error('Unrecognized character in dot-bracket notation: "'.concat(t,'".'))}));var n=[],i=[];if(e.forEach((function(t,e){var r=e+1;if("("==t)i.push(r);else if(")"==t){var s=i.pop();if("number"!=typeof s)throw new Error("Unmatched downstream partner(s) in dot-bracket notation.");n.push([s,r])}})),i.length>0)throw new Error("Unmatched upstream partner(s) in dot-bracket notation.");return o(n)}})(),n})(),t.exports=e()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{FirstPairedBase:()=>e,LastPairedBase:()=>s,LeadingDanglingBases:()=>o,Linkers:()=>l,PositionPairs:()=>t,Stems:()=>u,TrailingDanglingBases:()=>a,consecutivePairs:()=>f,knotless:()=>c,parseDotBracket:()=>d});class t{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];return this.targetStructure[1].map((e=>[t.indexOf(e[0])+1,t.indexOf(e[1])+1]))}}class e{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=this.targetStructure[1];if(0==e.length)throw new Error("There are no paired bases.");let r=e.flat(),n=t.findIndex((t=>r.includes(t)));if(n<0)throw new Error("No paired bases present in sequence.");return t[n]}}var i=r(986);class s{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0],e=this.targetStructure[1];if(0==e.length)throw new Error("There are no paired bases.");let r=e.flat().map((e=>t.indexOf(e)));if((0,i.max)(r)<0)throw new Error("No paired bases present in sequence.");return t[(0,i.max)(r)]}}class o{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let r=new e(...this.targetStructure).get(),n=t.indexOf(r);if(n<0)throw new Error("No paired bases present in sequence.");return t.slice(0,n)}}class a{constructor(...t){this.targetStructure=t}get(){let t=this.targetStructure[0];if(0==this.targetStructure[1].length)throw new Error("There are no paired bases.");let e=new s(...this.targetStructure).get(),r=t.indexOf(e);if(r<0)throw new Error("No paired bases present in sequence.");return t.slice(r+1)}}var h=r(369);class u{constructor(...t){this.targetStructure=t}get(){let e=this.targetStructure[0],r=new t(...this.targetStructure).get();return new h.Stems(e,r).get().map((t=>t.map((t=>[e[t[0]-1],e[t[1]-1]]))))}}class l{constructor(...t){this.targetStructure=t}get(){let e=this.targetStructure[0],r=new t(...this.targetStructure).get();return new h.Linkers(e,r).get().map((t=>t.map((t=>e[t-1]))))}}function c(...e){let[r,n]=e,i=new t(...e).get();(0,h.areKnotless)(i)||(i=(0,h.knotless)(i));let s=i.map((t=>[r[t[0]-1],r[t[1]-1]]));return[[...r],s]}function d(t,e){if(e.length>t.length)throw new Error("Dot-bracket notation is longer than the sequence.");return[...(0,h.parseDotBracket)(e)].map((e=>{let r=e[0],n=e[1];return[t[r-1],t[n-1]]}))}function f(t){return t.length<2?[]:t.slice(0,-1).map(((e,r)=>[t[r],t[r+1]]))}})(),n})(),t.exports=e()},173:function(t){var e;e=()=>(()=>{var t={422:function(t){t.exports=(()=>{var t={138:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}return t.r(e),t.d(e,{average:()=>n,mean:()=>n,sum:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";function t(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function e(t,e){return{x:e.x-t.x,y:e.y-t.y}}r.r(n),r.d(n,{centroid:()=>s,displacement:()=>e,distance:()=>t,midpoint:()=>o});var i=r(138);function s(t){return{x:(0,i.mean)(t.map((function(t){return t.x}))),y:(0,i.mean)(t.map((function(t){return t.y})))}}function o(t,e){return s([t,e])}})(),n})()},872:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{CircularSegment:()=>a,Semicircle:()=>e});var t=r(422),e=function(){function e(t){this.chord=t}return Object.defineProperty(e.prototype,"chordLength",{get:function(){return(0,t.distance)(this.chord[0],this.chord[1])},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"arcLength",{get:function(){return Math.PI*this.chordLength/2},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"arcAngle",{get:function(){return Math.PI},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleRadius",{get:function(){return this.chordLength/2},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleDiameter",{get:function(){return 2*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCircumference",{get:function(){return 2*Math.PI*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCenterPoint",{get:function(){return(0,t.midpoint)(this.chord[0],this.chord[1])},enumerable:!1,configurable:!0}),e}(),i=r(872),s=function(){function e(e,r){this.chord=e,this.moreProps=r;var n=r.arcLength,i=(0,t.distance)(e[0],e[1]);if(n<=i)throw new Error("Arc length is too small.");if(n>=Math.PI*i/2)throw new Error("Arc length is too big.");for(var s=Math.PI/2,o=0;o<20;o++)s-=(n/i*Math.sin(s)-s)/(n/i*Math.cos(s)-1);this.arcAngle=2*s}return Object.defineProperty(e.prototype,"chordLength",{get:function(){return(0,t.distance)(this.chord[0],this.chord[1])},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"arcLength",{get:function(){return this.moreProps.arcLength},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleRadius",{get:function(){return this.arcLength/this.arcAngle},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleDiameter",{get:function(){return 2*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCircumference",{get:function(){return 2*Math.PI*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCenterPoint",{get:function(){var e=(0,i.direction)((0,t.displacement)(this.chord[0],this.chord[1]));e+=(Math.PI-this.arcAngle)/2;var r=this.parentCircleRadius;return{x:this.chord[0].x+r*Math.cos(e),y:this.chord[0].y+r*Math.sin(e)}},enumerable:!1,configurable:!0}),e}(),o=function(){function e(e,r){this.chord=e,this.moreProps=r;var n=r.arcLength,i=(0,t.distance)(e[0],e[1]);if(0==i)throw new Error("Chord length cannot be zero.");if(n<=Math.PI*i/2)throw new Error("Arc length is too small.");for(var s=Math.PI,o=0;o<20;o++)s-=(n/i*Math.sin(Math.PI-s)-s)/(-n/i*Math.cos(Math.PI-s)-1);this.arcAngle=2*s}return Object.defineProperty(e.prototype,"chordLength",{get:function(){return(0,t.distance)(this.chord[0],this.chord[1])},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"arcLength",{get:function(){return this.moreProps.arcLength},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleRadius",{get:function(){return this.arcLength/this.arcAngle},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleDiameter",{get:function(){return 2*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCircumference",{get:function(){return 2*Math.PI*this.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"parentCircleCenterPoint",{get:function(){var e=(0,i.direction)((0,t.displacement)(this.chord[0],this.chord[1]));e-=(this.arcAngle-Math.PI)/2;var r=this.parentCircleRadius;return{x:this.chord[0].x+r*Math.cos(e),y:this.chord[0].y+r*Math.sin(e)}},enumerable:!1,configurable:!0}),e}(),a=function(){function r(r,n){this.chord=r,this.moreProps=n;var i=n.arcLength,a=(0,t.distance)(r[0],r[1]);if(a>0&&i<=a)throw new Error("Arc length is too small.");var h=a<.001&&i<.001,u=Math.PI*a/2,l=Math.abs(i-u)<.001;this.wrappedCircularSegment=h||l?new e(r):i<u?new s(r,{arcLength:i}):new o(r,{arcLength:i})}return Object.defineProperty(r.prototype,"chordLength",{get:function(){return this.wrappedCircularSegment.chordLength},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"arcLength",{get:function(){return this.moreProps.arcLength},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"arcAngle",{get:function(){return this.wrappedCircularSegment.arcAngle},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"parentCircleRadius",{get:function(){return this.wrappedCircularSegment.parentCircleRadius},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"parentCircleDiameter",{get:function(){return this.wrappedCircularSegment.parentCircleDiameter},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"parentCircleCircumference",{get:function(){return this.wrappedCircularSegment.parentCircleCircumference},enumerable:!1,configurable:!0}),Object.defineProperty(r.prototype,"parentCircleCenterPoint",{get:function(){return this.wrappedCircularSegment.parentCircleCenterPoint},enumerable:!1,configurable:!0}),r}()})(),n})(),t.exports=e()},986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>l,isBetweenExclusive:()=>c,isBetweenInclusive:()=>l,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function l(t,e,r){return t>=e&&t<=r}function c(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function m(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},456:function(t){var e;e=()=>(()=>{var t={277:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{Vector:()=>r});class r{static matching(t){return new r(t.x,t.y)}constructor(t,e){this.x=t,this.y=e}[Symbol.iterator](){return[this.x,this.y].values()}get magnitude(){return Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2))}get direction(){return Math.atan2(this.y,this.x)}}return e})(),t.exports=e()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Point:()=>e,RelativePoint:()=>l});var t=r(277);class e{static matching(t){return new e(t.x,t.y)}constructor(t,e){this.x=t,this.y=e}[Symbol.iterator](){return[this.x,this.y].values()}displacementTo(e){return new t.Vector(e.x-this.x,e.y-this.y)}displacementFrom(e){return new t.Vector(this.x-e.x,this.y-e.y)}distanceTo(t){return this.displacementTo(t).magnitude}distanceFrom(t){return this.distanceTo(t)}directionTo(t){return this.displacementTo(t).direction}directionFrom(t){return this.displacementFrom(t).direction}}var i,s,o,a,h,u=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class l{constructor(e){i.add(this),s.set(this,void 0),o.set(this,new t.Vector(0,0)),a.set(this,{move:[]}),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,s,e),e.addEventListener("move",(()=>u(this,i,"m",h).call(this,"move")))}get x(){return u(this,s,"f").x+u(this,o,"f").x}set x(t){u(this,o,"f").x=t-u(this,s,"f").x,u(this,i,"m",h).call(this,"move")}get y(){return u(this,s,"f").y+u(this,o,"f").y}set y(t){u(this,o,"f").y=t-u(this,s,"f").y,u(this,i,"m",h).call(this,"move")}addEventListener(t,e){u(this,a,"f")[t].push(e)}removeEventListener(t,e){u(this,a,"f")[t]=u(this,a,"f")[t].filter((t=>t!==e))}}s=new WeakMap,o=new WeakMap,a=new WeakMap,i=new WeakSet,h=function(t){u(this,a,"f")[t].forEach((t=>t()))}})(),n})(),t.exports=e()},725:function(t){t.exports=(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>d,average:()=>n,degrees:()=>p,isBetweenExclusive:()=>c,isBetweenInclusive:()=>l,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>g,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>f,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function l(t,e,r){return t>=e&&t<=r}function c(t,e,r){return t>e&&t<r}function d(t,e,r){return Math.abs(t-e)<=r}function f(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function p(t){return t*(180/Math.PI)}function g(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function h(t){return null==t}function u(t){return"object"==typeof t&&null!==t}function l(t){return Array.isArray(t)}return t.r(e),t.d(e,{isArray:()=>l,isFiniteNumber:()=>n,isNonFiniteNumber:()=>i,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>u,isNullish:()=>h,isNumber:()=>r,isPositiveFiniteNumber:()=>s,isString:()=>a}),e})()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{areWithin:()=>a,centroid:()=>f,deepCopy:()=>s,direction:()=>c,displaced:()=>u,displacement:()=>h,distance:()=>o,isFinitePoint:()=>i,isPoint:()=>e,midpoint:()=>m});var t=r(854);function e(e){return(0,t.isNonNullObject)(e)&&(0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)}function i(r){return e(r)&&(0,t.isFiniteNumber)(r.x)&&(0,t.isFiniteNumber)(r.y)}function s(t){return{x:t.x,y:t.y}}function o(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function a(t,e,r){return o(t,e)<=r}function h(t,e){return{x:e.x-t.x,y:e.y-t.y}}function u(t,e){return{x:t.x+e.x,y:t.y+e.y}}var l=r(30);function c(t,e){return(0,l.direction)(h(t,e))}var d=r(986);function f(t){return{x:(0,d.mean)(t.map((function(t){return t.x}))),y:(0,d.mean)(t.map((function(t){return t.y})))}}function m(t,e){return f([t,e])}})(),n})()},369:function(t){var e;e=()=>(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>l,isBetweenExclusive:()=>c,isBetweenInclusive:()=>l,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function l(t,e,r){return t>=e&&t<=r}function c(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function m(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function h(t){return null==t}function u(t){return"object"==typeof t&&null!==t}function l(t){return Array.isArray(t)}function c(t){return l(t)&&t.every(r)}function d(t){return l(t)&&t.every(n)}function f(t){return l(t)&&t.every(i)}function m(t){return l(t)&&t.every(a)}return t.r(e),t.d(e,{isArray:()=>l,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>d,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>f,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>u,isNullish:()=>h,isNumber:()=>r,isNumbersArray:()=>c,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>m}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Linkers:()=>g,Stems:()=>p,areConflicting:()=>u,areCrossing:()=>d,areEqual:()=>a,areKnotless:()=>c,areStacked:()=>h,deepCopy:()=>i,knotless:()=>m,mountainPlotTraversal:()=>y,parseDotBracket:()=>b,sorted:()=>o});var t=r(854),e=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function i(r){return(0,t.isNumbersArray)(r)?e([],r,!0):r.map((function(t){return e([],t,!0)}))}var s=r(986);function o(t){var e=i(t);return e.forEach(s.sortNumbers),e.sort((function(t,e){return t[0]-e[0]})),e}function a(t,e){var r=i(t),n=i(e);return(0,s.sortNumbers)(r),(0,s.sortNumbers)(n),[0,1].every((function(t){return r[t]==n[t]}))}function h(t,e){var r=o([t,e]);return r[0][0]==r[1][0]-1&&r[0][1]==r[1][1]+1}function u(t,e){return(0,s.min)(t)==(0,s.min)(e)&&(0,s.max)(t)!=(0,s.max)(e)||(0,s.min)(t)!=(0,s.min)(e)&&(0,s.max)(t)==(0,s.max)(e)}function l(t){if(0==t.length)return[];for(var e=[],r=0;r<(0,s.max)(t.flat());r++)e.push(void 0);return t.forEach((function(t){e[t[0]-1]=t[1],e[t[1]-1]=t[0]})),e}function c(t){var e=l(t),r=[],n=!1;return e.forEach((function(t,e){var i=e+1;null==t||(i<t?r.push(i):i==t||r.pop()!=t&&(n=!0))})),!n}function d(t,e){return!c([t,e])}var f=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function m(t){var e=[],r=i(t);return r.sort((function(t,e){return Math.abs(t[0]-t[1])-Math.abs(e[0]-e[1])})),r.forEach((function(t){c(f(f([],e,!0),[t],!1))&&e.push(t)})),e}var p=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=this.targetStructure[1];if(0==t.length)return[];var e=o(t),r=[],n=[];return e.forEach((function(t){var e=0==n.length?null:n[n.length-1];!e||h(e,t)?n.push(t):(r.push(n),n=[t])})),r.push(n),r},t}(),g=function(){function t(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];this.targetStructure=t}return t.prototype.get=function(){var t=(new(p.bind.apply(p,function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))}([void 0],this.targetStructure,!1)))).get().flatMap((function(t){return[t.map(s.min),t.map(s.max)]}));t.forEach(s.sortNumbers),t.sort((function(t,e){return(0,s.min)(t)-(0,s.min)(e)}));for(var e=[],r=t.shift(),n=t.shift();r&&n;){for(var i=[],o=(0,s.max)(r),a=(0,s.min)(n),h=o;h<=a;h++)i.push(h);e.push(i),r=n,n=t.shift()}return e},t}();function y(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];var r=t[0],n=t[1],i=l(n);if(!c(n))throw new Error("Pseudoknot(s) encountered.");var s=[],o=0;return r.forEach((function(t,e){var r=e+1,n=i[e];null==n?s.push(o):r<n?(s.push(o),o++):(r==n||o--,s.push(o))})),s}function b(t){var e=t.split(""),r=[".","(",")"];e.forEach((function(t){if(!r.includes(t))throw new Error('Unrecognized character in dot-bracket notation: "'.concat(t,'".'))}));var n=[],i=[];if(e.forEach((function(t,e){var r=e+1;if("("==t)i.push(r);else if(")"==t){var s=i.pop();if("number"!=typeof s)throw new Error("Unmatched downstream partner(s) in dot-bracket notation.");n.push([s,r])}})),i.length>0)throw new Error("Unmatched upstream partner(s) in dot-bracket notation.");return o(n)}})(),n})(),t.exports=e()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Centroid:()=>s,Direction:()=>f,MaxCenterX:()=>h,MaxCenterY:()=>l,MinCenterX:()=>a,MinCenterY:()=>u,NucleobaseMock:()=>t,arrange:()=>N,circularize:()=>v,flipSelfX:()=>g,flipSelfY:()=>y,flipX:()=>m,flipY:()=>p,linearize:()=>b,radialize:()=>V,rotate:()=>d,round:()=>S,shift:()=>e,stemmify:()=>x,straighten:()=>w});class t{constructor(t){this.props=t}getCenterPoint(){return this.props.centerPoint}setCenterPoint(t){this.props.centerPoint=t}}function e(t,e){t.forEach((t=>{let r=t.getCenterPoint();t.setCenterPoint({x:r.x+e.x,y:r.y+e.y})}))}var i=r(725);class s{constructor(t){this.targetBases=t}get(){let t=this.targetBases.map((t=>t.getCenterPoint()));return(0,i.centroid)(t)}set(t){let r=this.get(),n=(0,i.displacement)(r,t);e(this.targetBases,n)}}var o=r(986);class a{constructor(t){this.targetBases=t}get(){return(0,o.min)(this.targetBases.map((t=>t.getCenterPoint().x)))}set(t){let r=this.get();e(this.targetBases,{x:t-r,y:0})}}class h{constructor(t){this.targetBases=t}get(){return(0,o.max)(this.targetBases.map((t=>t.getCenterPoint().x)))}set(t){let r=this.get();e(this.targetBases,{x:t-r,y:0})}}class u{constructor(t){this.targetBases=t}get(){return(0,o.min)(this.targetBases.map((t=>t.getCenterPoint().y)))}set(t){let r=this.get();e(this.targetBases,{x:0,y:t-r})}}class l{constructor(t){this.targetBases=t}get(){return(0,o.max)(this.targetBases.map((t=>t.getCenterPoint().y)))}set(t){let r=this.get();e(this.targetBases,{x:0,y:t-r})}}var c=r(30);function d(t,e){if(t.length<2)return;let r=t[0],n=t[t.length-1],s=(0,i.midpoint)(r.getCenterPoint(),n.getCenterPoint());t.forEach((t=>{let r=t.getCenterPoint(),n=(0,i.distance)(s,r),o=(0,c.direction)((0,i.displacement)(s,r));o+=e,t.setCenterPoint({x:s.x+n*Math.cos(o),y:s.y+n*Math.sin(o)})}))}class f{constructor(t){this.targetBases=t}get(){if(this.targetBases.length<2)return 0;let t=this.targetBases[0],e=this.targetBases[this.targetBases.length-1];return(0,c.direction)((0,i.displacement)(t.getCenterPoint(),e.getCenterPoint()))}set(t){let e=t-this.get();d(this.targetBases,e)}}function m(t){let e=new s(t).get().y;t.forEach((t=>{let r=t.getCenterPoint(),n=r.y-e;t.setCenterPoint({x:r.x,y:e-n})}))}function p(t){let e=new s(t).get().x;t.forEach((t=>{let r=t.getCenterPoint(),n=r.x-e;t.setCenterPoint({x:e-n,y:r.y})}))}function g(t){if(0==t.length)return;let r=t[0],{x:n,y:s}=r.getCenterPoint(),o={x:n,y:s},a=new f(t).get();d(t,-a),m(t),d(t,a),e(t,(0,i.displacement)(r.getCenterPoint(),o))}function y(t){let e=new s(t),{x:r,y:n}=e.get(),i=r,o=n,a=new f(t).get();d(t,-a),p(t),d(t,a),e.set({x:i,y:o})}function b(t,e){let{spacing:r}=e;if(t.length<2)return;let n=new f(t),i=n.get(),o=new s(t),{x:a,y:h}=o.get(),u={x:a,y:h};t.forEach(((t,e)=>{t.setCenterPoint({x:e*r,y:0})})),n.set(i),o.set(u)}function w(t){if(t.length<3)return;let e=t[0],r=t[t.length-1],n=[e.getCenterPoint(),r.getCenterPoint()],s=(0,i.distance)(n[0],n[1]),o=(0,c.direction)((0,i.displacement)(n[0],n[1])),a=s/(t.length-1),h=a*Math.cos(o),u=a*Math.sin(o),{x:l,y:d}=n[0];t.forEach((t=>{t.setCenterPoint({x:l,y:d}),l+=h,d+=u}))}function x(t,r){let{basePairLength:n,basePairSpacing:o}=r;if(t.length<2)return;let a=Math.ceil(t.length/2),h=t.slice(0,a),u=t.slice(a),l=new s(t),{x:c,y:m}=l.get(),p={x:c,y:m},g=new f(t).get();b(h,{spacing:o}),b(u,{spacing:o}),new f(h).set(-Math.PI/2),new f(u).set(Math.PI/2);let y=t[0],w=t[t.length-1];e(h,(0,i.displacement)(y.getCenterPoint(),{x:0,y:0})),e(u,(0,i.displacement)(w.getCenterPoint(),{x:n,y:0})),d(t,g),l.set(p)}function v(t,e){let{spacing:r,terminiGap:n}=e;if(t.length<2)return;let i=new s(t),{x:o,y:a}=i.get(),h=o,u=a,l=new f(t).get(),c=r*(t.length-1);c+=n,Math.abs(c)<1e-5&&(c=1e-5);let m=c/(2*Math.PI),p=Math.PI/2+2*Math.PI*(.5*n/c);t.forEach(((t,e)=>{let n=p+2*Math.PI*(e*r)/c;t.setCenterPoint({x:m*Math.cos(n),y:m*Math.sin(n)})})),d(t,l),i.set({x:h,y:u})}var _=r(173);function S(t,r){let{spacing:n}=r;if(t.length<3)return;let s=t[0],o=t[t.length-1],a=[s.getCenterPoint(),o.getCenterPoint()],h=(0,i.distance)(a[0],a[1]),u=n*(t.length-1);if(u-h<.001)return void w(t);if(h<.001){let{x:r,y:o}=s.getCenterPoint();return v(t,{spacing:n,terminiGap:h}),void e(t,(0,i.displacement)(s.getCenterPoint(),{x:r,y:o}))}let l=new _.CircularSegment(a,{arcLength:u}),d=l.parentCircleCenterPoint,f=l.parentCircleRadius,m=(0,c.direction)((0,i.displacement)(d,s.getCenterPoint())),p=l.arcAngle/(t.length-1);t.forEach((t=>{t.setCenterPoint({x:d.x+f*Math.cos(m),y:d.y+f*Math.sin(m)}),m+=p}))}var M=r(127),O=r(369);function N(t,r,n){var a,h,u;let{spacing:l}=n,c=null!==(a=n.basePairSpacing)&&void 0!==a?a:l,d=null!==(h=n.hairpinLoopSpacing)&&void 0!==h?h:l,m=null!==(u=n.terminiGap)&&void 0!==u?u:l,{x:p,y:g}=new s(t).get(),y={x:p,y:g},b=new f(t).get();[,r]=(0,M.knotless)(t,r);let w=new M.PositionPairs(t,r).get(),_=(0,O.mountainPlotTraversal)(t,w),N=t.filter(((t,e)=>0==_[e]));v(N,{spacing:l,terminiGap:m});let C=new M.Stems(t,r).get(),P=new Set(N),A=C.filter((t=>P.has(t[0][0]))),E=r=>{let n=r[0],{x:a,y:h}=new s(n).get(),u={x:a,y:h},m=new f(r[0]).get(),p=[...r.map((t=>t[0])),...r.map((t=>t[1])).reverse()];x(p,{basePairLength:l,basePairSpacing:c}),new f(p).set(m),e(p,(0,i.displacement)(new s(n).get(),u));let g=r[r.length-1],y=g.map((e=>t.indexOf(e))),b=t.filter(((t,e)=>(0,o.isBetweenExclusive)(e,(0,o.min)(y),(0,o.max)(y))&&_[e]==_[(0,o.min)(y)]+1)),w=new Set(b),v=C.filter((t=>w.has(t[0][0])));S([g[0],...b,g[1]],{spacing:v.length>0?l:d}),v.forEach((t=>E(t)))};A.forEach((t=>E(t))),new f(t).set(b),new s(t).set(y)}var C=r(456);class P{static from(t){return{to:e=>({inclusive:()=>{let r=e-t+1;return Array.from({length:r},((e,r)=>t+r))}})}}}class A{static of(...t){let[e,r]=t,n=new M.PositionPairs(...t).get();n=(0,O.sorted)(n);let i=n.map((t=>t.map((t=>t-1)))),s=[],a=0;return e.forEach(((t,e)=>{let r=i.find((t=>t.includes(e)));r&&e==(0,o.min)(r)?(s.push(a),a+=1):r&&e==(0,o.max)(r)?(a-=1,s.push(a)):s.push(a)})),s}}class E{constructor(...t){let[e,r]=t;this.rawForm=t,this.mountainPlotTraversal=A.of(...t),this.positionPairs=new M.PositionPairs(...t).get(),this.indexPairs=this.positionPairs.map((t=>[t[0]-1,t[1]-1])),this.pairedBases=new Set(r.flat()),this.pairedIndices=new Set(e.map(((t,e)=>({b:t,i:e}))).filter((t=>this.pairedBases.has(t.b))).map((t=>t.i)))}[Symbol.iterator](){return this.rawForm.values()}get sequence(){return this.rawForm[0]}get basePairs(){return this.rawForm[1]}}class T{static correspondingTo(t){return{in:e=>t.map((t=>e.sequence.indexOf(t)))}}}class j{static composedOf(t){if(0==t.length)throw new Error("All stems must have at least one base-pair.");let r=t[0],n=t[t.length-1],s=t.map((t=>t[0])),o=t.map((t=>t[1])).reverse(),a=r[0],h=r[1],u=[...s,...o];return{[Symbol.iterator]:()=>t.values(),bottomBasePair:r,topBasePair:n,side5:s,side3:o,flat:()=>u,firstBase:a,lastBase:h,stemmify:()=>({with:t=>{let{basePairLength:r,basePairSpacing:n}=t,s=C.Point.matching(a.getCenterPoint());x(u,{basePairLength:r,basePairSpacing:n}),e(u,(0,i.displacement)(a.getCenterPoint(),s))}})}}}class D{static in(t){return{[Symbol.iterator]:()=>new M.Stems(t.sequence,t.basePairs).get().map((t=>j.composedOf(t))).values()}}}class k{static composedOf(t){if(t.length<2)throw new Error("Linkers must have at least two bases.");let r=t[0],n=t[t.length-1],s=t.slice(1,-1);return{in:o=>{let a=o.sequence.indexOf(r),h=o.sequence.indexOf(n),u=P.from(a).to(h).inclusive(),l=!!o.indexPairs.find((t=>t.includes(a)&&t.includes(h))),c=u.every((t=>0==o.mountainPlotTraversal[t])),d=1==new Set(u.map((t=>o.mountainPlotTraversal[t]))).size&&!l;return{[Symbol.iterator]:()=>t.values(),indices:u,firstBase:r,lastBase:n,firstIndex:a,lastIndex:h,unpairedBases:{[Symbol.iterator]:()=>s.values(),stemmify:()=>({with:t=>{let{spacing:r}=t;if(s.length<3)return;let n=s[0],o=s[s.length-1],a=C.Point.matching(n.getCenterPoint());x(s,{basePairLength:(0,i.distance)(n.getCenterPoint(),o.getCenterPoint()),basePairSpacing:r}),e(s,(0,i.displacement)(n.getCenterPoint(),a))}})},get middleThreeUnpairedBases(){if(s.length<3)throw new Error("This linker has less than three unpaired bases.");if(s.length%2==0)throw new Error("This linker has an even number of unpaired bases.");let t=Math.floor(s.length/2);return[s[t-1],s[t],s[t+1]]},isHairpinLoop:()=>l,isInOutermostLoop:()=>c,isBetweenSiblingStems:()=>d,round:()=>({with:e=>{let{spacing:r}=e;S(t,{spacing:r})}})}}}}}class B{static in(t){let e=new M.Linkers(t.sequence,t.basePairs).get().map((e=>k.composedOf(e).in(t)));return{[Symbol.iterator]:()=>e.values(),thatAreHairpinLoops:{[Symbol.iterator]:()=>e.filter((t=>t.isHairpinLoop())).values()},inOutermostLoop:{[Symbol.iterator]:()=>e.filter((t=>t.isInOutermostLoop())).values()},notInOutermostLoop:{[Symbol.iterator]:()=>e.filter((t=>!t.isInOutermostLoop())).values(),betweenSiblingStems:{[Symbol.iterator]:()=>e.filter((t=>!t.isInOutermostLoop())).filter((t=>t.isBetweenSiblingStems())).values()}},notBetweenSiblingStems:{[Symbol.iterator]:()=>e.filter((t=>!t.isBetweenSiblingStems())).values()}}}}class I{static closedBy(r){return{in:n=>{let s=r.topBasePair,a=T.correspondingTo(s).in(n),h=(0,o.min)(a),u=n.sequence.filter(((t,e)=>e>(0,o.min)(a)&&e<(0,o.max)(a)&&n.mountainPlotTraversal[e]==n.mountainPlotTraversal[h]+1)),l=u.map((t=>n.sequence.indexOf(t))),c=u.filter((t=>n.pairedBases.has(t))),d=l.filter((t=>n.pairedIndices.has(t))),f=[s[0],...u,s[1]];return{[Symbol.iterator]:()=>f.values(),parentStructure:n,closingStem:r,closingBasePair:s,closingIndexPair:a,enclosedBases:u,enclosedIndices:l,enclosedPairedBases:c,enclosedPairedIndices:d,get platform(){if(0==d.length)throw new Error("This loop does not have a platform.");let r=(0,o.min)(d),h=(0,o.max)(d),u=n.sequence.filter(((t,e)=>e>=r&&e<=h&&l.includes(e)&&[e-1,e,e+1].some((t=>d.includes(t)))));return{[Symbol.iterator]:()=>u.values(),firstIndex:r,lastIndex:h,arch:()=>({with:n=>{let{spacing:l}=n,c=(0,o.max)([u.length-2,r-(0,o.min)(a)-1,(0,o.max)(a)-h-1,0]),d=P.from(1).to(c).inclusive().map((()=>new t({centerPoint:{x:0,y:0}}))),f=d.map((()=>new t({centerPoint:{x:0,y:0}}))),m=C.Point.matching(s[0].getCenterPoint());v([s[0],...d,...u,...f,s[1]],{spacing:l,terminiGap:l}),e([...s,...u],(0,i.displacement)(s[0].getCenterPoint(),m))}})}}}}}}}class L{static of(t){let e=t.sequence.filter(((e,r)=>0==t.mountainPlotTraversal[r]));return{[Symbol.iterator]:()=>e.values()}}}function V(t,e,r){var n;let{spacing:i,basePairSpacing:o}=r,a=null!==(n=r.hairpinLoopSpacing)&&void 0!==n?n:i,h=new E(t,e);if(t.length<2)return;if(0==e.length)return void v(t,{spacing:i,terminiGap:2*i});let u=C.Point.matching(new s(t).get()),l=new f(t).get(),c=D.in(h),d=B.in(h);v([...L.of(h)],{spacing:i,terminiGap:2*i});let m=[...c].map((t=>I.closedBy(t).in(h)));m.filter((t=>t.enclosedPairedBases.length>0)).forEach((t=>{t.closingStem.stemmify().with({basePairLength:i,basePairSpacing:o}),t.platform.arch().with({spacing:i}),t.closingStem.stemmify().with({basePairLength:i,basePairSpacing:o})})),m.filter((t=>0==t.enclosedPairedBases.length)).forEach((t=>t.closingStem.stemmify().with({basePairLength:i,basePairSpacing:o}))),[...d.notBetweenSiblingStems].forEach((t=>t.round().with({spacing:i}))),[...d.thatAreHairpinLoops].forEach((t=>t.round().with({spacing:a}))),[...d.notInOutermostLoop.betweenSiblingStems].filter((t=>[...t.unpairedBases].length>=3)).forEach((t=>{t.unpairedBases.stemmify().with({spacing:i}),[...t.unpairedBases].length%2!=0&&S(t.middleThreeUnpairedBases,{spacing:i})})),new f(t).set(l),new s(t).set(u)}})(),n})(),t.exports=e()},282:function(t){var e;e=()=>(()=>{var t={726:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t,e){for(let[r,n]of Object.entries(e))t.setAttribute(r,n)}t.r(e),t.d(e,{CoordinateSystem:()=>c,HorizontalClientScaling:()=>f,InnerXML:()=>w,OuterXML:()=>_,Scaling:()=>d,VerticalClientScaling:()=>m,assignUUID:()=>l,bringToFront:()=>p,sendToBack:()=>g,setAttributes:()=>r});const n={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};var i,s=new Uint8Array(16);function o(){if(!i&&!(i="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return i(s)}for(var a=[],h=0;h<256;++h)a.push((h+256).toString(16).slice(1));const u=function(t,e,r){if(n.randomUUID&&!e&&!t)return n.randomUUID();var i=(t=t||{}).random||(t.rng||o)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,e){r=r||0;for(var s=0;s<16;++s)e[r+s]=i[s];return e}return function(t,e=0){return(a[t[e+0]]+a[t[e+1]]+a[t[e+2]]+a[t[e+3]]+"-"+a[t[e+4]]+a[t[e+5]]+"-"+a[t[e+6]]+a[t[e+7]]+"-"+a[t[e+8]]+a[t[e+9]]+"-"+a[t[e+10]]+a[t[e+11]]+a[t[e+12]]+a[t[e+13]]+a[t[e+14]]+a[t[e+15]]).toLowerCase()}(i)};function l(t){t.id="uuid-"+u()}class c{constructor(t){this.targetSVGDoc=t}get width(){return this.targetSVGDoc.viewBox.baseVal.width}get height(){return this.targetSVGDoc.viewBox.baseVal.height}get minX(){return this.targetSVGDoc.viewBox.baseVal.x}get maxX(){return this.minX+this.width}get minY(){return this.targetSVGDoc.viewBox.baseVal.y}get maxY(){return this.minY+this.height}get horizontalScaling(){return this.targetSVGDoc.width.baseVal.value/this.width}get verticalScaling(){return this.targetSVGDoc.height.baseVal.value/this.height}setScaling(t){this.targetSVGDoc.setAttribute("width",""+t*this.width),this.targetSVGDoc.setAttribute("height",""+t*this.height)}get clientWidth(){return this.targetSVGDoc.getBoundingClientRect().width}get clientHeight(){return this.targetSVGDoc.getBoundingClientRect().height}get horizontalClientScaling(){return this.clientWidth/this.width}get verticalClientScaling(){return this.clientHeight/this.height}get minClientX(){return this.targetSVGDoc.getBoundingClientRect().x}get minClientY(){return this.targetSVGDoc.getBoundingClientRect().y}fromClientX(t){return this.minX+(t-this.minClientX)/this.horizontalClientScaling}fromClientY(t){return this.minY+(t-this.minClientY)/this.verticalClientScaling}fromClientCoordinates(t,e){return[this.fromClientX(t),this.fromClientY(e)]}fromClientPoint(t){return{x:this.fromClientX(t.x),y:this.fromClientY(t.y)}}toClientX(t){return this.minClientX+this.horizontalClientScaling*(t-this.minX)}toClientY(t){return this.minClientY+this.verticalClientScaling*(t-this.minY)}toClientCoordinates(t,e){return[this.toClientX(t),this.toClientY(e)]}toClientPoint(t){return{x:this.toClientX(t.x),y:this.toClientY(t.y)}}}class d{constructor(t){this.targetSVGDoc=t}set(t){let e=this.targetSVGDoc.viewBox.baseVal;this.targetSVGDoc.setAttribute("width",t*e.width+"px"),this.targetSVGDoc.setAttribute("height",t*e.height+"px")}}class f{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.width/e.width}}class m{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.height/e.height}}function p(t){let e=t.parentNode;e&&e.appendChild(t)}function g(t){let e=t.parentNode;e&&e.prepend(t)}var y,b=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class w{constructor(t){y.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,y,t)}toString(){return b(this,y,"f").innerHTML}set(t){b(this,y,"f").innerHTML=t}}y=new WeakMap;var x,v=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class _{constructor(t){x.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,x,t)}toString(){return v(this,x,"f").outerHTML}set(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");if(e.style.height="0px",document.body.append(e),e.innerHTML=t,!e.firstElementChild)throw new Error("Outer XML must encode an SVG element.");if(e.childNodes.length>1)throw new Error("Outer XML cannot encode multiple DOM nodes.");if(e.firstElementChild.tagName.toLowerCase()!=v(this,x,"f").tagName.toLowerCase())throw new Error("Outer XML must specify an SVG element with the same tag name as the target SVG element.");[...v(this,x,"f").attributes].forEach((t=>v(this,x,"f").removeAttribute(t.name))),[...e.firstElementChild.attributes].forEach((t=>v(this,x,"f").setAttribute(t.name,t.value))),v(this,x,"f").innerHTML=e.firstElementChild.innerHTML,e.remove()}}return x=new WeakMap,e})(),t.exports=e()},725:function(t){t.exports=(()=>{var t={986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>d,average:()=>n,degrees:()=>p,isBetweenExclusive:()=>c,isBetweenInclusive:()=>l,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>g,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>f,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>m,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function l(t,e,r){return t>=e&&t<=r}function c(t,e,r){return t>e&&t<r}function d(t,e,r){return Math.abs(t-e)<=r}function f(t){i(t),t.reverse()}function m(t){var e=o(t);return e.reverse(),e}function p(t){return t*(180/Math.PI)}function g(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function h(t){return null==t}function u(t){return"object"==typeof t&&null!==t}function l(t){return Array.isArray(t)}return t.r(e),t.d(e,{isArray:()=>l,isFiniteNumber:()=>n,isNonFiniteNumber:()=>i,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>u,isNullish:()=>h,isNumber:()=>r,isPositiveFiniteNumber:()=>s,isString:()=>a}),e})()},30:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return Math.pow(Math.pow(t.x,2)+Math.pow(t.y,2),.5)}function n(t){return Math.atan2(t.y,t.x)}return t.r(e),t.d(e,{direction:()=>n,magnitude:()=>r}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{areWithin:()=>a,centroid:()=>f,deepCopy:()=>s,direction:()=>c,displaced:()=>u,displacement:()=>h,distance:()=>o,isFinitePoint:()=>i,isPoint:()=>e,midpoint:()=>m});var t=r(854);function e(e){return(0,t.isNonNullObject)(e)&&(0,t.isNumber)(e.x)&&(0,t.isNumber)(e.y)}function i(r){return e(r)&&(0,t.isFiniteNumber)(r.x)&&(0,t.isFiniteNumber)(r.y)}function s(t){return{x:t.x,y:t.y}}function o(t,e){var r=e.x-t.x,n=e.y-t.y;return Math.pow(Math.pow(r,2)+Math.pow(n,2),.5)}function a(t,e,r){return o(t,e)<=r}function h(t,e){return{x:e.x-t.x,y:e.y-t.y}}function u(t,e){return{x:t.x+e.x,y:t.y+e.y}}var l=r(30);function c(t,e){return(0,l.direction)(h(t,e))}var d=r(986);function f(t){return{x:(0,d.mean)(t.map((function(t){return t.x}))),y:(0,d.mean)(t.map((function(t){return t.y})))}}function m(t,e){return f([t,e])}})(),n})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function h(t){return null==t}function u(t){return"object"==typeof t&&null!==t}function l(t){return Array.isArray(t)}function c(t){return l(t)&&0==t.length}function d(t){return l(t)&&t.length>0}function f(t){return l(t)&&t.every(r)}function m(t){return f(t)&&t.length>0}function p(t){return l(t)&&t.every(n)}function g(t){return l(t)&&t.every(i)}function y(t){return l(t)&&t.every(a)}function b(t){return y(t)&&t.length>0}return t.r(e),t.d(e,{isArray:()=>l,isEmptyArray:()=>c,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>p,isNonEmptyArray:()=>d,isNonEmptyNumbersArray:()=>m,isNonEmptyStringsArray:()=>b,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>g,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>u,isNullish:()=>h,isNumber:()=>r,isNumbersArray:()=>f,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>y}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{InvertedStraightBondsHider:()=>Br,StraightBond:()=>kr});var t={};r.r(t),r.d(t,{cx:()=>It,cy:()=>Lt,height:()=>Ft,rx:()=>jt,ry:()=>Dt,width:()=>Vt,x:()=>kt,y:()=>Bt});var e={};r.r(e),r.d(e,{from:()=>qt,to:()=>Gt});var i={};r.r(i),r.d(i,{MorphArray:()=>Qt,height:()=>te,width:()=>Kt,x:()=>Jt,y:()=>Zt});var s={};r.r(s),r.d(s,{array:()=>Pe,clear:()=>Ae,move:()=>Ee,plot:()=>Te,size:()=>je});var o={};r.r(o),r.d(o,{amove:()=>or,ax:()=>ir,ay:()=>sr,build:()=>ar,center:()=>nr,cx:()=>er,cy:()=>rr,length:()=>Je,move:()=>tr,plain:()=>Qe,x:()=>Ze,y:()=>Ke});var a={};r.r(a),r.d(a,{dmove:()=>fr,dx:()=>mr,dy:()=>pr,height:()=>gr,move:()=>yr,size:()=>br,width:()=>wr,x:()=>xr,y:()=>vr});const h={},u=[];function l(t,e){if(Array.isArray(t))for(const r of t)l(r,e);else if("object"!=typeof t)d(Object.getOwnPropertyNames(e)),h[t]=Object.assign(h[t]||{},e);else for(const e in t)l(e,t[e])}function c(t){return h[t]||{}}function d(t){u.push(...t)}function f(t,e){let r;const n=t.length,i=[];for(r=0;r<n;r++)i.push(e(t[r]));return i}function m(t){return t%360*Math.PI/180}function p(t){return t.charAt(0).toUpperCase()+t.slice(1)}function g(t,e,r,n){return null!=e&&null!=r||(n=n||t.bbox(),null==e?e=n.width/n.height*r:null==r&&(r=n.height/n.width*e)),{width:e,height:r}}function y(t,e){const r=t.origin;let n=null!=t.ox?t.ox:null!=t.originX?t.originX:"center",i=null!=t.oy?t.oy:null!=t.originY?t.originY:"center";null!=r&&([n,i]=Array.isArray(r)?r:"object"==typeof r?[r.x,r.y]:[r,r]);const s="string"==typeof n,o="string"==typeof i;if(s||o){const{height:t,width:r,x:a,y:h}=e.bbox();s&&(n=n.includes("left")?a:n.includes("right")?a+r:a+r/2),o&&(i=i.includes("top")?h:i.includes("bottom")?h+t:h+t/2)}return[n,i]}const b=new Set(["desc","metadata","title"]),w=t=>b.has(t.nodeName),x=(t,e,r={})=>{const n={...e};for(const t in n)n[t].valueOf()===r[t]&&delete n[t];Object.keys(n).length?t.node.setAttribute("data-svgjs",JSON.stringify(n)):(t.node.removeAttribute("data-svgjs"),t.node.removeAttribute("svgjs:data"))},v="http://www.w3.org/2000/svg",_="http://www.w3.org/2000/xmlns/",S="http://www.w3.org/1999/xlink",M={window:"undefined"==typeof window?null:window,document:"undefined"==typeof document?null:document};class O{}const N={},C="___SYMBOL___ROOT___";function P(t,e=v){return M.document.createElementNS(e,t)}function A(t,e=!1){if(t instanceof O)return t;if("object"==typeof t)return j(t);if(null==t)return new N[C];if("string"==typeof t&&"<"!==t.charAt(0))return j(M.document.querySelector(t));const r=e?M.document.createElement("div"):P("svg");return r.innerHTML=t,t=j(r.firstChild),r.removeChild(r.firstChild),t}function E(t,e){return e&&(e instanceof M.window.Node||e.ownerDocument&&e instanceof e.ownerDocument.defaultView.Node)?e:P(t)}function T(t){if(!t)return null;if(t.instance instanceof O)return t.instance;if("#document-fragment"===t.nodeName)return new N.Fragment(t);let e=p(t.nodeName||"Dom");return"LinearGradient"===e||"RadialGradient"===e?e="Gradient":N[e]||(e="Dom"),new N[e](t)}let j=T;function D(t,e=t.name,r=!1){return N[e]=t,r&&(N[C]=t),d(Object.getOwnPropertyNames(t.prototype)),t}let k=1e3;function B(t){return"Svgjs"+p(t)+k++}function I(t){for(let e=t.children.length-1;e>=0;e--)I(t.children[e]);return t.id?(t.id=B(t.nodeName),t):t}function L(t,e){let r,n;for(n=(t=Array.isArray(t)?t:[t]).length-1;n>=0;n--)for(r in e)t[n].prototype[r]=e[r]}function V(t){return function(...e){const r=e[e.length-1];return!r||r.constructor!==Object||r instanceof Array?t.apply(this,e):t.apply(this,e.slice(0,-1)).attr(r)}}l("Dom",{siblings:function(){return this.parent().children()},position:function(){return this.parent().index(this)},next:function(){return this.siblings()[this.position()+1]},prev:function(){return this.siblings()[this.position()-1]},forward:function(){const t=this.position();return this.parent().add(this.remove(),t+1),this},backward:function(){const t=this.position();return this.parent().add(this.remove(),t?t-1:0),this},front:function(){return this.parent().add(this.remove()),this},back:function(){return this.parent().add(this.remove(),0),this},before:function(t){(t=A(t)).remove();const e=this.position();return this.parent().add(t,e),this},after:function(t){(t=A(t)).remove();const e=this.position();return this.parent().add(t,e+1),this},insertBefore:function(t){return(t=A(t)).before(this),this},insertAfter:function(t){return(t=A(t)).after(this),this}});const F=/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,R=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,z=/rgb\((\d+),(\d+),(\d+)\)/,X=/(#[a-z_][a-z0-9\-_]*)/i,q=/\)\s*,?\s*/,G=/\s/g,Y=/^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i,U=/^rgb\(/,H=/^(\s+)?$/,$=/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,W=/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,Q=/[\s,]+/,J=/[MLHVCSQTAZ]/i;function Z(t){const e=Math.round(t),r=Math.max(0,Math.min(255,e)).toString(16);return 1===r.length?"0"+r:r}function K(t,e){for(let r=e.length;r--;)if(null==t[e[r]])return!1;return!0}function tt(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}l("Dom",{classes:function(){const t=this.attr("class");return null==t?[]:t.trim().split(Q)},hasClass:function(t){return-1!==this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){const e=this.classes();e.push(t),this.attr("class",e.join(" "))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr("class",this.classes().filter((function(e){return e!==t})).join(" ")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)}}),l("Dom",{css:function(t,e){const r={};if(0===arguments.length)return this.node.style.cssText.split(/\s*;\s*/).filter((function(t){return!!t.length})).forEach((function(t){const e=t.split(/\s*:\s*/);r[e[0]]=e[1]})),r;if(arguments.length<2){if(Array.isArray(t)){for(const e of t){const t=e;r[e]=this.node.style.getPropertyValue(t)}return r}if("string"==typeof t)return this.node.style.getPropertyValue(t);if("object"==typeof t)for(const e in t)this.node.style.setProperty(e,null==t[e]||H.test(t[e])?"":t[e])}return 2===arguments.length&&this.node.style.setProperty(t,null==e||H.test(e)?"":e),this},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},visible:function(){return"none"!==this.css("display")}}),l("Dom",{data:function(t,e,r){if(null==t)return this.data(f(function(t){let e;const r=t.length,n=[];for(e=0;e<r;e++)0===t[e].nodeName.indexOf("data-")&&n.push(t[e]);return n}(this.node.attributes),(t=>t.nodeName.slice(5))));if(t instanceof Array){const e={};for(const r of t)e[r]=this.data(r);return e}if("object"==typeof t)for(e in t)this.data(e,t[e]);else if(arguments.length<2)try{return JSON.parse(this.attr("data-"+t))}catch(e){return this.attr("data-"+t)}else this.attr("data-"+t,null===e?null:!0===r||"string"==typeof e||"number"==typeof e?e:JSON.stringify(e));return this}}),l("Dom",{remember:function(t,e){if("object"==typeof arguments[0])for(const e in t)this.remember(e,t[e]);else{if(1===arguments.length)return this.memory()[t];this.memory()[t]=e}return this},forget:function(){if(0===arguments.length)this._memory={};else for(let t=arguments.length-1;t>=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory=this._memory||{}}});class et{constructor(...t){this.init(...t)}static isColor(t){return t&&(t instanceof et||this.isRgb(t)||this.test(t))}static isRgb(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b}static random(t="vibrant",e){const{random:r,round:n,sin:i,PI:s}=Math;if("vibrant"===t){const t=24*r()+57,e=38*r()+45,n=360*r();return new et(t,e,n,"lch")}if("sine"===t){const t=n(80*i(2*s*(e=null==e?r():e)/.5+.01)+150),o=n(50*i(2*s*e/.5+4.6)+200),a=n(100*i(2*s*e/.5+2.3)+150);return new et(t,o,a)}if("pastel"===t){const t=8*r()+86,e=17*r()+9,n=360*r();return new et(t,e,n,"lch")}if("dark"===t){const t=10+10*r(),e=50*r()+86,n=360*r();return new et(t,e,n,"lch")}if("rgb"===t){const t=255*r(),e=255*r(),n=255*r();return new et(t,e,n)}if("lab"===t){const t=100*r(),e=256*r()-128,n=256*r()-128;return new et(t,e,n,"lab")}if("grey"===t){const t=255*r();return new et(t,t,t)}throw new Error("Unsupported random color mode")}static test(t){return"string"==typeof t&&(Y.test(t)||U.test(t))}cmyk(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=Math.min(1-n,1-i,1-s);return 1===o?new et(0,0,0,1,"cmyk"):new et((1-n-o)/(1-o),(1-i-o)/(1-o),(1-s-o)/(1-o),o,"cmyk")}hsl(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=Math.max(n,i,s),a=Math.min(n,i,s),h=(o+a)/2,u=o===a,l=o-a;return new et(360*(u?0:o===n?((i-s)/l+(i<s?6:0))/6:o===i?((s-n)/l+2)/6:o===s?((n-i)/l+4)/6:0),100*(u?0:h>.5?l/(2-o-a):l/(o+a)),100*h,"hsl")}init(t=0,e=0,r=0,n=0,i="rgb"){if(t=t||0,this.space)for(const t in this.space)delete this[this.space[t]];if("number"==typeof t)i="string"==typeof n?n:i,n="string"==typeof n?0:n,Object.assign(this,{_a:t,_b:e,_c:r,_d:n,space:i});else if(t instanceof Array)this.space=e||("string"==typeof t[3]?t[3]:t[4])||"rgb",Object.assign(this,{_a:t[0],_b:t[1],_c:t[2],_d:t[3]||0});else if(t instanceof Object){const r=function(t,e){const r=K(t,"rgb")?{_a:t.r,_b:t.g,_c:t.b,_d:0,space:"rgb"}:K(t,"xyz")?{_a:t.x,_b:t.y,_c:t.z,_d:0,space:"xyz"}:K(t,"hsl")?{_a:t.h,_b:t.s,_c:t.l,_d:0,space:"hsl"}:K(t,"lab")?{_a:t.l,_b:t.a,_c:t.b,_d:0,space:"lab"}:K(t,"lch")?{_a:t.l,_b:t.c,_c:t.h,_d:0,space:"lch"}:K(t,"cmyk")?{_a:t.c,_b:t.m,_c:t.y,_d:t.k,space:"cmyk"}:{_a:0,_b:0,_c:0,space:"rgb"};return r.space=e||r.space,r}(t,e);Object.assign(this,r)}else if("string"==typeof t)if(U.test(t)){const e=t.replace(G,""),[r,n,i]=z.exec(e).slice(1,4).map((t=>parseInt(t)));Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}else{if(!Y.test(t))throw Error("Unsupported string format, can't construct Color");{const e=t=>parseInt(t,16),[,r,n,i]=R.exec(function(t){return 4===t.length?["#",t.substring(1,2),t.substring(1,2),t.substring(2,3),t.substring(2,3),t.substring(3,4),t.substring(3,4)].join(""):t}(t)).map(e);Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}}const{_a:s,_b:o,_c:a,_d:h}=this,u="rgb"===this.space?{r:s,g:o,b:a}:"xyz"===this.space?{x:s,y:o,z:a}:"hsl"===this.space?{h:s,s:o,l:a}:"lab"===this.space?{l:s,a:o,b:a}:"lch"===this.space?{l:s,c:o,h:a}:"cmyk"===this.space?{c:s,m:o,y:a,k:h}:{};Object.assign(this,u)}lab(){const{x:t,y:e,z:r}=this.xyz();return new et(116*e-16,500*(t-e),200*(e-r),"lab")}lch(){const{l:t,a:e,b:r}=this.lab(),n=Math.sqrt(e**2+r**2);let i=180*Math.atan2(r,e)/Math.PI;return i<0&&(i*=-1,i=360-i),new et(t,n,i,"lch")}rgb(){if("rgb"===this.space)return this;if("lab"===(t=this.space)||"xyz"===t||"lch"===t){let{x:t,y:e,z:r}=this;if("lab"===this.space||"lch"===this.space){let{l:n,a:i,b:s}=this;if("lch"===this.space){const{c:t,h:e}=this,r=Math.PI/180;i=t*Math.cos(r*e),s=t*Math.sin(r*e)}const o=(n+16)/116,a=i/500+o,h=o-s/200,u=16/116,l=.008856,c=7.787;t=.95047*(a**3>l?a**3:(a-u)/c),e=1*(o**3>l?o**3:(o-u)/c),r=1.08883*(h**3>l?h**3:(h-u)/c)}const n=3.2406*t+-1.5372*e+-.4986*r,i=-.9689*t+1.8758*e+.0415*r,s=.0557*t+-.204*e+1.057*r,o=Math.pow,a=.0031308,h=n>a?1.055*o(n,1/2.4)-.055:12.92*n,u=i>a?1.055*o(i,1/2.4)-.055:12.92*i,l=s>a?1.055*o(s,1/2.4)-.055:12.92*s;return new et(255*h,255*u,255*l)}if("hsl"===this.space){let{h:t,s:e,l:r}=this;if(t/=360,e/=100,r/=100,0===e)return r*=255,new et(r,r,r);const n=r<.5?r*(1+e):r+e-r*e,i=2*r-n,s=255*tt(i,n,t+1/3),o=255*tt(i,n,t),a=255*tt(i,n,t-1/3);return new et(s,o,a)}if("cmyk"===this.space){const{c:t,m:e,y:r,k:n}=this,i=255*(1-Math.min(1,t*(1-n)+n)),s=255*(1-Math.min(1,e*(1-n)+n)),o=255*(1-Math.min(1,r*(1-n)+n));return new et(i,s,o)}return this;var t}toArray(){const{_a:t,_b:e,_c:r,_d:n,space:i}=this;return[t,e,r,n,i]}toHex(){const[t,e,r]=this._clamped().map(Z);return`#${t}${e}${r}`}toRgb(){const[t,e,r]=this._clamped();return`rgb(${t},${e},${r})`}toString(){return this.toHex()}xyz(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92,a=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92,h=s>.04045?Math.pow((s+.055)/1.055,2.4):s/12.92,u=(.4124*o+.3576*a+.1805*h)/.95047,l=(.2126*o+.7152*a+.0722*h)/1,c=(.0193*o+.1192*a+.9505*h)/1.08883,d=u>.008856?Math.pow(u,1/3):7.787*u+16/116,f=l>.008856?Math.pow(l,1/3):7.787*l+16/116,m=c>.008856?Math.pow(c,1/3):7.787*c+16/116;return new et(d,f,m,"xyz")}_clamped(){const{_a:t,_b:e,_c:r}=this.rgb(),{max:n,min:i,round:s}=Math;return[t,e,r].map((t=>n(0,i(s(t),255))))}}class rt{constructor(...t){this.init(...t)}clone(){return new rt(this)}init(t,e){const r=Array.isArray(t)?{x:t[0],y:t[1]}:"object"==typeof t?{x:t.x,y:t.y}:{x:t,y:e};return this.x=null==r.x?0:r.x,this.y=null==r.y?0:r.y,this}toArray(){return[this.x,this.y]}transform(t){return this.clone().transformO(t)}transformO(t){it.isMatrixLike(t)||(t=new it(t));const{x:e,y:r}=this;return this.x=t.a*e+t.c*r+t.e,this.y=t.b*e+t.d*r+t.f,this}}function nt(t,e,r){return Math.abs(e-t)<(r||1e-6)}class it{constructor(...t){this.init(...t)}static formatTransforms(t){const e="both"===t.flip||!0===t.flip,r=t.flip&&(e||"x"===t.flip)?-1:1,n=t.flip&&(e||"y"===t.flip)?-1:1,i=t.skew&&t.skew.length?t.skew[0]:isFinite(t.skew)?t.skew:isFinite(t.skewX)?t.skewX:0,s=t.skew&&t.skew.length?t.skew[1]:isFinite(t.skew)?t.skew:isFinite(t.skewY)?t.skewY:0,o=t.scale&&t.scale.length?t.scale[0]*r:isFinite(t.scale)?t.scale*r:isFinite(t.scaleX)?t.scaleX*r:r,a=t.scale&&t.scale.length?t.scale[1]*n:isFinite(t.scale)?t.scale*n:isFinite(t.scaleY)?t.scaleY*n:n,h=t.shear||0,u=t.rotate||t.theta||0,l=new rt(t.origin||t.around||t.ox||t.originX,t.oy||t.originY),c=l.x,d=l.y,f=new rt(t.position||t.px||t.positionX||NaN,t.py||t.positionY||NaN),m=f.x,p=f.y,g=new rt(t.translate||t.tx||t.translateX,t.ty||t.translateY),y=g.x,b=g.y,w=new rt(t.relative||t.rx||t.relativeX,t.ry||t.relativeY);return{scaleX:o,scaleY:a,skewX:i,skewY:s,shear:h,theta:u,rx:w.x,ry:w.y,tx:y,ty:b,ox:c,oy:d,px:m,py:p}}static fromArray(t){return{a:t[0],b:t[1],c:t[2],d:t[3],e:t[4],f:t[5]}}static isMatrixLike(t){return null!=t.a||null!=t.b||null!=t.c||null!=t.d||null!=t.e||null!=t.f}static matrixMultiply(t,e,r){const n=t.a*e.a+t.c*e.b,i=t.b*e.a+t.d*e.b,s=t.a*e.c+t.c*e.d,o=t.b*e.c+t.d*e.d,a=t.e+t.a*e.e+t.c*e.f,h=t.f+t.b*e.e+t.d*e.f;return r.a=n,r.b=i,r.c=s,r.d=o,r.e=a,r.f=h,r}around(t,e,r){return this.clone().aroundO(t,e,r)}aroundO(t,e,r){const n=t||0,i=e||0;return this.translateO(-n,-i).lmultiplyO(r).translateO(n,i)}clone(){return new it(this)}decompose(t=0,e=0){const r=this.a,n=this.b,i=this.c,s=this.d,o=this.e,a=this.f,h=r*s-n*i,u=h>0?1:-1,l=u*Math.sqrt(r*r+n*n),c=Math.atan2(u*n,u*r),d=180/Math.PI*c,f=Math.cos(c),m=Math.sin(c),p=(r*i+n*s)/h,g=i*l/(p*r-n)||s*l/(p*n+r);return{scaleX:l,scaleY:g,shear:p,rotate:d,translateX:o-t+t*f*l+e*(p*f*l-m*g),translateY:a-e+t*m*l+e*(p*m*l+f*g),originX:t,originY:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}equals(t){if(t===this)return!0;const e=new it(t);return nt(this.a,e.a)&&nt(this.b,e.b)&&nt(this.c,e.c)&&nt(this.d,e.d)&&nt(this.e,e.e)&&nt(this.f,e.f)}flip(t,e){return this.clone().flipO(t,e)}flipO(t,e){return"x"===t?this.scaleO(-1,1,e,0):"y"===t?this.scaleO(1,-1,0,e):this.scaleO(-1,-1,t,e||t)}init(t){const e=it.fromArray([1,0,0,1,0,0]);return t=t instanceof Ct?t.matrixify():"string"==typeof t?it.fromArray(t.split(Q).map(parseFloat)):Array.isArray(t)?it.fromArray(t):"object"==typeof t&&it.isMatrixLike(t)?t:"object"==typeof t?(new it).transform(t):6===arguments.length?it.fromArray([].slice.call(arguments)):e,this.a=null!=t.a?t.a:e.a,this.b=null!=t.b?t.b:e.b,this.c=null!=t.c?t.c:e.c,this.d=null!=t.d?t.d:e.d,this.e=null!=t.e?t.e:e.e,this.f=null!=t.f?t.f:e.f,this}inverse(){return this.clone().inverseO()}inverseO(){const t=this.a,e=this.b,r=this.c,n=this.d,i=this.e,s=this.f,o=t*n-e*r;if(!o)throw new Error("Cannot invert "+this);const a=n/o,h=-e/o,u=-r/o,l=t/o,c=-(a*i+u*s),d=-(h*i+l*s);return this.a=a,this.b=h,this.c=u,this.d=l,this.e=c,this.f=d,this}lmultiply(t){return this.clone().lmultiplyO(t)}lmultiplyO(t){const e=t instanceof it?t:new it(t);return it.matrixMultiply(e,this,this)}multiply(t){return this.clone().multiplyO(t)}multiplyO(t){const e=t instanceof it?t:new it(t);return it.matrixMultiply(this,e,this)}rotate(t,e,r){return this.clone().rotateO(t,e,r)}rotateO(t,e=0,r=0){t=m(t);const n=Math.cos(t),i=Math.sin(t),{a:s,b:o,c:a,d:h,e:u,f:l}=this;return this.a=s*n-o*i,this.b=o*n+s*i,this.c=a*n-h*i,this.d=h*n+a*i,this.e=u*n-l*i+r*i-e*n+e,this.f=l*n+u*i-e*i-r*n+r,this}scale(){return this.clone().scaleO(...arguments)}scaleO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t);const{a:i,b:s,c:o,d:a,e:h,f:u}=this;return this.a=i*t,this.b=s*e,this.c=o*t,this.d=a*e,this.e=h*t-r*t+r,this.f=u*e-n*e+n,this}shear(t,e,r){return this.clone().shearO(t,e,r)}shearO(t,e=0,r=0){const{a:n,b:i,c:s,d:o,e:a,f:h}=this;return this.a=n+i*t,this.c=s+o*t,this.e=a+h*t-r*t,this}skew(){return this.clone().skewO(...arguments)}skewO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t),t=m(t),e=m(e);const i=Math.tan(t),s=Math.tan(e),{a:o,b:a,c:h,d:u,e:l,f:c}=this;return this.a=o+a*i,this.b=a+o*s,this.c=h+u*i,this.d=u+h*s,this.e=l+c*i-n*i,this.f=c+l*s-r*s,this}skewX(t,e,r){return this.skew(t,0,e,r)}skewY(t,e,r){return this.skew(0,t,e,r)}toArray(){return[this.a,this.b,this.c,this.d,this.e,this.f]}toString(){return"matrix("+this.a+","+this.b+","+this.c+","+this.d+","+this.e+","+this.f+")"}transform(t){if(it.isMatrixLike(t))return new it(t).multiplyO(this);const e=it.formatTransforms(t),{x:r,y:n}=new rt(e.ox,e.oy).transform(this),i=(new it).translateO(e.rx,e.ry).lmultiplyO(this).translateO(-r,-n).scaleO(e.scaleX,e.scaleY).skewO(e.skewX,e.skewY).shearO(e.shear).rotateO(e.theta).translateO(r,n);if(isFinite(e.px)||isFinite(e.py)){const t=new rt(r,n).transform(i),s=isFinite(e.px)?e.px-t.x:0,o=isFinite(e.py)?e.py-t.y:0;i.translateO(s,o)}return i.translateO(e.tx,e.ty),i}translate(t,e){return this.clone().translateO(t,e)}translateO(t,e){return this.e+=t||0,this.f+=e||0,this}valueOf(){return{a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}}function st(){if(!st.nodes){const t=A().size(2,0);t.node.style.cssText=["opacity: 0","position: absolute","left: -100%","top: -100%","overflow: hidden"].join(";"),t.attr("focusable","false"),t.attr("aria-hidden","true");const e=t.path().node;st.nodes={svg:t,path:e}}if(!st.nodes.svg.node.parentNode){const t=M.document.body||M.document.documentElement;st.nodes.svg.addTo(t)}return st.nodes}function ot(t){return!(t.width||t.height||t.x||t.y)}D(it,"Matrix");class at{constructor(...t){this.init(...t)}addOffset(){return this.x+=M.window.pageXOffset,this.y+=M.window.pageYOffset,new at(this)}init(t){return t="string"==typeof t?t.split(Q).map(parseFloat):Array.isArray(t)?t:"object"==typeof t?[null!=t.left?t.left:t.x,null!=t.top?t.top:t.y,t.width,t.height]:4===arguments.length?[].slice.call(arguments):[0,0,0,0],this.x=t[0]||0,this.y=t[1]||0,this.width=this.w=t[2]||0,this.height=this.h=t[3]||0,this.x2=this.x+this.w,this.y2=this.y+this.h,this.cx=this.x+this.w/2,this.cy=this.y+this.h/2,this}isNulled(){return ot(this)}merge(t){const e=Math.min(this.x,t.x),r=Math.min(this.y,t.y),n=Math.max(this.x+this.width,t.x+t.width)-e,i=Math.max(this.y+this.height,t.y+t.height)-r;return new at(e,r,n,i)}toArray(){return[this.x,this.y,this.width,this.height]}toString(){return this.x+" "+this.y+" "+this.width+" "+this.height}transform(t){t instanceof it||(t=new it(t));let e=1/0,r=-1/0,n=1/0,i=-1/0;return[new rt(this.x,this.y),new rt(this.x2,this.y),new rt(this.x,this.y2),new rt(this.x2,this.y2)].forEach((function(s){s=s.transform(t),e=Math.min(e,s.x),r=Math.max(r,s.x),n=Math.min(n,s.y),i=Math.max(i,s.y)})),new at(e,n,r-e,i-n)}}function ht(t,e,r){let n;try{if(n=e(t.node),ot(n)&&(i=t.node)!==M.document&&!(M.document.documentElement.contains||function(t){for(;t.parentNode;)t=t.parentNode;return t===M.document}).call(M.document.documentElement,i))throw new Error("Element not in the dom")}catch(e){n=r(t)}var i;return n}l({viewbox:{viewbox(t,e,r,n){return null==t?new at(this.attr("viewBox")):this.attr("viewBox",new at(t,e,r,n))},zoom(t,e){let{width:r,height:n}=this.attr(["width","height"]);if((r||n)&&"string"!=typeof r&&"string"!=typeof n||(r=this.node.clientWidth,n=this.node.clientHeight),!r||!n)throw new Error("Impossible to get absolute width and height. Please provide an absolute width and height attribute on the zooming element");const i=this.viewbox(),s=r/i.width,o=n/i.height,a=Math.min(s,o);if(null==t)return a;let h=a/t;h===1/0&&(h=Number.MAX_SAFE_INTEGER/100),e=e||new rt(r/2/s+i.x,n/2/o+i.y);const u=new at(i).transform(new it({scale:h,origin:e}));return this.viewbox(u)}}}),D(at,"Box");class ut extends Array{constructor(t=[],...e){if(super(t,...e),"number"==typeof t)return this;this.length=0,this.push(...t)}}const lt=ut;L([ut],{each(t,...e){return"function"==typeof t?this.map(((e,r,n)=>t.call(e,e,r,n))):this.map((r=>r[t](...e)))},toArray(){return Array.prototype.concat.apply([],this)}});const ct=["toArray","constructor","each"];function dt(t,e){return new lt(f((e||M.document).querySelectorAll(t),(function(t){return T(t)})))}ut.extend=function(t){t=t.reduce(((t,e)=>(ct.includes(e)||"_"===e[0]||(e in Array.prototype&&(t["$"+e]=Array.prototype[e]),t[e]=function(...t){return this.each(e,...t)}),t)),{}),L([ut],t)};let ft=0;const mt={};function pt(t){let e=t.getEventHolder();return e===M.window&&(e=mt),e.events||(e.events={}),e.events}function gt(t){return t.getEventTarget()}function yt(t,e,r,n,i){const s=r.bind(n||t),o=A(t),a=pt(o),h=gt(o);e=Array.isArray(e)?e:e.split(Q),r._svgjsListenerId||(r._svgjsListenerId=++ft),e.forEach((function(t){const e=t.split(".")[0],n=t.split(".")[1]||"*";a[e]=a[e]||{},a[e][n]=a[e][n]||{},a[e][n][r._svgjsListenerId]=s,h.addEventListener(e,s,i||!1)}))}function bt(t,e,r,n){const i=A(t),s=pt(i),o=gt(i);("function"!=typeof r||(r=r._svgjsListenerId))&&(e=Array.isArray(e)?e:(e||"").split(Q)).forEach((function(t){const e=t&&t.split(".")[0],a=t&&t.split(".")[1];let h,u;if(r)s[e]&&s[e][a||"*"]&&(o.removeEventListener(e,s[e][a||"*"][r],n||!1),delete s[e][a||"*"][r]);else if(e&&a){if(s[e]&&s[e][a]){for(u in s[e][a])bt(o,[e,a].join("."),u);delete s[e][a]}}else if(a)for(t in s)for(h in s[t])a===h&&bt(o,[t,a].join("."));else if(e){if(s[e]){for(h in s[e])bt(o,[e,h].join("."));delete s[e]}}else{for(t in s)bt(o,t);!function(t){let e=t.getEventHolder();e===M.window&&(e=mt),e.events&&(e.events={})}(i)}}))}class wt extends O{addEventListener(){}dispatch(t,e,r){return function(t,e,r,n){const i=gt(t);return e instanceof M.window.Event||(e=new M.window.CustomEvent(e,{detail:r,cancelable:!0,...n})),i.dispatchEvent(e),e}(this,t,e,r)}dispatchEvent(t){const e=this.getEventHolder().events;if(!e)return!0;const r=e[t.type];for(const e in r)for(const n in r[e])r[e][n](t);return!t.defaultPrevented}fire(t,e,r){return this.dispatch(t,e,r),this}getEventHolder(){return this}getEventTarget(){return this}off(t,e,r){return bt(this,t,e,r),this}on(t,e,r,n){return yt(this,t,e,r,n),this}removeEventListener(){}}function xt(){}D(wt,"EventTarget");const vt={"fill-opacity":1,"stroke-opacity":1,"stroke-width":0,"stroke-linejoin":"miter","stroke-linecap":"butt",fill:"#000000",stroke:"#000000",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,"stop-opacity":1,"stop-color":"#000000","text-anchor":"start"};class _t extends Array{constructor(...t){super(...t),this.init(...t)}clone(){return new this.constructor(this)}init(t){return"number"==typeof t||(this.length=0,this.push(...this.parse(t))),this}parse(t=[]){return t instanceof Array?t:t.trim().split(Q).map(parseFloat)}toArray(){return Array.prototype.concat.apply([],this)}toSet(){return new Set(this)}toString(){return this.join(" ")}valueOf(){const t=[];return t.push(...this),t}}class St{constructor(...t){this.init(...t)}convert(t){return new St(this.value,t)}divide(t){return t=new St(t),new St(this/t,this.unit||t.unit)}init(t,e){return e=Array.isArray(t)?t[1]:e,t=Array.isArray(t)?t[0]:t,this.value=0,this.unit=e||"","number"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-34e37:34e37:"string"==typeof t?(e=t.match(F))&&(this.value=parseFloat(e[1]),"%"===e[5]?this.value/=100:"s"===e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof St&&(this.value=t.valueOf(),this.unit=t.unit),this}minus(t){return t=new St(t),new St(this-t,this.unit||t.unit)}plus(t){return t=new St(t),new St(this+t,this.unit||t.unit)}times(t){return t=new St(t),new St(this*t,this.unit||t.unit)}toArray(){return[this.value,this.unit]}toJSON(){return this.toString()}toString(){return("%"===this.unit?~~(1e8*this.value)/1e6:"s"===this.unit?this.value/1e3:this.value)+this.unit}valueOf(){return this.value}}const Mt=new Set(["fill","stroke","color","bgcolor","stop-color","flood-color","lighting-color"]),Ot=[];class Nt extends wt{constructor(t,e){super(),this.node=t,this.type=t.nodeName,e&&t!==e&&this.attr(e)}add(t,e){return(t=A(t)).removeNamespace&&this.node instanceof M.window.SVGElement&&t.removeNamespace(),null==e?this.node.appendChild(t.node):t.node!==this.node.childNodes[e]&&this.node.insertBefore(t.node,this.node.childNodes[e]),this}addTo(t,e){return A(t).put(this,e)}children(){return new lt(f(this.node.children,(function(t){return T(t)})))}clear(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return this}clone(t=!0,e=!0){this.writeDataToDom();let r=this.node.cloneNode(t);return e&&(r=I(r)),new this.constructor(r)}each(t,e){const r=this.children();let n,i;for(n=0,i=r.length;n<i;n++)t.apply(r[n],[n,r]),e&&r[n].each(t,e);return this}element(t,e){return this.put(new Nt(P(t),e))}first(){return T(this.node.firstChild)}get(t){return T(this.node.childNodes[t])}getEventHolder(){return this.node}getEventTarget(){return this.node}has(t){return this.index(t)>=0}html(t,e){return this.xml(t,e,"http://www.w3.org/1999/xhtml")}id(t){return void 0!==t||this.node.id||(this.node.id=B(this.type)),this.attr("id",t)}index(t){return[].slice.call(this.node.childNodes).indexOf(t.node)}last(){return T(this.node.lastChild)}matches(t){const e=this.node,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector||null;return r&&r.call(e,t)}parent(t){let e=this;if(!e.node.parentNode)return null;if(e=T(e.node.parentNode),!t)return e;do{if("string"==typeof t?e.matches(t):e instanceof t)return e}while(e=T(e.node.parentNode));return e}put(t,e){return t=A(t),this.add(t,e),t}putIn(t,e){return A(t).add(this,e)}remove(){return this.parent()&&this.parent().removeElement(this),this}removeElement(t){return this.node.removeChild(t.node),this}replace(t){return t=A(t),this.node.parentNode&&this.node.parentNode.replaceChild(t.node,this.node),t}round(t=2,e=null){const r=10**t,n=this.attr(e);for(const t in n)"number"==typeof n[t]&&(n[t]=Math.round(n[t]*r)/r);return this.attr(n),this}svg(t,e){return this.xml(t,e,v)}toString(){return this.id()}words(t){return this.node.textContent=t,this}wrap(t){const e=this.parent();if(!e)return this.addTo(t);const r=e.index(this);return e.put(t,r).put(this)}writeDataToDom(){return this.each((function(){this.writeDataToDom()})),this}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){e=null==e||e,this.writeDataToDom();let r=this;if(null!=t){if(r=T(r.node.cloneNode(!0)),e){const e=t(r);if(r=e||r,!1===e)return""}r.each((function(){const e=t(this),r=e||this;!1===e?this.remove():e&&this!==r&&this.replace(r)}),!0)}return e?r.node.outerHTML:r.node.innerHTML}e=null!=e&&e;const n=P("wrapper",r),i=M.document.createDocumentFragment();n.innerHTML=t;for(let t=n.children.length;t--;)i.appendChild(n.firstElementChild);const s=this.parent();return e?this.replace(i)&&s:this.add(i)}}L(Nt,{attr:function(t,e,r){if(null==t){t={},e=this.node.attributes;for(const r of e)t[r.nodeName]=$.test(r.nodeValue)?parseFloat(r.nodeValue):r.nodeValue;return t}if(t instanceof Array)return t.reduce(((t,e)=>(t[e]=this.attr(e),t)),{});if("object"==typeof t&&t.constructor===Object)for(e in t)this.attr(e,t[e]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?vt[t]:$.test(e)?parseFloat(e):e;"number"==typeof(e=Ot.reduce(((e,r)=>r(t,e,this)),e))?e=new St(e):Mt.has(t)&&et.isColor(e)?e=new et(e):e.constructor===Array&&(e=new _t(e)),"leading"===t?this.leading&&this.leading(e):"string"==typeof r?this.node.setAttributeNS(r,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||"font-size"!==t&&"x"!==t||this.rebuild()}return this},find:function(t){return dt(t,this.node)},findOne:function(t){return T(this.node.querySelector(t))}}),D(Nt,"Dom");class Ct extends Nt{constructor(t,e){super(t,e),this.dom={},this.node.instance=this,(t.hasAttribute("data-svgjs")||t.hasAttribute("svgjs:data"))&&this.setData(JSON.parse(t.getAttribute("data-svgjs"))??JSON.parse(t.getAttribute("svgjs:data"))??{})}center(t,e){return this.cx(t).cy(e)}cx(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)}cy(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)}defs(){const t=this.root();return t&&t.defs()}dmove(t,e){return this.dx(t).dy(e)}dx(t=0){return this.x(new St(t).plus(this.x()))}dy(t=0){return this.y(new St(t).plus(this.y()))}getEventHolder(){return this}height(t){return this.attr("height",t)}move(t,e){return this.x(t).y(e)}parents(t=this.root()){const e="string"==typeof t;e||(t=A(t));const r=new lt;let n=this;for(;(n=n.parent())&&n.node!==M.document&&"#document-fragment"!==n.nodeName&&(r.push(n),e||n.node!==t.node)&&(!e||!n.matches(t));)if(n.node===this.root().node)return null;return r}reference(t){if(!(t=this.attr(t)))return null;const e=(t+"").match(X);return e?A(e[1]):null}root(){const t=this.parent(N[C]);return t&&t.root()}setData(t){return this.dom=t,this}size(t,e){const r=g(this,t,e);return this.width(new St(r.width)).height(new St(r.height))}width(t){return this.attr("width",t)}writeDataToDom(){return x(this,this.dom),super.writeDataToDom()}x(t){return this.attr("x",t)}y(t){return this.attr("y",t)}}L(Ct,{bbox:function(){const t=ht(this,(t=>t.getBBox()),(t=>{try{const e=t.clone().addTo(st().svg).show(),r=e.node.getBBox();return e.remove(),r}catch(e){throw new Error(`Getting bbox of element "${t.node.nodeName}" is not possible: ${e.toString()}`)}}));return new at(t)},rbox:function(t){const e=ht(this,(t=>t.getBoundingClientRect()),(t=>{throw new Error(`Getting rbox of element "${t.node.nodeName}" is not possible`)})),r=new at(e);return t?r.transform(t.screenCTM().inverseO()):r.addOffset()},inside:function(t,e){const r=this.bbox();return t>r.x&&e>r.y&&t<r.x+r.width&&e<r.y+r.height},point:function(t,e){return new rt(t,e).transformO(this.screenCTM().inverseO())},ctm:function(){return new it(this.node.getCTM())},screenCTM:function(){try{if("function"==typeof this.isRoot&&!this.isRoot()){const t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new it(e)}return new it(this.node.getScreenCTM())}catch(t){return console.warn(`Cannot get CTM from SVG node ${this.node.nodeName}. Is the element rendered?`),new it}}}),D(Ct,"Element");const Pt={stroke:["color","width","opacity","linecap","linejoin","miterlimit","dasharray","dashoffset"],fill:["color","opacity","rule"],prefix:function(t,e){return"color"===e?t:t+"-"+e}};["fill","stroke"].forEach((function(t){const e={};let r;e[t]=function(e){if(void 0===e)return this.attr(t);if("string"==typeof e||e instanceof et||et.isRgb(e)||e instanceof Ct)this.attr(t,e);else for(r=Pt[t].length-1;r>=0;r--)null!=e[Pt[t][r]]&&this.attr(Pt.prefix(t,Pt[t][r]),e[Pt[t][r]]);return this},l(["Element","Runner"],e)})),l(["Element","Runner"],{matrix:function(t,e,r,n,i,s){return null==t?new it(this):this.attr("transform",new it(t,e,r,n,i,s))},rotate:function(t,e,r){return this.transform({rotate:t,ox:e,oy:r},!0)},skew:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({skew:t,ox:e,oy:r},!0):this.transform({skew:[t,e],ox:r,oy:n},!0)},shear:function(t,e,r){return this.transform({shear:t,ox:e,oy:r},!0)},scale:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({scale:t,ox:e,oy:r},!0):this.transform({scale:[t,e],ox:r,oy:n},!0)},translate:function(t,e){return this.transform({translate:[t,e]},!0)},relative:function(t,e){return this.transform({relative:[t,e]},!0)},flip:function(t="both",e="center"){return-1==="xybothtrue".indexOf(t)&&(e=t,t="both"),this.transform({flip:t,origin:e},!0)},opacity:function(t){return this.attr("opacity",t)}}),l("radius",{radius:function(t,e=t){return"radialGradient"===(this._element||this).type?this.attr("r",new St(t)):this.rx(t).ry(e)}}),l("Path",{length:function(){return this.node.getTotalLength()},pointAt:function(t){return new rt(this.node.getPointAtLength(t))}}),l(["Element","Runner"],{font:function(t,e){if("object"==typeof t){for(e in t)this.font(e,t[e]);return this}return"leading"===t?this.leading(e):"anchor"===t?this.attr("text-anchor",e):"size"===t||"family"===t||"weight"===t||"stretch"===t||"variant"===t||"style"===t?this.attr("font-"+t,e):this.attr(t,e)}}),l("Element",["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","touchstart","touchmove","touchleave","touchend","touchcancel","contextmenu","wheel","pointerdown","pointermove","pointerup","pointerleave","pointercancel"].reduce((function(t,e){return t[e]=function(t){return null===t?this.off(e):this.on(e,t),this},t}),{})),l("Element",{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(q).slice(0,-1).map((function(t){const e=t.trim().split("(");return[e[0],e[1].split(Q).map((function(t){return parseFloat(t)}))]})).reverse().reduce((function(t,e){return"matrix"===e[0]?t.lmultiply(it.fromArray(e[1])):t[e[0]].apply(t,e[1])}),new it)},toParent:function(t,e){if(this===t)return this;if(w(this.node))return this.addTo(t,e);const r=this.screenCTM(),n=t.screenCTM().inverse();return this.addTo(t,e).untransform().transform(n.multiply(r)),this},toRoot:function(t){return this.toParent(this.root(),t)},transform:function(t,e){if(null==t||"string"==typeof t){const e=new it(this).decompose();return null==t?e:e[t]}it.isMatrixLike(t)||(t={...t,origin:y(t,this)});const r=new it(!0===e?this:e||!1).transform(t);return this.attr("transform",r)}});class At extends Ct{flatten(){return this.each((function(){if(this instanceof At)return this.flatten().ungroup()})),this}ungroup(t=this.parent(),e=t.index(this)){return e=-1===e?t.children().length:e,this.each((function(r,n){return n[n.length-r-1].toParent(t,e)})),this.remove()}}D(At,"Container");class Et extends At{constructor(t,e=t){super(E("defs",t),e)}flatten(){return this}ungroup(){return this}}D(Et,"Defs");class Tt extends Ct{}function jt(t){return this.attr("rx",t)}function Dt(t){return this.attr("ry",t)}function kt(t){return null==t?this.cx()-this.rx():this.cx(t+this.rx())}function Bt(t){return null==t?this.cy()-this.ry():this.cy(t+this.ry())}function It(t){return this.attr("cx",t)}function Lt(t){return this.attr("cy",t)}function Vt(t){return null==t?2*this.rx():this.rx(new St(t).divide(2))}function Ft(t){return null==t?2*this.ry():this.ry(new St(t).divide(2))}D(Tt,"Shape");class Rt extends Tt{constructor(t,e=t){super(E("ellipse",t),e)}size(t,e){const r=g(this,t,e);return this.rx(new St(r.width).divide(2)).ry(new St(r.height).divide(2))}}L(Rt,t),l("Container",{ellipse:V((function(t=0,e=t){return this.put(new Rt).size(t,e).move(0,0)}))}),D(Rt,"Ellipse");class zt extends Nt{constructor(t=M.document.createDocumentFragment()){super(t)}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){const t=new Nt(P("wrapper",r));return t.add(this.node.cloneNode(!0)),t.xml(!1,r)}return super.xml(t,!1,r)}}D(zt,"Fragment");const Xt=zt;function qt(t,e){return"radialGradient"===(this._element||this).type?this.attr({fx:new St(t),fy:new St(e)}):this.attr({x1:new St(t),y1:new St(e)})}function Gt(t,e){return"radialGradient"===(this._element||this).type?this.attr({cx:new St(t),cy:new St(e)}):this.attr({x2:new St(t),y2:new St(e)})}class Yt extends At{constructor(t,e){super(E(t+"Gradient","string"==typeof t?null:t),e)}attr(t,e,r){return"transform"===t&&(t="gradientTransform"),super.attr(t,e,r)}bbox(){return new at}targets(){return dt("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}}L(Yt,e),l({Container:{gradient(...t){return this.defs().gradient(...t)}},Defs:{gradient:V((function(t,e){return this.put(new Yt(t)).update(e)}))}}),D(Yt,"Gradient");class Ut extends At{constructor(t,e=t){super(E("pattern",t),e)}attr(t,e,r){return"transform"===t&&(t="patternTransform"),super.attr(t,e,r)}bbox(){return new at}targets(){return dt("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}}l({Container:{pattern(...t){return this.defs().pattern(...t)}},Defs:{pattern:V((function(t,e,r){return this.put(new Ut).update(r).attr({x:0,y:0,width:t,height:e,patternUnits:"userSpaceOnUse"})}))}}),D(Ut,"Pattern");class Ht extends Tt{constructor(t,e=t){super(E("image",t),e)}load(t,e){if(!t)return this;const r=new M.window.Image;return yt(r,"load",(function(t){const n=this.parent(Ut);0===this.width()&&0===this.height()&&this.size(r.width,r.height),n instanceof Ut&&0===n.width()&&0===n.height()&&n.size(this.width(),this.height()),"function"==typeof e&&e.call(this,t)}),this),yt(r,"load error",(function(){bt(r)})),this.attr("href",r.src=t,S)}}var $t;$t=function(t,e,r){return"fill"!==t&&"stroke"!==t||W.test(e)&&(e=r.root().defs().image(e)),e instanceof Ht&&(e=r.root().defs().pattern(0,0,(t=>{t.add(e)}))),e},Ot.push($t),l({Container:{image:V((function(t,e){return this.put(new Ht).size(0,0).load(t,e)}))}}),D(Ht,"Image");class Wt extends _t{bbox(){let t=-1/0,e=-1/0,r=1/0,n=1/0;return this.forEach((function(i){t=Math.max(i[0],t),e=Math.max(i[1],e),r=Math.min(i[0],r),n=Math.min(i[1],n)})),new at(r,n,t-r,e-n)}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r=this.length-1;r>=0;r--)this[r]=[this[r][0]+t,this[r][1]+e];return this}parse(t=[0,0]){const e=[];(t=t instanceof Array?Array.prototype.concat.apply([],t):t.trim().split(Q).map(parseFloat)).length%2!=0&&t.pop();for(let r=0,n=t.length;r<n;r+=2)e.push([t[r],t[r+1]]);return e}size(t,e){let r;const n=this.bbox();for(r=this.length-1;r>=0;r--)n.width&&(this[r][0]=(this[r][0]-n.x)*t/n.width+n.x),n.height&&(this[r][1]=(this[r][1]-n.y)*e/n.height+n.y);return this}toLine(){return{x1:this[0][0],y1:this[0][1],x2:this[1][0],y2:this[1][1]}}toString(){const t=[];for(let e=0,r=this.length;e<r;e++)t.push(this[e].join(","));return t.join(" ")}transform(t){return this.clone().transformO(t)}transformO(t){it.isMatrixLike(t)||(t=new it(t));for(let e=this.length;e--;){const[r,n]=this[e];this[e][0]=t.a*r+t.c*n+t.e,this[e][1]=t.b*r+t.d*n+t.f}return this}}const Qt=Wt;function Jt(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}function Zt(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}function Kt(t){const e=this.bbox();return null==t?e.width:this.size(t,e.height)}function te(t){const e=this.bbox();return null==t?e.height:this.size(e.width,t)}class ee extends Tt{constructor(t,e=t){super(E("line",t),e)}array(){return new Wt([[this.attr("x1"),this.attr("y1")],[this.attr("x2"),this.attr("y2")]])}move(t,e){return this.attr(this.array().move(t,e).toLine())}plot(t,e,r,n){return null==t?this.array():(t=void 0!==e?{x1:t,y1:e,x2:r,y2:n}:new Wt(t).toLine(),this.attr(t))}size(t,e){const r=g(this,t,e);return this.attr(this.array().size(r.width,r.height).toLine())}}L(ee,i),l({Container:{line:V((function(...t){return ee.prototype.plot.apply(this.put(new ee),null!=t[0]?t:[0,0,0,0])}))}}),D(ee,"Line");class re extends At{constructor(t,e=t){super(E("marker",t),e)}height(t){return this.attr("markerHeight",t)}orient(t){return this.attr("orient",t)}ref(t,e){return this.attr("refX",t).attr("refY",e)}toString(){return"url(#"+this.id()+")"}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}width(t){return this.attr("markerWidth",t)}}function ne(t,e){return function(r){return null==r?this[t]:(this[t]=r,e&&e.call(this),this)}}l({Container:{marker(...t){return this.defs().marker(...t)}},Defs:{marker:V((function(t,e,r){return this.put(new re).size(t,e).ref(t/2,e/2).viewbox(0,0,t,e).attr("orient","auto").update(r)}))},marker:{marker(t,e,r,n){let i=["marker"];return"all"!==t&&i.push(t),i=i.join("-"),t=arguments[1]instanceof re?arguments[1]:this.defs().marker(e,r,n),this.attr(i,t)}}}),D(re,"Marker");const ie={"-":function(t){return t},"<>":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)},bezier:function(t,e,r,n){return function(i){return i<0?t>0?e/t*i:r>0?n/r*i:0:i>1?r<1?(1-n)/(1-r)*i+(n-r)/(1-r):t<1?(1-e)/(1-t)*i+(e-t)/(1-t):1:3*i*(1-i)**2*e+3*i**2*(1-i)*n+i**3}},steps:function(t,e="end"){e=e.split("-").reverse()[0];let r=t;return"none"===e?--r:"both"===e&&++r,(n,i=!1)=>{let s=Math.floor(n*t);const o=n*s%1==0;return"start"!==e&&"both"!==e||++s,i&&o&&--s,n>=0&&s<0&&(s=0),n<=1&&s>r&&(s=r),s/r}}};class se{done(){return!1}}class oe extends se{constructor(t=">"){super(),this.ease=ie[t]||t}step(t,e,r){return"number"!=typeof t?r<1?t:e:t+(e-t)*this.ease(r)}}class ae extends se{constructor(t){super(),this.stepper=t}done(t){return t.done}step(t,e,r,n){return this.stepper(t,e,r,n)}}function he(){const t=(this._duration||500)/1e3,e=this._overshoot||0,r=Math.PI,n=Math.log(e/100+1e-10),i=-n/Math.sqrt(r*r+n*n),s=3.9/(i*t);this.d=2*i*s,this.k=s*s}L(class extends ae{constructor(t=500,e=0){super(),this.duration(t).overshoot(e)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;r>100&&(r=16),r/=1e3;const i=n.velocity||0,s=-this.d*i-this.k*(t-e),o=t+i*r+s*r*r/2;return n.velocity=i+s*r,n.done=Math.abs(e-o)+Math.abs(i)<.002,n.done?e:o}},{duration:ne("_duration",he),overshoot:ne("_overshoot",he)}),L(class extends ae{constructor(t=.1,e=.01,r=0,n=1e3){super(),this.p(t).i(e).d(r).windup(n)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;const i=e-t;let s=(n.integral||0)+i*r;const o=(i-(n.error||0))/r,a=this._windup;return!1!==a&&(s=Math.max(-a,Math.min(s,a))),n.error=i,n.integral=s,n.done=Math.abs(i)<.001,n.done?e:t+(this.P*i+this.I*s+this.D*o)}},{windup:ne("_windup"),p:ne("P"),i:ne("I"),d:ne("D")});const ue={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0},le={M:function(t,e,r){return e.x=r.x=t[0],e.y=r.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},S:function(t,e){return e.x=t[2],e.y=t[3],["S",t[0],t[1],t[2],t[3]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},T:function(t,e){return e.x=t[0],e.y=t[1],["T",t[0],t[1]]},Z:function(t,e,r){return e.x=r.x,e.y=r.y,["Z"]},A:function(t,e){return e.x=t[5],e.y=t[6],["A",t[0],t[1],t[2],t[3],t[4],t[5],t[6]]}},ce="mlhvqtcsaz".split("");for(let t=0,e=ce.length;t<e;++t)le[ce[t]]=function(t){return function(e,r,n){if("H"===t)e[0]=e[0]+r.x;else if("V"===t)e[0]=e[0]+r.y;else if("A"===t)e[5]=e[5]+r.x,e[6]=e[6]+r.y;else for(let t=0,n=e.length;t<n;++t)e[t]=e[t]+(t%2?r.y:r.x);return le[t](e,r,n)}}(ce[t].toUpperCase());function de(t){return t.segment.length&&t.segment.length-1===ue[t.segment[0].toUpperCase()]}function fe(t,e){t.inNumber&&me(t,!1);const r=J.test(e);if(r)t.segment=[e];else{const e=t.lastCommand,r=e.toLowerCase(),n=e===r;t.segment=["m"===r?n?"l":"L":e]}return t.inSegment=!0,t.lastCommand=t.segment[0],r}function me(t,e){if(!t.inNumber)throw new Error("Parser Error");t.number&&t.segment.push(parseFloat(t.number)),t.inNumber=e,t.number="",t.pointSeen=!1,t.hasExponent=!1,de(t)&&pe(t)}function pe(t){t.inSegment=!1,t.absolute&&(t.segment=function(t){const e=t.segment[0];return le[e](t.segment.slice(1),t.p,t.p0)}(t)),t.segments.push(t.segment)}function ge(t){if(!t.segment.length)return!1;const e="A"===t.segment[0].toUpperCase(),r=t.segment.length;return e&&(4===r||5===r)}function ye(t){return"E"===t.lastToken.toUpperCase()}const be=new Set([" ",",","\t","\n","\r","\f"]);class we extends _t{bbox(){return st().path.setAttribute("d",this.toString()),new at(st.nodes.path.getBBox())}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r,n=this.length-1;n>=0;n--)r=this[n][0],"M"===r||"L"===r||"T"===r?(this[n][1]+=t,this[n][2]+=e):"H"===r?this[n][1]+=t:"V"===r?this[n][1]+=e:"C"===r||"S"===r||"Q"===r?(this[n][1]+=t,this[n][2]+=e,this[n][3]+=t,this[n][4]+=e,"C"===r&&(this[n][5]+=t,this[n][6]+=e)):"A"===r&&(this[n][6]+=t,this[n][7]+=e);return this}parse(t="M0 0"){return Array.isArray(t)&&(t=Array.prototype.concat.apply([],t).toString()),function(t,e=!0){let r=0,n="";const i={segment:[],inNumber:!1,number:"",lastToken:"",inSegment:!1,segments:[],pointSeen:!1,hasExponent:!1,absolute:e,p0:new rt,p:new rt};for(;i.lastToken=n,n=t.charAt(r++);)if(i.inSegment||!fe(i,n))if("."!==n)if(isNaN(parseInt(n)))if(be.has(n))i.inNumber&&me(i,!1);else if("-"!==n&&"+"!==n)if("E"!==n.toUpperCase()){if(J.test(n)){if(i.inNumber)me(i,!1);else{if(!de(i))throw new Error("parser Error");pe(i)}--r}}else i.number+=n,i.hasExponent=!0;else{if(i.inNumber&&!ye(i)){me(i,!1),--r;continue}i.number+=n,i.inNumber=!0}else{if("0"===i.number||ge(i)){i.inNumber=!0,i.number=n,me(i,!0);continue}i.inNumber=!0,i.number+=n}else{if(i.pointSeen||i.hasExponent){me(i,!1),--r;continue}i.inNumber=!0,i.pointSeen=!0,i.number+=n}return i.inNumber&&me(i,!1),i.inSegment&&de(i)&&pe(i),i.segments}(t)}size(t,e){const r=this.bbox();let n,i;for(r.width=0===r.width?1:r.width,r.height=0===r.height?1:r.height,n=this.length-1;n>=0;n--)i=this[n][0],"M"===i||"L"===i||"T"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y):"H"===i?this[n][1]=(this[n][1]-r.x)*t/r.width+r.x:"V"===i?this[n][1]=(this[n][1]-r.y)*e/r.height+r.y:"C"===i||"S"===i||"Q"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y,this[n][3]=(this[n][3]-r.x)*t/r.width+r.x,this[n][4]=(this[n][4]-r.y)*e/r.height+r.y,"C"===i&&(this[n][5]=(this[n][5]-r.x)*t/r.width+r.x,this[n][6]=(this[n][6]-r.y)*e/r.height+r.y)):"A"===i&&(this[n][1]=this[n][1]*t/r.width,this[n][2]=this[n][2]*e/r.height,this[n][6]=(this[n][6]-r.x)*t/r.width+r.x,this[n][7]=(this[n][7]-r.y)*e/r.height+r.y);return this}toString(){return function(t){let e="";for(let r=0,n=t.length;r<n;r++)e+=t[r][0],null!=t[r][1]&&(e+=t[r][1],null!=t[r][2]&&(e+=" ",e+=t[r][2],null!=t[r][3]&&(e+=" ",e+=t[r][3],e+=" ",e+=t[r][4],null!=t[r][5]&&(e+=" ",e+=t[r][5],e+=" ",e+=t[r][6],null!=t[r][7]&&(e+=" ",e+=t[r][7])))));return e+" "}(this)}}const xe=t=>{const e=typeof t;return"number"===e?St:"string"===e?et.isColor(t)?et:Q.test(t)?J.test(t)?we:_t:F.test(t)?St:_e:Ne.indexOf(t.constructor)>-1?t.constructor:Array.isArray(t)?_t:"object"===e?Oe:_e};class ve{constructor(t){this._stepper=t||new oe("-"),this._from=null,this._to=null,this._type=null,this._context=null,this._morphObj=null}at(t){return this._morphObj.morph(this._from,this._to,t,this._stepper,this._context)}done(){return this._context.map(this._stepper.done).reduce((function(t,e){return t&&e}),!0)}from(t){return null==t?this._from:(this._from=this._set(t),this)}stepper(t){return null==t?this._stepper:(this._stepper=t,this)}to(t){return null==t?this._to:(this._to=this._set(t),this)}type(t){return null==t?this._type:(this._type=t,this)}_set(t){this._type||this.type(xe(t));let e=new this._type(t);return this._type===et&&(e=this._to?e[this._to[4]]():this._from?e[this._from[4]]():e),this._type===Oe&&(e=this._to?e.align(this._to):this._from?e.align(this._from):e),e=e.toConsumable(),this._morphObj=this._morphObj||new this._type,this._context=this._context||Array.apply(null,Array(e.length)).map(Object).map((function(t){return t.done=!0,t})),e}}class _e{constructor(...t){this.init(...t)}init(t){return t=Array.isArray(t)?t[0]:t,this.value=t,this}toArray(){return[this.value]}valueOf(){return this.value}}class Se{constructor(...t){this.init(...t)}init(t){return Array.isArray(t)&&(t={scaleX:t[0],scaleY:t[1],shear:t[2],rotate:t[3],translateX:t[4],translateY:t[5],originX:t[6],originY:t[7]}),Object.assign(this,Se.defaults,t),this}toArray(){const t=this;return[t.scaleX,t.scaleY,t.shear,t.rotate,t.translateX,t.translateY,t.originX,t.originY]}}Se.defaults={scaleX:1,scaleY:1,shear:0,rotate:0,translateX:0,translateY:0,originX:0,originY:0};const Me=(t,e)=>t[0]<e[0]?-1:t[0]>e[0]?1:0;class Oe{constructor(...t){this.init(...t)}align(t){const e=this.values;for(let r=0,n=e.length;r<n;++r){if(e[r+1]===t[r+1]){if(e[r+1]===et&&t[r+7]!==e[r+7]){const e=t[r+7],n=new et(this.values.splice(r+3,5))[e]().toArray();this.values.splice(r+3,0,...n)}r+=e[r+2]+2;continue}if(!t[r+1])return this;const n=(new t[r+1]).toArray(),i=e[r+2]+3;e.splice(r,i,t[r],t[r+1],t[r+2],...n),r+=e[r+2]+2}return this}init(t){if(this.values=[],Array.isArray(t))return void(this.values=t.slice());t=t||{};const e=[];for(const r in t){const n=xe(t[r]),i=new n(t[r]).toArray();e.push([r,n,i.length,...i])}return e.sort(Me),this.values=e.reduce(((t,e)=>t.concat(e)),[]),this}toArray(){return this.values}valueOf(){const t={},e=this.values;for(;e.length;){const r=e.shift(),n=e.shift(),i=e.shift(),s=e.splice(0,i);t[r]=new n(s)}return t}}const Ne=[_e,Se,Oe];class Ce extends Tt{constructor(t,e=t){super(E("path",t),e)}array(){return this._array||(this._array=new we(this.attr("d")))}clear(){return delete this._array,this}height(t){return null==t?this.bbox().height:this.size(this.bbox().width,t)}move(t,e){return this.attr("d",this.array().move(t,e))}plot(t){return null==t?this.array():this.clear().attr("d","string"==typeof t?t:this._array=new we(t))}size(t,e){const r=g(this,t,e);return this.attr("d",this.array().size(r.width,r.height))}width(t){return null==t?this.bbox().width:this.size(t,this.bbox().height)}x(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}y(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}}function Pe(){return this._array||(this._array=new Wt(this.attr("points")))}function Ae(){return delete this._array,this}function Ee(t,e){return this.attr("points",this.array().move(t,e))}function Te(t){return null==t?this.array():this.clear().attr("points","string"==typeof t?t:this._array=new Wt(t))}function je(t,e){const r=g(this,t,e);return this.attr("points",this.array().size(r.width,r.height))}Ce.prototype.MorphArray=we,l({Container:{path:V((function(t){return this.put(new Ce).plot(t||new we)}))}}),D(Ce,"Path");class De extends Tt{constructor(t,e=t){super(E("polygon",t),e)}}l({Container:{polygon:V((function(t){return this.put(new De).plot(t||new Wt)}))}}),L(De,i),L(De,s),D(De,"Polygon");class ke extends Tt{constructor(t,e=t){super(E("polyline",t),e)}}l({Container:{polyline:V((function(t){return this.put(new ke).plot(t||new Wt)}))}}),L(ke,i),L(ke,s),D(ke,"Polyline");class Be extends Tt{constructor(t,e=t){super(E("rect",t),e)}}L(Be,{rx:jt,ry:Dt}),l({Container:{rect:V((function(t,e){return this.put(new Be).size(t,e)}))}}),D(Be,"Rect");class Ie{constructor(){this._first=null,this._last=null}first(){return this._first&&this._first.value}last(){return this._last&&this._last.value}push(t){const e=void 0!==t.next?t:{value:t,next:null,prev:null};return this._last?(e.prev=this._last,this._last.next=e,this._last=e):(this._last=e,this._first=e),e}remove(t){t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t===this._last&&(this._last=t.prev),t===this._first&&(this._first=t.next),t.prev=null,t.next=null}shift(){const t=this._first;return t?(this._first=t.next,this._first&&(this._first.prev=null),this._last=this._first?this._last:null,t.value):null}}const Le={nextDraw:null,frames:new Ie,timeouts:new Ie,immediates:new Ie,timer:()=>M.window.performance||M.window.Date,transforms:[],frame(t){const e=Le.frames.push({run:t});return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),e},timeout(t,e){e=e||0;const r=Le.timer().now()+e,n=Le.timeouts.push({run:t,time:r});return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),n},immediate(t){const e=Le.immediates.push(t);return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),e},cancelFrame(t){null!=t&&Le.frames.remove(t)},clearTimeout(t){null!=t&&Le.timeouts.remove(t)},cancelImmediate(t){null!=t&&Le.immediates.remove(t)},_draw(t){let e=null;const r=Le.timeouts.last();for(;(e=Le.timeouts.shift())&&(t>=e.time?e.run():Le.timeouts.push(e),e!==r););let n=null;const i=Le.frames.last();for(;n!==i&&(n=Le.frames.shift());)n.run(t);let s=null;for(;s=Le.immediates.shift();)s();Le.nextDraw=Le.timeouts.first()||Le.frames.first()?M.window.requestAnimationFrame(Le._draw):null}},Ve=Le,Fe=function(t){const e=t.start,r=t.runner.duration();return{start:e,duration:r,end:e+r,runner:t.runner}},Re=function(){const t=M.window;return(t.performance||t.Date).now()};class ze extends wt{constructor(t=Re){super(),this._timeSource=t,this.terminate()}active(){return!!this._nextFrame}finish(){return this.time(this.getEndTimeOfTimeline()+1),this.pause()}getEndTime(){const t=this.getLastRunnerInfo(),e=t?t.runner.duration():0;return(t?t.start:this._time)+e}getEndTimeOfTimeline(){const t=this._runners.map((t=>t.start+t.runner.duration()));return Math.max(0,...t)}getLastRunnerInfo(){return this.getRunnerInfoById(this._lastRunnerId)}getRunnerInfoById(t){return this._runners[this._runnerIds.indexOf(t)]||null}pause(){return this._paused=!0,this._continue()}persist(t){return null==t?this._persist:(this._persist=t,this)}play(){return this._paused=!1,this.updateTime()._continue()}reverse(t){const e=this.speed();if(null==t)return this.speed(-e);const r=Math.abs(e);return this.speed(t?-r:r)}schedule(t,e,r){if(null==t)return this._runners.map(Fe);let n=0;const i=this.getEndTime();if(e=e||0,null==r||"last"===r||"after"===r)n=i;else if("absolute"===r||"start"===r)n=e,e=0;else if("now"===r)n=this._time;else if("relative"===r){const r=this.getRunnerInfoById(t.id);r&&(n=r.start+e,e=0)}else{if("with-last"!==r)throw new Error('Invalid value for the "when" parameter');{const t=this.getLastRunnerInfo();n=t?t.start:this._time}}t.unschedule(),t.timeline(this);const s=t.persist(),o={persist:null===s?this._persist:s,start:n+e,runner:t};return this._lastRunnerId=t.id,this._runners.push(o),this._runners.sort(((t,e)=>t.start-e.start)),this._runnerIds=this._runners.map((t=>t.runner.id)),this.updateTime()._continue(),this}seek(t){return this.time(this._time+t)}source(t){return null==t?this._timeSource:(this._timeSource=t,this)}speed(t){return null==t?this._speed:(this._speed=t,this)}stop(){return this.time(0),this.pause()}time(t){return null==t?this._time:(this._time=t,this._continue(!0))}unschedule(t){const e=this._runnerIds.indexOf(t.id);return e<0||(this._runners.splice(e,1),this._runnerIds.splice(e,1),t.timeline(null)),this}updateTime(){return this.active()||(this._lastSourceTime=this._timeSource()),this}_continue(t=!1){return Ve.cancelFrame(this._nextFrame),this._nextFrame=null,t?this._stepImmediate():(this._paused||(this._nextFrame=Ve.frame(this._step)),this)}_stepFn(t=!1){const e=this._timeSource();let r=e-this._lastSourceTime;t&&(r=0);const n=this._speed*r+(this._time-this._lastStepTime);this._lastSourceTime=e,t||(this._time+=n,this._time=this._time<0?0:this._time),this._lastStepTime=this._time,this.fire("time",this._time);for(let t=this._runners.length;t--;){const e=this._runners[t],r=e.runner;this._time-e.start<=0&&r.reset()}let i=!1;for(let t=0,e=this._runners.length;t<e;t++){const r=this._runners[t],s=r.runner;let o=n;const a=this._time-r.start;a<=0?i=!0:(a<o&&(o=a),s.active()&&(s.step(o).done?!0!==r.persist&&s.duration()-s.time()+this._time+r.persist<this._time&&(s.unschedule(),--t,--e):i=!0))}return i&&!(this._speed<0&&0===this._time)||this._runnerIds.length&&this._speed<0&&this._time>0?this._continue():(this.pause(),this.fire("finished")),this}terminate(){this._startTime=0,this._speed=1,this._persist=0,this._nextFrame=null,this._paused=!0,this._runners=[],this._runnerIds=[],this._lastRunnerId=-1,this._time=0,this._lastSourceTime=0,this._lastStepTime=0,this._step=this._stepFn.bind(this,!1),this._stepImmediate=this._stepFn.bind(this,!0)}}l({Element:{timeline:function(t){return null==t?(this._timeline=this._timeline||new ze,this._timeline):(this._timeline=t,this)}}});class Xe extends wt{constructor(t){super(),this.id=Xe.id++,t="function"==typeof(t=null==t?400:t)?new ae(t):t,this._element=null,this._timeline=null,this.done=!1,this._queue=[],this._duration="number"==typeof t&&t,this._isDeclarative=t instanceof ae,this._stepper=this._isDeclarative?t:new oe,this._history={},this.enabled=!0,this._time=0,this._lastTime=0,this._reseted=!0,this.transforms=new it,this.transformId=1,this._haveReversed=!1,this._reverse=!1,this._loopsDone=0,this._swing=!1,this._wait=0,this._times=1,this._frameId=null,this._persist=!!this._isDeclarative||null}static sanitise(t,e,r){let n=1,i=!1,s=0;return e=e??0,r=r||"last","object"!=typeof(t=t??400)||t instanceof se||(e=t.delay??e,r=t.when??r,i=t.swing||i,n=t.times??n,s=t.wait??s,t=t.duration??400),{duration:t,delay:e,swing:i,times:n,wait:s,when:r}}active(t){return null==t?this.enabled:(this.enabled=t,this)}addTransform(t){return this.transforms.lmultiplyO(t),this}after(t){return this.on("finished",t)}animate(t,e,r){const n=Xe.sanitise(t,e,r),i=new Xe(n.duration);return this._timeline&&i.timeline(this._timeline),this._element&&i.element(this._element),i.loop(n).schedule(n.delay,n.when)}clearTransform(){return this.transforms=new it,this}clearTransformsFromQueue(){this.done&&this._timeline&&this._timeline._runnerIds.includes(this.id)||(this._queue=this._queue.filter((t=>!t.isTransform)))}delay(t){return this.animate(0,t)}duration(){return this._times*(this._wait+this._duration)-this._wait}during(t){return this.queue(null,t)}ease(t){return this._stepper=new oe(t),this}element(t){return null==t?this._element:(this._element=t,t._prepareRunner(),this)}finish(){return this.step(1/0)}loop(t,e,r){return"object"==typeof t&&(e=t.swing,r=t.wait,t=t.times),this._times=t||1/0,this._swing=e||!1,this._wait=r||0,!0===this._times&&(this._times=1/0),this}loops(t){const e=this._duration+this._wait;if(null==t){const t=Math.floor(this._time/e),r=(this._time-t*e)/this._duration;return Math.min(t+r,this._times)}const r=t%1,n=e*Math.floor(t)+this._duration*r;return this.time(n)}persist(t){return null==t?this._persist:(this._persist=t,this)}position(t){const e=this._time,r=this._duration,n=this._wait,i=this._times,s=this._swing,o=this._reverse;let a;if(null==t){const t=function(t){const e=s*Math.floor(t%(2*(n+r))/(n+r)),i=e&&!o||!e&&o,a=Math.pow(-1,i)*(t%(n+r))/r+i;return Math.max(Math.min(a,1),0)},h=i*(n+r)-n;return a=e<=0?Math.round(t(1e-5)):e<h?t(e):Math.round(t(h-1e-5)),a}const h=Math.floor(this.loops()),u=s&&h%2==0;return a=h+(u&&!o||o&&u?t:1-t),this.loops(a)}progress(t){return null==t?Math.min(1,this._time/this.duration()):this.time(t*this.duration())}queue(t,e,r,n){return this._queue.push({initialiser:t||xt,runner:e||xt,retarget:r,isTransform:n,initialised:!1,finished:!1}),this.timeline()&&this.timeline()._continue(),this}reset(){return this._reseted||(this.time(0),this._reseted=!0),this}reverse(t){return this._reverse=null==t?!this._reverse:t,this}schedule(t,e,r){if(t instanceof ze||(r=e,e=t,t=this.timeline()),!t)throw Error("Runner cannot be scheduled without timeline");return t.schedule(this,e,r),this}step(t){if(!this.enabled)return this;t=null==t?16:t,this._time+=t;const e=this.position(),r=this._lastPosition!==e&&this._time>=0;this._lastPosition=e;const n=this.duration(),i=this._lastTime<=0&&this._time>0,s=this._lastTime<n&&this._time>=n;this._lastTime=this._time,i&&this.fire("start",this);const o=this._isDeclarative;this.done=!o&&!s&&this._time>=n,this._reseted=!1;let a=!1;return(r||o)&&(this._initialise(r),this.transforms=new it,a=this._run(o?t:e),this.fire("step",this)),this.done=this.done||a&&o,s&&this.fire("finished",this),this}time(t){if(null==t)return this._time;const e=t-this._time;return this.step(e),this}timeline(t){return void 0===t?this._timeline:(this._timeline=t,this)}unschedule(){const t=this.timeline();return t&&t.unschedule(this),this}_initialise(t){if(t||this._isDeclarative)for(let e=0,r=this._queue.length;e<r;++e){const r=this._queue[e],n=this._isDeclarative||!r.initialised&&t;t=!r.finished,n&&t&&(r.initialiser.call(this),r.initialised=!0)}}_rememberMorpher(t,e){if(this._history[t]={morpher:e,caller:this._queue[this._queue.length-1]},this._isDeclarative){const t=this.timeline();t&&t.play()}}_run(t){let e=!0;for(let r=0,n=this._queue.length;r<n;++r){const n=this._queue[r],i=n.runner.call(this,t);n.finished=n.finished||!0===i,e=e&&n.finished}return e}_tryRetarget(t,e,r){if(this._history[t]){if(!this._history[t].caller.initialised){const e=this._queue.indexOf(this._history[t].caller);return this._queue.splice(e,1),!1}this._history[t].caller.retarget?this._history[t].caller.retarget.call(this,e,r):this._history[t].morpher.to(e),this._history[t].caller.finished=!1;const n=this.timeline();return n&&n.play(),!0}return!1}}Xe.id=0;class qe{constructor(t=new it,e=-1,r=!0){this.transforms=t,this.id=e,this.done=r}clearTransformsFromQueue(){}}L([Xe,qe],{mergeWith(t){return new qe(t.transforms.lmultiply(this.transforms),t.id)}});const Ge=(t,e)=>t.lmultiplyO(e),Ye=t=>t.transforms;function Ue(){const t=this._transformationRunners.runners.map(Ye).reduce(Ge,new it);this.transform(t),this._transformationRunners.merge(),1===this._transformationRunners.length()&&(this._frameId=null)}class He{constructor(){this.runners=[],this.ids=[]}add(t){if(this.runners.includes(t))return;const e=t.id+1;return this.runners.push(t),this.ids.push(e),this}clearBefore(t){const e=this.ids.indexOf(t+1)||1;return this.ids.splice(0,e,0),this.runners.splice(0,e,new qe).forEach((t=>t.clearTransformsFromQueue())),this}edit(t,e){const r=this.ids.indexOf(t+1);return this.ids.splice(r,1,t+1),this.runners.splice(r,1,e),this}getByID(t){return this.runners[this.ids.indexOf(t+1)]}length(){return this.ids.length}merge(){let t=null;for(let e=0;e<this.runners.length;++e){const r=this.runners[e];if(!(t&&r.done&&t.done)||r._timeline&&r._timeline._runnerIds.includes(r.id)||t._timeline&&t._timeline._runnerIds.includes(t.id))t=r;else{this.remove(r.id);const n=r.mergeWith(t);this.edit(t.id,n),t=n,--e}}return this}remove(t){const e=this.ids.indexOf(t+1);return this.ids.splice(e,1),this.runners.splice(e,1),this}}l({Element:{animate(t,e,r){const n=Xe.sanitise(t,e,r),i=this.timeline();return new Xe(n.duration).loop(n).element(this).timeline(i.play()).schedule(n.delay,n.when)},delay(t,e){return this.animate(0,t,e)},_clearTransformRunnersBefore(t){this._transformationRunners.clearBefore(t.id)},_currentTransform(t){return this._transformationRunners.runners.filter((e=>e.id<=t.id)).map(Ye).reduce(Ge,new it)},_addRunner(t){this._transformationRunners.add(t),Ve.cancelImmediate(this._frameId),this._frameId=Ve.immediate(Ue.bind(this))},_prepareRunner(){null==this._frameId&&(this._transformationRunners=(new He).add(new qe(new it(this))))}}}),L(Xe,{attr(t,e){return this.styleAttr("attr",t,e)},css(t,e){return this.styleAttr("css",t,e)},styleAttr(t,e,r){if("string"==typeof e)return this.styleAttr(t,{[e]:r});let n=e;if(this._tryRetarget(t,n))return this;let i=new ve(this._stepper).to(n),s=Object.keys(n);return this.queue((function(){i=i.from(this.element()[t](s))}),(function(e){return this.element()[t](i.at(e).valueOf()),i.done()}),(function(e){const r=Object.keys(e),o=(a=s,r.filter((t=>!a.includes(t))));var a;if(o.length){const e=this.element()[t](o),r=new Oe(i.from()).valueOf();Object.assign(r,e),i.from(r)}const h=new Oe(i.to()).valueOf();Object.assign(h,e),i.to(h),s=r,n=e})),this._rememberMorpher(t,i),this},zoom(t,e){if(this._tryRetarget("zoom",t,e))return this;let r=new ve(this._stepper).to(new St(t));return this.queue((function(){r=r.from(this.element().zoom())}),(function(t){return this.element().zoom(r.at(t),e),r.done()}),(function(t,n){e=n,r.to(t)})),this._rememberMorpher("zoom",r),this},transform(t,e,r){if(e=t.relative||e,this._isDeclarative&&!e&&this._tryRetarget("transform",t))return this;const n=it.isMatrixLike(t);r=null!=t.affine?t.affine:null!=r?r:!n;const i=new ve(this._stepper).type(r?Se:it);let s,o,a,h,u;return this.queue((function(){o=o||this.element(),s=s||y(t,o),u=new it(e?void 0:o),o._addRunner(this),e||o._clearTransformRunnersBefore(this)}),(function(l){e||this.clearTransform();const{x:c,y:d}=new rt(s).transform(o._currentTransform(this));let f=new it({...t,origin:[c,d]}),m=this._isDeclarative&&a?a:u;if(r){f=f.decompose(c,d),m=m.decompose(c,d);const t=f.rotate,e=m.rotate,r=[t-360,t,t+360],n=r.map((t=>Math.abs(t-e))),i=Math.min(...n),s=n.indexOf(i);f.rotate=r[s]}e&&(n||(f.rotate=t.rotate||0),this._isDeclarative&&h&&(m.rotate=h)),i.from(m),i.to(f);const p=i.at(l);return h=p.rotate,a=new it(p),this.addTransform(a),o._addRunner(this),i.done()}),(function(e){(e.origin||"center").toString()!==(t.origin||"center").toString()&&(s=y(e,o)),t={...e,origin:s}}),!0),this._isDeclarative&&this._rememberMorpher("transform",i),this},x(t){return this._queueNumber("x",t)},y(t){return this._queueNumber("y",t)},ax(t){return this._queueNumber("ax",t)},ay(t){return this._queueNumber("ay",t)},dx(t=0){return this._queueNumberDelta("x",t)},dy(t=0){return this._queueNumberDelta("y",t)},dmove(t,e){return this.dx(t).dy(e)},_queueNumberDelta(t,e){if(e=new St(e),this._tryRetarget(t,e))return this;const r=new ve(this._stepper).to(e);let n=null;return this.queue((function(){n=this.element()[t](),r.from(n),r.to(n+e)}),(function(e){return this.element()[t](r.at(e)),r.done()}),(function(t){r.to(n+new St(t))})),this._rememberMorpher(t,r),this},_queueObject(t,e){if(this._tryRetarget(t,e))return this;const r=new ve(this._stepper).to(e);return this.queue((function(){r.from(this.element()[t]())}),(function(e){return this.element()[t](r.at(e)),r.done()})),this._rememberMorpher(t,r),this},_queueNumber(t,e){return this._queueObject(t,new St(e))},cx(t){return this._queueNumber("cx",t)},cy(t){return this._queueNumber("cy",t)},move(t,e){return this.x(t).y(e)},amove(t,e){return this.ax(t).ay(e)},center(t,e){return this.cx(t).cy(e)},size(t,e){let r;return t&&e||(r=this._element.bbox()),t||(t=r.width/r.height*e),e||(e=r.height/r.width*t),this.width(t).height(e)},width(t){return this._queueNumber("width",t)},height(t){return this._queueNumber("height",t)},plot(t,e,r,n){if(4===arguments.length)return this.plot([t,e,r,n]);if(this._tryRetarget("plot",t))return this;const i=new ve(this._stepper).type(this._element.MorphArray).to(t);return this.queue((function(){i.from(this._element.array())}),(function(t){return this._element.plot(i.at(t)),i.done()})),this._rememberMorpher("plot",i),this},leading(t){return this._queueNumber("leading",t)},viewbox(t,e,r,n){return this._queueObject("viewbox",new at(t,e,r,n))},update(t){return"object"!=typeof t?this.update({offset:arguments[0],color:arguments[1],opacity:arguments[2]}):(null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",t.offset),this)}}),L(Xe,{rx:jt,ry:Dt,from:qt,to:Gt}),D(Xe,"Runner");class $e extends At{constructor(t,e=t){super(E("svg",t),e),this.namespace()}defs(){return this.isRoot()?T(this.node.querySelector("defs"))||this.put(new Et):this.root().defs()}isRoot(){return!this.node.parentNode||!(this.node.parentNode instanceof M.window.SVGElement)&&"#document-fragment"!==this.node.parentNode.nodeName}namespace(){return this.isRoot()?this.attr({xmlns:v,version:"1.1"}).attr("xmlns:xlink",S,_):this.root().namespace()}removeNamespace(){return this.attr({xmlns:null,version:null}).attr("xmlns:xlink",null,_).attr("xmlns:svgjs",null,_)}root(){return this.isRoot()?this:super.root()}}l({Container:{nested:V((function(){return this.put(new $e)}))}}),D($e,"Svg",!0);class We extends At{constructor(t,e=t){super(E("symbol",t),e)}}function Qe(t){return!1===this._build&&this.clear(),this.node.appendChild(M.document.createTextNode(t)),this}function Je(){return this.node.getComputedTextLength()}function Ze(t,e=this.bbox()){return null==t?e.x:this.attr("x",this.attr("x")+t-e.x)}function Ke(t,e=this.bbox()){return null==t?e.y:this.attr("y",this.attr("y")+t-e.y)}function tr(t,e,r=this.bbox()){return this.x(t,r).y(e,r)}function er(t,e=this.bbox()){return null==t?e.cx:this.attr("x",this.attr("x")+t-e.cx)}function rr(t,e=this.bbox()){return null==t?e.cy:this.attr("y",this.attr("y")+t-e.cy)}function nr(t,e,r=this.bbox()){return this.cx(t,r).cy(e,r)}function ir(t){return this.attr("x",t)}function sr(t){return this.attr("y",t)}function or(t,e){return this.ax(t).ay(e)}function ar(t){return this._build=!!t,this}l({Container:{symbol:V((function(){return this.put(new We)}))}}),D(We,"Symbol");class hr extends Tt{constructor(t,e=t){super(E("text",t),e),this.dom.leading=this.dom.leading??new St(1.3),this._rebuild=!0,this._build=!1}leading(t){return null==t?this.dom.leading:(this.dom.leading=new St(t),this.rebuild())}rebuild(t){if("boolean"==typeof t&&(this._rebuild=t),this._rebuild){const t=this;let e=0;const r=this.dom.leading;this.each((function(n){if(w(this.node))return;const i=M.window.getComputedStyle(this.node).getPropertyValue("font-size"),s=r*new St(i);this.dom.newLined&&(this.attr("x",t.attr("x")),"\n"===this.text()?e+=s:(this.attr("dy",n?s+e:0),e=0))})),this.fire("rebuild")}return this}setData(t){return this.dom=t,this.dom.leading=new St(t.leading||1.3),this}writeDataToDom(){return x(this,this.dom,{leading:1.3}),this}text(t){if(void 0===t){const e=this.node.childNodes;let r=0;t="";for(let n=0,i=e.length;n<i;++n)"textPath"===e[n].nodeName||w(e[n])?0===n&&(r=n+1):(n!==r&&3!==e[n].nodeType&&!0===T(e[n]).dom.newLined&&(t+="\n"),t+=e[n].textContent);return t}if(this.clear().build(!0),"function"==typeof t)t.call(this,this);else for(let e=0,r=(t=(t+"").split("\n")).length;e<r;e++)this.newLine(t[e]);return this.build(!1).rebuild()}}L(hr,o),l({Container:{text:V((function(t=""){return this.put(new hr).text(t)})),plain:V((function(t=""){return this.put(new hr).plain(t)}))}}),D(hr,"Text");class ur extends Tt{constructor(t,e=t){super(E("tspan",t),e),this._build=!1}dx(t){return this.attr("dx",t)}dy(t){return this.attr("dy",t)}newLine(){this.dom.newLined=!0;const t=this.parent();if(!(t instanceof hr))return this;const e=t.index(this),r=M.window.getComputedStyle(this.node).getPropertyValue("font-size"),n=t.dom.leading*new St(r);return this.dy(e?n:0).attr("x",t.x())}text(t){return null==t?this.node.textContent+(this.dom.newLined?"\n":""):("function"==typeof t?(this.clear().build(!0),t.call(this,this),this.build(!1)):this.plain(t),this)}}L(ur,o),l({Tspan:{tspan:V((function(t=""){const e=new ur;return this._build||this.clear(),this.put(e).text(t)}))},Text:{newLine:function(t=""){return this.tspan(t).newLine()}}}),D(ur,"Tspan");class lr extends Tt{constructor(t,e=t){super(E("circle",t),e)}radius(t){return this.attr("r",t)}rx(t){return this.attr("r",t)}ry(t){return this.rx(t)}size(t){return this.radius(new St(t).divide(2))}}L(lr,{x:kt,y:Bt,cx:It,cy:Lt,width:Vt,height:Ft}),l({Container:{circle:V((function(t=0){return this.put(new lr).size(t).move(0,0)}))}}),D(lr,"Circle");class cr extends At{constructor(t,e=t){super(E("clipPath",t),e)}remove(){return this.targets().forEach((function(t){t.unclip()})),super.remove()}targets(){return dt("svg [clip-path*="+this.id()+"]")}}l({Container:{clip:V((function(){return this.defs().put(new cr)}))},Element:{clipper(){return this.reference("clip-path")},clipWith(t){const e=t instanceof cr?t:this.parent().clip().add(t);return this.attr("clip-path","url(#"+e.id()+")")},unclip(){return this.attr("clip-path",null)}}}),D(cr,"ClipPath");class dr extends Ct{constructor(t,e=t){super(E("foreignObject",t),e)}}function fr(t,e){return this.children().forEach((r=>{let n;try{n=r.node instanceof M.window.SVGSVGElement?new at(r.attr(["x","y","width","height"])):r.bbox()}catch(t){return}const i=new it(r),s=i.translate(t,e).transform(i.inverse()),o=new rt(n.x,n.y).transform(s);r.move(o.x,o.y)})),this}function mr(t){return this.dmove(t,0)}function pr(t){return this.dmove(0,t)}function gr(t,e=this.bbox()){return null==t?e.height:this.size(e.width,t,e)}function yr(t=0,e=0,r=this.bbox()){const n=t-r.x,i=e-r.y;return this.dmove(n,i)}function br(t,e,r=this.bbox()){const n=g(this,t,e,r),i=n.width/r.width,s=n.height/r.height;return this.children().forEach((t=>{const e=new rt(r).transform(new it(t).inverse());t.scale(i,s,e.x,e.y)})),this}function wr(t,e=this.bbox()){return null==t?e.width:this.size(t,e.height,e)}function xr(t,e=this.bbox()){return null==t?e.x:this.move(t,e.y,e)}function vr(t,e=this.bbox()){return null==t?e.y:this.move(e.x,t,e)}l({Container:{foreignObject:V((function(t,e){return this.put(new dr).size(t,e)}))}}),D(dr,"ForeignObject");class _r extends At{constructor(t,e=t){super(E("g",t),e)}}L(_r,a),l({Container:{group:V((function(){return this.put(new _r)}))}}),D(_r,"G");class Sr extends At{constructor(t,e=t){super(E("a",t),e)}target(t){return this.attr("target",t)}to(t){return this.attr("href",t,S)}}L(Sr,a),l({Container:{link:V((function(t){return this.put(new Sr).to(t)}))},Element:{unlink(){const t=this.linker();if(!t)return this;const e=t.parent();if(!e)return this.remove();const r=e.index(t);return e.add(this,r),t.remove(),this},linkTo(t){let e=this.linker();return e||(e=new Sr,this.wrap(e)),"function"==typeof t?t.call(e,e):e.to(t),this},linker(){const t=this.parent();return t&&"a"===t.node.nodeName.toLowerCase()?t:null}}}),D(Sr,"A");class Mr extends At{constructor(t,e=t){super(E("mask",t),e)}remove(){return this.targets().forEach((function(t){t.unmask()})),super.remove()}targets(){return dt("svg [mask*="+this.id()+"]")}}l({Container:{mask:V((function(){return this.defs().put(new Mr)}))},Element:{masker(){return this.reference("mask")},maskWith(t){const e=t instanceof Mr?t:this.parent().mask().add(t);return this.attr("mask","url(#"+e.id()+")")},unmask(){return this.attr("mask",null)}}}),D(Mr,"Mask");class Or extends Ct{constructor(t,e=t){super(E("stop",t),e)}update(t){return("number"==typeof t||t instanceof St)&&(t={offset:arguments[0],color:arguments[1],opacity:arguments[2]}),null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",new St(t.offset)),this}}l({Gradient:{stop:function(t,e,r){return this.put(new Or).update(t,e,r)}}}),D(Or,"Stop");class Nr extends Ct{constructor(t,e=t){super(E("style",t),e)}addText(t=""){return this.node.textContent+=t,this}font(t,e,r={}){return this.rule("@font-face",{fontFamily:t,src:e,...r})}rule(t,e){return this.addText(function(t,e){if(!t)return"";if(!e)return t;let r=t+"{";for(const t in e)r+=t.replace(/([A-Z])/g,(function(t,e){return"-"+e.toLowerCase()}))+":"+e[t]+";";return r+="}",r}(t,e))}}l("Dom",{style(t,e){return this.put(new Nr).rule(t,e)},fontface(t,e,r){return this.put(new Nr).font(t,e,r)}}),D(Nr,"Style");class Cr extends hr{constructor(t,e=t){super(E("textPath",t),e)}array(){const t=this.track();return t?t.array():null}plot(t){const e=this.track();let r=null;return e&&(r=e.plot(t)),null==t?r:this}track(){return this.reference("href")}}l({Container:{textPath:V((function(t,e){return t instanceof hr||(t=this.text(t)),t.path(e)}))},Text:{path:V((function(t,e=!0){const r=new Cr;let n;if(t instanceof Ce||(t=this.defs().path(t)),r.attr("href","#"+t,S),e)for(;n=this.node.firstChild;)r.node.appendChild(n);return this.put(r)})),textPath(){return this.findOne("textPath")}},Path:{text:V((function(t){return t instanceof hr||(t=(new hr).addTo(this.parent()).text(t)),t.path(this)})),targets(){return dt("svg textPath").filter((t=>(t.attr("href")||"").includes(this.id())))}}}),Cr.prototype.MorphArray=we,D(Cr,"TextPath");class Pr extends Tt{constructor(t,e=t){super(E("use",t),e)}use(t,e){return this.attr("href",(e||"")+"#"+t,S)}}l({Container:{use:V((function(t,e){return this.put(new Pr).use(t,e)}))}}),D(Pr,"Use"),L([$e,We,Ht,Ut,re],c("viewbox")),L([ee,ke,De,Ce],c("marker")),L(hr,c("Text")),L(Ce,c("Path")),L(Et,c("Defs")),L([hr,ur],c("Tspan")),L([Be,Rt,Yt,Xe],c("radius")),L(wt,c("EventTarget")),L(Nt,c("Dom")),L(Ct,c("Element")),L(Tt,c("Shape")),L([At,Xt],c("Container")),L(Yt,c("Gradient")),L(Xe,c("Runner")),lt.extend([...new Set(u)]),function(t=[]){Ne.push(...[].concat(t))}([St,et,at,it,_t,Wt,we,rt]),L(Ne,{to(t){return(new ve).type(this.constructor).from(this.toArray()).to(t)},fromArray(t){return this.init(t),this},toConsumable(){return this.toArray()},morph(t,e,r,n,i){return this.fromArray(t.map((function(t,s){return n.step(t,e[s],r,i[s],i)})))}});var Ar=r(726),Er=r(725),Tr=r(854);const jr=["basePadding1","basePadding2"],Dr={basePadding1:"setBasePadding1",basePadding2:"setBasePadding2"};class kr{static between(t,e){let r=(new ee).node,n=new kr(r,t,e);return n.assignUUID(),n.set(kr.defaultValues),n.reposition(),n}constructor(t,e,r){this.line=t,this.base1=e,this.base2=r,this.cachedBasePadding1=(0,Er.distance)(this.point1,this.base1.centerPoint),this.cachedBasePadding2=(0,Er.distance)(this.point2,this.base2.centerPoint),e.centerPoint.addEventListener("move",(()=>this.reposition())),r.centerPoint.addEventListener("move",(()=>this.reposition()))}get basePair(){return[this.base1,this.base2]}get domNode(){return this.line}getAttribute(t){return this.domNode.getAttribute(t)}setAttribute(t,e){this.domNode.setAttribute(t,e)}setAttributes(t){if((0,Tr.isNonNullObject)(t))try{new ee(this.domNode).attr(t)}catch(t){}}get id(){return this.domNode.id}assignUUID(){(0,Ar.assignUUID)(this.domNode)}appendTo(t){t.appendChild(this.domNode)}remove(){this.domNode.remove()}isIn(t){return t.contains(this.domNode)&&t!==this.domNode}hasParent(){return!!this.domNode.parentNode}getTotalLength(){return this.domNode.getTotalLength()}getPointAtLength(t){return this.domNode.getPointAtLength(t)}get point1(){return{x:this.domNode.x1.baseVal.value,y:this.domNode.y1.baseVal.value}}get point2(){return{x:this.domNode.x2.baseVal.value,y:this.domNode.y2.baseVal.value}}get basePadding1(){return this.cachedBasePadding1}set basePadding1(t){this.cachedBasePadding1=t,this.reposition()}setBasePadding1(t){(0,Tr.isFiniteNumber)(t)&&(this.basePadding1=Math.max(0,t))}get basePadding2(){return this.cachedBasePadding2}set basePadding2(t){this.cachedBasePadding2=t,this.reposition()}setBasePadding2(t){(0,Tr.isFiniteNumber)(t)&&(this.basePadding2=Math.max(0,t))}isInverted(){return this.basePadding1+this.basePadding2>(0,Er.distance)(this.base1.centerPoint,this.base2.centerPoint)}set(t){try{this.setAttributes(t.attributes)}catch(t){}jr.forEach((e=>{try{this[Dr[e]](t[e])}catch(t){}}))}reposition(){let t=this.base1.centerPoint,e=this.base2.centerPoint,r=(0,Er.direction)(t,e);this.setAttribute("x1",`${t.x+this.basePadding1*Math.cos(r)}`),this.setAttribute("y1",`${t.y+this.basePadding1*Math.sin(r)}`),this.setAttribute("x2",""+(e.x-this.basePadding2*Math.cos(r))),this.setAttribute("y2",""+(e.y-this.basePadding2*Math.sin(r)))}serialized(){let t=this.id;if(!t)throw new Error("Straight bond ID is falsy.");let e=this.base1.id;if(!e)throw new Error("Base 1 ID is falsy.");let r=this.base2.id;if(!r)throw new Error("Base 2 ID is falsy.");return{id:t,baseID1:e,baseID2:r,basePadding1:this.basePadding1,basePadding2:this.basePadding2}}static deserialized(t,e){var r,n,i;if(!(0,Tr.isNonNullObject)(t))throw new Error("Saved straight bond must be an object.");let s=null!==(r=t.id)&&void 0!==r?r:t.lineId;if(!s)throw new Error("Straight bond ID is missing.");let o=e.domNode.querySelector("#"+s);if(!o)throw new Error("Unable to find straight bond DOM node.");if(!(o instanceof SVGLineElement))throw new Error("Straight bond DOM node must be an SVG line element.");let a=null!==(n=t.baseID1)&&void 0!==n?n:t.baseId1,h=null!==(i=t.baseID2)&&void 0!==i?i:t.baseId2;if(!a)throw new Error("Missing base 1 ID.");if(!h)throw new Error("Missing base 2 ID.");let u=[...e.bases].find((t=>t.id===a)),l=[...e.bases].find((t=>t.id===h));if(!u)throw new Error("Unable to find base 1.");if(!l)throw new Error("Unable to find base 2.");let c=new kr(o,u,l);return(0,Tr.isNumber)(t.basePadding1)&&(c.basePadding1=t.basePadding1),(0,Tr.isNumber)(t.basePadding2)&&(c.basePadding2=t.basePadding2),c}}kr.defaultValues={attributes:{stroke:"#000000","stroke-width":"2"},basePadding1:6,basePadding2:6};class Br{constructor(t,e){this.targetStraightBonds=t,new MutationObserver((t=>{let e=new Set([...this.targetStraightBonds].map((t=>t.domNode)));!t.some((t=>e.has(t.target)))||this.updateOpacities()})).observe(e,{attributes:!0,attributeFilter:["x1","y1","x2","y2"],subtree:!0})}updateOpacities(){[...this.targetStraightBonds].forEach((t=>{let e=t.isInverted()?"0":"1";t.setAttribute("opacity",e)}))}}})(),n})(),t.exports=e()},775:function(t){var e;e=()=>(()=>{var t={726:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t,e){for(let[r,n]of Object.entries(e))t.setAttribute(r,n)}t.r(e),t.d(e,{CoordinateSystem:()=>c,HorizontalClientScaling:()=>f,InnerXML:()=>w,OuterXML:()=>_,Scaling:()=>d,VerticalClientScaling:()=>m,assignUUID:()=>l,bringToFront:()=>p,sendToBack:()=>g,setAttributes:()=>r});const n={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};var i,s=new Uint8Array(16);function o(){if(!i&&!(i="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return i(s)}for(var a=[],h=0;h<256;++h)a.push((h+256).toString(16).slice(1));const u=function(t,e,r){if(n.randomUUID&&!e&&!t)return n.randomUUID();var i=(t=t||{}).random||(t.rng||o)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,e){r=r||0;for(var s=0;s<16;++s)e[r+s]=i[s];return e}return function(t,e=0){return(a[t[e+0]]+a[t[e+1]]+a[t[e+2]]+a[t[e+3]]+"-"+a[t[e+4]]+a[t[e+5]]+"-"+a[t[e+6]]+a[t[e+7]]+"-"+a[t[e+8]]+a[t[e+9]]+"-"+a[t[e+10]]+a[t[e+11]]+a[t[e+12]]+a[t[e+13]]+a[t[e+14]]+a[t[e+15]]).toLowerCase()}(i)};function l(t){t.id="uuid-"+u()}class c{constructor(t){this.targetSVGDoc=t}get width(){return this.targetSVGDoc.viewBox.baseVal.width}get height(){return this.targetSVGDoc.viewBox.baseVal.height}get minX(){return this.targetSVGDoc.viewBox.baseVal.x}get maxX(){return this.minX+this.width}get minY(){return this.targetSVGDoc.viewBox.baseVal.y}get maxY(){return this.minY+this.height}get horizontalScaling(){return this.targetSVGDoc.width.baseVal.value/this.width}get verticalScaling(){return this.targetSVGDoc.height.baseVal.value/this.height}setScaling(t){this.targetSVGDoc.setAttribute("width",""+t*this.width),this.targetSVGDoc.setAttribute("height",""+t*this.height)}get clientWidth(){return this.targetSVGDoc.getBoundingClientRect().width}get clientHeight(){return this.targetSVGDoc.getBoundingClientRect().height}get horizontalClientScaling(){return this.clientWidth/this.width}get verticalClientScaling(){return this.clientHeight/this.height}get minClientX(){return this.targetSVGDoc.getBoundingClientRect().x}get minClientY(){return this.targetSVGDoc.getBoundingClientRect().y}fromClientX(t){return this.minX+(t-this.minClientX)/this.horizontalClientScaling}fromClientY(t){return this.minY+(t-this.minClientY)/this.verticalClientScaling}fromClientCoordinates(t,e){return[this.fromClientX(t),this.fromClientY(e)]}fromClientPoint(t){return{x:this.fromClientX(t.x),y:this.fromClientY(t.y)}}toClientX(t){return this.minClientX+this.horizontalClientScaling*(t-this.minX)}toClientY(t){return this.minClientY+this.verticalClientScaling*(t-this.minY)}toClientCoordinates(t,e){return[this.toClientX(t),this.toClientY(e)]}toClientPoint(t){return{x:this.toClientX(t.x),y:this.toClientY(t.y)}}}class d{constructor(t){this.targetSVGDoc=t}set(t){let e=this.targetSVGDoc.viewBox.baseVal;this.targetSVGDoc.setAttribute("width",t*e.width+"px"),this.targetSVGDoc.setAttribute("height",t*e.height+"px")}}class f{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.width/e.width}}class m{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.height/e.height}}function p(t){let e=t.parentNode;e&&e.appendChild(t)}function g(t){let e=t.parentNode;e&&e.prepend(t)}var y,b=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class w{constructor(t){y.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,y,t)}toString(){return b(this,y,"f").innerHTML}set(t){b(this,y,"f").innerHTML=t}}y=new WeakMap;var x,v=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class _{constructor(t){x.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,x,t)}toString(){return v(this,x,"f").outerHTML}set(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");if(e.style.height="0px",document.body.append(e),e.innerHTML=t,!e.firstElementChild)throw new Error("Outer XML must encode an SVG element.");if(e.childNodes.length>1)throw new Error("Outer XML cannot encode multiple DOM nodes.");if(e.firstElementChild.tagName.toLowerCase()!=v(this,x,"f").tagName.toLowerCase())throw new Error("Outer XML must specify an SVG element with the same tag name as the target SVG element.");[...v(this,x,"f").attributes].forEach((t=>v(this,x,"f").removeAttribute(t.name))),[...e.firstElementChild.attributes].forEach((t=>v(this,x,"f").setAttribute(t.name,t.value))),v(this,x,"f").innerHTML=e.firstElementChild.innerHTML,e.remove()}}return x=new WeakMap,e})(),t.exports=e()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function h(t){return null==t}function u(t){return"object"==typeof t&&null!==t}function l(t){return Array.isArray(t)}function c(t){return l(t)&&0==t.length}function d(t){return l(t)&&t.length>0}function f(t){return l(t)&&t.every(r)}function m(t){return f(t)&&t.length>0}function p(t){return l(t)&&t.every(n)}function g(t){return l(t)&&t.every(i)}function y(t){return l(t)&&t.every(a)}function b(t){return y(t)&&t.length>0}return t.r(e),t.d(e,{isArray:()=>l,isEmptyArray:()=>c,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>p,isNonEmptyArray:()=>d,isNonEmptyNumbersArray:()=>m,isNonEmptyStringsArray:()=>b,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>g,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>u,isNullish:()=>h,isNumber:()=>r,isNumbersArray:()=>f,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>y}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{BaseOutline:()=>i});var t=r(726),e=r(854);class i{static outlining(e){let r=document.createElementNS("http://www.w3.org/2000/svg","circle");(0,t.assignUUID)(r),r.setAttribute("cx",`${e.centerPoint.x}`),r.setAttribute("cy",`${e.centerPoint.y}`);let n=new i(r,e);return n.set(i.defaultValues.circle),n}static deserialized(t,r){var n;if(!(0,e.isNonNullObject)(t))throw new Error("Saved base outline must be an object.");let s=null!==(n=t.id)&&void 0!==n?n:t.circleId;if(!s)throw new Error("Base outline ID is missing.");if(!(0,e.isString)(s))throw new Error("Base outline ID must be a string.");let o=r.domNode.querySelector("#"+s);if(!o)throw new Error("Unable to find base outline DOM node.");if(!(o instanceof SVGCircleElement))throw new Error("Base outline DOM node must be an SVG circle element.");let a=t.ownerID;if(!a)throw new Error("Missing base outline owner ID.");if(!(0,e.isString)(a))throw new Error("Base outline owner ID must be a string.");let h=[...r.bases].find((t=>t.id===a));if(!h)throw new Error("Unable to find base outline owner.");return new i(o,h)}constructor(t,e){this.domNode=t,this.owner=e,e.centerPoint.addEventListener("move",(()=>{t.setAttribute("cx",`${e.centerPoint.x}`),t.setAttribute("cy",`${e.centerPoint.y}`)}))}serialized(){let t=this.id;if(!t)throw new Error("Base outline ID is falsy.");let e=this.owner.id;if(!e)throw new Error("Base outline owner ID is falsy.");return{id:t,ownerID:e}}get id(){return this.domNode.id}getAttribute(t){return this.domNode.getAttribute(t)}setAttribute(t,e){this.domNode.setAttribute(t,e)}setAttributes(e){(0,t.setAttributes)(this.domNode,e)}set(t){t.attributes&&this.setAttributes(t.attributes)}}i.defaultValues={circle:{attributes:{r:"5.5",stroke:"#000000","stroke-width":"0","stroke-opacity":"1",fill:"#00ffff","fill-opacity":"1"}}}})(),n})(),t.exports=e()},358:function(t){var e;e=()=>(()=>{var t={731:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};t.r(e),t.d(e,{CenterPoint:()=>u});var r,n,i,s,o,a=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},h=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class u{constructor(t){r.add(this),n.set(this,void 0),i.set(this,{move:[]}),s.set(this,void 0),a(this,n,t,"f"),a(this,s,new MutationObserver((()=>h(this,r,"m",o).call(this,"move"))),"f"),h(this,s,"f").observe(t,{attributes:!0,childList:!0,characterData:!0,subtree:!0})}get x(){let t=h(this,n,"f").getBBox();return t.x+t.width/2}set x(t){let e=this.x,r=[...h(this,n,"f").x.baseVal].map((t=>t.value));0!=r.length||r.push(0),r=r.map((r=>r+(t-e))),h(this,n,"f").setAttribute("x",r.join(", "))}get y(){let t=h(this,n,"f").getBBox();return t.y+t.height/2}set y(t){let e=this.y,r=[...h(this,n,"f").y.baseVal].map((t=>t.value));0!=r.length||r.push(0),r=r.map((r=>r+(t-e))),h(this,n,"f").setAttribute("y",r.join(", "))}addEventListener(t,e){h(this,i,"f")[t].push(e)}removeEventListener(t,e){h(this,i,"f")[t]=h(this,i,"f")[t].filter((t=>t!==e))}}return n=new WeakMap,i=new WeakMap,s=new WeakMap,r=new WeakSet,o=function(t){h(this,i,"f")[t].forEach((t=>t()))},e})(),t.exports=e()},726:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t,e){for(let[r,n]of Object.entries(e))t.setAttribute(r,n)}t.r(e),t.d(e,{CoordinateSystem:()=>c,HorizontalClientScaling:()=>f,InnerXML:()=>w,OuterXML:()=>_,Scaling:()=>d,VerticalClientScaling:()=>m,assignUUID:()=>l,bringToFront:()=>p,sendToBack:()=>g,setAttributes:()=>r});const n={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};var i,s=new Uint8Array(16);function o(){if(!i&&!(i="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return i(s)}for(var a=[],h=0;h<256;++h)a.push((h+256).toString(16).slice(1));const u=function(t,e,r){if(n.randomUUID&&!e&&!t)return n.randomUUID();var i=(t=t||{}).random||(t.rng||o)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,e){r=r||0;for(var s=0;s<16;++s)e[r+s]=i[s];return e}return function(t,e=0){return(a[t[e+0]]+a[t[e+1]]+a[t[e+2]]+a[t[e+3]]+"-"+a[t[e+4]]+a[t[e+5]]+"-"+a[t[e+6]]+a[t[e+7]]+"-"+a[t[e+8]]+a[t[e+9]]+"-"+a[t[e+10]]+a[t[e+11]]+a[t[e+12]]+a[t[e+13]]+a[t[e+14]]+a[t[e+15]]).toLowerCase()}(i)};function l(t){t.id="uuid-"+u()}class c{constructor(t){this.targetSVGDoc=t}get width(){return this.targetSVGDoc.viewBox.baseVal.width}get height(){return this.targetSVGDoc.viewBox.baseVal.height}get minX(){return this.targetSVGDoc.viewBox.baseVal.x}get maxX(){return this.minX+this.width}get minY(){return this.targetSVGDoc.viewBox.baseVal.y}get maxY(){return this.minY+this.height}get horizontalScaling(){return this.targetSVGDoc.width.baseVal.value/this.width}get verticalScaling(){return this.targetSVGDoc.height.baseVal.value/this.height}setScaling(t){this.targetSVGDoc.setAttribute("width",""+t*this.width),this.targetSVGDoc.setAttribute("height",""+t*this.height)}get clientWidth(){return this.targetSVGDoc.getBoundingClientRect().width}get clientHeight(){return this.targetSVGDoc.getBoundingClientRect().height}get horizontalClientScaling(){return this.clientWidth/this.width}get verticalClientScaling(){return this.clientHeight/this.height}get minClientX(){return this.targetSVGDoc.getBoundingClientRect().x}get minClientY(){return this.targetSVGDoc.getBoundingClientRect().y}fromClientX(t){return this.minX+(t-this.minClientX)/this.horizontalClientScaling}fromClientY(t){return this.minY+(t-this.minClientY)/this.verticalClientScaling}fromClientCoordinates(t,e){return[this.fromClientX(t),this.fromClientY(e)]}fromClientPoint(t){return{x:this.fromClientX(t.x),y:this.fromClientY(t.y)}}toClientX(t){return this.minClientX+this.horizontalClientScaling*(t-this.minX)}toClientY(t){return this.minClientY+this.verticalClientScaling*(t-this.minY)}toClientCoordinates(t,e){return[this.toClientX(t),this.toClientY(e)]}toClientPoint(t){return{x:this.toClientX(t.x),y:this.toClientY(t.y)}}}class d{constructor(t){this.targetSVGDoc=t}set(t){let e=this.targetSVGDoc.viewBox.baseVal;this.targetSVGDoc.setAttribute("width",t*e.width+"px"),this.targetSVGDoc.setAttribute("height",t*e.height+"px")}}class f{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.width/e.width}}class m{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.height/e.height}}function p(t){let e=t.parentNode;e&&e.appendChild(t)}function g(t){let e=t.parentNode;e&&e.prepend(t)}var y,b=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class w{constructor(t){y.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,y,t)}toString(){return b(this,y,"f").innerHTML}set(t){b(this,y,"f").innerHTML=t}}y=new WeakMap;var x,v=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class _{constructor(t){x.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,x,t)}toString(){return v(this,x,"f").outerHTML}set(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");if(e.style.height="0px",document.body.append(e),e.innerHTML=t,!e.firstElementChild)throw new Error("Outer XML must encode an SVG element.");if(e.childNodes.length>1)throw new Error("Outer XML cannot encode multiple DOM nodes.");if(e.firstElementChild.tagName.toLowerCase()!=v(this,x,"f").tagName.toLowerCase())throw new Error("Outer XML must specify an SVG element with the same tag name as the target SVG element.");[...v(this,x,"f").attributes].forEach((t=>v(this,x,"f").removeAttribute(t.name))),[...e.firstElementChild.attributes].forEach((t=>v(this,x,"f").setAttribute(t.name,t.value))),v(this,x,"f").innerHTML=e.firstElementChild.innerHTML,e.remove()}}return x=new WeakMap,e})(),t.exports=e()},986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>l,isBetweenExclusive:()=>c,isBetweenInclusive:()=>l,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function l(t,e,r){return t>=e&&t<=r}function c(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function m(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()},854:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){return"number"==typeof t}function n(t){return r(t)&&Number.isFinite(t)}function i(t){return r(t)&&!Number.isFinite(t)}function s(t){return n(t)&&t>0}function o(t){return n(t)&&t>=0}function a(t){return"string"==typeof t}function h(t){return null==t}function u(t){return"object"==typeof t&&null!==t}function l(t){return Array.isArray(t)}function c(t){return l(t)&&0==t.length}function d(t){return l(t)&&t.length>0}function f(t){return l(t)&&t.every(r)}function m(t){return f(t)&&t.length>0}function p(t){return l(t)&&t.every(n)}function g(t){return l(t)&&t.every(i)}function y(t){return l(t)&&t.every(a)}function b(t){return y(t)&&t.length>0}return t.r(e),t.d(e,{isArray:()=>l,isEmptyArray:()=>c,isFiniteNumber:()=>n,isFiniteNumbersArray:()=>p,isNonEmptyArray:()=>d,isNonEmptyNumbersArray:()=>m,isNonEmptyStringsArray:()=>b,isNonFiniteNumber:()=>i,isNonFiniteNumbersArray:()=>g,isNonNegativeFiniteNumber:()=>o,isNonNullObject:()=>u,isNullish:()=>h,isNumber:()=>r,isNumbersArray:()=>f,isPositiveFiniteNumber:()=>s,isString:()=>a,isStringsArray:()=>y}),e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{Nucleobase:()=>Dr});var t={};r.r(t),r.d(t,{cx:()=>It,cy:()=>Lt,height:()=>Ft,rx:()=>jt,ry:()=>Dt,width:()=>Vt,x:()=>kt,y:()=>Bt});var e={};r.r(e),r.d(e,{from:()=>qt,to:()=>Gt});var i={};r.r(i),r.d(i,{MorphArray:()=>Qt,height:()=>te,width:()=>Kt,x:()=>Jt,y:()=>Zt});var s={};r.r(s),r.d(s,{array:()=>Pe,clear:()=>Ae,move:()=>Ee,plot:()=>Te,size:()=>je});var o={};r.r(o),r.d(o,{amove:()=>or,ax:()=>ir,ay:()=>sr,build:()=>ar,center:()=>nr,cx:()=>er,cy:()=>rr,length:()=>Je,move:()=>tr,plain:()=>Qe,x:()=>Ze,y:()=>Ke});var a={};r.r(a),r.d(a,{dmove:()=>fr,dx:()=>mr,dy:()=>pr,height:()=>gr,move:()=>yr,size:()=>br,width:()=>wr,x:()=>xr,y:()=>vr});const h={},u=[];function l(t,e){if(Array.isArray(t))for(const r of t)l(r,e);else if("object"!=typeof t)d(Object.getOwnPropertyNames(e)),h[t]=Object.assign(h[t]||{},e);else for(const e in t)l(e,t[e])}function c(t){return h[t]||{}}function d(t){u.push(...t)}function f(t,e){let r;const n=t.length,i=[];for(r=0;r<n;r++)i.push(e(t[r]));return i}function m(t){return t%360*Math.PI/180}function p(t){return t.charAt(0).toUpperCase()+t.slice(1)}function g(t,e,r,n){return null!=e&&null!=r||(n=n||t.bbox(),null==e?e=n.width/n.height*r:null==r&&(r=n.height/n.width*e)),{width:e,height:r}}function y(t,e){const r=t.origin;let n=null!=t.ox?t.ox:null!=t.originX?t.originX:"center",i=null!=t.oy?t.oy:null!=t.originY?t.originY:"center";null!=r&&([n,i]=Array.isArray(r)?r:"object"==typeof r?[r.x,r.y]:[r,r]);const s="string"==typeof n,o="string"==typeof i;if(s||o){const{height:t,width:r,x:a,y:h}=e.bbox();s&&(n=n.includes("left")?a:n.includes("right")?a+r:a+r/2),o&&(i=i.includes("top")?h:i.includes("bottom")?h+t:h+t/2)}return[n,i]}const b=new Set(["desc","metadata","title"]),w=t=>b.has(t.nodeName),x=(t,e,r={})=>{const n={...e};for(const t in n)n[t].valueOf()===r[t]&&delete n[t];Object.keys(n).length?t.node.setAttribute("data-svgjs",JSON.stringify(n)):(t.node.removeAttribute("data-svgjs"),t.node.removeAttribute("svgjs:data"))},v="http://www.w3.org/2000/svg",_="http://www.w3.org/2000/xmlns/",S="http://www.w3.org/1999/xlink",M={window:"undefined"==typeof window?null:window,document:"undefined"==typeof document?null:document};class O{}const N={},C="___SYMBOL___ROOT___";function P(t,e=v){return M.document.createElementNS(e,t)}function A(t,e=!1){if(t instanceof O)return t;if("object"==typeof t)return j(t);if(null==t)return new N[C];if("string"==typeof t&&"<"!==t.charAt(0))return j(M.document.querySelector(t));const r=e?M.document.createElement("div"):P("svg");return r.innerHTML=t,t=j(r.firstChild),r.removeChild(r.firstChild),t}function E(t,e){return e&&(e instanceof M.window.Node||e.ownerDocument&&e instanceof e.ownerDocument.defaultView.Node)?e:P(t)}function T(t){if(!t)return null;if(t.instance instanceof O)return t.instance;if("#document-fragment"===t.nodeName)return new N.Fragment(t);let e=p(t.nodeName||"Dom");return"LinearGradient"===e||"RadialGradient"===e?e="Gradient":N[e]||(e="Dom"),new N[e](t)}let j=T;function D(t,e=t.name,r=!1){return N[e]=t,r&&(N[C]=t),d(Object.getOwnPropertyNames(t.prototype)),t}let k=1e3;function B(t){return"Svgjs"+p(t)+k++}function I(t){for(let e=t.children.length-1;e>=0;e--)I(t.children[e]);return t.id?(t.id=B(t.nodeName),t):t}function L(t,e){let r,n;for(n=(t=Array.isArray(t)?t:[t]).length-1;n>=0;n--)for(r in e)t[n].prototype[r]=e[r]}function V(t){return function(...e){const r=e[e.length-1];return!r||r.constructor!==Object||r instanceof Array?t.apply(this,e):t.apply(this,e.slice(0,-1)).attr(r)}}l("Dom",{siblings:function(){return this.parent().children()},position:function(){return this.parent().index(this)},next:function(){return this.siblings()[this.position()+1]},prev:function(){return this.siblings()[this.position()-1]},forward:function(){const t=this.position();return this.parent().add(this.remove(),t+1),this},backward:function(){const t=this.position();return this.parent().add(this.remove(),t?t-1:0),this},front:function(){return this.parent().add(this.remove()),this},back:function(){return this.parent().add(this.remove(),0),this},before:function(t){(t=A(t)).remove();const e=this.position();return this.parent().add(t,e),this},after:function(t){(t=A(t)).remove();const e=this.position();return this.parent().add(t,e+1),this},insertBefore:function(t){return(t=A(t)).before(this),this},insertAfter:function(t){return(t=A(t)).after(this),this}});const F=/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,R=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,z=/rgb\((\d+),(\d+),(\d+)\)/,X=/(#[a-z_][a-z0-9\-_]*)/i,q=/\)\s*,?\s*/,G=/\s/g,Y=/^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i,U=/^rgb\(/,H=/^(\s+)?$/,$=/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,W=/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,Q=/[\s,]+/,J=/[MLHVCSQTAZ]/i;function Z(t){const e=Math.round(t),r=Math.max(0,Math.min(255,e)).toString(16);return 1===r.length?"0"+r:r}function K(t,e){for(let r=e.length;r--;)if(null==t[e[r]])return!1;return!0}function tt(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}l("Dom",{classes:function(){const t=this.attr("class");return null==t?[]:t.trim().split(Q)},hasClass:function(t){return-1!==this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){const e=this.classes();e.push(t),this.attr("class",e.join(" "))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr("class",this.classes().filter((function(e){return e!==t})).join(" ")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)}}),l("Dom",{css:function(t,e){const r={};if(0===arguments.length)return this.node.style.cssText.split(/\s*;\s*/).filter((function(t){return!!t.length})).forEach((function(t){const e=t.split(/\s*:\s*/);r[e[0]]=e[1]})),r;if(arguments.length<2){if(Array.isArray(t)){for(const e of t){const t=e;r[e]=this.node.style.getPropertyValue(t)}return r}if("string"==typeof t)return this.node.style.getPropertyValue(t);if("object"==typeof t)for(const e in t)this.node.style.setProperty(e,null==t[e]||H.test(t[e])?"":t[e])}return 2===arguments.length&&this.node.style.setProperty(t,null==e||H.test(e)?"":e),this},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},visible:function(){return"none"!==this.css("display")}}),l("Dom",{data:function(t,e,r){if(null==t)return this.data(f(function(t){let e;const r=t.length,n=[];for(e=0;e<r;e++)0===t[e].nodeName.indexOf("data-")&&n.push(t[e]);return n}(this.node.attributes),(t=>t.nodeName.slice(5))));if(t instanceof Array){const e={};for(const r of t)e[r]=this.data(r);return e}if("object"==typeof t)for(e in t)this.data(e,t[e]);else if(arguments.length<2)try{return JSON.parse(this.attr("data-"+t))}catch(e){return this.attr("data-"+t)}else this.attr("data-"+t,null===e?null:!0===r||"string"==typeof e||"number"==typeof e?e:JSON.stringify(e));return this}}),l("Dom",{remember:function(t,e){if("object"==typeof arguments[0])for(const e in t)this.remember(e,t[e]);else{if(1===arguments.length)return this.memory()[t];this.memory()[t]=e}return this},forget:function(){if(0===arguments.length)this._memory={};else for(let t=arguments.length-1;t>=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory=this._memory||{}}});class et{constructor(...t){this.init(...t)}static isColor(t){return t&&(t instanceof et||this.isRgb(t)||this.test(t))}static isRgb(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b}static random(t="vibrant",e){const{random:r,round:n,sin:i,PI:s}=Math;if("vibrant"===t){const t=24*r()+57,e=38*r()+45,n=360*r();return new et(t,e,n,"lch")}if("sine"===t){const t=n(80*i(2*s*(e=null==e?r():e)/.5+.01)+150),o=n(50*i(2*s*e/.5+4.6)+200),a=n(100*i(2*s*e/.5+2.3)+150);return new et(t,o,a)}if("pastel"===t){const t=8*r()+86,e=17*r()+9,n=360*r();return new et(t,e,n,"lch")}if("dark"===t){const t=10+10*r(),e=50*r()+86,n=360*r();return new et(t,e,n,"lch")}if("rgb"===t){const t=255*r(),e=255*r(),n=255*r();return new et(t,e,n)}if("lab"===t){const t=100*r(),e=256*r()-128,n=256*r()-128;return new et(t,e,n,"lab")}if("grey"===t){const t=255*r();return new et(t,t,t)}throw new Error("Unsupported random color mode")}static test(t){return"string"==typeof t&&(Y.test(t)||U.test(t))}cmyk(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=Math.min(1-n,1-i,1-s);return 1===o?new et(0,0,0,1,"cmyk"):new et((1-n-o)/(1-o),(1-i-o)/(1-o),(1-s-o)/(1-o),o,"cmyk")}hsl(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=Math.max(n,i,s),a=Math.min(n,i,s),h=(o+a)/2,u=o===a,l=o-a;return new et(360*(u?0:o===n?((i-s)/l+(i<s?6:0))/6:o===i?((s-n)/l+2)/6:o===s?((n-i)/l+4)/6:0),100*(u?0:h>.5?l/(2-o-a):l/(o+a)),100*h,"hsl")}init(t=0,e=0,r=0,n=0,i="rgb"){if(t=t||0,this.space)for(const t in this.space)delete this[this.space[t]];if("number"==typeof t)i="string"==typeof n?n:i,n="string"==typeof n?0:n,Object.assign(this,{_a:t,_b:e,_c:r,_d:n,space:i});else if(t instanceof Array)this.space=e||("string"==typeof t[3]?t[3]:t[4])||"rgb",Object.assign(this,{_a:t[0],_b:t[1],_c:t[2],_d:t[3]||0});else if(t instanceof Object){const r=function(t,e){const r=K(t,"rgb")?{_a:t.r,_b:t.g,_c:t.b,_d:0,space:"rgb"}:K(t,"xyz")?{_a:t.x,_b:t.y,_c:t.z,_d:0,space:"xyz"}:K(t,"hsl")?{_a:t.h,_b:t.s,_c:t.l,_d:0,space:"hsl"}:K(t,"lab")?{_a:t.l,_b:t.a,_c:t.b,_d:0,space:"lab"}:K(t,"lch")?{_a:t.l,_b:t.c,_c:t.h,_d:0,space:"lch"}:K(t,"cmyk")?{_a:t.c,_b:t.m,_c:t.y,_d:t.k,space:"cmyk"}:{_a:0,_b:0,_c:0,space:"rgb"};return r.space=e||r.space,r}(t,e);Object.assign(this,r)}else if("string"==typeof t)if(U.test(t)){const e=t.replace(G,""),[r,n,i]=z.exec(e).slice(1,4).map((t=>parseInt(t)));Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}else{if(!Y.test(t))throw Error("Unsupported string format, can't construct Color");{const e=t=>parseInt(t,16),[,r,n,i]=R.exec(function(t){return 4===t.length?["#",t.substring(1,2),t.substring(1,2),t.substring(2,3),t.substring(2,3),t.substring(3,4),t.substring(3,4)].join(""):t}(t)).map(e);Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}}const{_a:s,_b:o,_c:a,_d:h}=this,u="rgb"===this.space?{r:s,g:o,b:a}:"xyz"===this.space?{x:s,y:o,z:a}:"hsl"===this.space?{h:s,s:o,l:a}:"lab"===this.space?{l:s,a:o,b:a}:"lch"===this.space?{l:s,c:o,h:a}:"cmyk"===this.space?{c:s,m:o,y:a,k:h}:{};Object.assign(this,u)}lab(){const{x:t,y:e,z:r}=this.xyz();return new et(116*e-16,500*(t-e),200*(e-r),"lab")}lch(){const{l:t,a:e,b:r}=this.lab(),n=Math.sqrt(e**2+r**2);let i=180*Math.atan2(r,e)/Math.PI;return i<0&&(i*=-1,i=360-i),new et(t,n,i,"lch")}rgb(){if("rgb"===this.space)return this;if("lab"===(t=this.space)||"xyz"===t||"lch"===t){let{x:t,y:e,z:r}=this;if("lab"===this.space||"lch"===this.space){let{l:n,a:i,b:s}=this;if("lch"===this.space){const{c:t,h:e}=this,r=Math.PI/180;i=t*Math.cos(r*e),s=t*Math.sin(r*e)}const o=(n+16)/116,a=i/500+o,h=o-s/200,u=16/116,l=.008856,c=7.787;t=.95047*(a**3>l?a**3:(a-u)/c),e=1*(o**3>l?o**3:(o-u)/c),r=1.08883*(h**3>l?h**3:(h-u)/c)}const n=3.2406*t+-1.5372*e+-.4986*r,i=-.9689*t+1.8758*e+.0415*r,s=.0557*t+-.204*e+1.057*r,o=Math.pow,a=.0031308,h=n>a?1.055*o(n,1/2.4)-.055:12.92*n,u=i>a?1.055*o(i,1/2.4)-.055:12.92*i,l=s>a?1.055*o(s,1/2.4)-.055:12.92*s;return new et(255*h,255*u,255*l)}if("hsl"===this.space){let{h:t,s:e,l:r}=this;if(t/=360,e/=100,r/=100,0===e)return r*=255,new et(r,r,r);const n=r<.5?r*(1+e):r+e-r*e,i=2*r-n,s=255*tt(i,n,t+1/3),o=255*tt(i,n,t),a=255*tt(i,n,t-1/3);return new et(s,o,a)}if("cmyk"===this.space){const{c:t,m:e,y:r,k:n}=this,i=255*(1-Math.min(1,t*(1-n)+n)),s=255*(1-Math.min(1,e*(1-n)+n)),o=255*(1-Math.min(1,r*(1-n)+n));return new et(i,s,o)}return this;var t}toArray(){const{_a:t,_b:e,_c:r,_d:n,space:i}=this;return[t,e,r,n,i]}toHex(){const[t,e,r]=this._clamped().map(Z);return`#${t}${e}${r}`}toRgb(){const[t,e,r]=this._clamped();return`rgb(${t},${e},${r})`}toString(){return this.toHex()}xyz(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92,a=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92,h=s>.04045?Math.pow((s+.055)/1.055,2.4):s/12.92,u=(.4124*o+.3576*a+.1805*h)/.95047,l=(.2126*o+.7152*a+.0722*h)/1,c=(.0193*o+.1192*a+.9505*h)/1.08883,d=u>.008856?Math.pow(u,1/3):7.787*u+16/116,f=l>.008856?Math.pow(l,1/3):7.787*l+16/116,m=c>.008856?Math.pow(c,1/3):7.787*c+16/116;return new et(d,f,m,"xyz")}_clamped(){const{_a:t,_b:e,_c:r}=this.rgb(),{max:n,min:i,round:s}=Math;return[t,e,r].map((t=>n(0,i(s(t),255))))}}class rt{constructor(...t){this.init(...t)}clone(){return new rt(this)}init(t,e){const r=Array.isArray(t)?{x:t[0],y:t[1]}:"object"==typeof t?{x:t.x,y:t.y}:{x:t,y:e};return this.x=null==r.x?0:r.x,this.y=null==r.y?0:r.y,this}toArray(){return[this.x,this.y]}transform(t){return this.clone().transformO(t)}transformO(t){it.isMatrixLike(t)||(t=new it(t));const{x:e,y:r}=this;return this.x=t.a*e+t.c*r+t.e,this.y=t.b*e+t.d*r+t.f,this}}function nt(t,e,r){return Math.abs(e-t)<(r||1e-6)}class it{constructor(...t){this.init(...t)}static formatTransforms(t){const e="both"===t.flip||!0===t.flip,r=t.flip&&(e||"x"===t.flip)?-1:1,n=t.flip&&(e||"y"===t.flip)?-1:1,i=t.skew&&t.skew.length?t.skew[0]:isFinite(t.skew)?t.skew:isFinite(t.skewX)?t.skewX:0,s=t.skew&&t.skew.length?t.skew[1]:isFinite(t.skew)?t.skew:isFinite(t.skewY)?t.skewY:0,o=t.scale&&t.scale.length?t.scale[0]*r:isFinite(t.scale)?t.scale*r:isFinite(t.scaleX)?t.scaleX*r:r,a=t.scale&&t.scale.length?t.scale[1]*n:isFinite(t.scale)?t.scale*n:isFinite(t.scaleY)?t.scaleY*n:n,h=t.shear||0,u=t.rotate||t.theta||0,l=new rt(t.origin||t.around||t.ox||t.originX,t.oy||t.originY),c=l.x,d=l.y,f=new rt(t.position||t.px||t.positionX||NaN,t.py||t.positionY||NaN),m=f.x,p=f.y,g=new rt(t.translate||t.tx||t.translateX,t.ty||t.translateY),y=g.x,b=g.y,w=new rt(t.relative||t.rx||t.relativeX,t.ry||t.relativeY);return{scaleX:o,scaleY:a,skewX:i,skewY:s,shear:h,theta:u,rx:w.x,ry:w.y,tx:y,ty:b,ox:c,oy:d,px:m,py:p}}static fromArray(t){return{a:t[0],b:t[1],c:t[2],d:t[3],e:t[4],f:t[5]}}static isMatrixLike(t){return null!=t.a||null!=t.b||null!=t.c||null!=t.d||null!=t.e||null!=t.f}static matrixMultiply(t,e,r){const n=t.a*e.a+t.c*e.b,i=t.b*e.a+t.d*e.b,s=t.a*e.c+t.c*e.d,o=t.b*e.c+t.d*e.d,a=t.e+t.a*e.e+t.c*e.f,h=t.f+t.b*e.e+t.d*e.f;return r.a=n,r.b=i,r.c=s,r.d=o,r.e=a,r.f=h,r}around(t,e,r){return this.clone().aroundO(t,e,r)}aroundO(t,e,r){const n=t||0,i=e||0;return this.translateO(-n,-i).lmultiplyO(r).translateO(n,i)}clone(){return new it(this)}decompose(t=0,e=0){const r=this.a,n=this.b,i=this.c,s=this.d,o=this.e,a=this.f,h=r*s-n*i,u=h>0?1:-1,l=u*Math.sqrt(r*r+n*n),c=Math.atan2(u*n,u*r),d=180/Math.PI*c,f=Math.cos(c),m=Math.sin(c),p=(r*i+n*s)/h,g=i*l/(p*r-n)||s*l/(p*n+r);return{scaleX:l,scaleY:g,shear:p,rotate:d,translateX:o-t+t*f*l+e*(p*f*l-m*g),translateY:a-e+t*m*l+e*(p*m*l+f*g),originX:t,originY:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}equals(t){if(t===this)return!0;const e=new it(t);return nt(this.a,e.a)&&nt(this.b,e.b)&&nt(this.c,e.c)&&nt(this.d,e.d)&&nt(this.e,e.e)&&nt(this.f,e.f)}flip(t,e){return this.clone().flipO(t,e)}flipO(t,e){return"x"===t?this.scaleO(-1,1,e,0):"y"===t?this.scaleO(1,-1,0,e):this.scaleO(-1,-1,t,e||t)}init(t){const e=it.fromArray([1,0,0,1,0,0]);return t=t instanceof Ct?t.matrixify():"string"==typeof t?it.fromArray(t.split(Q).map(parseFloat)):Array.isArray(t)?it.fromArray(t):"object"==typeof t&&it.isMatrixLike(t)?t:"object"==typeof t?(new it).transform(t):6===arguments.length?it.fromArray([].slice.call(arguments)):e,this.a=null!=t.a?t.a:e.a,this.b=null!=t.b?t.b:e.b,this.c=null!=t.c?t.c:e.c,this.d=null!=t.d?t.d:e.d,this.e=null!=t.e?t.e:e.e,this.f=null!=t.f?t.f:e.f,this}inverse(){return this.clone().inverseO()}inverseO(){const t=this.a,e=this.b,r=this.c,n=this.d,i=this.e,s=this.f,o=t*n-e*r;if(!o)throw new Error("Cannot invert "+this);const a=n/o,h=-e/o,u=-r/o,l=t/o,c=-(a*i+u*s),d=-(h*i+l*s);return this.a=a,this.b=h,this.c=u,this.d=l,this.e=c,this.f=d,this}lmultiply(t){return this.clone().lmultiplyO(t)}lmultiplyO(t){const e=t instanceof it?t:new it(t);return it.matrixMultiply(e,this,this)}multiply(t){return this.clone().multiplyO(t)}multiplyO(t){const e=t instanceof it?t:new it(t);return it.matrixMultiply(this,e,this)}rotate(t,e,r){return this.clone().rotateO(t,e,r)}rotateO(t,e=0,r=0){t=m(t);const n=Math.cos(t),i=Math.sin(t),{a:s,b:o,c:a,d:h,e:u,f:l}=this;return this.a=s*n-o*i,this.b=o*n+s*i,this.c=a*n-h*i,this.d=h*n+a*i,this.e=u*n-l*i+r*i-e*n+e,this.f=l*n+u*i-e*i-r*n+r,this}scale(){return this.clone().scaleO(...arguments)}scaleO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t);const{a:i,b:s,c:o,d:a,e:h,f:u}=this;return this.a=i*t,this.b=s*e,this.c=o*t,this.d=a*e,this.e=h*t-r*t+r,this.f=u*e-n*e+n,this}shear(t,e,r){return this.clone().shearO(t,e,r)}shearO(t,e=0,r=0){const{a:n,b:i,c:s,d:o,e:a,f:h}=this;return this.a=n+i*t,this.c=s+o*t,this.e=a+h*t-r*t,this}skew(){return this.clone().skewO(...arguments)}skewO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t),t=m(t),e=m(e);const i=Math.tan(t),s=Math.tan(e),{a:o,b:a,c:h,d:u,e:l,f:c}=this;return this.a=o+a*i,this.b=a+o*s,this.c=h+u*i,this.d=u+h*s,this.e=l+c*i-n*i,this.f=c+l*s-r*s,this}skewX(t,e,r){return this.skew(t,0,e,r)}skewY(t,e,r){return this.skew(0,t,e,r)}toArray(){return[this.a,this.b,this.c,this.d,this.e,this.f]}toString(){return"matrix("+this.a+","+this.b+","+this.c+","+this.d+","+this.e+","+this.f+")"}transform(t){if(it.isMatrixLike(t))return new it(t).multiplyO(this);const e=it.formatTransforms(t),{x:r,y:n}=new rt(e.ox,e.oy).transform(this),i=(new it).translateO(e.rx,e.ry).lmultiplyO(this).translateO(-r,-n).scaleO(e.scaleX,e.scaleY).skewO(e.skewX,e.skewY).shearO(e.shear).rotateO(e.theta).translateO(r,n);if(isFinite(e.px)||isFinite(e.py)){const t=new rt(r,n).transform(i),s=isFinite(e.px)?e.px-t.x:0,o=isFinite(e.py)?e.py-t.y:0;i.translateO(s,o)}return i.translateO(e.tx,e.ty),i}translate(t,e){return this.clone().translateO(t,e)}translateO(t,e){return this.e+=t||0,this.f+=e||0,this}valueOf(){return{a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}}function st(){if(!st.nodes){const t=A().size(2,0);t.node.style.cssText=["opacity: 0","position: absolute","left: -100%","top: -100%","overflow: hidden"].join(";"),t.attr("focusable","false"),t.attr("aria-hidden","true");const e=t.path().node;st.nodes={svg:t,path:e}}if(!st.nodes.svg.node.parentNode){const t=M.document.body||M.document.documentElement;st.nodes.svg.addTo(t)}return st.nodes}function ot(t){return!(t.width||t.height||t.x||t.y)}D(it,"Matrix");class at{constructor(...t){this.init(...t)}addOffset(){return this.x+=M.window.pageXOffset,this.y+=M.window.pageYOffset,new at(this)}init(t){return t="string"==typeof t?t.split(Q).map(parseFloat):Array.isArray(t)?t:"object"==typeof t?[null!=t.left?t.left:t.x,null!=t.top?t.top:t.y,t.width,t.height]:4===arguments.length?[].slice.call(arguments):[0,0,0,0],this.x=t[0]||0,this.y=t[1]||0,this.width=this.w=t[2]||0,this.height=this.h=t[3]||0,this.x2=this.x+this.w,this.y2=this.y+this.h,this.cx=this.x+this.w/2,this.cy=this.y+this.h/2,this}isNulled(){return ot(this)}merge(t){const e=Math.min(this.x,t.x),r=Math.min(this.y,t.y),n=Math.max(this.x+this.width,t.x+t.width)-e,i=Math.max(this.y+this.height,t.y+t.height)-r;return new at(e,r,n,i)}toArray(){return[this.x,this.y,this.width,this.height]}toString(){return this.x+" "+this.y+" "+this.width+" "+this.height}transform(t){t instanceof it||(t=new it(t));let e=1/0,r=-1/0,n=1/0,i=-1/0;return[new rt(this.x,this.y),new rt(this.x2,this.y),new rt(this.x,this.y2),new rt(this.x2,this.y2)].forEach((function(s){s=s.transform(t),e=Math.min(e,s.x),r=Math.max(r,s.x),n=Math.min(n,s.y),i=Math.max(i,s.y)})),new at(e,n,r-e,i-n)}}function ht(t,e,r){let n;try{if(n=e(t.node),ot(n)&&(i=t.node)!==M.document&&!(M.document.documentElement.contains||function(t){for(;t.parentNode;)t=t.parentNode;return t===M.document}).call(M.document.documentElement,i))throw new Error("Element not in the dom")}catch(e){n=r(t)}var i;return n}l({viewbox:{viewbox(t,e,r,n){return null==t?new at(this.attr("viewBox")):this.attr("viewBox",new at(t,e,r,n))},zoom(t,e){let{width:r,height:n}=this.attr(["width","height"]);if((r||n)&&"string"!=typeof r&&"string"!=typeof n||(r=this.node.clientWidth,n=this.node.clientHeight),!r||!n)throw new Error("Impossible to get absolute width and height. Please provide an absolute width and height attribute on the zooming element");const i=this.viewbox(),s=r/i.width,o=n/i.height,a=Math.min(s,o);if(null==t)return a;let h=a/t;h===1/0&&(h=Number.MAX_SAFE_INTEGER/100),e=e||new rt(r/2/s+i.x,n/2/o+i.y);const u=new at(i).transform(new it({scale:h,origin:e}));return this.viewbox(u)}}}),D(at,"Box");class ut extends Array{constructor(t=[],...e){if(super(t,...e),"number"==typeof t)return this;this.length=0,this.push(...t)}}const lt=ut;L([ut],{each(t,...e){return"function"==typeof t?this.map(((e,r,n)=>t.call(e,e,r,n))):this.map((r=>r[t](...e)))},toArray(){return Array.prototype.concat.apply([],this)}});const ct=["toArray","constructor","each"];function dt(t,e){return new lt(f((e||M.document).querySelectorAll(t),(function(t){return T(t)})))}ut.extend=function(t){t=t.reduce(((t,e)=>(ct.includes(e)||"_"===e[0]||(e in Array.prototype&&(t["$"+e]=Array.prototype[e]),t[e]=function(...t){return this.each(e,...t)}),t)),{}),L([ut],t)};let ft=0;const mt={};function pt(t){let e=t.getEventHolder();return e===M.window&&(e=mt),e.events||(e.events={}),e.events}function gt(t){return t.getEventTarget()}function yt(t,e,r,n,i){const s=r.bind(n||t),o=A(t),a=pt(o),h=gt(o);e=Array.isArray(e)?e:e.split(Q),r._svgjsListenerId||(r._svgjsListenerId=++ft),e.forEach((function(t){const e=t.split(".")[0],n=t.split(".")[1]||"*";a[e]=a[e]||{},a[e][n]=a[e][n]||{},a[e][n][r._svgjsListenerId]=s,h.addEventListener(e,s,i||!1)}))}function bt(t,e,r,n){const i=A(t),s=pt(i),o=gt(i);("function"!=typeof r||(r=r._svgjsListenerId))&&(e=Array.isArray(e)?e:(e||"").split(Q)).forEach((function(t){const e=t&&t.split(".")[0],a=t&&t.split(".")[1];let h,u;if(r)s[e]&&s[e][a||"*"]&&(o.removeEventListener(e,s[e][a||"*"][r],n||!1),delete s[e][a||"*"][r]);else if(e&&a){if(s[e]&&s[e][a]){for(u in s[e][a])bt(o,[e,a].join("."),u);delete s[e][a]}}else if(a)for(t in s)for(h in s[t])a===h&&bt(o,[t,a].join("."));else if(e){if(s[e]){for(h in s[e])bt(o,[e,h].join("."));delete s[e]}}else{for(t in s)bt(o,t);!function(t){let e=t.getEventHolder();e===M.window&&(e=mt),e.events&&(e.events={})}(i)}}))}class wt extends O{addEventListener(){}dispatch(t,e,r){return function(t,e,r,n){const i=gt(t);return e instanceof M.window.Event||(e=new M.window.CustomEvent(e,{detail:r,cancelable:!0,...n})),i.dispatchEvent(e),e}(this,t,e,r)}dispatchEvent(t){const e=this.getEventHolder().events;if(!e)return!0;const r=e[t.type];for(const e in r)for(const n in r[e])r[e][n](t);return!t.defaultPrevented}fire(t,e,r){return this.dispatch(t,e,r),this}getEventHolder(){return this}getEventTarget(){return this}off(t,e,r){return bt(this,t,e,r),this}on(t,e,r,n){return yt(this,t,e,r,n),this}removeEventListener(){}}function xt(){}D(wt,"EventTarget");const vt={"fill-opacity":1,"stroke-opacity":1,"stroke-width":0,"stroke-linejoin":"miter","stroke-linecap":"butt",fill:"#000000",stroke:"#000000",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,"stop-opacity":1,"stop-color":"#000000","text-anchor":"start"};class _t extends Array{constructor(...t){super(...t),this.init(...t)}clone(){return new this.constructor(this)}init(t){return"number"==typeof t||(this.length=0,this.push(...this.parse(t))),this}parse(t=[]){return t instanceof Array?t:t.trim().split(Q).map(parseFloat)}toArray(){return Array.prototype.concat.apply([],this)}toSet(){return new Set(this)}toString(){return this.join(" ")}valueOf(){const t=[];return t.push(...this),t}}class St{constructor(...t){this.init(...t)}convert(t){return new St(this.value,t)}divide(t){return t=new St(t),new St(this/t,this.unit||t.unit)}init(t,e){return e=Array.isArray(t)?t[1]:e,t=Array.isArray(t)?t[0]:t,this.value=0,this.unit=e||"","number"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-34e37:34e37:"string"==typeof t?(e=t.match(F))&&(this.value=parseFloat(e[1]),"%"===e[5]?this.value/=100:"s"===e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof St&&(this.value=t.valueOf(),this.unit=t.unit),this}minus(t){return t=new St(t),new St(this-t,this.unit||t.unit)}plus(t){return t=new St(t),new St(this+t,this.unit||t.unit)}times(t){return t=new St(t),new St(this*t,this.unit||t.unit)}toArray(){return[this.value,this.unit]}toJSON(){return this.toString()}toString(){return("%"===this.unit?~~(1e8*this.value)/1e6:"s"===this.unit?this.value/1e3:this.value)+this.unit}valueOf(){return this.value}}const Mt=new Set(["fill","stroke","color","bgcolor","stop-color","flood-color","lighting-color"]),Ot=[];class Nt extends wt{constructor(t,e){super(),this.node=t,this.type=t.nodeName,e&&t!==e&&this.attr(e)}add(t,e){return(t=A(t)).removeNamespace&&this.node instanceof M.window.SVGElement&&t.removeNamespace(),null==e?this.node.appendChild(t.node):t.node!==this.node.childNodes[e]&&this.node.insertBefore(t.node,this.node.childNodes[e]),this}addTo(t,e){return A(t).put(this,e)}children(){return new lt(f(this.node.children,(function(t){return T(t)})))}clear(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return this}clone(t=!0,e=!0){this.writeDataToDom();let r=this.node.cloneNode(t);return e&&(r=I(r)),new this.constructor(r)}each(t,e){const r=this.children();let n,i;for(n=0,i=r.length;n<i;n++)t.apply(r[n],[n,r]),e&&r[n].each(t,e);return this}element(t,e){return this.put(new Nt(P(t),e))}first(){return T(this.node.firstChild)}get(t){return T(this.node.childNodes[t])}getEventHolder(){return this.node}getEventTarget(){return this.node}has(t){return this.index(t)>=0}html(t,e){return this.xml(t,e,"http://www.w3.org/1999/xhtml")}id(t){return void 0!==t||this.node.id||(this.node.id=B(this.type)),this.attr("id",t)}index(t){return[].slice.call(this.node.childNodes).indexOf(t.node)}last(){return T(this.node.lastChild)}matches(t){const e=this.node,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector||null;return r&&r.call(e,t)}parent(t){let e=this;if(!e.node.parentNode)return null;if(e=T(e.node.parentNode),!t)return e;do{if("string"==typeof t?e.matches(t):e instanceof t)return e}while(e=T(e.node.parentNode));return e}put(t,e){return t=A(t),this.add(t,e),t}putIn(t,e){return A(t).add(this,e)}remove(){return this.parent()&&this.parent().removeElement(this),this}removeElement(t){return this.node.removeChild(t.node),this}replace(t){return t=A(t),this.node.parentNode&&this.node.parentNode.replaceChild(t.node,this.node),t}round(t=2,e=null){const r=10**t,n=this.attr(e);for(const t in n)"number"==typeof n[t]&&(n[t]=Math.round(n[t]*r)/r);return this.attr(n),this}svg(t,e){return this.xml(t,e,v)}toString(){return this.id()}words(t){return this.node.textContent=t,this}wrap(t){const e=this.parent();if(!e)return this.addTo(t);const r=e.index(this);return e.put(t,r).put(this)}writeDataToDom(){return this.each((function(){this.writeDataToDom()})),this}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){e=null==e||e,this.writeDataToDom();let r=this;if(null!=t){if(r=T(r.node.cloneNode(!0)),e){const e=t(r);if(r=e||r,!1===e)return""}r.each((function(){const e=t(this),r=e||this;!1===e?this.remove():e&&this!==r&&this.replace(r)}),!0)}return e?r.node.outerHTML:r.node.innerHTML}e=null!=e&&e;const n=P("wrapper",r),i=M.document.createDocumentFragment();n.innerHTML=t;for(let t=n.children.length;t--;)i.appendChild(n.firstElementChild);const s=this.parent();return e?this.replace(i)&&s:this.add(i)}}L(Nt,{attr:function(t,e,r){if(null==t){t={},e=this.node.attributes;for(const r of e)t[r.nodeName]=$.test(r.nodeValue)?parseFloat(r.nodeValue):r.nodeValue;return t}if(t instanceof Array)return t.reduce(((t,e)=>(t[e]=this.attr(e),t)),{});if("object"==typeof t&&t.constructor===Object)for(e in t)this.attr(e,t[e]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?vt[t]:$.test(e)?parseFloat(e):e;"number"==typeof(e=Ot.reduce(((e,r)=>r(t,e,this)),e))?e=new St(e):Mt.has(t)&&et.isColor(e)?e=new et(e):e.constructor===Array&&(e=new _t(e)),"leading"===t?this.leading&&this.leading(e):"string"==typeof r?this.node.setAttributeNS(r,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||"font-size"!==t&&"x"!==t||this.rebuild()}return this},find:function(t){return dt(t,this.node)},findOne:function(t){return T(this.node.querySelector(t))}}),D(Nt,"Dom");class Ct extends Nt{constructor(t,e){super(t,e),this.dom={},this.node.instance=this,(t.hasAttribute("data-svgjs")||t.hasAttribute("svgjs:data"))&&this.setData(JSON.parse(t.getAttribute("data-svgjs"))??JSON.parse(t.getAttribute("svgjs:data"))??{})}center(t,e){return this.cx(t).cy(e)}cx(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)}cy(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)}defs(){const t=this.root();return t&&t.defs()}dmove(t,e){return this.dx(t).dy(e)}dx(t=0){return this.x(new St(t).plus(this.x()))}dy(t=0){return this.y(new St(t).plus(this.y()))}getEventHolder(){return this}height(t){return this.attr("height",t)}move(t,e){return this.x(t).y(e)}parents(t=this.root()){const e="string"==typeof t;e||(t=A(t));const r=new lt;let n=this;for(;(n=n.parent())&&n.node!==M.document&&"#document-fragment"!==n.nodeName&&(r.push(n),e||n.node!==t.node)&&(!e||!n.matches(t));)if(n.node===this.root().node)return null;return r}reference(t){if(!(t=this.attr(t)))return null;const e=(t+"").match(X);return e?A(e[1]):null}root(){const t=this.parent(N[C]);return t&&t.root()}setData(t){return this.dom=t,this}size(t,e){const r=g(this,t,e);return this.width(new St(r.width)).height(new St(r.height))}width(t){return this.attr("width",t)}writeDataToDom(){return x(this,this.dom),super.writeDataToDom()}x(t){return this.attr("x",t)}y(t){return this.attr("y",t)}}L(Ct,{bbox:function(){const t=ht(this,(t=>t.getBBox()),(t=>{try{const e=t.clone().addTo(st().svg).show(),r=e.node.getBBox();return e.remove(),r}catch(e){throw new Error(`Getting bbox of element "${t.node.nodeName}" is not possible: ${e.toString()}`)}}));return new at(t)},rbox:function(t){const e=ht(this,(t=>t.getBoundingClientRect()),(t=>{throw new Error(`Getting rbox of element "${t.node.nodeName}" is not possible`)})),r=new at(e);return t?r.transform(t.screenCTM().inverseO()):r.addOffset()},inside:function(t,e){const r=this.bbox();return t>r.x&&e>r.y&&t<r.x+r.width&&e<r.y+r.height},point:function(t,e){return new rt(t,e).transformO(this.screenCTM().inverseO())},ctm:function(){return new it(this.node.getCTM())},screenCTM:function(){try{if("function"==typeof this.isRoot&&!this.isRoot()){const t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new it(e)}return new it(this.node.getScreenCTM())}catch(t){return console.warn(`Cannot get CTM from SVG node ${this.node.nodeName}. Is the element rendered?`),new it}}}),D(Ct,"Element");const Pt={stroke:["color","width","opacity","linecap","linejoin","miterlimit","dasharray","dashoffset"],fill:["color","opacity","rule"],prefix:function(t,e){return"color"===e?t:t+"-"+e}};["fill","stroke"].forEach((function(t){const e={};let r;e[t]=function(e){if(void 0===e)return this.attr(t);if("string"==typeof e||e instanceof et||et.isRgb(e)||e instanceof Ct)this.attr(t,e);else for(r=Pt[t].length-1;r>=0;r--)null!=e[Pt[t][r]]&&this.attr(Pt.prefix(t,Pt[t][r]),e[Pt[t][r]]);return this},l(["Element","Runner"],e)})),l(["Element","Runner"],{matrix:function(t,e,r,n,i,s){return null==t?new it(this):this.attr("transform",new it(t,e,r,n,i,s))},rotate:function(t,e,r){return this.transform({rotate:t,ox:e,oy:r},!0)},skew:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({skew:t,ox:e,oy:r},!0):this.transform({skew:[t,e],ox:r,oy:n},!0)},shear:function(t,e,r){return this.transform({shear:t,ox:e,oy:r},!0)},scale:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({scale:t,ox:e,oy:r},!0):this.transform({scale:[t,e],ox:r,oy:n},!0)},translate:function(t,e){return this.transform({translate:[t,e]},!0)},relative:function(t,e){return this.transform({relative:[t,e]},!0)},flip:function(t="both",e="center"){return-1==="xybothtrue".indexOf(t)&&(e=t,t="both"),this.transform({flip:t,origin:e},!0)},opacity:function(t){return this.attr("opacity",t)}}),l("radius",{radius:function(t,e=t){return"radialGradient"===(this._element||this).type?this.attr("r",new St(t)):this.rx(t).ry(e)}}),l("Path",{length:function(){return this.node.getTotalLength()},pointAt:function(t){return new rt(this.node.getPointAtLength(t))}}),l(["Element","Runner"],{font:function(t,e){if("object"==typeof t){for(e in t)this.font(e,t[e]);return this}return"leading"===t?this.leading(e):"anchor"===t?this.attr("text-anchor",e):"size"===t||"family"===t||"weight"===t||"stretch"===t||"variant"===t||"style"===t?this.attr("font-"+t,e):this.attr(t,e)}}),l("Element",["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","touchstart","touchmove","touchleave","touchend","touchcancel","contextmenu","wheel","pointerdown","pointermove","pointerup","pointerleave","pointercancel"].reduce((function(t,e){return t[e]=function(t){return null===t?this.off(e):this.on(e,t),this},t}),{})),l("Element",{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(q).slice(0,-1).map((function(t){const e=t.trim().split("(");return[e[0],e[1].split(Q).map((function(t){return parseFloat(t)}))]})).reverse().reduce((function(t,e){return"matrix"===e[0]?t.lmultiply(it.fromArray(e[1])):t[e[0]].apply(t,e[1])}),new it)},toParent:function(t,e){if(this===t)return this;if(w(this.node))return this.addTo(t,e);const r=this.screenCTM(),n=t.screenCTM().inverse();return this.addTo(t,e).untransform().transform(n.multiply(r)),this},toRoot:function(t){return this.toParent(this.root(),t)},transform:function(t,e){if(null==t||"string"==typeof t){const e=new it(this).decompose();return null==t?e:e[t]}it.isMatrixLike(t)||(t={...t,origin:y(t,this)});const r=new it(!0===e?this:e||!1).transform(t);return this.attr("transform",r)}});class At extends Ct{flatten(){return this.each((function(){if(this instanceof At)return this.flatten().ungroup()})),this}ungroup(t=this.parent(),e=t.index(this)){return e=-1===e?t.children().length:e,this.each((function(r,n){return n[n.length-r-1].toParent(t,e)})),this.remove()}}D(At,"Container");class Et extends At{constructor(t,e=t){super(E("defs",t),e)}flatten(){return this}ungroup(){return this}}D(Et,"Defs");class Tt extends Ct{}function jt(t){return this.attr("rx",t)}function Dt(t){return this.attr("ry",t)}function kt(t){return null==t?this.cx()-this.rx():this.cx(t+this.rx())}function Bt(t){return null==t?this.cy()-this.ry():this.cy(t+this.ry())}function It(t){return this.attr("cx",t)}function Lt(t){return this.attr("cy",t)}function Vt(t){return null==t?2*this.rx():this.rx(new St(t).divide(2))}function Ft(t){return null==t?2*this.ry():this.ry(new St(t).divide(2))}D(Tt,"Shape");class Rt extends Tt{constructor(t,e=t){super(E("ellipse",t),e)}size(t,e){const r=g(this,t,e);return this.rx(new St(r.width).divide(2)).ry(new St(r.height).divide(2))}}L(Rt,t),l("Container",{ellipse:V((function(t=0,e=t){return this.put(new Rt).size(t,e).move(0,0)}))}),D(Rt,"Ellipse");class zt extends Nt{constructor(t=M.document.createDocumentFragment()){super(t)}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){const t=new Nt(P("wrapper",r));return t.add(this.node.cloneNode(!0)),t.xml(!1,r)}return super.xml(t,!1,r)}}D(zt,"Fragment");const Xt=zt;function qt(t,e){return"radialGradient"===(this._element||this).type?this.attr({fx:new St(t),fy:new St(e)}):this.attr({x1:new St(t),y1:new St(e)})}function Gt(t,e){return"radialGradient"===(this._element||this).type?this.attr({cx:new St(t),cy:new St(e)}):this.attr({x2:new St(t),y2:new St(e)})}class Yt extends At{constructor(t,e){super(E(t+"Gradient","string"==typeof t?null:t),e)}attr(t,e,r){return"transform"===t&&(t="gradientTransform"),super.attr(t,e,r)}bbox(){return new at}targets(){return dt("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}}L(Yt,e),l({Container:{gradient(...t){return this.defs().gradient(...t)}},Defs:{gradient:V((function(t,e){return this.put(new Yt(t)).update(e)}))}}),D(Yt,"Gradient");class Ut extends At{constructor(t,e=t){super(E("pattern",t),e)}attr(t,e,r){return"transform"===t&&(t="patternTransform"),super.attr(t,e,r)}bbox(){return new at}targets(){return dt("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}}l({Container:{pattern(...t){return this.defs().pattern(...t)}},Defs:{pattern:V((function(t,e,r){return this.put(new Ut).update(r).attr({x:0,y:0,width:t,height:e,patternUnits:"userSpaceOnUse"})}))}}),D(Ut,"Pattern");class Ht extends Tt{constructor(t,e=t){super(E("image",t),e)}load(t,e){if(!t)return this;const r=new M.window.Image;return yt(r,"load",(function(t){const n=this.parent(Ut);0===this.width()&&0===this.height()&&this.size(r.width,r.height),n instanceof Ut&&0===n.width()&&0===n.height()&&n.size(this.width(),this.height()),"function"==typeof e&&e.call(this,t)}),this),yt(r,"load error",(function(){bt(r)})),this.attr("href",r.src=t,S)}}var $t;$t=function(t,e,r){return"fill"!==t&&"stroke"!==t||W.test(e)&&(e=r.root().defs().image(e)),e instanceof Ht&&(e=r.root().defs().pattern(0,0,(t=>{t.add(e)}))),e},Ot.push($t),l({Container:{image:V((function(t,e){return this.put(new Ht).size(0,0).load(t,e)}))}}),D(Ht,"Image");class Wt extends _t{bbox(){let t=-1/0,e=-1/0,r=1/0,n=1/0;return this.forEach((function(i){t=Math.max(i[0],t),e=Math.max(i[1],e),r=Math.min(i[0],r),n=Math.min(i[1],n)})),new at(r,n,t-r,e-n)}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r=this.length-1;r>=0;r--)this[r]=[this[r][0]+t,this[r][1]+e];return this}parse(t=[0,0]){const e=[];(t=t instanceof Array?Array.prototype.concat.apply([],t):t.trim().split(Q).map(parseFloat)).length%2!=0&&t.pop();for(let r=0,n=t.length;r<n;r+=2)e.push([t[r],t[r+1]]);return e}size(t,e){let r;const n=this.bbox();for(r=this.length-1;r>=0;r--)n.width&&(this[r][0]=(this[r][0]-n.x)*t/n.width+n.x),n.height&&(this[r][1]=(this[r][1]-n.y)*e/n.height+n.y);return this}toLine(){return{x1:this[0][0],y1:this[0][1],x2:this[1][0],y2:this[1][1]}}toString(){const t=[];for(let e=0,r=this.length;e<r;e++)t.push(this[e].join(","));return t.join(" ")}transform(t){return this.clone().transformO(t)}transformO(t){it.isMatrixLike(t)||(t=new it(t));for(let e=this.length;e--;){const[r,n]=this[e];this[e][0]=t.a*r+t.c*n+t.e,this[e][1]=t.b*r+t.d*n+t.f}return this}}const Qt=Wt;function Jt(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}function Zt(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}function Kt(t){const e=this.bbox();return null==t?e.width:this.size(t,e.height)}function te(t){const e=this.bbox();return null==t?e.height:this.size(e.width,t)}class ee extends Tt{constructor(t,e=t){super(E("line",t),e)}array(){return new Wt([[this.attr("x1"),this.attr("y1")],[this.attr("x2"),this.attr("y2")]])}move(t,e){return this.attr(this.array().move(t,e).toLine())}plot(t,e,r,n){return null==t?this.array():(t=void 0!==e?{x1:t,y1:e,x2:r,y2:n}:new Wt(t).toLine(),this.attr(t))}size(t,e){const r=g(this,t,e);return this.attr(this.array().size(r.width,r.height).toLine())}}L(ee,i),l({Container:{line:V((function(...t){return ee.prototype.plot.apply(this.put(new ee),null!=t[0]?t:[0,0,0,0])}))}}),D(ee,"Line");class re extends At{constructor(t,e=t){super(E("marker",t),e)}height(t){return this.attr("markerHeight",t)}orient(t){return this.attr("orient",t)}ref(t,e){return this.attr("refX",t).attr("refY",e)}toString(){return"url(#"+this.id()+")"}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}width(t){return this.attr("markerWidth",t)}}function ne(t,e){return function(r){return null==r?this[t]:(this[t]=r,e&&e.call(this),this)}}l({Container:{marker(...t){return this.defs().marker(...t)}},Defs:{marker:V((function(t,e,r){return this.put(new re).size(t,e).ref(t/2,e/2).viewbox(0,0,t,e).attr("orient","auto").update(r)}))},marker:{marker(t,e,r,n){let i=["marker"];return"all"!==t&&i.push(t),i=i.join("-"),t=arguments[1]instanceof re?arguments[1]:this.defs().marker(e,r,n),this.attr(i,t)}}}),D(re,"Marker");const ie={"-":function(t){return t},"<>":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)},bezier:function(t,e,r,n){return function(i){return i<0?t>0?e/t*i:r>0?n/r*i:0:i>1?r<1?(1-n)/(1-r)*i+(n-r)/(1-r):t<1?(1-e)/(1-t)*i+(e-t)/(1-t):1:3*i*(1-i)**2*e+3*i**2*(1-i)*n+i**3}},steps:function(t,e="end"){e=e.split("-").reverse()[0];let r=t;return"none"===e?--r:"both"===e&&++r,(n,i=!1)=>{let s=Math.floor(n*t);const o=n*s%1==0;return"start"!==e&&"both"!==e||++s,i&&o&&--s,n>=0&&s<0&&(s=0),n<=1&&s>r&&(s=r),s/r}}};class se{done(){return!1}}class oe extends se{constructor(t=">"){super(),this.ease=ie[t]||t}step(t,e,r){return"number"!=typeof t?r<1?t:e:t+(e-t)*this.ease(r)}}class ae extends se{constructor(t){super(),this.stepper=t}done(t){return t.done}step(t,e,r,n){return this.stepper(t,e,r,n)}}function he(){const t=(this._duration||500)/1e3,e=this._overshoot||0,r=Math.PI,n=Math.log(e/100+1e-10),i=-n/Math.sqrt(r*r+n*n),s=3.9/(i*t);this.d=2*i*s,this.k=s*s}L(class extends ae{constructor(t=500,e=0){super(),this.duration(t).overshoot(e)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;r>100&&(r=16),r/=1e3;const i=n.velocity||0,s=-this.d*i-this.k*(t-e),o=t+i*r+s*r*r/2;return n.velocity=i+s*r,n.done=Math.abs(e-o)+Math.abs(i)<.002,n.done?e:o}},{duration:ne("_duration",he),overshoot:ne("_overshoot",he)}),L(class extends ae{constructor(t=.1,e=.01,r=0,n=1e3){super(),this.p(t).i(e).d(r).windup(n)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;const i=e-t;let s=(n.integral||0)+i*r;const o=(i-(n.error||0))/r,a=this._windup;return!1!==a&&(s=Math.max(-a,Math.min(s,a))),n.error=i,n.integral=s,n.done=Math.abs(i)<.001,n.done?e:t+(this.P*i+this.I*s+this.D*o)}},{windup:ne("_windup"),p:ne("P"),i:ne("I"),d:ne("D")});const ue={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0},le={M:function(t,e,r){return e.x=r.x=t[0],e.y=r.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},S:function(t,e){return e.x=t[2],e.y=t[3],["S",t[0],t[1],t[2],t[3]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},T:function(t,e){return e.x=t[0],e.y=t[1],["T",t[0],t[1]]},Z:function(t,e,r){return e.x=r.x,e.y=r.y,["Z"]},A:function(t,e){return e.x=t[5],e.y=t[6],["A",t[0],t[1],t[2],t[3],t[4],t[5],t[6]]}},ce="mlhvqtcsaz".split("");for(let t=0,e=ce.length;t<e;++t)le[ce[t]]=function(t){return function(e,r,n){if("H"===t)e[0]=e[0]+r.x;else if("V"===t)e[0]=e[0]+r.y;else if("A"===t)e[5]=e[5]+r.x,e[6]=e[6]+r.y;else for(let t=0,n=e.length;t<n;++t)e[t]=e[t]+(t%2?r.y:r.x);return le[t](e,r,n)}}(ce[t].toUpperCase());function de(t){return t.segment.length&&t.segment.length-1===ue[t.segment[0].toUpperCase()]}function fe(t,e){t.inNumber&&me(t,!1);const r=J.test(e);if(r)t.segment=[e];else{const e=t.lastCommand,r=e.toLowerCase(),n=e===r;t.segment=["m"===r?n?"l":"L":e]}return t.inSegment=!0,t.lastCommand=t.segment[0],r}function me(t,e){if(!t.inNumber)throw new Error("Parser Error");t.number&&t.segment.push(parseFloat(t.number)),t.inNumber=e,t.number="",t.pointSeen=!1,t.hasExponent=!1,de(t)&&pe(t)}function pe(t){t.inSegment=!1,t.absolute&&(t.segment=function(t){const e=t.segment[0];return le[e](t.segment.slice(1),t.p,t.p0)}(t)),t.segments.push(t.segment)}function ge(t){if(!t.segment.length)return!1;const e="A"===t.segment[0].toUpperCase(),r=t.segment.length;return e&&(4===r||5===r)}function ye(t){return"E"===t.lastToken.toUpperCase()}const be=new Set([" ",",","\t","\n","\r","\f"]);class we extends _t{bbox(){return st().path.setAttribute("d",this.toString()),new at(st.nodes.path.getBBox())}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r,n=this.length-1;n>=0;n--)r=this[n][0],"M"===r||"L"===r||"T"===r?(this[n][1]+=t,this[n][2]+=e):"H"===r?this[n][1]+=t:"V"===r?this[n][1]+=e:"C"===r||"S"===r||"Q"===r?(this[n][1]+=t,this[n][2]+=e,this[n][3]+=t,this[n][4]+=e,"C"===r&&(this[n][5]+=t,this[n][6]+=e)):"A"===r&&(this[n][6]+=t,this[n][7]+=e);return this}parse(t="M0 0"){return Array.isArray(t)&&(t=Array.prototype.concat.apply([],t).toString()),function(t,e=!0){let r=0,n="";const i={segment:[],inNumber:!1,number:"",lastToken:"",inSegment:!1,segments:[],pointSeen:!1,hasExponent:!1,absolute:e,p0:new rt,p:new rt};for(;i.lastToken=n,n=t.charAt(r++);)if(i.inSegment||!fe(i,n))if("."!==n)if(isNaN(parseInt(n)))if(be.has(n))i.inNumber&&me(i,!1);else if("-"!==n&&"+"!==n)if("E"!==n.toUpperCase()){if(J.test(n)){if(i.inNumber)me(i,!1);else{if(!de(i))throw new Error("parser Error");pe(i)}--r}}else i.number+=n,i.hasExponent=!0;else{if(i.inNumber&&!ye(i)){me(i,!1),--r;continue}i.number+=n,i.inNumber=!0}else{if("0"===i.number||ge(i)){i.inNumber=!0,i.number=n,me(i,!0);continue}i.inNumber=!0,i.number+=n}else{if(i.pointSeen||i.hasExponent){me(i,!1),--r;continue}i.inNumber=!0,i.pointSeen=!0,i.number+=n}return i.inNumber&&me(i,!1),i.inSegment&&de(i)&&pe(i),i.segments}(t)}size(t,e){const r=this.bbox();let n,i;for(r.width=0===r.width?1:r.width,r.height=0===r.height?1:r.height,n=this.length-1;n>=0;n--)i=this[n][0],"M"===i||"L"===i||"T"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y):"H"===i?this[n][1]=(this[n][1]-r.x)*t/r.width+r.x:"V"===i?this[n][1]=(this[n][1]-r.y)*e/r.height+r.y:"C"===i||"S"===i||"Q"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y,this[n][3]=(this[n][3]-r.x)*t/r.width+r.x,this[n][4]=(this[n][4]-r.y)*e/r.height+r.y,"C"===i&&(this[n][5]=(this[n][5]-r.x)*t/r.width+r.x,this[n][6]=(this[n][6]-r.y)*e/r.height+r.y)):"A"===i&&(this[n][1]=this[n][1]*t/r.width,this[n][2]=this[n][2]*e/r.height,this[n][6]=(this[n][6]-r.x)*t/r.width+r.x,this[n][7]=(this[n][7]-r.y)*e/r.height+r.y);return this}toString(){return function(t){let e="";for(let r=0,n=t.length;r<n;r++)e+=t[r][0],null!=t[r][1]&&(e+=t[r][1],null!=t[r][2]&&(e+=" ",e+=t[r][2],null!=t[r][3]&&(e+=" ",e+=t[r][3],e+=" ",e+=t[r][4],null!=t[r][5]&&(e+=" ",e+=t[r][5],e+=" ",e+=t[r][6],null!=t[r][7]&&(e+=" ",e+=t[r][7])))));return e+" "}(this)}}const xe=t=>{const e=typeof t;return"number"===e?St:"string"===e?et.isColor(t)?et:Q.test(t)?J.test(t)?we:_t:F.test(t)?St:_e:Ne.indexOf(t.constructor)>-1?t.constructor:Array.isArray(t)?_t:"object"===e?Oe:_e};class ve{constructor(t){this._stepper=t||new oe("-"),this._from=null,this._to=null,this._type=null,this._context=null,this._morphObj=null}at(t){return this._morphObj.morph(this._from,this._to,t,this._stepper,this._context)}done(){return this._context.map(this._stepper.done).reduce((function(t,e){return t&&e}),!0)}from(t){return null==t?this._from:(this._from=this._set(t),this)}stepper(t){return null==t?this._stepper:(this._stepper=t,this)}to(t){return null==t?this._to:(this._to=this._set(t),this)}type(t){return null==t?this._type:(this._type=t,this)}_set(t){this._type||this.type(xe(t));let e=new this._type(t);return this._type===et&&(e=this._to?e[this._to[4]]():this._from?e[this._from[4]]():e),this._type===Oe&&(e=this._to?e.align(this._to):this._from?e.align(this._from):e),e=e.toConsumable(),this._morphObj=this._morphObj||new this._type,this._context=this._context||Array.apply(null,Array(e.length)).map(Object).map((function(t){return t.done=!0,t})),e}}class _e{constructor(...t){this.init(...t)}init(t){return t=Array.isArray(t)?t[0]:t,this.value=t,this}toArray(){return[this.value]}valueOf(){return this.value}}class Se{constructor(...t){this.init(...t)}init(t){return Array.isArray(t)&&(t={scaleX:t[0],scaleY:t[1],shear:t[2],rotate:t[3],translateX:t[4],translateY:t[5],originX:t[6],originY:t[7]}),Object.assign(this,Se.defaults,t),this}toArray(){const t=this;return[t.scaleX,t.scaleY,t.shear,t.rotate,t.translateX,t.translateY,t.originX,t.originY]}}Se.defaults={scaleX:1,scaleY:1,shear:0,rotate:0,translateX:0,translateY:0,originX:0,originY:0};const Me=(t,e)=>t[0]<e[0]?-1:t[0]>e[0]?1:0;class Oe{constructor(...t){this.init(...t)}align(t){const e=this.values;for(let r=0,n=e.length;r<n;++r){if(e[r+1]===t[r+1]){if(e[r+1]===et&&t[r+7]!==e[r+7]){const e=t[r+7],n=new et(this.values.splice(r+3,5))[e]().toArray();this.values.splice(r+3,0,...n)}r+=e[r+2]+2;continue}if(!t[r+1])return this;const n=(new t[r+1]).toArray(),i=e[r+2]+3;e.splice(r,i,t[r],t[r+1],t[r+2],...n),r+=e[r+2]+2}return this}init(t){if(this.values=[],Array.isArray(t))return void(this.values=t.slice());t=t||{};const e=[];for(const r in t){const n=xe(t[r]),i=new n(t[r]).toArray();e.push([r,n,i.length,...i])}return e.sort(Me),this.values=e.reduce(((t,e)=>t.concat(e)),[]),this}toArray(){return this.values}valueOf(){const t={},e=this.values;for(;e.length;){const r=e.shift(),n=e.shift(),i=e.shift(),s=e.splice(0,i);t[r]=new n(s)}return t}}const Ne=[_e,Se,Oe];class Ce extends Tt{constructor(t,e=t){super(E("path",t),e)}array(){return this._array||(this._array=new we(this.attr("d")))}clear(){return delete this._array,this}height(t){return null==t?this.bbox().height:this.size(this.bbox().width,t)}move(t,e){return this.attr("d",this.array().move(t,e))}plot(t){return null==t?this.array():this.clear().attr("d","string"==typeof t?t:this._array=new we(t))}size(t,e){const r=g(this,t,e);return this.attr("d",this.array().size(r.width,r.height))}width(t){return null==t?this.bbox().width:this.size(t,this.bbox().height)}x(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}y(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}}function Pe(){return this._array||(this._array=new Wt(this.attr("points")))}function Ae(){return delete this._array,this}function Ee(t,e){return this.attr("points",this.array().move(t,e))}function Te(t){return null==t?this.array():this.clear().attr("points","string"==typeof t?t:this._array=new Wt(t))}function je(t,e){const r=g(this,t,e);return this.attr("points",this.array().size(r.width,r.height))}Ce.prototype.MorphArray=we,l({Container:{path:V((function(t){return this.put(new Ce).plot(t||new we)}))}}),D(Ce,"Path");class De extends Tt{constructor(t,e=t){super(E("polygon",t),e)}}l({Container:{polygon:V((function(t){return this.put(new De).plot(t||new Wt)}))}}),L(De,i),L(De,s),D(De,"Polygon");class ke extends Tt{constructor(t,e=t){super(E("polyline",t),e)}}l({Container:{polyline:V((function(t){return this.put(new ke).plot(t||new Wt)}))}}),L(ke,i),L(ke,s),D(ke,"Polyline");class Be extends Tt{constructor(t,e=t){super(E("rect",t),e)}}L(Be,{rx:jt,ry:Dt}),l({Container:{rect:V((function(t,e){return this.put(new Be).size(t,e)}))}}),D(Be,"Rect");class Ie{constructor(){this._first=null,this._last=null}first(){return this._first&&this._first.value}last(){return this._last&&this._last.value}push(t){const e=void 0!==t.next?t:{value:t,next:null,prev:null};return this._last?(e.prev=this._last,this._last.next=e,this._last=e):(this._last=e,this._first=e),e}remove(t){t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t===this._last&&(this._last=t.prev),t===this._first&&(this._first=t.next),t.prev=null,t.next=null}shift(){const t=this._first;return t?(this._first=t.next,this._first&&(this._first.prev=null),this._last=this._first?this._last:null,t.value):null}}const Le={nextDraw:null,frames:new Ie,timeouts:new Ie,immediates:new Ie,timer:()=>M.window.performance||M.window.Date,transforms:[],frame(t){const e=Le.frames.push({run:t});return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),e},timeout(t,e){e=e||0;const r=Le.timer().now()+e,n=Le.timeouts.push({run:t,time:r});return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),n},immediate(t){const e=Le.immediates.push(t);return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),e},cancelFrame(t){null!=t&&Le.frames.remove(t)},clearTimeout(t){null!=t&&Le.timeouts.remove(t)},cancelImmediate(t){null!=t&&Le.immediates.remove(t)},_draw(t){let e=null;const r=Le.timeouts.last();for(;(e=Le.timeouts.shift())&&(t>=e.time?e.run():Le.timeouts.push(e),e!==r););let n=null;const i=Le.frames.last();for(;n!==i&&(n=Le.frames.shift());)n.run(t);let s=null;for(;s=Le.immediates.shift();)s();Le.nextDraw=Le.timeouts.first()||Le.frames.first()?M.window.requestAnimationFrame(Le._draw):null}},Ve=Le,Fe=function(t){const e=t.start,r=t.runner.duration();return{start:e,duration:r,end:e+r,runner:t.runner}},Re=function(){const t=M.window;return(t.performance||t.Date).now()};class ze extends wt{constructor(t=Re){super(),this._timeSource=t,this.terminate()}active(){return!!this._nextFrame}finish(){return this.time(this.getEndTimeOfTimeline()+1),this.pause()}getEndTime(){const t=this.getLastRunnerInfo(),e=t?t.runner.duration():0;return(t?t.start:this._time)+e}getEndTimeOfTimeline(){const t=this._runners.map((t=>t.start+t.runner.duration()));return Math.max(0,...t)}getLastRunnerInfo(){return this.getRunnerInfoById(this._lastRunnerId)}getRunnerInfoById(t){return this._runners[this._runnerIds.indexOf(t)]||null}pause(){return this._paused=!0,this._continue()}persist(t){return null==t?this._persist:(this._persist=t,this)}play(){return this._paused=!1,this.updateTime()._continue()}reverse(t){const e=this.speed();if(null==t)return this.speed(-e);const r=Math.abs(e);return this.speed(t?-r:r)}schedule(t,e,r){if(null==t)return this._runners.map(Fe);let n=0;const i=this.getEndTime();if(e=e||0,null==r||"last"===r||"after"===r)n=i;else if("absolute"===r||"start"===r)n=e,e=0;else if("now"===r)n=this._time;else if("relative"===r){const r=this.getRunnerInfoById(t.id);r&&(n=r.start+e,e=0)}else{if("with-last"!==r)throw new Error('Invalid value for the "when" parameter');{const t=this.getLastRunnerInfo();n=t?t.start:this._time}}t.unschedule(),t.timeline(this);const s=t.persist(),o={persist:null===s?this._persist:s,start:n+e,runner:t};return this._lastRunnerId=t.id,this._runners.push(o),this._runners.sort(((t,e)=>t.start-e.start)),this._runnerIds=this._runners.map((t=>t.runner.id)),this.updateTime()._continue(),this}seek(t){return this.time(this._time+t)}source(t){return null==t?this._timeSource:(this._timeSource=t,this)}speed(t){return null==t?this._speed:(this._speed=t,this)}stop(){return this.time(0),this.pause()}time(t){return null==t?this._time:(this._time=t,this._continue(!0))}unschedule(t){const e=this._runnerIds.indexOf(t.id);return e<0||(this._runners.splice(e,1),this._runnerIds.splice(e,1),t.timeline(null)),this}updateTime(){return this.active()||(this._lastSourceTime=this._timeSource()),this}_continue(t=!1){return Ve.cancelFrame(this._nextFrame),this._nextFrame=null,t?this._stepImmediate():(this._paused||(this._nextFrame=Ve.frame(this._step)),this)}_stepFn(t=!1){const e=this._timeSource();let r=e-this._lastSourceTime;t&&(r=0);const n=this._speed*r+(this._time-this._lastStepTime);this._lastSourceTime=e,t||(this._time+=n,this._time=this._time<0?0:this._time),this._lastStepTime=this._time,this.fire("time",this._time);for(let t=this._runners.length;t--;){const e=this._runners[t],r=e.runner;this._time-e.start<=0&&r.reset()}let i=!1;for(let t=0,e=this._runners.length;t<e;t++){const r=this._runners[t],s=r.runner;let o=n;const a=this._time-r.start;a<=0?i=!0:(a<o&&(o=a),s.active()&&(s.step(o).done?!0!==r.persist&&s.duration()-s.time()+this._time+r.persist<this._time&&(s.unschedule(),--t,--e):i=!0))}return i&&!(this._speed<0&&0===this._time)||this._runnerIds.length&&this._speed<0&&this._time>0?this._continue():(this.pause(),this.fire("finished")),this}terminate(){this._startTime=0,this._speed=1,this._persist=0,this._nextFrame=null,this._paused=!0,this._runners=[],this._runnerIds=[],this._lastRunnerId=-1,this._time=0,this._lastSourceTime=0,this._lastStepTime=0,this._step=this._stepFn.bind(this,!1),this._stepImmediate=this._stepFn.bind(this,!0)}}l({Element:{timeline:function(t){return null==t?(this._timeline=this._timeline||new ze,this._timeline):(this._timeline=t,this)}}});class Xe extends wt{constructor(t){super(),this.id=Xe.id++,t="function"==typeof(t=null==t?400:t)?new ae(t):t,this._element=null,this._timeline=null,this.done=!1,this._queue=[],this._duration="number"==typeof t&&t,this._isDeclarative=t instanceof ae,this._stepper=this._isDeclarative?t:new oe,this._history={},this.enabled=!0,this._time=0,this._lastTime=0,this._reseted=!0,this.transforms=new it,this.transformId=1,this._haveReversed=!1,this._reverse=!1,this._loopsDone=0,this._swing=!1,this._wait=0,this._times=1,this._frameId=null,this._persist=!!this._isDeclarative||null}static sanitise(t,e,r){let n=1,i=!1,s=0;return e=e??0,r=r||"last","object"!=typeof(t=t??400)||t instanceof se||(e=t.delay??e,r=t.when??r,i=t.swing||i,n=t.times??n,s=t.wait??s,t=t.duration??400),{duration:t,delay:e,swing:i,times:n,wait:s,when:r}}active(t){return null==t?this.enabled:(this.enabled=t,this)}addTransform(t){return this.transforms.lmultiplyO(t),this}after(t){return this.on("finished",t)}animate(t,e,r){const n=Xe.sanitise(t,e,r),i=new Xe(n.duration);return this._timeline&&i.timeline(this._timeline),this._element&&i.element(this._element),i.loop(n).schedule(n.delay,n.when)}clearTransform(){return this.transforms=new it,this}clearTransformsFromQueue(){this.done&&this._timeline&&this._timeline._runnerIds.includes(this.id)||(this._queue=this._queue.filter((t=>!t.isTransform)))}delay(t){return this.animate(0,t)}duration(){return this._times*(this._wait+this._duration)-this._wait}during(t){return this.queue(null,t)}ease(t){return this._stepper=new oe(t),this}element(t){return null==t?this._element:(this._element=t,t._prepareRunner(),this)}finish(){return this.step(1/0)}loop(t,e,r){return"object"==typeof t&&(e=t.swing,r=t.wait,t=t.times),this._times=t||1/0,this._swing=e||!1,this._wait=r||0,!0===this._times&&(this._times=1/0),this}loops(t){const e=this._duration+this._wait;if(null==t){const t=Math.floor(this._time/e),r=(this._time-t*e)/this._duration;return Math.min(t+r,this._times)}const r=t%1,n=e*Math.floor(t)+this._duration*r;return this.time(n)}persist(t){return null==t?this._persist:(this._persist=t,this)}position(t){const e=this._time,r=this._duration,n=this._wait,i=this._times,s=this._swing,o=this._reverse;let a;if(null==t){const t=function(t){const e=s*Math.floor(t%(2*(n+r))/(n+r)),i=e&&!o||!e&&o,a=Math.pow(-1,i)*(t%(n+r))/r+i;return Math.max(Math.min(a,1),0)},h=i*(n+r)-n;return a=e<=0?Math.round(t(1e-5)):e<h?t(e):Math.round(t(h-1e-5)),a}const h=Math.floor(this.loops()),u=s&&h%2==0;return a=h+(u&&!o||o&&u?t:1-t),this.loops(a)}progress(t){return null==t?Math.min(1,this._time/this.duration()):this.time(t*this.duration())}queue(t,e,r,n){return this._queue.push({initialiser:t||xt,runner:e||xt,retarget:r,isTransform:n,initialised:!1,finished:!1}),this.timeline()&&this.timeline()._continue(),this}reset(){return this._reseted||(this.time(0),this._reseted=!0),this}reverse(t){return this._reverse=null==t?!this._reverse:t,this}schedule(t,e,r){if(t instanceof ze||(r=e,e=t,t=this.timeline()),!t)throw Error("Runner cannot be scheduled without timeline");return t.schedule(this,e,r),this}step(t){if(!this.enabled)return this;t=null==t?16:t,this._time+=t;const e=this.position(),r=this._lastPosition!==e&&this._time>=0;this._lastPosition=e;const n=this.duration(),i=this._lastTime<=0&&this._time>0,s=this._lastTime<n&&this._time>=n;this._lastTime=this._time,i&&this.fire("start",this);const o=this._isDeclarative;this.done=!o&&!s&&this._time>=n,this._reseted=!1;let a=!1;return(r||o)&&(this._initialise(r),this.transforms=new it,a=this._run(o?t:e),this.fire("step",this)),this.done=this.done||a&&o,s&&this.fire("finished",this),this}time(t){if(null==t)return this._time;const e=t-this._time;return this.step(e),this}timeline(t){return void 0===t?this._timeline:(this._timeline=t,this)}unschedule(){const t=this.timeline();return t&&t.unschedule(this),this}_initialise(t){if(t||this._isDeclarative)for(let e=0,r=this._queue.length;e<r;++e){const r=this._queue[e],n=this._isDeclarative||!r.initialised&&t;t=!r.finished,n&&t&&(r.initialiser.call(this),r.initialised=!0)}}_rememberMorpher(t,e){if(this._history[t]={morpher:e,caller:this._queue[this._queue.length-1]},this._isDeclarative){const t=this.timeline();t&&t.play()}}_run(t){let e=!0;for(let r=0,n=this._queue.length;r<n;++r){const n=this._queue[r],i=n.runner.call(this,t);n.finished=n.finished||!0===i,e=e&&n.finished}return e}_tryRetarget(t,e,r){if(this._history[t]){if(!this._history[t].caller.initialised){const e=this._queue.indexOf(this._history[t].caller);return this._queue.splice(e,1),!1}this._history[t].caller.retarget?this._history[t].caller.retarget.call(this,e,r):this._history[t].morpher.to(e),this._history[t].caller.finished=!1;const n=this.timeline();return n&&n.play(),!0}return!1}}Xe.id=0;class qe{constructor(t=new it,e=-1,r=!0){this.transforms=t,this.id=e,this.done=r}clearTransformsFromQueue(){}}L([Xe,qe],{mergeWith(t){return new qe(t.transforms.lmultiply(this.transforms),t.id)}});const Ge=(t,e)=>t.lmultiplyO(e),Ye=t=>t.transforms;function Ue(){const t=this._transformationRunners.runners.map(Ye).reduce(Ge,new it);this.transform(t),this._transformationRunners.merge(),1===this._transformationRunners.length()&&(this._frameId=null)}class He{constructor(){this.runners=[],this.ids=[]}add(t){if(this.runners.includes(t))return;const e=t.id+1;return this.runners.push(t),this.ids.push(e),this}clearBefore(t){const e=this.ids.indexOf(t+1)||1;return this.ids.splice(0,e,0),this.runners.splice(0,e,new qe).forEach((t=>t.clearTransformsFromQueue())),this}edit(t,e){const r=this.ids.indexOf(t+1);return this.ids.splice(r,1,t+1),this.runners.splice(r,1,e),this}getByID(t){return this.runners[this.ids.indexOf(t+1)]}length(){return this.ids.length}merge(){let t=null;for(let e=0;e<this.runners.length;++e){const r=this.runners[e];if(!(t&&r.done&&t.done)||r._timeline&&r._timeline._runnerIds.includes(r.id)||t._timeline&&t._timeline._runnerIds.includes(t.id))t=r;else{this.remove(r.id);const n=r.mergeWith(t);this.edit(t.id,n),t=n,--e}}return this}remove(t){const e=this.ids.indexOf(t+1);return this.ids.splice(e,1),this.runners.splice(e,1),this}}l({Element:{animate(t,e,r){const n=Xe.sanitise(t,e,r),i=this.timeline();return new Xe(n.duration).loop(n).element(this).timeline(i.play()).schedule(n.delay,n.when)},delay(t,e){return this.animate(0,t,e)},_clearTransformRunnersBefore(t){this._transformationRunners.clearBefore(t.id)},_currentTransform(t){return this._transformationRunners.runners.filter((e=>e.id<=t.id)).map(Ye).reduce(Ge,new it)},_addRunner(t){this._transformationRunners.add(t),Ve.cancelImmediate(this._frameId),this._frameId=Ve.immediate(Ue.bind(this))},_prepareRunner(){null==this._frameId&&(this._transformationRunners=(new He).add(new qe(new it(this))))}}}),L(Xe,{attr(t,e){return this.styleAttr("attr",t,e)},css(t,e){return this.styleAttr("css",t,e)},styleAttr(t,e,r){if("string"==typeof e)return this.styleAttr(t,{[e]:r});let n=e;if(this._tryRetarget(t,n))return this;let i=new ve(this._stepper).to(n),s=Object.keys(n);return this.queue((function(){i=i.from(this.element()[t](s))}),(function(e){return this.element()[t](i.at(e).valueOf()),i.done()}),(function(e){const r=Object.keys(e),o=(a=s,r.filter((t=>!a.includes(t))));var a;if(o.length){const e=this.element()[t](o),r=new Oe(i.from()).valueOf();Object.assign(r,e),i.from(r)}const h=new Oe(i.to()).valueOf();Object.assign(h,e),i.to(h),s=r,n=e})),this._rememberMorpher(t,i),this},zoom(t,e){if(this._tryRetarget("zoom",t,e))return this;let r=new ve(this._stepper).to(new St(t));return this.queue((function(){r=r.from(this.element().zoom())}),(function(t){return this.element().zoom(r.at(t),e),r.done()}),(function(t,n){e=n,r.to(t)})),this._rememberMorpher("zoom",r),this},transform(t,e,r){if(e=t.relative||e,this._isDeclarative&&!e&&this._tryRetarget("transform",t))return this;const n=it.isMatrixLike(t);r=null!=t.affine?t.affine:null!=r?r:!n;const i=new ve(this._stepper).type(r?Se:it);let s,o,a,h,u;return this.queue((function(){o=o||this.element(),s=s||y(t,o),u=new it(e?void 0:o),o._addRunner(this),e||o._clearTransformRunnersBefore(this)}),(function(l){e||this.clearTransform();const{x:c,y:d}=new rt(s).transform(o._currentTransform(this));let f=new it({...t,origin:[c,d]}),m=this._isDeclarative&&a?a:u;if(r){f=f.decompose(c,d),m=m.decompose(c,d);const t=f.rotate,e=m.rotate,r=[t-360,t,t+360],n=r.map((t=>Math.abs(t-e))),i=Math.min(...n),s=n.indexOf(i);f.rotate=r[s]}e&&(n||(f.rotate=t.rotate||0),this._isDeclarative&&h&&(m.rotate=h)),i.from(m),i.to(f);const p=i.at(l);return h=p.rotate,a=new it(p),this.addTransform(a),o._addRunner(this),i.done()}),(function(e){(e.origin||"center").toString()!==(t.origin||"center").toString()&&(s=y(e,o)),t={...e,origin:s}}),!0),this._isDeclarative&&this._rememberMorpher("transform",i),this},x(t){return this._queueNumber("x",t)},y(t){return this._queueNumber("y",t)},ax(t){return this._queueNumber("ax",t)},ay(t){return this._queueNumber("ay",t)},dx(t=0){return this._queueNumberDelta("x",t)},dy(t=0){return this._queueNumberDelta("y",t)},dmove(t,e){return this.dx(t).dy(e)},_queueNumberDelta(t,e){if(e=new St(e),this._tryRetarget(t,e))return this;const r=new ve(this._stepper).to(e);let n=null;return this.queue((function(){n=this.element()[t](),r.from(n),r.to(n+e)}),(function(e){return this.element()[t](r.at(e)),r.done()}),(function(t){r.to(n+new St(t))})),this._rememberMorpher(t,r),this},_queueObject(t,e){if(this._tryRetarget(t,e))return this;const r=new ve(this._stepper).to(e);return this.queue((function(){r.from(this.element()[t]())}),(function(e){return this.element()[t](r.at(e)),r.done()})),this._rememberMorpher(t,r),this},_queueNumber(t,e){return this._queueObject(t,new St(e))},cx(t){return this._queueNumber("cx",t)},cy(t){return this._queueNumber("cy",t)},move(t,e){return this.x(t).y(e)},amove(t,e){return this.ax(t).ay(e)},center(t,e){return this.cx(t).cy(e)},size(t,e){let r;return t&&e||(r=this._element.bbox()),t||(t=r.width/r.height*e),e||(e=r.height/r.width*t),this.width(t).height(e)},width(t){return this._queueNumber("width",t)},height(t){return this._queueNumber("height",t)},plot(t,e,r,n){if(4===arguments.length)return this.plot([t,e,r,n]);if(this._tryRetarget("plot",t))return this;const i=new ve(this._stepper).type(this._element.MorphArray).to(t);return this.queue((function(){i.from(this._element.array())}),(function(t){return this._element.plot(i.at(t)),i.done()})),this._rememberMorpher("plot",i),this},leading(t){return this._queueNumber("leading",t)},viewbox(t,e,r,n){return this._queueObject("viewbox",new at(t,e,r,n))},update(t){return"object"!=typeof t?this.update({offset:arguments[0],color:arguments[1],opacity:arguments[2]}):(null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",t.offset),this)}}),L(Xe,{rx:jt,ry:Dt,from:qt,to:Gt}),D(Xe,"Runner");class $e extends At{constructor(t,e=t){super(E("svg",t),e),this.namespace()}defs(){return this.isRoot()?T(this.node.querySelector("defs"))||this.put(new Et):this.root().defs()}isRoot(){return!this.node.parentNode||!(this.node.parentNode instanceof M.window.SVGElement)&&"#document-fragment"!==this.node.parentNode.nodeName}namespace(){return this.isRoot()?this.attr({xmlns:v,version:"1.1"}).attr("xmlns:xlink",S,_):this.root().namespace()}removeNamespace(){return this.attr({xmlns:null,version:null}).attr("xmlns:xlink",null,_).attr("xmlns:svgjs",null,_)}root(){return this.isRoot()?this:super.root()}}l({Container:{nested:V((function(){return this.put(new $e)}))}}),D($e,"Svg",!0);class We extends At{constructor(t,e=t){super(E("symbol",t),e)}}function Qe(t){return!1===this._build&&this.clear(),this.node.appendChild(M.document.createTextNode(t)),this}function Je(){return this.node.getComputedTextLength()}function Ze(t,e=this.bbox()){return null==t?e.x:this.attr("x",this.attr("x")+t-e.x)}function Ke(t,e=this.bbox()){return null==t?e.y:this.attr("y",this.attr("y")+t-e.y)}function tr(t,e,r=this.bbox()){return this.x(t,r).y(e,r)}function er(t,e=this.bbox()){return null==t?e.cx:this.attr("x",this.attr("x")+t-e.cx)}function rr(t,e=this.bbox()){return null==t?e.cy:this.attr("y",this.attr("y")+t-e.cy)}function nr(t,e,r=this.bbox()){return this.cx(t,r).cy(e,r)}function ir(t){return this.attr("x",t)}function sr(t){return this.attr("y",t)}function or(t,e){return this.ax(t).ay(e)}function ar(t){return this._build=!!t,this}l({Container:{symbol:V((function(){return this.put(new We)}))}}),D(We,"Symbol");class hr extends Tt{constructor(t,e=t){super(E("text",t),e),this.dom.leading=this.dom.leading??new St(1.3),this._rebuild=!0,this._build=!1}leading(t){return null==t?this.dom.leading:(this.dom.leading=new St(t),this.rebuild())}rebuild(t){if("boolean"==typeof t&&(this._rebuild=t),this._rebuild){const t=this;let e=0;const r=this.dom.leading;this.each((function(n){if(w(this.node))return;const i=M.window.getComputedStyle(this.node).getPropertyValue("font-size"),s=r*new St(i);this.dom.newLined&&(this.attr("x",t.attr("x")),"\n"===this.text()?e+=s:(this.attr("dy",n?s+e:0),e=0))})),this.fire("rebuild")}return this}setData(t){return this.dom=t,this.dom.leading=new St(t.leading||1.3),this}writeDataToDom(){return x(this,this.dom,{leading:1.3}),this}text(t){if(void 0===t){const e=this.node.childNodes;let r=0;t="";for(let n=0,i=e.length;n<i;++n)"textPath"===e[n].nodeName||w(e[n])?0===n&&(r=n+1):(n!==r&&3!==e[n].nodeType&&!0===T(e[n]).dom.newLined&&(t+="\n"),t+=e[n].textContent);return t}if(this.clear().build(!0),"function"==typeof t)t.call(this,this);else for(let e=0,r=(t=(t+"").split("\n")).length;e<r;e++)this.newLine(t[e]);return this.build(!1).rebuild()}}L(hr,o),l({Container:{text:V((function(t=""){return this.put(new hr).text(t)})),plain:V((function(t=""){return this.put(new hr).plain(t)}))}}),D(hr,"Text");class ur extends Tt{constructor(t,e=t){super(E("tspan",t),e),this._build=!1}dx(t){return this.attr("dx",t)}dy(t){return this.attr("dy",t)}newLine(){this.dom.newLined=!0;const t=this.parent();if(!(t instanceof hr))return this;const e=t.index(this),r=M.window.getComputedStyle(this.node).getPropertyValue("font-size"),n=t.dom.leading*new St(r);return this.dy(e?n:0).attr("x",t.x())}text(t){return null==t?this.node.textContent+(this.dom.newLined?"\n":""):("function"==typeof t?(this.clear().build(!0),t.call(this,this),this.build(!1)):this.plain(t),this)}}L(ur,o),l({Tspan:{tspan:V((function(t=""){const e=new ur;return this._build||this.clear(),this.put(e).text(t)}))},Text:{newLine:function(t=""){return this.tspan(t).newLine()}}}),D(ur,"Tspan");class lr extends Tt{constructor(t,e=t){super(E("circle",t),e)}radius(t){return this.attr("r",t)}rx(t){return this.attr("r",t)}ry(t){return this.rx(t)}size(t){return this.radius(new St(t).divide(2))}}L(lr,{x:kt,y:Bt,cx:It,cy:Lt,width:Vt,height:Ft}),l({Container:{circle:V((function(t=0){return this.put(new lr).size(t).move(0,0)}))}}),D(lr,"Circle");class cr extends At{constructor(t,e=t){super(E("clipPath",t),e)}remove(){return this.targets().forEach((function(t){t.unclip()})),super.remove()}targets(){return dt("svg [clip-path*="+this.id()+"]")}}l({Container:{clip:V((function(){return this.defs().put(new cr)}))},Element:{clipper(){return this.reference("clip-path")},clipWith(t){const e=t instanceof cr?t:this.parent().clip().add(t);return this.attr("clip-path","url(#"+e.id()+")")},unclip(){return this.attr("clip-path",null)}}}),D(cr,"ClipPath");class dr extends Ct{constructor(t,e=t){super(E("foreignObject",t),e)}}function fr(t,e){return this.children().forEach((r=>{let n;try{n=r.node instanceof M.window.SVGSVGElement?new at(r.attr(["x","y","width","height"])):r.bbox()}catch(t){return}const i=new it(r),s=i.translate(t,e).transform(i.inverse()),o=new rt(n.x,n.y).transform(s);r.move(o.x,o.y)})),this}function mr(t){return this.dmove(t,0)}function pr(t){return this.dmove(0,t)}function gr(t,e=this.bbox()){return null==t?e.height:this.size(e.width,t,e)}function yr(t=0,e=0,r=this.bbox()){const n=t-r.x,i=e-r.y;return this.dmove(n,i)}function br(t,e,r=this.bbox()){const n=g(this,t,e,r),i=n.width/r.width,s=n.height/r.height;return this.children().forEach((t=>{const e=new rt(r).transform(new it(t).inverse());t.scale(i,s,e.x,e.y)})),this}function wr(t,e=this.bbox()){return null==t?e.width:this.size(t,e.height,e)}function xr(t,e=this.bbox()){return null==t?e.x:this.move(t,e.y,e)}function vr(t,e=this.bbox()){return null==t?e.y:this.move(e.x,t,e)}l({Container:{foreignObject:V((function(t,e){return this.put(new dr).size(t,e)}))}}),D(dr,"ForeignObject");class _r extends At{constructor(t,e=t){super(E("g",t),e)}}L(_r,a),l({Container:{group:V((function(){return this.put(new _r)}))}}),D(_r,"G");class Sr extends At{constructor(t,e=t){super(E("a",t),e)}target(t){return this.attr("target",t)}to(t){return this.attr("href",t,S)}}L(Sr,a),l({Container:{link:V((function(t){return this.put(new Sr).to(t)}))},Element:{unlink(){const t=this.linker();if(!t)return this;const e=t.parent();if(!e)return this.remove();const r=e.index(t);return e.add(this,r),t.remove(),this},linkTo(t){let e=this.linker();return e||(e=new Sr,this.wrap(e)),"function"==typeof t?t.call(e,e):e.to(t),this},linker(){const t=this.parent();return t&&"a"===t.node.nodeName.toLowerCase()?t:null}}}),D(Sr,"A");class Mr extends At{constructor(t,e=t){super(E("mask",t),e)}remove(){return this.targets().forEach((function(t){t.unmask()})),super.remove()}targets(){return dt("svg [mask*="+this.id()+"]")}}l({Container:{mask:V((function(){return this.defs().put(new Mr)}))},Element:{masker(){return this.reference("mask")},maskWith(t){const e=t instanceof Mr?t:this.parent().mask().add(t);return this.attr("mask","url(#"+e.id()+")")},unmask(){return this.attr("mask",null)}}}),D(Mr,"Mask");class Or extends Ct{constructor(t,e=t){super(E("stop",t),e)}update(t){return("number"==typeof t||t instanceof St)&&(t={offset:arguments[0],color:arguments[1],opacity:arguments[2]}),null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",new St(t.offset)),this}}l({Gradient:{stop:function(t,e,r){return this.put(new Or).update(t,e,r)}}}),D(Or,"Stop");class Nr extends Ct{constructor(t,e=t){super(E("style",t),e)}addText(t=""){return this.node.textContent+=t,this}font(t,e,r={}){return this.rule("@font-face",{fontFamily:t,src:e,...r})}rule(t,e){return this.addText(function(t,e){if(!t)return"";if(!e)return t;let r=t+"{";for(const t in e)r+=t.replace(/([A-Z])/g,(function(t,e){return"-"+e.toLowerCase()}))+":"+e[t]+";";return r+="}",r}(t,e))}}l("Dom",{style(t,e){return this.put(new Nr).rule(t,e)},fontface(t,e,r){return this.put(new Nr).font(t,e,r)}}),D(Nr,"Style");class Cr extends hr{constructor(t,e=t){super(E("textPath",t),e)}array(){const t=this.track();return t?t.array():null}plot(t){const e=this.track();let r=null;return e&&(r=e.plot(t)),null==t?r:this}track(){return this.reference("href")}}l({Container:{textPath:V((function(t,e){return t instanceof hr||(t=this.text(t)),t.path(e)}))},Text:{path:V((function(t,e=!0){const r=new Cr;let n;if(t instanceof Ce||(t=this.defs().path(t)),r.attr("href","#"+t,S),e)for(;n=this.node.firstChild;)r.node.appendChild(n);return this.put(r)})),textPath(){return this.findOne("textPath")}},Path:{text:V((function(t){return t instanceof hr||(t=(new hr).addTo(this.parent()).text(t)),t.path(this)})),targets(){return dt("svg textPath").filter((t=>(t.attr("href")||"").includes(this.id())))}}}),Cr.prototype.MorphArray=we,D(Cr,"TextPath");class Pr extends Tt{constructor(t,e=t){super(E("use",t),e)}use(t,e){return this.attr("href",(e||"")+"#"+t,S)}}l({Container:{use:V((function(t,e){return this.put(new Pr).use(t,e)}))}}),D(Pr,"Use"),L([$e,We,Ht,Ut,re],c("viewbox")),L([ee,ke,De,Ce],c("marker")),L(hr,c("Text")),L(Ce,c("Path")),L(Et,c("Defs")),L([hr,ur],c("Tspan")),L([Be,Rt,Yt,Xe],c("radius")),L(wt,c("EventTarget")),L(Nt,c("Dom")),L(Ct,c("Element")),L(Tt,c("Shape")),L([At,Xt],c("Container")),L(Yt,c("Gradient")),L(Xe,c("Runner")),lt.extend([...new Set(u)]),function(t=[]){Ne.push(...[].concat(t))}([St,et,at,it,_t,Wt,we,rt]),L(Ne,{to(t){return(new ve).type(this.constructor).from(this.toArray()).to(t)},fromArray(t){return this.init(t),this},toConsumable(){return this.toArray()},morph(t,e,r,n,i){return this.fromArray(t.map((function(t,s){return n.step(t,e[s],r,i[s],i)})))}});var Ar=r(726),Er=r(854),Tr=r(731),jr=r(986);class Dr{static create(t){let e=document.createElementNS("http://www.w3.org/2000/svg","text");e.textContent=t;let r=new Dr(e);return r.assignUUID(),r.setAttributes(Dr.defaultAttributes),r}static deserialized(t,e){var r;if(!(0,Er.isNonNullObject)(t))throw new Error("Saved base must be an object.");let n=null!==(r=t.id)&&void 0!==r?r:t.textId;if(!n)throw new Error("Missing base ID.");if(!(0,Er.isString)(n))throw new Error("Base IDs must be strings.");let i=e.domNode.querySelector("#"+n);if(!i)throw new Error("Unable to find nucleobase DOM node.");if(!(i instanceof SVGTextElement))throw new Error("Nucleobase DOM node must be an SVG text element.");return new Dr(i)}constructor(t){this.domNode=t,this.centerPoint=new Tr.CenterPoint(t)}serialized(){if(!this.id)throw new Error("Nucleobase ID is falsy.");return{id:this.id}}appendTo(t){t.appendChild(this.domNode)}remove(){this.domNode.remove()}isIn(t){return t.contains(this.domNode)&&t!==this.domNode}hasParent(){return!!this.domNode.parentNode}bringToFront(){(0,Ar.bringToFront)(this.domNode)}sendToBack(){(0,Ar.sendToBack)(this.domNode)}getAttribute(t){return this.domNode.getAttribute(t)}setAttribute(t,e){this.domNode.setAttribute(t,e)}setAttributes(t){try{new hr(this.domNode).attr(t)}catch(t){}}get id(){return this.domNode.id}assignUUID(){(0,Ar.assignUUID)(this.domNode)}get textContent(){return this.domNode.textContent}set textContent(t){this.domNode.textContent=t}get bbox(){return this.domNode.getBBox()}getCenterPoint(){return this.centerPoint}setCenterPoint(t){this.centerPoint.x=t.x,this.centerPoint.y=t.y}maintainingCenterPoint(t){let{x:e,y:r}=this.centerPoint;t(),this.centerPoint.x=e,this.centerPoint.y=r}get boundingClientRect(){return this.domNode.getBoundingClientRect()}get clientCenterPoint(){let t=this.domNode.getBoundingClientRect();return{x:(0,jr.mean)([t.left,t.right]),y:(0,jr.mean)([t.top,t.bottom])}}getClientCenterPoint(){return this.clientCenterPoint}}Dr.defaultAttributes={"font-family":"Arial","font-size":"9","font-weight":"700"},Dr.defaultAttributeNames=["font-family","font-size","font-weight"]})(),n})(),t.exports=e()},726:function(t){var e;e=()=>(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t,e){for(let[r,n]of Object.entries(e))t.setAttribute(r,n)}t.r(e),t.d(e,{CoordinateSystem:()=>c,HorizontalClientScaling:()=>f,InnerXML:()=>w,OuterXML:()=>_,Scaling:()=>d,VerticalClientScaling:()=>m,assignUUID:()=>l,bringToFront:()=>p,sendToBack:()=>g,setAttributes:()=>r});const n={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};var i,s=new Uint8Array(16);function o(){if(!i&&!(i="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return i(s)}for(var a=[],h=0;h<256;++h)a.push((h+256).toString(16).slice(1));const u=function(t,e,r){if(n.randomUUID&&!e&&!t)return n.randomUUID();var i=(t=t||{}).random||(t.rng||o)();if(i[6]=15&i[6]|64,i[8]=63&i[8]|128,e){r=r||0;for(var s=0;s<16;++s)e[r+s]=i[s];return e}return function(t,e=0){return(a[t[e+0]]+a[t[e+1]]+a[t[e+2]]+a[t[e+3]]+"-"+a[t[e+4]]+a[t[e+5]]+"-"+a[t[e+6]]+a[t[e+7]]+"-"+a[t[e+8]]+a[t[e+9]]+"-"+a[t[e+10]]+a[t[e+11]]+a[t[e+12]]+a[t[e+13]]+a[t[e+14]]+a[t[e+15]]).toLowerCase()}(i)};function l(t){t.id="uuid-"+u()}class c{constructor(t){this.targetSVGDoc=t}get width(){return this.targetSVGDoc.viewBox.baseVal.width}get height(){return this.targetSVGDoc.viewBox.baseVal.height}get minX(){return this.targetSVGDoc.viewBox.baseVal.x}get maxX(){return this.minX+this.width}get minY(){return this.targetSVGDoc.viewBox.baseVal.y}get maxY(){return this.minY+this.height}get horizontalScaling(){return this.targetSVGDoc.width.baseVal.value/this.width}get verticalScaling(){return this.targetSVGDoc.height.baseVal.value/this.height}setScaling(t){this.targetSVGDoc.setAttribute("width",""+t*this.width),this.targetSVGDoc.setAttribute("height",""+t*this.height)}get clientWidth(){return this.targetSVGDoc.getBoundingClientRect().width}get clientHeight(){return this.targetSVGDoc.getBoundingClientRect().height}get horizontalClientScaling(){return this.clientWidth/this.width}get verticalClientScaling(){return this.clientHeight/this.height}get minClientX(){return this.targetSVGDoc.getBoundingClientRect().x}get minClientY(){return this.targetSVGDoc.getBoundingClientRect().y}fromClientX(t){return this.minX+(t-this.minClientX)/this.horizontalClientScaling}fromClientY(t){return this.minY+(t-this.minClientY)/this.verticalClientScaling}fromClientCoordinates(t,e){return[this.fromClientX(t),this.fromClientY(e)]}fromClientPoint(t){return{x:this.fromClientX(t.x),y:this.fromClientY(t.y)}}toClientX(t){return this.minClientX+this.horizontalClientScaling*(t-this.minX)}toClientY(t){return this.minClientY+this.verticalClientScaling*(t-this.minY)}toClientCoordinates(t,e){return[this.toClientX(t),this.toClientY(e)]}toClientPoint(t){return{x:this.toClientX(t.x),y:this.toClientY(t.y)}}}class d{constructor(t){this.targetSVGDoc=t}set(t){let e=this.targetSVGDoc.viewBox.baseVal;this.targetSVGDoc.setAttribute("width",t*e.width+"px"),this.targetSVGDoc.setAttribute("height",t*e.height+"px")}}class f{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.width/e.width}}class m{constructor(t){this.targetSVGDoc=t}get(){let t=this.targetSVGDoc.getBoundingClientRect(),e=this.targetSVGDoc.viewBox.baseVal;return t.height/e.height}}function p(t){let e=t.parentNode;e&&e.appendChild(t)}function g(t){let e=t.parentNode;e&&e.prepend(t)}var y,b=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class w{constructor(t){y.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,y,t)}toString(){return b(this,y,"f").innerHTML}set(t){b(this,y,"f").innerHTML=t}}y=new WeakMap;var x,v=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class _{constructor(t){x.set(this,void 0),function(t,e,r){if("function"==typeof e||!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");e.set(t,r)}(this,x,t)}toString(){return v(this,x,"f").outerHTML}set(t){let e=document.createElementNS("http://www.w3.org/2000/svg","svg");if(e.style.height="0px",document.body.append(e),e.innerHTML=t,!e.firstElementChild)throw new Error("Outer XML must encode an SVG element.");if(e.childNodes.length>1)throw new Error("Outer XML cannot encode multiple DOM nodes.");if(e.firstElementChild.tagName.toLowerCase()!=v(this,x,"f").tagName.toLowerCase())throw new Error("Outer XML must specify an SVG element with the same tag name as the target SVG element.");[...v(this,x,"f").attributes].forEach((t=>v(this,x,"f").removeAttribute(t.name))),[...e.firstElementChild.attributes].forEach((t=>v(this,x,"f").setAttribute(t.name,t.value))),v(this,x,"f").innerHTML=e.firstElementChild.innerHTML,e.remove()}}return x=new WeakMap,e})(),t.exports=e()},986:function(t){t.exports=(()=>{"use strict";var t={d:(e,r)=>{for(var n in r)t.o(r,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:r[n]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r:t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})}},e={};function r(t){var e=0;return t.forEach((function(t){return e+=t})),e}function n(t){return r(t)/t.length}function i(t){t.sort((function(t,e){return t-e}))}t.r(e),t.d(e,{areWithin:()=>f,average:()=>n,clamp:()=>d,degrees:()=>g,isBetween:()=>l,isBetweenExclusive:()=>c,isBetweenInclusive:()=>l,max:()=>u,mean:()=>n,median:()=>a,min:()=>h,radians:()=>y,sortNumbers:()=>i,sortNumbersAscending:()=>i,sortNumbersDescending:()=>m,sortedNumbers:()=>o,sortedNumbersAscending:()=>o,sortedNumbersDescending:()=>p,sum:()=>r});var s=function(t,e,r){if(r||2===arguments.length)for(var n,i=0,s=e.length;i<s;i++)!n&&i in e||(n||(n=Array.prototype.slice.call(e,0,i)),n[i]=e[i]);return t.concat(n||Array.prototype.slice.call(e))};function o(t){var e=s([],t,!0);return i(e),e}function a(t){if(0==t.length)return NaN;var e=o(t);if(e.length%2!=0)return e[Math.floor(e.length/2)];var r=e.length/2,i=r-1;return n([e[r],e[i]])}function h(t){if(0==t.length)return 1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.min(e,t)})),e}function u(t){if(0==t.length)return-1/0;var e=t[0];return t.slice(1).forEach((function(t){e=Math.max(e,t)})),e}function l(t,e,r){return t>=e&&t<=r}function c(t,e,r){return t>e&&t<r}function d(t,e,r){return t<e?e:t>r?r:t}function f(t,e,r){return Math.abs(t-e)<=r}function m(t){i(t),t.reverse()}function p(t){var e=o(t);return e.reverse(),e}function g(t){return t*(180/Math.PI)}function y(t){return t*(Math.PI/180)}return e})()}},e={};function r(n){var i=e[n];if(void 0!==i)return i.exports;var s=e[n]={exports:{}};return t[n].call(s.exports,s,s.exports,r),s.exports}r.d=(t,e)=>{for(var n in e)r.o(e,n)&&!r.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:e[n]})},r.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var n={};return(()=>{"use strict";r.r(n),r.d(n,{BaseOutline:()=>Br.BaseOutline,DotBracketDrawer:()=>tn,Drawing:()=>$r,Nucleobase:()=>Er.Nucleobase,SchemaDrawer:()=>an,StraightBond:()=>Xr.StraightBond});var t={};r.r(t),r.d(t,{cx:()=>It,cy:()=>Lt,height:()=>Ft,rx:()=>jt,ry:()=>Dt,width:()=>Vt,x:()=>kt,y:()=>Bt});var e={};r.r(e),r.d(e,{from:()=>qt,to:()=>Gt});var i={};r.r(i),r.d(i,{MorphArray:()=>Qt,height:()=>te,width:()=>Kt,x:()=>Jt,y:()=>Zt});var s={};r.r(s),r.d(s,{array:()=>Pe,clear:()=>Ae,move:()=>Ee,plot:()=>Te,size:()=>je});var o={};r.r(o),r.d(o,{amove:()=>or,ax:()=>ir,ay:()=>sr,build:()=>ar,center:()=>nr,cx:()=>er,cy:()=>rr,length:()=>Je,move:()=>tr,plain:()=>Qe,x:()=>Ze,y:()=>Ke});var a={};r.r(a),r.d(a,{dmove:()=>fr,dx:()=>mr,dy:()=>pr,height:()=>gr,move:()=>yr,size:()=>br,width:()=>wr,x:()=>xr,y:()=>vr});const h={},u=[];function l(t,e){if(Array.isArray(t))for(const r of t)l(r,e);else if("object"!=typeof t)d(Object.getOwnPropertyNames(e)),h[t]=Object.assign(h[t]||{},e);else for(const e in t)l(e,t[e])}function c(t){return h[t]||{}}function d(t){u.push(...t)}function f(t,e){let r;const n=t.length,i=[];for(r=0;r<n;r++)i.push(e(t[r]));return i}function m(t){return t%360*Math.PI/180}function p(t){return t.charAt(0).toUpperCase()+t.slice(1)}function g(t,e,r,n){return null!=e&&null!=r||(n=n||t.bbox(),null==e?e=n.width/n.height*r:null==r&&(r=n.height/n.width*e)),{width:e,height:r}}function y(t,e){const r=t.origin;let n=null!=t.ox?t.ox:null!=t.originX?t.originX:"center",i=null!=t.oy?t.oy:null!=t.originY?t.originY:"center";null!=r&&([n,i]=Array.isArray(r)?r:"object"==typeof r?[r.x,r.y]:[r,r]);const s="string"==typeof n,o="string"==typeof i;if(s||o){const{height:t,width:r,x:a,y:h}=e.bbox();s&&(n=n.includes("left")?a:n.includes("right")?a+r:a+r/2),o&&(i=i.includes("top")?h:i.includes("bottom")?h+t:h+t/2)}return[n,i]}const b=new Set(["desc","metadata","title"]),w=t=>b.has(t.nodeName),x=(t,e,r={})=>{const n={...e};for(const t in n)n[t].valueOf()===r[t]&&delete n[t];Object.keys(n).length?t.node.setAttribute("data-svgjs",JSON.stringify(n)):(t.node.removeAttribute("data-svgjs"),t.node.removeAttribute("svgjs:data"))},v="http://www.w3.org/2000/svg",_="http://www.w3.org/2000/xmlns/",S="http://www.w3.org/1999/xlink",M={window:"undefined"==typeof window?null:window,document:"undefined"==typeof document?null:document};class O{}const N={},C="___SYMBOL___ROOT___";function P(t,e=v){return M.document.createElementNS(e,t)}function A(t,e=!1){if(t instanceof O)return t;if("object"==typeof t)return j(t);if(null==t)return new N[C];if("string"==typeof t&&"<"!==t.charAt(0))return j(M.document.querySelector(t));const r=e?M.document.createElement("div"):P("svg");return r.innerHTML=t,t=j(r.firstChild),r.removeChild(r.firstChild),t}function E(t,e){return e&&(e instanceof M.window.Node||e.ownerDocument&&e instanceof e.ownerDocument.defaultView.Node)?e:P(t)}function T(t){if(!t)return null;if(t.instance instanceof O)return t.instance;if("#document-fragment"===t.nodeName)return new N.Fragment(t);let e=p(t.nodeName||"Dom");return"LinearGradient"===e||"RadialGradient"===e?e="Gradient":N[e]||(e="Dom"),new N[e](t)}let j=T;function D(t,e=t.name,r=!1){return N[e]=t,r&&(N[C]=t),d(Object.getOwnPropertyNames(t.prototype)),t}let k=1e3;function B(t){return"Svgjs"+p(t)+k++}function I(t){for(let e=t.children.length-1;e>=0;e--)I(t.children[e]);return t.id?(t.id=B(t.nodeName),t):t}function L(t,e){let r,n;for(n=(t=Array.isArray(t)?t:[t]).length-1;n>=0;n--)for(r in e)t[n].prototype[r]=e[r]}function V(t){return function(...e){const r=e[e.length-1];return!r||r.constructor!==Object||r instanceof Array?t.apply(this,e):t.apply(this,e.slice(0,-1)).attr(r)}}l("Dom",{siblings:function(){return this.parent().children()},position:function(){return this.parent().index(this)},next:function(){return this.siblings()[this.position()+1]},prev:function(){return this.siblings()[this.position()-1]},forward:function(){const t=this.position();return this.parent().add(this.remove(),t+1),this},backward:function(){const t=this.position();return this.parent().add(this.remove(),t?t-1:0),this},front:function(){return this.parent().add(this.remove()),this},back:function(){return this.parent().add(this.remove(),0),this},before:function(t){(t=A(t)).remove();const e=this.position();return this.parent().add(t,e),this},after:function(t){(t=A(t)).remove();const e=this.position();return this.parent().add(t,e+1),this},insertBefore:function(t){return(t=A(t)).before(this),this},insertAfter:function(t){return(t=A(t)).after(this),this}});const F=/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,R=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,z=/rgb\((\d+),(\d+),(\d+)\)/,X=/(#[a-z_][a-z0-9\-_]*)/i,q=/\)\s*,?\s*/,G=/\s/g,Y=/^#[a-f0-9]{3}$|^#[a-f0-9]{6}$/i,U=/^rgb\(/,H=/^(\s+)?$/,$=/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,W=/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,Q=/[\s,]+/,J=/[MLHVCSQTAZ]/i;function Z(t){const e=Math.round(t),r=Math.max(0,Math.min(255,e)).toString(16);return 1===r.length?"0"+r:r}function K(t,e){for(let r=e.length;r--;)if(null==t[e[r]])return!1;return!0}function tt(t,e,r){return r<0&&(r+=1),r>1&&(r-=1),r<1/6?t+6*(e-t)*r:r<.5?e:r<2/3?t+(e-t)*(2/3-r)*6:t}l("Dom",{classes:function(){const t=this.attr("class");return null==t?[]:t.trim().split(Q)},hasClass:function(t){return-1!==this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){const e=this.classes();e.push(t),this.attr("class",e.join(" "))}return this},removeClass:function(t){return this.hasClass(t)&&this.attr("class",this.classes().filter((function(e){return e!==t})).join(" ")),this},toggleClass:function(t){return this.hasClass(t)?this.removeClass(t):this.addClass(t)}}),l("Dom",{css:function(t,e){const r={};if(0===arguments.length)return this.node.style.cssText.split(/\s*;\s*/).filter((function(t){return!!t.length})).forEach((function(t){const e=t.split(/\s*:\s*/);r[e[0]]=e[1]})),r;if(arguments.length<2){if(Array.isArray(t)){for(const e of t){const t=e;r[e]=this.node.style.getPropertyValue(t)}return r}if("string"==typeof t)return this.node.style.getPropertyValue(t);if("object"==typeof t)for(const e in t)this.node.style.setProperty(e,null==t[e]||H.test(t[e])?"":t[e])}return 2===arguments.length&&this.node.style.setProperty(t,null==e||H.test(e)?"":e),this},show:function(){return this.css("display","")},hide:function(){return this.css("display","none")},visible:function(){return"none"!==this.css("display")}}),l("Dom",{data:function(t,e,r){if(null==t)return this.data(f(function(t){let e;const r=t.length,n=[];for(e=0;e<r;e++)0===t[e].nodeName.indexOf("data-")&&n.push(t[e]);return n}(this.node.attributes),(t=>t.nodeName.slice(5))));if(t instanceof Array){const e={};for(const r of t)e[r]=this.data(r);return e}if("object"==typeof t)for(e in t)this.data(e,t[e]);else if(arguments.length<2)try{return JSON.parse(this.attr("data-"+t))}catch(e){return this.attr("data-"+t)}else this.attr("data-"+t,null===e?null:!0===r||"string"==typeof e||"number"==typeof e?e:JSON.stringify(e));return this}}),l("Dom",{remember:function(t,e){if("object"==typeof arguments[0])for(const e in t)this.remember(e,t[e]);else{if(1===arguments.length)return this.memory()[t];this.memory()[t]=e}return this},forget:function(){if(0===arguments.length)this._memory={};else for(let t=arguments.length-1;t>=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory=this._memory||{}}});class et{constructor(...t){this.init(...t)}static isColor(t){return t&&(t instanceof et||this.isRgb(t)||this.test(t))}static isRgb(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b}static random(t="vibrant",e){const{random:r,round:n,sin:i,PI:s}=Math;if("vibrant"===t){const t=24*r()+57,e=38*r()+45,n=360*r();return new et(t,e,n,"lch")}if("sine"===t){const t=n(80*i(2*s*(e=null==e?r():e)/.5+.01)+150),o=n(50*i(2*s*e/.5+4.6)+200),a=n(100*i(2*s*e/.5+2.3)+150);return new et(t,o,a)}if("pastel"===t){const t=8*r()+86,e=17*r()+9,n=360*r();return new et(t,e,n,"lch")}if("dark"===t){const t=10+10*r(),e=50*r()+86,n=360*r();return new et(t,e,n,"lch")}if("rgb"===t){const t=255*r(),e=255*r(),n=255*r();return new et(t,e,n)}if("lab"===t){const t=100*r(),e=256*r()-128,n=256*r()-128;return new et(t,e,n,"lab")}if("grey"===t){const t=255*r();return new et(t,t,t)}throw new Error("Unsupported random color mode")}static test(t){return"string"==typeof t&&(Y.test(t)||U.test(t))}cmyk(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=Math.min(1-n,1-i,1-s);return 1===o?new et(0,0,0,1,"cmyk"):new et((1-n-o)/(1-o),(1-i-o)/(1-o),(1-s-o)/(1-o),o,"cmyk")}hsl(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=Math.max(n,i,s),a=Math.min(n,i,s),h=(o+a)/2,u=o===a,l=o-a;return new et(360*(u?0:o===n?((i-s)/l+(i<s?6:0))/6:o===i?((s-n)/l+2)/6:o===s?((n-i)/l+4)/6:0),100*(u?0:h>.5?l/(2-o-a):l/(o+a)),100*h,"hsl")}init(t=0,e=0,r=0,n=0,i="rgb"){if(t=t||0,this.space)for(const t in this.space)delete this[this.space[t]];if("number"==typeof t)i="string"==typeof n?n:i,n="string"==typeof n?0:n,Object.assign(this,{_a:t,_b:e,_c:r,_d:n,space:i});else if(t instanceof Array)this.space=e||("string"==typeof t[3]?t[3]:t[4])||"rgb",Object.assign(this,{_a:t[0],_b:t[1],_c:t[2],_d:t[3]||0});else if(t instanceof Object){const r=function(t,e){const r=K(t,"rgb")?{_a:t.r,_b:t.g,_c:t.b,_d:0,space:"rgb"}:K(t,"xyz")?{_a:t.x,_b:t.y,_c:t.z,_d:0,space:"xyz"}:K(t,"hsl")?{_a:t.h,_b:t.s,_c:t.l,_d:0,space:"hsl"}:K(t,"lab")?{_a:t.l,_b:t.a,_c:t.b,_d:0,space:"lab"}:K(t,"lch")?{_a:t.l,_b:t.c,_c:t.h,_d:0,space:"lch"}:K(t,"cmyk")?{_a:t.c,_b:t.m,_c:t.y,_d:t.k,space:"cmyk"}:{_a:0,_b:0,_c:0,space:"rgb"};return r.space=e||r.space,r}(t,e);Object.assign(this,r)}else if("string"==typeof t)if(U.test(t)){const e=t.replace(G,""),[r,n,i]=z.exec(e).slice(1,4).map((t=>parseInt(t)));Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}else{if(!Y.test(t))throw Error("Unsupported string format, can't construct Color");{const e=t=>parseInt(t,16),[,r,n,i]=R.exec(function(t){return 4===t.length?["#",t.substring(1,2),t.substring(1,2),t.substring(2,3),t.substring(2,3),t.substring(3,4),t.substring(3,4)].join(""):t}(t)).map(e);Object.assign(this,{_a:r,_b:n,_c:i,_d:0,space:"rgb"})}}const{_a:s,_b:o,_c:a,_d:h}=this,u="rgb"===this.space?{r:s,g:o,b:a}:"xyz"===this.space?{x:s,y:o,z:a}:"hsl"===this.space?{h:s,s:o,l:a}:"lab"===this.space?{l:s,a:o,b:a}:"lch"===this.space?{l:s,c:o,h:a}:"cmyk"===this.space?{c:s,m:o,y:a,k:h}:{};Object.assign(this,u)}lab(){const{x:t,y:e,z:r}=this.xyz();return new et(116*e-16,500*(t-e),200*(e-r),"lab")}lch(){const{l:t,a:e,b:r}=this.lab(),n=Math.sqrt(e**2+r**2);let i=180*Math.atan2(r,e)/Math.PI;return i<0&&(i*=-1,i=360-i),new et(t,n,i,"lch")}rgb(){if("rgb"===this.space)return this;if("lab"===(t=this.space)||"xyz"===t||"lch"===t){let{x:t,y:e,z:r}=this;if("lab"===this.space||"lch"===this.space){let{l:n,a:i,b:s}=this;if("lch"===this.space){const{c:t,h:e}=this,r=Math.PI/180;i=t*Math.cos(r*e),s=t*Math.sin(r*e)}const o=(n+16)/116,a=i/500+o,h=o-s/200,u=16/116,l=.008856,c=7.787;t=.95047*(a**3>l?a**3:(a-u)/c),e=1*(o**3>l?o**3:(o-u)/c),r=1.08883*(h**3>l?h**3:(h-u)/c)}const n=3.2406*t+-1.5372*e+-.4986*r,i=-.9689*t+1.8758*e+.0415*r,s=.0557*t+-.204*e+1.057*r,o=Math.pow,a=.0031308,h=n>a?1.055*o(n,1/2.4)-.055:12.92*n,u=i>a?1.055*o(i,1/2.4)-.055:12.92*i,l=s>a?1.055*o(s,1/2.4)-.055:12.92*s;return new et(255*h,255*u,255*l)}if("hsl"===this.space){let{h:t,s:e,l:r}=this;if(t/=360,e/=100,r/=100,0===e)return r*=255,new et(r,r,r);const n=r<.5?r*(1+e):r+e-r*e,i=2*r-n,s=255*tt(i,n,t+1/3),o=255*tt(i,n,t),a=255*tt(i,n,t-1/3);return new et(s,o,a)}if("cmyk"===this.space){const{c:t,m:e,y:r,k:n}=this,i=255*(1-Math.min(1,t*(1-n)+n)),s=255*(1-Math.min(1,e*(1-n)+n)),o=255*(1-Math.min(1,r*(1-n)+n));return new et(i,s,o)}return this;var t}toArray(){const{_a:t,_b:e,_c:r,_d:n,space:i}=this;return[t,e,r,n,i]}toHex(){const[t,e,r]=this._clamped().map(Z);return`#${t}${e}${r}`}toRgb(){const[t,e,r]=this._clamped();return`rgb(${t},${e},${r})`}toString(){return this.toHex()}xyz(){const{_a:t,_b:e,_c:r}=this.rgb(),[n,i,s]=[t,e,r].map((t=>t/255)),o=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92,a=i>.04045?Math.pow((i+.055)/1.055,2.4):i/12.92,h=s>.04045?Math.pow((s+.055)/1.055,2.4):s/12.92,u=(.4124*o+.3576*a+.1805*h)/.95047,l=(.2126*o+.7152*a+.0722*h)/1,c=(.0193*o+.1192*a+.9505*h)/1.08883,d=u>.008856?Math.pow(u,1/3):7.787*u+16/116,f=l>.008856?Math.pow(l,1/3):7.787*l+16/116,m=c>.008856?Math.pow(c,1/3):7.787*c+16/116;return new et(d,f,m,"xyz")}_clamped(){const{_a:t,_b:e,_c:r}=this.rgb(),{max:n,min:i,round:s}=Math;return[t,e,r].map((t=>n(0,i(s(t),255))))}}class rt{constructor(...t){this.init(...t)}clone(){return new rt(this)}init(t,e){const r=Array.isArray(t)?{x:t[0],y:t[1]}:"object"==typeof t?{x:t.x,y:t.y}:{x:t,y:e};return this.x=null==r.x?0:r.x,this.y=null==r.y?0:r.y,this}toArray(){return[this.x,this.y]}transform(t){return this.clone().transformO(t)}transformO(t){it.isMatrixLike(t)||(t=new it(t));const{x:e,y:r}=this;return this.x=t.a*e+t.c*r+t.e,this.y=t.b*e+t.d*r+t.f,this}}function nt(t,e,r){return Math.abs(e-t)<(r||1e-6)}class it{constructor(...t){this.init(...t)}static formatTransforms(t){const e="both"===t.flip||!0===t.flip,r=t.flip&&(e||"x"===t.flip)?-1:1,n=t.flip&&(e||"y"===t.flip)?-1:1,i=t.skew&&t.skew.length?t.skew[0]:isFinite(t.skew)?t.skew:isFinite(t.skewX)?t.skewX:0,s=t.skew&&t.skew.length?t.skew[1]:isFinite(t.skew)?t.skew:isFinite(t.skewY)?t.skewY:0,o=t.scale&&t.scale.length?t.scale[0]*r:isFinite(t.scale)?t.scale*r:isFinite(t.scaleX)?t.scaleX*r:r,a=t.scale&&t.scale.length?t.scale[1]*n:isFinite(t.scale)?t.scale*n:isFinite(t.scaleY)?t.scaleY*n:n,h=t.shear||0,u=t.rotate||t.theta||0,l=new rt(t.origin||t.around||t.ox||t.originX,t.oy||t.originY),c=l.x,d=l.y,f=new rt(t.position||t.px||t.positionX||NaN,t.py||t.positionY||NaN),m=f.x,p=f.y,g=new rt(t.translate||t.tx||t.translateX,t.ty||t.translateY),y=g.x,b=g.y,w=new rt(t.relative||t.rx||t.relativeX,t.ry||t.relativeY);return{scaleX:o,scaleY:a,skewX:i,skewY:s,shear:h,theta:u,rx:w.x,ry:w.y,tx:y,ty:b,ox:c,oy:d,px:m,py:p}}static fromArray(t){return{a:t[0],b:t[1],c:t[2],d:t[3],e:t[4],f:t[5]}}static isMatrixLike(t){return null!=t.a||null!=t.b||null!=t.c||null!=t.d||null!=t.e||null!=t.f}static matrixMultiply(t,e,r){const n=t.a*e.a+t.c*e.b,i=t.b*e.a+t.d*e.b,s=t.a*e.c+t.c*e.d,o=t.b*e.c+t.d*e.d,a=t.e+t.a*e.e+t.c*e.f,h=t.f+t.b*e.e+t.d*e.f;return r.a=n,r.b=i,r.c=s,r.d=o,r.e=a,r.f=h,r}around(t,e,r){return this.clone().aroundO(t,e,r)}aroundO(t,e,r){const n=t||0,i=e||0;return this.translateO(-n,-i).lmultiplyO(r).translateO(n,i)}clone(){return new it(this)}decompose(t=0,e=0){const r=this.a,n=this.b,i=this.c,s=this.d,o=this.e,a=this.f,h=r*s-n*i,u=h>0?1:-1,l=u*Math.sqrt(r*r+n*n),c=Math.atan2(u*n,u*r),d=180/Math.PI*c,f=Math.cos(c),m=Math.sin(c),p=(r*i+n*s)/h,g=i*l/(p*r-n)||s*l/(p*n+r);return{scaleX:l,scaleY:g,shear:p,rotate:d,translateX:o-t+t*f*l+e*(p*f*l-m*g),translateY:a-e+t*m*l+e*(p*m*l+f*g),originX:t,originY:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}equals(t){if(t===this)return!0;const e=new it(t);return nt(this.a,e.a)&&nt(this.b,e.b)&&nt(this.c,e.c)&&nt(this.d,e.d)&&nt(this.e,e.e)&&nt(this.f,e.f)}flip(t,e){return this.clone().flipO(t,e)}flipO(t,e){return"x"===t?this.scaleO(-1,1,e,0):"y"===t?this.scaleO(1,-1,0,e):this.scaleO(-1,-1,t,e||t)}init(t){const e=it.fromArray([1,0,0,1,0,0]);return t=t instanceof Ct?t.matrixify():"string"==typeof t?it.fromArray(t.split(Q).map(parseFloat)):Array.isArray(t)?it.fromArray(t):"object"==typeof t&&it.isMatrixLike(t)?t:"object"==typeof t?(new it).transform(t):6===arguments.length?it.fromArray([].slice.call(arguments)):e,this.a=null!=t.a?t.a:e.a,this.b=null!=t.b?t.b:e.b,this.c=null!=t.c?t.c:e.c,this.d=null!=t.d?t.d:e.d,this.e=null!=t.e?t.e:e.e,this.f=null!=t.f?t.f:e.f,this}inverse(){return this.clone().inverseO()}inverseO(){const t=this.a,e=this.b,r=this.c,n=this.d,i=this.e,s=this.f,o=t*n-e*r;if(!o)throw new Error("Cannot invert "+this);const a=n/o,h=-e/o,u=-r/o,l=t/o,c=-(a*i+u*s),d=-(h*i+l*s);return this.a=a,this.b=h,this.c=u,this.d=l,this.e=c,this.f=d,this}lmultiply(t){return this.clone().lmultiplyO(t)}lmultiplyO(t){const e=t instanceof it?t:new it(t);return it.matrixMultiply(e,this,this)}multiply(t){return this.clone().multiplyO(t)}multiplyO(t){const e=t instanceof it?t:new it(t);return it.matrixMultiply(this,e,this)}rotate(t,e,r){return this.clone().rotateO(t,e,r)}rotateO(t,e=0,r=0){t=m(t);const n=Math.cos(t),i=Math.sin(t),{a:s,b:o,c:a,d:h,e:u,f:l}=this;return this.a=s*n-o*i,this.b=o*n+s*i,this.c=a*n-h*i,this.d=h*n+a*i,this.e=u*n-l*i+r*i-e*n+e,this.f=l*n+u*i-e*i-r*n+r,this}scale(){return this.clone().scaleO(...arguments)}scaleO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t);const{a:i,b:s,c:o,d:a,e:h,f:u}=this;return this.a=i*t,this.b=s*e,this.c=o*t,this.d=a*e,this.e=h*t-r*t+r,this.f=u*e-n*e+n,this}shear(t,e,r){return this.clone().shearO(t,e,r)}shearO(t,e=0,r=0){const{a:n,b:i,c:s,d:o,e:a,f:h}=this;return this.a=n+i*t,this.c=s+o*t,this.e=a+h*t-r*t,this}skew(){return this.clone().skewO(...arguments)}skewO(t,e=t,r=0,n=0){3===arguments.length&&(n=r,r=e,e=t),t=m(t),e=m(e);const i=Math.tan(t),s=Math.tan(e),{a:o,b:a,c:h,d:u,e:l,f:c}=this;return this.a=o+a*i,this.b=a+o*s,this.c=h+u*i,this.d=u+h*s,this.e=l+c*i-n*i,this.f=c+l*s-r*s,this}skewX(t,e,r){return this.skew(t,0,e,r)}skewY(t,e,r){return this.skew(0,t,e,r)}toArray(){return[this.a,this.b,this.c,this.d,this.e,this.f]}toString(){return"matrix("+this.a+","+this.b+","+this.c+","+this.d+","+this.e+","+this.f+")"}transform(t){if(it.isMatrixLike(t))return new it(t).multiplyO(this);const e=it.formatTransforms(t),{x:r,y:n}=new rt(e.ox,e.oy).transform(this),i=(new it).translateO(e.rx,e.ry).lmultiplyO(this).translateO(-r,-n).scaleO(e.scaleX,e.scaleY).skewO(e.skewX,e.skewY).shearO(e.shear).rotateO(e.theta).translateO(r,n);if(isFinite(e.px)||isFinite(e.py)){const t=new rt(r,n).transform(i),s=isFinite(e.px)?e.px-t.x:0,o=isFinite(e.py)?e.py-t.y:0;i.translateO(s,o)}return i.translateO(e.tx,e.ty),i}translate(t,e){return this.clone().translateO(t,e)}translateO(t,e){return this.e+=t||0,this.f+=e||0,this}valueOf(){return{a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f}}}function st(){if(!st.nodes){const t=A().size(2,0);t.node.style.cssText=["opacity: 0","position: absolute","left: -100%","top: -100%","overflow: hidden"].join(";"),t.attr("focusable","false"),t.attr("aria-hidden","true");const e=t.path().node;st.nodes={svg:t,path:e}}if(!st.nodes.svg.node.parentNode){const t=M.document.body||M.document.documentElement;st.nodes.svg.addTo(t)}return st.nodes}function ot(t){return!(t.width||t.height||t.x||t.y)}D(it,"Matrix");class at{constructor(...t){this.init(...t)}addOffset(){return this.x+=M.window.pageXOffset,this.y+=M.window.pageYOffset,new at(this)}init(t){return t="string"==typeof t?t.split(Q).map(parseFloat):Array.isArray(t)?t:"object"==typeof t?[null!=t.left?t.left:t.x,null!=t.top?t.top:t.y,t.width,t.height]:4===arguments.length?[].slice.call(arguments):[0,0,0,0],this.x=t[0]||0,this.y=t[1]||0,this.width=this.w=t[2]||0,this.height=this.h=t[3]||0,this.x2=this.x+this.w,this.y2=this.y+this.h,this.cx=this.x+this.w/2,this.cy=this.y+this.h/2,this}isNulled(){return ot(this)}merge(t){const e=Math.min(this.x,t.x),r=Math.min(this.y,t.y),n=Math.max(this.x+this.width,t.x+t.width)-e,i=Math.max(this.y+this.height,t.y+t.height)-r;return new at(e,r,n,i)}toArray(){return[this.x,this.y,this.width,this.height]}toString(){return this.x+" "+this.y+" "+this.width+" "+this.height}transform(t){t instanceof it||(t=new it(t));let e=1/0,r=-1/0,n=1/0,i=-1/0;return[new rt(this.x,this.y),new rt(this.x2,this.y),new rt(this.x,this.y2),new rt(this.x2,this.y2)].forEach((function(s){s=s.transform(t),e=Math.min(e,s.x),r=Math.max(r,s.x),n=Math.min(n,s.y),i=Math.max(i,s.y)})),new at(e,n,r-e,i-n)}}function ht(t,e,r){let n;try{if(n=e(t.node),ot(n)&&(i=t.node)!==M.document&&!(M.document.documentElement.contains||function(t){for(;t.parentNode;)t=t.parentNode;return t===M.document}).call(M.document.documentElement,i))throw new Error("Element not in the dom")}catch(e){n=r(t)}var i;return n}l({viewbox:{viewbox(t,e,r,n){return null==t?new at(this.attr("viewBox")):this.attr("viewBox",new at(t,e,r,n))},zoom(t,e){let{width:r,height:n}=this.attr(["width","height"]);if((r||n)&&"string"!=typeof r&&"string"!=typeof n||(r=this.node.clientWidth,n=this.node.clientHeight),!r||!n)throw new Error("Impossible to get absolute width and height. Please provide an absolute width and height attribute on the zooming element");const i=this.viewbox(),s=r/i.width,o=n/i.height,a=Math.min(s,o);if(null==t)return a;let h=a/t;h===1/0&&(h=Number.MAX_SAFE_INTEGER/100),e=e||new rt(r/2/s+i.x,n/2/o+i.y);const u=new at(i).transform(new it({scale:h,origin:e}));return this.viewbox(u)}}}),D(at,"Box");class ut extends Array{constructor(t=[],...e){if(super(t,...e),"number"==typeof t)return this;this.length=0,this.push(...t)}}const lt=ut;L([ut],{each(t,...e){return"function"==typeof t?this.map(((e,r,n)=>t.call(e,e,r,n))):this.map((r=>r[t](...e)))},toArray(){return Array.prototype.concat.apply([],this)}});const ct=["toArray","constructor","each"];function dt(t,e){return new lt(f((e||M.document).querySelectorAll(t),(function(t){return T(t)})))}ut.extend=function(t){t=t.reduce(((t,e)=>(ct.includes(e)||"_"===e[0]||(e in Array.prototype&&(t["$"+e]=Array.prototype[e]),t[e]=function(...t){return this.each(e,...t)}),t)),{}),L([ut],t)};let ft=0;const mt={};function pt(t){let e=t.getEventHolder();return e===M.window&&(e=mt),e.events||(e.events={}),e.events}function gt(t){return t.getEventTarget()}function yt(t,e,r,n,i){const s=r.bind(n||t),o=A(t),a=pt(o),h=gt(o);e=Array.isArray(e)?e:e.split(Q),r._svgjsListenerId||(r._svgjsListenerId=++ft),e.forEach((function(t){const e=t.split(".")[0],n=t.split(".")[1]||"*";a[e]=a[e]||{},a[e][n]=a[e][n]||{},a[e][n][r._svgjsListenerId]=s,h.addEventListener(e,s,i||!1)}))}function bt(t,e,r,n){const i=A(t),s=pt(i),o=gt(i);("function"!=typeof r||(r=r._svgjsListenerId))&&(e=Array.isArray(e)?e:(e||"").split(Q)).forEach((function(t){const e=t&&t.split(".")[0],a=t&&t.split(".")[1];let h,u;if(r)s[e]&&s[e][a||"*"]&&(o.removeEventListener(e,s[e][a||"*"][r],n||!1),delete s[e][a||"*"][r]);else if(e&&a){if(s[e]&&s[e][a]){for(u in s[e][a])bt(o,[e,a].join("."),u);delete s[e][a]}}else if(a)for(t in s)for(h in s[t])a===h&&bt(o,[t,a].join("."));else if(e){if(s[e]){for(h in s[e])bt(o,[e,h].join("."));delete s[e]}}else{for(t in s)bt(o,t);!function(t){let e=t.getEventHolder();e===M.window&&(e=mt),e.events&&(e.events={})}(i)}}))}class wt extends O{addEventListener(){}dispatch(t,e,r){return function(t,e,r,n){const i=gt(t);return e instanceof M.window.Event||(e=new M.window.CustomEvent(e,{detail:r,cancelable:!0,...n})),i.dispatchEvent(e),e}(this,t,e,r)}dispatchEvent(t){const e=this.getEventHolder().events;if(!e)return!0;const r=e[t.type];for(const e in r)for(const n in r[e])r[e][n](t);return!t.defaultPrevented}fire(t,e,r){return this.dispatch(t,e,r),this}getEventHolder(){return this}getEventTarget(){return this}off(t,e,r){return bt(this,t,e,r),this}on(t,e,r,n){return yt(this,t,e,r,n),this}removeEventListener(){}}function xt(){}D(wt,"EventTarget");const vt={"fill-opacity":1,"stroke-opacity":1,"stroke-width":0,"stroke-linejoin":"miter","stroke-linecap":"butt",fill:"#000000",stroke:"#000000",opacity:1,x:0,y:0,cx:0,cy:0,width:0,height:0,r:0,rx:0,ry:0,offset:0,"stop-opacity":1,"stop-color":"#000000","text-anchor":"start"};class _t extends Array{constructor(...t){super(...t),this.init(...t)}clone(){return new this.constructor(this)}init(t){return"number"==typeof t||(this.length=0,this.push(...this.parse(t))),this}parse(t=[]){return t instanceof Array?t:t.trim().split(Q).map(parseFloat)}toArray(){return Array.prototype.concat.apply([],this)}toSet(){return new Set(this)}toString(){return this.join(" ")}valueOf(){const t=[];return t.push(...this),t}}class St{constructor(...t){this.init(...t)}convert(t){return new St(this.value,t)}divide(t){return t=new St(t),new St(this/t,this.unit||t.unit)}init(t,e){return e=Array.isArray(t)?t[1]:e,t=Array.isArray(t)?t[0]:t,this.value=0,this.unit=e||"","number"==typeof t?this.value=isNaN(t)?0:isFinite(t)?t:t<0?-34e37:34e37:"string"==typeof t?(e=t.match(F))&&(this.value=parseFloat(e[1]),"%"===e[5]?this.value/=100:"s"===e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof St&&(this.value=t.valueOf(),this.unit=t.unit),this}minus(t){return t=new St(t),new St(this-t,this.unit||t.unit)}plus(t){return t=new St(t),new St(this+t,this.unit||t.unit)}times(t){return t=new St(t),new St(this*t,this.unit||t.unit)}toArray(){return[this.value,this.unit]}toJSON(){return this.toString()}toString(){return("%"===this.unit?~~(1e8*this.value)/1e6:"s"===this.unit?this.value/1e3:this.value)+this.unit}valueOf(){return this.value}}const Mt=new Set(["fill","stroke","color","bgcolor","stop-color","flood-color","lighting-color"]),Ot=[];class Nt extends wt{constructor(t,e){super(),this.node=t,this.type=t.nodeName,e&&t!==e&&this.attr(e)}add(t,e){return(t=A(t)).removeNamespace&&this.node instanceof M.window.SVGElement&&t.removeNamespace(),null==e?this.node.appendChild(t.node):t.node!==this.node.childNodes[e]&&this.node.insertBefore(t.node,this.node.childNodes[e]),this}addTo(t,e){return A(t).put(this,e)}children(){return new lt(f(this.node.children,(function(t){return T(t)})))}clear(){for(;this.node.hasChildNodes();)this.node.removeChild(this.node.lastChild);return this}clone(t=!0,e=!0){this.writeDataToDom();let r=this.node.cloneNode(t);return e&&(r=I(r)),new this.constructor(r)}each(t,e){const r=this.children();let n,i;for(n=0,i=r.length;n<i;n++)t.apply(r[n],[n,r]),e&&r[n].each(t,e);return this}element(t,e){return this.put(new Nt(P(t),e))}first(){return T(this.node.firstChild)}get(t){return T(this.node.childNodes[t])}getEventHolder(){return this.node}getEventTarget(){return this.node}has(t){return this.index(t)>=0}html(t,e){return this.xml(t,e,"http://www.w3.org/1999/xhtml")}id(t){return void 0!==t||this.node.id||(this.node.id=B(this.type)),this.attr("id",t)}index(t){return[].slice.call(this.node.childNodes).indexOf(t.node)}last(){return T(this.node.lastChild)}matches(t){const e=this.node,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.oMatchesSelector||null;return r&&r.call(e,t)}parent(t){let e=this;if(!e.node.parentNode)return null;if(e=T(e.node.parentNode),!t)return e;do{if("string"==typeof t?e.matches(t):e instanceof t)return e}while(e=T(e.node.parentNode));return e}put(t,e){return t=A(t),this.add(t,e),t}putIn(t,e){return A(t).add(this,e)}remove(){return this.parent()&&this.parent().removeElement(this),this}removeElement(t){return this.node.removeChild(t.node),this}replace(t){return t=A(t),this.node.parentNode&&this.node.parentNode.replaceChild(t.node,this.node),t}round(t=2,e=null){const r=10**t,n=this.attr(e);for(const t in n)"number"==typeof n[t]&&(n[t]=Math.round(n[t]*r)/r);return this.attr(n),this}svg(t,e){return this.xml(t,e,v)}toString(){return this.id()}words(t){return this.node.textContent=t,this}wrap(t){const e=this.parent();if(!e)return this.addTo(t);const r=e.index(this);return e.put(t,r).put(this)}writeDataToDom(){return this.each((function(){this.writeDataToDom()})),this}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){e=null==e||e,this.writeDataToDom();let r=this;if(null!=t){if(r=T(r.node.cloneNode(!0)),e){const e=t(r);if(r=e||r,!1===e)return""}r.each((function(){const e=t(this),r=e||this;!1===e?this.remove():e&&this!==r&&this.replace(r)}),!0)}return e?r.node.outerHTML:r.node.innerHTML}e=null!=e&&e;const n=P("wrapper",r),i=M.document.createDocumentFragment();n.innerHTML=t;for(let t=n.children.length;t--;)i.appendChild(n.firstElementChild);const s=this.parent();return e?this.replace(i)&&s:this.add(i)}}L(Nt,{attr:function(t,e,r){if(null==t){t={},e=this.node.attributes;for(const r of e)t[r.nodeName]=$.test(r.nodeValue)?parseFloat(r.nodeValue):r.nodeValue;return t}if(t instanceof Array)return t.reduce(((t,e)=>(t[e]=this.attr(e),t)),{});if("object"==typeof t&&t.constructor===Object)for(e in t)this.attr(e,t[e]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?vt[t]:$.test(e)?parseFloat(e):e;"number"==typeof(e=Ot.reduce(((e,r)=>r(t,e,this)),e))?e=new St(e):Mt.has(t)&&et.isColor(e)?e=new et(e):e.constructor===Array&&(e=new _t(e)),"leading"===t?this.leading&&this.leading(e):"string"==typeof r?this.node.setAttributeNS(r,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||"font-size"!==t&&"x"!==t||this.rebuild()}return this},find:function(t){return dt(t,this.node)},findOne:function(t){return T(this.node.querySelector(t))}}),D(Nt,"Dom");class Ct extends Nt{constructor(t,e){super(t,e),this.dom={},this.node.instance=this,(t.hasAttribute("data-svgjs")||t.hasAttribute("svgjs:data"))&&this.setData(JSON.parse(t.getAttribute("data-svgjs"))??JSON.parse(t.getAttribute("svgjs:data"))??{})}center(t,e){return this.cx(t).cy(e)}cx(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)}cy(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)}defs(){const t=this.root();return t&&t.defs()}dmove(t,e){return this.dx(t).dy(e)}dx(t=0){return this.x(new St(t).plus(this.x()))}dy(t=0){return this.y(new St(t).plus(this.y()))}getEventHolder(){return this}height(t){return this.attr("height",t)}move(t,e){return this.x(t).y(e)}parents(t=this.root()){const e="string"==typeof t;e||(t=A(t));const r=new lt;let n=this;for(;(n=n.parent())&&n.node!==M.document&&"#document-fragment"!==n.nodeName&&(r.push(n),e||n.node!==t.node)&&(!e||!n.matches(t));)if(n.node===this.root().node)return null;return r}reference(t){if(!(t=this.attr(t)))return null;const e=(t+"").match(X);return e?A(e[1]):null}root(){const t=this.parent(N[C]);return t&&t.root()}setData(t){return this.dom=t,this}size(t,e){const r=g(this,t,e);return this.width(new St(r.width)).height(new St(r.height))}width(t){return this.attr("width",t)}writeDataToDom(){return x(this,this.dom),super.writeDataToDom()}x(t){return this.attr("x",t)}y(t){return this.attr("y",t)}}L(Ct,{bbox:function(){const t=ht(this,(t=>t.getBBox()),(t=>{try{const e=t.clone().addTo(st().svg).show(),r=e.node.getBBox();return e.remove(),r}catch(e){throw new Error(`Getting bbox of element "${t.node.nodeName}" is not possible: ${e.toString()}`)}}));return new at(t)},rbox:function(t){const e=ht(this,(t=>t.getBoundingClientRect()),(t=>{throw new Error(`Getting rbox of element "${t.node.nodeName}" is not possible`)})),r=new at(e);return t?r.transform(t.screenCTM().inverseO()):r.addOffset()},inside:function(t,e){const r=this.bbox();return t>r.x&&e>r.y&&t<r.x+r.width&&e<r.y+r.height},point:function(t,e){return new rt(t,e).transformO(this.screenCTM().inverseO())},ctm:function(){return new it(this.node.getCTM())},screenCTM:function(){try{if("function"==typeof this.isRoot&&!this.isRoot()){const t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new it(e)}return new it(this.node.getScreenCTM())}catch(t){return console.warn(`Cannot get CTM from SVG node ${this.node.nodeName}. Is the element rendered?`),new it}}}),D(Ct,"Element");const Pt={stroke:["color","width","opacity","linecap","linejoin","miterlimit","dasharray","dashoffset"],fill:["color","opacity","rule"],prefix:function(t,e){return"color"===e?t:t+"-"+e}};["fill","stroke"].forEach((function(t){const e={};let r;e[t]=function(e){if(void 0===e)return this.attr(t);if("string"==typeof e||e instanceof et||et.isRgb(e)||e instanceof Ct)this.attr(t,e);else for(r=Pt[t].length-1;r>=0;r--)null!=e[Pt[t][r]]&&this.attr(Pt.prefix(t,Pt[t][r]),e[Pt[t][r]]);return this},l(["Element","Runner"],e)})),l(["Element","Runner"],{matrix:function(t,e,r,n,i,s){return null==t?new it(this):this.attr("transform",new it(t,e,r,n,i,s))},rotate:function(t,e,r){return this.transform({rotate:t,ox:e,oy:r},!0)},skew:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({skew:t,ox:e,oy:r},!0):this.transform({skew:[t,e],ox:r,oy:n},!0)},shear:function(t,e,r){return this.transform({shear:t,ox:e,oy:r},!0)},scale:function(t,e,r,n){return 1===arguments.length||3===arguments.length?this.transform({scale:t,ox:e,oy:r},!0):this.transform({scale:[t,e],ox:r,oy:n},!0)},translate:function(t,e){return this.transform({translate:[t,e]},!0)},relative:function(t,e){return this.transform({relative:[t,e]},!0)},flip:function(t="both",e="center"){return-1==="xybothtrue".indexOf(t)&&(e=t,t="both"),this.transform({flip:t,origin:e},!0)},opacity:function(t){return this.attr("opacity",t)}}),l("radius",{radius:function(t,e=t){return"radialGradient"===(this._element||this).type?this.attr("r",new St(t)):this.rx(t).ry(e)}}),l("Path",{length:function(){return this.node.getTotalLength()},pointAt:function(t){return new rt(this.node.getPointAtLength(t))}}),l(["Element","Runner"],{font:function(t,e){if("object"==typeof t){for(e in t)this.font(e,t[e]);return this}return"leading"===t?this.leading(e):"anchor"===t?this.attr("text-anchor",e):"size"===t||"family"===t||"weight"===t||"stretch"===t||"variant"===t||"style"===t?this.attr("font-"+t,e):this.attr(t,e)}}),l("Element",["click","dblclick","mousedown","mouseup","mouseover","mouseout","mousemove","mouseenter","mouseleave","touchstart","touchmove","touchleave","touchend","touchcancel","contextmenu","wheel","pointerdown","pointermove","pointerup","pointerleave","pointercancel"].reduce((function(t,e){return t[e]=function(t){return null===t?this.off(e):this.on(e,t),this},t}),{})),l("Element",{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(q).slice(0,-1).map((function(t){const e=t.trim().split("(");return[e[0],e[1].split(Q).map((function(t){return parseFloat(t)}))]})).reverse().reduce((function(t,e){return"matrix"===e[0]?t.lmultiply(it.fromArray(e[1])):t[e[0]].apply(t,e[1])}),new it)},toParent:function(t,e){if(this===t)return this;if(w(this.node))return this.addTo(t,e);const r=this.screenCTM(),n=t.screenCTM().inverse();return this.addTo(t,e).untransform().transform(n.multiply(r)),this},toRoot:function(t){return this.toParent(this.root(),t)},transform:function(t,e){if(null==t||"string"==typeof t){const e=new it(this).decompose();return null==t?e:e[t]}it.isMatrixLike(t)||(t={...t,origin:y(t,this)});const r=new it(!0===e?this:e||!1).transform(t);return this.attr("transform",r)}});class At extends Ct{flatten(){return this.each((function(){if(this instanceof At)return this.flatten().ungroup()})),this}ungroup(t=this.parent(),e=t.index(this)){return e=-1===e?t.children().length:e,this.each((function(r,n){return n[n.length-r-1].toParent(t,e)})),this.remove()}}D(At,"Container");class Et extends At{constructor(t,e=t){super(E("defs",t),e)}flatten(){return this}ungroup(){return this}}D(Et,"Defs");class Tt extends Ct{}function jt(t){return this.attr("rx",t)}function Dt(t){return this.attr("ry",t)}function kt(t){return null==t?this.cx()-this.rx():this.cx(t+this.rx())}function Bt(t){return null==t?this.cy()-this.ry():this.cy(t+this.ry())}function It(t){return this.attr("cx",t)}function Lt(t){return this.attr("cy",t)}function Vt(t){return null==t?2*this.rx():this.rx(new St(t).divide(2))}function Ft(t){return null==t?2*this.ry():this.ry(new St(t).divide(2))}D(Tt,"Shape");class Rt extends Tt{constructor(t,e=t){super(E("ellipse",t),e)}size(t,e){const r=g(this,t,e);return this.rx(new St(r.width).divide(2)).ry(new St(r.height).divide(2))}}L(Rt,t),l("Container",{ellipse:V((function(t=0,e=t){return this.put(new Rt).size(t,e).move(0,0)}))}),D(Rt,"Ellipse");class zt extends Nt{constructor(t=M.document.createDocumentFragment()){super(t)}xml(t,e,r){if("boolean"==typeof t&&(r=e,e=t,t=null),null==t||"function"==typeof t){const t=new Nt(P("wrapper",r));return t.add(this.node.cloneNode(!0)),t.xml(!1,r)}return super.xml(t,!1,r)}}D(zt,"Fragment");const Xt=zt;function qt(t,e){return"radialGradient"===(this._element||this).type?this.attr({fx:new St(t),fy:new St(e)}):this.attr({x1:new St(t),y1:new St(e)})}function Gt(t,e){return"radialGradient"===(this._element||this).type?this.attr({cx:new St(t),cy:new St(e)}):this.attr({x2:new St(t),y2:new St(e)})}class Yt extends At{constructor(t,e){super(E(t+"Gradient","string"==typeof t?null:t),e)}attr(t,e,r){return"transform"===t&&(t="gradientTransform"),super.attr(t,e,r)}bbox(){return new at}targets(){return dt("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}}L(Yt,e),l({Container:{gradient(...t){return this.defs().gradient(...t)}},Defs:{gradient:V((function(t,e){return this.put(new Yt(t)).update(e)}))}}),D(Yt,"Gradient");class Ut extends At{constructor(t,e=t){super(E("pattern",t),e)}attr(t,e,r){return"transform"===t&&(t="patternTransform"),super.attr(t,e,r)}bbox(){return new at}targets(){return dt("svg [fill*="+this.id()+"]")}toString(){return this.url()}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}url(){return"url(#"+this.id()+")"}}l({Container:{pattern(...t){return this.defs().pattern(...t)}},Defs:{pattern:V((function(t,e,r){return this.put(new Ut).update(r).attr({x:0,y:0,width:t,height:e,patternUnits:"userSpaceOnUse"})}))}}),D(Ut,"Pattern");class Ht extends Tt{constructor(t,e=t){super(E("image",t),e)}load(t,e){if(!t)return this;const r=new M.window.Image;return yt(r,"load",(function(t){const n=this.parent(Ut);0===this.width()&&0===this.height()&&this.size(r.width,r.height),n instanceof Ut&&0===n.width()&&0===n.height()&&n.size(this.width(),this.height()),"function"==typeof e&&e.call(this,t)}),this),yt(r,"load error",(function(){bt(r)})),this.attr("href",r.src=t,S)}}var $t;$t=function(t,e,r){return"fill"!==t&&"stroke"!==t||W.test(e)&&(e=r.root().defs().image(e)),e instanceof Ht&&(e=r.root().defs().pattern(0,0,(t=>{t.add(e)}))),e},Ot.push($t),l({Container:{image:V((function(t,e){return this.put(new Ht).size(0,0).load(t,e)}))}}),D(Ht,"Image");class Wt extends _t{bbox(){let t=-1/0,e=-1/0,r=1/0,n=1/0;return this.forEach((function(i){t=Math.max(i[0],t),e=Math.max(i[1],e),r=Math.min(i[0],r),n=Math.min(i[1],n)})),new at(r,n,t-r,e-n)}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r=this.length-1;r>=0;r--)this[r]=[this[r][0]+t,this[r][1]+e];return this}parse(t=[0,0]){const e=[];(t=t instanceof Array?Array.prototype.concat.apply([],t):t.trim().split(Q).map(parseFloat)).length%2!=0&&t.pop();for(let r=0,n=t.length;r<n;r+=2)e.push([t[r],t[r+1]]);return e}size(t,e){let r;const n=this.bbox();for(r=this.length-1;r>=0;r--)n.width&&(this[r][0]=(this[r][0]-n.x)*t/n.width+n.x),n.height&&(this[r][1]=(this[r][1]-n.y)*e/n.height+n.y);return this}toLine(){return{x1:this[0][0],y1:this[0][1],x2:this[1][0],y2:this[1][1]}}toString(){const t=[];for(let e=0,r=this.length;e<r;e++)t.push(this[e].join(","));return t.join(" ")}transform(t){return this.clone().transformO(t)}transformO(t){it.isMatrixLike(t)||(t=new it(t));for(let e=this.length;e--;){const[r,n]=this[e];this[e][0]=t.a*r+t.c*n+t.e,this[e][1]=t.b*r+t.d*n+t.f}return this}}const Qt=Wt;function Jt(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}function Zt(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}function Kt(t){const e=this.bbox();return null==t?e.width:this.size(t,e.height)}function te(t){const e=this.bbox();return null==t?e.height:this.size(e.width,t)}class ee extends Tt{constructor(t,e=t){super(E("line",t),e)}array(){return new Wt([[this.attr("x1"),this.attr("y1")],[this.attr("x2"),this.attr("y2")]])}move(t,e){return this.attr(this.array().move(t,e).toLine())}plot(t,e,r,n){return null==t?this.array():(t=void 0!==e?{x1:t,y1:e,x2:r,y2:n}:new Wt(t).toLine(),this.attr(t))}size(t,e){const r=g(this,t,e);return this.attr(this.array().size(r.width,r.height).toLine())}}L(ee,i),l({Container:{line:V((function(...t){return ee.prototype.plot.apply(this.put(new ee),null!=t[0]?t:[0,0,0,0])}))}}),D(ee,"Line");class re extends At{constructor(t,e=t){super(E("marker",t),e)}height(t){return this.attr("markerHeight",t)}orient(t){return this.attr("orient",t)}ref(t,e){return this.attr("refX",t).attr("refY",e)}toString(){return"url(#"+this.id()+")"}update(t){return this.clear(),"function"==typeof t&&t.call(this,this),this}width(t){return this.attr("markerWidth",t)}}function ne(t,e){return function(r){return null==r?this[t]:(this[t]=r,e&&e.call(this),this)}}l({Container:{marker(...t){return this.defs().marker(...t)}},Defs:{marker:V((function(t,e,r){return this.put(new re).size(t,e).ref(t/2,e/2).viewbox(0,0,t,e).attr("orient","auto").update(r)}))},marker:{marker(t,e,r,n){let i=["marker"];return"all"!==t&&i.push(t),i=i.join("-"),t=arguments[1]instanceof re?arguments[1]:this.defs().marker(e,r,n),this.attr(i,t)}}}),D(re,"Marker");const ie={"-":function(t){return t},"<>":function(t){return-Math.cos(t*Math.PI)/2+.5},">":function(t){return Math.sin(t*Math.PI/2)},"<":function(t){return 1-Math.cos(t*Math.PI/2)},bezier:function(t,e,r,n){return function(i){return i<0?t>0?e/t*i:r>0?n/r*i:0:i>1?r<1?(1-n)/(1-r)*i+(n-r)/(1-r):t<1?(1-e)/(1-t)*i+(e-t)/(1-t):1:3*i*(1-i)**2*e+3*i**2*(1-i)*n+i**3}},steps:function(t,e="end"){e=e.split("-").reverse()[0];let r=t;return"none"===e?--r:"both"===e&&++r,(n,i=!1)=>{let s=Math.floor(n*t);const o=n*s%1==0;return"start"!==e&&"both"!==e||++s,i&&o&&--s,n>=0&&s<0&&(s=0),n<=1&&s>r&&(s=r),s/r}}};class se{done(){return!1}}class oe extends se{constructor(t=">"){super(),this.ease=ie[t]||t}step(t,e,r){return"number"!=typeof t?r<1?t:e:t+(e-t)*this.ease(r)}}class ae extends se{constructor(t){super(),this.stepper=t}done(t){return t.done}step(t,e,r,n){return this.stepper(t,e,r,n)}}function he(){const t=(this._duration||500)/1e3,e=this._overshoot||0,r=Math.PI,n=Math.log(e/100+1e-10),i=-n/Math.sqrt(r*r+n*n),s=3.9/(i*t);this.d=2*i*s,this.k=s*s}L(class extends ae{constructor(t=500,e=0){super(),this.duration(t).overshoot(e)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;r>100&&(r=16),r/=1e3;const i=n.velocity||0,s=-this.d*i-this.k*(t-e),o=t+i*r+s*r*r/2;return n.velocity=i+s*r,n.done=Math.abs(e-o)+Math.abs(i)<.002,n.done?e:o}},{duration:ne("_duration",he),overshoot:ne("_overshoot",he)}),L(class extends ae{constructor(t=.1,e=.01,r=0,n=1e3){super(),this.p(t).i(e).d(r).windup(n)}step(t,e,r,n){if("string"==typeof t)return t;if(n.done=r===1/0,r===1/0)return e;if(0===r)return t;const i=e-t;let s=(n.integral||0)+i*r;const o=(i-(n.error||0))/r,a=this._windup;return!1!==a&&(s=Math.max(-a,Math.min(s,a))),n.error=i,n.integral=s,n.done=Math.abs(i)<.001,n.done?e:t+(this.P*i+this.I*s+this.D*o)}},{windup:ne("_windup"),p:ne("P"),i:ne("I"),d:ne("D")});const ue={M:2,L:2,H:1,V:1,C:6,S:4,Q:4,T:2,A:7,Z:0},le={M:function(t,e,r){return e.x=r.x=t[0],e.y=r.y=t[1],["M",e.x,e.y]},L:function(t,e){return e.x=t[0],e.y=t[1],["L",t[0],t[1]]},H:function(t,e){return e.x=t[0],["H",t[0]]},V:function(t,e){return e.y=t[0],["V",t[0]]},C:function(t,e){return e.x=t[4],e.y=t[5],["C",t[0],t[1],t[2],t[3],t[4],t[5]]},S:function(t,e){return e.x=t[2],e.y=t[3],["S",t[0],t[1],t[2],t[3]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},T:function(t,e){return e.x=t[0],e.y=t[1],["T",t[0],t[1]]},Z:function(t,e,r){return e.x=r.x,e.y=r.y,["Z"]},A:function(t,e){return e.x=t[5],e.y=t[6],["A",t[0],t[1],t[2],t[3],t[4],t[5],t[6]]}},ce="mlhvqtcsaz".split("");for(let t=0,e=ce.length;t<e;++t)le[ce[t]]=function(t){return function(e,r,n){if("H"===t)e[0]=e[0]+r.x;else if("V"===t)e[0]=e[0]+r.y;else if("A"===t)e[5]=e[5]+r.x,e[6]=e[6]+r.y;else for(let t=0,n=e.length;t<n;++t)e[t]=e[t]+(t%2?r.y:r.x);return le[t](e,r,n)}}(ce[t].toUpperCase());function de(t){return t.segment.length&&t.segment.length-1===ue[t.segment[0].toUpperCase()]}function fe(t,e){t.inNumber&&me(t,!1);const r=J.test(e);if(r)t.segment=[e];else{const e=t.lastCommand,r=e.toLowerCase(),n=e===r;t.segment=["m"===r?n?"l":"L":e]}return t.inSegment=!0,t.lastCommand=t.segment[0],r}function me(t,e){if(!t.inNumber)throw new Error("Parser Error");t.number&&t.segment.push(parseFloat(t.number)),t.inNumber=e,t.number="",t.pointSeen=!1,t.hasExponent=!1,de(t)&&pe(t)}function pe(t){t.inSegment=!1,t.absolute&&(t.segment=function(t){const e=t.segment[0];return le[e](t.segment.slice(1),t.p,t.p0)}(t)),t.segments.push(t.segment)}function ge(t){if(!t.segment.length)return!1;const e="A"===t.segment[0].toUpperCase(),r=t.segment.length;return e&&(4===r||5===r)}function ye(t){return"E"===t.lastToken.toUpperCase()}const be=new Set([" ",",","\t","\n","\r","\f"]);class we extends _t{bbox(){return st().path.setAttribute("d",this.toString()),new at(st.nodes.path.getBBox())}move(t,e){const r=this.bbox();if(t-=r.x,e-=r.y,!isNaN(t)&&!isNaN(e))for(let r,n=this.length-1;n>=0;n--)r=this[n][0],"M"===r||"L"===r||"T"===r?(this[n][1]+=t,this[n][2]+=e):"H"===r?this[n][1]+=t:"V"===r?this[n][1]+=e:"C"===r||"S"===r||"Q"===r?(this[n][1]+=t,this[n][2]+=e,this[n][3]+=t,this[n][4]+=e,"C"===r&&(this[n][5]+=t,this[n][6]+=e)):"A"===r&&(this[n][6]+=t,this[n][7]+=e);return this}parse(t="M0 0"){return Array.isArray(t)&&(t=Array.prototype.concat.apply([],t).toString()),function(t,e=!0){let r=0,n="";const i={segment:[],inNumber:!1,number:"",lastToken:"",inSegment:!1,segments:[],pointSeen:!1,hasExponent:!1,absolute:e,p0:new rt,p:new rt};for(;i.lastToken=n,n=t.charAt(r++);)if(i.inSegment||!fe(i,n))if("."!==n)if(isNaN(parseInt(n)))if(be.has(n))i.inNumber&&me(i,!1);else if("-"!==n&&"+"!==n)if("E"!==n.toUpperCase()){if(J.test(n)){if(i.inNumber)me(i,!1);else{if(!de(i))throw new Error("parser Error");pe(i)}--r}}else i.number+=n,i.hasExponent=!0;else{if(i.inNumber&&!ye(i)){me(i,!1),--r;continue}i.number+=n,i.inNumber=!0}else{if("0"===i.number||ge(i)){i.inNumber=!0,i.number=n,me(i,!0);continue}i.inNumber=!0,i.number+=n}else{if(i.pointSeen||i.hasExponent){me(i,!1),--r;continue}i.inNumber=!0,i.pointSeen=!0,i.number+=n}return i.inNumber&&me(i,!1),i.inSegment&&de(i)&&pe(i),i.segments}(t)}size(t,e){const r=this.bbox();let n,i;for(r.width=0===r.width?1:r.width,r.height=0===r.height?1:r.height,n=this.length-1;n>=0;n--)i=this[n][0],"M"===i||"L"===i||"T"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y):"H"===i?this[n][1]=(this[n][1]-r.x)*t/r.width+r.x:"V"===i?this[n][1]=(this[n][1]-r.y)*e/r.height+r.y:"C"===i||"S"===i||"Q"===i?(this[n][1]=(this[n][1]-r.x)*t/r.width+r.x,this[n][2]=(this[n][2]-r.y)*e/r.height+r.y,this[n][3]=(this[n][3]-r.x)*t/r.width+r.x,this[n][4]=(this[n][4]-r.y)*e/r.height+r.y,"C"===i&&(this[n][5]=(this[n][5]-r.x)*t/r.width+r.x,this[n][6]=(this[n][6]-r.y)*e/r.height+r.y)):"A"===i&&(this[n][1]=this[n][1]*t/r.width,this[n][2]=this[n][2]*e/r.height,this[n][6]=(this[n][6]-r.x)*t/r.width+r.x,this[n][7]=(this[n][7]-r.y)*e/r.height+r.y);return this}toString(){return function(t){let e="";for(let r=0,n=t.length;r<n;r++)e+=t[r][0],null!=t[r][1]&&(e+=t[r][1],null!=t[r][2]&&(e+=" ",e+=t[r][2],null!=t[r][3]&&(e+=" ",e+=t[r][3],e+=" ",e+=t[r][4],null!=t[r][5]&&(e+=" ",e+=t[r][5],e+=" ",e+=t[r][6],null!=t[r][7]&&(e+=" ",e+=t[r][7])))));return e+" "}(this)}}const xe=t=>{const e=typeof t;return"number"===e?St:"string"===e?et.isColor(t)?et:Q.test(t)?J.test(t)?we:_t:F.test(t)?St:_e:Ne.indexOf(t.constructor)>-1?t.constructor:Array.isArray(t)?_t:"object"===e?Oe:_e};class ve{constructor(t){this._stepper=t||new oe("-"),this._from=null,this._to=null,this._type=null,this._context=null,this._morphObj=null}at(t){return this._morphObj.morph(this._from,this._to,t,this._stepper,this._context)}done(){return this._context.map(this._stepper.done).reduce((function(t,e){return t&&e}),!0)}from(t){return null==t?this._from:(this._from=this._set(t),this)}stepper(t){return null==t?this._stepper:(this._stepper=t,this)}to(t){return null==t?this._to:(this._to=this._set(t),this)}type(t){return null==t?this._type:(this._type=t,this)}_set(t){this._type||this.type(xe(t));let e=new this._type(t);return this._type===et&&(e=this._to?e[this._to[4]]():this._from?e[this._from[4]]():e),this._type===Oe&&(e=this._to?e.align(this._to):this._from?e.align(this._from):e),e=e.toConsumable(),this._morphObj=this._morphObj||new this._type,this._context=this._context||Array.apply(null,Array(e.length)).map(Object).map((function(t){return t.done=!0,t})),e}}class _e{constructor(...t){this.init(...t)}init(t){return t=Array.isArray(t)?t[0]:t,this.value=t,this}toArray(){return[this.value]}valueOf(){return this.value}}class Se{constructor(...t){this.init(...t)}init(t){return Array.isArray(t)&&(t={scaleX:t[0],scaleY:t[1],shear:t[2],rotate:t[3],translateX:t[4],translateY:t[5],originX:t[6],originY:t[7]}),Object.assign(this,Se.defaults,t),this}toArray(){const t=this;return[t.scaleX,t.scaleY,t.shear,t.rotate,t.translateX,t.translateY,t.originX,t.originY]}}Se.defaults={scaleX:1,scaleY:1,shear:0,rotate:0,translateX:0,translateY:0,originX:0,originY:0};const Me=(t,e)=>t[0]<e[0]?-1:t[0]>e[0]?1:0;class Oe{constructor(...t){this.init(...t)}align(t){const e=this.values;for(let r=0,n=e.length;r<n;++r){if(e[r+1]===t[r+1]){if(e[r+1]===et&&t[r+7]!==e[r+7]){const e=t[r+7],n=new et(this.values.splice(r+3,5))[e]().toArray();this.values.splice(r+3,0,...n)}r+=e[r+2]+2;continue}if(!t[r+1])return this;const n=(new t[r+1]).toArray(),i=e[r+2]+3;e.splice(r,i,t[r],t[r+1],t[r+2],...n),r+=e[r+2]+2}return this}init(t){if(this.values=[],Array.isArray(t))return void(this.values=t.slice());t=t||{};const e=[];for(const r in t){const n=xe(t[r]),i=new n(t[r]).toArray();e.push([r,n,i.length,...i])}return e.sort(Me),this.values=e.reduce(((t,e)=>t.concat(e)),[]),this}toArray(){return this.values}valueOf(){const t={},e=this.values;for(;e.length;){const r=e.shift(),n=e.shift(),i=e.shift(),s=e.splice(0,i);t[r]=new n(s)}return t}}const Ne=[_e,Se,Oe];class Ce extends Tt{constructor(t,e=t){super(E("path",t),e)}array(){return this._array||(this._array=new we(this.attr("d")))}clear(){return delete this._array,this}height(t){return null==t?this.bbox().height:this.size(this.bbox().width,t)}move(t,e){return this.attr("d",this.array().move(t,e))}plot(t){return null==t?this.array():this.clear().attr("d","string"==typeof t?t:this._array=new we(t))}size(t,e){const r=g(this,t,e);return this.attr("d",this.array().size(r.width,r.height))}width(t){return null==t?this.bbox().width:this.size(t,this.bbox().height)}x(t){return null==t?this.bbox().x:this.move(t,this.bbox().y)}y(t){return null==t?this.bbox().y:this.move(this.bbox().x,t)}}function Pe(){return this._array||(this._array=new Wt(this.attr("points")))}function Ae(){return delete this._array,this}function Ee(t,e){return this.attr("points",this.array().move(t,e))}function Te(t){return null==t?this.array():this.clear().attr("points","string"==typeof t?t:this._array=new Wt(t))}function je(t,e){const r=g(this,t,e);return this.attr("points",this.array().size(r.width,r.height))}Ce.prototype.MorphArray=we,l({Container:{path:V((function(t){return this.put(new Ce).plot(t||new we)}))}}),D(Ce,"Path");class De extends Tt{constructor(t,e=t){super(E("polygon",t),e)}}l({Container:{polygon:V((function(t){return this.put(new De).plot(t||new Wt)}))}}),L(De,i),L(De,s),D(De,"Polygon");class ke extends Tt{constructor(t,e=t){super(E("polyline",t),e)}}l({Container:{polyline:V((function(t){return this.put(new ke).plot(t||new Wt)}))}}),L(ke,i),L(ke,s),D(ke,"Polyline");class Be extends Tt{constructor(t,e=t){super(E("rect",t),e)}}L(Be,{rx:jt,ry:Dt}),l({Container:{rect:V((function(t,e){return this.put(new Be).size(t,e)}))}}),D(Be,"Rect");class Ie{constructor(){this._first=null,this._last=null}first(){return this._first&&this._first.value}last(){return this._last&&this._last.value}push(t){const e=void 0!==t.next?t:{value:t,next:null,prev:null};return this._last?(e.prev=this._last,this._last.next=e,this._last=e):(this._last=e,this._first=e),e}remove(t){t.prev&&(t.prev.next=t.next),t.next&&(t.next.prev=t.prev),t===this._last&&(this._last=t.prev),t===this._first&&(this._first=t.next),t.prev=null,t.next=null}shift(){const t=this._first;return t?(this._first=t.next,this._first&&(this._first.prev=null),this._last=this._first?this._last:null,t.value):null}}const Le={nextDraw:null,frames:new Ie,timeouts:new Ie,immediates:new Ie,timer:()=>M.window.performance||M.window.Date,transforms:[],frame(t){const e=Le.frames.push({run:t});return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),e},timeout(t,e){e=e||0;const r=Le.timer().now()+e,n=Le.timeouts.push({run:t,time:r});return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),n},immediate(t){const e=Le.immediates.push(t);return null===Le.nextDraw&&(Le.nextDraw=M.window.requestAnimationFrame(Le._draw)),e},cancelFrame(t){null!=t&&Le.frames.remove(t)},clearTimeout(t){null!=t&&Le.timeouts.remove(t)},cancelImmediate(t){null!=t&&Le.immediates.remove(t)},_draw(t){let e=null;const r=Le.timeouts.last();for(;(e=Le.timeouts.shift())&&(t>=e.time?e.run():Le.timeouts.push(e),e!==r););let n=null;const i=Le.frames.last();for(;n!==i&&(n=Le.frames.shift());)n.run(t);let s=null;for(;s=Le.immediates.shift();)s();Le.nextDraw=Le.timeouts.first()||Le.frames.first()?M.window.requestAnimationFrame(Le._draw):null}},Ve=Le,Fe=function(t){const e=t.start,r=t.runner.duration();return{start:e,duration:r,end:e+r,runner:t.runner}},Re=function(){const t=M.window;return(t.performance||t.Date).now()};class ze extends wt{constructor(t=Re){super(),this._timeSource=t,this.terminate()}active(){return!!this._nextFrame}finish(){return this.time(this.getEndTimeOfTimeline()+1),this.pause()}getEndTime(){const t=this.getLastRunnerInfo(),e=t?t.runner.duration():0;return(t?t.start:this._time)+e}getEndTimeOfTimeline(){const t=this._runners.map((t=>t.start+t.runner.duration()));return Math.max(0,...t)}getLastRunnerInfo(){return this.getRunnerInfoById(this._lastRunnerId)}getRunnerInfoById(t){return this._runners[this._runnerIds.indexOf(t)]||null}pause(){return this._paused=!0,this._continue()}persist(t){return null==t?this._persist:(this._persist=t,this)}play(){return this._paused=!1,this.updateTime()._continue()}reverse(t){const e=this.speed();if(null==t)return this.speed(-e);const r=Math.abs(e);return this.speed(t?-r:r)}schedule(t,e,r){if(null==t)return this._runners.map(Fe);let n=0;const i=this.getEndTime();if(e=e||0,null==r||"last"===r||"after"===r)n=i;else if("absolute"===r||"start"===r)n=e,e=0;else if("now"===r)n=this._time;else if("relative"===r){const r=this.getRunnerInfoById(t.id);r&&(n=r.start+e,e=0)}else{if("with-last"!==r)throw new Error('Invalid value for the "when" parameter');{const t=this.getLastRunnerInfo();n=t?t.start:this._time}}t.unschedule(),t.timeline(this);const s=t.persist(),o={persist:null===s?this._persist:s,start:n+e,runner:t};return this._lastRunnerId=t.id,this._runners.push(o),this._runners.sort(((t,e)=>t.start-e.start)),this._runnerIds=this._runners.map((t=>t.runner.id)),this.updateTime()._continue(),this}seek(t){return this.time(this._time+t)}source(t){return null==t?this._timeSource:(this._timeSource=t,this)}speed(t){return null==t?this._speed:(this._speed=t,this)}stop(){return this.time(0),this.pause()}time(t){return null==t?this._time:(this._time=t,this._continue(!0))}unschedule(t){const e=this._runnerIds.indexOf(t.id);return e<0||(this._runners.splice(e,1),this._runnerIds.splice(e,1),t.timeline(null)),this}updateTime(){return this.active()||(this._lastSourceTime=this._timeSource()),this}_continue(t=!1){return Ve.cancelFrame(this._nextFrame),this._nextFrame=null,t?this._stepImmediate():(this._paused||(this._nextFrame=Ve.frame(this._step)),this)}_stepFn(t=!1){const e=this._timeSource();let r=e-this._lastSourceTime;t&&(r=0);const n=this._speed*r+(this._time-this._lastStepTime);this._lastSourceTime=e,t||(this._time+=n,this._time=this._time<0?0:this._time),this._lastStepTime=this._time,this.fire("time",this._time);for(let t=this._runners.length;t--;){const e=this._runners[t],r=e.runner;this._time-e.start<=0&&r.reset()}let i=!1;for(let t=0,e=this._runners.length;t<e;t++){const r=this._runners[t],s=r.runner;let o=n;const a=this._time-r.start;a<=0?i=!0:(a<o&&(o=a),s.active()&&(s.step(o).done?!0!==r.persist&&s.duration()-s.time()+this._time+r.persist<this._time&&(s.unschedule(),--t,--e):i=!0))}return i&&!(this._speed<0&&0===this._time)||this._runnerIds.length&&this._speed<0&&this._time>0?this._continue():(this.pause(),this.fire("finished")),this}terminate(){this._startTime=0,this._speed=1,this._persist=0,this._nextFrame=null,this._paused=!0,this._runners=[],this._runnerIds=[],this._lastRunnerId=-1,this._time=0,this._lastSourceTime=0,this._lastStepTime=0,this._step=this._stepFn.bind(this,!1),this._stepImmediate=this._stepFn.bind(this,!0)}}l({Element:{timeline:function(t){return null==t?(this._timeline=this._timeline||new ze,this._timeline):(this._timeline=t,this)}}});class Xe extends wt{constructor(t){super(),this.id=Xe.id++,t="function"==typeof(t=null==t?400:t)?new ae(t):t,this._element=null,this._timeline=null,this.done=!1,this._queue=[],this._duration="number"==typeof t&&t,this._isDeclarative=t instanceof ae,this._stepper=this._isDeclarative?t:new oe,this._history={},this.enabled=!0,this._time=0,this._lastTime=0,this._reseted=!0,this.transforms=new it,this.transformId=1,this._haveReversed=!1,this._reverse=!1,this._loopsDone=0,this._swing=!1,this._wait=0,this._times=1,this._frameId=null,this._persist=!!this._isDeclarative||null}static sanitise(t,e,r){let n=1,i=!1,s=0;return e=e??0,r=r||"last","object"!=typeof(t=t??400)||t instanceof se||(e=t.delay??e,r=t.when??r,i=t.swing||i,n=t.times??n,s=t.wait??s,t=t.duration??400),{duration:t,delay:e,swing:i,times:n,wait:s,when:r}}active(t){return null==t?this.enabled:(this.enabled=t,this)}addTransform(t){return this.transforms.lmultiplyO(t),this}after(t){return this.on("finished",t)}animate(t,e,r){const n=Xe.sanitise(t,e,r),i=new Xe(n.duration);return this._timeline&&i.timeline(this._timeline),this._element&&i.element(this._element),i.loop(n).schedule(n.delay,n.when)}clearTransform(){return this.transforms=new it,this}clearTransformsFromQueue(){this.done&&this._timeline&&this._timeline._runnerIds.includes(this.id)||(this._queue=this._queue.filter((t=>!t.isTransform)))}delay(t){return this.animate(0,t)}duration(){return this._times*(this._wait+this._duration)-this._wait}during(t){return this.queue(null,t)}ease(t){return this._stepper=new oe(t),this}element(t){return null==t?this._element:(this._element=t,t._prepareRunner(),this)}finish(){return this.step(1/0)}loop(t,e,r){return"object"==typeof t&&(e=t.swing,r=t.wait,t=t.times),this._times=t||1/0,this._swing=e||!1,this._wait=r||0,!0===this._times&&(this._times=1/0),this}loops(t){const e=this._duration+this._wait;if(null==t){const t=Math.floor(this._time/e),r=(this._time-t*e)/this._duration;return Math.min(t+r,this._times)}const r=t%1,n=e*Math.floor(t)+this._duration*r;return this.time(n)}persist(t){return null==t?this._persist:(this._persist=t,this)}position(t){const e=this._time,r=this._duration,n=this._wait,i=this._times,s=this._swing,o=this._reverse;let a;if(null==t){const t=function(t){const e=s*Math.floor(t%(2*(n+r))/(n+r)),i=e&&!o||!e&&o,a=Math.pow(-1,i)*(t%(n+r))/r+i;return Math.max(Math.min(a,1),0)},h=i*(n+r)-n;return a=e<=0?Math.round(t(1e-5)):e<h?t(e):Math.round(t(h-1e-5)),a}const h=Math.floor(this.loops()),u=s&&h%2==0;return a=h+(u&&!o||o&&u?t:1-t),this.loops(a)}progress(t){return null==t?Math.min(1,this._time/this.duration()):this.time(t*this.duration())}queue(t,e,r,n){return this._queue.push({initialiser:t||xt,runner:e||xt,retarget:r,isTransform:n,initialised:!1,finished:!1}),this.timeline()&&this.timeline()._continue(),this}reset(){return this._reseted||(this.time(0),this._reseted=!0),this}reverse(t){return this._reverse=null==t?!this._reverse:t,this}schedule(t,e,r){if(t instanceof ze||(r=e,e=t,t=this.timeline()),!t)throw Error("Runner cannot be scheduled without timeline");return t.schedule(this,e,r),this}step(t){if(!this.enabled)return this;t=null==t?16:t,this._time+=t;const e=this.position(),r=this._lastPosition!==e&&this._time>=0;this._lastPosition=e;const n=this.duration(),i=this._lastTime<=0&&this._time>0,s=this._lastTime<n&&this._time>=n;this._lastTime=this._time,i&&this.fire("start",this);const o=this._isDeclarative;this.done=!o&&!s&&this._time>=n,this._reseted=!1;let a=!1;return(r||o)&&(this._initialise(r),this.transforms=new it,a=this._run(o?t:e),this.fire("step",this)),this.done=this.done||a&&o,s&&this.fire("finished",this),this}time(t){if(null==t)return this._time;const e=t-this._time;return this.step(e),this}timeline(t){return void 0===t?this._timeline:(this._timeline=t,this)}unschedule(){const t=this.timeline();return t&&t.unschedule(this),this}_initialise(t){if(t||this._isDeclarative)for(let e=0,r=this._queue.length;e<r;++e){const r=this._queue[e],n=this._isDeclarative||!r.initialised&&t;t=!r.finished,n&&t&&(r.initialiser.call(this),r.initialised=!0)}}_rememberMorpher(t,e){if(this._history[t]={morpher:e,caller:this._queue[this._queue.length-1]},this._isDeclarative){const t=this.timeline();t&&t.play()}}_run(t){let e=!0;for(let r=0,n=this._queue.length;r<n;++r){const n=this._queue[r],i=n.runner.call(this,t);n.finished=n.finished||!0===i,e=e&&n.finished}return e}_tryRetarget(t,e,r){if(this._history[t]){if(!this._history[t].caller.initialised){const e=this._queue.indexOf(this._history[t].caller);return this._queue.splice(e,1),!1}this._history[t].caller.retarget?this._history[t].caller.retarget.call(this,e,r):this._history[t].morpher.to(e),this._history[t].caller.finished=!1;const n=this.timeline();return n&&n.play(),!0}return!1}}Xe.id=0;class qe{constructor(t=new it,e=-1,r=!0){this.transforms=t,this.id=e,this.done=r}clearTransformsFromQueue(){}}L([Xe,qe],{mergeWith(t){return new qe(t.transforms.lmultiply(this.transforms),t.id)}});const Ge=(t,e)=>t.lmultiplyO(e),Ye=t=>t.transforms;function Ue(){const t=this._transformationRunners.runners.map(Ye).reduce(Ge,new it);this.transform(t),this._transformationRunners.merge(),1===this._transformationRunners.length()&&(this._frameId=null)}class He{constructor(){this.runners=[],this.ids=[]}add(t){if(this.runners.includes(t))return;const e=t.id+1;return this.runners.push(t),this.ids.push(e),this}clearBefore(t){const e=this.ids.indexOf(t+1)||1;return this.ids.splice(0,e,0),this.runners.splice(0,e,new qe).forEach((t=>t.clearTransformsFromQueue())),this}edit(t,e){const r=this.ids.indexOf(t+1);return this.ids.splice(r,1,t+1),this.runners.splice(r,1,e),this}getByID(t){return this.runners[this.ids.indexOf(t+1)]}length(){return this.ids.length}merge(){let t=null;for(let e=0;e<this.runners.length;++e){const r=this.runners[e];if(!(t&&r.done&&t.done)||r._timeline&&r._timeline._runnerIds.includes(r.id)||t._timeline&&t._timeline._runnerIds.includes(t.id))t=r;else{this.remove(r.id);const n=r.mergeWith(t);this.edit(t.id,n),t=n,--e}}return this}remove(t){const e=this.ids.indexOf(t+1);return this.ids.splice(e,1),this.runners.splice(e,1),this}}l({Element:{animate(t,e,r){const n=Xe.sanitise(t,e,r),i=this.timeline();return new Xe(n.duration).loop(n).element(this).timeline(i.play()).schedule(n.delay,n.when)},delay(t,e){return this.animate(0,t,e)},_clearTransformRunnersBefore(t){this._transformationRunners.clearBefore(t.id)},_currentTransform(t){return this._transformationRunners.runners.filter((e=>e.id<=t.id)).map(Ye).reduce(Ge,new it)},_addRunner(t){this._transformationRunners.add(t),Ve.cancelImmediate(this._frameId),this._frameId=Ve.immediate(Ue.bind(this))},_prepareRunner(){null==this._frameId&&(this._transformationRunners=(new He).add(new qe(new it(this))))}}}),L(Xe,{attr(t,e){return this.styleAttr("attr",t,e)},css(t,e){return this.styleAttr("css",t,e)},styleAttr(t,e,r){if("string"==typeof e)return this.styleAttr(t,{[e]:r});let n=e;if(this._tryRetarget(t,n))return this;let i=new ve(this._stepper).to(n),s=Object.keys(n);return this.queue((function(){i=i.from(this.element()[t](s))}),(function(e){return this.element()[t](i.at(e).valueOf()),i.done()}),(function(e){const r=Object.keys(e),o=(a=s,r.filter((t=>!a.includes(t))));var a;if(o.length){const e=this.element()[t](o),r=new Oe(i.from()).valueOf();Object.assign(r,e),i.from(r)}const h=new Oe(i.to()).valueOf();Object.assign(h,e),i.to(h),s=r,n=e})),this._rememberMorpher(t,i),this},zoom(t,e){if(this._tryRetarget("zoom",t,e))return this;let r=new ve(this._stepper).to(new St(t));return this.queue((function(){r=r.from(this.element().zoom())}),(function(t){return this.element().zoom(r.at(t),e),r.done()}),(function(t,n){e=n,r.to(t)})),this._rememberMorpher("zoom",r),this},transform(t,e,r){if(e=t.relative||e,this._isDeclarative&&!e&&this._tryRetarget("transform",t))return this;const n=it.isMatrixLike(t);r=null!=t.affine?t.affine:null!=r?r:!n;const i=new ve(this._stepper).type(r?Se:it);let s,o,a,h,u;return this.queue((function(){o=o||this.element(),s=s||y(t,o),u=new it(e?void 0:o),o._addRunner(this),e||o._clearTransformRunnersBefore(this)}),(function(l){e||this.clearTransform();const{x:c,y:d}=new rt(s).transform(o._currentTransform(this));let f=new it({...t,origin:[c,d]}),m=this._isDeclarative&&a?a:u;if(r){f=f.decompose(c,d),m=m.decompose(c,d);const t=f.rotate,e=m.rotate,r=[t-360,t,t+360],n=r.map((t=>Math.abs(t-e))),i=Math.min(...n),s=n.indexOf(i);f.rotate=r[s]}e&&(n||(f.rotate=t.rotate||0),this._isDeclarative&&h&&(m.rotate=h)),i.from(m),i.to(f);const p=i.at(l);return h=p.rotate,a=new it(p),this.addTransform(a),o._addRunner(this),i.done()}),(function(e){(e.origin||"center").toString()!==(t.origin||"center").toString()&&(s=y(e,o)),t={...e,origin:s}}),!0),this._isDeclarative&&this._rememberMorpher("transform",i),this},x(t){return this._queueNumber("x",t)},y(t){return this._queueNumber("y",t)},ax(t){return this._queueNumber("ax",t)},ay(t){return this._queueNumber("ay",t)},dx(t=0){return this._queueNumberDelta("x",t)},dy(t=0){return this._queueNumberDelta("y",t)},dmove(t,e){return this.dx(t).dy(e)},_queueNumberDelta(t,e){if(e=new St(e),this._tryRetarget(t,e))return this;const r=new ve(this._stepper).to(e);let n=null;return this.queue((function(){n=this.element()[t](),r.from(n),r.to(n+e)}),(function(e){return this.element()[t](r.at(e)),r.done()}),(function(t){r.to(n+new St(t))})),this._rememberMorpher(t,r),this},_queueObject(t,e){if(this._tryRetarget(t,e))return this;const r=new ve(this._stepper).to(e);return this.queue((function(){r.from(this.element()[t]())}),(function(e){return this.element()[t](r.at(e)),r.done()})),this._rememberMorpher(t,r),this},_queueNumber(t,e){return this._queueObject(t,new St(e))},cx(t){return this._queueNumber("cx",t)},cy(t){return this._queueNumber("cy",t)},move(t,e){return this.x(t).y(e)},amove(t,e){return this.ax(t).ay(e)},center(t,e){return this.cx(t).cy(e)},size(t,e){let r;return t&&e||(r=this._element.bbox()),t||(t=r.width/r.height*e),e||(e=r.height/r.width*t),this.width(t).height(e)},width(t){return this._queueNumber("width",t)},height(t){return this._queueNumber("height",t)},plot(t,e,r,n){if(4===arguments.length)return this.plot([t,e,r,n]);if(this._tryRetarget("plot",t))return this;const i=new ve(this._stepper).type(this._element.MorphArray).to(t);return this.queue((function(){i.from(this._element.array())}),(function(t){return this._element.plot(i.at(t)),i.done()})),this._rememberMorpher("plot",i),this},leading(t){return this._queueNumber("leading",t)},viewbox(t,e,r,n){return this._queueObject("viewbox",new at(t,e,r,n))},update(t){return"object"!=typeof t?this.update({offset:arguments[0],color:arguments[1],opacity:arguments[2]}):(null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",t.offset),this)}}),L(Xe,{rx:jt,ry:Dt,from:qt,to:Gt}),D(Xe,"Runner");class $e extends At{constructor(t,e=t){super(E("svg",t),e),this.namespace()}defs(){return this.isRoot()?T(this.node.querySelector("defs"))||this.put(new Et):this.root().defs()}isRoot(){return!this.node.parentNode||!(this.node.parentNode instanceof M.window.SVGElement)&&"#document-fragment"!==this.node.parentNode.nodeName}namespace(){return this.isRoot()?this.attr({xmlns:v,version:"1.1"}).attr("xmlns:xlink",S,_):this.root().namespace()}removeNamespace(){return this.attr({xmlns:null,version:null}).attr("xmlns:xlink",null,_).attr("xmlns:svgjs",null,_)}root(){return this.isRoot()?this:super.root()}}l({Container:{nested:V((function(){return this.put(new $e)}))}}),D($e,"Svg",!0);class We extends At{constructor(t,e=t){super(E("symbol",t),e)}}function Qe(t){return!1===this._build&&this.clear(),this.node.appendChild(M.document.createTextNode(t)),this}function Je(){return this.node.getComputedTextLength()}function Ze(t,e=this.bbox()){return null==t?e.x:this.attr("x",this.attr("x")+t-e.x)}function Ke(t,e=this.bbox()){return null==t?e.y:this.attr("y",this.attr("y")+t-e.y)}function tr(t,e,r=this.bbox()){return this.x(t,r).y(e,r)}function er(t,e=this.bbox()){return null==t?e.cx:this.attr("x",this.attr("x")+t-e.cx)}function rr(t,e=this.bbox()){return null==t?e.cy:this.attr("y",this.attr("y")+t-e.cy)}function nr(t,e,r=this.bbox()){return this.cx(t,r).cy(e,r)}function ir(t){return this.attr("x",t)}function sr(t){return this.attr("y",t)}function or(t,e){return this.ax(t).ay(e)}function ar(t){return this._build=!!t,this}l({Container:{symbol:V((function(){return this.put(new We)}))}}),D(We,"Symbol");class hr extends Tt{constructor(t,e=t){super(E("text",t),e),this.dom.leading=this.dom.leading??new St(1.3),this._rebuild=!0,this._build=!1}leading(t){return null==t?this.dom.leading:(this.dom.leading=new St(t),this.rebuild())}rebuild(t){if("boolean"==typeof t&&(this._rebuild=t),this._rebuild){const t=this;let e=0;const r=this.dom.leading;this.each((function(n){if(w(this.node))return;const i=M.window.getComputedStyle(this.node).getPropertyValue("font-size"),s=r*new St(i);this.dom.newLined&&(this.attr("x",t.attr("x")),"\n"===this.text()?e+=s:(this.attr("dy",n?s+e:0),e=0))})),this.fire("rebuild")}return this}setData(t){return this.dom=t,this.dom.leading=new St(t.leading||1.3),this}writeDataToDom(){return x(this,this.dom,{leading:1.3}),this}text(t){if(void 0===t){const e=this.node.childNodes;let r=0;t="";for(let n=0,i=e.length;n<i;++n)"textPath"===e[n].nodeName||w(e[n])?0===n&&(r=n+1):(n!==r&&3!==e[n].nodeType&&!0===T(e[n]).dom.newLined&&(t+="\n"),t+=e[n].textContent);return t}if(this.clear().build(!0),"function"==typeof t)t.call(this,this);else for(let e=0,r=(t=(t+"").split("\n")).length;e<r;e++)this.newLine(t[e]);return this.build(!1).rebuild()}}L(hr,o),l({Container:{text:V((function(t=""){return this.put(new hr).text(t)})),plain:V((function(t=""){return this.put(new hr).plain(t)}))}}),D(hr,"Text");class ur extends Tt{constructor(t,e=t){super(E("tspan",t),e),this._build=!1}dx(t){return this.attr("dx",t)}dy(t){return this.attr("dy",t)}newLine(){this.dom.newLined=!0;const t=this.parent();if(!(t instanceof hr))return this;const e=t.index(this),r=M.window.getComputedStyle(this.node).getPropertyValue("font-size"),n=t.dom.leading*new St(r);return this.dy(e?n:0).attr("x",t.x())}text(t){return null==t?this.node.textContent+(this.dom.newLined?"\n":""):("function"==typeof t?(this.clear().build(!0),t.call(this,this),this.build(!1)):this.plain(t),this)}}L(ur,o),l({Tspan:{tspan:V((function(t=""){const e=new ur;return this._build||this.clear(),this.put(e).text(t)}))},Text:{newLine:function(t=""){return this.tspan(t).newLine()}}}),D(ur,"Tspan");class lr extends Tt{constructor(t,e=t){super(E("circle",t),e)}radius(t){return this.attr("r",t)}rx(t){return this.attr("r",t)}ry(t){return this.rx(t)}size(t){return this.radius(new St(t).divide(2))}}L(lr,{x:kt,y:Bt,cx:It,cy:Lt,width:Vt,height:Ft}),l({Container:{circle:V((function(t=0){return this.put(new lr).size(t).move(0,0)}))}}),D(lr,"Circle");class cr extends At{constructor(t,e=t){super(E("clipPath",t),e)}remove(){return this.targets().forEach((function(t){t.unclip()})),super.remove()}targets(){return dt("svg [clip-path*="+this.id()+"]")}}l({Container:{clip:V((function(){return this.defs().put(new cr)}))},Element:{clipper(){return this.reference("clip-path")},clipWith(t){const e=t instanceof cr?t:this.parent().clip().add(t);return this.attr("clip-path","url(#"+e.id()+")")},unclip(){return this.attr("clip-path",null)}}}),D(cr,"ClipPath");class dr extends Ct{constructor(t,e=t){super(E("foreignObject",t),e)}}function fr(t,e){return this.children().forEach((r=>{let n;try{n=r.node instanceof M.window.SVGSVGElement?new at(r.attr(["x","y","width","height"])):r.bbox()}catch(t){return}const i=new it(r),s=i.translate(t,e).transform(i.inverse()),o=new rt(n.x,n.y).transform(s);r.move(o.x,o.y)})),this}function mr(t){return this.dmove(t,0)}function pr(t){return this.dmove(0,t)}function gr(t,e=this.bbox()){return null==t?e.height:this.size(e.width,t,e)}function yr(t=0,e=0,r=this.bbox()){const n=t-r.x,i=e-r.y;return this.dmove(n,i)}function br(t,e,r=this.bbox()){const n=g(this,t,e,r),i=n.width/r.width,s=n.height/r.height;return this.children().forEach((t=>{const e=new rt(r).transform(new it(t).inverse());t.scale(i,s,e.x,e.y)})),this}function wr(t,e=this.bbox()){return null==t?e.width:this.size(t,e.height,e)}function xr(t,e=this.bbox()){return null==t?e.x:this.move(t,e.y,e)}function vr(t,e=this.bbox()){return null==t?e.y:this.move(e.x,t,e)}l({Container:{foreignObject:V((function(t,e){return this.put(new dr).size(t,e)}))}}),D(dr,"ForeignObject");class _r extends At{constructor(t,e=t){super(E("g",t),e)}}L(_r,a),l({Container:{group:V((function(){return this.put(new _r)}))}}),D(_r,"G");class Sr extends At{constructor(t,e=t){super(E("a",t),e)}target(t){return this.attr("target",t)}to(t){return this.attr("href",t,S)}}L(Sr,a),l({Container:{link:V((function(t){return this.put(new Sr).to(t)}))},Element:{unlink(){const t=this.linker();if(!t)return this;const e=t.parent();if(!e)return this.remove();const r=e.index(t);return e.add(this,r),t.remove(),this},linkTo(t){let e=this.linker();return e||(e=new Sr,this.wrap(e)),"function"==typeof t?t.call(e,e):e.to(t),this},linker(){const t=this.parent();return t&&"a"===t.node.nodeName.toLowerCase()?t:null}}}),D(Sr,"A");class Mr extends At{constructor(t,e=t){super(E("mask",t),e)}remove(){return this.targets().forEach((function(t){t.unmask()})),super.remove()}targets(){return dt("svg [mask*="+this.id()+"]")}}l({Container:{mask:V((function(){return this.defs().put(new Mr)}))},Element:{masker(){return this.reference("mask")},maskWith(t){const e=t instanceof Mr?t:this.parent().mask().add(t);return this.attr("mask","url(#"+e.id()+")")},unmask(){return this.attr("mask",null)}}}),D(Mr,"Mask");class Or extends Ct{constructor(t,e=t){super(E("stop",t),e)}update(t){return("number"==typeof t||t instanceof St)&&(t={offset:arguments[0],color:arguments[1],opacity:arguments[2]}),null!=t.opacity&&this.attr("stop-opacity",t.opacity),null!=t.color&&this.attr("stop-color",t.color),null!=t.offset&&this.attr("offset",new St(t.offset)),this}}l({Gradient:{stop:function(t,e,r){return this.put(new Or).update(t,e,r)}}}),D(Or,"Stop");class Nr extends Ct{constructor(t,e=t){super(E("style",t),e)}addText(t=""){return this.node.textContent+=t,this}font(t,e,r={}){return this.rule("@font-face",{fontFamily:t,src:e,...r})}rule(t,e){return this.addText(function(t,e){if(!t)return"";if(!e)return t;let r=t+"{";for(const t in e)r+=t.replace(/([A-Z])/g,(function(t,e){return"-"+e.toLowerCase()}))+":"+e[t]+";";return r+="}",r}(t,e))}}l("Dom",{style(t,e){return this.put(new Nr).rule(t,e)},fontface(t,e,r){return this.put(new Nr).font(t,e,r)}}),D(Nr,"Style");class Cr extends hr{constructor(t,e=t){super(E("textPath",t),e)}array(){const t=this.track();return t?t.array():null}plot(t){const e=this.track();let r=null;return e&&(r=e.plot(t)),null==t?r:this}track(){return this.reference("href")}}l({Container:{textPath:V((function(t,e){return t instanceof hr||(t=this.text(t)),t.path(e)}))},Text:{path:V((function(t,e=!0){const r=new Cr;let n;if(t instanceof Ce||(t=this.defs().path(t)),r.attr("href","#"+t,S),e)for(;n=this.node.firstChild;)r.node.appendChild(n);return this.put(r)})),textPath(){return this.findOne("textPath")}},Path:{text:V((function(t){return t instanceof hr||(t=(new hr).addTo(this.parent()).text(t)),t.path(this)})),targets(){return dt("svg textPath").filter((t=>(t.attr("href")||"").includes(this.id())))}}}),Cr.prototype.MorphArray=we,D(Cr,"TextPath");class Pr extends Tt{constructor(t,e=t){super(E("use",t),e)}use(t,e){return this.attr("href",(e||"")+"#"+t,S)}}l({Container:{use:V((function(t,e){return this.put(new Pr).use(t,e)}))}}),D(Pr,"Use"),L([$e,We,Ht,Ut,re],c("viewbox")),L([ee,ke,De,Ce],c("marker")),L(hr,c("Text")),L(Ce,c("Path")),L(Et,c("Defs")),L([hr,ur],c("Tspan")),L([Be,Rt,Yt,Xe],c("radius")),L(wt,c("EventTarget")),L(Nt,c("Dom")),L(Ct,c("Element")),L(Tt,c("Shape")),L([At,Xt],c("Container")),L(Yt,c("Gradient")),L(Xe,c("Runner")),lt.extend([...new Set(u)]),function(t=[]){Ne.push(...[].concat(t))}([St,et,at,it,_t,Wt,we,rt]),L(Ne,{to(t){return(new ve).type(this.constructor).from(this.toArray()).to(t)},fromArray(t){return this.init(t),this},toConsumable(){return this.toArray()},morph(t,e,r,n,i){return this.fromArray(t.map((function(t,s){return n.step(t,e[s],r,i[s],i)})))}});var Ar=r(726),Er=r(358);class Tr{constructor(t,e){this.svgDoc=t,this.elements=e,new MutationObserver((t=>{t.some((t=>t.removedNodes.length>0))&&(this.elements=this.elements.filter((t=>this.svgDoc.contains(t.domNode))))})).observe(t,{childList:!0,subtree:!0})}}class jr{constructor(t,e){this.svgDoc=t,this.elementsDrawing=new Tr(t,e)}get bases(){return this.elementsDrawing.elements}set bases(t){this.elementsDrawing.elements=t}append(t){t.appendTo(this.svgDoc),this.bases.push(t)}add(t){let e=Er.Nucleobase.create(t);return this.append(e),e}}var Dr,kr,Br=r(775),Ir=function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===n?i.call(t,r):i?i.value=r:e.set(t,r),r},Lr=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class Vr{constructor(t){this.domNode=t,Dr.set(this,void 0),kr.set(this,void 0),Ir(this,Dr,new Tr(t,[]),"f"),Ir(this,kr,new MutationObserver((()=>{this.elements.forEach((t=>{this.domNode.contains(t.owner.domNode)||t.domNode.remove()}))})),"f"),Lr(this,kr,"f").observe(t,{childList:!0,subtree:!0})}get elements(){return Lr(this,Dr,"f").elements}set elements(t){Lr(this,Dr,"f").elements=t}}Dr=new WeakMap,kr=new WeakMap;var Fr,Rr=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class zr{constructor(t){this.domNode=t,Fr.set(this,void 0),function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,Fr,new Vr(t),"f")}get baseOutlines(){return Rr(this,Fr,"f").elements}set baseOutlines(t){Rr(this,Fr,"f").elements=t}append(t){this.domNode.append(t.domNode),this.baseOutlines.push(t)}outline(t){let e=Br.BaseOutline.outlining(t);return t.domNode.insertAdjacentElement("beforebegin",e.domNode),this.baseOutlines.push(e),e}}Fr=new WeakMap;var Xr=r(282);class qr{constructor(t,e){this.svgDoc=t,this.elementsDrawing=new Tr(t,e),new MutationObserver((()=>{this.bonds.forEach((t=>{this.svgDoc.contains(t.base1.domNode)&&this.svgDoc.contains(t.base2.domNode)||t.remove()}))})).observe(t,{childList:!0,subtree:!0})}get bonds(){return this.elementsDrawing.elements}set bonds(t){this.elementsDrawing.elements=t}}class Gr{constructor(t,e){this.svgDoc=t,this.defaultValues={attributes:{stroke:"#808080","stroke-width":"1"},basePadding1:6,basePadding2:6},this.bondsDrawing=new qr(t,e)}get primaryBonds(){return this.bondsDrawing.bonds}set primaryBonds(t){this.bondsDrawing.bonds=t}append(t){t.appendTo(this.svgDoc),this.primaryBonds.push(t)}add(t,e){let r=Xr.StraightBond.between(t,e);return this.append(r),r.set(this.defaultValues),r}}class Yr{constructor(t,e){this.svgDoc=t,this.defaultValues={attributes:{stroke:"#000000","stroke-width":"2"},basePadding1:6,basePadding2:6},this.bondsDrawing=new qr(t,e)}get secondaryBonds(){return this.bondsDrawing.bonds}set secondaryBonds(t){this.bondsDrawing.bonds=t}append(t){t.appendTo(this.svgDoc),this.secondaryBonds.push(t)}add(t,e){let r=Xr.StraightBond.between(t,e);return this.append(r),r.set(this.defaultValues),r}}var Ur,Hr=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class $r{constructor(){Ur.set(this,void 0),this.domNode=(new $e).node,this.domNode.setAttribute("viewBox",`0 0 ${Wr} ${Qr}`),this.domNode.setAttribute("width",`${Wr}`),this.domNode.setAttribute("height",`${Qr}`),this.basesDrawing=new jr(this.domNode,[]),function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,Ur,new zr(this.domNode),"f"),this.primaryBondsDrawing=new Gr(this.domNode,[]),this.secondaryBondsDrawing=new Yr(this.domNode,[])}get outerXML(){return this.domNode.outerHTML}get innerXML(){return this.domNode.innerHTML}appendTo(t){t.appendChild(this.domNode)}remove(){this.domNode.remove()}get minX(){return this.domNode.viewBox.baseVal.x}set minX(t){let e=this.maxX-t,r=this.horizontalScaling;this.domNode.setAttribute("viewBox",`${t} ${this.minY} ${e} ${this.height}`),this.domNode.setAttribute("width",(r*e).toString())}get maxX(){return this.minX+this.width}set maxX(t){let e=t-this.minX,r=this.horizontalScaling;this.domNode.setAttribute("viewBox",`${this.minX} ${this.minY} ${e} ${this.height}`),this.domNode.setAttribute("width",(r*e).toString())}get minY(){return this.domNode.viewBox.baseVal.y}set minY(t){let e=this.maxY-t,r=this.verticalScaling;this.domNode.setAttribute("viewBox",`${this.minX} ${t} ${this.width} ${e}`),this.domNode.setAttribute("height",(r*e).toString())}get maxY(){return this.minY+this.height}set maxY(t){let e=t-this.minY,r=this.verticalScaling;this.domNode.setAttribute("viewBox",`${this.minX} ${this.minY} ${this.width} ${e}`),this.domNode.setAttribute("height",(r*e).toString())}setBoundaries({minX:t,maxX:e,minY:r,maxY:n}){this.minX=t,this.maxX=e,this.minY=r,this.maxY=n}get width(){return this.domNode.viewBox.baseVal.width}set width(t){this.maxX=this.minX+t}get height(){return this.domNode.viewBox.baseVal.height}set height(t){this.maxY=this.minY+t}get horizontalScaling(){let t=this.width;return this.domNode.width.baseVal.value/t}set horizontalScaling(t){let e=this.width;this.domNode.setAttribute("width",(t*e).toString())}get verticalScaling(){let t=this.height;return this.domNode.height.baseVal.value/t}set verticalScaling(t){let e=this.height;this.domNode.setAttribute("height",(t*e).toString())}setScaling(t){this.horizontalScaling=t,this.verticalScaling=t}get horizontalClientScaling(){return new Ar.HorizontalClientScaling(this.domNode).get()}get verticalClientScaling(){return new Ar.VerticalClientScaling(this.domNode).get()}get bases(){return this.basesDrawing.bases}appendBase(t){this.basesDrawing.append(t)}addBase(t){return this.basesDrawing.add(t)}get baseOutlines(){return Hr(this,Ur,"f").baseOutlines}outlineBase(t){return Hr(this,Ur,"f").outline(t)}appendBaseOutline(t){Hr(this,Ur,"f").append(t)}get primaryBonds(){return this.primaryBondsDrawing.primaryBonds}set primaryBonds(t){this.primaryBondsDrawing.primaryBonds=[...t]}appendPrimaryBond(t){this.primaryBondsDrawing.append(t)}addPrimaryBond(t,e){return this.primaryBondsDrawing.add(t,e)}get secondaryBonds(){return this.secondaryBondsDrawing.secondaryBonds}set secondaryBonds(t){this.secondaryBondsDrawing.secondaryBonds=[...t]}appendSecondaryBond(t){this.secondaryBondsDrawing.append(t)}addSecondaryBond(t,e){return this.secondaryBondsDrawing.add(t,e)}get defaultValues(){let t=this.primaryBondsDrawing,e=this.secondaryBondsDrawing;return{get primaryBonds(){return t.defaultValues},set primaryBonds(e){t.defaultValues=e},get secondaryBonds(){return e.defaultValues},set secondaryBonds(t){e.defaultValues=t}}}get contentBBox(){return this.domNode.getBBox()}setPadding(t){let e=this.contentBBox;this.setBoundaries({minX:e.x-t,maxX:e.x+e.width+t,minY:e.y-t,maxY:e.y+e.height+t})}reset(){this.domNode.innerHTML="",this.basesDrawing.bases=[],Hr(this,Ur,"f").baseOutlines=[],this.primaryBondsDrawing.primaryBonds=[],this.secondaryBondsDrawing.secondaryBonds=[],[...this.domNode.attributes].forEach((t=>this.domNode.removeAttribute(t.name))),this.domNode.setAttribute("viewBox",`0 0 ${Wr} ${Qr}`),this.domNode.setAttribute("width",`${Wr}`),this.domNode.setAttribute("height",`${Qr}`)}}Ur=new WeakMap;const Wr=250,Qr=250;var Jr=r(127),Zr=r(661),Kr=r(986);class tn{constructor(t){this.targetDrawing=t}draw(t,e){let r=[...t].map((t=>this.targetDrawing.addBase(t)));(0,Jr.consecutivePairs)(r).forEach((t=>this.targetDrawing.addPrimaryBond(...t)));let n=[...(0,Jr.parseDotBracket)(r,e)];n.forEach((t=>this.targetDrawing.addSecondaryBond(...t))),r.forEach((t=>t.bringToFront()));let i=1.87*(0,Kr.mean)(r.map((t=>t.bbox.height)));(0,Zr.radialize)(r,n,{spacing:i,basePairSpacing:i/2,hairpinLoopSpacing:i/2})}}var en,rn,nn,sn,on=function(t,e,r,n){if("a"===r&&!n)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===r?n:"a"===r?n.call(t):n?n.value:e.get(t)};class an{constructor(t){en.add(this),rn.set(this,void 0),function(t,e,r,n,i){if("m"===n)throw new TypeError("Private method is not writable");if("a"===n&&!i)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!i:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");"a"===n?i.call(t,r):i?i.value=r:e.set(t,r)}(this,rn,t,"f")}draw(t){t.rnaComplexes.forEach((e=>{e.rnaMolecules.forEach((e=>{let r=e.sequence.map((e=>on(this,en,"m",nn).call(this,e,t))),n=(0,Kr.mean)(r.map((t=>t.bbox.height)));on(this,rn,"f").defaultValues.primaryBonds.attributes["stroke-width"]=""+.125*n,on(this,rn,"f").defaultValues.primaryBonds.basePadding1=.6*n,on(this,rn,"f").defaultValues.primaryBonds.basePadding2=.6*n,(0,Jr.consecutivePairs)(r).forEach((t=>on(this,rn,"f").addPrimaryBond(...t))),on(this,rn,"f").defaultValues.secondaryBonds.attributes["stroke-width"]=""+.15*n,on(this,rn,"f").defaultValues.secondaryBonds.basePadding1=.5*n,on(this,rn,"f").defaultValues.secondaryBonds.basePadding2=.5*n,new Set(e.basePairs.map((t=>JSON.stringify(t)))).forEach((e=>on(this,en,"m",sn).call(this,JSON.parse(e),r,t)))}))}))}}rn=new WeakMap,en=new WeakSet,nn=function(t,e){let r=on(this,rn,"f").addBase(t.residueName);return t.classes.forEach((t=>{e.classes.filter((e=>e.name==t)).forEach((t=>r.setAttributes(Object.assign(Object.assign({},t),{name:void 0}))))})),r.centerPoint.x=t.x,r.centerPoint.y=t.y,r},sn=function(t,e,r){let n=e[t.residueIndex1],i=e[t.residueIndex2],s=on(this,rn,"f").addSecondaryBond(n,i);return t.classes.forEach((t=>{r.classes.filter((e=>e.name==t)).forEach((t=>s.setAttributes(Object.assign(Object.assign({},t),{name:void 0}))))})),s}})(),n})()));