From 6efb4434811a1efa10e0d9e55bd96aefc02332a3 Mon Sep 17 00:00:00 2001 From: Marcel Baumgartner Date: Wed, 23 Aug 2023 17:42:24 +0200 Subject: [PATCH 01/12] Update launchSettings.json --- Moonlight/Properties/launchSettings.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Moonlight/Properties/launchSettings.json b/Moonlight/Properties/launchSettings.json index 9d662090..6e88d09e 100644 --- a/Moonlight/Properties/launchSettings.json +++ b/Moonlight/Properties/launchSettings.json @@ -9,7 +9,7 @@ "ASPNETCORE_ENVIRONMENT": "Development", "ML_DEBUG": "true" }, - "applicationUrl": "http://moonlight.testy:5118;https://localhost:7118;http://localhost:5118", + "applicationUrl": "http://moonlight.owo:5118;https://localhost:7118;http://localhost:5118", "dotnetRunMessages": true }, "Live DB": @@ -21,7 +21,7 @@ "ML_DEBUG": "true", "ML_CONFIG_PATH": "storage\\configs\\live_config.json" }, - "applicationUrl": "http://moonlight.testy:5118;https://localhost:7118;http://localhost:5118", + "applicationUrl": "http://moonlight.owo:5118;https://localhost:7118;http://localhost:5118", "dotnetRunMessages": true }, "Dev DB 1": @@ -33,7 +33,7 @@ "ML_DEBUG": "true", "ML_CONFIG_PATH": "storage\\configs\\dev_1_config.json" }, - "applicationUrl": "http://moonlight.testy:5118;https://localhost:7118;http://localhost:5118", + "applicationUrl": "http://moonlight.owo:5118;https://localhost:7118;http://localhost:5118", "dotnetRunMessages": true }, "Dev DB 2": @@ -45,7 +45,7 @@ "ML_DEBUG": "true", "ML_CONFIG_PATH": "storage\\configs\\dev_2_config.json" }, - "applicationUrl": "http://moonlight.testy:5118;https://localhost:7118;http://localhost:5118", + "applicationUrl": "http://moonlight.owo:5118;https://localhost:7118;http://localhost:5118", "dotnetRunMessages": true } } From 1d33cf3110b2638ff707ca71791fd4c627a8902e Mon Sep 17 00:00:00 2001 From: Marcel Baumgartner Date: Sun, 27 Aug 2023 17:29:37 +0200 Subject: [PATCH 02/12] Reduced external js, added libraries to assets --- Moonlight/Pages/_Layout.cshtml | 20 +- Moonlight/wwwroot/assets/css/snow.css | 9 - Moonlight/wwwroot/assets/css/toastr.css | 372 + Moonlight/wwwroot/assets/js/bootstrap.min.js | 7 + .../wwwroot/assets/js/draggable.bundle.js | 7522 +++++++++++++++++ Moonlight/wwwroot/assets/js/jquery.min.js | 2 + Moonlight/wwwroot/assets/js/popper.min.js | 6 + Moonlight/wwwroot/assets/js/toastr.min.js | 1 + .../wwwroot/assets/js/xterm-addon-fit.min.js | 8 + 9 files changed, 7928 insertions(+), 19 deletions(-) delete mode 100644 Moonlight/wwwroot/assets/css/snow.css create mode 100644 Moonlight/wwwroot/assets/css/toastr.css create mode 100644 Moonlight/wwwroot/assets/js/bootstrap.min.js create mode 100644 Moonlight/wwwroot/assets/js/draggable.bundle.js create mode 100644 Moonlight/wwwroot/assets/js/jquery.min.js create mode 100644 Moonlight/wwwroot/assets/js/popper.min.js create mode 100644 Moonlight/wwwroot/assets/js/toastr.min.js create mode 100644 Moonlight/wwwroot/assets/js/xterm-addon-fit.min.js diff --git a/Moonlight/Pages/_Layout.cshtml b/Moonlight/Pages/_Layout.cshtml index c840ed2c..968aaf46 100644 --- a/Moonlight/Pages/_Layout.cshtml +++ b/Moonlight/Pages/_Layout.cshtml @@ -41,7 +41,6 @@ - @@ -50,8 +49,8 @@ - - + + @@ -96,20 +95,21 @@ - - + + - + - - + + + @@ -122,8 +122,8 @@ moonlight.loading.registerXterm(); - - + + diff --git a/Moonlight/wwwroot/assets/css/snow.css b/Moonlight/wwwroot/assets/css/snow.css deleted file mode 100644 index b3fb1310..00000000 --- a/Moonlight/wwwroot/assets/css/snow.css +++ /dev/null @@ -1,9 +0,0 @@ -.snow-canvas { - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - z-index: -1; - pointer-events: none; -} \ No newline at end of file diff --git a/Moonlight/wwwroot/assets/css/toastr.css b/Moonlight/wwwroot/assets/css/toastr.css new file mode 100644 index 00000000..48a74a5f --- /dev/null +++ b/Moonlight/wwwroot/assets/css/toastr.css @@ -0,0 +1,372 @@ +.toastr-title { + font-weight: bold; +} + +.toastr-message { + -ms-word-wrap: break-word; + word-wrap: break-word; +} + +.toastr-message a, +.toastr-message label { + color: #FFFFFF; +} + +.toastr-message a:hover { + color: #CCCCCC; + text-decoration: none; +} + +.toastr-close-button { + position: relative; + right: -0.3em; + top: -0.3em; + float: right; + font-size: 20px; + font-weight: bold; + color: #FFFFFF; + -webkit-text-shadow: 0 1px 0 #ffffff; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.8; + -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80); + filter: alpha(opacity=80); + line-height: 1; +} + +.toastr-close-button:hover, +.toastr-close-button:focus { + color: #000000; + text-decoration: none; + cursor: pointer; + opacity: 0.4; + -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40); + filter: alpha(opacity=40); +} + +.rtl .toastr-close-button { + left: -0.3em; + float: left; + right: 0.3em; +} + +/*Additional properties for button version + iOS requires the button element instead of an anchor tag. + If you want the anchor version, it requires `href="#"`.*/ +button.toastr-close-button { + padding: 0; + cursor: pointer; + background: transparent; + border: 0; + -webkit-appearance: none; +} + +.toastr-top-center { + top: 0; + right: 0; + width: 100%; +} + +.toastr-top-center-nav-margin { + top: 65px; + right: 0; + width: 100%; +} + +.toastr-bottom-center { + bottom: 0; + right: 0; + width: 100%; +} + +.toastr-top-full-width { + top: 0; + right: 0; + width: 100%; +} + +.toastr-top-full-width-nav-margin { + top: 65px; + right: 0; + width: 100%; +} + +.toastr-bottom-full-width { + bottom: 0; + right: 0; + width: 100%; +} + +.toastr-top-left { + top: 12px; + left: 12px; +} + +.toastr-top-left-nav-margin { + top: 65px; + left: 12px; +} + +.toastr-top-right { + top: 12px; + right: 12px; +} + +.toastr-top-right-nav-margin { + top: 65px; + right: 12px; +} + +.toastr-bottom-right { + right: 12px; + bottom: 12px; +} + +.toastr-bottom-left { + bottom: 12px; + left: 12px; +} + +#toastr-container { + position: fixed; + z-index: 999999; + pointer-events: none; + /*overrides*/ +} + +#toastr-container * { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} + +#toastr-container > div { + position: relative; + pointer-events: auto; + overflow: hidden; + margin: 0 0 6px; + padding: 15px 15px 15px 50px; + width: 300px; + -moz-border-radius: 3px 3px 3px 3px; + -webkit-border-radius: 3px 3px 3px 3px; + border-radius: 3px 3px 3px 3px; + background-position: 15px center; + background-repeat: no-repeat; + -moz-box-shadow: 0 0 12px #999999; + -webkit-box-shadow: 0 0 12px #999999; + box-shadow: 0 0 12px #999999; + color: #FFFFFF; + opacity: 0.8; + -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80); + filter: alpha(opacity=80); +} + +#toastr-container > div.rtl { + direction: rtl; + padding: 15px 50px 15px 15px; + background-position: right 15px center; +} + +#toastr-container > div:hover { + -moz-box-shadow: 0 0 12px #000000; + -webkit-box-shadow: 0 0 12px #000000; + box-shadow: 0 0 12px #000000; + opacity: 1; + -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100); + filter: alpha(opacity=100); + cursor: pointer; +} + +#toastr-container > .toastr-info { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important; +} + +#toastr-container > .toastr-error { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important; +} + +#toastr-container > .toastr-success { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important; +} + +#toastr-container > .toastr-warning { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important; +} + +#toastr-container.toastr-top-center-nav-margin > div, +#toastr-container.toastr-top-center > div, +#toastr-container.toastr-bottom-center > div { + width: 300px; + margin-left: auto; + margin-right: auto; +} + +#toastr-container.toastr-top-full-width-nav-margin > div, +#toastr-container.toastr-top-full-width > div, +#toastr-container.toastr-bottom-full-width > div { + width: 96%; + margin-left: auto; + margin-right: auto; +} + +.toastr { + background-color: #030303; +} + +.toastr-success { + background-color: #51A351; +} + +.toastr-error { + background-color: #BD362F; +} + +.toastr-info { + background-color: #2F96B4; +} + +.toastr-warning { + background-color: #F89406; +} + +.toastr-progress { + position: absolute; + left: 0; + bottom: 0; + height: 4px; + background-color: #000000; + opacity: 0.4; + -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40); + filter: alpha(opacity=40); +} + +/*Responsive Design*/ +@media all and (max-width: 240px) { + #toastr-container > div { + padding: 8px 8px 8px 50px; + width: 11em; + } + #toastr-container > div.rtl { + padding: 8px 50px 8px 8px; + } + #toastr-container .toastr-close-button { + right: -0.2em; + top: -0.2em; + } + #toastr-container .rtl .toastr-close-button { + left: -0.2em; + right: 0.2em; + } +} +@media all and (min-width: 241px) and (max-width: 480px) { + #toastr-container > div { + padding: 8px 8px 8px 50px; + width: 18em; + } + #toastr-container > div.rtl { + padding: 8px 50px 8px 8px; + } + #toastr-container .toastr-close-button { + right: -0.2em; + top: -0.2em; + } + #toastr-container .rtl .toastr-close-button { + left: -0.2em; + right: 0.2em; + } +} +@media all and (min-width: 481px) and (max-width: 768px) { + #toastr-container > div { + padding: 15px 15px 15px 50px; + width: 25em; + } + #toastr-container > div.rtl { + padding: 15px 50px 15px 15px; + } +} + +.toastr { + background-position: 1.5rem center /*rtl:calc(100% - 1.5rem) center*/ !important; + box-shadow: var(--kt-dropdown-box-shadow) !important; + border-radius: 0.475rem !important; + border: 0 !important; + background-color: var(--kt-gray-100); + color: var(--kt-gray-700); + padding: 1.25rem 1.25rem 1.25rem 4.5rem !important; +} +.toastr .toastr-close-button { + outline: none !important; + font-size: 0; + width: 0.85rem; + height: 0.85rem; +} +.toastr .toastr-title { + font-size: 1.15rem; + font-weight: 500; +} +.toastr .toastr-title + .toastr-message { + margin-top: 0.25rem; +} +.toastr .toastr-message { + font-size: 1rem; + font-weight: 400; +} +.toastr.toastr-success { + background-color: var(--kt-success); + color: var(--kt-success-inverse); +} +.toastr.toastr-success .toastr-close-button { + mask-repeat: no-repeat; + mask-position: center; + -webkit-mask-repeat: no-repeat; + -webkit-mask-position: center; + background-color: var(--kt-success-inverse); + -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='var%28--kt-success-inverse%29'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e"); + mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='var%28--kt-success-inverse%29'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e"); +} +.toastr.toastr-info { + background-color: var(--kt-info); + color: var(--kt-info-inverse); +} +.toastr.toastr-info .toastr-close-button { + mask-repeat: no-repeat; + mask-position: center; + -webkit-mask-repeat: no-repeat; + -webkit-mask-position: center; + background-color: var(--kt-info-inverse); + -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='var%28--kt-info-inverse%29'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e"); + mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='var%28--kt-info-inverse%29'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e"); +} +.toastr.toastr-warning { + background-color: var(--kt-warning); + color: var(--kt-warning-inverse); +} +.toastr.toastr-warning .toastr-close-button { + mask-repeat: no-repeat; + mask-position: center; + -webkit-mask-repeat: no-repeat; + -webkit-mask-position: center; + background-color: var(--kt-warning-inverse); + -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='var%28--kt-warning-inverse%29'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e"); + mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='var%28--kt-warning-inverse%29'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e"); +} +.toastr.toastr-error { + background-color: var(--kt-danger); + color: var(--kt-danger-inverse); +} +.toastr.toastr-error .toastr-close-button { + mask-repeat: no-repeat; + mask-position: center; + -webkit-mask-repeat: no-repeat; + -webkit-mask-position: center; + background-color: var(--kt-danger-inverse); + -webkit-mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='var%28--kt-danger-inverse%29'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e"); + mask-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='var%28--kt-danger-inverse%29'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e"); +} + +.toastr-top-center { + top: 12px; +} + +.toastr-bottom-center { + bottom: 12px; +} \ No newline at end of file diff --git a/Moonlight/wwwroot/assets/js/bootstrap.min.js b/Moonlight/wwwroot/assets/js/bootstrap.min.js new file mode 100644 index 00000000..f2a11d15 --- /dev/null +++ b/Moonlight/wwwroot/assets/js/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v5.3.1 (https://getbootstrap.com/) + * Copyright 2011-2023 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e(require("@popperjs/core")):"function"==typeof define&&define.amd?define(["@popperjs/core"],e):(t="undefined"!=typeof globalThis?globalThis:t||self).bootstrap=e(t.Popper)}(this,(function(t){"use strict";function e(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t)for(const i in t)if("default"!==i){const s=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(e,i,s.get?s:{enumerable:!0,get:()=>t[i]})}return e.default=t,Object.freeze(e)}const i=e(t),s=new Map,n={set(t,e,i){s.has(t)||s.set(t,new Map);const n=s.get(t);n.has(e)||0===n.size?n.set(e,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(n.keys())[0]}.`)},get:(t,e)=>s.has(t)&&s.get(t).get(e)||null,remove(t,e){if(!s.has(t))return;const i=s.get(t);i.delete(e),0===i.size&&s.delete(t)}},o="transitionend",r=t=>(t&&window.CSS&&window.CSS.escape&&(t=t.replace(/#([^\s"#']+)/g,((t,e)=>`#${CSS.escape(e)}`))),t),a=t=>{t.dispatchEvent(new Event(o))},l=t=>!(!t||"object"!=typeof t)&&(void 0!==t.jquery&&(t=t[0]),void 0!==t.nodeType),c=t=>l(t)?t.jquery?t[0]:t:"string"==typeof t&&t.length>0?document.querySelector(r(t)):null,h=t=>{if(!l(t)||0===t.getClientRects().length)return!1;const e="visible"===getComputedStyle(t).getPropertyValue("visibility"),i=t.closest("details:not([open])");if(!i)return e;if(i!==t){const e=t.closest("summary");if(e&&e.parentNode!==i)return!1;if(null===e)return!1}return e},d=t=>!t||t.nodeType!==Node.ELEMENT_NODE||!!t.classList.contains("disabled")||(void 0!==t.disabled?t.disabled:t.hasAttribute("disabled")&&"false"!==t.getAttribute("disabled")),u=t=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof t.getRootNode){const e=t.getRootNode();return e instanceof ShadowRoot?e:null}return t instanceof ShadowRoot?t:t.parentNode?u(t.parentNode):null},_=()=>{},g=t=>{t.offsetHeight},f=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,m=[],p=()=>"rtl"===document.documentElement.dir,b=t=>{var e;e=()=>{const e=f();if(e){const i=t.NAME,s=e.fn[i];e.fn[i]=t.jQueryInterface,e.fn[i].Constructor=t,e.fn[i].noConflict=()=>(e.fn[i]=s,t.jQueryInterface)}},"loading"===document.readyState?(m.length||document.addEventListener("DOMContentLoaded",(()=>{for(const t of m)t()})),m.push(e)):e()},v=(t,e=[],i=t)=>"function"==typeof t?t(...e):i,y=(t,e,i=!0)=>{if(!i)return void v(t);const s=(t=>{if(!t)return 0;let{transitionDuration:e,transitionDelay:i}=window.getComputedStyle(t);const s=Number.parseFloat(e),n=Number.parseFloat(i);return s||n?(e=e.split(",")[0],i=i.split(",")[0],1e3*(Number.parseFloat(e)+Number.parseFloat(i))):0})(e)+5;let n=!1;const r=({target:i})=>{i===e&&(n=!0,e.removeEventListener(o,r),v(t))};e.addEventListener(o,r),setTimeout((()=>{n||a(e)}),s)},w=(t,e,i,s)=>{const n=t.length;let o=t.indexOf(e);return-1===o?!i&&s?t[n-1]:t[0]:(o+=i?1:-1,s&&(o=(o+n)%n),t[Math.max(0,Math.min(o,n-1))])},A=/[^.]*(?=\..*)\.|.*/,E=/\..*/,C=/::\d+$/,T={};let k=1;const $={mouseenter:"mouseover",mouseleave:"mouseout"},S=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function L(t,e){return e&&`${e}::${k++}`||t.uidEvent||k++}function O(t){const e=L(t);return t.uidEvent=e,T[e]=T[e]||{},T[e]}function I(t,e,i=null){return Object.values(t).find((t=>t.callable===e&&t.delegationSelector===i))}function D(t,e,i){const s="string"==typeof e,n=s?i:e||i;let o=M(t);return S.has(o)||(o=t),[s,n,o]}function N(t,e,i,s,n){if("string"!=typeof e||!t)return;let[o,r,a]=D(e,i,s);if(e in $){const t=t=>function(e){if(!e.relatedTarget||e.relatedTarget!==e.delegateTarget&&!e.delegateTarget.contains(e.relatedTarget))return t.call(this,e)};r=t(r)}const l=O(t),c=l[a]||(l[a]={}),h=I(c,r,o?i:null);if(h)return void(h.oneOff=h.oneOff&&n);const d=L(r,e.replace(A,"")),u=o?function(t,e,i){return function s(n){const o=t.querySelectorAll(e);for(let{target:r}=n;r&&r!==this;r=r.parentNode)for(const a of o)if(a===r)return F(n,{delegateTarget:r}),s.oneOff&&j.off(t,n.type,e,i),i.apply(r,[n])}}(t,i,r):function(t,e){return function i(s){return F(s,{delegateTarget:t}),i.oneOff&&j.off(t,s.type,e),e.apply(t,[s])}}(t,r);u.delegationSelector=o?i:null,u.callable=r,u.oneOff=n,u.uidEvent=d,c[d]=u,t.addEventListener(a,u,o)}function P(t,e,i,s,n){const o=I(e[i],s,n);o&&(t.removeEventListener(i,o,Boolean(n)),delete e[i][o.uidEvent])}function x(t,e,i,s){const n=e[i]||{};for(const[o,r]of Object.entries(n))o.includes(s)&&P(t,e,i,r.callable,r.delegationSelector)}function M(t){return t=t.replace(E,""),$[t]||t}const j={on(t,e,i,s){N(t,e,i,s,!1)},one(t,e,i,s){N(t,e,i,s,!0)},off(t,e,i,s){if("string"!=typeof e||!t)return;const[n,o,r]=D(e,i,s),a=r!==e,l=O(t),c=l[r]||{},h=e.startsWith(".");if(void 0===o){if(h)for(const i of Object.keys(l))x(t,l,i,e.slice(1));for(const[i,s]of Object.entries(c)){const n=i.replace(C,"");a&&!e.includes(n)||P(t,l,r,s.callable,s.delegationSelector)}}else{if(!Object.keys(c).length)return;P(t,l,r,o,n?i:null)}},trigger(t,e,i){if("string"!=typeof e||!t)return null;const s=f();let n=null,o=!0,r=!0,a=!1;e!==M(e)&&s&&(n=s.Event(e,i),s(t).trigger(n),o=!n.isPropagationStopped(),r=!n.isImmediatePropagationStopped(),a=n.isDefaultPrevented());const l=F(new Event(e,{bubbles:o,cancelable:!0}),i);return a&&l.preventDefault(),r&&t.dispatchEvent(l),l.defaultPrevented&&n&&n.preventDefault(),l}};function F(t,e={}){for(const[i,s]of Object.entries(e))try{t[i]=s}catch(e){Object.defineProperty(t,i,{configurable:!0,get:()=>s})}return t}function z(t){if("true"===t)return!0;if("false"===t)return!1;if(t===Number(t).toString())return Number(t);if(""===t||"null"===t)return null;if("string"!=typeof t)return t;try{return JSON.parse(decodeURIComponent(t))}catch(e){return t}}function H(t){return t.replace(/[A-Z]/g,(t=>`-${t.toLowerCase()}`))}const B={setDataAttribute(t,e,i){t.setAttribute(`data-bs-${H(e)}`,i)},removeDataAttribute(t,e){t.removeAttribute(`data-bs-${H(e)}`)},getDataAttributes(t){if(!t)return{};const e={},i=Object.keys(t.dataset).filter((t=>t.startsWith("bs")&&!t.startsWith("bsConfig")));for(const s of i){let i=s.replace(/^bs/,"");i=i.charAt(0).toLowerCase()+i.slice(1,i.length),e[i]=z(t.dataset[s])}return e},getDataAttribute:(t,e)=>z(t.getAttribute(`data-bs-${H(e)}`))};class q{static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(t){return t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t}_mergeConfigObj(t,e){const i=l(e)?B.getDataAttribute(e,"config"):{};return{...this.constructor.Default,..."object"==typeof i?i:{},...l(e)?B.getDataAttributes(e):{},..."object"==typeof t?t:{}}}_typeCheckConfig(t,e=this.constructor.DefaultType){for(const[s,n]of Object.entries(e)){const e=t[s],o=l(e)?"element":null==(i=e)?`${i}`:Object.prototype.toString.call(i).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(n).test(o))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${s}" provided type "${o}" but expected type "${n}".`)}var i}}class W extends q{constructor(t,e){super(),(t=c(t))&&(this._element=t,this._config=this._getConfig(e),n.set(this._element,this.constructor.DATA_KEY,this))}dispose(){n.remove(this._element,this.constructor.DATA_KEY),j.off(this._element,this.constructor.EVENT_KEY);for(const t of Object.getOwnPropertyNames(this))this[t]=null}_queueCallback(t,e,i=!0){y(t,e,i)}_getConfig(t){return t=this._mergeConfigObj(t,this._element),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}static getInstance(t){return n.get(c(t),this.DATA_KEY)}static getOrCreateInstance(t,e={}){return this.getInstance(t)||new this(t,"object"==typeof e?e:null)}static get VERSION(){return"5.3.1"}static get DATA_KEY(){return`bs.${this.NAME}`}static get EVENT_KEY(){return`.${this.DATA_KEY}`}static eventName(t){return`${t}${this.EVENT_KEY}`}}const R=t=>{let e=t.getAttribute("data-bs-target");if(!e||"#"===e){let i=t.getAttribute("href");if(!i||!i.includes("#")&&!i.startsWith("."))return null;i.includes("#")&&!i.startsWith("#")&&(i=`#${i.split("#")[1]}`),e=i&&"#"!==i?i.trim():null}return r(e)},K={find:(t,e=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(e,t)),findOne:(t,e=document.documentElement)=>Element.prototype.querySelector.call(e,t),children:(t,e)=>[].concat(...t.children).filter((t=>t.matches(e))),parents(t,e){const i=[];let s=t.parentNode.closest(e);for(;s;)i.push(s),s=s.parentNode.closest(e);return i},prev(t,e){let i=t.previousElementSibling;for(;i;){if(i.matches(e))return[i];i=i.previousElementSibling}return[]},next(t,e){let i=t.nextElementSibling;for(;i;){if(i.matches(e))return[i];i=i.nextElementSibling}return[]},focusableChildren(t){const e=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map((t=>`${t}:not([tabindex^="-"])`)).join(",");return this.find(e,t).filter((t=>!d(t)&&h(t)))},getSelectorFromElement(t){const e=R(t);return e&&K.findOne(e)?e:null},getElementFromSelector(t){const e=R(t);return e?K.findOne(e):null},getMultipleElementsFromSelector(t){const e=R(t);return e?K.find(e):[]}},V=(t,e="hide")=>{const i=`click.dismiss${t.EVENT_KEY}`,s=t.NAME;j.on(document,i,`[data-bs-dismiss="${s}"]`,(function(i){if(["A","AREA"].includes(this.tagName)&&i.preventDefault(),d(this))return;const n=K.getElementFromSelector(this)||this.closest(`.${s}`);t.getOrCreateInstance(n)[e]()}))},Q=".bs.alert",X=`close${Q}`,Y=`closed${Q}`;class U extends W{static get NAME(){return"alert"}close(){if(j.trigger(this._element,X).defaultPrevented)return;this._element.classList.remove("show");const t=this._element.classList.contains("fade");this._queueCallback((()=>this._destroyElement()),this._element,t)}_destroyElement(){this._element.remove(),j.trigger(this._element,Y),this.dispose()}static jQueryInterface(t){return this.each((function(){const e=U.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}V(U,"close"),b(U);const G='[data-bs-toggle="button"]';class J extends W{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(t){return this.each((function(){const e=J.getOrCreateInstance(this);"toggle"===t&&e[t]()}))}}j.on(document,"click.bs.button.data-api",G,(t=>{t.preventDefault();const e=t.target.closest(G);J.getOrCreateInstance(e).toggle()})),b(J);const Z=".bs.swipe",tt=`touchstart${Z}`,et=`touchmove${Z}`,it=`touchend${Z}`,st=`pointerdown${Z}`,nt=`pointerup${Z}`,ot={endCallback:null,leftCallback:null,rightCallback:null},rt={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class at extends q{constructor(t,e){super(),this._element=t,t&&at.isSupported()&&(this._config=this._getConfig(e),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return ot}static get DefaultType(){return rt}static get NAME(){return"swipe"}dispose(){j.off(this._element,Z)}_start(t){this._supportPointerEvents?this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX):this._deltaX=t.touches[0].clientX}_end(t){this._eventIsPointerPenTouch(t)&&(this._deltaX=t.clientX-this._deltaX),this._handleSwipe(),v(this._config.endCallback)}_move(t){this._deltaX=t.touches&&t.touches.length>1?0:t.touches[0].clientX-this._deltaX}_handleSwipe(){const t=Math.abs(this._deltaX);if(t<=40)return;const e=t/this._deltaX;this._deltaX=0,e&&v(e>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(j.on(this._element,st,(t=>this._start(t))),j.on(this._element,nt,(t=>this._end(t))),this._element.classList.add("pointer-event")):(j.on(this._element,tt,(t=>this._start(t))),j.on(this._element,et,(t=>this._move(t))),j.on(this._element,it,(t=>this._end(t))))}_eventIsPointerPenTouch(t){return this._supportPointerEvents&&("pen"===t.pointerType||"touch"===t.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const lt=".bs.carousel",ct=".data-api",ht="next",dt="prev",ut="left",_t="right",gt=`slide${lt}`,ft=`slid${lt}`,mt=`keydown${lt}`,pt=`mouseenter${lt}`,bt=`mouseleave${lt}`,vt=`dragstart${lt}`,yt=`load${lt}${ct}`,wt=`click${lt}${ct}`,At="carousel",Et="active",Ct=".active",Tt=".carousel-item",kt=Ct+Tt,$t={ArrowLeft:_t,ArrowRight:ut},St={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},Lt={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class Ot extends W{constructor(t,e){super(t,e),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=K.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===At&&this.cycle()}static get Default(){return St}static get DefaultType(){return Lt}static get NAME(){return"carousel"}next(){this._slide(ht)}nextWhenVisible(){!document.hidden&&h(this._element)&&this.next()}prev(){this._slide(dt)}pause(){this._isSliding&&a(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval((()=>this.nextWhenVisible()),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?j.one(this._element,ft,(()=>this.cycle())):this.cycle())}to(t){const e=this._getItems();if(t>e.length-1||t<0)return;if(this._isSliding)return void j.one(this._element,ft,(()=>this.to(t)));const i=this._getItemIndex(this._getActive());if(i===t)return;const s=t>i?ht:dt;this._slide(s,e[t])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(t){return t.defaultInterval=t.interval,t}_addEventListeners(){this._config.keyboard&&j.on(this._element,mt,(t=>this._keydown(t))),"hover"===this._config.pause&&(j.on(this._element,pt,(()=>this.pause())),j.on(this._element,bt,(()=>this._maybeEnableCycle()))),this._config.touch&&at.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const t of K.find(".carousel-item img",this._element))j.on(t,vt,(t=>t.preventDefault()));const t={leftCallback:()=>this._slide(this._directionToOrder(ut)),rightCallback:()=>this._slide(this._directionToOrder(_t)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout((()=>this._maybeEnableCycle()),500+this._config.interval))}};this._swipeHelper=new at(this._element,t)}_keydown(t){if(/input|textarea/i.test(t.target.tagName))return;const e=$t[t.key];e&&(t.preventDefault(),this._slide(this._directionToOrder(e)))}_getItemIndex(t){return this._getItems().indexOf(t)}_setActiveIndicatorElement(t){if(!this._indicatorsElement)return;const e=K.findOne(Ct,this._indicatorsElement);e.classList.remove(Et),e.removeAttribute("aria-current");const i=K.findOne(`[data-bs-slide-to="${t}"]`,this._indicatorsElement);i&&(i.classList.add(Et),i.setAttribute("aria-current","true"))}_updateInterval(){const t=this._activeElement||this._getActive();if(!t)return;const e=Number.parseInt(t.getAttribute("data-bs-interval"),10);this._config.interval=e||this._config.defaultInterval}_slide(t,e=null){if(this._isSliding)return;const i=this._getActive(),s=t===ht,n=e||w(this._getItems(),i,s,this._config.wrap);if(n===i)return;const o=this._getItemIndex(n),r=e=>j.trigger(this._element,e,{relatedTarget:n,direction:this._orderToDirection(t),from:this._getItemIndex(i),to:o});if(r(gt).defaultPrevented)return;if(!i||!n)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(o),this._activeElement=n;const l=s?"carousel-item-start":"carousel-item-end",c=s?"carousel-item-next":"carousel-item-prev";n.classList.add(c),g(n),i.classList.add(l),n.classList.add(l),this._queueCallback((()=>{n.classList.remove(l,c),n.classList.add(Et),i.classList.remove(Et,c,l),this._isSliding=!1,r(ft)}),i,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return K.findOne(kt,this._element)}_getItems(){return K.find(Tt,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(t){return p()?t===ut?dt:ht:t===ut?ht:dt}_orderToDirection(t){return p()?t===dt?ut:_t:t===dt?_t:ut}static jQueryInterface(t){return this.each((function(){const e=Ot.getOrCreateInstance(this,t);if("number"!=typeof t){if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}else e.to(t)}))}}j.on(document,wt,"[data-bs-slide], [data-bs-slide-to]",(function(t){const e=K.getElementFromSelector(this);if(!e||!e.classList.contains(At))return;t.preventDefault();const i=Ot.getOrCreateInstance(e),s=this.getAttribute("data-bs-slide-to");return s?(i.to(s),void i._maybeEnableCycle()):"next"===B.getDataAttribute(this,"slide")?(i.next(),void i._maybeEnableCycle()):(i.prev(),void i._maybeEnableCycle())})),j.on(window,yt,(()=>{const t=K.find('[data-bs-ride="carousel"]');for(const e of t)Ot.getOrCreateInstance(e)})),b(Ot);const It=".bs.collapse",Dt=`show${It}`,Nt=`shown${It}`,Pt=`hide${It}`,xt=`hidden${It}`,Mt=`click${It}.data-api`,jt="show",Ft="collapse",zt="collapsing",Ht=`:scope .${Ft} .${Ft}`,Bt='[data-bs-toggle="collapse"]',qt={parent:null,toggle:!0},Wt={parent:"(null|element)",toggle:"boolean"};class Rt extends W{constructor(t,e){super(t,e),this._isTransitioning=!1,this._triggerArray=[];const i=K.find(Bt);for(const t of i){const e=K.getSelectorFromElement(t),i=K.find(e).filter((t=>t===this._element));null!==e&&i.length&&this._triggerArray.push(t)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return qt}static get DefaultType(){return Wt}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let t=[];if(this._config.parent&&(t=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter((t=>t!==this._element)).map((t=>Rt.getOrCreateInstance(t,{toggle:!1})))),t.length&&t[0]._isTransitioning)return;if(j.trigger(this._element,Dt).defaultPrevented)return;for(const e of t)e.hide();const e=this._getDimension();this._element.classList.remove(Ft),this._element.classList.add(zt),this._element.style[e]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const i=`scroll${e[0].toUpperCase()+e.slice(1)}`;this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(zt),this._element.classList.add(Ft,jt),this._element.style[e]="",j.trigger(this._element,Nt)}),this._element,!0),this._element.style[e]=`${this._element[i]}px`}hide(){if(this._isTransitioning||!this._isShown())return;if(j.trigger(this._element,Pt).defaultPrevented)return;const t=this._getDimension();this._element.style[t]=`${this._element.getBoundingClientRect()[t]}px`,g(this._element),this._element.classList.add(zt),this._element.classList.remove(Ft,jt);for(const t of this._triggerArray){const e=K.getElementFromSelector(t);e&&!this._isShown(e)&&this._addAriaAndCollapsedClass([t],!1)}this._isTransitioning=!0,this._element.style[t]="",this._queueCallback((()=>{this._isTransitioning=!1,this._element.classList.remove(zt),this._element.classList.add(Ft),j.trigger(this._element,xt)}),this._element,!0)}_isShown(t=this._element){return t.classList.contains(jt)}_configAfterMerge(t){return t.toggle=Boolean(t.toggle),t.parent=c(t.parent),t}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const t=this._getFirstLevelChildren(Bt);for(const e of t){const t=K.getElementFromSelector(e);t&&this._addAriaAndCollapsedClass([e],this._isShown(t))}}_getFirstLevelChildren(t){const e=K.find(Ht,this._config.parent);return K.find(t,this._config.parent).filter((t=>!e.includes(t)))}_addAriaAndCollapsedClass(t,e){if(t.length)for(const i of t)i.classList.toggle("collapsed",!e),i.setAttribute("aria-expanded",e)}static jQueryInterface(t){const e={};return"string"==typeof t&&/show|hide/.test(t)&&(e.toggle=!1),this.each((function(){const i=Rt.getOrCreateInstance(this,e);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t]()}}))}}j.on(document,Mt,Bt,(function(t){("A"===t.target.tagName||t.delegateTarget&&"A"===t.delegateTarget.tagName)&&t.preventDefault();for(const t of K.getMultipleElementsFromSelector(this))Rt.getOrCreateInstance(t,{toggle:!1}).toggle()})),b(Rt);const Kt="dropdown",Vt=".bs.dropdown",Qt=".data-api",Xt="ArrowUp",Yt="ArrowDown",Ut=`hide${Vt}`,Gt=`hidden${Vt}`,Jt=`show${Vt}`,Zt=`shown${Vt}`,te=`click${Vt}${Qt}`,ee=`keydown${Vt}${Qt}`,ie=`keyup${Vt}${Qt}`,se="show",ne='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',oe=`${ne}.${se}`,re=".dropdown-menu",ae=p()?"top-end":"top-start",le=p()?"top-start":"top-end",ce=p()?"bottom-end":"bottom-start",he=p()?"bottom-start":"bottom-end",de=p()?"left-start":"right-start",ue=p()?"right-start":"left-start",_e={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},ge={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class fe extends W{constructor(t,e){super(t,e),this._popper=null,this._parent=this._element.parentNode,this._menu=K.next(this._element,re)[0]||K.prev(this._element,re)[0]||K.findOne(re,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return _e}static get DefaultType(){return ge}static get NAME(){return Kt}toggle(){return this._isShown()?this.hide():this.show()}show(){if(d(this._element)||this._isShown())return;const t={relatedTarget:this._element};if(!j.trigger(this._element,Jt,t).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(const t of[].concat(...document.body.children))j.on(t,"mouseover",_);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(se),this._element.classList.add(se),j.trigger(this._element,Zt,t)}}hide(){if(d(this._element)||!this._isShown())return;const t={relatedTarget:this._element};this._completeHide(t)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(t){if(!j.trigger(this._element,Ut,t).defaultPrevented){if("ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))j.off(t,"mouseover",_);this._popper&&this._popper.destroy(),this._menu.classList.remove(se),this._element.classList.remove(se),this._element.setAttribute("aria-expanded","false"),B.removeDataAttribute(this._menu,"popper"),j.trigger(this._element,Gt,t)}}_getConfig(t){if("object"==typeof(t=super._getConfig(t)).reference&&!l(t.reference)&&"function"!=typeof t.reference.getBoundingClientRect)throw new TypeError(`${Kt.toUpperCase()}: Option "reference" provided type "object" without a required "getBoundingClientRect" method.`);return t}_createPopper(){if(void 0===i)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let t=this._element;"parent"===this._config.reference?t=this._parent:l(this._config.reference)?t=c(this._config.reference):"object"==typeof this._config.reference&&(t=this._config.reference);const e=this._getPopperConfig();this._popper=i.createPopper(t,this._menu,e)}_isShown(){return this._menu.classList.contains(se)}_getPlacement(){const t=this._parent;if(t.classList.contains("dropend"))return de;if(t.classList.contains("dropstart"))return ue;if(t.classList.contains("dropup-center"))return"top";if(t.classList.contains("dropdown-center"))return"bottom";const e="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return t.classList.contains("dropup")?e?le:ae:e?he:ce}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_getPopperConfig(){const t={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(B.setDataAttribute(this._menu,"popper","static"),t.modifiers=[{name:"applyStyles",enabled:!1}]),{...t,...v(this._config.popperConfig,[t])}}_selectMenuItem({key:t,target:e}){const i=K.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter((t=>h(t)));i.length&&w(i,e,t===Yt,!i.includes(e)).focus()}static jQueryInterface(t){return this.each((function(){const e=fe.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}static clearMenus(t){if(2===t.button||"keyup"===t.type&&"Tab"!==t.key)return;const e=K.find(oe);for(const i of e){const e=fe.getInstance(i);if(!e||!1===e._config.autoClose)continue;const s=t.composedPath(),n=s.includes(e._menu);if(s.includes(e._element)||"inside"===e._config.autoClose&&!n||"outside"===e._config.autoClose&&n)continue;if(e._menu.contains(t.target)&&("keyup"===t.type&&"Tab"===t.key||/input|select|option|textarea|form/i.test(t.target.tagName)))continue;const o={relatedTarget:e._element};"click"===t.type&&(o.clickEvent=t),e._completeHide(o)}}static dataApiKeydownHandler(t){const e=/input|textarea/i.test(t.target.tagName),i="Escape"===t.key,s=[Xt,Yt].includes(t.key);if(!s&&!i)return;if(e&&!i)return;t.preventDefault();const n=this.matches(ne)?this:K.prev(this,ne)[0]||K.next(this,ne)[0]||K.findOne(ne,t.delegateTarget.parentNode),o=fe.getOrCreateInstance(n);if(s)return t.stopPropagation(),o.show(),void o._selectMenuItem(t);o._isShown()&&(t.stopPropagation(),o.hide(),n.focus())}}j.on(document,ee,ne,fe.dataApiKeydownHandler),j.on(document,ee,re,fe.dataApiKeydownHandler),j.on(document,te,fe.clearMenus),j.on(document,ie,fe.clearMenus),j.on(document,te,ne,(function(t){t.preventDefault(),fe.getOrCreateInstance(this).toggle()})),b(fe);const me="backdrop",pe="show",be=`mousedown.bs.${me}`,ve={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},ye={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class we extends q{constructor(t){super(),this._config=this._getConfig(t),this._isAppended=!1,this._element=null}static get Default(){return ve}static get DefaultType(){return ye}static get NAME(){return me}show(t){if(!this._config.isVisible)return void v(t);this._append();const e=this._getElement();this._config.isAnimated&&g(e),e.classList.add(pe),this._emulateAnimation((()=>{v(t)}))}hide(t){this._config.isVisible?(this._getElement().classList.remove(pe),this._emulateAnimation((()=>{this.dispose(),v(t)}))):v(t)}dispose(){this._isAppended&&(j.off(this._element,be),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const t=document.createElement("div");t.className=this._config.className,this._config.isAnimated&&t.classList.add("fade"),this._element=t}return this._element}_configAfterMerge(t){return t.rootElement=c(t.rootElement),t}_append(){if(this._isAppended)return;const t=this._getElement();this._config.rootElement.append(t),j.on(t,be,(()=>{v(this._config.clickCallback)})),this._isAppended=!0}_emulateAnimation(t){y(t,this._getElement(),this._config.isAnimated)}}const Ae=".bs.focustrap",Ee=`focusin${Ae}`,Ce=`keydown.tab${Ae}`,Te="backward",ke={autofocus:!0,trapElement:null},$e={autofocus:"boolean",trapElement:"element"};class Se extends q{constructor(t){super(),this._config=this._getConfig(t),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return ke}static get DefaultType(){return $e}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),j.off(document,Ae),j.on(document,Ee,(t=>this._handleFocusin(t))),j.on(document,Ce,(t=>this._handleKeydown(t))),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,j.off(document,Ae))}_handleFocusin(t){const{trapElement:e}=this._config;if(t.target===document||t.target===e||e.contains(t.target))return;const i=K.focusableChildren(e);0===i.length?e.focus():this._lastTabNavDirection===Te?i[i.length-1].focus():i[0].focus()}_handleKeydown(t){"Tab"===t.key&&(this._lastTabNavDirection=t.shiftKey?Te:"forward")}}const Le=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",Oe=".sticky-top",Ie="padding-right",De="margin-right";class Ne{constructor(){this._element=document.body}getWidth(){const t=document.documentElement.clientWidth;return Math.abs(window.innerWidth-t)}hide(){const t=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,Ie,(e=>e+t)),this._setElementAttributes(Le,Ie,(e=>e+t)),this._setElementAttributes(Oe,De,(e=>e-t))}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,Ie),this._resetElementAttributes(Le,Ie),this._resetElementAttributes(Oe,De)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(t,e,i){const s=this.getWidth();this._applyManipulationCallback(t,(t=>{if(t!==this._element&&window.innerWidth>t.clientWidth+s)return;this._saveInitialAttribute(t,e);const n=window.getComputedStyle(t).getPropertyValue(e);t.style.setProperty(e,`${i(Number.parseFloat(n))}px`)}))}_saveInitialAttribute(t,e){const i=t.style.getPropertyValue(e);i&&B.setDataAttribute(t,e,i)}_resetElementAttributes(t,e){this._applyManipulationCallback(t,(t=>{const i=B.getDataAttribute(t,e);null!==i?(B.removeDataAttribute(t,e),t.style.setProperty(e,i)):t.style.removeProperty(e)}))}_applyManipulationCallback(t,e){if(l(t))e(t);else for(const i of K.find(t,this._element))e(i)}}const Pe=".bs.modal",xe=`hide${Pe}`,Me=`hidePrevented${Pe}`,je=`hidden${Pe}`,Fe=`show${Pe}`,ze=`shown${Pe}`,He=`resize${Pe}`,Be=`click.dismiss${Pe}`,qe=`mousedown.dismiss${Pe}`,We=`keydown.dismiss${Pe}`,Re=`click${Pe}.data-api`,Ke="modal-open",Ve="show",Qe="modal-static",Xe={backdrop:!0,focus:!0,keyboard:!0},Ye={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class Ue extends W{constructor(t,e){super(t,e),this._dialog=K.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new Ne,this._addEventListeners()}static get Default(){return Xe}static get DefaultType(){return Ye}static get NAME(){return"modal"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||this._isTransitioning||j.trigger(this._element,Fe,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(Ke),this._adjustDialog(),this._backdrop.show((()=>this._showElement(t))))}hide(){this._isShown&&!this._isTransitioning&&(j.trigger(this._element,xe).defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove(Ve),this._queueCallback((()=>this._hideModal()),this._element,this._isAnimated())))}dispose(){j.off(window,Pe),j.off(this._dialog,Pe),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new we({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new Se({trapElement:this._element})}_showElement(t){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const e=K.findOne(".modal-body",this._dialog);e&&(e.scrollTop=0),g(this._element),this._element.classList.add(Ve),this._queueCallback((()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,j.trigger(this._element,ze,{relatedTarget:t})}),this._dialog,this._isAnimated())}_addEventListeners(){j.on(this._element,We,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())})),j.on(window,He,(()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()})),j.on(this._element,qe,(t=>{j.one(this._element,Be,(e=>{this._element===t.target&&this._element===e.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())}))}))}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide((()=>{document.body.classList.remove(Ke),this._resetAdjustments(),this._scrollBar.reset(),j.trigger(this._element,je)}))}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(j.trigger(this._element,Me).defaultPrevented)return;const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._element.style.overflowY;"hidden"===e||this._element.classList.contains(Qe)||(t||(this._element.style.overflowY="hidden"),this._element.classList.add(Qe),this._queueCallback((()=>{this._element.classList.remove(Qe),this._queueCallback((()=>{this._element.style.overflowY=e}),this._dialog)}),this._dialog),this._element.focus())}_adjustDialog(){const t=this._element.scrollHeight>document.documentElement.clientHeight,e=this._scrollBar.getWidth(),i=e>0;if(i&&!t){const t=p()?"paddingLeft":"paddingRight";this._element.style[t]=`${e}px`}if(!i&&t){const t=p()?"paddingRight":"paddingLeft";this._element.style[t]=`${e}px`}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(t,e){return this.each((function(){const i=Ue.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===i[t])throw new TypeError(`No method named "${t}"`);i[t](e)}}))}}j.on(document,Re,'[data-bs-toggle="modal"]',(function(t){const e=K.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&t.preventDefault(),j.one(e,Fe,(t=>{t.defaultPrevented||j.one(e,je,(()=>{h(this)&&this.focus()}))}));const i=K.findOne(".modal.show");i&&Ue.getInstance(i).hide(),Ue.getOrCreateInstance(e).toggle(this)})),V(Ue),b(Ue);const Ge=".bs.offcanvas",Je=".data-api",Ze=`load${Ge}${Je}`,ti="show",ei="showing",ii="hiding",si=".offcanvas.show",ni=`show${Ge}`,oi=`shown${Ge}`,ri=`hide${Ge}`,ai=`hidePrevented${Ge}`,li=`hidden${Ge}`,ci=`resize${Ge}`,hi=`click${Ge}${Je}`,di=`keydown.dismiss${Ge}`,ui={backdrop:!0,keyboard:!0,scroll:!1},_i={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class gi extends W{constructor(t,e){super(t,e),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return ui}static get DefaultType(){return _i}static get NAME(){return"offcanvas"}toggle(t){return this._isShown?this.hide():this.show(t)}show(t){this._isShown||j.trigger(this._element,ni,{relatedTarget:t}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new Ne).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(ei),this._queueCallback((()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add(ti),this._element.classList.remove(ei),j.trigger(this._element,oi,{relatedTarget:t})}),this._element,!0))}hide(){this._isShown&&(j.trigger(this._element,ri).defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add(ii),this._backdrop.hide(),this._queueCallback((()=>{this._element.classList.remove(ti,ii),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new Ne).reset(),j.trigger(this._element,li)}),this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const t=Boolean(this._config.backdrop);return new we({className:"offcanvas-backdrop",isVisible:t,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:t?()=>{"static"!==this._config.backdrop?this.hide():j.trigger(this._element,ai)}:null})}_initializeFocusTrap(){return new Se({trapElement:this._element})}_addEventListeners(){j.on(this._element,di,(t=>{"Escape"===t.key&&(this._config.keyboard?this.hide():j.trigger(this._element,ai))}))}static jQueryInterface(t){return this.each((function(){const e=gi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}j.on(document,hi,'[data-bs-toggle="offcanvas"]',(function(t){const e=K.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&t.preventDefault(),d(this))return;j.one(e,li,(()=>{h(this)&&this.focus()}));const i=K.findOne(si);i&&i!==e&&gi.getInstance(i).hide(),gi.getOrCreateInstance(e).toggle(this)})),j.on(window,Ze,(()=>{for(const t of K.find(si))gi.getOrCreateInstance(t).show()})),j.on(window,ci,(()=>{for(const t of K.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(t).position&&gi.getOrCreateInstance(t).hide()})),V(gi),b(gi);const fi={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},mi=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),pi=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,bi=(t,e)=>{const i=t.nodeName.toLowerCase();return e.includes(i)?!mi.has(i)||Boolean(pi.test(t.nodeValue)):e.filter((t=>t instanceof RegExp)).some((t=>t.test(i)))},vi={allowList:fi,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},yi={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},wi={entry:"(string|element|function|null)",selector:"(string|element)"};class Ai extends q{constructor(t){super(),this._config=this._getConfig(t)}static get Default(){return vi}static get DefaultType(){return yi}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map((t=>this._resolvePossibleFunction(t))).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(t){return this._checkContent(t),this._config.content={...this._config.content,...t},this}toHtml(){const t=document.createElement("div");t.innerHTML=this._maybeSanitize(this._config.template);for(const[e,i]of Object.entries(this._config.content))this._setContent(t,i,e);const e=t.children[0],i=this._resolvePossibleFunction(this._config.extraClass);return i&&e.classList.add(...i.split(" ")),e}_typeCheckConfig(t){super._typeCheckConfig(t),this._checkContent(t.content)}_checkContent(t){for(const[e,i]of Object.entries(t))super._typeCheckConfig({selector:e,entry:i},wi)}_setContent(t,e,i){const s=K.findOne(i,t);s&&((e=this._resolvePossibleFunction(e))?l(e)?this._putElementInTemplate(c(e),s):this._config.html?s.innerHTML=this._maybeSanitize(e):s.textContent=e:s.remove())}_maybeSanitize(t){return this._config.sanitize?function(t,e,i){if(!t.length)return t;if(i&&"function"==typeof i)return i(t);const s=(new window.DOMParser).parseFromString(t,"text/html"),n=[].concat(...s.body.querySelectorAll("*"));for(const t of n){const i=t.nodeName.toLowerCase();if(!Object.keys(e).includes(i)){t.remove();continue}const s=[].concat(...t.attributes),n=[].concat(e["*"]||[],e[i]||[]);for(const e of s)bi(e,n)||t.removeAttribute(e.nodeName)}return s.body.innerHTML}(t,this._config.allowList,this._config.sanitizeFn):t}_resolvePossibleFunction(t){return v(t,[this])}_putElementInTemplate(t,e){if(this._config.html)return e.innerHTML="",void e.append(t);e.textContent=t.textContent}}const Ei=new Set(["sanitize","allowList","sanitizeFn"]),Ci="fade",Ti="show",ki=".modal",$i="hide.bs.modal",Si="hover",Li="focus",Oi={AUTO:"auto",TOP:"top",RIGHT:p()?"left":"right",BOTTOM:"bottom",LEFT:p()?"right":"left"},Ii={allowList:fi,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},Di={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class Ni extends W{constructor(t,e){if(void 0===i)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(t,e),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return Ii}static get DefaultType(){return Di}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),j.off(this._element.closest(ki),$i,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const t=j.trigger(this._element,this.constructor.eventName("show")),e=(u(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(t.defaultPrevented||!e)return;this._disposePopper();const i=this._getTipElement();this._element.setAttribute("aria-describedby",i.getAttribute("id"));const{container:s}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(s.append(i),j.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(i),i.classList.add(Ti),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))j.on(t,"mouseover",_);this._queueCallback((()=>{j.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1}),this.tip,this._isAnimated())}hide(){if(this._isShown()&&!j.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(Ti),"ontouchstart"in document.documentElement)for(const t of[].concat(...document.body.children))j.off(t,"mouseover",_);this._activeTrigger.click=!1,this._activeTrigger[Li]=!1,this._activeTrigger[Si]=!1,this._isHovered=null,this._queueCallback((()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),j.trigger(this._element,this.constructor.eventName("hidden")))}),this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(t){const e=this._getTemplateFactory(t).toHtml();if(!e)return null;e.classList.remove(Ci,Ti),e.classList.add(`bs-${this.constructor.NAME}-auto`);const i=(t=>{do{t+=Math.floor(1e6*Math.random())}while(document.getElementById(t));return t})(this.constructor.NAME).toString();return e.setAttribute("id",i),this._isAnimated()&&e.classList.add(Ci),e}setContent(t){this._newContent=t,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(t){return this._templateFactory?this._templateFactory.changeContent(t):this._templateFactory=new Ai({...this._config,content:t,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(t){return this.constructor.getOrCreateInstance(t.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Ci)}_isShown(){return this.tip&&this.tip.classList.contains(Ti)}_createPopper(t){const e=v(this._config.placement,[this,t,this._element]),s=Oi[e.toUpperCase()];return i.createPopper(this._element,t,this._getPopperConfig(s))}_getOffset(){const{offset:t}=this._config;return"string"==typeof t?t.split(",").map((t=>Number.parseInt(t,10))):"function"==typeof t?e=>t(e,this._element):t}_resolvePossibleFunction(t){return v(t,[this._element])}_getPopperConfig(t){const e={placement:t,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:t=>{this._getTipElement().setAttribute("data-popper-placement",t.state.placement)}}]};return{...e,...v(this._config.popperConfig,[e])}}_setListeners(){const t=this._config.trigger.split(" ");for(const e of t)if("click"===e)j.on(this._element,this.constructor.eventName("click"),this._config.selector,(t=>{this._initializeOnDelegatedTarget(t).toggle()}));else if("manual"!==e){const t=e===Si?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),i=e===Si?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");j.on(this._element,t,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusin"===t.type?Li:Si]=!0,e._enter()})),j.on(this._element,i,this._config.selector,(t=>{const e=this._initializeOnDelegatedTarget(t);e._activeTrigger["focusout"===t.type?Li:Si]=e._element.contains(t.relatedTarget),e._leave()}))}this._hideModalHandler=()=>{this._element&&this.hide()},j.on(this._element.closest(ki),$i,this._hideModalHandler)}_fixTitle(){const t=this._element.getAttribute("title");t&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",t),this._element.setAttribute("data-bs-original-title",t),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout((()=>{this._isHovered&&this.show()}),this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout((()=>{this._isHovered||this.hide()}),this._config.delay.hide))}_setTimeout(t,e){clearTimeout(this._timeout),this._timeout=setTimeout(t,e)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(t){const e=B.getDataAttributes(this._element);for(const t of Object.keys(e))Ei.has(t)&&delete e[t];return t={...e,..."object"==typeof t&&t?t:{}},t=this._mergeConfigObj(t),t=this._configAfterMerge(t),this._typeCheckConfig(t),t}_configAfterMerge(t){return t.container=!1===t.container?document.body:c(t.container),"number"==typeof t.delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),t}_getDelegateConfig(){const t={};for(const[e,i]of Object.entries(this._config))this.constructor.Default[e]!==i&&(t[e]=i);return t.selector=!1,t.trigger="manual",t}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(t){return this.each((function(){const e=Ni.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}b(Ni);const Pi={...Ni.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},xi={...Ni.DefaultType,content:"(null|string|element|function)"};class Mi extends Ni{static get Default(){return Pi}static get DefaultType(){return xi}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(t){return this.each((function(){const e=Mi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t]()}}))}}b(Mi);const ji=".bs.scrollspy",Fi=`activate${ji}`,zi=`click${ji}`,Hi=`load${ji}.data-api`,Bi="active",qi="[href]",Wi=".nav-link",Ri=`${Wi}, .nav-item > ${Wi}, .list-group-item`,Ki={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},Vi={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class Qi extends W{constructor(t,e){super(t,e),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return Ki}static get DefaultType(){return Vi}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const t of this._observableSections.values())this._observer.observe(t)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(t){return t.target=c(t.target)||document.body,t.rootMargin=t.offset?`${t.offset}px 0px -30%`:t.rootMargin,"string"==typeof t.threshold&&(t.threshold=t.threshold.split(",").map((t=>Number.parseFloat(t)))),t}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(j.off(this._config.target,zi),j.on(this._config.target,zi,qi,(t=>{const e=this._observableSections.get(t.target.hash);if(e){t.preventDefault();const i=this._rootElement||window,s=e.offsetTop-this._element.offsetTop;if(i.scrollTo)return void i.scrollTo({top:s,behavior:"smooth"});i.scrollTop=s}})))}_getNewObserver(){const t={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver((t=>this._observerCallback(t)),t)}_observerCallback(t){const e=t=>this._targetLinks.get(`#${t.target.id}`),i=t=>{this._previousScrollData.visibleEntryTop=t.target.offsetTop,this._process(e(t))},s=(this._rootElement||document.documentElement).scrollTop,n=s>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=s;for(const o of t){if(!o.isIntersecting){this._activeTarget=null,this._clearActiveClass(e(o));continue}const t=o.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(n&&t){if(i(o),!s)return}else n||t||i(o)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const t=K.find(qi,this._config.target);for(const e of t){if(!e.hash||d(e))continue;const t=K.findOne(decodeURI(e.hash),this._element);h(t)&&(this._targetLinks.set(decodeURI(e.hash),e),this._observableSections.set(e.hash,t))}}_process(t){this._activeTarget!==t&&(this._clearActiveClass(this._config.target),this._activeTarget=t,t.classList.add(Bi),this._activateParents(t),j.trigger(this._element,Fi,{relatedTarget:t}))}_activateParents(t){if(t.classList.contains("dropdown-item"))K.findOne(".dropdown-toggle",t.closest(".dropdown")).classList.add(Bi);else for(const e of K.parents(t,".nav, .list-group"))for(const t of K.prev(e,Ri))t.classList.add(Bi)}_clearActiveClass(t){t.classList.remove(Bi);const e=K.find(`${qi}.${Bi}`,t);for(const t of e)t.classList.remove(Bi)}static jQueryInterface(t){return this.each((function(){const e=Qi.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}j.on(window,Hi,(()=>{for(const t of K.find('[data-bs-spy="scroll"]'))Qi.getOrCreateInstance(t)})),b(Qi);const Xi=".bs.tab",Yi=`hide${Xi}`,Ui=`hidden${Xi}`,Gi=`show${Xi}`,Ji=`shown${Xi}`,Zi=`click${Xi}`,ts=`keydown${Xi}`,es=`load${Xi}`,is="ArrowLeft",ss="ArrowRight",ns="ArrowUp",os="ArrowDown",rs="Home",as="End",ls="active",cs="fade",hs="show",ds=":not(.dropdown-toggle)",us='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',_s=`.nav-link${ds}, .list-group-item${ds}, [role="tab"]${ds}, ${us}`,gs=`.${ls}[data-bs-toggle="tab"], .${ls}[data-bs-toggle="pill"], .${ls}[data-bs-toggle="list"]`;class fs extends W{constructor(t){super(t),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),j.on(this._element,ts,(t=>this._keydown(t))))}static get NAME(){return"tab"}show(){const t=this._element;if(this._elemIsActive(t))return;const e=this._getActiveElem(),i=e?j.trigger(e,Yi,{relatedTarget:t}):null;j.trigger(t,Gi,{relatedTarget:e}).defaultPrevented||i&&i.defaultPrevented||(this._deactivate(e,t),this._activate(t,e))}_activate(t,e){t&&(t.classList.add(ls),this._activate(K.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.removeAttribute("tabindex"),t.setAttribute("aria-selected",!0),this._toggleDropDown(t,!0),j.trigger(t,Ji,{relatedTarget:e})):t.classList.add(hs)}),t,t.classList.contains(cs)))}_deactivate(t,e){t&&(t.classList.remove(ls),t.blur(),this._deactivate(K.getElementFromSelector(t)),this._queueCallback((()=>{"tab"===t.getAttribute("role")?(t.setAttribute("aria-selected",!1),t.setAttribute("tabindex","-1"),this._toggleDropDown(t,!1),j.trigger(t,Ui,{relatedTarget:e})):t.classList.remove(hs)}),t,t.classList.contains(cs)))}_keydown(t){if(![is,ss,ns,os,rs,as].includes(t.key))return;t.stopPropagation(),t.preventDefault();const e=this._getChildren().filter((t=>!d(t)));let i;if([rs,as].includes(t.key))i=e[t.key===rs?0:e.length-1];else{const s=[ss,os].includes(t.key);i=w(e,t.target,s,!0)}i&&(i.focus({preventScroll:!0}),fs.getOrCreateInstance(i).show())}_getChildren(){return K.find(_s,this._parent)}_getActiveElem(){return this._getChildren().find((t=>this._elemIsActive(t)))||null}_setInitialAttributes(t,e){this._setAttributeIfNotExists(t,"role","tablist");for(const t of e)this._setInitialAttributesOnChild(t)}_setInitialAttributesOnChild(t){t=this._getInnerElement(t);const e=this._elemIsActive(t),i=this._getOuterElement(t);t.setAttribute("aria-selected",e),i!==t&&this._setAttributeIfNotExists(i,"role","presentation"),e||t.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(t,"role","tab"),this._setInitialAttributesOnTargetPanel(t)}_setInitialAttributesOnTargetPanel(t){const e=K.getElementFromSelector(t);e&&(this._setAttributeIfNotExists(e,"role","tabpanel"),t.id&&this._setAttributeIfNotExists(e,"aria-labelledby",`${t.id}`))}_toggleDropDown(t,e){const i=this._getOuterElement(t);if(!i.classList.contains("dropdown"))return;const s=(t,s)=>{const n=K.findOne(t,i);n&&n.classList.toggle(s,e)};s(".dropdown-toggle",ls),s(".dropdown-menu",hs),i.setAttribute("aria-expanded",e)}_setAttributeIfNotExists(t,e,i){t.hasAttribute(e)||t.setAttribute(e,i)}_elemIsActive(t){return t.classList.contains(ls)}_getInnerElement(t){return t.matches(_s)?t:K.findOne(_s,t)}_getOuterElement(t){return t.closest(".nav-item, .list-group-item")||t}static jQueryInterface(t){return this.each((function(){const e=fs.getOrCreateInstance(this);if("string"==typeof t){if(void 0===e[t]||t.startsWith("_")||"constructor"===t)throw new TypeError(`No method named "${t}"`);e[t]()}}))}}j.on(document,Zi,us,(function(t){["A","AREA"].includes(this.tagName)&&t.preventDefault(),d(this)||fs.getOrCreateInstance(this).show()})),j.on(window,es,(()=>{for(const t of K.find(gs))fs.getOrCreateInstance(t)})),b(fs);const ms=".bs.toast",ps=`mouseover${ms}`,bs=`mouseout${ms}`,vs=`focusin${ms}`,ys=`focusout${ms}`,ws=`hide${ms}`,As=`hidden${ms}`,Es=`show${ms}`,Cs=`shown${ms}`,Ts="hide",ks="show",$s="showing",Ss={animation:"boolean",autohide:"boolean",delay:"number"},Ls={animation:!0,autohide:!0,delay:5e3};class Os extends W{constructor(t,e){super(t,e),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return Ls}static get DefaultType(){return Ss}static get NAME(){return"toast"}show(){j.trigger(this._element,Es).defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove(Ts),g(this._element),this._element.classList.add(ks,$s),this._queueCallback((()=>{this._element.classList.remove($s),j.trigger(this._element,Cs),this._maybeScheduleHide()}),this._element,this._config.animation))}hide(){this.isShown()&&(j.trigger(this._element,ws).defaultPrevented||(this._element.classList.add($s),this._queueCallback((()=>{this._element.classList.add(Ts),this._element.classList.remove($s,ks),j.trigger(this._element,As)}),this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(ks),super.dispose()}isShown(){return this._element.classList.contains(ks)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout((()=>{this.hide()}),this._config.delay)))}_onInteraction(t,e){switch(t.type){case"mouseover":case"mouseout":this._hasMouseInteraction=e;break;case"focusin":case"focusout":this._hasKeyboardInteraction=e}if(e)return void this._clearTimeout();const i=t.relatedTarget;this._element===i||this._element.contains(i)||this._maybeScheduleHide()}_setListeners(){j.on(this._element,ps,(t=>this._onInteraction(t,!0))),j.on(this._element,bs,(t=>this._onInteraction(t,!1))),j.on(this._element,vs,(t=>this._onInteraction(t,!0))),j.on(this._element,ys,(t=>this._onInteraction(t,!1)))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(t){return this.each((function(){const e=Os.getOrCreateInstance(this,t);if("string"==typeof t){if(void 0===e[t])throw new TypeError(`No method named "${t}"`);e[t](this)}}))}}return V(Os),b(Os),{Alert:U,Button:J,Carousel:Ot,Collapse:Rt,Dropdown:fe,Modal:Ue,Offcanvas:gi,Popover:Mi,ScrollSpy:Qi,Tab:fs,Toast:Os,Tooltip:Ni}})); +//# sourceMappingURL=bootstrap.min.js.map \ No newline at end of file diff --git a/Moonlight/wwwroot/assets/js/draggable.bundle.js b/Moonlight/wwwroot/assets/js/draggable.bundle.js new file mode 100644 index 00000000..efc5ce0c --- /dev/null +++ b/Moonlight/wwwroot/assets/js/draggable.bundle.js @@ -0,0 +1,7522 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define("Draggable", [], factory); + else if(typeof exports === 'object') + exports["Draggable"] = factory(); + else + root["Draggable"] = factory(); +})(window, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 72); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _AbstractPlugin = __webpack_require__(66); + +var _AbstractPlugin2 = _interopRequireDefault(_AbstractPlugin); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _AbstractPlugin2.default; + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _AbstractEvent = __webpack_require__(70); + +var _AbstractEvent2 = _interopRequireDefault(_AbstractEvent); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _AbstractEvent2.default; + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _closest = __webpack_require__(57); + +Object.defineProperty(exports, 'closest', { + enumerable: true, + get: function () { + return _interopRequireDefault(_closest).default; + } +}); + +var _requestNextAnimationFrame = __webpack_require__(55); + +Object.defineProperty(exports, 'requestNextAnimationFrame', { + enumerable: true, + get: function () { + return _interopRequireDefault(_requestNextAnimationFrame).default; + } +}); + +var _distance = __webpack_require__(53); + +Object.defineProperty(exports, 'distance', { + enumerable: true, + get: function () { + return _interopRequireDefault(_distance).default; + } +}); + +var _touchCoords = __webpack_require__(51); + +Object.defineProperty(exports, 'touchCoords', { + enumerable: true, + get: function () { + return _interopRequireDefault(_touchCoords).default; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _SensorEvent = __webpack_require__(46); + +Object.keys(_SensorEvent).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _SensorEvent[key]; + } + }); +}); + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Sensor = __webpack_require__(49); + +var _Sensor2 = _interopRequireDefault(_Sensor); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _Sensor2.default; + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _DragEvent = __webpack_require__(14); + +Object.keys(_DragEvent).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _DragEvent[key]; + } + }); +}); + +var _DraggableEvent = __webpack_require__(13); + +Object.keys(_DraggableEvent).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _DraggableEvent[key]; + } + }); +}); + +var _Plugins = __webpack_require__(12); + +Object.keys(_Plugins).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _Plugins[key]; + } + }); +}); + +var _Sensors = __webpack_require__(6); + +Object.keys(_Sensors).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _Sensors[key]; + } + }); +}); + +var _Draggable = __webpack_require__(39); + +var _Draggable2 = _interopRequireDefault(_Draggable); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _Draggable2.default; + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Sensor = __webpack_require__(4); + +Object.defineProperty(exports, 'Sensor', { + enumerable: true, + get: function () { + return _interopRequireDefault(_Sensor).default; + } +}); + +var _MouseSensor = __webpack_require__(48); + +Object.defineProperty(exports, 'MouseSensor', { + enumerable: true, + get: function () { + return _interopRequireDefault(_MouseSensor).default; + } +}); + +var _TouchSensor = __webpack_require__(45); + +Object.defineProperty(exports, 'TouchSensor', { + enumerable: true, + get: function () { + return _interopRequireDefault(_TouchSensor).default; + } +}); + +var _DragSensor = __webpack_require__(43); + +Object.defineProperty(exports, 'DragSensor', { + enumerable: true, + get: function () { + return _interopRequireDefault(_DragSensor).default; + } +}); + +var _ForceTouchSensor = __webpack_require__(41); + +Object.defineProperty(exports, 'ForceTouchSensor', { + enumerable: true, + get: function () { + return _interopRequireDefault(_ForceTouchSensor).default; + } +}); + +var _SensorEvent = __webpack_require__(3); + +Object.keys(_SensorEvent).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _SensorEvent[key]; + } + }); +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _SnappableEvent = __webpack_require__(20); + +Object.keys(_SnappableEvent).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _SnappableEvent[key]; + } + }); +}); + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _CollidableEvent = __webpack_require__(25); + +Object.keys(_CollidableEvent).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _CollidableEvent[key]; + } + }); +}); + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _SortableEvent = __webpack_require__(29); + +Object.keys(_SortableEvent).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _SortableEvent[key]; + } + }); +}); + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _SwappableEvent = __webpack_require__(32); + +Object.keys(_SwappableEvent).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _SwappableEvent[key]; + } + }); +}); + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _DroppableEvent = __webpack_require__(35); + +Object.keys(_DroppableEvent).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _DroppableEvent[key]; + } + }); +}); + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Announcement = __webpack_require__(68); + +Object.defineProperty(exports, 'Announcement', { + enumerable: true, + get: function () { + return _interopRequireDefault(_Announcement).default; + } +}); +Object.defineProperty(exports, 'defaultAnnouncementOptions', { + enumerable: true, + get: function () { + return _Announcement.defaultOptions; + } +}); + +var _Focusable = __webpack_require__(65); + +Object.defineProperty(exports, 'Focusable', { + enumerable: true, + get: function () { + return _interopRequireDefault(_Focusable).default; + } +}); + +var _Mirror = __webpack_require__(63); + +Object.defineProperty(exports, 'Mirror', { + enumerable: true, + get: function () { + return _interopRequireDefault(_Mirror).default; + } +}); +Object.defineProperty(exports, 'defaultMirrorOptions', { + enumerable: true, + get: function () { + return _Mirror.defaultOptions; + } +}); + +var _Scrollable = __webpack_require__(59); + +Object.defineProperty(exports, 'Scrollable', { + enumerable: true, + get: function () { + return _interopRequireDefault(_Scrollable).default; + } +}); +Object.defineProperty(exports, 'defaultScrollableOptions', { + enumerable: true, + get: function () { + return _Scrollable.defaultOptions; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _DraggableEvent = __webpack_require__(69); + +Object.keys(_DraggableEvent).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _DraggableEvent[key]; + } + }); +}); + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _DragEvent = __webpack_require__(71); + +Object.keys(_DragEvent).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _DragEvent[key]; + } + }); +}); + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.defaultOptions = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _AbstractPlugin = __webpack_require__(0); + +var _AbstractPlugin2 = _interopRequireDefault(_AbstractPlugin); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const onSortableSorted = Symbol('onSortableSorted'); +const onSortableSort = Symbol('onSortableSort'); + +/** + * SortAnimation default options + * @property {Object} defaultOptions + * @property {Number} defaultOptions.duration + * @property {String} defaultOptions.easingFunction + * @type {Object} + */ +const defaultOptions = exports.defaultOptions = { + duration: 150, + easingFunction: 'ease-in-out' +}; + +/** + * SortAnimation plugin adds sort animation for sortable + * @class SortAnimation + * @module SortAnimation + * @extends AbstractPlugin + */ +class SortAnimation extends _AbstractPlugin2.default { + /** + * SortAnimation constructor. + * @constructs SortAnimation + * @param {Draggable} draggable - Draggable instance + */ + constructor(draggable) { + super(draggable); + + /** + * SortAnimation options + * @property {Object} options + * @property {Number} defaultOptions.duration + * @property {String} defaultOptions.easingFunction + * @type {Object} + */ + this.options = _extends({}, defaultOptions, this.getOptions()); + + /** + * Last animation frame + * @property {Number} lastAnimationFrame + * @type {Number} + */ + this.lastAnimationFrame = null; + this.lastElements = []; + + this[onSortableSorted] = this[onSortableSorted].bind(this); + this[onSortableSort] = this[onSortableSort].bind(this); + } + + /** + * Attaches plugins event listeners + */ + attach() { + this.draggable.on('sortable:sort', this[onSortableSort]); + this.draggable.on('sortable:sorted', this[onSortableSorted]); + } + + /** + * Detaches plugins event listeners + */ + detach() { + this.draggable.off('sortable:sort', this[onSortableSort]); + this.draggable.off('sortable:sorted', this[onSortableSorted]); + } + + /** + * Returns options passed through draggable + * @return {Object} + */ + getOptions() { + return this.draggable.options.sortAnimation || {}; + } + + /** + * Sortable sort handler + * @param {SortableSortEvent} sortableEvent + * @private + */ + [onSortableSort]({ dragEvent }) { + const { sourceContainer } = dragEvent; + const elements = this.draggable.getDraggableElementsForContainer(sourceContainer); + this.lastElements = Array.from(elements).map(el => { + return { + domEl: el, + offsetTop: el.offsetTop, + offsetLeft: el.offsetLeft + }; + }); + } + + /** + * Sortable sorted handler + * @param {SortableSortedEvent} sortableEvent + * @private + */ + [onSortableSorted]({ oldIndex, newIndex }) { + if (oldIndex === newIndex) { + return; + } + + const effectedElements = []; + let start; + let end; + let num; + if (oldIndex > newIndex) { + start = newIndex; + end = oldIndex - 1; + num = 1; + } else { + start = oldIndex + 1; + end = newIndex; + num = -1; + } + + for (let i = start; i <= end; i++) { + const from = this.lastElements[i]; + const to = this.lastElements[i + num]; + effectedElements.push({ from, to }); + } + cancelAnimationFrame(this.lastAnimationFrame); + + // Can be done in a separate frame + this.lastAnimationFrame = requestAnimationFrame(() => { + effectedElements.forEach(element => animate(element, this.options)); + }); + } +} + +exports.default = SortAnimation; /** + * Animates two elements + * @param {Object} element + * @param {Object} element.from + * @param {Object} element.to + * @param {Object} options + * @param {Number} options.duration + * @param {String} options.easingFunction + * @private + */ + +function animate({ from, to }, { duration, easingFunction }) { + const domEl = from.domEl; + const x = from.offsetLeft - to.offsetLeft; + const y = from.offsetTop - to.offsetTop; + + domEl.style.pointerEvents = 'none'; + domEl.style.transform = `translate3d(${x}px, ${y}px, 0)`; + + requestAnimationFrame(() => { + domEl.addEventListener('transitionend', resetElementOnTransitionEnd); + domEl.style.transition = `transform ${duration}ms ${easingFunction}`; + domEl.style.transform = ''; + }); +} + +/** + * Resets animation style properties after animation has completed + * @param {Event} event + * @private + */ +function resetElementOnTransitionEnd(event) { + event.target.style.transition = ''; + event.target.style.pointerEvents = ''; + event.target.removeEventListener('transitionend', resetElementOnTransitionEnd); +} + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.defaultOptions = undefined; + +var _SortAnimation = __webpack_require__(15); + +var _SortAnimation2 = _interopRequireDefault(_SortAnimation); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _SortAnimation2.default; +exports.defaultOptions = _SortAnimation.defaultOptions; + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.defaultOptions = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _AbstractPlugin = __webpack_require__(0); + +var _AbstractPlugin2 = _interopRequireDefault(_AbstractPlugin); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const onSortableSorted = Symbol('onSortableSorted'); + +/** + * SwapAnimation default options + * @property {Object} defaultOptions + * @property {Number} defaultOptions.duration + * @property {String} defaultOptions.easingFunction + * @property {Boolean} defaultOptions.horizontal + * @type {Object} + */ +const defaultOptions = exports.defaultOptions = { + duration: 150, + easingFunction: 'ease-in-out', + horizontal: false +}; + +/** + * SwapAnimation plugin adds swap animations for sortable + * @class SwapAnimation + * @module SwapAnimation + * @extends AbstractPlugin + */ +class SwapAnimation extends _AbstractPlugin2.default { + /** + * SwapAnimation constructor. + * @constructs SwapAnimation + * @param {Draggable} draggable - Draggable instance + */ + constructor(draggable) { + super(draggable); + + /** + * SwapAnimation options + * @property {Object} options + * @property {Number} defaultOptions.duration + * @property {String} defaultOptions.easingFunction + * @type {Object} + */ + this.options = _extends({}, defaultOptions, this.getOptions()); + + /** + * Last animation frame + * @property {Number} lastAnimationFrame + * @type {Number} + */ + this.lastAnimationFrame = null; + + this[onSortableSorted] = this[onSortableSorted].bind(this); + } + + /** + * Attaches plugins event listeners + */ + attach() { + this.draggable.on('sortable:sorted', this[onSortableSorted]); + } + + /** + * Detaches plugins event listeners + */ + detach() { + this.draggable.off('sortable:sorted', this[onSortableSorted]); + } + + /** + * Returns options passed through draggable + * @return {Object} + */ + getOptions() { + return this.draggable.options.swapAnimation || {}; + } + + /** + * Sortable sorted handler + * @param {SortableSortedEvent} sortableEvent + * @private + */ + [onSortableSorted]({ oldIndex, newIndex, dragEvent }) { + const { source, over } = dragEvent; + + cancelAnimationFrame(this.lastAnimationFrame); + + // Can be done in a separate frame + this.lastAnimationFrame = requestAnimationFrame(() => { + if (oldIndex >= newIndex) { + animate(source, over, this.options); + } else { + animate(over, source, this.options); + } + }); + } +} + +exports.default = SwapAnimation; /** + * Animates two elements + * @param {HTMLElement} from + * @param {HTMLElement} to + * @param {Object} options + * @param {Number} options.duration + * @param {String} options.easingFunction + * @param {String} options.horizontal + * @private + */ + +function animate(from, to, { duration, easingFunction, horizontal }) { + for (const element of [from, to]) { + element.style.pointerEvents = 'none'; + } + + if (horizontal) { + const width = from.offsetWidth; + from.style.transform = `translate3d(${width}px, 0, 0)`; + to.style.transform = `translate3d(-${width}px, 0, 0)`; + } else { + const height = from.offsetHeight; + from.style.transform = `translate3d(0, ${height}px, 0)`; + to.style.transform = `translate3d(0, -${height}px, 0)`; + } + + requestAnimationFrame(() => { + for (const element of [from, to]) { + element.addEventListener('transitionend', resetElementOnTransitionEnd); + element.style.transition = `transform ${duration}ms ${easingFunction}`; + element.style.transform = ''; + } + }); +} + +/** + * Resets animation style properties after animation has completed + * @param {Event} event + * @private + */ +function resetElementOnTransitionEnd(event) { + event.target.style.transition = ''; + event.target.style.pointerEvents = ''; + event.target.removeEventListener('transitionend', resetElementOnTransitionEnd); +} + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.defaultOptions = undefined; + +var _SwapAnimation = __webpack_require__(17); + +var _SwapAnimation2 = _interopRequireDefault(_SwapAnimation); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _SwapAnimation2.default; +exports.defaultOptions = _SwapAnimation.defaultOptions; + +/***/ }), +/* 19 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _AbstractPlugin = __webpack_require__(0); + +var _AbstractPlugin2 = _interopRequireDefault(_AbstractPlugin); + +var _SnappableEvent = __webpack_require__(7); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const onDragStart = Symbol('onDragStart'); +const onDragStop = Symbol('onDragStop'); +const onDragOver = Symbol('onDragOver'); +const onDragOut = Symbol('onDragOut'); +const onMirrorCreated = Symbol('onMirrorCreated'); +const onMirrorDestroy = Symbol('onMirrorDestroy'); + +/** + * Snappable plugin which snaps draggable elements into place + * @class Snappable + * @module Snappable + * @extends AbstractPlugin + */ +class Snappable extends _AbstractPlugin2.default { + /** + * Snappable constructor. + * @constructs Snappable + * @param {Draggable} draggable - Draggable instance + */ + constructor(draggable) { + super(draggable); + + /** + * Keeps track of the first source element + * @property {HTMLElement|null} firstSource + */ + this.firstSource = null; + + /** + * Keeps track of the mirror element + * @property {HTMLElement} mirror + */ + this.mirror = null; + + this[onDragStart] = this[onDragStart].bind(this); + this[onDragStop] = this[onDragStop].bind(this); + this[onDragOver] = this[onDragOver].bind(this); + this[onDragOut] = this[onDragOut].bind(this); + this[onMirrorCreated] = this[onMirrorCreated].bind(this); + this[onMirrorDestroy] = this[onMirrorDestroy].bind(this); + } + + /** + * Attaches plugins event listeners + */ + attach() { + this.draggable.on('drag:start', this[onDragStart]).on('drag:stop', this[onDragStop]).on('drag:over', this[onDragOver]).on('drag:out', this[onDragOut]).on('droppable:over', this[onDragOver]).on('droppable:out', this[onDragOut]).on('mirror:created', this[onMirrorCreated]).on('mirror:destroy', this[onMirrorDestroy]); + } + + /** + * Detaches plugins event listeners + */ + detach() { + this.draggable.off('drag:start', this[onDragStart]).off('drag:stop', this[onDragStop]).off('drag:over', this[onDragOver]).off('drag:out', this[onDragOut]).off('droppable:over', this[onDragOver]).off('droppable:out', this[onDragOut]).off('mirror:created', this[onMirrorCreated]).off('mirror:destroy', this[onMirrorDestroy]); + } + + /** + * Drag start handler + * @private + * @param {DragStartEvent} event - Drag start event + */ + [onDragStart](event) { + if (event.canceled()) { + return; + } + + this.firstSource = event.source; + } + + /** + * Drag stop handler + * @private + * @param {DragStopEvent} event - Drag stop event + */ + [onDragStop]() { + this.firstSource = null; + } + + /** + * Drag over handler + * @private + * @param {DragOverEvent|DroppableOverEvent} event - Drag over event + */ + [onDragOver](event) { + if (event.canceled()) { + return; + } + + const source = event.source || event.dragEvent.source; + + if (source === this.firstSource) { + this.firstSource = null; + return; + } + + const snapInEvent = new _SnappableEvent.SnapInEvent({ + dragEvent: event, + snappable: event.over || event.droppable + }); + + this.draggable.trigger(snapInEvent); + + if (snapInEvent.canceled()) { + return; + } + + if (this.mirror) { + this.mirror.style.display = 'none'; + } + + source.classList.remove(this.draggable.getClassNameFor('source:dragging')); + source.classList.add(this.draggable.getClassNameFor('source:placed')); + + // Need to cancel this in drag out + setTimeout(() => { + source.classList.remove(this.draggable.getClassNameFor('source:placed')); + }, this.draggable.options.placedTimeout); + } + + /** + * Drag out handler + * @private + * @param {DragOutEvent|DroppableOutEvent} event - Drag out event + */ + [onDragOut](event) { + if (event.canceled()) { + return; + } + + const source = event.source || event.dragEvent.source; + + const snapOutEvent = new _SnappableEvent.SnapOutEvent({ + dragEvent: event, + snappable: event.over || event.droppable + }); + + this.draggable.trigger(snapOutEvent); + + if (snapOutEvent.canceled()) { + return; + } + + if (this.mirror) { + this.mirror.style.display = ''; + } + + source.classList.add(this.draggable.getClassNameFor('source:dragging')); + } + + /** + * Mirror created handler + * @param {MirrorCreatedEvent} mirrorEvent + * @private + */ + [onMirrorCreated]({ mirror }) { + this.mirror = mirror; + } + + /** + * Mirror destroy handler + * @param {MirrorDestroyEvent} mirrorEvent + * @private + */ + [onMirrorDestroy]() { + this.mirror = null; + } +} +exports.default = Snappable; + +/***/ }), +/* 20 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SnapOutEvent = exports.SnapInEvent = exports.SnapEvent = undefined; + +var _AbstractEvent = __webpack_require__(1); + +var _AbstractEvent2 = _interopRequireDefault(_AbstractEvent); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Base snap event + * @class SnapEvent + * @module SnapEvent + * @extends AbstractEvent + */ +class SnapEvent extends _AbstractEvent2.default { + + /** + * Drag event that triggered this snap event + * @property dragEvent + * @type {DragEvent} + * @readonly + */ + get dragEvent() { + return this.data.dragEvent; + } + + /** + * Snappable element + * @property snappable + * @type {HTMLElement} + * @readonly + */ + get snappable() { + return this.data.snappable; + } +} + +exports.SnapEvent = SnapEvent; /** + * Snap in event + * @class SnapInEvent + * @module SnapInEvent + * @extends SnapEvent + */ + +SnapEvent.type = 'snap'; +class SnapInEvent extends SnapEvent {} + +exports.SnapInEvent = SnapInEvent; /** + * Snap out event + * @class SnapOutEvent + * @module SnapOutEvent + * @extends SnapEvent + */ + +SnapInEvent.type = 'snap:in'; +SnapInEvent.cancelable = true; +class SnapOutEvent extends SnapEvent {} +exports.SnapOutEvent = SnapOutEvent; +SnapOutEvent.type = 'snap:out'; +SnapOutEvent.cancelable = true; + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _SnappableEvent = __webpack_require__(7); + +Object.keys(_SnappableEvent).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _SnappableEvent[key]; + } + }); +}); + +var _Snappable = __webpack_require__(19); + +var _Snappable2 = _interopRequireDefault(_Snappable); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _Snappable2.default; + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.defaultOptions = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _AbstractPlugin = __webpack_require__(0); + +var _AbstractPlugin2 = _interopRequireDefault(_AbstractPlugin); + +var _utils = __webpack_require__(2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const onMirrorCreated = Symbol('onMirrorCreated'); +const onMirrorDestroy = Symbol('onMirrorDestroy'); +const onDragOver = Symbol('onDragOver'); +const resize = Symbol('resize'); + +/** + * ResizeMirror default options + * @property {Object} defaultOptions + * @type {Object} + */ +const defaultOptions = exports.defaultOptions = {}; + +/** + * The ResizeMirror plugin resizes the mirror element to the dimensions of the draggable element that the mirror is hovering over + * @class ResizeMirror + * @module ResizeMirror + * @extends AbstractPlugin + */ +class ResizeMirror extends _AbstractPlugin2.default { + /** + * ResizeMirror constructor. + * @constructs ResizeMirror + * @param {Draggable} draggable - Draggable instance + */ + constructor(draggable) { + super(draggable); + + /** + * ResizeMirror options + * @property {Object} options + * @type {Object} + */ + this.options = _extends({}, defaultOptions, this.getOptions()); + + /** + * ResizeMirror remembers the last width when resizing the mirror + * to avoid additional writes to the DOM + * @property {number} lastWidth + */ + this.lastWidth = 0; + + /** + * ResizeMirror remembers the last height when resizing the mirror + * to avoid additional writes to the DOM + * @property {number} lastHeight + */ + this.lastHeight = 0; + + /** + * Keeps track of the mirror element + * @property {HTMLElement} mirror + */ + this.mirror = null; + + this[onMirrorCreated] = this[onMirrorCreated].bind(this); + this[onMirrorDestroy] = this[onMirrorDestroy].bind(this); + this[onDragOver] = this[onDragOver].bind(this); + } + + /** + * Attaches plugins event listeners + */ + attach() { + this.draggable.on('mirror:created', this[onMirrorCreated]).on('drag:over', this[onDragOver]).on('drag:over:container', this[onDragOver]); + } + + /** + * Detaches plugins event listeners + */ + detach() { + this.draggable.off('mirror:created', this[onMirrorCreated]).off('mirror:destroy', this[onMirrorDestroy]).off('drag:over', this[onDragOver]).off('drag:over:container', this[onDragOver]); + } + + /** + * Returns options passed through draggable + * @return {Object} + */ + getOptions() { + return this.draggable.options.resizeMirror || {}; + } + + /** + * Mirror created handler + * @param {MirrorCreatedEvent} mirrorEvent + * @private + */ + [onMirrorCreated]({ mirror }) { + this.mirror = mirror; + } + + /** + * Mirror destroy handler + * @param {MirrorDestroyEvent} mirrorEvent + * @private + */ + [onMirrorDestroy]() { + this.mirror = null; + } + + /** + * Drag over handler + * @param {DragOverEvent | DragOverContainer} dragEvent + * @private + */ + [onDragOver](dragEvent) { + this[resize](dragEvent); + } + + /** + * Resize function for + * @param {DragOverEvent | DragOverContainer} dragEvent + * @private + */ + [resize]({ overContainer, over }) { + requestAnimationFrame(() => { + if (!this.mirror.parentNode) { + return; + } + + if (this.mirror.parentNode !== overContainer) { + overContainer.appendChild(this.mirror); + } + + const overElement = over || this.draggable.getDraggableElementsForContainer(overContainer)[0]; + + if (!overElement) { + return; + } + + (0, _utils.requestNextAnimationFrame)(() => { + const overRect = overElement.getBoundingClientRect(); + + if (this.lastHeight === overRect.height && this.lastWidth === overRect.width) { + return; + } + + this.mirror.style.width = `${overRect.width}px`; + this.mirror.style.height = `${overRect.height}px`; + + this.lastWidth = overRect.width; + this.lastHeight = overRect.height; + }); + }); + } +} +exports.default = ResizeMirror; + +/***/ }), +/* 23 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.defaultOptions = undefined; + +var _ResizeMirror = __webpack_require__(22); + +var _ResizeMirror2 = _interopRequireDefault(_ResizeMirror); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _ResizeMirror2.default; +exports.defaultOptions = _ResizeMirror.defaultOptions; + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _AbstractPlugin = __webpack_require__(0); + +var _AbstractPlugin2 = _interopRequireDefault(_AbstractPlugin); + +var _utils = __webpack_require__(2); + +var _CollidableEvent = __webpack_require__(8); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const onDragMove = Symbol('onDragMove'); +const onDragStop = Symbol('onDragStop'); +const onRequestAnimationFrame = Symbol('onRequestAnimationFrame'); + +/** + * Collidable plugin which detects colliding elements while dragging + * @class Collidable + * @module Collidable + * @extends AbstractPlugin + */ +class Collidable extends _AbstractPlugin2.default { + /** + * Collidable constructor. + * @constructs Collidable + * @param {Draggable} draggable - Draggable instance + */ + constructor(draggable) { + super(draggable); + + /** + * Keeps track of currently colliding elements + * @property {HTMLElement|null} currentlyCollidingElement + * @type {HTMLElement|null} + */ + this.currentlyCollidingElement = null; + + /** + * Keeps track of currently colliding elements + * @property {HTMLElement|null} lastCollidingElement + * @type {HTMLElement|null} + */ + this.lastCollidingElement = null; + + /** + * Animation frame for finding colliding elements + * @property {Number|null} currentAnimationFrame + * @type {Number|null} + */ + this.currentAnimationFrame = null; + + this[onDragMove] = this[onDragMove].bind(this); + this[onDragStop] = this[onDragStop].bind(this); + this[onRequestAnimationFrame] = this[onRequestAnimationFrame].bind(this); + } + + /** + * Attaches plugins event listeners + */ + attach() { + this.draggable.on('drag:move', this[onDragMove]).on('drag:stop', this[onDragStop]); + } + + /** + * Detaches plugins event listeners + */ + detach() { + this.draggable.off('drag:move', this[onDragMove]).off('drag:stop', this[onDragStop]); + } + + /** + * Returns current collidables based on `collidables` option + * @return {HTMLElement[]} + */ + getCollidables() { + const collidables = this.draggable.options.collidables; + + if (typeof collidables === 'string') { + return Array.prototype.slice.call(document.querySelectorAll(collidables)); + } else if (collidables instanceof NodeList || collidables instanceof Array) { + return Array.prototype.slice.call(collidables); + } else if (collidables instanceof HTMLElement) { + return [collidables]; + } else if (typeof collidables === 'function') { + return collidables(); + } else { + return []; + } + } + + /** + * Drag move handler + * @private + * @param {DragMoveEvent} event - Drag move event + */ + [onDragMove](event) { + const target = event.sensorEvent.target; + + this.currentAnimationFrame = requestAnimationFrame(this[onRequestAnimationFrame](target)); + + if (this.currentlyCollidingElement) { + event.cancel(); + } + + const collidableInEvent = new _CollidableEvent.CollidableInEvent({ + dragEvent: event, + collidingElement: this.currentlyCollidingElement + }); + + const collidableOutEvent = new _CollidableEvent.CollidableOutEvent({ + dragEvent: event, + collidingElement: this.lastCollidingElement + }); + + const enteringCollidable = Boolean(this.currentlyCollidingElement && this.lastCollidingElement !== this.currentlyCollidingElement); + const leavingCollidable = Boolean(!this.currentlyCollidingElement && this.lastCollidingElement); + + if (enteringCollidable) { + if (this.lastCollidingElement) { + this.draggable.trigger(collidableOutEvent); + } + + this.draggable.trigger(collidableInEvent); + } else if (leavingCollidable) { + this.draggable.trigger(collidableOutEvent); + } + + this.lastCollidingElement = this.currentlyCollidingElement; + } + + /** + * Drag stop handler + * @private + * @param {DragStopEvent} event - Drag stop event + */ + [onDragStop](event) { + const lastCollidingElement = this.currentlyCollidingElement || this.lastCollidingElement; + const collidableOutEvent = new _CollidableEvent.CollidableOutEvent({ + dragEvent: event, + collidingElement: lastCollidingElement + }); + + if (lastCollidingElement) { + this.draggable.trigger(collidableOutEvent); + } + + this.lastCollidingElement = null; + this.currentlyCollidingElement = null; + } + + /** + * Animation frame function + * @private + * @param {HTMLElement} target - Current move target + * @return {Function} + */ + [onRequestAnimationFrame](target) { + return () => { + const collidables = this.getCollidables(); + this.currentlyCollidingElement = (0, _utils.closest)(target, element => collidables.includes(element)); + }; + } +} +exports.default = Collidable; + +/***/ }), +/* 25 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.CollidableOutEvent = exports.CollidableInEvent = exports.CollidableEvent = undefined; + +var _AbstractEvent = __webpack_require__(1); + +var _AbstractEvent2 = _interopRequireDefault(_AbstractEvent); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Base collidable event + * @class CollidableEvent + * @module CollidableEvent + * @extends AbstractEvent + */ +class CollidableEvent extends _AbstractEvent2.default { + + /** + * Drag event that triggered this colliable event + * @property dragEvent + * @type {DragEvent} + * @readonly + */ + get dragEvent() { + return this.data.dragEvent; + } +} + +exports.CollidableEvent = CollidableEvent; /** + * Collidable in event + * @class CollidableInEvent + * @module CollidableInEvent + * @extends CollidableEvent + */ + +CollidableEvent.type = 'collidable'; +class CollidableInEvent extends CollidableEvent { + + /** + * Element you are currently colliding with + * @property collidingElement + * @type {HTMLElement} + * @readonly + */ + get collidingElement() { + return this.data.collidingElement; + } +} + +exports.CollidableInEvent = CollidableInEvent; /** + * Collidable out event + * @class CollidableOutEvent + * @module CollidableOutEvent + * @extends CollidableEvent + */ + +CollidableInEvent.type = 'collidable:in'; +class CollidableOutEvent extends CollidableEvent { + + /** + * Element you were previously colliding with + * @property collidingElement + * @type {HTMLElement} + * @readonly + */ + get collidingElement() { + return this.data.collidingElement; + } +} +exports.CollidableOutEvent = CollidableOutEvent; +CollidableOutEvent.type = 'collidable:out'; + +/***/ }), +/* 26 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _CollidableEvent = __webpack_require__(8); + +Object.keys(_CollidableEvent).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _CollidableEvent[key]; + } + }); +}); + +var _Collidable = __webpack_require__(24); + +var _Collidable2 = _interopRequireDefault(_Collidable); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _Collidable2.default; + +/***/ }), +/* 27 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Collidable = __webpack_require__(26); + +Object.defineProperty(exports, 'Collidable', { + enumerable: true, + get: function () { + return _interopRequireDefault(_Collidable).default; + } +}); + +var _ResizeMirror = __webpack_require__(23); + +Object.defineProperty(exports, 'ResizeMirror', { + enumerable: true, + get: function () { + return _interopRequireDefault(_ResizeMirror).default; + } +}); +Object.defineProperty(exports, 'defaultResizeMirrorOptions', { + enumerable: true, + get: function () { + return _ResizeMirror.defaultOptions; + } +}); + +var _Snappable = __webpack_require__(21); + +Object.defineProperty(exports, 'Snappable', { + enumerable: true, + get: function () { + return _interopRequireDefault(_Snappable).default; + } +}); + +var _SwapAnimation = __webpack_require__(18); + +Object.defineProperty(exports, 'SwapAnimation', { + enumerable: true, + get: function () { + return _interopRequireDefault(_SwapAnimation).default; + } +}); +Object.defineProperty(exports, 'defaultSwapAnimationOptions', { + enumerable: true, + get: function () { + return _SwapAnimation.defaultOptions; + } +}); + +var _SortAnimation = __webpack_require__(16); + +Object.defineProperty(exports, 'SortAnimation', { + enumerable: true, + get: function () { + return _interopRequireDefault(_SortAnimation).default; + } +}); +Object.defineProperty(exports, 'defaultSortAnimationOptions', { + enumerable: true, + get: function () { + return _SortAnimation.defaultOptions; + } +}); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), +/* 28 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _Draggable = __webpack_require__(5); + +var _Draggable2 = _interopRequireDefault(_Draggable); + +var _SortableEvent = __webpack_require__(9); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const onDragStart = Symbol('onDragStart'); +const onDragOverContainer = Symbol('onDragOverContainer'); +const onDragOver = Symbol('onDragOver'); +const onDragStop = Symbol('onDragStop'); + +/** + * Returns announcement message when a Draggable element has been sorted with another Draggable element + * or moved into a new container + * @param {SortableSortedEvent} sortableEvent + * @return {String} + */ +function onSortableSortedDefaultAnnouncement({ dragEvent }) { + const sourceText = dragEvent.source.textContent.trim() || dragEvent.source.id || 'sortable element'; + + if (dragEvent.over) { + const overText = dragEvent.over.textContent.trim() || dragEvent.over.id || 'sortable element'; + const isFollowing = dragEvent.source.compareDocumentPosition(dragEvent.over) & Node.DOCUMENT_POSITION_FOLLOWING; + + if (isFollowing) { + return `Placed ${sourceText} after ${overText}`; + } else { + return `Placed ${sourceText} before ${overText}`; + } + } else { + // need to figure out how to compute container name + return `Placed ${sourceText} into a different container`; + } +} + +/** + * @const {Object} defaultAnnouncements + * @const {Function} defaultAnnouncements['sortable:sorted'] + */ +const defaultAnnouncements = { + 'sortable:sorted': onSortableSortedDefaultAnnouncement +}; + +/** + * Sortable is built on top of Draggable and allows sorting of draggable elements. Sortable will keep + * track of the original index and emits the new index as you drag over draggable elements. + * @class Sortable + * @module Sortable + * @extends Draggable + */ +class Sortable extends _Draggable2.default { + /** + * Sortable constructor. + * @constructs Sortable + * @param {HTMLElement[]|NodeList|HTMLElement} containers - Sortable containers + * @param {Object} options - Options for Sortable + */ + constructor(containers = [], options = {}) { + super(containers, _extends({}, options, { + announcements: _extends({}, defaultAnnouncements, options.announcements || {}) + })); + + /** + * start index of source on drag start + * @property startIndex + * @type {Number} + */ + this.startIndex = null; + + /** + * start container on drag start + * @property startContainer + * @type {HTMLElement} + * @default null + */ + this.startContainer = null; + + this[onDragStart] = this[onDragStart].bind(this); + this[onDragOverContainer] = this[onDragOverContainer].bind(this); + this[onDragOver] = this[onDragOver].bind(this); + this[onDragStop] = this[onDragStop].bind(this); + + this.on('drag:start', this[onDragStart]).on('drag:over:container', this[onDragOverContainer]).on('drag:over', this[onDragOver]).on('drag:stop', this[onDragStop]); + } + + /** + * Destroys Sortable instance. + */ + destroy() { + super.destroy(); + + this.off('drag:start', this[onDragStart]).off('drag:over:container', this[onDragOverContainer]).off('drag:over', this[onDragOver]).off('drag:stop', this[onDragStop]); + } + + /** + * Returns true index of element within its container during drag operation, i.e. excluding mirror and original source + * @param {HTMLElement} element - An element + * @return {Number} + */ + index(element) { + return this.getDraggableElementsForContainer(element.parentNode).indexOf(element); + } + + /** + * Drag start handler + * @private + * @param {DragStartEvent} event - Drag start event + */ + [onDragStart](event) { + this.startContainer = event.source.parentNode; + this.startIndex = this.index(event.source); + + const sortableStartEvent = new _SortableEvent.SortableStartEvent({ + dragEvent: event, + startIndex: this.startIndex, + startContainer: this.startContainer + }); + + this.trigger(sortableStartEvent); + + if (sortableStartEvent.canceled()) { + event.cancel(); + } + } + + /** + * Drag over container handler + * @private + * @param {DragOverContainerEvent} event - Drag over container event + */ + [onDragOverContainer](event) { + if (event.canceled()) { + return; + } + + const { source, over, overContainer } = event; + const oldIndex = this.index(source); + + const sortableSortEvent = new _SortableEvent.SortableSortEvent({ + dragEvent: event, + currentIndex: oldIndex, + source, + over + }); + + this.trigger(sortableSortEvent); + + if (sortableSortEvent.canceled()) { + return; + } + + const children = this.getDraggableElementsForContainer(overContainer); + const moves = move({ source, over, overContainer, children }); + + if (!moves) { + return; + } + + const { oldContainer, newContainer } = moves; + const newIndex = this.index(event.source); + + const sortableSortedEvent = new _SortableEvent.SortableSortedEvent({ + dragEvent: event, + oldIndex, + newIndex, + oldContainer, + newContainer + }); + + this.trigger(sortableSortedEvent); + } + + /** + * Drag over handler + * @private + * @param {DragOverEvent} event - Drag over event + */ + [onDragOver](event) { + if (event.over === event.originalSource || event.over === event.source) { + return; + } + + const { source, over, overContainer } = event; + const oldIndex = this.index(source); + + const sortableSortEvent = new _SortableEvent.SortableSortEvent({ + dragEvent: event, + currentIndex: oldIndex, + source, + over + }); + + this.trigger(sortableSortEvent); + + if (sortableSortEvent.canceled()) { + return; + } + + const children = this.getDraggableElementsForContainer(overContainer); + const moves = move({ source, over, overContainer, children }); + + if (!moves) { + return; + } + + const { oldContainer, newContainer } = moves; + const newIndex = this.index(source); + + const sortableSortedEvent = new _SortableEvent.SortableSortedEvent({ + dragEvent: event, + oldIndex, + newIndex, + oldContainer, + newContainer + }); + + this.trigger(sortableSortedEvent); + } + + /** + * Drag stop handler + * @private + * @param {DragStopEvent} event - Drag stop event + */ + [onDragStop](event) { + const sortableStopEvent = new _SortableEvent.SortableStopEvent({ + dragEvent: event, + oldIndex: this.startIndex, + newIndex: this.index(event.source), + oldContainer: this.startContainer, + newContainer: event.source.parentNode + }); + + this.trigger(sortableStopEvent); + + this.startIndex = null; + this.startContainer = null; + } +} + +exports.default = Sortable; +function index(element) { + return Array.prototype.indexOf.call(element.parentNode.children, element); +} + +function move({ source, over, overContainer, children }) { + const emptyOverContainer = !children.length; + const differentContainer = source.parentNode !== overContainer; + const sameContainer = over && !differentContainer; + + if (emptyOverContainer) { + return moveInsideEmptyContainer(source, overContainer); + } else if (sameContainer) { + return moveWithinContainer(source, over); + } else if (differentContainer) { + return moveOutsideContainer(source, over, overContainer); + } else { + return null; + } +} + +function moveInsideEmptyContainer(source, overContainer) { + const oldContainer = source.parentNode; + + overContainer.appendChild(source); + + return { oldContainer, newContainer: overContainer }; +} + +function moveWithinContainer(source, over) { + const oldIndex = index(source); + const newIndex = index(over); + + if (oldIndex < newIndex) { + source.parentNode.insertBefore(source, over.nextElementSibling); + } else { + source.parentNode.insertBefore(source, over); + } + + return { oldContainer: source.parentNode, newContainer: source.parentNode }; +} + +function moveOutsideContainer(source, over, overContainer) { + const oldContainer = source.parentNode; + + if (over) { + over.parentNode.insertBefore(source, over); + } else { + // need to figure out proper position + overContainer.appendChild(source); + } + + return { oldContainer, newContainer: source.parentNode }; +} + +/***/ }), +/* 29 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SortableStopEvent = exports.SortableSortedEvent = exports.SortableSortEvent = exports.SortableStartEvent = exports.SortableEvent = undefined; + +var _AbstractEvent = __webpack_require__(1); + +var _AbstractEvent2 = _interopRequireDefault(_AbstractEvent); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Base sortable event + * @class SortableEvent + * @module SortableEvent + * @extends AbstractEvent + */ +class SortableEvent extends _AbstractEvent2.default { + + /** + * Original drag event that triggered this sortable event + * @property dragEvent + * @type {DragEvent} + * @readonly + */ + get dragEvent() { + return this.data.dragEvent; + } +} + +exports.SortableEvent = SortableEvent; /** + * Sortable start event + * @class SortableStartEvent + * @module SortableStartEvent + * @extends SortableEvent + */ + +SortableEvent.type = 'sortable'; +class SortableStartEvent extends SortableEvent { + + /** + * Start index of source on sortable start + * @property startIndex + * @type {Number} + * @readonly + */ + get startIndex() { + return this.data.startIndex; + } + + /** + * Start container on sortable start + * @property startContainer + * @type {HTMLElement} + * @readonly + */ + get startContainer() { + return this.data.startContainer; + } +} + +exports.SortableStartEvent = SortableStartEvent; /** + * Sortable sort event + * @class SortableSortEvent + * @module SortableSortEvent + * @extends SortableEvent + */ + +SortableStartEvent.type = 'sortable:start'; +SortableStartEvent.cancelable = true; +class SortableSortEvent extends SortableEvent { + + /** + * Index of current draggable element + * @property currentIndex + * @type {Number} + * @readonly + */ + get currentIndex() { + return this.data.currentIndex; + } + + /** + * Draggable element you are hovering over + * @property over + * @type {HTMLElement} + * @readonly + */ + get over() { + return this.data.over; + } + + /** + * Draggable container element you are hovering over + * @property overContainer + * @type {HTMLElement} + * @readonly + */ + get overContainer() { + return this.data.dragEvent.overContainer; + } +} + +exports.SortableSortEvent = SortableSortEvent; /** + * Sortable sorted event + * @class SortableSortedEvent + * @module SortableSortedEvent + * @extends SortableEvent + */ + +SortableSortEvent.type = 'sortable:sort'; +SortableSortEvent.cancelable = true; +class SortableSortedEvent extends SortableEvent { + + /** + * Index of last sorted event + * @property oldIndex + * @type {Number} + * @readonly + */ + get oldIndex() { + return this.data.oldIndex; + } + + /** + * New index of this sorted event + * @property newIndex + * @type {Number} + * @readonly + */ + get newIndex() { + return this.data.newIndex; + } + + /** + * Old container of draggable element + * @property oldContainer + * @type {HTMLElement} + * @readonly + */ + get oldContainer() { + return this.data.oldContainer; + } + + /** + * New container of draggable element + * @property newContainer + * @type {HTMLElement} + * @readonly + */ + get newContainer() { + return this.data.newContainer; + } +} + +exports.SortableSortedEvent = SortableSortedEvent; /** + * Sortable stop event + * @class SortableStopEvent + * @module SortableStopEvent + * @extends SortableEvent + */ + +SortableSortedEvent.type = 'sortable:sorted'; +class SortableStopEvent extends SortableEvent { + + /** + * Original index on sortable start + * @property oldIndex + * @type {Number} + * @readonly + */ + get oldIndex() { + return this.data.oldIndex; + } + + /** + * New index of draggable element + * @property newIndex + * @type {Number} + * @readonly + */ + get newIndex() { + return this.data.newIndex; + } + + /** + * Original container of draggable element + * @property oldContainer + * @type {HTMLElement} + * @readonly + */ + get oldContainer() { + return this.data.oldContainer; + } + + /** + * New container of draggable element + * @property newContainer + * @type {HTMLElement} + * @readonly + */ + get newContainer() { + return this.data.newContainer; + } +} +exports.SortableStopEvent = SortableStopEvent; +SortableStopEvent.type = 'sortable:stop'; + +/***/ }), +/* 30 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _SortableEvent = __webpack_require__(9); + +Object.keys(_SortableEvent).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _SortableEvent[key]; + } + }); +}); + +var _Sortable = __webpack_require__(28); + +var _Sortable2 = _interopRequireDefault(_Sortable); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _Sortable2.default; + +/***/ }), +/* 31 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _Draggable = __webpack_require__(5); + +var _Draggable2 = _interopRequireDefault(_Draggable); + +var _SwappableEvent = __webpack_require__(10); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const onDragStart = Symbol('onDragStart'); +const onDragOver = Symbol('onDragOver'); +const onDragStop = Symbol('onDragStop'); + +/** + * Returns an announcement message when the Draggable element is swapped with another draggable element + * @param {SwappableSwappedEvent} swappableEvent + * @return {String} + */ +function onSwappableSwappedDefaultAnnouncement({ dragEvent, swappedElement }) { + const sourceText = dragEvent.source.textContent.trim() || dragEvent.source.id || 'swappable element'; + const overText = swappedElement.textContent.trim() || swappedElement.id || 'swappable element'; + + return `Swapped ${sourceText} with ${overText}`; +} + +/** + * @const {Object} defaultAnnouncements + * @const {Function} defaultAnnouncements['swappabled:swapped'] + */ +const defaultAnnouncements = { + 'swappabled:swapped': onSwappableSwappedDefaultAnnouncement +}; + +/** + * Swappable is built on top of Draggable and allows swapping of draggable elements. + * Order is irrelevant to Swappable. + * @class Swappable + * @module Swappable + * @extends Draggable + */ +class Swappable extends _Draggable2.default { + /** + * Swappable constructor. + * @constructs Swappable + * @param {HTMLElement[]|NodeList|HTMLElement} containers - Swappable containers + * @param {Object} options - Options for Swappable + */ + constructor(containers = [], options = {}) { + super(containers, _extends({}, options, { + announcements: _extends({}, defaultAnnouncements, options.announcements || {}) + })); + + /** + * Last draggable element that was dragged over + * @property lastOver + * @type {HTMLElement} + */ + this.lastOver = null; + + this[onDragStart] = this[onDragStart].bind(this); + this[onDragOver] = this[onDragOver].bind(this); + this[onDragStop] = this[onDragStop].bind(this); + + this.on('drag:start', this[onDragStart]).on('drag:over', this[onDragOver]).on('drag:stop', this[onDragStop]); + } + + /** + * Destroys Swappable instance. + */ + destroy() { + super.destroy(); + + this.off('drag:start', this._onDragStart).off('drag:over', this._onDragOver).off('drag:stop', this._onDragStop); + } + + /** + * Drag start handler + * @private + * @param {DragStartEvent} event - Drag start event + */ + [onDragStart](event) { + const swappableStartEvent = new _SwappableEvent.SwappableStartEvent({ + dragEvent: event + }); + + this.trigger(swappableStartEvent); + + if (swappableStartEvent.canceled()) { + event.cancel(); + } + } + + /** + * Drag over handler + * @private + * @param {DragOverEvent} event - Drag over event + */ + [onDragOver](event) { + if (event.over === event.originalSource || event.over === event.source || event.canceled()) { + return; + } + + const swappableSwapEvent = new _SwappableEvent.SwappableSwapEvent({ + dragEvent: event, + over: event.over, + overContainer: event.overContainer + }); + + this.trigger(swappableSwapEvent); + + if (swappableSwapEvent.canceled()) { + return; + } + + // swap originally swapped element back + if (this.lastOver && this.lastOver !== event.over) { + swap(this.lastOver, event.source); + } + + if (this.lastOver === event.over) { + this.lastOver = null; + } else { + this.lastOver = event.over; + } + + swap(event.source, event.over); + + const swappableSwappedEvent = new _SwappableEvent.SwappableSwappedEvent({ + dragEvent: event, + swappedElement: event.over + }); + + this.trigger(swappableSwappedEvent); + } + + /** + * Drag stop handler + * @private + * @param {DragStopEvent} event - Drag stop event + */ + [onDragStop](event) { + const swappableStopEvent = new _SwappableEvent.SwappableStopEvent({ + dragEvent: event + }); + + this.trigger(swappableStopEvent); + this.lastOver = null; + } +} + +exports.default = Swappable; +function withTempElement(callback) { + const tmpElement = document.createElement('div'); + callback(tmpElement); + tmpElement.parentNode.removeChild(tmpElement); +} + +function swap(source, over) { + const overParent = over.parentNode; + const sourceParent = source.parentNode; + + withTempElement(tmpElement => { + sourceParent.insertBefore(tmpElement, source); + overParent.insertBefore(source, over); + sourceParent.insertBefore(over, tmpElement); + }); +} + +/***/ }), +/* 32 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.SwappableStopEvent = exports.SwappableSwappedEvent = exports.SwappableSwapEvent = exports.SwappableStartEvent = exports.SwappableEvent = undefined; + +var _AbstractEvent = __webpack_require__(1); + +var _AbstractEvent2 = _interopRequireDefault(_AbstractEvent); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Base swappable event + * @class SwappableEvent + * @module SwappableEvent + * @extends AbstractEvent + */ +class SwappableEvent extends _AbstractEvent2.default { + + /** + * Original drag event that triggered this swappable event + * @property dragEvent + * @type {DragEvent} + * @readonly + */ + get dragEvent() { + return this.data.dragEvent; + } +} + +exports.SwappableEvent = SwappableEvent; /** + * Swappable start event + * @class SwappableStartEvent + * @module SwappableStartEvent + * @extends SwappableEvent + */ + +SwappableEvent.type = 'swappable'; +class SwappableStartEvent extends SwappableEvent {} + +exports.SwappableStartEvent = SwappableStartEvent; /** + * Swappable swap event + * @class SwappableSwapEvent + * @module SwappableSwapEvent + * @extends SwappableEvent + */ + +SwappableStartEvent.type = 'swappable:start'; +SwappableStartEvent.cancelable = true; +class SwappableSwapEvent extends SwappableEvent { + + /** + * Draggable element you are over + * @property over + * @type {HTMLElement} + * @readonly + */ + get over() { + return this.data.over; + } + + /** + * Draggable container you are over + * @property overContainer + * @type {HTMLElement} + * @readonly + */ + get overContainer() { + return this.data.overContainer; + } +} + +exports.SwappableSwapEvent = SwappableSwapEvent; /** + * Swappable swapped event + * @class SwappableSwappedEvent + * @module SwappableSwappedEvent + * @extends SwappableEvent + */ + +SwappableSwapEvent.type = 'swappable:swap'; +SwappableSwapEvent.cancelable = true; +class SwappableSwappedEvent extends SwappableEvent { + + /** + * The draggable element that you swapped with + * @property swappedElement + * @type {HTMLElement} + * @readonly + */ + get swappedElement() { + return this.data.swappedElement; + } +} + +exports.SwappableSwappedEvent = SwappableSwappedEvent; /** + * Swappable stop event + * @class SwappableStopEvent + * @module SwappableStopEvent + * @extends SwappableEvent + */ + +SwappableSwappedEvent.type = 'swappable:swapped'; +class SwappableStopEvent extends SwappableEvent {} +exports.SwappableStopEvent = SwappableStopEvent; +SwappableStopEvent.type = 'swappable:stop'; + +/***/ }), +/* 33 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _SwappableEvent = __webpack_require__(10); + +Object.keys(_SwappableEvent).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _SwappableEvent[key]; + } + }); +}); + +var _Swappable = __webpack_require__(31); + +var _Swappable2 = _interopRequireDefault(_Swappable); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _Swappable2.default; + +/***/ }), +/* 34 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _utils = __webpack_require__(2); + +var _Draggable = __webpack_require__(5); + +var _Draggable2 = _interopRequireDefault(_Draggable); + +var _DroppableEvent = __webpack_require__(11); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const onDragStart = Symbol('onDragStart'); +const onDragMove = Symbol('onDragMove'); +const onDragStop = Symbol('onDragStop'); +const dropInDropzone = Symbol('dropInDropZone'); +const returnToOriginalDropzone = Symbol('returnToOriginalDropzone'); +const closestDropzone = Symbol('closestDropzone'); +const getDropzones = Symbol('getDropzones'); + +/** + * Returns an announcement message when the Draggable element is dropped into a dropzone element + * @param {DroppableDroppedEvent} droppableEvent + * @return {String} + */ +function onDroppableDroppedDefaultAnnouncement({ dragEvent, dropzone }) { + const sourceText = dragEvent.source.textContent.trim() || dragEvent.source.id || 'draggable element'; + const dropzoneText = dropzone.textContent.trim() || dropzone.id || 'droppable element'; + + return `Dropped ${sourceText} into ${dropzoneText}`; +} + +/** + * Returns an announcement message when the Draggable element has returned to its original dropzone element + * @param {DroppableReturnedEvent} droppableEvent + * @return {String} + */ +function onDroppableReturnedDefaultAnnouncement({ dragEvent, dropzone }) { + const sourceText = dragEvent.source.textContent.trim() || dragEvent.source.id || 'draggable element'; + const dropzoneText = dropzone.textContent.trim() || dropzone.id || 'droppable element'; + + return `Returned ${sourceText} from ${dropzoneText}`; +} + +/** + * @const {Object} defaultAnnouncements + * @const {Function} defaultAnnouncements['droppable:dropped'] + * @const {Function} defaultAnnouncements['droppable:returned'] + */ +const defaultAnnouncements = { + 'droppable:dropped': onDroppableDroppedDefaultAnnouncement, + 'droppable:returned': onDroppableReturnedDefaultAnnouncement +}; + +const defaultClasses = { + 'droppable:active': 'draggable-dropzone--active', + 'droppable:occupied': 'draggable-dropzone--occupied' +}; + +const defaultOptions = { + dropzone: '.draggable-droppable' +}; + +/** + * Droppable is built on top of Draggable and allows dropping draggable elements + * into dropzone element + * @class Droppable + * @module Droppable + * @extends Draggable + */ +class Droppable extends _Draggable2.default { + /** + * Droppable constructor. + * @constructs Droppable + * @param {HTMLElement[]|NodeList|HTMLElement} containers - Droppable containers + * @param {Object} options - Options for Droppable + */ + constructor(containers = [], options = {}) { + super(containers, _extends({}, defaultOptions, options, { + classes: _extends({}, defaultClasses, options.classes || {}), + announcements: _extends({}, defaultAnnouncements, options.announcements || {}) + })); + + /** + * All dropzone elements on drag start + * @property dropzones + * @type {HTMLElement[]} + */ + this.dropzones = null; + + /** + * Last dropzone element that the source was dropped into + * @property lastDropzone + * @type {HTMLElement} + */ + this.lastDropzone = null; + + /** + * Initial dropzone element that the source was drag from + * @property initialDropzone + * @type {HTMLElement} + */ + this.initialDropzone = null; + + this[onDragStart] = this[onDragStart].bind(this); + this[onDragMove] = this[onDragMove].bind(this); + this[onDragStop] = this[onDragStop].bind(this); + + this.on('drag:start', this[onDragStart]).on('drag:move', this[onDragMove]).on('drag:stop', this[onDragStop]); + } + + /** + * Destroys Droppable instance. + */ + destroy() { + super.destroy(); + + this.off('drag:start', this[onDragStart]).off('drag:move', this[onDragMove]).off('drag:stop', this[onDragStop]); + } + + /** + * Drag start handler + * @private + * @param {DragStartEvent} event - Drag start event + */ + [onDragStart](event) { + if (event.canceled()) { + return; + } + + this.dropzones = [...this[getDropzones]()]; + const dropzone = (0, _utils.closest)(event.sensorEvent.target, this.options.dropzone); + + if (!dropzone) { + event.cancel(); + return; + } + + const droppableStartEvent = new _DroppableEvent.DroppableStartEvent({ + dragEvent: event, + dropzone + }); + + this.trigger(droppableStartEvent); + + if (droppableStartEvent.canceled()) { + event.cancel(); + return; + } + + this.initialDropzone = dropzone; + + for (const dropzoneElement of this.dropzones) { + if (dropzoneElement.classList.contains(this.getClassNameFor('droppable:occupied'))) { + continue; + } + + dropzoneElement.classList.add(this.getClassNameFor('droppable:active')); + } + } + + /** + * Drag move handler + * @private + * @param {DragMoveEvent} event - Drag move event + */ + [onDragMove](event) { + if (event.canceled()) { + return; + } + + const dropzone = this[closestDropzone](event.sensorEvent.target); + const overEmptyDropzone = dropzone && !dropzone.classList.contains(this.getClassNameFor('droppable:occupied')); + + if (overEmptyDropzone && this[dropInDropzone](event, dropzone)) { + this.lastDropzone = dropzone; + } else if ((!dropzone || dropzone === this.initialDropzone) && this.lastDropzone) { + this[returnToOriginalDropzone](event); + this.lastDropzone = null; + } + } + + /** + * Drag stop handler + * @private + * @param {DragStopEvent} event - Drag stop event + */ + [onDragStop](event) { + const droppableStopEvent = new _DroppableEvent.DroppableStopEvent({ + dragEvent: event, + dropzone: this.lastDropzone || this.initialDropzone + }); + + this.trigger(droppableStopEvent); + + const occupiedClass = this.getClassNameFor('droppable:occupied'); + + for (const dropzone of this.dropzones) { + dropzone.classList.remove(this.getClassNameFor('droppable:active')); + } + + if (this.lastDropzone && this.lastDropzone !== this.initialDropzone) { + this.initialDropzone.classList.remove(occupiedClass); + } + + this.dropzones = null; + this.lastDropzone = null; + this.initialDropzone = null; + } + + /** + * Drops a draggable element into a dropzone element + * @private + * @param {DragMoveEvent} event - Drag move event + * @param {HTMLElement} dropzone - Dropzone element to drop draggable into + */ + [dropInDropzone](event, dropzone) { + const droppableDroppedEvent = new _DroppableEvent.DroppableDroppedEvent({ + dragEvent: event, + dropzone + }); + + this.trigger(droppableDroppedEvent); + + if (droppableDroppedEvent.canceled()) { + return false; + } + + const occupiedClass = this.getClassNameFor('droppable:occupied'); + + if (this.lastDropzone) { + this.lastDropzone.classList.remove(occupiedClass); + } + + dropzone.appendChild(event.source); + dropzone.classList.add(occupiedClass); + + return true; + } + + /** + * Moves the previously dropped element back into its original dropzone + * @private + * @param {DragMoveEvent} event - Drag move event + */ + [returnToOriginalDropzone](event) { + const droppableReturnedEvent = new _DroppableEvent.DroppableReturnedEvent({ + dragEvent: event, + dropzone: this.lastDropzone + }); + + this.trigger(droppableReturnedEvent); + + if (droppableReturnedEvent.canceled()) { + return; + } + + this.initialDropzone.appendChild(event.source); + this.lastDropzone.classList.remove(this.getClassNameFor('droppable:occupied')); + } + + /** + * Returns closest dropzone element for even target + * @private + * @param {HTMLElement} target - Event target + * @return {HTMLElement|null} + */ + [closestDropzone](target) { + if (!this.dropzones) { + return null; + } + + return (0, _utils.closest)(target, this.dropzones); + } + + /** + * Returns all current dropzone elements for this draggable instance + * @private + * @return {NodeList|HTMLElement[]|Array} + */ + [getDropzones]() { + const dropzone = this.options.dropzone; + + if (typeof dropzone === 'string') { + return document.querySelectorAll(dropzone); + } else if (dropzone instanceof NodeList || dropzone instanceof Array) { + return dropzone; + } else if (typeof dropzone === 'function') { + return dropzone(); + } else { + return []; + } + } +} +exports.default = Droppable; + +/***/ }), +/* 35 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.DroppableStopEvent = exports.DroppableReturnedEvent = exports.DroppableDroppedEvent = exports.DroppableStartEvent = exports.DroppableEvent = undefined; + +var _AbstractEvent = __webpack_require__(1); + +var _AbstractEvent2 = _interopRequireDefault(_AbstractEvent); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Base droppable event + * @class DroppableEvent + * @module DroppableEvent + * @extends AbstractEvent + */ +class DroppableEvent extends _AbstractEvent2.default { + + /** + * Original drag event that triggered this droppable event + * @property dragEvent + * @type {DragEvent} + * @readonly + */ + get dragEvent() { + return this.data.dragEvent; + } +} + +exports.DroppableEvent = DroppableEvent; /** + * Droppable start event + * @class DroppableStartEvent + * @module DroppableStartEvent + * @extends DroppableEvent + */ + +DroppableEvent.type = 'droppable'; +class DroppableStartEvent extends DroppableEvent { + + /** + * The initial dropzone element of the currently dragging draggable element + * @property dropzone + * @type {HTMLElement} + * @readonly + */ + get dropzone() { + return this.data.dropzone; + } +} + +exports.DroppableStartEvent = DroppableStartEvent; /** + * Droppable dropped event + * @class DroppableDroppedEvent + * @module DroppableDroppedEvent + * @extends DroppableEvent + */ + +DroppableStartEvent.type = 'droppable:start'; +DroppableStartEvent.cancelable = true; +class DroppableDroppedEvent extends DroppableEvent { + + /** + * The dropzone element you dropped the draggable element into + * @property dropzone + * @type {HTMLElement} + * @readonly + */ + get dropzone() { + return this.data.dropzone; + } +} + +exports.DroppableDroppedEvent = DroppableDroppedEvent; /** + * Droppable returned event + * @class DroppableReturnedEvent + * @module DroppableReturnedEvent + * @extends DroppableEvent + */ + +DroppableDroppedEvent.type = 'droppable:dropped'; +DroppableDroppedEvent.cancelable = true; +class DroppableReturnedEvent extends DroppableEvent { + + /** + * The dropzone element you dragged away from + * @property dropzone + * @type {HTMLElement} + * @readonly + */ + get dropzone() { + return this.data.dropzone; + } +} + +exports.DroppableReturnedEvent = DroppableReturnedEvent; /** + * Droppable stop event + * @class DroppableStopEvent + * @module DroppableStopEvent + * @extends DroppableEvent + */ + +DroppableReturnedEvent.type = 'droppable:returned'; +DroppableReturnedEvent.cancelable = true; +class DroppableStopEvent extends DroppableEvent { + + /** + * The final dropzone element of the draggable element + * @property dropzone + * @type {HTMLElement} + * @readonly + */ + get dropzone() { + return this.data.dropzone; + } +} +exports.DroppableStopEvent = DroppableStopEvent; +DroppableStopEvent.type = 'droppable:stop'; +DroppableStopEvent.cancelable = true; + +/***/ }), +/* 36 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _DroppableEvent = __webpack_require__(11); + +Object.keys(_DroppableEvent).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _DroppableEvent[key]; + } + }); +}); + +var _Droppable = __webpack_require__(34); + +var _Droppable2 = _interopRequireDefault(_Droppable); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _Droppable2.default; + +/***/ }), +/* 37 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +/** + * The Emitter is a simple emitter class that provides you with `on()`, `off()` and `trigger()` methods + * @class Emitter + * @module Emitter + */ +class Emitter { + constructor() { + this.callbacks = {}; + } + + /** + * Registers callbacks by event name + * @param {String} type + * @param {...Function} callbacks + */ + on(type, ...callbacks) { + if (!this.callbacks[type]) { + this.callbacks[type] = []; + } + + this.callbacks[type].push(...callbacks); + + return this; + } + + /** + * Unregisters callbacks by event name + * @param {String} type + * @param {Function} callback + */ + off(type, callback) { + if (!this.callbacks[type]) { + return null; + } + + const copy = this.callbacks[type].slice(0); + + for (let i = 0; i < copy.length; i++) { + if (callback === copy[i]) { + this.callbacks[type].splice(i, 1); + } + } + + return this; + } + + /** + * Triggers event callbacks by event object + * @param {AbstractEvent} event + */ + trigger(event) { + if (!this.callbacks[event.type]) { + return null; + } + + const callbacks = [...this.callbacks[event.type]]; + const caughtErrors = []; + + for (let i = callbacks.length - 1; i >= 0; i--) { + const callback = callbacks[i]; + + try { + callback(event); + } catch (error) { + caughtErrors.push(error); + } + } + + if (caughtErrors.length) { + /* eslint-disable no-console */ + console.error(`Draggable caught errors while triggering '${event.type}'`, caughtErrors); + /* eslint-disable no-console */ + } + + return this; + } +} +exports.default = Emitter; + +/***/ }), +/* 38 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Emitter = __webpack_require__(37); + +var _Emitter2 = _interopRequireDefault(_Emitter); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _Emitter2.default; + +/***/ }), +/* 39 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.defaultOptions = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _utils = __webpack_require__(2); + +var _Plugins = __webpack_require__(12); + +var _Emitter = __webpack_require__(38); + +var _Emitter2 = _interopRequireDefault(_Emitter); + +var _Sensors = __webpack_require__(6); + +var _DraggableEvent = __webpack_require__(13); + +var _DragEvent = __webpack_require__(14); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const onDragStart = Symbol('onDragStart'); +const onDragMove = Symbol('onDragMove'); +const onDragStop = Symbol('onDragStop'); +const onDragPressure = Symbol('onDragPressure'); + +/** + * @const {Object} defaultAnnouncements + * @const {Function} defaultAnnouncements['drag:start'] + * @const {Function} defaultAnnouncements['drag:stop'] + */ +const defaultAnnouncements = { + 'drag:start': event => `Picked up ${event.source.textContent.trim() || event.source.id || 'draggable element'}`, + 'drag:stop': event => `Released ${event.source.textContent.trim() || event.source.id || 'draggable element'}` +}; + +const defaultClasses = { + 'container:dragging': 'draggable-container--is-dragging', + 'source:dragging': 'draggable-source--is-dragging', + 'source:placed': 'draggable-source--placed', + 'container:placed': 'draggable-container--placed', + 'body:dragging': 'draggable--is-dragging', + 'draggable:over': 'draggable--over', + 'container:over': 'draggable-container--over', + 'source:original': 'draggable--original', + mirror: 'draggable-mirror' +}; + +const defaultOptions = exports.defaultOptions = { + draggable: '.draggable-source', + handle: null, + delay: 100, + distance: 0, + placedTimeout: 800, + plugins: [], + sensors: [], + exclude: { + plugins: [], + sensors: [] + } +}; + +/** + * This is the core draggable library that does the heavy lifting + * @class Draggable + * @module Draggable + */ +class Draggable { + + /** + * Draggable constructor. + * @constructs Draggable + * @param {HTMLElement[]|NodeList|HTMLElement} containers - Draggable containers + * @param {Object} options - Options for draggable + */ + + /** + * Default plugins draggable uses + * @static + * @property {Object} Plugins + * @property {Announcement} Plugins.Announcement + * @property {Focusable} Plugins.Focusable + * @property {Mirror} Plugins.Mirror + * @property {Scrollable} Plugins.Scrollable + * @type {Object} + */ + constructor(containers = [document.body], options = {}) { + /** + * Draggable containers + * @property containers + * @type {HTMLElement[]} + */ + if (containers instanceof NodeList || containers instanceof Array) { + this.containers = [...containers]; + } else if (containers instanceof HTMLElement) { + this.containers = [containers]; + } else { + throw new Error('Draggable containers are expected to be of type `NodeList`, `HTMLElement[]` or `HTMLElement`'); + } + + this.options = _extends({}, defaultOptions, options, { + classes: _extends({}, defaultClasses, options.classes || {}), + announcements: _extends({}, defaultAnnouncements, options.announcements || {}), + exclude: { + plugins: options.exclude && options.exclude.plugins || [], + sensors: options.exclude && options.exclude.sensors || [] + } + }); + + /** + * Draggables event emitter + * @property emitter + * @type {Emitter} + */ + this.emitter = new _Emitter2.default(); + + /** + * Current drag state + * @property dragging + * @type {Boolean} + */ + this.dragging = false; + + /** + * Active plugins + * @property plugins + * @type {Plugin[]} + */ + this.plugins = []; + + /** + * Active sensors + * @property sensors + * @type {Sensor[]} + */ + this.sensors = []; + + this[onDragStart] = this[onDragStart].bind(this); + this[onDragMove] = this[onDragMove].bind(this); + this[onDragStop] = this[onDragStop].bind(this); + this[onDragPressure] = this[onDragPressure].bind(this); + + document.addEventListener('drag:start', this[onDragStart], true); + document.addEventListener('drag:move', this[onDragMove], true); + document.addEventListener('drag:stop', this[onDragStop], true); + document.addEventListener('drag:pressure', this[onDragPressure], true); + + const defaultPlugins = Object.values(Draggable.Plugins).filter(Plugin => !this.options.exclude.plugins.includes(Plugin)); + const defaultSensors = Object.values(Draggable.Sensors).filter(sensor => !this.options.exclude.sensors.includes(sensor)); + + this.addPlugin(...[...defaultPlugins, ...this.options.plugins]); + this.addSensor(...[...defaultSensors, ...this.options.sensors]); + + const draggableInitializedEvent = new _DraggableEvent.DraggableInitializedEvent({ + draggable: this + }); + + this.on('mirror:created', ({ mirror }) => this.mirror = mirror); + this.on('mirror:destroy', () => this.mirror = null); + + this.trigger(draggableInitializedEvent); + } + + /** + * Destroys Draggable instance. This removes all internal event listeners and + * deactivates sensors and plugins + */ + + + /** + * Default sensors draggable uses + * @static + * @property {Object} Sensors + * @property {MouseSensor} Sensors.MouseSensor + * @property {TouchSensor} Sensors.TouchSensor + * @type {Object} + */ + destroy() { + document.removeEventListener('drag:start', this[onDragStart], true); + document.removeEventListener('drag:move', this[onDragMove], true); + document.removeEventListener('drag:stop', this[onDragStop], true); + document.removeEventListener('drag:pressure', this[onDragPressure], true); + + const draggableDestroyEvent = new _DraggableEvent.DraggableDestroyEvent({ + draggable: this + }); + + this.trigger(draggableDestroyEvent); + + this.removePlugin(...this.plugins.map(plugin => plugin.constructor)); + this.removeSensor(...this.sensors.map(sensor => sensor.constructor)); + } + + /** + * Adds plugin to this draggable instance. This will end up calling the attach method of the plugin + * @param {...typeof Plugin} plugins - Plugins that you want attached to draggable + * @return {Draggable} + * @example draggable.addPlugin(CustomA11yPlugin, CustomMirrorPlugin) + */ + addPlugin(...plugins) { + const activePlugins = plugins.map(Plugin => new Plugin(this)); + + activePlugins.forEach(plugin => plugin.attach()); + this.plugins = [...this.plugins, ...activePlugins]; + + return this; + } + + /** + * Removes plugins that are already attached to this draggable instance. This will end up calling + * the detach method of the plugin + * @param {...typeof Plugin} plugins - Plugins that you want detached from draggable + * @return {Draggable} + * @example draggable.removePlugin(MirrorPlugin, CustomMirrorPlugin) + */ + removePlugin(...plugins) { + const removedPlugins = this.plugins.filter(plugin => plugins.includes(plugin.constructor)); + + removedPlugins.forEach(plugin => plugin.detach()); + this.plugins = this.plugins.filter(plugin => !plugins.includes(plugin.constructor)); + + return this; + } + + /** + * Adds sensors to this draggable instance. This will end up calling the attach method of the sensor + * @param {...typeof Sensor} sensors - Sensors that you want attached to draggable + * @return {Draggable} + * @example draggable.addSensor(ForceTouchSensor, CustomSensor) + */ + addSensor(...sensors) { + const activeSensors = sensors.map(Sensor => new Sensor(this.containers, this.options)); + + activeSensors.forEach(sensor => sensor.attach()); + this.sensors = [...this.sensors, ...activeSensors]; + + return this; + } + + /** + * Removes sensors that are already attached to this draggable instance. This will end up calling + * the detach method of the sensor + * @param {...typeof Sensor} sensors - Sensors that you want attached to draggable + * @return {Draggable} + * @example draggable.removeSensor(TouchSensor, DragSensor) + */ + removeSensor(...sensors) { + const removedSensors = this.sensors.filter(sensor => sensors.includes(sensor.constructor)); + + removedSensors.forEach(sensor => sensor.detach()); + this.sensors = this.sensors.filter(sensor => !sensors.includes(sensor.constructor)); + + return this; + } + + /** + * Adds container to this draggable instance + * @param {...HTMLElement} containers - Containers you want to add to draggable + * @return {Draggable} + * @example draggable.addContainer(document.body) + */ + addContainer(...containers) { + this.containers = [...this.containers, ...containers]; + this.sensors.forEach(sensor => sensor.addContainer(...containers)); + return this; + } + + /** + * Removes container from this draggable instance + * @param {...HTMLElement} containers - Containers you want to remove from draggable + * @return {Draggable} + * @example draggable.removeContainer(document.body) + */ + removeContainer(...containers) { + this.containers = this.containers.filter(container => !containers.includes(container)); + this.sensors.forEach(sensor => sensor.removeContainer(...containers)); + return this; + } + + /** + * Adds listener for draggable events + * @param {String} type - Event name + * @param {...Function} callbacks - Event callbacks + * @return {Draggable} + * @example draggable.on('drag:start', (dragEvent) => dragEvent.cancel()); + */ + on(type, ...callbacks) { + this.emitter.on(type, ...callbacks); + return this; + } + + /** + * Removes listener from draggable + * @param {String} type - Event name + * @param {Function} callback - Event callback + * @return {Draggable} + * @example draggable.off('drag:start', handlerFunction); + */ + off(type, callback) { + this.emitter.off(type, callback); + return this; + } + + /** + * Triggers draggable event + * @param {AbstractEvent} event - Event instance + * @return {Draggable} + * @example draggable.trigger(event); + */ + trigger(event) { + this.emitter.trigger(event); + return this; + } + + /** + * Returns class name for class identifier + * @param {String} name - Name of class identifier + * @return {String|null} + */ + getClassNameFor(name) { + return this.options.classes[name]; + } + + /** + * Returns true if this draggable instance is currently dragging + * @return {Boolean} + */ + isDragging() { + return Boolean(this.dragging); + } + + /** + * Returns all draggable elements + * @return {HTMLElement[]} + */ + getDraggableElements() { + return this.containers.reduce((current, container) => { + return [...current, ...this.getDraggableElementsForContainer(container)]; + }, []); + } + + /** + * Returns draggable elements for a given container, excluding the mirror and + * original source element if present + * @param {HTMLElement} container + * @return {HTMLElement[]} + */ + getDraggableElementsForContainer(container) { + const allDraggableElements = container.querySelectorAll(this.options.draggable); + + return [...allDraggableElements].filter(childElement => { + return childElement !== this.originalSource && childElement !== this.mirror; + }); + } + + /** + * Drag start handler + * @private + * @param {Event} event - DOM Drag event + */ + [onDragStart](event) { + const sensorEvent = getSensorEvent(event); + const { target, container } = sensorEvent; + + if (!this.containers.includes(container)) { + return; + } + + if (this.options.handle && target && !(0, _utils.closest)(target, this.options.handle)) { + sensorEvent.cancel(); + return; + } + + // Find draggable source element + this.originalSource = (0, _utils.closest)(target, this.options.draggable); + this.sourceContainer = container; + + if (!this.originalSource) { + sensorEvent.cancel(); + return; + } + + if (this.lastPlacedSource && this.lastPlacedContainer) { + clearTimeout(this.placedTimeoutID); + this.lastPlacedSource.classList.remove(this.getClassNameFor('source:placed')); + this.lastPlacedContainer.classList.remove(this.getClassNameFor('container:placed')); + } + + this.source = this.originalSource.cloneNode(true); + this.originalSource.parentNode.insertBefore(this.source, this.originalSource); + this.originalSource.style.display = 'none'; + + const dragEvent = new _DragEvent.DragStartEvent({ + source: this.source, + originalSource: this.originalSource, + sourceContainer: container, + sensorEvent + }); + + this.trigger(dragEvent); + + this.dragging = !dragEvent.canceled(); + + if (dragEvent.canceled()) { + this.source.parentNode.removeChild(this.source); + this.originalSource.style.display = null; + return; + } + + this.originalSource.classList.add(this.getClassNameFor('source:original')); + this.source.classList.add(this.getClassNameFor('source:dragging')); + this.sourceContainer.classList.add(this.getClassNameFor('container:dragging')); + document.body.classList.add(this.getClassNameFor('body:dragging')); + applyUserSelect(document.body, 'none'); + + requestAnimationFrame(() => { + const oldSensorEvent = getSensorEvent(event); + const newSensorEvent = oldSensorEvent.clone({ target: this.source }); + + this[onDragMove](_extends({}, event, { + detail: newSensorEvent + })); + }); + } + + /** + * Drag move handler + * @private + * @param {Event} event - DOM Drag event + */ + [onDragMove](event) { + if (!this.dragging) { + return; + } + + const sensorEvent = getSensorEvent(event); + const { container } = sensorEvent; + let target = sensorEvent.target; + + const dragMoveEvent = new _DragEvent.DragMoveEvent({ + source: this.source, + originalSource: this.originalSource, + sourceContainer: container, + sensorEvent + }); + + this.trigger(dragMoveEvent); + + if (dragMoveEvent.canceled()) { + sensorEvent.cancel(); + } + + target = (0, _utils.closest)(target, this.options.draggable); + const withinCorrectContainer = (0, _utils.closest)(sensorEvent.target, this.containers); + const overContainer = sensorEvent.overContainer || withinCorrectContainer; + const isLeavingContainer = this.currentOverContainer && overContainer !== this.currentOverContainer; + const isLeavingDraggable = this.currentOver && target !== this.currentOver; + const isOverContainer = overContainer && this.currentOverContainer !== overContainer; + const isOverDraggable = withinCorrectContainer && target && this.currentOver !== target; + + if (isLeavingDraggable) { + const dragOutEvent = new _DragEvent.DragOutEvent({ + source: this.source, + originalSource: this.originalSource, + sourceContainer: container, + sensorEvent, + over: this.currentOver + }); + + this.currentOver.classList.remove(this.getClassNameFor('draggable:over')); + this.currentOver = null; + + this.trigger(dragOutEvent); + } + + if (isLeavingContainer) { + const dragOutContainerEvent = new _DragEvent.DragOutContainerEvent({ + source: this.source, + originalSource: this.originalSource, + sourceContainer: container, + sensorEvent, + overContainer: this.currentOverContainer + }); + + this.currentOverContainer.classList.remove(this.getClassNameFor('container:over')); + this.currentOverContainer = null; + + this.trigger(dragOutContainerEvent); + } + + if (isOverContainer) { + overContainer.classList.add(this.getClassNameFor('container:over')); + + const dragOverContainerEvent = new _DragEvent.DragOverContainerEvent({ + source: this.source, + originalSource: this.originalSource, + sourceContainer: container, + sensorEvent, + overContainer + }); + + this.currentOverContainer = overContainer; + + this.trigger(dragOverContainerEvent); + } + + if (isOverDraggable) { + target.classList.add(this.getClassNameFor('draggable:over')); + + const dragOverEvent = new _DragEvent.DragOverEvent({ + source: this.source, + originalSource: this.originalSource, + sourceContainer: container, + sensorEvent, + overContainer, + over: target + }); + + this.currentOver = target; + + this.trigger(dragOverEvent); + } + } + + /** + * Drag stop handler + * @private + * @param {Event} event - DOM Drag event + */ + [onDragStop](event) { + if (!this.dragging) { + return; + } + + this.dragging = false; + + const dragStopEvent = new _DragEvent.DragStopEvent({ + source: this.source, + originalSource: this.originalSource, + sensorEvent: event.sensorEvent, + sourceContainer: this.sourceContainer + }); + + this.trigger(dragStopEvent); + + this.source.parentNode.insertBefore(this.originalSource, this.source); + this.source.parentNode.removeChild(this.source); + this.originalSource.style.display = ''; + + this.source.classList.remove(this.getClassNameFor('source:dragging')); + this.originalSource.classList.remove(this.getClassNameFor('source:original')); + this.originalSource.classList.add(this.getClassNameFor('source:placed')); + this.sourceContainer.classList.add(this.getClassNameFor('container:placed')); + this.sourceContainer.classList.remove(this.getClassNameFor('container:dragging')); + document.body.classList.remove(this.getClassNameFor('body:dragging')); + applyUserSelect(document.body, ''); + + if (this.currentOver) { + this.currentOver.classList.remove(this.getClassNameFor('draggable:over')); + } + + if (this.currentOverContainer) { + this.currentOverContainer.classList.remove(this.getClassNameFor('container:over')); + } + + this.lastPlacedSource = this.originalSource; + this.lastPlacedContainer = this.sourceContainer; + + this.placedTimeoutID = setTimeout(() => { + if (this.lastPlacedSource) { + this.lastPlacedSource.classList.remove(this.getClassNameFor('source:placed')); + } + + if (this.lastPlacedContainer) { + this.lastPlacedContainer.classList.remove(this.getClassNameFor('container:placed')); + } + + this.lastPlacedSource = null; + this.lastPlacedContainer = null; + }, this.options.placedTimeout); + + this.source = null; + this.originalSource = null; + this.currentOverContainer = null; + this.currentOver = null; + this.sourceContainer = null; + } + + /** + * Drag pressure handler + * @private + * @param {Event} event - DOM Drag event + */ + [onDragPressure](event) { + if (!this.dragging) { + return; + } + + const sensorEvent = getSensorEvent(event); + const source = this.source || (0, _utils.closest)(sensorEvent.originalEvent.target, this.options.draggable); + + const dragPressureEvent = new _DragEvent.DragPressureEvent({ + sensorEvent, + source, + pressure: sensorEvent.pressure + }); + + this.trigger(dragPressureEvent); + } +} + +exports.default = Draggable; +Draggable.Plugins = { Announcement: _Plugins.Announcement, Focusable: _Plugins.Focusable, Mirror: _Plugins.Mirror, Scrollable: _Plugins.Scrollable }; +Draggable.Sensors = { MouseSensor: _Sensors.MouseSensor, TouchSensor: _Sensors.TouchSensor }; +function getSensorEvent(event) { + return event.detail; +} + +function applyUserSelect(element, value) { + element.style.webkitUserSelect = value; + element.style.mozUserSelect = value; + element.style.msUserSelect = value; + element.style.oUserSelect = value; + element.style.userSelect = value; +} + +/***/ }), +/* 40 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Sensor = __webpack_require__(4); + +var _Sensor2 = _interopRequireDefault(_Sensor); + +var _SensorEvent = __webpack_require__(3); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const onMouseForceWillBegin = Symbol('onMouseForceWillBegin'); +const onMouseForceDown = Symbol('onMouseForceDown'); +const onMouseDown = Symbol('onMouseDown'); +const onMouseForceChange = Symbol('onMouseForceChange'); +const onMouseMove = Symbol('onMouseMove'); +const onMouseUp = Symbol('onMouseUp'); +const onMouseForceGlobalChange = Symbol('onMouseForceGlobalChange'); + +/** + * This sensor picks up native force touch events and dictates drag operations + * @class ForceTouchSensor + * @module ForceTouchSensor + * @extends Sensor + */ +class ForceTouchSensor extends _Sensor2.default { + /** + * ForceTouchSensor constructor. + * @constructs ForceTouchSensor + * @param {HTMLElement[]|NodeList|HTMLElement} containers - Containers + * @param {Object} options - Options + */ + constructor(containers = [], options = {}) { + super(containers, options); + + /** + * Draggable element needs to be remembered to unset the draggable attribute after drag operation has completed + * @property mightDrag + * @type {Boolean} + */ + this.mightDrag = false; + + this[onMouseForceWillBegin] = this[onMouseForceWillBegin].bind(this); + this[onMouseForceDown] = this[onMouseForceDown].bind(this); + this[onMouseDown] = this[onMouseDown].bind(this); + this[onMouseForceChange] = this[onMouseForceChange].bind(this); + this[onMouseMove] = this[onMouseMove].bind(this); + this[onMouseUp] = this[onMouseUp].bind(this); + } + + /** + * Attaches sensors event listeners to the DOM + */ + attach() { + for (const container of this.containers) { + container.addEventListener('webkitmouseforcewillbegin', this[onMouseForceWillBegin], false); + container.addEventListener('webkitmouseforcedown', this[onMouseForceDown], false); + container.addEventListener('mousedown', this[onMouseDown], true); + container.addEventListener('webkitmouseforcechanged', this[onMouseForceChange], false); + } + + document.addEventListener('mousemove', this[onMouseMove]); + document.addEventListener('mouseup', this[onMouseUp]); + } + + /** + * Detaches sensors event listeners to the DOM + */ + detach() { + for (const container of this.containers) { + container.removeEventListener('webkitmouseforcewillbegin', this[onMouseForceWillBegin], false); + container.removeEventListener('webkitmouseforcedown', this[onMouseForceDown], false); + container.removeEventListener('mousedown', this[onMouseDown], true); + container.removeEventListener('webkitmouseforcechanged', this[onMouseForceChange], false); + } + + document.removeEventListener('mousemove', this[onMouseMove]); + document.removeEventListener('mouseup', this[onMouseUp]); + } + + /** + * Mouse force will begin handler + * @private + * @param {Event} event - Mouse force will begin event + */ + [onMouseForceWillBegin](event) { + event.preventDefault(); + this.mightDrag = true; + } + + /** + * Mouse force down handler + * @private + * @param {Event} event - Mouse force down event + */ + [onMouseForceDown](event) { + if (this.dragging) { + return; + } + + const target = document.elementFromPoint(event.clientX, event.clientY); + const container = event.currentTarget; + + const dragStartEvent = new _SensorEvent.DragStartSensorEvent({ + clientX: event.clientX, + clientY: event.clientY, + target, + container, + originalEvent: event + }); + + this.trigger(container, dragStartEvent); + + this.currentContainer = container; + this.dragging = !dragStartEvent.canceled(); + this.mightDrag = false; + } + + /** + * Mouse up handler + * @private + * @param {Event} event - Mouse up event + */ + [onMouseUp](event) { + if (!this.dragging) { + return; + } + + const dragStopEvent = new _SensorEvent.DragStopSensorEvent({ + clientX: event.clientX, + clientY: event.clientY, + target: null, + container: this.currentContainer, + originalEvent: event + }); + + this.trigger(this.currentContainer, dragStopEvent); + + this.currentContainer = null; + this.dragging = false; + this.mightDrag = false; + } + + /** + * Mouse down handler + * @private + * @param {Event} event - Mouse down event + */ + [onMouseDown](event) { + if (!this.mightDrag) { + return; + } + + // Need workaround for real click + // Cancel potential drag events + event.stopPropagation(); + event.stopImmediatePropagation(); + event.preventDefault(); + } + + /** + * Mouse move handler + * @private + * @param {Event} event - Mouse force will begin event + */ + [onMouseMove](event) { + if (!this.dragging) { + return; + } + + const target = document.elementFromPoint(event.clientX, event.clientY); + + const dragMoveEvent = new _SensorEvent.DragMoveSensorEvent({ + clientX: event.clientX, + clientY: event.clientY, + target, + container: this.currentContainer, + originalEvent: event + }); + + this.trigger(this.currentContainer, dragMoveEvent); + } + + /** + * Mouse force change handler + * @private + * @param {Event} event - Mouse force change event + */ + [onMouseForceChange](event) { + if (this.dragging) { + return; + } + + const target = event.target; + const container = event.currentTarget; + + const dragPressureEvent = new _SensorEvent.DragPressureSensorEvent({ + pressure: event.webkitForce, + clientX: event.clientX, + clientY: event.clientY, + target, + container, + originalEvent: event + }); + + this.trigger(container, dragPressureEvent); + } + + /** + * Mouse force global change handler + * @private + * @param {Event} event - Mouse force global change event + */ + [onMouseForceGlobalChange](event) { + if (!this.dragging) { + return; + } + + const target = event.target; + + const dragPressureEvent = new _SensorEvent.DragPressureSensorEvent({ + pressure: event.webkitForce, + clientX: event.clientX, + clientY: event.clientY, + target, + container: this.currentContainer, + originalEvent: event + }); + + this.trigger(this.currentContainer, dragPressureEvent); + } +} +exports.default = ForceTouchSensor; + +/***/ }), +/* 41 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _ForceTouchSensor = __webpack_require__(40); + +var _ForceTouchSensor2 = _interopRequireDefault(_ForceTouchSensor); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _ForceTouchSensor2.default; + +/***/ }), +/* 42 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _utils = __webpack_require__(2); + +var _Sensor = __webpack_require__(4); + +var _Sensor2 = _interopRequireDefault(_Sensor); + +var _SensorEvent = __webpack_require__(3); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const onMouseDown = Symbol('onMouseDown'); +const onMouseUp = Symbol('onMouseUp'); +const onDragStart = Symbol('onDragStart'); +const onDragOver = Symbol('onDragOver'); +const onDragEnd = Symbol('onDragEnd'); +const onDrop = Symbol('onDrop'); +const reset = Symbol('reset'); + +/** + * This sensor picks up native browser drag events and dictates drag operations + * @class DragSensor + * @module DragSensor + * @extends Sensor + */ +class DragSensor extends _Sensor2.default { + /** + * DragSensor constructor. + * @constructs DragSensor + * @param {HTMLElement[]|NodeList|HTMLElement} containers - Containers + * @param {Object} options - Options + */ + constructor(containers = [], options = {}) { + super(containers, options); + + /** + * Mouse down timer which will end up setting the draggable attribute, unless canceled + * @property mouseDownTimeout + * @type {Number} + */ + this.mouseDownTimeout = null; + + /** + * Draggable element needs to be remembered to unset the draggable attribute after drag operation has completed + * @property draggableElement + * @type {HTMLElement} + */ + this.draggableElement = null; + + /** + * Native draggable element could be links or images, their draggable state will be disabled during drag operation + * @property nativeDraggableElement + * @type {HTMLElement} + */ + this.nativeDraggableElement = null; + + this[onMouseDown] = this[onMouseDown].bind(this); + this[onMouseUp] = this[onMouseUp].bind(this); + this[onDragStart] = this[onDragStart].bind(this); + this[onDragOver] = this[onDragOver].bind(this); + this[onDragEnd] = this[onDragEnd].bind(this); + this[onDrop] = this[onDrop].bind(this); + } + + /** + * Attaches sensors event listeners to the DOM + */ + attach() { + document.addEventListener('mousedown', this[onMouseDown], true); + } + + /** + * Detaches sensors event listeners to the DOM + */ + detach() { + document.removeEventListener('mousedown', this[onMouseDown], true); + } + + /** + * Drag start handler + * @private + * @param {Event} event - Drag start event + */ + [onDragStart](event) { + // Need for firefox. "text" key is needed for IE + event.dataTransfer.setData('text', ''); + event.dataTransfer.effectAllowed = this.options.type; + + const target = document.elementFromPoint(event.clientX, event.clientY); + this.currentContainer = (0, _utils.closest)(event.target, this.containers); + + if (!this.currentContainer) { + return; + } + + const dragStartEvent = new _SensorEvent.DragStartSensorEvent({ + clientX: event.clientX, + clientY: event.clientY, + target, + container: this.currentContainer, + originalEvent: event + }); + + // Workaround + setTimeout(() => { + this.trigger(this.currentContainer, dragStartEvent); + + if (dragStartEvent.canceled()) { + this.dragging = false; + } else { + this.dragging = true; + } + }, 0); + } + + /** + * Drag over handler + * @private + * @param {Event} event - Drag over event + */ + [onDragOver](event) { + if (!this.dragging) { + return; + } + + const target = document.elementFromPoint(event.clientX, event.clientY); + const container = this.currentContainer; + + const dragMoveEvent = new _SensorEvent.DragMoveSensorEvent({ + clientX: event.clientX, + clientY: event.clientY, + target, + container, + originalEvent: event + }); + + this.trigger(container, dragMoveEvent); + + if (!dragMoveEvent.canceled()) { + event.preventDefault(); + event.dataTransfer.dropEffect = this.options.type; + } + } + + /** + * Drag end handler + * @private + * @param {Event} event - Drag end event + */ + [onDragEnd](event) { + if (!this.dragging) { + return; + } + + document.removeEventListener('mouseup', this[onMouseUp], true); + + const target = document.elementFromPoint(event.clientX, event.clientY); + const container = this.currentContainer; + + const dragStopEvent = new _SensorEvent.DragStopSensorEvent({ + clientX: event.clientX, + clientY: event.clientY, + target, + container, + originalEvent: event + }); + + this.trigger(container, dragStopEvent); + + this.dragging = false; + this.startEvent = null; + + this[reset](); + } + + /** + * Drop handler + * @private + * @param {Event} event - Drop event + */ + [onDrop](event) { + // eslint-disable-line class-methods-use-this + event.preventDefault(); + } + + /** + * Mouse down handler + * @private + * @param {Event} event - Mouse down event + */ + [onMouseDown](event) { + // Firefox bug for inputs within draggables https://bugzilla.mozilla.org/show_bug.cgi?id=739071 + if (event.target && (event.target.form || event.target.contenteditable)) { + return; + } + + const nativeDraggableElement = (0, _utils.closest)(event.target, element => element.draggable); + + if (nativeDraggableElement) { + nativeDraggableElement.draggable = false; + this.nativeDraggableElement = nativeDraggableElement; + } + + document.addEventListener('mouseup', this[onMouseUp], true); + document.addEventListener('dragstart', this[onDragStart], false); + document.addEventListener('dragover', this[onDragOver], false); + document.addEventListener('dragend', this[onDragEnd], false); + document.addEventListener('drop', this[onDrop], false); + + const target = (0, _utils.closest)(event.target, this.options.draggable); + + if (!target) { + return; + } + + this.startEvent = event; + + this.mouseDownTimeout = setTimeout(() => { + target.draggable = true; + this.draggableElement = target; + }, this.options.delay); + } + + /** + * Mouse up handler + * @private + * @param {Event} event - Mouse up event + */ + [onMouseUp]() { + this[reset](); + } + + /** + * Mouse up handler + * @private + * @param {Event} event - Mouse up event + */ + [reset]() { + clearTimeout(this.mouseDownTimeout); + + document.removeEventListener('mouseup', this[onMouseUp], true); + document.removeEventListener('dragstart', this[onDragStart], false); + document.removeEventListener('dragover', this[onDragOver], false); + document.removeEventListener('dragend', this[onDragEnd], false); + document.removeEventListener('drop', this[onDrop], false); + + if (this.nativeDraggableElement) { + this.nativeDraggableElement.draggable = true; + this.nativeDraggableElement = null; + } + + if (this.draggableElement) { + this.draggableElement.draggable = false; + this.draggableElement = null; + } + } +} +exports.default = DragSensor; + +/***/ }), +/* 43 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _DragSensor = __webpack_require__(42); + +var _DragSensor2 = _interopRequireDefault(_DragSensor); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _DragSensor2.default; + +/***/ }), +/* 44 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _utils = __webpack_require__(2); + +var _Sensor = __webpack_require__(4); + +var _Sensor2 = _interopRequireDefault(_Sensor); + +var _SensorEvent = __webpack_require__(3); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const onTouchStart = Symbol('onTouchStart'); +const onTouchEnd = Symbol('onTouchEnd'); +const onTouchMove = Symbol('onTouchMove'); +const startDrag = Symbol('startDrag'); +const onDistanceChange = Symbol('onDistanceChange'); + +/** + * Prevents scrolling when set to true + * @var {Boolean} preventScrolling + */ +let preventScrolling = false; + +// WebKit requires cancelable `touchmove` events to be added as early as possible +window.addEventListener('touchmove', event => { + if (!preventScrolling) { + return; + } + + // Prevent scrolling + event.preventDefault(); +}, { passive: false }); + +/** + * This sensor picks up native browser touch events and dictates drag operations + * @class TouchSensor + * @module TouchSensor + * @extends Sensor + */ +class TouchSensor extends _Sensor2.default { + /** + * TouchSensor constructor. + * @constructs TouchSensor + * @param {HTMLElement[]|NodeList|HTMLElement} containers - Containers + * @param {Object} options - Options + */ + constructor(containers = [], options = {}) { + super(containers, options); + + /** + * Closest scrollable container so accidental scroll can cancel long touch + * @property currentScrollableParent + * @type {HTMLElement} + */ + this.currentScrollableParent = null; + + /** + * TimeoutID for managing delay + * @property tapTimeout + * @type {Number} + */ + this.tapTimeout = null; + + /** + * touchMoved indicates if touch has moved during tapTimeout + * @property touchMoved + * @type {Boolean} + */ + this.touchMoved = false; + + this[onTouchStart] = this[onTouchStart].bind(this); + this[onTouchEnd] = this[onTouchEnd].bind(this); + this[onTouchMove] = this[onTouchMove].bind(this); + this[startDrag] = this[startDrag].bind(this); + this[onDistanceChange] = this[onDistanceChange].bind(this); + } + + /** + * Attaches sensors event listeners to the DOM + */ + attach() { + document.addEventListener('touchstart', this[onTouchStart]); + } + + /** + * Detaches sensors event listeners to the DOM + */ + detach() { + document.removeEventListener('touchstart', this[onTouchStart]); + } + + /** + * Touch start handler + * @private + * @param {Event} event - Touch start event + */ + [onTouchStart](event) { + const container = (0, _utils.closest)(event.target, this.containers); + + if (!container) { + return; + } + const { distance = 0, delay = 0 } = this.options; + const { pageX, pageY } = (0, _utils.touchCoords)(event); + + Object.assign(this, { pageX, pageY }); + this.onTouchStartAt = Date.now(); + this.startEvent = event; + this.currentContainer = container; + + document.addEventListener('touchend', this[onTouchEnd]); + document.addEventListener('touchcancel', this[onTouchEnd]); + document.addEventListener('touchmove', this[onDistanceChange]); + container.addEventListener('contextmenu', onContextMenu); + + if (distance) { + preventScrolling = true; + } + + this.tapTimeout = window.setTimeout(() => { + this[onDistanceChange]({ touches: [{ pageX: this.pageX, pageY: this.pageY }] }); + }, delay); + } + + /** + * Start the drag + * @private + */ + [startDrag]() { + const startEvent = this.startEvent; + const container = this.currentContainer; + const touch = (0, _utils.touchCoords)(startEvent); + + const dragStartEvent = new _SensorEvent.DragStartSensorEvent({ + clientX: touch.pageX, + clientY: touch.pageY, + target: startEvent.target, + container, + originalEvent: startEvent + }); + + this.trigger(this.currentContainer, dragStartEvent); + + this.dragging = !dragStartEvent.canceled(); + + if (this.dragging) { + document.addEventListener('touchmove', this[onTouchMove]); + } + preventScrolling = this.dragging; + } + + /** + * Touch move handler prior to drag start. + * @private + * @param {Event} event - Touch move event + */ + [onDistanceChange](event) { + const { delay, distance } = this.options; + const { startEvent } = this; + const start = (0, _utils.touchCoords)(startEvent); + const current = (0, _utils.touchCoords)(event); + const timeElapsed = Date.now() - this.onTouchStartAt; + const distanceTravelled = (0, _utils.distance)(start.pageX, start.pageY, current.pageX, current.pageY); + + Object.assign(this, current); + if (timeElapsed >= delay && distanceTravelled >= distance) { + window.clearTimeout(this.tapTimeout); + document.removeEventListener('touchmove', this[onDistanceChange]); + this[startDrag](); + } + } + + /** + * Mouse move handler while dragging + * @private + * @param {Event} event - Touch move event + */ + [onTouchMove](event) { + if (!this.dragging) { + return; + } + const { pageX, pageY } = (0, _utils.touchCoords)(event); + const target = document.elementFromPoint(pageX - window.scrollX, pageY - window.scrollY); + + const dragMoveEvent = new _SensorEvent.DragMoveSensorEvent({ + clientX: pageX, + clientY: pageY, + target, + container: this.currentContainer, + originalEvent: event + }); + + this.trigger(this.currentContainer, dragMoveEvent); + } + + /** + * Touch end handler + * @private + * @param {Event} event - Touch end event + */ + [onTouchEnd](event) { + clearTimeout(this.tapTimeout); + preventScrolling = false; + + document.removeEventListener('touchend', this[onTouchEnd]); + document.removeEventListener('touchcancel', this[onTouchEnd]); + document.removeEventListener('touchmove', this[onDistanceChange]); + + if (this.currentContainer) { + this.currentContainer.removeEventListener('contextmenu', onContextMenu); + } + + if (!this.dragging) { + return; + } + + document.removeEventListener('touchmove', this[onTouchMove]); + + const { pageX, pageY } = (0, _utils.touchCoords)(event); + const target = document.elementFromPoint(pageX - window.scrollX, pageY - window.scrollY); + + event.preventDefault(); + + const dragStopEvent = new _SensorEvent.DragStopSensorEvent({ + clientX: pageX, + clientY: pageY, + target, + container: this.currentContainer, + originalEvent: event + }); + + this.trigger(this.currentContainer, dragStopEvent); + + this.currentContainer = null; + this.dragging = false; + this.startEvent = null; + } +} + +exports.default = TouchSensor; +function onContextMenu(event) { + event.preventDefault(); + event.stopPropagation(); +} + +/***/ }), +/* 45 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _TouchSensor = __webpack_require__(44); + +var _TouchSensor2 = _interopRequireDefault(_TouchSensor); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _TouchSensor2.default; + +/***/ }), +/* 46 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.DragPressureSensorEvent = exports.DragStopSensorEvent = exports.DragMoveSensorEvent = exports.DragStartSensorEvent = exports.SensorEvent = undefined; + +var _AbstractEvent = __webpack_require__(1); + +var _AbstractEvent2 = _interopRequireDefault(_AbstractEvent); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Base sensor event + * @class SensorEvent + * @module SensorEvent + * @extends AbstractEvent + */ +class SensorEvent extends _AbstractEvent2.default { + /** + * Original browser event that triggered a sensor + * @property originalEvent + * @type {Event} + * @readonly + */ + get originalEvent() { + return this.data.originalEvent; + } + + /** + * Normalized clientX for both touch and mouse events + * @property clientX + * @type {Number} + * @readonly + */ + get clientX() { + return this.data.clientX; + } + + /** + * Normalized clientY for both touch and mouse events + * @property clientY + * @type {Number} + * @readonly + */ + get clientY() { + return this.data.clientY; + } + + /** + * Normalized target for both touch and mouse events + * Returns the element that is behind cursor or touch pointer + * @property target + * @type {HTMLElement} + * @readonly + */ + get target() { + return this.data.target; + } + + /** + * Container that initiated the sensor + * @property container + * @type {HTMLElement} + * @readonly + */ + get container() { + return this.data.container; + } + + /** + * Trackpad pressure + * @property pressure + * @type {Number} + * @readonly + */ + get pressure() { + return this.data.pressure; + } +} + +exports.SensorEvent = SensorEvent; /** + * Drag start sensor event + * @class DragStartSensorEvent + * @module DragStartSensorEvent + * @extends SensorEvent + */ + +class DragStartSensorEvent extends SensorEvent {} + +exports.DragStartSensorEvent = DragStartSensorEvent; /** + * Drag move sensor event + * @class DragMoveSensorEvent + * @module DragMoveSensorEvent + * @extends SensorEvent + */ + +DragStartSensorEvent.type = 'drag:start'; +class DragMoveSensorEvent extends SensorEvent {} + +exports.DragMoveSensorEvent = DragMoveSensorEvent; /** + * Drag stop sensor event + * @class DragStopSensorEvent + * @module DragStopSensorEvent + * @extends SensorEvent + */ + +DragMoveSensorEvent.type = 'drag:move'; +class DragStopSensorEvent extends SensorEvent {} + +exports.DragStopSensorEvent = DragStopSensorEvent; /** + * Drag pressure sensor event + * @class DragPressureSensorEvent + * @module DragPressureSensorEvent + * @extends SensorEvent + */ + +DragStopSensorEvent.type = 'drag:stop'; +class DragPressureSensorEvent extends SensorEvent {} +exports.DragPressureSensorEvent = DragPressureSensorEvent; +DragPressureSensorEvent.type = 'drag:pressure'; + +/***/ }), +/* 47 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _utils = __webpack_require__(2); + +var _Sensor = __webpack_require__(4); + +var _Sensor2 = _interopRequireDefault(_Sensor); + +var _SensorEvent = __webpack_require__(3); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const onContextMenuWhileDragging = Symbol('onContextMenuWhileDragging'); +const onMouseDown = Symbol('onMouseDown'); +const onMouseMove = Symbol('onMouseMove'); +const onMouseUp = Symbol('onMouseUp'); +const startDrag = Symbol('startDrag'); +const onDistanceChange = Symbol('onDistanceChange'); + +/** + * This sensor picks up native browser mouse events and dictates drag operations + * @class MouseSensor + * @module MouseSensor + * @extends Sensor + */ +class MouseSensor extends _Sensor2.default { + /** + * MouseSensor constructor. + * @constructs MouseSensor + * @param {HTMLElement[]|NodeList|HTMLElement} containers - Containers + * @param {Object} options - Options + */ + constructor(containers = [], options = {}) { + super(containers, options); + + /** + * Mouse down timer which will end up triggering the drag start operation + * @property mouseDownTimeout + * @type {Number} + */ + this.mouseDownTimeout = null; + + this[onContextMenuWhileDragging] = this[onContextMenuWhileDragging].bind(this); + this[onMouseDown] = this[onMouseDown].bind(this); + this[onMouseMove] = this[onMouseMove].bind(this); + this[onMouseUp] = this[onMouseUp].bind(this); + this[startDrag] = this[startDrag].bind(this); + this[onDistanceChange] = this[onDistanceChange].bind(this); + } + + /** + * Attaches sensors event listeners to the DOM + */ + attach() { + document.addEventListener('mousedown', this[onMouseDown], true); + } + + /** + * Detaches sensors event listeners to the DOM + */ + detach() { + document.removeEventListener('mousedown', this[onMouseDown], true); + } + + /** + * Mouse down handler + * @private + * @param {Event} event - Mouse down event + */ + [onMouseDown](event) { + if (event.button !== 0 || event.ctrlKey || event.metaKey) { + return; + } + const container = (0, _utils.closest)(event.target, this.containers); + + if (!container) { + return; + } + + const { delay = 0 } = this.options; + const { pageX, pageY } = event; + + Object.assign(this, { pageX, pageY }); + this.onMouseDownAt = Date.now(); + this.startEvent = event; + + this.currentContainer = container; + document.addEventListener('mouseup', this[onMouseUp]); + document.addEventListener('dragstart', preventNativeDragStart); + document.addEventListener('mousemove', this[onDistanceChange]); + + this.mouseDownTimeout = window.setTimeout(() => { + this[onDistanceChange]({ pageX: this.pageX, pageY: this.pageY }); + }, delay); + } + + /** + * Start the drag + * @private + */ + [startDrag]() { + const startEvent = this.startEvent; + const container = this.currentContainer; + + const dragStartEvent = new _SensorEvent.DragStartSensorEvent({ + clientX: startEvent.clientX, + clientY: startEvent.clientY, + target: startEvent.target, + container, + originalEvent: startEvent + }); + + this.trigger(this.currentContainer, dragStartEvent); + + this.dragging = !dragStartEvent.canceled(); + + if (this.dragging) { + document.addEventListener('contextmenu', this[onContextMenuWhileDragging], true); + document.addEventListener('mousemove', this[onMouseMove]); + } + } + + /** + * Detect change in distance, starting drag when both + * delay and distance requirements are met + * @private + * @param {Event} event - Mouse move event + */ + [onDistanceChange](event) { + const { pageX, pageY } = event; + const { delay, distance } = this.options; + const { startEvent } = this; + + Object.assign(this, { pageX, pageY }); + + if (!this.currentContainer) { + return; + } + + const timeElapsed = Date.now() - this.onMouseDownAt; + const distanceTravelled = (0, _utils.distance)(startEvent.pageX, startEvent.pageY, pageX, pageY) || 0; + + if (timeElapsed >= delay && distanceTravelled >= distance) { + window.clearTimeout(this.mouseDownTimeout); + document.removeEventListener('mousemove', this[onDistanceChange]); + this[startDrag](); + } + } + + /** + * Mouse move handler + * @private + * @param {Event} event - Mouse move event + */ + [onMouseMove](event) { + if (!this.dragging) { + return; + } + + const target = document.elementFromPoint(event.clientX, event.clientY); + + const dragMoveEvent = new _SensorEvent.DragMoveSensorEvent({ + clientX: event.clientX, + clientY: event.clientY, + target, + container: this.currentContainer, + originalEvent: event + }); + + this.trigger(this.currentContainer, dragMoveEvent); + } + + /** + * Mouse up handler + * @private + * @param {Event} event - Mouse up event + */ + [onMouseUp](event) { + clearTimeout(this.mouseDownTimeout); + + if (event.button !== 0) { + return; + } + + document.removeEventListener('mouseup', this[onMouseUp]); + document.removeEventListener('dragstart', preventNativeDragStart); + document.removeEventListener('mousemove', this[onDistanceChange]); + + if (!this.dragging) { + return; + } + + const target = document.elementFromPoint(event.clientX, event.clientY); + + const dragStopEvent = new _SensorEvent.DragStopSensorEvent({ + clientX: event.clientX, + clientY: event.clientY, + target, + container: this.currentContainer, + originalEvent: event + }); + + this.trigger(this.currentContainer, dragStopEvent); + + document.removeEventListener('contextmenu', this[onContextMenuWhileDragging], true); + document.removeEventListener('mousemove', this[onMouseMove]); + + this.currentContainer = null; + this.dragging = false; + this.startEvent = null; + } + + /** + * Context menu handler + * @private + * @param {Event} event - Context menu event + */ + [onContextMenuWhileDragging](event) { + event.preventDefault(); + } +} + +exports.default = MouseSensor; +function preventNativeDragStart(event) { + event.preventDefault(); +} + +/***/ }), +/* 48 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _MouseSensor = __webpack_require__(47); + +var _MouseSensor2 = _interopRequireDefault(_MouseSensor); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _MouseSensor2.default; + +/***/ }), +/* 49 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +/** + * Base sensor class. Extend from this class to create a new or custom sensor + * @class Sensor + * @module Sensor + */ +class Sensor { + /** + * Sensor constructor. + * @constructs Sensor + * @param {HTMLElement[]|NodeList|HTMLElement} containers - Containers + * @param {Object} options - Options + */ + constructor(containers = [], options = {}) { + /** + * Current containers + * @property containers + * @type {HTMLElement[]} + */ + this.containers = [...containers]; + + /** + * Current options + * @property options + * @type {Object} + */ + this.options = _extends({}, options); + + /** + * Current drag state + * @property dragging + * @type {Boolean} + */ + this.dragging = false; + + /** + * Current container + * @property currentContainer + * @type {HTMLElement} + */ + this.currentContainer = null; + + /** + * The event of the initial sensor down + * @property startEvent + * @type {Event} + */ + this.startEvent = null; + } + + /** + * Attaches sensors event listeners to the DOM + * @return {Sensor} + */ + attach() { + return this; + } + + /** + * Detaches sensors event listeners to the DOM + * @return {Sensor} + */ + detach() { + return this; + } + + /** + * Adds container to this sensor instance + * @param {...HTMLElement} containers - Containers you want to add to this sensor + * @example draggable.addContainer(document.body) + */ + addContainer(...containers) { + this.containers = [...this.containers, ...containers]; + } + + /** + * Removes container from this sensor instance + * @param {...HTMLElement} containers - Containers you want to remove from this sensor + * @example draggable.removeContainer(document.body) + */ + removeContainer(...containers) { + this.containers = this.containers.filter(container => !containers.includes(container)); + } + + /** + * Triggers event on target element + * @param {HTMLElement} element - Element to trigger event on + * @param {SensorEvent} sensorEvent - Sensor event to trigger + */ + trigger(element, sensorEvent) { + const event = document.createEvent('Event'); + event.detail = sensorEvent; + event.initEvent(sensorEvent.type, true, true); + element.dispatchEvent(event); + this.lastEvent = sensorEvent; + + return sensorEvent; + } +} +exports.default = Sensor; + +/***/ }), +/* 50 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = touchCoords; +/** + * Returns the first touch event found in touches or changedTouches of a touch events. + * @param {TouchEvent} event a touch event + * @return {Touch} a touch object + */ +function touchCoords(event = {}) { + const { touches, changedTouches } = event; + return touches && touches[0] || changedTouches && changedTouches[0]; +} + +/***/ }), +/* 51 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _touchCoords = __webpack_require__(50); + +var _touchCoords2 = _interopRequireDefault(_touchCoords); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _touchCoords2.default; + +/***/ }), +/* 52 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = distance; +/** + * Returns the distance between two points + * @param {Number} x1 The X position of the first point + * @param {Number} y1 The Y position of the first point + * @param {Number} x2 The X position of the second point + * @param {Number} y2 The Y position of the second point + * @return {Number} + */ +function distance(x1, y1, x2, y2) { + return Math.sqrt((x2 - x1) ** 2 + (y2 - y1) ** 2); +} + +/***/ }), +/* 53 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _distance = __webpack_require__(52); + +var _distance2 = _interopRequireDefault(_distance); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _distance2.default; + +/***/ }), +/* 54 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = requestNextAnimationFrame; +function requestNextAnimationFrame(callback) { + return requestAnimationFrame(() => { + requestAnimationFrame(callback); + }); +} + +/***/ }), +/* 55 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _requestNextAnimationFrame = __webpack_require__(54); + +var _requestNextAnimationFrame2 = _interopRequireDefault(_requestNextAnimationFrame); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _requestNextAnimationFrame2.default; + +/***/ }), +/* 56 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = closest; +const matchFunction = Element.prototype.matches || Element.prototype.webkitMatchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector; + +/** + * Get the closest parent element of a given element that matches the given + * selector string or matching function + * + * @param {Element} element The child element to find a parent of + * @param {String|Function} selector The string or function to use to match + * the parent element + * @return {Element|null} + */ +function closest(element, value) { + if (!element) { + return null; + } + + const selector = value; + const callback = value; + const nodeList = value; + const singleElement = value; + + const isSelector = Boolean(typeof value === 'string'); + const isFunction = Boolean(typeof value === 'function'); + const isNodeList = Boolean(value instanceof NodeList || value instanceof Array); + const isElement = Boolean(value instanceof HTMLElement); + + function conditionFn(currentElement) { + if (!currentElement) { + return currentElement; + } else if (isSelector) { + return matchFunction.call(currentElement, selector); + } else if (isNodeList) { + return [...nodeList].includes(currentElement); + } else if (isElement) { + return singleElement === currentElement; + } else if (isFunction) { + return callback(currentElement); + } else { + return null; + } + } + + let current = element; + + do { + current = current.correspondingUseElement || current.correspondingElement || current; + + if (conditionFn(current)) { + return current; + } + + current = current.parentNode; + } while (current && current !== document.body && current !== document); + + return null; +} + +/***/ }), +/* 57 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _closest = __webpack_require__(56); + +var _closest2 = _interopRequireDefault(_closest); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _closest2.default; + +/***/ }), +/* 58 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.defaultOptions = exports.scroll = exports.onDragStop = exports.onDragMove = exports.onDragStart = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _AbstractPlugin = __webpack_require__(0); + +var _AbstractPlugin2 = _interopRequireDefault(_AbstractPlugin); + +var _utils = __webpack_require__(2); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const onDragStart = exports.onDragStart = Symbol('onDragStart'); +const onDragMove = exports.onDragMove = Symbol('onDragMove'); +const onDragStop = exports.onDragStop = Symbol('onDragStop'); +const scroll = exports.scroll = Symbol('scroll'); + +/** + * Scrollable default options + * @property {Object} defaultOptions + * @property {Number} defaultOptions.speed + * @property {Number} defaultOptions.sensitivity + * @property {HTMLElement[]} defaultOptions.scrollableElements + * @type {Object} + */ +const defaultOptions = exports.defaultOptions = { + speed: 6, + sensitivity: 50, + scrollableElements: [] +}; + +/** + * Scrollable plugin which scrolls the closest scrollable parent + * @class Scrollable + * @module Scrollable + * @extends AbstractPlugin + */ +class Scrollable extends _AbstractPlugin2.default { + /** + * Scrollable constructor. + * @constructs Scrollable + * @param {Draggable} draggable - Draggable instance + */ + constructor(draggable) { + super(draggable); + + /** + * Scrollable options + * @property {Object} options + * @property {Number} options.speed + * @property {Number} options.sensitivity + * @property {HTMLElement[]} options.scrollableElements + * @type {Object} + */ + this.options = _extends({}, defaultOptions, this.getOptions()); + + /** + * Keeps current mouse position + * @property {Object} currentMousePosition + * @property {Number} currentMousePosition.clientX + * @property {Number} currentMousePosition.clientY + * @type {Object|null} + */ + this.currentMousePosition = null; + + /** + * Scroll animation frame + * @property scrollAnimationFrame + * @type {Number|null} + */ + this.scrollAnimationFrame = null; + + /** + * Closest scrollable element + * @property scrollableElement + * @type {HTMLElement|null} + */ + this.scrollableElement = null; + + /** + * Animation frame looking for the closest scrollable element + * @property findScrollableElementFrame + * @type {Number|null} + */ + this.findScrollableElementFrame = null; + + this[onDragStart] = this[onDragStart].bind(this); + this[onDragMove] = this[onDragMove].bind(this); + this[onDragStop] = this[onDragStop].bind(this); + this[scroll] = this[scroll].bind(this); + } + + /** + * Attaches plugins event listeners + */ + attach() { + this.draggable.on('drag:start', this[onDragStart]).on('drag:move', this[onDragMove]).on('drag:stop', this[onDragStop]); + } + + /** + * Detaches plugins event listeners + */ + detach() { + this.draggable.off('drag:start', this[onDragStart]).off('drag:move', this[onDragMove]).off('drag:stop', this[onDragStop]); + } + + /** + * Returns options passed through draggable + * @return {Object} + */ + getOptions() { + return this.draggable.options.scrollable || {}; + } + + /** + * Returns closest scrollable elements by element + * @param {HTMLElement} target + * @return {HTMLElement} + */ + getScrollableElement(target) { + if (this.hasDefinedScrollableElements()) { + return (0, _utils.closest)(target, this.options.scrollableElements) || document.documentElement; + } else { + return closestScrollableElement(target); + } + } + + /** + * Returns true if at least one scrollable element have been defined via options + * @param {HTMLElement} target + * @return {Boolean} + */ + hasDefinedScrollableElements() { + return Boolean(this.options.scrollableElements.length !== 0); + } + + /** + * Drag start handler. Finds closest scrollable parent in separate frame + * @param {DragStartEvent} dragEvent + * @private + */ + [onDragStart](dragEvent) { + this.findScrollableElementFrame = requestAnimationFrame(() => { + this.scrollableElement = this.getScrollableElement(dragEvent.source); + }); + } + + /** + * Drag move handler. Remembers mouse position and initiates scrolling + * @param {DragMoveEvent} dragEvent + * @private + */ + [onDragMove](dragEvent) { + this.findScrollableElementFrame = requestAnimationFrame(() => { + this.scrollableElement = this.getScrollableElement(dragEvent.sensorEvent.target); + }); + + if (!this.scrollableElement) { + return; + } + + const sensorEvent = dragEvent.sensorEvent; + const scrollOffset = { x: 0, y: 0 }; + + if ('ontouchstart' in window) { + scrollOffset.y = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; + scrollOffset.x = window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0; + } + + this.currentMousePosition = { + clientX: sensorEvent.clientX - scrollOffset.x, + clientY: sensorEvent.clientY - scrollOffset.y + }; + + this.scrollAnimationFrame = requestAnimationFrame(this[scroll]); + } + + /** + * Drag stop handler. Cancels scroll animations and resets state + * @private + */ + [onDragStop]() { + cancelAnimationFrame(this.scrollAnimationFrame); + cancelAnimationFrame(this.findScrollableElementFrame); + + this.scrollableElement = null; + this.scrollAnimationFrame = null; + this.findScrollableElementFrame = null; + this.currentMousePosition = null; + } + + /** + * Scroll function that does the heavylifting + * @private + */ + [scroll]() { + if (!this.scrollableElement || !this.currentMousePosition) { + return; + } + + cancelAnimationFrame(this.scrollAnimationFrame); + + const { speed, sensitivity } = this.options; + + const rect = this.scrollableElement.getBoundingClientRect(); + const bottomCutOff = rect.bottom > window.innerHeight; + const topCutOff = rect.top < 0; + const cutOff = topCutOff || bottomCutOff; + + const documentScrollingElement = getDocumentScrollingElement(); + const scrollableElement = this.scrollableElement; + const clientX = this.currentMousePosition.clientX; + const clientY = this.currentMousePosition.clientY; + + if (scrollableElement !== document.body && scrollableElement !== document.documentElement && !cutOff) { + const { offsetHeight, offsetWidth } = scrollableElement; + + if (rect.top + offsetHeight - clientY < sensitivity) { + scrollableElement.scrollTop += speed; + } else if (clientY - rect.top < sensitivity) { + scrollableElement.scrollTop -= speed; + } + + if (rect.left + offsetWidth - clientX < sensitivity) { + scrollableElement.scrollLeft += speed; + } else if (clientX - rect.left < sensitivity) { + scrollableElement.scrollLeft -= speed; + } + } else { + const { innerHeight, innerWidth } = window; + + if (clientY < sensitivity) { + documentScrollingElement.scrollTop -= speed; + } else if (innerHeight - clientY < sensitivity) { + documentScrollingElement.scrollTop += speed; + } + + if (clientX < sensitivity) { + documentScrollingElement.scrollLeft -= speed; + } else if (innerWidth - clientX < sensitivity) { + documentScrollingElement.scrollLeft += speed; + } + } + + this.scrollAnimationFrame = requestAnimationFrame(this[scroll]); + } +} + +exports.default = Scrollable; /** + * Returns true if the passed element has overflow + * @param {HTMLElement} element + * @return {Boolean} + * @private + */ + +function hasOverflow(element) { + const overflowRegex = /(auto|scroll)/; + const computedStyles = getComputedStyle(element, null); + + const overflow = computedStyles.getPropertyValue('overflow') + computedStyles.getPropertyValue('overflow-y') + computedStyles.getPropertyValue('overflow-x'); + + return overflowRegex.test(overflow); +} + +/** + * Returns true if the passed element is statically positioned + * @param {HTMLElement} element + * @return {Boolean} + * @private + */ +function isStaticallyPositioned(element) { + const position = getComputedStyle(element).getPropertyValue('position'); + return position === 'static'; +} + +/** + * Finds closest scrollable element + * @param {HTMLElement} element + * @return {HTMLElement} + * @private + */ +function closestScrollableElement(element) { + if (!element) { + return getDocumentScrollingElement(); + } + + const position = getComputedStyle(element).getPropertyValue('position'); + const excludeStaticParents = position === 'absolute'; + + const scrollableElement = (0, _utils.closest)(element, parent => { + if (excludeStaticParents && isStaticallyPositioned(parent)) { + return false; + } + return hasOverflow(parent); + }); + + if (position === 'fixed' || !scrollableElement) { + return getDocumentScrollingElement(); + } else { + return scrollableElement; + } +} + +/** + * Returns element that scrolls document + * @return {HTMLElement} + * @private + */ +function getDocumentScrollingElement() { + return document.scrollingElement || document.documentElement; +} + +/***/ }), +/* 59 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.defaultOptions = undefined; + +var _Scrollable = __webpack_require__(58); + +var _Scrollable2 = _interopRequireDefault(_Scrollable); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _Scrollable2.default; +exports.defaultOptions = _Scrollable.defaultOptions; + +/***/ }), +/* 60 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.MirrorDestroyEvent = exports.MirrorMoveEvent = exports.MirrorAttachedEvent = exports.MirrorCreatedEvent = exports.MirrorCreateEvent = exports.MirrorEvent = undefined; + +var _AbstractEvent = __webpack_require__(1); + +var _AbstractEvent2 = _interopRequireDefault(_AbstractEvent); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Base mirror event + * @class MirrorEvent + * @module MirrorEvent + * @extends AbstractEvent + */ +class MirrorEvent extends _AbstractEvent2.default { + /** + * Draggables source element + * @property source + * @type {HTMLElement} + * @readonly + */ + get source() { + return this.data.source; + } + + /** + * Draggables original source element + * @property originalSource + * @type {HTMLElement} + * @readonly + */ + get originalSource() { + return this.data.originalSource; + } + + /** + * Draggables source container element + * @property sourceContainer + * @type {HTMLElement} + * @readonly + */ + get sourceContainer() { + return this.data.sourceContainer; + } + + /** + * Sensor event + * @property sensorEvent + * @type {SensorEvent} + * @readonly + */ + get sensorEvent() { + return this.data.sensorEvent; + } + + /** + * Drag event + * @property dragEvent + * @type {DragEvent} + * @readonly + */ + get dragEvent() { + return this.data.dragEvent; + } + + /** + * Original event that triggered sensor event + * @property originalEvent + * @type {Event} + * @readonly + */ + get originalEvent() { + if (this.sensorEvent) { + return this.sensorEvent.originalEvent; + } + + return null; + } +} + +exports.MirrorEvent = MirrorEvent; /** + * Mirror create event + * @class MirrorCreateEvent + * @module MirrorCreateEvent + * @extends MirrorEvent + */ + +class MirrorCreateEvent extends MirrorEvent {} + +exports.MirrorCreateEvent = MirrorCreateEvent; /** + * Mirror created event + * @class MirrorCreatedEvent + * @module MirrorCreatedEvent + * @extends MirrorEvent + */ + +MirrorCreateEvent.type = 'mirror:create'; +class MirrorCreatedEvent extends MirrorEvent { + + /** + * Draggables mirror element + * @property mirror + * @type {HTMLElement} + * @readonly + */ + get mirror() { + return this.data.mirror; + } +} + +exports.MirrorCreatedEvent = MirrorCreatedEvent; /** + * Mirror attached event + * @class MirrorAttachedEvent + * @module MirrorAttachedEvent + * @extends MirrorEvent + */ + +MirrorCreatedEvent.type = 'mirror:created'; +class MirrorAttachedEvent extends MirrorEvent { + + /** + * Draggables mirror element + * @property mirror + * @type {HTMLElement} + * @readonly + */ + get mirror() { + return this.data.mirror; + } +} + +exports.MirrorAttachedEvent = MirrorAttachedEvent; /** + * Mirror move event + * @class MirrorMoveEvent + * @module MirrorMoveEvent + * @extends MirrorEvent + */ + +MirrorAttachedEvent.type = 'mirror:attached'; +class MirrorMoveEvent extends MirrorEvent { + + /** + * Draggables mirror element + * @property mirror + * @type {HTMLElement} + * @readonly + */ + get mirror() { + return this.data.mirror; + } + + /** + * Sensor has exceeded mirror's threshold on x axis + * @type {Boolean} + * @readonly + */ + get passedThreshX() { + return this.data.passedThreshX; + } + + /** + * Sensor has exceeded mirror's threshold on y axis + * @type {Boolean} + * @readonly + */ + get passedThreshY() { + return this.data.passedThreshY; + } +} + +exports.MirrorMoveEvent = MirrorMoveEvent; /** + * Mirror destroy event + * @class MirrorDestroyEvent + * @module MirrorDestroyEvent + * @extends MirrorEvent + */ + +MirrorMoveEvent.type = 'mirror:move'; +MirrorMoveEvent.cancelable = true; +class MirrorDestroyEvent extends MirrorEvent { + + /** + * Draggables mirror element + * @property mirror + * @type {HTMLElement} + * @readonly + */ + get mirror() { + return this.data.mirror; + } +} +exports.MirrorDestroyEvent = MirrorDestroyEvent; +MirrorDestroyEvent.type = 'mirror:destroy'; +MirrorDestroyEvent.cancelable = true; + +/***/ }), +/* 61 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _MirrorEvent = __webpack_require__(60); + +Object.keys(_MirrorEvent).forEach(function (key) { + if (key === "default" || key === "__esModule") return; + Object.defineProperty(exports, key, { + enumerable: true, + get: function () { + return _MirrorEvent[key]; + } + }); +}); + +/***/ }), +/* 62 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.defaultOptions = exports.getAppendableContainer = exports.onScroll = exports.onMirrorMove = exports.onMirrorCreated = exports.onDragStop = exports.onDragMove = exports.onDragStart = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _AbstractPlugin = __webpack_require__(0); + +var _AbstractPlugin2 = _interopRequireDefault(_AbstractPlugin); + +var _MirrorEvent = __webpack_require__(61); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } + +const onDragStart = exports.onDragStart = Symbol('onDragStart'); +const onDragMove = exports.onDragMove = Symbol('onDragMove'); +const onDragStop = exports.onDragStop = Symbol('onDragStop'); +const onMirrorCreated = exports.onMirrorCreated = Symbol('onMirrorCreated'); +const onMirrorMove = exports.onMirrorMove = Symbol('onMirrorMove'); +const onScroll = exports.onScroll = Symbol('onScroll'); +const getAppendableContainer = exports.getAppendableContainer = Symbol('getAppendableContainer'); + +/** + * Mirror default options + * @property {Object} defaultOptions + * @property {Boolean} defaultOptions.constrainDimensions + * @property {Boolean} defaultOptions.xAxis + * @property {Boolean} defaultOptions.yAxis + * @property {null} defaultOptions.cursorOffsetX + * @property {null} defaultOptions.cursorOffsetY + * @type {Object} + */ +const defaultOptions = exports.defaultOptions = { + constrainDimensions: false, + xAxis: true, + yAxis: true, + cursorOffsetX: null, + cursorOffsetY: null, + thresholdX: null, + thresholdY: null +}; + +/** + * Mirror plugin which controls the mirror positioning while dragging + * @class Mirror + * @module Mirror + * @extends AbstractPlugin + */ +class Mirror extends _AbstractPlugin2.default { + /** + * Mirror constructor. + * @constructs Mirror + * @param {Draggable} draggable - Draggable instance + */ + constructor(draggable) { + super(draggable); + + /** + * Mirror options + * @property {Object} options + * @property {Boolean} options.constrainDimensions + * @property {Boolean} options.xAxis + * @property {Boolean} options.yAxis + * @property {Number|null} options.cursorOffsetX + * @property {Number|null} options.cursorOffsetY + * @property {String|HTMLElement|Function} options.appendTo + * @type {Object} + */ + this.options = _extends({}, defaultOptions, this.getOptions()); + + /** + * Scroll offset for touch devices because the mirror is positioned fixed + * @property {Object} scrollOffset + * @property {Number} scrollOffset.x + * @property {Number} scrollOffset.y + */ + this.scrollOffset = { x: 0, y: 0 }; + + /** + * Initial scroll offset for touch devices because the mirror is positioned fixed + * @property {Object} scrollOffset + * @property {Number} scrollOffset.x + * @property {Number} scrollOffset.y + */ + this.initialScrollOffset = { + x: window.scrollX, + y: window.scrollY + }; + + this[onDragStart] = this[onDragStart].bind(this); + this[onDragMove] = this[onDragMove].bind(this); + this[onDragStop] = this[onDragStop].bind(this); + this[onMirrorCreated] = this[onMirrorCreated].bind(this); + this[onMirrorMove] = this[onMirrorMove].bind(this); + this[onScroll] = this[onScroll].bind(this); + } + + /** + * Attaches plugins event listeners + */ + attach() { + this.draggable.on('drag:start', this[onDragStart]).on('drag:move', this[onDragMove]).on('drag:stop', this[onDragStop]).on('mirror:created', this[onMirrorCreated]).on('mirror:move', this[onMirrorMove]); + } + + /** + * Detaches plugins event listeners + */ + detach() { + this.draggable.off('drag:start', this[onDragStart]).off('drag:move', this[onDragMove]).off('drag:stop', this[onDragStop]).off('mirror:created', this[onMirrorCreated]).off('mirror:move', this[onMirrorMove]); + } + + /** + * Returns options passed through draggable + * @return {Object} + */ + getOptions() { + return this.draggable.options.mirror || {}; + } + + [onDragStart](dragEvent) { + if (dragEvent.canceled()) { + return; + } + + if ('ontouchstart' in window) { + document.addEventListener('scroll', this[onScroll], true); + } + + this.initialScrollOffset = { + x: window.scrollX, + y: window.scrollY + }; + + const { source, originalSource, sourceContainer, sensorEvent } = dragEvent; + + // Last sensor position of mirror move + this.lastMirrorMovedClient = { + x: sensorEvent.clientX, + y: sensorEvent.clientY + }; + + const mirrorCreateEvent = new _MirrorEvent.MirrorCreateEvent({ + source, + originalSource, + sourceContainer, + sensorEvent, + dragEvent + }); + + this.draggable.trigger(mirrorCreateEvent); + + if (isNativeDragEvent(sensorEvent) || mirrorCreateEvent.canceled()) { + return; + } + + const appendableContainer = this[getAppendableContainer](source) || sourceContainer; + this.mirror = source.cloneNode(true); + + const mirrorCreatedEvent = new _MirrorEvent.MirrorCreatedEvent({ + source, + originalSource, + sourceContainer, + sensorEvent, + dragEvent, + mirror: this.mirror + }); + + const mirrorAttachedEvent = new _MirrorEvent.MirrorAttachedEvent({ + source, + originalSource, + sourceContainer, + sensorEvent, + dragEvent, + mirror: this.mirror + }); + + this.draggable.trigger(mirrorCreatedEvent); + appendableContainer.appendChild(this.mirror); + this.draggable.trigger(mirrorAttachedEvent); + } + + [onDragMove](dragEvent) { + if (!this.mirror || dragEvent.canceled()) { + return; + } + + const { source, originalSource, sourceContainer, sensorEvent } = dragEvent; + + let passedThreshX = true; + let passedThreshY = true; + + if (this.options.thresholdX || this.options.thresholdY) { + const { x: lastX, y: lastY } = this.lastMirrorMovedClient; + + if (Math.abs(lastX - sensorEvent.clientX) < this.options.thresholdX) { + passedThreshX = false; + } else { + this.lastMirrorMovedClient.x = sensorEvent.clientX; + } + + if (Math.abs(lastY - sensorEvent.clientY) < this.options.thresholdY) { + passedThreshY = false; + } else { + this.lastMirrorMovedClient.y = sensorEvent.clientY; + } + + if (!passedThreshX && !passedThreshY) { + return; + } + } + + const mirrorMoveEvent = new _MirrorEvent.MirrorMoveEvent({ + source, + originalSource, + sourceContainer, + sensorEvent, + dragEvent, + mirror: this.mirror, + passedThreshX, + passedThreshY + }); + + this.draggable.trigger(mirrorMoveEvent); + } + + [onDragStop](dragEvent) { + if ('ontouchstart' in window) { + document.removeEventListener('scroll', this[onScroll], true); + } + + this.initialScrollOffset = { x: 0, y: 0 }; + this.scrollOffset = { x: 0, y: 0 }; + + if (!this.mirror) { + return; + } + + const { source, sourceContainer, sensorEvent } = dragEvent; + + const mirrorDestroyEvent = new _MirrorEvent.MirrorDestroyEvent({ + source, + mirror: this.mirror, + sourceContainer, + sensorEvent, + dragEvent + }); + + this.draggable.trigger(mirrorDestroyEvent); + + if (!mirrorDestroyEvent.canceled()) { + this.mirror.parentNode.removeChild(this.mirror); + } + } + + [onScroll]() { + this.scrollOffset = { + x: window.scrollX - this.initialScrollOffset.x, + y: window.scrollY - this.initialScrollOffset.y + }; + } + + /** + * Mirror created handler + * @param {MirrorCreatedEvent} mirrorEvent + * @return {Promise} + * @private + */ + [onMirrorCreated]({ mirror, source, sensorEvent }) { + const mirrorClass = this.draggable.getClassNameFor('mirror'); + + const setState = (_ref) => { + let { mirrorOffset, initialX, initialY } = _ref, + args = _objectWithoutProperties(_ref, ['mirrorOffset', 'initialX', 'initialY']); + + this.mirrorOffset = mirrorOffset; + this.initialX = initialX; + this.initialY = initialY; + this.lastMovedX = initialX; + this.lastMovedY = initialY; + return _extends({ mirrorOffset, initialX, initialY }, args); + }; + + mirror.style.display = 'none'; + + const initialState = { + mirror, + source, + sensorEvent, + mirrorClass, + scrollOffset: this.scrollOffset, + options: this.options, + passedThreshX: true, + passedThreshY: true + }; + + return Promise.resolve(initialState) + // Fix reflow here + .then(computeMirrorDimensions).then(calculateMirrorOffset).then(resetMirror).then(addMirrorClasses).then(positionMirror({ initial: true })).then(removeMirrorID).then(setState); + } + + /** + * Mirror move handler + * @param {MirrorMoveEvent} mirrorEvent + * @return {Promise|null} + * @private + */ + [onMirrorMove](mirrorEvent) { + if (mirrorEvent.canceled()) { + return null; + } + + const setState = (_ref2) => { + let { lastMovedX, lastMovedY } = _ref2, + args = _objectWithoutProperties(_ref2, ['lastMovedX', 'lastMovedY']); + + this.lastMovedX = lastMovedX; + this.lastMovedY = lastMovedY; + + return _extends({ lastMovedX, lastMovedY }, args); + }; + + const initialState = { + mirror: mirrorEvent.mirror, + sensorEvent: mirrorEvent.sensorEvent, + mirrorOffset: this.mirrorOffset, + options: this.options, + initialX: this.initialX, + initialY: this.initialY, + scrollOffset: this.scrollOffset, + passedThreshX: mirrorEvent.passedThreshX, + passedThreshY: mirrorEvent.passedThreshY, + lastMovedX: this.lastMovedX, + lastMovedY: this.lastMovedY + }; + + return Promise.resolve(initialState).then(positionMirror({ raf: true })).then(setState); + } + + /** + * Returns appendable container for mirror based on the appendTo option + * @private + * @param {Object} options + * @param {HTMLElement} options.source - Current source + * @return {HTMLElement} + */ + [getAppendableContainer](source) { + const appendTo = this.options.appendTo; + + if (typeof appendTo === 'string') { + return document.querySelector(appendTo); + } else if (appendTo instanceof HTMLElement) { + return appendTo; + } else if (typeof appendTo === 'function') { + return appendTo(source); + } else { + return source.parentNode; + } + } +} + +exports.default = Mirror; /** + * Computes mirror dimensions based on the source element + * Adds sourceRect to state + * @param {Object} state + * @param {HTMLElement} state.source + * @return {Promise} + * @private + */ + +function computeMirrorDimensions(_ref3) { + let { source } = _ref3, + args = _objectWithoutProperties(_ref3, ['source']); + + return withPromise(resolve => { + const sourceRect = source.getBoundingClientRect(); + resolve(_extends({ source, sourceRect }, args)); + }); +} + +/** + * Calculates mirror offset + * Adds mirrorOffset to state + * @param {Object} state + * @param {SensorEvent} state.sensorEvent + * @param {DOMRect} state.sourceRect + * @return {Promise} + * @private + */ +function calculateMirrorOffset(_ref4) { + let { sensorEvent, sourceRect, options } = _ref4, + args = _objectWithoutProperties(_ref4, ['sensorEvent', 'sourceRect', 'options']); + + return withPromise(resolve => { + const top = options.cursorOffsetY === null ? sensorEvent.clientY - sourceRect.top : options.cursorOffsetY; + const left = options.cursorOffsetX === null ? sensorEvent.clientX - sourceRect.left : options.cursorOffsetX; + + const mirrorOffset = { top, left }; + + resolve(_extends({ sensorEvent, sourceRect, mirrorOffset, options }, args)); + }); +} + +/** + * Applys mirror styles + * @param {Object} state + * @param {HTMLElement} state.mirror + * @param {HTMLElement} state.source + * @param {Object} state.options + * @return {Promise} + * @private + */ +function resetMirror(_ref5) { + let { mirror, source, options } = _ref5, + args = _objectWithoutProperties(_ref5, ['mirror', 'source', 'options']); + + return withPromise(resolve => { + let offsetHeight; + let offsetWidth; + + if (options.constrainDimensions) { + const computedSourceStyles = getComputedStyle(source); + offsetHeight = computedSourceStyles.getPropertyValue('height'); + offsetWidth = computedSourceStyles.getPropertyValue('width'); + } + + mirror.style.display = null; + mirror.style.position = 'fixed'; + mirror.style.pointerEvents = 'none'; + mirror.style.top = 0; + mirror.style.left = 0; + mirror.style.margin = 0; + + if (options.constrainDimensions) { + mirror.style.height = offsetHeight; + mirror.style.width = offsetWidth; + } + + resolve(_extends({ mirror, source, options }, args)); + }); +} + +/** + * Applys mirror class on mirror element + * @param {Object} state + * @param {HTMLElement} state.mirror + * @param {String} state.mirrorClass + * @return {Promise} + * @private + */ +function addMirrorClasses(_ref6) { + let { mirror, mirrorClass } = _ref6, + args = _objectWithoutProperties(_ref6, ['mirror', 'mirrorClass']); + + return withPromise(resolve => { + mirror.classList.add(mirrorClass); + resolve(_extends({ mirror, mirrorClass }, args)); + }); +} + +/** + * Removes source ID from cloned mirror element + * @param {Object} state + * @param {HTMLElement} state.mirror + * @return {Promise} + * @private + */ +function removeMirrorID(_ref7) { + let { mirror } = _ref7, + args = _objectWithoutProperties(_ref7, ['mirror']); + + return withPromise(resolve => { + mirror.removeAttribute('id'); + delete mirror.id; + resolve(_extends({ mirror }, args)); + }); +} + +/** + * Positions mirror with translate3d + * @param {Object} state + * @param {HTMLElement} state.mirror + * @param {SensorEvent} state.sensorEvent + * @param {Object} state.mirrorOffset + * @param {Number} state.initialY + * @param {Number} state.initialX + * @param {Object} state.options + * @return {Promise} + * @private + */ +function positionMirror({ withFrame = false, initial = false } = {}) { + return (_ref8) => { + let { + mirror, + sensorEvent, + mirrorOffset, + initialY, + initialX, + scrollOffset, + options, + passedThreshX, + passedThreshY, + lastMovedX, + lastMovedY + } = _ref8, + args = _objectWithoutProperties(_ref8, ['mirror', 'sensorEvent', 'mirrorOffset', 'initialY', 'initialX', 'scrollOffset', 'options', 'passedThreshX', 'passedThreshY', 'lastMovedX', 'lastMovedY']); + + return withPromise(resolve => { + const result = _extends({ + mirror, + sensorEvent, + mirrorOffset, + options + }, args); + + if (mirrorOffset) { + const x = passedThreshX ? Math.round((sensorEvent.clientX - mirrorOffset.left - scrollOffset.x) / (options.thresholdX || 1)) * (options.thresholdX || 1) : Math.round(lastMovedX); + const y = passedThreshY ? Math.round((sensorEvent.clientY - mirrorOffset.top - scrollOffset.y) / (options.thresholdY || 1)) * (options.thresholdY || 1) : Math.round(lastMovedY); + + if (options.xAxis && options.yAxis || initial) { + mirror.style.transform = `translate3d(${x}px, ${y}px, 0)`; + } else if (options.xAxis && !options.yAxis) { + mirror.style.transform = `translate3d(${x}px, ${initialY}px, 0)`; + } else if (options.yAxis && !options.xAxis) { + mirror.style.transform = `translate3d(${initialX}px, ${y}px, 0)`; + } + + if (initial) { + result.initialX = x; + result.initialY = y; + } + + result.lastMovedX = x; + result.lastMovedY = y; + } + + resolve(result); + }, { frame: withFrame }); + }; +} + +/** + * Wraps functions in promise with potential animation frame option + * @param {Function} callback + * @param {Object} options + * @param {Boolean} options.raf + * @return {Promise} + * @private + */ +function withPromise(callback, { raf = false } = {}) { + return new Promise((resolve, reject) => { + if (raf) { + requestAnimationFrame(() => { + callback(resolve, reject); + }); + } else { + callback(resolve, reject); + } + }); +} + +/** + * Returns true if the sensor event was triggered by a native browser drag event + * @param {SensorEvent} sensorEvent + */ +function isNativeDragEvent(sensorEvent) { + return (/^drag/.test(sensorEvent.originalEvent.type) + ); +} + +/***/ }), +/* 63 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.defaultOptions = undefined; + +var _Mirror = __webpack_require__(62); + +var _Mirror2 = _interopRequireDefault(_Mirror); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _Mirror2.default; +exports.defaultOptions = _Mirror.defaultOptions; + +/***/ }), +/* 64 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _AbstractPlugin = __webpack_require__(0); + +var _AbstractPlugin2 = _interopRequireDefault(_AbstractPlugin); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const onInitialize = Symbol('onInitialize'); +const onDestroy = Symbol('onDestroy'); + +/** + * Focusable default options + * @property {Object} defaultOptions + * @type {Object} + */ +const defaultOptions = {}; + +/** + * Focusable plugin + * @class Focusable + * @module Focusable + * @extends AbstractPlugin + */ +class Focusable extends _AbstractPlugin2.default { + /** + * Focusable constructor. + * @constructs Focusable + * @param {Draggable} draggable - Draggable instance + */ + constructor(draggable) { + super(draggable); + + /** + * Focusable options + * @property {Object} options + * @type {Object} + */ + this.options = _extends({}, defaultOptions, this.getOptions()); + + this[onInitialize] = this[onInitialize].bind(this); + this[onDestroy] = this[onDestroy].bind(this); + } + + /** + * Attaches listeners to draggable + */ + attach() { + this.draggable.on('draggable:initialize', this[onInitialize]).on('draggable:destroy', this[onDestroy]); + } + + /** + * Detaches listeners from draggable + */ + detach() { + this.draggable.off('draggable:initialize', this[onInitialize]).off('draggable:destroy', this[onDestroy]); + + // Remove modified elements when detach + this[onDestroy](); + } + + /** + * Returns options passed through draggable + * @return {Object} + */ + getOptions() { + return this.draggable.options.focusable || {}; + } + + /** + * Returns draggable containers and elements + * @return {HTMLElement[]} + */ + getElements() { + return [...this.draggable.containers, ...this.draggable.getDraggableElements()]; + } + + /** + * Intialize handler + * @private + */ + [onInitialize]() { + // Can wait until the next best frame is available + requestAnimationFrame(() => { + this.getElements().forEach(element => decorateElement(element)); + }); + } + + /** + * Destroy handler + * @private + */ + [onDestroy]() { + // Can wait until the next best frame is available + requestAnimationFrame(() => { + this.getElements().forEach(element => stripElement(element)); + }); + } +} + +exports.default = Focusable; /** + * Keeps track of all the elements that are missing tabindex attributes + * so they can be reset when draggable gets destroyed + * @const {HTMLElement[]} elementsWithMissingTabIndex + */ + +const elementsWithMissingTabIndex = []; + +/** + * Decorates element with tabindex attributes + * @param {HTMLElement} element + * @return {Object} + * @private + */ +function decorateElement(element) { + const hasMissingTabIndex = Boolean(!element.getAttribute('tabindex') && element.tabIndex === -1); + + if (hasMissingTabIndex) { + elementsWithMissingTabIndex.push(element); + element.tabIndex = 0; + } +} + +/** + * Removes elements tabindex attributes + * @param {HTMLElement} element + * @private + */ +function stripElement(element) { + const tabIndexElementPosition = elementsWithMissingTabIndex.indexOf(element); + + if (tabIndexElementPosition !== -1) { + element.tabIndex = -1; + elementsWithMissingTabIndex.splice(tabIndexElementPosition, 1); + } +} + +/***/ }), +/* 65 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _Focusable = __webpack_require__(64); + +var _Focusable2 = _interopRequireDefault(_Focusable); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _Focusable2.default; + +/***/ }), +/* 66 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +/** + * All draggable plugins inherit from this class. + * @abstract + * @class AbstractPlugin + * @module AbstractPlugin + */ +class AbstractPlugin { + /** + * AbstractPlugin constructor. + * @constructs AbstractPlugin + * @param {Draggable} draggable - Draggable instance + */ + constructor(draggable) { + /** + * Draggable instance + * @property draggable + * @type {Draggable} + */ + this.draggable = draggable; + } + + /** + * Override to add listeners + * @abstract + */ + attach() { + throw new Error('Not Implemented'); + } + + /** + * Override to remove listeners + * @abstract + */ + detach() { + throw new Error('Not Implemented'); + } +} +exports.default = AbstractPlugin; + +/***/ }), +/* 67 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.defaultOptions = undefined; + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +var _AbstractPlugin = __webpack_require__(0); + +var _AbstractPlugin2 = _interopRequireDefault(_AbstractPlugin); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +const onInitialize = Symbol('onInitialize'); +const onDestroy = Symbol('onDestroy'); +const announceEvent = Symbol('announceEvent'); +const announceMessage = Symbol('announceMessage'); + +const ARIA_RELEVANT = 'aria-relevant'; +const ARIA_ATOMIC = 'aria-atomic'; +const ARIA_LIVE = 'aria-live'; +const ROLE = 'role'; + +/** + * Announcement default options + * @property {Object} defaultOptions + * @property {Number} defaultOptions.expire + * @type {Object} + */ +const defaultOptions = exports.defaultOptions = { + expire: 7000 +}; + +/** + * Announcement plugin + * @class Announcement + * @module Announcement + * @extends AbstractPlugin + */ +class Announcement extends _AbstractPlugin2.default { + /** + * Announcement constructor. + * @constructs Announcement + * @param {Draggable} draggable - Draggable instance + */ + constructor(draggable) { + super(draggable); + + /** + * Plugin options + * @property options + * @type {Object} + */ + this.options = _extends({}, defaultOptions, this.getOptions()); + + /** + * Original draggable trigger method. Hack until we have onAll or on('all') + * @property originalTriggerMethod + * @type {Function} + */ + this.originalTriggerMethod = this.draggable.trigger; + + this[onInitialize] = this[onInitialize].bind(this); + this[onDestroy] = this[onDestroy].bind(this); + } + + /** + * Attaches listeners to draggable + */ + attach() { + this.draggable.on('draggable:initialize', this[onInitialize]); + } + + /** + * Detaches listeners from draggable + */ + detach() { + this.draggable.off('draggable:destroy', this[onDestroy]); + } + + /** + * Returns passed in options + */ + getOptions() { + return this.draggable.options.announcements || {}; + } + + /** + * Announces event + * @private + * @param {AbstractEvent} event + */ + [announceEvent](event) { + const message = this.options[event.type]; + + if (message && typeof message === 'string') { + this[announceMessage](message); + } + + if (message && typeof message === 'function') { + this[announceMessage](message(event)); + } + } + + /** + * Announces message to screen reader + * @private + * @param {String} message + */ + [announceMessage](message) { + announce(message, { expire: this.options.expire }); + } + + /** + * Initialize hander + * @private + */ + [onInitialize]() { + // Hack until there is an api for listening for all events + this.draggable.trigger = event => { + try { + this[announceEvent](event); + } finally { + // Ensure that original trigger is called + this.originalTriggerMethod.call(this.draggable, event); + } + }; + } + + /** + * Destroy hander + * @private + */ + [onDestroy]() { + this.draggable.trigger = this.originalTriggerMethod; + } +} + +exports.default = Announcement; /** + * @const {HTMLElement} liveRegion + */ + +const liveRegion = createRegion(); + +/** + * Announces message via live region + * @param {String} message + * @param {Object} options + * @param {Number} options.expire + */ +function announce(message, { expire }) { + const element = document.createElement('div'); + + element.textContent = message; + liveRegion.appendChild(element); + + return setTimeout(() => { + liveRegion.removeChild(element); + }, expire); +} + +/** + * Creates region element + * @return {HTMLElement} + */ +function createRegion() { + const element = document.createElement('div'); + + element.setAttribute('id', 'draggable-live-region'); + element.setAttribute(ARIA_RELEVANT, 'additions'); + element.setAttribute(ARIA_ATOMIC, 'true'); + element.setAttribute(ARIA_LIVE, 'assertive'); + element.setAttribute(ROLE, 'log'); + + element.style.position = 'fixed'; + element.style.width = '1px'; + element.style.height = '1px'; + element.style.top = '-1px'; + element.style.overflow = 'hidden'; + + return element; +} + +// Append live region element as early as possible +document.addEventListener('DOMContentLoaded', () => { + document.body.appendChild(liveRegion); +}); + +/***/ }), +/* 68 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.defaultOptions = undefined; + +var _Announcement = __webpack_require__(67); + +var _Announcement2 = _interopRequireDefault(_Announcement); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _Announcement2.default; +exports.defaultOptions = _Announcement.defaultOptions; + +/***/ }), +/* 69 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.DraggableDestroyEvent = exports.DraggableInitializedEvent = exports.DraggableEvent = undefined; + +var _AbstractEvent = __webpack_require__(1); + +var _AbstractEvent2 = _interopRequireDefault(_AbstractEvent); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Base draggable event + * @class DraggableEvent + * @module DraggableEvent + * @extends AbstractEvent + */ +class DraggableEvent extends _AbstractEvent2.default { + + /** + * Draggable instance + * @property draggable + * @type {Draggable} + * @readonly + */ + get draggable() { + return this.data.draggable; + } +} + +exports.DraggableEvent = DraggableEvent; /** + * Draggable initialized event + * @class DraggableInitializedEvent + * @module DraggableInitializedEvent + * @extends DraggableEvent + */ + +DraggableEvent.type = 'draggable'; +class DraggableInitializedEvent extends DraggableEvent {} + +exports.DraggableInitializedEvent = DraggableInitializedEvent; /** + * Draggable destory event + * @class DraggableInitializedEvent + * @module DraggableDestroyEvent + * @extends DraggableDestroyEvent + */ + +DraggableInitializedEvent.type = 'draggable:initialize'; +class DraggableDestroyEvent extends DraggableEvent {} +exports.DraggableDestroyEvent = DraggableDestroyEvent; +DraggableDestroyEvent.type = 'draggable:destroy'; + +/***/ }), +/* 70 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; + +const canceled = Symbol('canceled'); + +/** + * All events fired by draggable inherit this class. You can call `cancel()` to + * cancel a specific event or you can check if an event has been canceled by + * calling `canceled()`. + * @abstract + * @class AbstractEvent + * @module AbstractEvent + */ +class AbstractEvent { + + /** + * AbstractEvent constructor. + * @constructs AbstractEvent + * @param {object} data - Event data + */ + + /** + * Event type + * @static + * @abstract + * @property type + * @type {String} + */ + constructor(data) { + this[canceled] = false; + this.data = data; + } + + /** + * Read-only type + * @abstract + * @return {String} + */ + + + /** + * Event cancelable + * @static + * @abstract + * @property cancelable + * @type {Boolean} + */ + get type() { + return this.constructor.type; + } + + /** + * Read-only cancelable + * @abstract + * @return {Boolean} + */ + get cancelable() { + return this.constructor.cancelable; + } + + /** + * Cancels the event instance + * @abstract + */ + cancel() { + this[canceled] = true; + } + + /** + * Check if event has been canceled + * @abstract + * @return {Boolean} + */ + canceled() { + return Boolean(this[canceled]); + } + + /** + * Returns new event instance with existing event data. + * This method allows for overriding of event data. + * @param {Object} data + * @return {AbstractEvent} + */ + clone(data) { + return new this.constructor(_extends({}, this.data, data)); + } +} +exports.default = AbstractEvent; +AbstractEvent.type = 'event'; +AbstractEvent.cancelable = false; + +/***/ }), +/* 71 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.DragStopEvent = exports.DragPressureEvent = exports.DragOutContainerEvent = exports.DragOverContainerEvent = exports.DragOutEvent = exports.DragOverEvent = exports.DragMoveEvent = exports.DragStartEvent = exports.DragEvent = undefined; + +var _AbstractEvent = __webpack_require__(1); + +var _AbstractEvent2 = _interopRequireDefault(_AbstractEvent); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Base drag event + * @class DragEvent + * @module DragEvent + * @extends AbstractEvent + */ +class DragEvent extends _AbstractEvent2.default { + + /** + * Draggables source element + * @property source + * @type {HTMLElement} + * @readonly + */ + get source() { + return this.data.source; + } + + /** + * Draggables original source element + * @property originalSource + * @type {HTMLElement} + * @readonly + */ + get originalSource() { + return this.data.originalSource; + } + + /** + * Draggables mirror element + * @property mirror + * @type {HTMLElement} + * @readonly + */ + get mirror() { + return this.data.mirror; + } + + /** + * Draggables source container element + * @property sourceContainer + * @type {HTMLElement} + * @readonly + */ + get sourceContainer() { + return this.data.sourceContainer; + } + + /** + * Sensor event + * @property sensorEvent + * @type {SensorEvent} + * @readonly + */ + get sensorEvent() { + return this.data.sensorEvent; + } + + /** + * Original event that triggered sensor event + * @property originalEvent + * @type {Event} + * @readonly + */ + get originalEvent() { + if (this.sensorEvent) { + return this.sensorEvent.originalEvent; + } + + return null; + } +} + +exports.DragEvent = DragEvent; /** + * Drag start event + * @class DragStartEvent + * @module DragStartEvent + * @extends DragEvent + */ + +DragEvent.type = 'drag'; +class DragStartEvent extends DragEvent {} + +exports.DragStartEvent = DragStartEvent; /** + * Drag move event + * @class DragMoveEvent + * @module DragMoveEvent + * @extends DragEvent + */ + +DragStartEvent.type = 'drag:start'; +DragStartEvent.cancelable = true; +class DragMoveEvent extends DragEvent {} + +exports.DragMoveEvent = DragMoveEvent; /** + * Drag over event + * @class DragOverEvent + * @module DragOverEvent + * @extends DragEvent + */ + +DragMoveEvent.type = 'drag:move'; +class DragOverEvent extends DragEvent { + + /** + * Draggable container you are over + * @property overContainer + * @type {HTMLElement} + * @readonly + */ + get overContainer() { + return this.data.overContainer; + } + + /** + * Draggable element you are over + * @property over + * @type {HTMLElement} + * @readonly + */ + get over() { + return this.data.over; + } +} + +exports.DragOverEvent = DragOverEvent; /** + * Drag out event + * @class DragOutEvent + * @module DragOutEvent + * @extends DragEvent + */ + +DragOverEvent.type = 'drag:over'; +DragOverEvent.cancelable = true; +class DragOutEvent extends DragEvent { + + /** + * Draggable container you are over + * @property overContainer + * @type {HTMLElement} + * @readonly + */ + get overContainer() { + return this.data.overContainer; + } + + /** + * Draggable element you left + * @property over + * @type {HTMLElement} + * @readonly + */ + get over() { + return this.data.over; + } +} + +exports.DragOutEvent = DragOutEvent; /** + * Drag over container event + * @class DragOverContainerEvent + * @module DragOverContainerEvent + * @extends DragEvent + */ + +DragOutEvent.type = 'drag:out'; +class DragOverContainerEvent extends DragEvent { + + /** + * Draggable container you are over + * @property overContainer + * @type {HTMLElement} + * @readonly + */ + get overContainer() { + return this.data.overContainer; + } +} + +exports.DragOverContainerEvent = DragOverContainerEvent; /** + * Drag out container event + * @class DragOutContainerEvent + * @module DragOutContainerEvent + * @extends DragEvent + */ + +DragOverContainerEvent.type = 'drag:over:container'; +class DragOutContainerEvent extends DragEvent { + + /** + * Draggable container you left + * @property overContainer + * @type {HTMLElement} + * @readonly + */ + get overContainer() { + return this.data.overContainer; + } +} + +exports.DragOutContainerEvent = DragOutContainerEvent; /** + * Drag pressure event + * @class DragPressureEvent + * @module DragPressureEvent + * @extends DragEvent + */ + +DragOutContainerEvent.type = 'drag:out:container'; +class DragPressureEvent extends DragEvent { + + /** + * Pressure applied on draggable element + * @property pressure + * @type {Number} + * @readonly + */ + get pressure() { + return this.data.pressure; + } +} + +exports.DragPressureEvent = DragPressureEvent; /** + * Drag stop event + * @class DragStopEvent + * @module DragStopEvent + * @extends DragEvent + */ + +DragPressureEvent.type = 'drag:pressure'; +class DragStopEvent extends DragEvent {} +exports.DragStopEvent = DragStopEvent; +DragStopEvent.type = 'drag:stop'; + +/***/ }), +/* 72 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Plugins = exports.Sensors = exports.Sortable = exports.Swappable = exports.Droppable = exports.Draggable = exports.BasePlugin = exports.BaseEvent = undefined; + +var _Draggable = __webpack_require__(5); + +Object.defineProperty(exports, 'Draggable', { + enumerable: true, + get: function () { + return _interopRequireDefault(_Draggable).default; + } +}); + +var _Droppable = __webpack_require__(36); + +Object.defineProperty(exports, 'Droppable', { + enumerable: true, + get: function () { + return _interopRequireDefault(_Droppable).default; + } +}); + +var _Swappable = __webpack_require__(33); + +Object.defineProperty(exports, 'Swappable', { + enumerable: true, + get: function () { + return _interopRequireDefault(_Swappable).default; + } +}); + +var _Sortable = __webpack_require__(30); + +Object.defineProperty(exports, 'Sortable', { + enumerable: true, + get: function () { + return _interopRequireDefault(_Sortable).default; + } +}); + +var _AbstractEvent = __webpack_require__(1); + +var _AbstractEvent2 = _interopRequireDefault(_AbstractEvent); + +var _AbstractPlugin = __webpack_require__(0); + +var _AbstractPlugin2 = _interopRequireDefault(_AbstractPlugin); + +var _Sensors = __webpack_require__(6); + +var Sensors = _interopRequireWildcard(_Sensors); + +var _Plugins = __webpack_require__(27); + +var Plugins = _interopRequireWildcard(_Plugins); + +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.BaseEvent = _AbstractEvent2.default; +exports.BasePlugin = _AbstractPlugin2.default; +exports.Sensors = Sensors; +exports.Plugins = Plugins; + +/***/ }) +/******/ ]); +}); \ No newline at end of file diff --git a/Moonlight/wwwroot/assets/js/jquery.min.js b/Moonlight/wwwroot/assets/js/jquery.min.js new file mode 100644 index 00000000..e7e29d5b --- /dev/null +++ b/Moonlight/wwwroot/assets/js/jquery.min.js @@ -0,0 +1,2 @@ +/*! jQuery v3.7.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(ie,e){"use strict";var oe=[],r=Object.getPrototypeOf,ae=oe.slice,g=oe.flat?function(e){return oe.flat.call(e)}:function(e){return oe.concat.apply([],e)},s=oe.push,se=oe.indexOf,n={},i=n.toString,ue=n.hasOwnProperty,o=ue.toString,a=o.call(Object),le={},v=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},y=function(e){return null!=e&&e===e.window},C=ie.document,u={type:!0,src:!0,nonce:!0,noModule:!0};function m(e,t,n){var r,i,o=(n=n||C).createElement("script");if(o.text=e,t)for(r in u)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[i.call(e)]||"object":typeof e}var t="3.7.0",l=/HTML$/i,ce=function(e,t){return new ce.fn.init(e,t)};function c(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!v(e)&&!y(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},R=function(){V()},M=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&z(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function X(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&M(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function U(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function z(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",R),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||I.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="",le.option=!!xe.lastChild;var ke={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n",""]);var je=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function Me(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="
",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return R(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return R(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 00&&s(a.width)/e.offsetWidth||1,p=e.offsetHeight>0&&s(a.height)/e.offsetHeight||1);var u=(n(e)?t(e):window).visualViewport,l=!c()&&i,d=(a.left+(l&&u?u.offsetLeft:0))/f,h=(a.top+(l&&u?u.offsetTop:0))/p,m=a.width/f,v=a.height/p;return{width:m,height:v,top:h,right:d+m,bottom:h+v,left:d,x:d,y:h}}function u(e){var n=t(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function l(e){return e?(e.nodeName||"").toLowerCase():null}function d(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function h(e){return p(d(e)).left+u(e).scrollLeft}function m(e){return t(e).getComputedStyle(e)}function v(e){var t=m(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function y(e,n,o){void 0===o&&(o=!1);var i,a,f=r(n),c=r(n)&&function(e){var t=e.getBoundingClientRect(),n=s(t.width)/e.offsetWidth||1,r=s(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(n),m=d(n),y=p(e,c,o),g={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(f||!f&&!o)&&(("body"!==l(n)||v(m))&&(g=(i=n)!==t(i)&&r(i)?{scrollLeft:(a=i).scrollLeft,scrollTop:a.scrollTop}:u(i)),r(n)?((b=p(n,!0)).x+=n.clientLeft,b.y+=n.clientTop):m&&(b.x=h(m))),{x:y.left+g.scrollLeft-b.x,y:y.top+g.scrollTop-b.y,width:y.width,height:y.height}}function g(e){var t=p(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function b(e){return"html"===l(e)?e:e.assignedSlot||e.parentNode||(o(e)?e.host:null)||d(e)}function x(e){return["html","body","#document"].indexOf(l(e))>=0?e.ownerDocument.body:r(e)&&v(e)?e:x(b(e))}function w(e,n){var r;void 0===n&&(n=[]);var o=x(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),a=t(o),s=i?[a].concat(a.visualViewport||[],v(o)?o:[]):o,f=n.concat(s);return i?f:f.concat(w(b(s)))}function O(e){return["table","td","th"].indexOf(l(e))>=0}function j(e){return r(e)&&"fixed"!==m(e).position?e.offsetParent:null}function E(e){for(var n=t(e),i=j(e);i&&O(i)&&"static"===m(i).position;)i=j(i);return i&&("html"===l(i)||"body"===l(i)&&"static"===m(i).position)?n:i||function(e){var t=/firefox/i.test(f());if(/Trident/i.test(f())&&r(e)&&"fixed"===m(e).position)return null;var n=b(e);for(o(n)&&(n=n.host);r(n)&&["html","body"].indexOf(l(n))<0;){var i=m(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||n}var D="top",A="bottom",L="right",P="left",M="auto",k=[D,A,L,P],W="start",B="end",H="viewport",T="popper",R=k.reduce((function(e,t){return e.concat([t+"-"+W,t+"-"+B])}),[]),S=[].concat(k,[M]).reduce((function(e,t){return e.concat([t,t+"-"+W,t+"-"+B])}),[]),V=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function q(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}function C(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&o(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function N(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function I(e,r,o){return r===H?N(function(e,n){var r=t(e),o=d(e),i=r.visualViewport,a=o.clientWidth,s=o.clientHeight,f=0,p=0;if(i){a=i.width,s=i.height;var u=c();(u||!u&&"fixed"===n)&&(f=i.offsetLeft,p=i.offsetTop)}return{width:a,height:s,x:f+h(e),y:p}}(e,o)):n(r)?function(e,t){var n=p(e,!1,"fixed"===t);return n.top=n.top+e.clientTop,n.left=n.left+e.clientLeft,n.bottom=n.top+e.clientHeight,n.right=n.left+e.clientWidth,n.width=e.clientWidth,n.height=e.clientHeight,n.x=n.left,n.y=n.top,n}(r,o):N(function(e){var t,n=d(e),r=u(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=i(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=i(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),f=-r.scrollLeft+h(e),c=-r.scrollTop;return"rtl"===m(o||n).direction&&(f+=i(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:s,x:f,y:c}}(d(e)))}function _(e,t,o,s){var f="clippingParents"===t?function(e){var t=w(b(e)),o=["absolute","fixed"].indexOf(m(e).position)>=0&&r(e)?E(e):e;return n(o)?t.filter((function(e){return n(e)&&C(e,o)&&"body"!==l(e)})):[]}(e):[].concat(t),c=[].concat(f,[o]),p=c[0],u=c.reduce((function(t,n){var r=I(e,n,s);return t.top=i(r.top,t.top),t.right=a(r.right,t.right),t.bottom=a(r.bottom,t.bottom),t.left=i(r.left,t.left),t}),I(e,p,s));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}function F(e){return e.split("-")[0]}function U(e){return e.split("-")[1]}function z(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function X(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?F(o):null,a=o?U(o):null,s=n.x+n.width/2-r.width/2,f=n.y+n.height/2-r.height/2;switch(i){case D:t={x:s,y:n.y-r.height};break;case A:t={x:s,y:n.y+n.height};break;case L:t={x:n.x+n.width,y:f};break;case P:t={x:n.x-r.width,y:f};break;default:t={x:n.x,y:n.y}}var c=i?z(i):null;if(null!=c){var p="y"===c?"height":"width";switch(a){case W:t[c]=t[c]-(n[p]/2-r[p]/2);break;case B:t[c]=t[c]+(n[p]/2-r[p]/2)}}return t}function Y(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function G(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function J(e,t){void 0===t&&(t={});var r=t,o=r.placement,i=void 0===o?e.placement:o,a=r.strategy,s=void 0===a?e.strategy:a,f=r.boundary,c=void 0===f?"clippingParents":f,u=r.rootBoundary,l=void 0===u?H:u,h=r.elementContext,m=void 0===h?T:h,v=r.altBoundary,y=void 0!==v&&v,g=r.padding,b=void 0===g?0:g,x=Y("number"!=typeof b?b:G(b,k)),w=m===T?"reference":T,O=e.rects.popper,j=e.elements[y?w:m],E=_(n(j)?j:j.contextElement||d(e.elements.popper),c,l,s),P=p(e.elements.reference),M=X({reference:P,element:O,strategy:"absolute",placement:i}),W=N(Object.assign({},O,M)),B=m===T?W:P,R={top:E.top-B.top+x.top,bottom:B.bottom-E.bottom+x.bottom,left:E.left-B.left+x.left,right:B.right-E.right+x.right},S=e.modifiersData.offset;if(m===T&&S){var V=S[i];Object.keys(R).forEach((function(e){var t=[L,A].indexOf(e)>=0?1:-1,n=[D,A].indexOf(e)>=0?"y":"x";R[e]+=V[n]*t}))}return R}var K={placement:"bottom",modifiers:[],strategy:"absolute"};function Q(){for(var e=arguments.length,t=new Array(e),n=0;n=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[P,L].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,i),e}),{}),s=a[t.placement],f=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=f,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}},se={left:"right",right:"left",bottom:"top",top:"bottom"};function fe(e){return e.replace(/left|right|bottom|top/g,(function(e){return se[e]}))}var ce={start:"end",end:"start"};function pe(e){return e.replace(/start|end/g,(function(e){return ce[e]}))}function ue(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,c=void 0===f?S:f,p=U(r),u=p?s?R:R.filter((function(e){return U(e)===p})):k,l=u.filter((function(e){return c.indexOf(e)>=0}));0===l.length&&(l=u);var d=l.reduce((function(t,n){return t[n]=J(e,{placement:n,boundary:o,rootBoundary:i,padding:a})[F(n)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}var le={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0===a||a,f=n.fallbackPlacements,c=n.padding,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.flipVariations,h=void 0===d||d,m=n.allowedAutoPlacements,v=t.options.placement,y=F(v),g=f||(y===v||!h?[fe(v)]:function(e){if(F(e)===M)return[];var t=fe(e);return[pe(e),t,pe(t)]}(v)),b=[v].concat(g).reduce((function(e,n){return e.concat(F(n)===M?ue(t,{placement:n,boundary:p,rootBoundary:u,padding:c,flipVariations:h,allowedAutoPlacements:m}):n)}),[]),x=t.rects.reference,w=t.rects.popper,O=new Map,j=!0,E=b[0],k=0;k=0,S=R?"width":"height",V=J(t,{placement:B,boundary:p,rootBoundary:u,altBoundary:l,padding:c}),q=R?T?L:P:T?A:D;x[S]>w[S]&&(q=fe(q));var C=fe(q),N=[];if(i&&N.push(V[H]<=0),s&&N.push(V[q]<=0,V[C]<=0),N.every((function(e){return e}))){E=B,j=!1;break}O.set(B,N)}if(j)for(var I=function(e){var t=b.find((function(t){var n=O.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return E=t,"break"},_=h?3:1;_>0;_--){if("break"===I(_))break}t.placement!==E&&(t.modifiersData[r]._skip=!0,t.placement=E,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function de(e,t,n){return i(e,a(t,n))}var he={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=void 0===o||o,f=n.altAxis,c=void 0!==f&&f,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.padding,h=n.tether,m=void 0===h||h,v=n.tetherOffset,y=void 0===v?0:v,b=J(t,{boundary:p,rootBoundary:u,padding:d,altBoundary:l}),x=F(t.placement),w=U(t.placement),O=!w,j=z(x),M="x"===j?"y":"x",k=t.modifiersData.popperOffsets,B=t.rects.reference,H=t.rects.popper,T="function"==typeof y?y(Object.assign({},t.rects,{placement:t.placement})):y,R="number"==typeof T?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),S=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,V={x:0,y:0};if(k){if(s){var q,C="y"===j?D:P,N="y"===j?A:L,I="y"===j?"height":"width",_=k[j],X=_+b[C],Y=_-b[N],G=m?-H[I]/2:0,K=w===W?B[I]:H[I],Q=w===W?-H[I]:-B[I],Z=t.elements.arrow,$=m&&Z?g(Z):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[C],ne=ee[N],re=de(0,B[I],$[I]),oe=O?B[I]/2-G-re-te-R.mainAxis:K-re-te-R.mainAxis,ie=O?-B[I]/2+G+re+ne+R.mainAxis:Q+re+ne+R.mainAxis,ae=t.elements.arrow&&E(t.elements.arrow),se=ae?"y"===j?ae.clientTop||0:ae.clientLeft||0:0,fe=null!=(q=null==S?void 0:S[j])?q:0,ce=_+ie-fe,pe=de(m?a(X,_+oe-fe-se):X,_,m?i(Y,ce):Y);k[j]=pe,V[j]=pe-_}if(c){var ue,le="x"===j?D:P,he="x"===j?A:L,me=k[M],ve="y"===M?"height":"width",ye=me+b[le],ge=me-b[he],be=-1!==[D,P].indexOf(x),xe=null!=(ue=null==S?void 0:S[M])?ue:0,we=be?ye:me-B[ve]-H[ve]-xe+R.altAxis,Oe=be?me+B[ve]+H[ve]-xe-R.altAxis:ge,je=m&&be?function(e,t,n){var r=de(e,t,n);return r>n?n:r}(we,me,Oe):de(m?we:ye,me,m?Oe:ge);k[M]=je,V[M]=je-me}t.modifiersData[r]=V}},requiresIfExists:["offset"]};var me={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=F(n.placement),f=z(s),c=[P,L].indexOf(s)>=0?"height":"width";if(i&&a){var p=function(e,t){return Y("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:G(e,k))}(o.padding,n),u=g(i),l="y"===f?D:P,d="y"===f?A:L,h=n.rects.reference[c]+n.rects.reference[f]-a[f]-n.rects.popper[c],m=a[f]-n.rects.reference[f],v=E(i),y=v?"y"===f?v.clientHeight||0:v.clientWidth||0:0,b=h/2-m/2,x=p[l],w=y-u[c]-p[d],O=y/2-u[c]/2+b,j=de(x,O,w),M=f;n.modifiersData[r]=((t={})[M]=j,t.centerOffset=j-O,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&C(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function ve(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function ye(e){return[D,L,A,P].some((function(t){return e[t]>=0}))}var ge={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=J(t,{elementContext:"reference"}),s=J(t,{altBoundary:!0}),f=ve(a,r),c=ve(s,o,i),p=ye(f),u=ye(c);t.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":u})}},be=Z({defaultModifiers:[ee,te,oe,ie]}),xe=[ee,te,oe,ie,ae,le,he,me,ge],we=Z({defaultModifiers:xe});e.applyStyles=ie,e.arrow=me,e.computeStyles=oe,e.createPopper=we,e.createPopperLite=be,e.defaultModifiers=xe,e.detectOverflow=J,e.eventListeners=ee,e.flip=le,e.hide=ge,e.offset=ae,e.popperGenerator=Z,e.popperOffsets=te,e.preventOverflow=he,Object.defineProperty(e,"__esModule",{value:!0})})); +//# sourceMappingURL=popper.min.js.map diff --git a/Moonlight/wwwroot/assets/js/toastr.min.js b/Moonlight/wwwroot/assets/js/toastr.min.js new file mode 100644 index 00000000..b4fb8f71 --- /dev/null +++ b/Moonlight/wwwroot/assets/js/toastr.min.js @@ -0,0 +1 @@ +!function(e){e(["jquery"],function(e){return function(){function t(e,t,n){return g({type:O.error,iconClass:m().iconClasses.error,message:e,optionsOverride:n,title:t})}function n(t,n){return t||(t=m()),v=e("#"+t.containerId),v.length?v:(n&&(v=d(t)),v)}function o(e,t,n){return g({type:O.info,iconClass:m().iconClasses.info,message:e,optionsOverride:n,title:t})}function s(e){C=e}function i(e,t,n){return g({type:O.success,iconClass:m().iconClasses.success,message:e,optionsOverride:n,title:t})}function a(e,t,n){return g({type:O.warning,iconClass:m().iconClasses.warning,message:e,optionsOverride:n,title:t})}function r(e,t){var o=m();v||n(o),u(e,o,t)||l(o)}function c(t){var o=m();return v||n(o),t&&0===e(":focus",t).length?void h(t):void(v.children().length&&v.remove())}function l(t){for(var n=v.children(),o=n.length-1;o>=0;o--)u(e(n[o]),t)}function u(t,n,o){var s=!(!o||!o.force)&&o.force;return!(!t||!s&&0!==e(":focus",t).length)&&(t[n.hideMethod]({duration:n.hideDuration,easing:n.hideEasing,complete:function(){h(t)}}),!0)}function d(t){return v=e("
").attr("id",t.containerId).addClass(t.positionClass),v.appendTo(e(t.target)),v}function p(){return{tapToDismiss:!0,toastClass:"toastr",containerId:"toastr-container",debug:!1,showMethod:"fadeIn",showDuration:300,showEasing:"swing",onShown:void 0,hideMethod:"fadeOut",hideDuration:1e3,hideEasing:"swing",onHidden:void 0,closeMethod:!1,closeDuration:!1,closeEasing:!1,closeOnHover:!0,extendedTimeOut:1e3,iconClasses:{error:"toastr-error",info:"toastr-info",success:"toastr-success",warning:"toastr-warning"},iconClass:"toastr-info",positionClass:"toastr-top-right",timeOut:5e3,titleClass:"toastr-title",messageClass:"toastr-message",escapeHtml:!1,target:"body",closeHtml:'',closeClass:"toastr-close-button",newestOnTop:!0,preventDuplicates:!1,progressBar:!1,progressClass:"toastr-progress",rtl:!1}}function f(e){C&&C(e)}function g(t){function o(e){return null==e&&(e=""),e.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function s(){c(),u(),d(),p(),g(),C(),l(),i()}function i(){var e="";switch(t.iconClass){case"toastr-success":case"toastr-info":e="polite";break;default:e="assertive"}I.attr("aria-live",e)}function a(){E.closeOnHover&&I.hover(H,D),!E.onclick&&E.tapToDismiss&&I.click(b),E.closeButton&&j&&j.click(function(e){e.stopPropagation?e.stopPropagation():void 0!==e.cancelBubble&&e.cancelBubble!==!0&&(e.cancelBubble=!0),E.onCloseClick&&E.onCloseClick(e),b(!0)}),E.onclick&&I.click(function(e){E.onclick(e),b()})}function r(){I.hide(),I[E.showMethod]({duration:E.showDuration,easing:E.showEasing,complete:E.onShown}),E.timeOut>0&&(k=setTimeout(b,E.timeOut),F.maxHideTime=parseFloat(E.timeOut),F.hideEta=(new Date).getTime()+F.maxHideTime,E.progressBar&&(F.intervalId=setInterval(x,10)))}function c(){t.iconClass&&I.addClass(E.toastClass).addClass(y)}function l(){E.newestOnTop?v.prepend(I):v.append(I)}function u(){if(t.title){var e=t.title;E.escapeHtml&&(e=o(t.title)),M.append(e).addClass(E.titleClass),I.append(M)}}function d(){if(t.message){var e=t.message;E.escapeHtml&&(e=o(t.message)),B.append(e).addClass(E.messageClass),I.append(B)}}function p(){E.closeButton&&(j.addClass(E.closeClass).attr("role","button"),I.prepend(j))}function g(){E.progressBar&&(q.addClass(E.progressClass),I.prepend(q))}function C(){E.rtl&&I.addClass("rtl")}function O(e,t){if(e.preventDuplicates){if(t.message===w)return!0;w=t.message}return!1}function b(t){var n=t&&E.closeMethod!==!1?E.closeMethod:E.hideMethod,o=t&&E.closeDuration!==!1?E.closeDuration:E.hideDuration,s=t&&E.closeEasing!==!1?E.closeEasing:E.hideEasing;if(!e(":focus",I).length||t)return clearTimeout(F.intervalId),I[n]({duration:o,easing:s,complete:function(){h(I),clearTimeout(k),E.onHidden&&"hidden"!==P.state&&E.onHidden(),P.state="hidden",P.endTime=new Date,f(P)}})}function D(){(E.timeOut>0||E.extendedTimeOut>0)&&(k=setTimeout(b,E.extendedTimeOut),F.maxHideTime=parseFloat(E.extendedTimeOut),F.hideEta=(new Date).getTime()+F.maxHideTime)}function H(){clearTimeout(k),F.hideEta=0,I.stop(!0,!0)[E.showMethod]({duration:E.showDuration,easing:E.showEasing})}function x(){var e=(F.hideEta-(new Date).getTime())/F.maxHideTime*100;q.width(e+"%")}var E=m(),y=t.iconClass||E.iconClass;if("undefined"!=typeof t.optionsOverride&&(E=e.extend(E,t.optionsOverride),y=t.optionsOverride.iconClass||y),!O(E,t)){T++,v=n(E,!0);var k=null,I=e("
"),M=e("
"),B=e("
"),q=e("
"),j=e(E.closeHtml),F={intervalId:null,hideEta:null,maxHideTime:null},P={toastId:T,state:"visible",startTime:new Date,options:E,map:t};return s(),r(),a(),f(P),E.debug&&console&&console.log(P),I}}function m(){return e.extend({},p(),b.options)}function h(e){v||(v=n()),e.is(":visible")||(e.remove(),e=null,0===v.children().length&&(v.remove(),w=void 0))}var v,C,w,T=0,O={error:"error",info:"info",success:"success",warning:"warning"},b={clear:r,remove:c,error:t,getContainer:n,info:o,options:{},subscribe:s,success:i,version:"2.1.4",warning:a};return b}()})}("function"==typeof define&&define.amd?define:function(e,t){"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):window.toastr=t(window.jQuery)}); \ No newline at end of file diff --git a/Moonlight/wwwroot/assets/js/xterm-addon-fit.min.js b/Moonlight/wwwroot/assets/js/xterm-addon-fit.min.js new file mode 100644 index 00000000..b423726c --- /dev/null +++ b/Moonlight/wwwroot/assets/js/xterm-addon-fit.min.js @@ -0,0 +1,8 @@ +/** + * Skipped minification because the original files appears to be already minified. + * Original file: /npm/xterm-addon-fit@0.7.0/lib/xterm-addon-fit.js + * + * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files + */ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.FitAddon=t():e.FitAddon=t()}(self,(function(){return(()=>{"use strict";var e={};return(()=>{var t=e;Object.defineProperty(t,"__esModule",{value:!0}),t.FitAddon=void 0,t.FitAddon=class{constructor(){}activate(e){this._terminal=e}dispose(){}fit(){const e=this.proposeDimensions();if(!e||!this._terminal||isNaN(e.cols)||isNaN(e.rows))return;const t=this._terminal._core;this._terminal.rows===e.rows&&this._terminal.cols===e.cols||(t._renderService.clear(),this._terminal.resize(e.cols,e.rows))}proposeDimensions(){if(!this._terminal)return;if(!this._terminal.element||!this._terminal.element.parentElement)return;const e=this._terminal._core,t=e._renderService.dimensions;if(0===t.css.cell.width||0===t.css.cell.height)return;const r=0===this._terminal.options.scrollback?0:e.viewport.scrollBarWidth,i=window.getComputedStyle(this._terminal.element.parentElement),o=parseInt(i.getPropertyValue("height")),s=Math.max(0,parseInt(i.getPropertyValue("width"))),n=window.getComputedStyle(this._terminal.element),l=o-(parseInt(n.getPropertyValue("padding-top"))+parseInt(n.getPropertyValue("padding-bottom"))),a=s-(parseInt(n.getPropertyValue("padding-right"))+parseInt(n.getPropertyValue("padding-left")))-r;return{cols:Math.max(2,Math.floor(a/t.css.cell.width)),rows:Math.max(1,Math.floor(l/t.css.cell.height))}}}})(),e})()})); +//# sourceMappingURL=xterm-addon-fit.js.map \ No newline at end of file From b9c094cafaa06ad7bdeaf7cfb3d7ed3c78eac699 Mon Sep 17 00:00:00 2001 From: Marcel Baumgartner Date: Sun, 27 Aug 2023 20:40:58 +0200 Subject: [PATCH 03/12] Fixed initial install console and added a better redirect handling when creating a server --- Moonlight/App/Helpers/Wings/WingsConsole.cs | 10 ++++++++++ Moonlight/Shared/Views/Admin/Servers/New.razor | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/Moonlight/App/Helpers/Wings/WingsConsole.cs b/Moonlight/App/Helpers/Wings/WingsConsole.cs index 9767e540..674aca4a 100644 --- a/Moonlight/App/Helpers/Wings/WingsConsole.cs +++ b/Moonlight/App/Helpers/Wings/WingsConsole.cs @@ -218,6 +218,16 @@ public class WingsConsole : IDisposable break; case "install output": + if (ServerState != ServerState.Installing) + { + // Because wings is sending "install output" events BEFORE + // sending the "install started" event, + // we need to set the install state here + // See https://github.com/pterodactyl/panel/issues/4853 + // for more details + await UpdateServerState(ServerState.Installing); + } + foreach (var line in eventData.Args) { await SaveMessage(line); diff --git a/Moonlight/Shared/Views/Admin/Servers/New.razor b/Moonlight/Shared/Views/Admin/Servers/New.razor index c45e94bf..5b1a5a53 100644 --- a/Moonlight/Shared/Views/Admin/Servers/New.razor +++ b/Moonlight/Shared/Views/Admin/Servers/New.razor @@ -229,7 +229,7 @@ { try { - await ServerService.Create(Model.Name, Model.Cpu, Model.Memory, Model.Disk, Model.Owner, Model.Image, Model.Node, server => + var newServer = await ServerService.Create(Model.Name, Model.Cpu, Model.Memory, Model.Disk, Model.Owner, Model.Image, Model.Node, server => { server.OverrideStartup = Model.OverrideStartup; server.DockerImageIndex = Model.DockerImageIndex; @@ -242,7 +242,7 @@ }); await ToastService.Success(SmartTranslateService.Translate("Server successfully created")); - NavigationManager.NavigateTo("/admin/servers"); + NavigationManager.NavigateTo($"/server/{newServer.Uuid}"); } catch (DisplayException e) { From 6972c2bb3212525c3adb4d1418670ee1705e9c0a Mon Sep 17 00:00:00 2001 From: Marcel Baumgartner Date: Mon, 28 Aug 2023 05:08:52 +0200 Subject: [PATCH 04/12] Improved malware scan. Added server and user purge --- .../App/MalwareScans/FakePlayerPluginScan.cs | 15 +- Moonlight/App/MalwareScans/MinerJarScan.cs | 15 +- Moonlight/App/MalwareScans/MinerScan.cs | 35 +++++ Moonlight/App/MalwareScans/SelfBotCodeScan.cs | 15 +- Moonlight/App/MalwareScans/SelfBotScan.cs | 15 +- Moonlight/App/Models/Misc/MalwareScan.cs | 2 +- .../MalwareBackgroundScanService.cs | 10 +- Moonlight/App/Services/MalwareScanService.cs | 21 ++- Moonlight/App/Services/ServerService.cs | 10 +- .../Shared/Views/Admin/Security/Malware.razor | 130 +++++++++++++----- Moonlight/Shared/Views/Server/Index.razor | 2 +- 11 files changed, 176 insertions(+), 94 deletions(-) create mode 100644 Moonlight/App/MalwareScans/MinerScan.cs diff --git a/Moonlight/App/MalwareScans/FakePlayerPluginScan.cs b/Moonlight/App/MalwareScans/FakePlayerPluginScan.cs index 926c281f..8c235fe6 100644 --- a/Moonlight/App/MalwareScans/FakePlayerPluginScan.cs +++ b/Moonlight/App/MalwareScans/FakePlayerPluginScan.cs @@ -9,7 +9,7 @@ public class FakePlayerPluginScan : MalwareScan public override string Name => "Fake player plugin scan"; public override string Description => "This scan is a simple fake player plugin scan provided by moonlight"; - public override async Task Scan(Server server, IServiceProvider serviceProvider) + public override async Task Scan(Server server, IServiceProvider serviceProvider) { var serverService = serviceProvider.GetRequiredService(); var access = await serverService.CreateFileAccess(server, null!); @@ -24,19 +24,16 @@ public class FakePlayerPluginScan : MalwareScan { if (fileElement.Name.ToLower().Contains("fakeplayer")) { - return new[] + return new() { - new MalwareScanResult - { - Title = "Fake player plugin", - Description = $"Suspicious plugin file: {fileElement.Name}", - Author = "Marcel Baumgartner" - } + Title = "Fake player plugin", + Description = $"Suspicious plugin file: {fileElement.Name}", + Author = "Marcel Baumgartner" }; } } } - return Array.Empty(); + return null; } } \ No newline at end of file diff --git a/Moonlight/App/MalwareScans/MinerJarScan.cs b/Moonlight/App/MalwareScans/MinerJarScan.cs index ea8ef3b0..a11ccd4c 100644 --- a/Moonlight/App/MalwareScans/MinerJarScan.cs +++ b/Moonlight/App/MalwareScans/MinerJarScan.cs @@ -9,7 +9,7 @@ public class MinerJarScan : MalwareScan public override string Name => "Miner jar scan"; public override string Description => "This scan is a simple miner jar scan provided by moonlight"; - public override async Task Scan(Server server, IServiceProvider serviceProvider) + public override async Task Scan(Server server, IServiceProvider serviceProvider) { var serverService = serviceProvider.GetRequiredService(); var access = await serverService.CreateFileAccess(server, null!); @@ -23,18 +23,15 @@ public class MinerJarScan : MalwareScan if (fileElements.Any(x => x.Name == "jdk" && !x.IsFile)) { - return new[] + return new() { - new MalwareScanResult - { - Title = "Found Miner", - Description = "Detected suspicious library directory which may contain a script for miners", - Author = "Marcel Baumgartner" - } + Title = "Found Miner", + Description = "Detected suspicious library directory which may contain a script for miners", + Author = "Marcel Baumgartner" }; } } - return Array.Empty(); + return null; } } \ No newline at end of file diff --git a/Moonlight/App/MalwareScans/MinerScan.cs b/Moonlight/App/MalwareScans/MinerScan.cs new file mode 100644 index 00000000..fb3e67ef --- /dev/null +++ b/Moonlight/App/MalwareScans/MinerScan.cs @@ -0,0 +1,35 @@ +using Moonlight.App.Database.Entities; +using Moonlight.App.Models.Misc; +using Moonlight.App.Services; + +namespace Moonlight.App.MalwareScans; + +public class MinerScan : MalwareScan +{ + public override string Name => "Miner (NEZHA)"; + public override string Description => "Probably a miner"; + public override async Task Scan(Server server, IServiceProvider serviceProvider) + { + var serverService = serviceProvider.GetRequiredService(); + + var access = await serverService.CreateFileAccess(server, null!); + var files = await access.Ls(); + + foreach (var file in files.Where(x => x.IsFile && x.Name.EndsWith(".sh"))) + { + var content = await access.Read(file); + + if (content.ToLower().Contains("nezha")) + { + return new() + { + Title = "Miner", + Description = "Miner start script (NEZHA)", + Author = "Marcel Baumgartner" + }; + } + } + + return null; + } +} \ No newline at end of file diff --git a/Moonlight/App/MalwareScans/SelfBotCodeScan.cs b/Moonlight/App/MalwareScans/SelfBotCodeScan.cs index 3c0a7701..77b6a6a6 100644 --- a/Moonlight/App/MalwareScans/SelfBotCodeScan.cs +++ b/Moonlight/App/MalwareScans/SelfBotCodeScan.cs @@ -9,7 +9,7 @@ public class SelfBotCodeScan : MalwareScan public override string Name => "Selfbot code scan"; public override string Description => "This scan is a simple selfbot code scan provided by moonlight"; - public override async Task Scan(Server server, IServiceProvider serviceProvider) + public override async Task Scan(Server server, IServiceProvider serviceProvider) { var serverService = serviceProvider.GetRequiredService(); var access = await serverService.CreateFileAccess(server, null!); @@ -21,18 +21,15 @@ public class SelfBotCodeScan : MalwareScan if (rawScript.Contains("https://discord.com/api") && !rawScript.Contains("https://discord.com/api/oauth2") && !rawScript.Contains("https://discord.com/api/webhook") || rawScript.Contains("https://rblxwild.com")) //TODO: Export to plugins, add regex for checking { - return new[] + return new MalwareScanResult { - new MalwareScanResult - { - Title = "Potential selfbot", - Description = $"Suspicious script file: {script.Name}", - Author = "Marcel Baumgartner" - } + Title = "Potential selfbot", + Description = $"Suspicious script file: {script.Name}", + Author = "Marcel Baumgartner" }; } } - return Array.Empty(); + return null; } } \ No newline at end of file diff --git a/Moonlight/App/MalwareScans/SelfBotScan.cs b/Moonlight/App/MalwareScans/SelfBotScan.cs index 963017e0..b015b1ba 100644 --- a/Moonlight/App/MalwareScans/SelfBotScan.cs +++ b/Moonlight/App/MalwareScans/SelfBotScan.cs @@ -9,7 +9,7 @@ public class SelfBotScan : MalwareScan public override string Name => "Selfbot Scan"; public override string Description => "This scan is a simple selfbot scan provided by moonlight"; - public override async Task Scan(Server server, IServiceProvider serviceProvider) + public override async Task Scan(Server server, IServiceProvider serviceProvider) { var serverService = serviceProvider.GetRequiredService(); var access = await serverService.CreateFileAccess(server, null!); @@ -17,17 +17,14 @@ public class SelfBotScan : MalwareScan if (fileElements.Any(x => x.Name == "tokens.txt")) { - return new[] + return new MalwareScanResult { - new MalwareScanResult - { - Title = "Found SelfBot", - Description = "Detected suspicious 'tokens.txt' file which may contain tokens for a selfbot", - Author = "Marcel Baumgartner" - } + Title = "Found SelfBot", + Description = "Detected suspicious 'tokens.txt' file which may contain tokens for a selfbot", + Author = "Marcel Baumgartner" }; } - return Array.Empty(); + return null; } } \ No newline at end of file diff --git a/Moonlight/App/Models/Misc/MalwareScan.cs b/Moonlight/App/Models/Misc/MalwareScan.cs index 9ca18659..9660868c 100644 --- a/Moonlight/App/Models/Misc/MalwareScan.cs +++ b/Moonlight/App/Models/Misc/MalwareScan.cs @@ -6,5 +6,5 @@ public abstract class MalwareScan { public abstract string Name { get; } public abstract string Description { get; } - public abstract Task Scan(Server server, IServiceProvider serviceProvider); + public abstract Task Scan(Server server, IServiceProvider serviceProvider); } \ No newline at end of file diff --git a/Moonlight/App/Services/Background/MalwareBackgroundScanService.cs b/Moonlight/App/Services/Background/MalwareBackgroundScanService.cs index dcf975a5..282fa275 100644 --- a/Moonlight/App/Services/Background/MalwareBackgroundScanService.cs +++ b/Moonlight/App/Services/Background/MalwareBackgroundScanService.cs @@ -15,7 +15,7 @@ public class MalwareBackgroundScanService public bool IsRunning => !ScanTask?.IsCompleted ?? false; public bool ScanAllServers { get; set; } - public readonly Dictionary ScanResults; + public readonly Dictionary ScanResults; public string Status { get; private set; } = "N/A"; private Task? ScanTask; @@ -70,16 +70,16 @@ public class MalwareBackgroundScanService Status = $"[{i} / {servers.Length}] Scanning server {server.Name}"; await Event.Emit("malwareScan.status", IsRunning); - var results = await malwareScanService.Perform(server); + var result = await malwareScanService.Perform(server); - if (results.Any()) + if (result != null) { lock (ScanResults) { - ScanResults.Add(server, results); + ScanResults.Add(server, result); } - await Event.Emit("malwareScan.result"); + await Event.Emit("malwareScan.result", server); } i++; diff --git a/Moonlight/App/Services/MalwareScanService.cs b/Moonlight/App/Services/MalwareScanService.cs index 08dbaabf..3674cdd0 100644 --- a/Moonlight/App/Services/MalwareScanService.cs +++ b/Moonlight/App/Services/MalwareScanService.cs @@ -5,7 +5,7 @@ using Moonlight.App.Services.Plugins; namespace Moonlight.App.Services; -public class MalwareScanService //TODO: Make this moddable using plugins +public class MalwareScanService { private readonly PluginService PluginService; private readonly IServiceScopeFactory ServiceScopeFactory; @@ -16,34 +16,29 @@ public class MalwareScanService //TODO: Make this moddable using plugins ServiceScopeFactory = serviceScopeFactory; } - public async Task Perform(Server server) + public async Task Perform(Server server) { var defaultScans = new List { new SelfBotScan(), new MinerJarScan(), new SelfBotCodeScan(), - new FakePlayerPluginScan() + new FakePlayerPluginScan(), + new MinerScan() }; var scans = await PluginService.BuildMalwareScans(defaultScans.ToArray()); - - var results = new List(); + using var scope = ServiceScopeFactory.CreateScope(); foreach (var scan in scans) { var result = await scan.Scan(server, scope.ServiceProvider); - if (result.Any()) - { - foreach (var scanResult in result) - { - results.Add(scanResult); - } - } + if (result != null) + return result; } - return results.ToArray(); + return null; } } \ No newline at end of file diff --git a/Moonlight/App/Services/ServerService.cs b/Moonlight/App/Services/ServerService.cs index 7e9876d3..9054e01b 100644 --- a/Moonlight/App/Services/ServerService.cs +++ b/Moonlight/App/Services/ServerService.cs @@ -113,19 +113,17 @@ public class ServerService if (ConfigService.Get().Moonlight.Security.MalwareCheckOnStart && signal == PowerSignal.Start || signal == PowerSignal.Restart) { - var results = await new MalwareScanService( + var result = await new MalwareScanService( PluginService, ServiceScopeFactory ).Perform(server); - if (results.Any()) + if (result != null) { - var resultText = string.Join(" ", results.Select(x => x.Title)); - - Logger.Warn($"Found malware on server {server.Uuid}. Results: " + resultText); + Logger.Warn($"Found malware on server {server.Uuid}. Result: " + result.Title); throw new DisplayException( - $"Unable to start server. Found following malware on this server: {resultText}. Please contact the support if you think this detection is a false positive", + $"Unable to start server. Found following malware on this server: {result.Title}. Please contact the support if you think this detection is a false positive", true); } } diff --git a/Moonlight/Shared/Views/Admin/Security/Malware.razor b/Moonlight/Shared/Views/Admin/Security/Malware.razor index bb4a2a6e..d3f682f5 100644 --- a/Moonlight/Shared/Views/Admin/Security/Malware.razor +++ b/Moonlight/Shared/Views/Admin/Security/Malware.razor @@ -4,12 +4,23 @@ @using Moonlight.App.Services.Background @using Moonlight.App.Services @using BlazorTable +@using Microsoft.EntityFrameworkCore +@using Moonlight.App.ApiClients.Wings @using Moonlight.App.Database.Entities @using Moonlight.App.Events +@using Moonlight.App.Helpers @using Moonlight.App.Models.Misc +@using Moonlight.App.Repositories +@using Moonlight.App.Services.Interop +@using Moonlight.App.Services.Sessions @inject MalwareBackgroundScanService MalwareBackgroundScanService @inject SmartTranslateService SmartTranslateService +@inject ServerService ServerService +@inject ToastService ToastService +@inject SessionServerService SessionServerService +@inject Repository ServerRepository +@inject Repository UserRepository @inject EventSystem Event @implements IDisposable @@ -38,7 +49,7 @@ } else { -
+
+ + + }
@@ -65,39 +81,14 @@
- +
- - - + +
@@ -109,7 +100,9 @@ @code { - private readonly Dictionary ScanResults = new(); + private readonly Dictionary ScanResults = new(); + + private Table Table; private LazyLoader LazyLoaderResults; @@ -117,7 +110,15 @@ { await Event.On("malwareScan.status", this, async o => { await InvokeAsync(StateHasChanged); }); - await Event.On("malwareScan.result", this, async o => { await LazyLoaderResults.Reload(); }); + await Event.On("malwareScan.result", this, async server => + { + lock (MalwareBackgroundScanService.ScanResults) + { + ScanResults.Add(server, MalwareBackgroundScanService.ScanResults[server]); + } + + await InvokeAsync(StateHasChanged); + }); } private Task LoadResults(LazyLoader arg) @@ -140,4 +141,69 @@ await Event.Off("malwareScan.status", this); await Event.Off("malwareScan.result", this); } + + private async Task PurgeSelected() + { + int users = 0; + int servers = 0; + + int allServersCount = Table.FilteredItems.Count(); + int position = 0; + + await ToastService.CreateProcessToast("purgeProcess", "Purging"); + + foreach (var item in Table.FilteredItems) + { + position++; + + if (item == null) + continue; + + try + { + var server = ServerRepository.Get() + .Include(x => x.Owner) + .FirstOrDefault(x => x.Id == item.Id); + + if(server == null) + continue; + + await ToastService.UpdateProcessToast("purgeProcess", $"[{position}/{allServersCount}] {server.Name}"); + + ScanResults.Remove(item); + + await InvokeAsync(StateHasChanged); + + // Owner + + server.Owner.Status = UserStatus.Banned; + UserRepository.Update(server.Owner); + users++; + + try + { + await SessionServerService.ReloadUserSessions(server.Owner); + } + catch (Exception) {/* Ignored */} + + // Server itself + + await ServerService.SetPowerState(server, PowerSignal.Kill); + await ServerService.Delete(server); + servers++; + } + catch (Exception e) + { + Logger.Warn($"Error purging server: {item.Uuid}"); + Logger.Warn(e); + + await ToastService.Error( + $"Failed to purge server '{item.Name}': {e.Message}" + ); + } + } + + await ToastService.RemoveProcessToast("purgeProcess"); + await ToastService.Success($"Successfully purged {servers} servers by {users} users"); + } } \ No newline at end of file diff --git a/Moonlight/Shared/Views/Server/Index.razor b/Moonlight/Shared/Views/Server/Index.razor index 39e50af0..61da5850 100644 --- a/Moonlight/Shared/Views/Server/Index.razor +++ b/Moonlight/Shared/Views/Server/Index.razor @@ -190,7 +190,7 @@ .Include(x => x.Variables) .Include(x => x.MainAllocation) .Include(x => x.Owner) - .First(x => x.Uuid == uuid); + .FirstOrDefault(x => x.Uuid == uuid); if (CurrentServer != null) { From 0be4ebc7ffacf38dd83255210e72b369a6f0b95d Mon Sep 17 00:00:00 2001 From: Marcel Baumgartner Date: Mon, 28 Aug 2023 16:20:24 +0200 Subject: [PATCH 05/12] Small fix when starting a new malware scan --- Moonlight/Shared/Views/Admin/Security/Malware.razor | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Moonlight/Shared/Views/Admin/Security/Malware.razor b/Moonlight/Shared/Views/Admin/Security/Malware.razor index d3f682f5..75effd28 100644 --- a/Moonlight/Shared/Views/Admin/Security/Malware.razor +++ b/Moonlight/Shared/Views/Admin/Security/Malware.razor @@ -60,7 +60,7 @@ + OnClick="Scan"> Date: Mon, 28 Aug 2023 16:27:59 +0200 Subject: [PATCH 06/12] Switched to new apex charts version --- Moonlight/Pages/_Layout.cshtml | 5 +++-- Moonlight/wwwroot/assets/js/apexcharts.js | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 Moonlight/wwwroot/assets/js/apexcharts.js diff --git a/Moonlight/Pages/_Layout.cshtml b/Moonlight/Pages/_Layout.cshtml index 968aaf46..a066a1f9 100644 --- a/Moonlight/Pages/_Layout.cshtml +++ b/Moonlight/Pages/_Layout.cshtml @@ -111,6 +111,8 @@ + + @@ -122,8 +124,7 @@ moonlight.loading.registerXterm(); - - + diff --git a/Moonlight/wwwroot/assets/js/apexcharts.js b/Moonlight/wwwroot/assets/js/apexcharts.js new file mode 100644 index 00000000..14d7025e --- /dev/null +++ b/Moonlight/wwwroot/assets/js/apexcharts.js @@ -0,0 +1,14 @@ +/*! + * ApexCharts v3.42.0 + * (c) 2018-2023 ApexCharts + * Released under the MIT License. + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).ApexCharts=e()}(this,(function(){"use strict";function t(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,a)}return i}function e(e){for(var i=1;it.length)&&(e=t.length);for(var i=0,a=new Array(e);i>16,o=i>>8&255,n=255&i;return"#"+(16777216+65536*(Math.round((a-r)*s)+r)+256*(Math.round((a-o)*s)+o)+(Math.round((a-n)*s)+n)).toString(16).slice(1)}},{key:"shadeColor",value:function(e,i){return t.isColorHex(i)?this.shadeHexColor(e,i):this.shadeRGBColor(e,i)}}],[{key:"bind",value:function(t,e){return function(){return t.apply(e,arguments)}}},{key:"isObject",value:function(t){return t&&"object"===i(t)&&!Array.isArray(t)&&null!=t}},{key:"is",value:function(t,e){return Object.prototype.toString.call(e)==="[object "+t+"]"}},{key:"listToArray",value:function(t){var e,i=[];for(e=0;e1&&void 0!==arguments[1]?arguments[1]:2;return parseFloat(t.toPrecision(e))}},{key:"randomId",value:function(){return(Math.random()+1).toString(36).substring(4)}},{key:"noExponents",value:function(t){var e=String(t).split(/[eE]/);if(1===e.length)return e[0];var i="",a=t<0?"-":"",s=e[0].replace(".",""),r=Number(e[1])+1;if(r<0){for(i=a+"0.";r++;)i+="0";return i+s.replace(/^-/,"")}for(r-=s.length;r--;)i+="0";return s+i}},{key:"getDimensions",value:function(t){var e=getComputedStyle(t,null),i=t.clientHeight,a=t.clientWidth;return i-=parseFloat(e.paddingTop)+parseFloat(e.paddingBottom),[a-=parseFloat(e.paddingLeft)+parseFloat(e.paddingRight),i]}},{key:"getBoundingClientRect",value:function(t){var e=t.getBoundingClientRect();return{top:e.top,right:e.right,bottom:e.bottom,left:e.left,width:t.clientWidth,height:t.clientHeight,x:e.left,y:e.top}}},{key:"getLargestStringFromArr",value:function(t){return t.reduce((function(t,e){return Array.isArray(e)&&(e=e.reduce((function(t,e){return t.length>e.length?t:e}))),t.length>e.length?t:e}),0)}},{key:"hexToRgba",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"#999999",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:.6;"#"!==t.substring(0,1)&&(t="#999999");var i=t.replace("#","");i=i.match(new RegExp("(.{"+i.length/3+"})","g"));for(var a=0;a1&&void 0!==arguments[1]?arguments[1]:"x",i=t.toString().slice();return i=i.replace(/[` ~!@#$%^&*()|+\=?;:'",.<>{}[\]\\/]/gi,e)}},{key:"negToZero",value:function(t){return t<0?0:t}},{key:"moveIndexInArray",value:function(t,e,i){if(i>=t.length)for(var a=i-t.length+1;a--;)t.push(void 0);return t.splice(i,0,t.splice(e,1)[0]),t}},{key:"extractNumber",value:function(t){return parseFloat(t.replace(/[^\d.]*/g,""))}},{key:"findAncestor",value:function(t,e){for(;(t=t.parentElement)&&!t.classList.contains(e););return t}},{key:"setELstyles",value:function(t,e){for(var i in e)e.hasOwnProperty(i)&&(t.style.key=e[i])}},{key:"isNumber",value:function(t){return!isNaN(t)&&parseFloat(Number(t))===t&&!isNaN(parseInt(t,10))}},{key:"isFloat",value:function(t){return Number(t)===t&&t%1!=0}},{key:"isSafari",value:function(){return/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}},{key:"isFirefox",value:function(){return navigator.userAgent.toLowerCase().indexOf("firefox")>-1}},{key:"isIE11",value:function(){if(-1!==window.navigator.userAgent.indexOf("MSIE")||window.navigator.appVersion.indexOf("Trident/")>-1)return!0}},{key:"isIE",value:function(){var t=window.navigator.userAgent,e=t.indexOf("MSIE ");if(e>0)return parseInt(t.substring(e+5,t.indexOf(".",e)),10);if(t.indexOf("Trident/")>0){var i=t.indexOf("rv:");return parseInt(t.substring(i+3,t.indexOf(".",i)),10)}var a=t.indexOf("Edge/");return a>0&&parseInt(t.substring(a+5,t.indexOf(".",a)),10)}}]),t}(),b=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.setEasingFunctions()}return r(t,[{key:"setEasingFunctions",value:function(){var t;if(!this.w.globals.easing){switch(this.w.config.chart.animations.easing){case"linear":t="-";break;case"easein":t="<";break;case"easeout":t=">";break;case"easeinout":default:t="<>";break;case"swing":t=function(t){var e=1.70158;return(t-=1)*t*((e+1)*t+e)+1};break;case"bounce":t=function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375};break;case"elastic":t=function(t){return t===!!t?t:Math.pow(2,-10*t)*Math.sin((t-.075)*(2*Math.PI)/.3)+1}}this.w.globals.easing=t}}},{key:"animateLine",value:function(t,e,i,a){t.attr(e).animate(a).attr(i)}},{key:"animateMarker",value:function(t,e,i,a,s,r){e||(e=0),t.attr({r:e,width:e,height:e}).animate(a,s).attr({r:i,width:i.width,height:i.height}).afterAll((function(){r()}))}},{key:"animateCircle",value:function(t,e,i,a,s){t.attr({r:e.r,cx:e.cx,cy:e.cy}).animate(a,s).attr({r:i.r,cx:i.cx,cy:i.cy})}},{key:"animateRect",value:function(t,e,i,a,s){t.attr(e).animate(a).attr(i).afterAll((function(){return s()}))}},{key:"animatePathsGradually",value:function(t){var e=t.el,i=t.realIndex,a=t.j,s=t.fill,r=t.pathFrom,o=t.pathTo,n=t.speed,l=t.delay,h=this.w,c=0;h.config.chart.animations.animateGradually.enabled&&(c=h.config.chart.animations.animateGradually.delay),h.config.chart.animations.dynamicAnimation.enabled&&h.globals.dataChanged&&"bar"!==h.config.chart.type&&(c=0),this.morphSVG(e,i,a,"line"!==h.config.chart.type||h.globals.comboCharts?s:"stroke",r,o,n,l*c)}},{key:"showDelayedElements",value:function(){this.w.globals.delayedElements.forEach((function(t){var e=t.el;e.classList.remove("apexcharts-element-hidden"),e.classList.add("apexcharts-hidden-element-shown")}))}},{key:"animationCompleted",value:function(t){var e=this.w;e.globals.animationEnded||(e.globals.animationEnded=!0,this.showDelayedElements(),"function"==typeof e.config.chart.events.animationEnd&&e.config.chart.events.animationEnd(this.ctx,{el:t,w:e}))}},{key:"morphSVG",value:function(t,e,i,a,s,r,o,n){var l=this,h=this.w;s||(s=t.attr("pathFrom")),r||(r=t.attr("pathTo"));var c=function(t){return"radar"===h.config.chart.type&&(o=1),"M 0 ".concat(h.globals.gridHeight)};(!s||s.indexOf("undefined")>-1||s.indexOf("NaN")>-1)&&(s=c()),(!r||r.indexOf("undefined")>-1||r.indexOf("NaN")>-1)&&(r=c()),h.globals.shouldAnimate||(o=1),t.plot(s).animate(1,h.globals.easing,n).plot(s).animate(o,h.globals.easing,n).plot(r).afterAll((function(){x.isNumber(i)?i===h.globals.series[h.globals.maxValsInArrayIndex].length-2&&h.globals.shouldAnimate&&l.animationCompleted(t):"none"!==a&&h.globals.shouldAnimate&&(!h.globals.comboCharts&&e===h.globals.series.length-1||h.globals.comboCharts)&&l.animationCompleted(t),l.showDelayedElements()}))}}]),t}(),v=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"getDefaultFilter",value:function(t,e){var i=this.w;t.unfilter(!0),(new window.SVG.Filter).size("120%","180%","-5%","-40%"),"none"!==i.config.states.normal.filter?this.applyFilter(t,e,i.config.states.normal.filter.type,i.config.states.normal.filter.value):i.config.chart.dropShadow.enabled&&this.dropShadow(t,i.config.chart.dropShadow,e)}},{key:"addNormalFilter",value:function(t,e){var i=this.w;i.config.chart.dropShadow.enabled&&!t.node.classList.contains("apexcharts-marker")&&this.dropShadow(t,i.config.chart.dropShadow,e)}},{key:"addLightenFilter",value:function(t,e,i){var a=this,s=this.w,r=i.intensity;t.unfilter(!0);new window.SVG.Filter;t.filter((function(t){var i=s.config.chart.dropShadow;(i.enabled?a.addShadow(t,e,i):t).componentTransfer({rgb:{type:"linear",slope:1.5,intercept:r}})})),t.filterer.node.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize(t.filterer.node)}},{key:"addDarkenFilter",value:function(t,e,i){var a=this,s=this.w,r=i.intensity;t.unfilter(!0);new window.SVG.Filter;t.filter((function(t){var i=s.config.chart.dropShadow;(i.enabled?a.addShadow(t,e,i):t).componentTransfer({rgb:{type:"linear",slope:r}})})),t.filterer.node.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize(t.filterer.node)}},{key:"applyFilter",value:function(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:.5;switch(i){case"none":this.addNormalFilter(t,e);break;case"lighten":this.addLightenFilter(t,e,{intensity:a});break;case"darken":this.addDarkenFilter(t,e,{intensity:a})}}},{key:"addShadow",value:function(t,e,i){var a=i.blur,s=i.top,r=i.left,o=i.color,n=i.opacity,l=t.flood(Array.isArray(o)?o[e]:o,n).composite(t.sourceAlpha,"in").offset(r,s).gaussianBlur(a).merge(t.source);return t.blend(t.source,l)}},{key:"dropShadow",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=e.top,s=e.left,r=e.blur,o=e.color,n=e.opacity,l=e.noUserSpaceOnUse,h=this.w;return t.unfilter(!0),x.isIE()&&"radialBar"===h.config.chart.type||(o=Array.isArray(o)?o[i]:o,t.filter((function(t){var e=null;e=x.isSafari()||x.isFirefox()||x.isIE()?t.flood(o,n).composite(t.sourceAlpha,"in").offset(s,a).gaussianBlur(r):t.flood(o,n).composite(t.sourceAlpha,"in").offset(s,a).gaussianBlur(r).merge(t.source),t.blend(t.source,e)})),l||t.filterer.node.setAttribute("filterUnits","userSpaceOnUse"),this._scaleFilterSize(t.filterer.node)),t}},{key:"setSelectionFilter",value:function(t,e,i){var a=this.w;if(void 0!==a.globals.selectedDataPoints[e]&&a.globals.selectedDataPoints[e].indexOf(i)>-1){t.node.setAttribute("selected",!0);var s=a.config.states.active.filter;"none"!==s&&this.applyFilter(t,e,s.type,s.value)}}},{key:"_scaleFilterSize",value:function(t){!function(e){for(var i in e)e.hasOwnProperty(i)&&t.setAttribute(i,e[i])}({width:"200%",height:"200%",x:"-50%",y:"-50%"})}}]),t}(),m=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"roundPathCorners",value:function(t,e){function i(t,e,i){var s=e.x-t.x,r=e.y-t.y,o=Math.sqrt(s*s+r*r);return a(t,e,Math.min(1,i/o))}function a(t,e,i){return{x:t.x+(e.x-t.x)*i,y:t.y+(e.y-t.y)*i}}function s(t,e){t.length>2&&(t[t.length-2]=e.x,t[t.length-1]=e.y)}function r(t){return{x:parseFloat(t[t.length-2]),y:parseFloat(t[t.length-1])}}t.indexOf("NaN")>-1&&(t="");var o=t.split(/[,\s]/).reduce((function(t,e){var i=e.match("([a-zA-Z])(.+)");return i?(t.push(i[1]),t.push(i[2])):t.push(e),t}),[]).reduce((function(t,e){return parseFloat(e)==e&&t.length?t[t.length-1].push(e):t.push([e]),t}),[]),n=[];if(o.length>1){var l=r(o[0]),h=null;"Z"==o[o.length-1][0]&&o[0].length>2&&(h=["L",l.x,l.y],o[o.length-1]=h),n.push(o[0]);for(var c=1;c2&&"L"==g[0]&&u.length>2&&"L"==u[0]){var p,f,x=r(d),b=r(g),v=r(u);p=i(b,x,e),f=i(b,v,e),s(g,p),g.origPoint=b,n.push(g);var m=a(p,b,.5),y=a(b,f,.5),w=["C",m.x,m.y,y.x,y.y,f.x,f.y];w.origPoint=b,n.push(w)}else n.push(g)}if(h){var k=r(n[n.length-1]);n.push(["Z"]),s(n[0],k)}}else n=o;return n.reduce((function(t,e){return t+e.join(" ")+" "}),"")}},{key:"drawLine",value:function(t,e,i,a){var s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"#a8a8a8",r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,n=arguments.length>7&&void 0!==arguments[7]?arguments[7]:"butt";return this.w.globals.dom.Paper.line().attr({x1:t,y1:e,x2:i,y2:a,stroke:s,"stroke-dasharray":r,"stroke-width":o,"stroke-linecap":n})}},{key:"drawRect",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0,r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"#fefefe",o=arguments.length>6&&void 0!==arguments[6]?arguments[6]:1,n=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,l=arguments.length>8&&void 0!==arguments[8]?arguments[8]:null,h=arguments.length>9&&void 0!==arguments[9]?arguments[9]:0,c=this.w.globals.dom.Paper.rect();return c.attr({x:t,y:e,width:i>0?i:0,height:a>0?a:0,rx:s,ry:s,opacity:o,"stroke-width":null!==n?n:0,stroke:null!==l?l:"none","stroke-dasharray":h}),c.node.setAttribute("fill",r),c}},{key:"drawPolygon",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"#e1e1e1",i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"none";return this.w.globals.dom.Paper.polygon(t).attr({fill:a,stroke:e,"stroke-width":i})}},{key:"drawCircle",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;t<0&&(t=0);var i=this.w.globals.dom.Paper.circle(2*t);return null!==e&&i.attr(e),i}},{key:"drawPath",value:function(t){var e=t.d,i=void 0===e?"":e,a=t.stroke,s=void 0===a?"#a8a8a8":a,r=t.strokeWidth,o=void 0===r?1:r,n=t.fill,l=t.fillOpacity,h=void 0===l?1:l,c=t.strokeOpacity,d=void 0===c?1:c,g=t.classes,u=t.strokeLinecap,p=void 0===u?null:u,f=t.strokeDashArray,x=void 0===f?0:f,b=this.w;return null===p&&(p=b.config.stroke.lineCap),(i.indexOf("undefined")>-1||i.indexOf("NaN")>-1)&&(i="M 0 ".concat(b.globals.gridHeight)),b.globals.dom.Paper.path(i).attr({fill:n,"fill-opacity":h,stroke:s,"stroke-opacity":d,"stroke-linecap":p,"stroke-width":o,"stroke-dasharray":x,class:g})}},{key:"group",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w.globals.dom.Paper.group();return null!==t&&e.attr(t),e}},{key:"move",value:function(t,e){var i=["M",t,e].join(" ");return i}},{key:"line",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=null;return null===i?a=[" L",t,e].join(" "):"H"===i?a=[" H",t].join(" "):"V"===i&&(a=[" V",e].join(" ")),a}},{key:"curve",value:function(t,e,i,a,s,r){var o=["C",t,e,i,a,s,r].join(" ");return o}},{key:"quadraticCurve",value:function(t,e,i,a){return["Q",t,e,i,a].join(" ")}},{key:"arc",value:function(t,e,i,a,s,r,o){var n="A";arguments.length>7&&void 0!==arguments[7]&&arguments[7]&&(n="a");var l=[n,t,e,i,a,s,r,o].join(" ");return l}},{key:"renderPaths",value:function(t){var i,a=t.j,s=t.realIndex,r=t.pathFrom,o=t.pathTo,n=t.stroke,l=t.strokeWidth,h=t.strokeLinecap,c=t.fill,d=t.animationDelay,g=t.initialSpeed,u=t.dataChangeSpeed,p=t.className,f=t.shouldClipToGrid,x=void 0===f||f,m=t.bindEventsOnPaths,y=void 0===m||m,w=t.drawShadow,k=void 0===w||w,A=this.w,S=new v(this.ctx),C=new b(this.ctx),L=this.w.config.chart.animations.enabled,P=L&&this.w.config.chart.animations.dynamicAnimation.enabled,I=!!(L&&!A.globals.resized||P&&A.globals.dataChanged&&A.globals.shouldAnimate);I?i=r:(i=o,A.globals.animationEnded=!0);var T=A.config.stroke.dashArray,M=0;M=Array.isArray(T)?T[s]:A.config.stroke.dashArray;var X=this.drawPath({d:i,stroke:n,strokeWidth:l,fill:c,fillOpacity:1,classes:p,strokeLinecap:h,strokeDashArray:M});if(X.attr("index",s),x&&X.attr({"clip-path":"url(#gridRectMask".concat(A.globals.cuid,")")}),"none"!==A.config.states.normal.filter.type)S.getDefaultFilter(X,s);else if(A.config.chart.dropShadow.enabled&&k&&(!A.config.chart.dropShadow.enabledOnSeries||A.config.chart.dropShadow.enabledOnSeries&&-1!==A.config.chart.dropShadow.enabledOnSeries.indexOf(s))){var z=A.config.chart.dropShadow;S.dropShadow(X,z,s)}y&&(X.node.addEventListener("mouseenter",this.pathMouseEnter.bind(this,X)),X.node.addEventListener("mouseleave",this.pathMouseLeave.bind(this,X)),X.node.addEventListener("mousedown",this.pathMouseDown.bind(this,X))),X.attr({pathTo:o,pathFrom:r});var E={el:X,j:a,realIndex:s,pathFrom:r,pathTo:o,fill:c,strokeWidth:l,delay:d};return!L||A.globals.resized||A.globals.dataChanged?!A.globals.resized&&A.globals.dataChanged||C.showDelayedElements():C.animatePathsGradually(e(e({},E),{},{speed:g})),A.globals.dataChanged&&P&&I&&C.animatePathsGradually(e(e({},E),{},{speed:u})),X}},{key:"drawPattern",value:function(t,e,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"#a8a8a8",s=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0;return this.w.globals.dom.Paper.pattern(e,i,(function(r){"horizontalLines"===t?r.line(0,0,i,0).stroke({color:a,width:s+1}):"verticalLines"===t?r.line(0,0,0,e).stroke({color:a,width:s+1}):"slantedLines"===t?r.line(0,0,e,i).stroke({color:a,width:s}):"squares"===t?r.rect(e,i).fill("none").stroke({color:a,width:s}):"circles"===t&&r.circle(e).fill("none").stroke({color:a,width:s})}))}},{key:"drawGradient",value:function(t,e,i,a,s){var r,o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:null,n=arguments.length>6&&void 0!==arguments[6]?arguments[6]:null,l=arguments.length>7&&void 0!==arguments[7]?arguments[7]:null,h=arguments.length>8&&void 0!==arguments[8]?arguments[8]:0,c=this.w;e.length<9&&0===e.indexOf("#")&&(e=x.hexToRgba(e,a)),i.length<9&&0===i.indexOf("#")&&(i=x.hexToRgba(i,s));var d=0,g=1,u=1,p=null;null!==n&&(d=void 0!==n[0]?n[0]/100:0,g=void 0!==n[1]?n[1]/100:1,u=void 0!==n[2]?n[2]/100:1,p=void 0!==n[3]?n[3]/100:null);var f=!("donut"!==c.config.chart.type&&"pie"!==c.config.chart.type&&"polarArea"!==c.config.chart.type&&"bubble"!==c.config.chart.type);if(r=null===l||0===l.length?c.globals.dom.Paper.gradient(f?"radial":"linear",(function(t){t.at(d,e,a),t.at(g,i,s),t.at(u,i,s),null!==p&&t.at(p,e,a)})):c.globals.dom.Paper.gradient(f?"radial":"linear",(function(t){(Array.isArray(l[h])?l[h]:l).forEach((function(e){t.at(e.offset/100,e.color,e.opacity)}))})),f){var b=c.globals.gridWidth/2,v=c.globals.gridHeight/2;"bubble"!==c.config.chart.type?r.attr({gradientUnits:"userSpaceOnUse",cx:b,cy:v,r:o}):r.attr({cx:.5,cy:.5,r:.8,fx:.2,fy:.2})}else"vertical"===t?r.from(0,0).to(0,1):"diagonal"===t?r.from(0,0).to(1,1):"horizontal"===t?r.from(0,1).to(1,1):"diagonal2"===t&&r.from(1,0).to(0,1);return r}},{key:"getTextBasedOnMaxWidth",value:function(t){var e=t.text,i=t.maxWidth,a=t.fontSize,s=t.fontFamily,r=this.getTextRects(e,a,s),o=r.width/e.length,n=Math.floor(i/o);return i-1){var n=i.globals.selectedDataPoints[s].indexOf(r);i.globals.selectedDataPoints[s].splice(n,1)}}else{if(!i.config.states.active.allowMultipleDataPointsSelection&&i.globals.selectedDataPoints.length>0){i.globals.selectedDataPoints=[];var l=i.globals.dom.Paper.select(".apexcharts-series path").members,h=i.globals.dom.Paper.select(".apexcharts-series circle, .apexcharts-series rect").members,c=function(t){Array.prototype.forEach.call(t,(function(t){t.node.setAttribute("selected","false"),a.getDefaultFilter(t,s)}))};c(l),c(h)}t.node.setAttribute("selected","true"),o="true",void 0===i.globals.selectedDataPoints[s]&&(i.globals.selectedDataPoints[s]=[]),i.globals.selectedDataPoints[s].push(r)}if("true"===o){var d=i.config.states.active.filter;if("none"!==d)a.applyFilter(t,s,d.type,d.value);else if("none"!==i.config.states.hover.filter&&!i.globals.isTouchDevice){var g=i.config.states.hover.filter;a.applyFilter(t,s,g.type,g.value)}}else if("none"!==i.config.states.active.filter.type)if("none"===i.config.states.hover.filter.type||i.globals.isTouchDevice)a.getDefaultFilter(t,s);else{g=i.config.states.hover.filter;a.applyFilter(t,s,g.type,g.value)}"function"==typeof i.config.chart.events.dataPointSelection&&i.config.chart.events.dataPointSelection(e,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}),e&&this.ctx.events.fireEvent("dataPointSelection",[e,this.ctx,{selectedDataPoints:i.globals.selectedDataPoints,seriesIndex:s,dataPointIndex:r,w:i}])}},{key:"rotateAroundCenter",value:function(t){var e={};return t&&"function"==typeof t.getBBox&&(e=t.getBBox()),{x:e.x+e.width/2,y:e.y+e.height/2}}},{key:"getTextRects",value:function(t,e,i,a){var s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],r=this.w,o=this.drawText({x:-200,y:-200,text:t,textAnchor:"start",fontSize:e,fontFamily:i,foreColor:"#fff",opacity:0});a&&o.attr("transform",a),r.globals.dom.Paper.add(o);var n=o.bbox();return s||(n=o.node.getBoundingClientRect()),o.remove(),{width:n.width,height:n.height}}},{key:"placeTextWithEllipsis",value:function(t,e,i){if("function"==typeof t.getComputedTextLength&&(t.textContent=e,e.length>0&&t.getComputedTextLength()>=i/1.1)){for(var a=e.length-3;a>0;a-=3)if(t.getSubStringLength(0,a)<=i/1.1)return void(t.textContent=e.substring(0,a)+"...");t.textContent="."}}}],[{key:"setAttrs",value:function(t,e){for(var i in e)e.hasOwnProperty(i)&&t.setAttribute(i,e[i])}}]),t}(),y=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"getStackedSeriesTotals",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=this.w,i=[];if(0===e.globals.series.length)return i;for(var a=0;a0&&void 0!==arguments[0]?arguments[0]:null;return null===t?this.w.config.series.reduce((function(t,e){return t+e}),0):this.w.globals.series[t].reduce((function(t,e){return t+e}),0)}},{key:"isSeriesNull",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;return 0===(null===t?this.w.config.series.filter((function(t){return null!==t})):this.w.config.series[t].data.filter((function(t){return null!==t}))).length}},{key:"seriesHaveSameValues",value:function(t){return this.w.globals.series[t].every((function(t,e,i){return t===i[0]}))}},{key:"getCategoryLabels",value:function(t){var e=this.w,i=t.slice();return e.config.xaxis.convertedCatToNumeric&&(i=t.map((function(t,i){return e.config.xaxis.labels.formatter(t-e.globals.minX+1)}))),i}},{key:"getLargestSeries",value:function(){var t=this.w;t.globals.maxValsInArrayIndex=t.globals.series.map((function(t){return t.length})).indexOf(Math.max.apply(Math,t.globals.series.map((function(t){return t.length}))))}},{key:"getLargestMarkerSize",value:function(){var t=this.w,e=0;return t.globals.markers.size.forEach((function(t){e=Math.max(e,t)})),t.config.markers.discrete&&t.config.markers.discrete.length&&t.config.markers.discrete.forEach((function(t){e=Math.max(e,t.size)})),e>0&&(e+=t.config.markers.hover.sizeOffset+1),t.globals.markers.largestSize=e,e}},{key:"getSeriesTotals",value:function(){var t=this.w;t.globals.seriesTotals=t.globals.series.map((function(t,e){var i=0;if(Array.isArray(t))for(var a=0;at&&i.globals.seriesX[s][o]0&&(e=!0),{comboBarCount:i,comboCharts:e}}},{key:"extendArrayProps",value:function(t,e,i){return e.yaxis&&(e=t.extendYAxis(e,i)),e.annotations&&(e.annotations.yaxis&&(e=t.extendYAxisAnnotations(e)),e.annotations.xaxis&&(e=t.extendXAxisAnnotations(e)),e.annotations.points&&(e=t.extendPointAnnotations(e))),e}}]),t}(),w=function(){function t(e){a(this,t),this.w=e.w,this.annoCtx=e}return r(t,[{key:"setOrientations",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.w;if("vertical"===t.label.orientation){var a=null!==e?e:0,s=i.globals.dom.baseEl.querySelector(".apexcharts-xaxis-annotations .apexcharts-xaxis-annotation-label[rel='".concat(a,"']"));if(null!==s){var r=s.getBoundingClientRect();s.setAttribute("x",parseFloat(s.getAttribute("x"))-r.height+4),"top"===t.label.position?s.setAttribute("y",parseFloat(s.getAttribute("y"))+r.width):s.setAttribute("y",parseFloat(s.getAttribute("y"))-r.width);var o=this.annoCtx.graphics.rotateAroundCenter(s),n=o.x,l=o.y;s.setAttribute("transform","rotate(-90 ".concat(n," ").concat(l,")"))}}}},{key:"addBackgroundToAnno",value:function(t,e){var i=this.w;if(!t||void 0===e.label.text||void 0!==e.label.text&&!String(e.label.text).trim())return null;var a=i.globals.dom.baseEl.querySelector(".apexcharts-grid").getBoundingClientRect(),s=t.getBoundingClientRect(),r=e.label.style.padding.left,o=e.label.style.padding.right,n=e.label.style.padding.top,l=e.label.style.padding.bottom;"vertical"===e.label.orientation&&(n=e.label.style.padding.left,l=e.label.style.padding.right,r=e.label.style.padding.top,o=e.label.style.padding.bottom);var h=s.left-a.left-r,c=s.top-a.top-n,d=this.annoCtx.graphics.drawRect(h-i.globals.barPadForNumericAxis,c,s.width+r+o,s.height+n+l,e.label.borderRadius,e.label.style.background,1,e.label.borderWidth,e.label.borderColor,0);return e.id&&d.node.classList.add(e.id),d}},{key:"annotationsBackground",value:function(){var t=this,e=this.w,i=function(i,a,s){var r=e.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations .apexcharts-").concat(s,"-annotation-label[rel='").concat(a,"']"));if(r){var o=r.parentNode,n=t.addBackgroundToAnno(r,i);n&&(o.insertBefore(n.node,r),i.label.mouseEnter&&n.node.addEventListener("mouseenter",i.label.mouseEnter.bind(t,i)),i.label.mouseLeave&&n.node.addEventListener("mouseleave",i.label.mouseLeave.bind(t,i)),i.label.click&&n.node.addEventListener("click",i.label.click.bind(t,i)))}};e.config.annotations.xaxis.map((function(t,e){i(t,e,"xaxis")})),e.config.annotations.yaxis.map((function(t,e){i(t,e,"yaxis")})),e.config.annotations.points.map((function(t,e){i(t,e,"point")}))}},{key:"getY1Y2",value:function(t,e){var i,a="y1"===t?e.y:e.y2,s=this.w;if(this.annoCtx.invertAxis){var r=s.globals.labels.indexOf(a);s.config.xaxis.convertedCatToNumeric&&(r=s.globals.categoryLabels.indexOf(a));var o=s.globals.dom.baseEl.querySelector(".apexcharts-yaxis-texts-g text:nth-child("+(r+1)+")");o&&(i=parseFloat(o.getAttribute("y")))}else{var n;if(s.config.yaxis[e.yAxisIndex].logarithmic)n=(a=new y(this.annoCtx.ctx).getLogVal(a,e.yAxisIndex))/s.globals.yLogRatio[e.yAxisIndex];else n=(a-s.globals.minYArr[e.yAxisIndex])/(s.globals.yRange[e.yAxisIndex]/s.globals.gridHeight);i=s.globals.gridHeight-n,!e.marker||void 0!==e.y&&null!==e.y||(i=0),s.config.yaxis[e.yAxisIndex]&&s.config.yaxis[e.yAxisIndex].reversed&&(i=n)}return"string"==typeof a&&a.indexOf("px")>-1&&(i=parseFloat(a)),i}},{key:"getX1X2",value:function(t,e){var i=this.w,a=this.annoCtx.invertAxis?i.globals.minY:i.globals.minX,s=this.annoCtx.invertAxis?i.globals.maxY:i.globals.maxX,r=this.annoCtx.invertAxis?i.globals.yRange[0]:i.globals.xRange,o=(e.x-a)/(r/i.globals.gridWidth);this.annoCtx.inversedReversedAxis&&(o=(s-e.x)/(r/i.globals.gridWidth)),"category"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric||this.annoCtx.invertAxis||i.globals.dataFormatXNumeric||(o=this.getStringX(e.x));var n=(e.x2-a)/(r/i.globals.gridWidth);return this.annoCtx.inversedReversedAxis&&(n=(s-e.x2)/(r/i.globals.gridWidth)),"category"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric||this.annoCtx.invertAxis||i.globals.dataFormatXNumeric||(n=this.getStringX(e.x2)),void 0!==e.x&&null!==e.x||!e.marker||(o=i.globals.gridWidth),"x1"===t&&"string"==typeof e.x&&e.x.indexOf("px")>-1&&(o=parseFloat(e.x)),"x2"===t&&"string"==typeof e.x2&&e.x2.indexOf("px")>-1&&(n=parseFloat(e.x2)),"x1"===t?o:n}},{key:"getStringX",value:function(t){var e=this.w,i=t;e.config.xaxis.convertedCatToNumeric&&e.globals.categoryLabels.length&&(t=e.globals.categoryLabels.indexOf(t)+1);var a=e.globals.labels.indexOf(t),s=e.globals.dom.baseEl.querySelector(".apexcharts-xaxis-texts-g text:nth-child("+(a+1)+")");return s&&(i=parseFloat(s.getAttribute("x"))),i}}]),t}(),k=function(){function t(e){a(this,t),this.w=e.w,this.annoCtx=e,this.invertAxis=this.annoCtx.invertAxis,this.helpers=new w(this.annoCtx)}return r(t,[{key:"addXaxisAnnotation",value:function(t,e,i){var a,s=this.w,r=this.helpers.getX1X2("x1",t),o=t.label.text,n=t.strokeDashArray;if(x.isNumber(r)){if(null===t.x2||void 0===t.x2){var l=this.annoCtx.graphics.drawLine(r+t.offsetX,0+t.offsetY,r+t.offsetX,s.globals.gridHeight+t.offsetY,t.borderColor,n,t.borderWidth);e.appendChild(l.node),t.id&&l.node.classList.add(t.id)}else{if((a=this.helpers.getX1X2("x2",t))o){var h=o;o=a,a=h}var c=this.annoCtx.graphics.drawRect(0+t.offsetX,a+t.offsetY,this._getYAxisAnnotationWidth(t),o-a,0,t.fillColor,t.opacity,1,t.borderColor,r);c.node.classList.add("apexcharts-annotation-rect"),c.attr("clip-path","url(#gridRectMask".concat(s.globals.cuid,")")),e.appendChild(c.node),t.id&&c.node.classList.add(t.id)}var d="right"===t.label.position?s.globals.gridWidth:"center"===t.label.position?s.globals.gridWidth/2:0,g=this.annoCtx.graphics.drawText({x:d+t.label.offsetX,y:(null!=a?a:o)+t.label.offsetY-3,text:n,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,fontWeight:t.label.style.fontWeight,foreColor:t.label.style.color,cssClass:"apexcharts-yaxis-annotation-label ".concat(t.label.style.cssClass," ").concat(t.id?t.id:"")});g.attr({rel:i}),e.appendChild(g.node)}},{key:"_getYAxisAnnotationWidth",value:function(t){var e=this.w;e.globals.gridWidth;return(t.width.indexOf("%")>-1?e.globals.gridWidth*parseInt(t.width,10)/100:parseInt(t.width,10))+t.offsetX}},{key:"drawYAxisAnnotations",value:function(){var t=this,e=this.w,i=this.annoCtx.graphics.group({class:"apexcharts-yaxis-annotations"});return e.config.annotations.yaxis.map((function(e,a){t.addYaxisAnnotation(e,i.node,a)})),i}}]),t}(),S=function(){function t(e){a(this,t),this.w=e.w,this.annoCtx=e,this.helpers=new w(this.annoCtx)}return r(t,[{key:"addPointAnnotation",value:function(t,e,i){this.w;var a=this.helpers.getX1X2("x1",t),s=this.helpers.getY1Y2("y1",t);if(x.isNumber(a)){var r={pSize:t.marker.size,pointStrokeWidth:t.marker.strokeWidth,pointFillColor:t.marker.fillColor,pointStrokeColor:t.marker.strokeColor,shape:t.marker.shape,pRadius:t.marker.radius,class:"apexcharts-point-annotation-marker ".concat(t.marker.cssClass," ").concat(t.id?t.id:"")},o=this.annoCtx.graphics.drawMarker(a+t.marker.offsetX,s+t.marker.offsetY,r);e.appendChild(o.node);var n=t.label.text?t.label.text:"",l=this.annoCtx.graphics.drawText({x:a+t.label.offsetX,y:s+t.label.offsetY-t.marker.size-parseFloat(t.label.style.fontSize)/1.6,text:n,textAnchor:t.label.textAnchor,fontSize:t.label.style.fontSize,fontFamily:t.label.style.fontFamily,fontWeight:t.label.style.fontWeight,foreColor:t.label.style.color,cssClass:"apexcharts-point-annotation-label ".concat(t.label.style.cssClass," ").concat(t.id?t.id:"")});if(l.attr({rel:i}),e.appendChild(l.node),t.customSVG.SVG){var h=this.annoCtx.graphics.group({class:"apexcharts-point-annotations-custom-svg "+t.customSVG.cssClass});h.attr({transform:"translate(".concat(a+t.customSVG.offsetX,", ").concat(s+t.customSVG.offsetY,")")}),h.node.innerHTML=t.customSVG.SVG,e.appendChild(h.node)}if(t.image.path){var c=t.image.width?t.image.width:20,d=t.image.height?t.image.height:20;o=this.annoCtx.addImage({x:a+t.image.offsetX-c/2,y:s+t.image.offsetY-d/2,width:c,height:d,path:t.image.path,appendTo:".apexcharts-point-annotations"})}t.mouseEnter&&o.node.addEventListener("mouseenter",t.mouseEnter.bind(this,t)),t.mouseLeave&&o.node.addEventListener("mouseleave",t.mouseLeave.bind(this,t)),t.click&&o.node.addEventListener("click",t.click.bind(this,t))}}},{key:"drawPointAnnotations",value:function(){var t=this,e=this.w,i=this.annoCtx.graphics.group({class:"apexcharts-point-annotations"});return e.config.annotations.points.map((function(e,a){t.addPointAnnotation(e,i.node,a)})),i}}]),t}();var C={name:"en",options:{months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],toolbar:{exportToSVG:"Download SVG",exportToPNG:"Download PNG",exportToCSV:"Download CSV",menu:"Menu",selection:"Selection",selectionZoom:"Selection Zoom",zoomIn:"Zoom In",zoomOut:"Zoom Out",pan:"Panning",reset:"Reset Zoom"}}},L=function(){function t(){a(this,t),this.yAxis={show:!0,showAlways:!1,showForNullSeries:!0,seriesName:void 0,opposite:!1,reversed:!1,logarithmic:!1,logBase:10,tickAmount:void 0,forceNiceScale:!1,max:void 0,min:void 0,floating:!1,decimalsInFloat:void 0,labels:{show:!0,minWidth:0,maxWidth:160,offsetX:0,offsetY:0,align:void 0,rotate:0,padding:20,style:{colors:[],fontSize:"11px",fontWeight:400,fontFamily:void 0,cssClass:""},formatter:void 0},axisBorder:{show:!1,color:"#e0e0e0",width:1,offsetX:0,offsetY:0},axisTicks:{show:!1,color:"#e0e0e0",width:6,offsetX:0,offsetY:0},title:{text:void 0,rotate:-90,offsetY:0,offsetX:0,style:{color:void 0,fontSize:"11px",fontWeight:900,fontFamily:void 0,cssClass:""}},tooltip:{enabled:!1,offsetX:0},crosshairs:{show:!0,position:"front",stroke:{color:"#b6b6b6",width:1,dashArray:0}}},this.pointAnnotation={id:void 0,x:0,y:null,yAxisIndex:0,seriesIndex:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,marker:{size:4,fillColor:"#fff",strokeWidth:2,strokeColor:"#333",shape:"circle",offsetX:0,offsetY:0,radius:2,cssClass:""},label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"middle",offsetX:0,offsetY:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}},customSVG:{SVG:void 0,cssClass:void 0,offsetX:0,offsetY:0},image:{path:void 0,width:20,height:20,offsetX:0,offsetY:0}},this.yAxisAnnotation={id:void 0,y:0,y2:null,strokeDashArray:1,fillColor:"#c2c2c2",borderColor:"#c2c2c2",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,width:"100%",yAxisIndex:0,label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"end",position:"right",offsetX:0,offsetY:-3,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}}},this.xAxisAnnotation={id:void 0,x:0,x2:null,strokeDashArray:1,fillColor:"#c2c2c2",borderColor:"#c2c2c2",borderWidth:1,opacity:.3,offsetX:0,offsetY:0,label:{borderColor:"#c2c2c2",borderWidth:1,borderRadius:2,text:void 0,textAnchor:"middle",orientation:"vertical",position:"top",offsetX:0,offsetY:0,mouseEnter:void 0,mouseLeave:void 0,click:void 0,style:{background:"#fff",color:void 0,fontSize:"11px",fontFamily:void 0,fontWeight:400,cssClass:"",padding:{left:5,right:5,top:2,bottom:2}}}},this.text={x:0,y:0,text:"",textAnchor:"start",foreColor:void 0,fontSize:"13px",fontFamily:void 0,fontWeight:400,appendTo:".apexcharts-annotations",backgroundColor:"transparent",borderColor:"#c2c2c2",borderRadius:0,borderWidth:0,paddingLeft:4,paddingRight:4,paddingTop:2,paddingBottom:2}}return r(t,[{key:"init",value:function(){return{annotations:{yaxis:[this.yAxisAnnotation],xaxis:[this.xAxisAnnotation],points:[this.pointAnnotation],texts:[],images:[],shapes:[]},chart:{animations:{enabled:!0,easing:"easeinout",speed:800,animateGradually:{delay:150,enabled:!0},dynamicAnimation:{enabled:!0,speed:350}},background:"transparent",locales:[C],defaultLocale:"en",dropShadow:{enabled:!1,enabledOnSeries:void 0,top:2,left:2,blur:4,color:"#000",opacity:.35},events:{animationEnd:void 0,beforeMount:void 0,mounted:void 0,updated:void 0,click:void 0,mouseMove:void 0,mouseLeave:void 0,xAxisLabelClick:void 0,legendClick:void 0,markerClick:void 0,selection:void 0,dataPointSelection:void 0,dataPointMouseEnter:void 0,dataPointMouseLeave:void 0,beforeZoom:void 0,beforeResetZoom:void 0,zoomed:void 0,scrolled:void 0,brushScrolled:void 0},foreColor:"#373d3f",fontFamily:"Helvetica, Arial, sans-serif",height:"auto",parentHeightOffset:15,redrawOnParentResize:!0,redrawOnWindowResize:!0,id:void 0,group:void 0,offsetX:0,offsetY:0,selection:{enabled:!1,type:"x",fill:{color:"#24292e",opacity:.1},stroke:{width:1,color:"#24292e",opacity:.4,dashArray:3},xaxis:{min:void 0,max:void 0},yaxis:{min:void 0,max:void 0}},sparkline:{enabled:!1},brush:{enabled:!1,autoScaleYaxis:!0,target:void 0,targets:void 0},stacked:!1,stackType:"normal",toolbar:{show:!0,offsetX:0,offsetY:0,tools:{download:!0,selection:!0,zoom:!0,zoomin:!0,zoomout:!0,pan:!0,reset:!0,customIcons:[]},export:{csv:{filename:void 0,columnDelimiter:",",headerCategory:"category",headerValue:"value",dateFormatter:function(t){return new Date(t).toDateString()}},png:{filename:void 0},svg:{filename:void 0}},autoSelected:"zoom"},type:"line",width:"100%",zoom:{enabled:!0,type:"x",autoScaleYaxis:!1,zoomedArea:{fill:{color:"#90CAF9",opacity:.4},stroke:{color:"#0D47A1",opacity:.4,width:1}}}},plotOptions:{area:{fillTo:"origin"},bar:{horizontal:!1,columnWidth:"70%",barHeight:"70%",distributed:!1,borderRadius:0,borderRadiusApplication:"around",borderRadiusWhenStacked:"last",rangeBarOverlap:!0,rangeBarGroupRows:!1,hideZeroBarsWhenGrouped:!1,isDumbbell:!1,dumbbellColors:void 0,isFunnel:!1,isFunnel3d:!0,colors:{ranges:[],backgroundBarColors:[],backgroundBarOpacity:1,backgroundBarRadius:0},dataLabels:{position:"top",maxItems:100,hideOverflowingLabels:!0,orientation:"horizontal",total:{enabled:!1,formatter:void 0,offsetX:0,offsetY:0,style:{color:"#373d3f",fontSize:"12px",fontFamily:void 0,fontWeight:600}}}},bubble:{zScaling:!0,minBubbleRadius:void 0,maxBubbleRadius:void 0},candlestick:{colors:{upward:"#00B746",downward:"#EF403C"},wick:{useFillColor:!0}},boxPlot:{colors:{upper:"#00E396",lower:"#008FFB"}},heatmap:{radius:2,enableShades:!0,shadeIntensity:.5,reverseNegativeShade:!1,distributed:!1,useFillColorAsStroke:!1,colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},treemap:{enableShades:!0,shadeIntensity:.5,distributed:!1,reverseNegativeShade:!1,useFillColorAsStroke:!1,dataLabels:{format:"scale"},colorScale:{inverse:!1,ranges:[],min:void 0,max:void 0}},radialBar:{inverseOrder:!1,startAngle:0,endAngle:360,offsetX:0,offsetY:0,hollow:{margin:5,size:"50%",background:"transparent",image:void 0,imageWidth:150,imageHeight:150,imageOffsetX:0,imageOffsetY:0,imageClipped:!0,position:"front",dropShadow:{enabled:!1,top:0,left:0,blur:3,color:"#000",opacity:.5}},track:{show:!0,startAngle:void 0,endAngle:void 0,background:"#f2f2f2",strokeWidth:"97%",opacity:1,margin:5,dropShadow:{enabled:!1,top:0,left:0,blur:3,color:"#000",opacity:.5}},dataLabels:{show:!0,name:{show:!0,fontSize:"16px",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:0,formatter:function(t){return t}},value:{show:!0,fontSize:"14px",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:16,formatter:function(t){return t+"%"}},total:{show:!1,label:"Total",fontSize:"16px",fontWeight:600,fontFamily:void 0,color:void 0,formatter:function(t){return t.globals.seriesTotals.reduce((function(t,e){return t+e}),0)/t.globals.series.length+"%"}}}},pie:{customScale:1,offsetX:0,offsetY:0,startAngle:0,endAngle:360,expandOnClick:!0,dataLabels:{offset:0,minAngleToShowLabel:10},donut:{size:"65%",background:"transparent",labels:{show:!1,name:{show:!0,fontSize:"16px",fontFamily:void 0,fontWeight:600,color:void 0,offsetY:-10,formatter:function(t){return t}},value:{show:!0,fontSize:"20px",fontFamily:void 0,fontWeight:400,color:void 0,offsetY:10,formatter:function(t){return t}},total:{show:!1,showAlways:!1,label:"Total",fontSize:"16px",fontWeight:400,fontFamily:void 0,color:void 0,formatter:function(t){return t.globals.seriesTotals.reduce((function(t,e){return t+e}),0)}}}}},polarArea:{rings:{strokeWidth:1,strokeColor:"#e8e8e8"},spokes:{strokeWidth:1,connectorColors:"#e8e8e8"}},radar:{size:void 0,offsetX:0,offsetY:0,polygons:{strokeWidth:1,strokeColors:"#e8e8e8",connectorColors:"#e8e8e8",fill:{colors:void 0}}}},colors:void 0,dataLabels:{enabled:!0,enabledOnSeries:void 0,formatter:function(t){return null!==t?t:""},textAnchor:"middle",distributed:!1,offsetX:0,offsetY:0,style:{fontSize:"12px",fontFamily:void 0,fontWeight:600,colors:void 0},background:{enabled:!0,foreColor:"#fff",borderRadius:2,padding:4,opacity:.9,borderWidth:1,borderColor:"#fff",dropShadow:{enabled:!1,top:1,left:1,blur:1,color:"#000",opacity:.45}},dropShadow:{enabled:!1,top:1,left:1,blur:1,color:"#000",opacity:.45}},fill:{type:"solid",colors:void 0,opacity:.85,gradient:{shade:"dark",type:"horizontal",shadeIntensity:.5,gradientToColors:void 0,inverseColors:!0,opacityFrom:1,opacityTo:1,stops:[0,50,100],colorStops:[]},image:{src:[],width:void 0,height:void 0},pattern:{style:"squares",width:6,height:6,strokeWidth:2}},forecastDataPoints:{count:0,fillOpacity:.5,strokeWidth:void 0,dashArray:4},grid:{show:!0,borderColor:"#e0e0e0",strokeDashArray:0,position:"back",xaxis:{lines:{show:!1}},yaxis:{lines:{show:!0}},row:{colors:void 0,opacity:.5},column:{colors:void 0,opacity:.5},padding:{top:0,right:10,bottom:0,left:12}},labels:[],legend:{show:!0,showForSingleSeries:!1,showForNullSeries:!0,showForZeroSeries:!0,floating:!1,position:"bottom",horizontalAlign:"center",inverseOrder:!1,fontSize:"12px",fontFamily:void 0,fontWeight:400,width:void 0,height:void 0,formatter:void 0,tooltipHoverFormatter:void 0,offsetX:-20,offsetY:4,customLegendItems:[],labels:{colors:void 0,useSeriesColors:!1},markers:{width:12,height:12,strokeWidth:0,fillColors:void 0,strokeColor:"#fff",radius:12,customHTML:void 0,offsetX:0,offsetY:0,onClick:void 0},itemMargin:{horizontal:5,vertical:2},onItemClick:{toggleDataSeries:!0},onItemHover:{highlightDataSeries:!0}},markers:{discrete:[],size:0,colors:void 0,strokeColors:"#fff",strokeWidth:2,strokeOpacity:.9,strokeDashArray:0,fillOpacity:1,shape:"circle",width:8,height:8,radius:2,offsetX:0,offsetY:0,onClick:void 0,onDblClick:void 0,showNullDataPoints:!0,hover:{size:void 0,sizeOffset:3}},noData:{text:void 0,align:"center",verticalAlign:"middle",offsetX:0,offsetY:0,style:{color:void 0,fontSize:"14px",fontFamily:void 0}},responsive:[],series:void 0,states:{normal:{filter:{type:"none",value:0}},hover:{filter:{type:"lighten",value:.1}},active:{allowMultipleDataPointsSelection:!1,filter:{type:"darken",value:.5}}},title:{text:void 0,align:"left",margin:5,offsetX:0,offsetY:0,floating:!1,style:{fontSize:"14px",fontWeight:900,fontFamily:void 0,color:void 0}},subtitle:{text:void 0,align:"left",margin:5,offsetX:0,offsetY:30,floating:!1,style:{fontSize:"12px",fontWeight:400,fontFamily:void 0,color:void 0}},stroke:{show:!0,curve:"smooth",lineCap:"butt",width:2,colors:void 0,dashArray:0,fill:{type:"solid",colors:void 0,opacity:.85,gradient:{shade:"dark",type:"horizontal",shadeIntensity:.5,gradientToColors:void 0,inverseColors:!0,opacityFrom:1,opacityTo:1,stops:[0,50,100],colorStops:[]}}},tooltip:{enabled:!0,enabledOnSeries:void 0,shared:!0,followCursor:!1,intersect:!1,inverseOrder:!1,custom:void 0,fillSeriesColor:!1,theme:"light",cssClass:"",style:{fontSize:"12px",fontFamily:void 0},onDatasetHover:{highlightDataSeries:!1},x:{show:!0,format:"dd MMM",formatter:void 0},y:{formatter:void 0,title:{formatter:function(t){return t?t+": ":""}}},z:{formatter:void 0,title:"Size: "},marker:{show:!0,fillColors:void 0},items:{display:"flex"},fixed:{enabled:!1,position:"topRight",offsetX:0,offsetY:0}},xaxis:{type:"category",categories:[],convertedCatToNumeric:!1,offsetX:0,offsetY:0,overwriteCategories:void 0,labels:{show:!0,rotate:-45,rotateAlways:!1,hideOverlappingLabels:!0,trim:!1,minHeight:void 0,maxHeight:120,showDuplicates:!0,style:{colors:[],fontSize:"12px",fontWeight:400,fontFamily:void 0,cssClass:""},offsetX:0,offsetY:0,format:void 0,formatter:void 0,datetimeUTC:!0,datetimeFormatter:{year:"yyyy",month:"MMM 'yy",day:"dd MMM",hour:"HH:mm",minute:"HH:mm:ss",second:"HH:mm:ss"}},group:{groups:[],style:{colors:[],fontSize:"12px",fontWeight:400,fontFamily:void 0,cssClass:""}},axisBorder:{show:!0,color:"#e0e0e0",width:"100%",height:1,offsetX:0,offsetY:0},axisTicks:{show:!0,color:"#e0e0e0",height:6,offsetX:0,offsetY:0},tickAmount:void 0,tickPlacement:"on",min:void 0,max:void 0,range:void 0,floating:!1,decimalsInFloat:void 0,position:"bottom",title:{text:void 0,offsetX:0,offsetY:0,style:{color:void 0,fontSize:"12px",fontWeight:900,fontFamily:void 0,cssClass:""}},crosshairs:{show:!0,width:1,position:"back",opacity:.9,stroke:{color:"#b6b6b6",width:1,dashArray:3},fill:{type:"solid",color:"#B1B9C4",gradient:{colorFrom:"#D8E3F0",colorTo:"#BED1E6",stops:[0,100],opacityFrom:.4,opacityTo:.5}},dropShadow:{enabled:!1,left:0,top:0,blur:1,opacity:.4}},tooltip:{enabled:!0,offsetY:0,formatter:void 0,style:{fontSize:"12px",fontFamily:void 0}}},yaxis:this.yAxis,theme:{mode:"light",palette:"palette1",monochrome:{enabled:!1,color:"#008FFB",shadeTo:"light",shadeIntensity:.65}}}}}]),t}(),P=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.graphics=new m(this.ctx),this.w.globals.isBarHorizontal&&(this.invertAxis=!0),this.helpers=new w(this),this.xAxisAnnotations=new k(this),this.yAxisAnnotations=new A(this),this.pointsAnnotations=new S(this),this.w.globals.isBarHorizontal&&this.w.config.yaxis[0].reversed&&(this.inversedReversedAxis=!0),this.xDivision=this.w.globals.gridWidth/this.w.globals.dataPoints}return r(t,[{key:"drawAxesAnnotations",value:function(){var t=this.w;if(t.globals.axisCharts){for(var e=this.yAxisAnnotations.drawYAxisAnnotations(),i=this.xAxisAnnotations.drawXAxisAnnotations(),a=this.pointsAnnotations.drawPointAnnotations(),s=t.config.chart.animations.enabled,r=[e,i,a],o=[i.node,e.node,a.node],n=0;n<3;n++)t.globals.dom.elGraphical.add(r[n]),!s||t.globals.resized||t.globals.dataChanged||"scatter"!==t.config.chart.type&&"bubble"!==t.config.chart.type&&t.globals.dataPoints>1&&o[n].classList.add("apexcharts-element-hidden"),t.globals.delayedElements.push({el:o[n],index:0});this.helpers.annotationsBackground()}}},{key:"drawImageAnnos",value:function(){var t=this;this.w.config.annotations.images.map((function(e,i){t.addImage(e,i)}))}},{key:"drawTextAnnos",value:function(){var t=this;this.w.config.annotations.texts.map((function(e,i){t.addText(e,i)}))}},{key:"addXaxisAnnotation",value:function(t,e,i){this.xAxisAnnotations.addXaxisAnnotation(t,e,i)}},{key:"addYaxisAnnotation",value:function(t,e,i){this.yAxisAnnotations.addYaxisAnnotation(t,e,i)}},{key:"addPointAnnotation",value:function(t,e,i){this.pointsAnnotations.addPointAnnotation(t,e,i)}},{key:"addText",value:function(t,e){var i=t.x,a=t.y,s=t.text,r=t.textAnchor,o=t.foreColor,n=t.fontSize,l=t.fontFamily,h=t.fontWeight,c=t.cssClass,d=t.backgroundColor,g=t.borderWidth,u=t.strokeDashArray,p=t.borderRadius,f=t.borderColor,x=t.appendTo,b=void 0===x?".apexcharts-annotations":x,v=t.paddingLeft,m=void 0===v?4:v,y=t.paddingRight,w=void 0===y?4:y,k=t.paddingBottom,A=void 0===k?2:k,S=t.paddingTop,C=void 0===S?2:S,L=this.w,P=this.graphics.drawText({x:i,y:a,text:s,textAnchor:r||"start",fontSize:n||"12px",fontWeight:h||"regular",fontFamily:l||L.config.chart.fontFamily,foreColor:o||L.config.chart.foreColor,cssClass:c}),I=L.globals.dom.baseEl.querySelector(b);I&&I.appendChild(P.node);var T=P.bbox();if(s){var M=this.graphics.drawRect(T.x-m,T.y-C,T.width+m+w,T.height+A+C,p,d||"transparent",1,g,f,u);I.insertBefore(M.node,P.node)}}},{key:"addImage",value:function(t,e){var i=this.w,a=t.path,s=t.x,r=void 0===s?0:s,o=t.y,n=void 0===o?0:o,l=t.width,h=void 0===l?20:l,c=t.height,d=void 0===c?20:c,g=t.appendTo,u=void 0===g?".apexcharts-annotations":g,p=i.globals.dom.Paper.image(a);p.size(h,d).move(r,n);var f=i.globals.dom.baseEl.querySelector(u);return f&&f.appendChild(p.node),p}},{key:"addXaxisAnnotationExternal",value:function(t,e,i){return this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:"xaxis",contextMethod:i.addXaxisAnnotation}),i}},{key:"addYaxisAnnotationExternal",value:function(t,e,i){return this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:"yaxis",contextMethod:i.addYaxisAnnotation}),i}},{key:"addPointAnnotationExternal",value:function(t,e,i){return void 0===this.invertAxis&&(this.invertAxis=i.w.globals.isBarHorizontal),this.addAnnotationExternal({params:t,pushToMemory:e,context:i,type:"point",contextMethod:i.addPointAnnotation}),i}},{key:"addAnnotationExternal",value:function(t){var e=t.params,i=t.pushToMemory,a=t.context,s=t.type,r=t.contextMethod,o=a,n=o.w,l=n.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations")),h=l.childNodes.length+1,c=new L,d=Object.assign({},"xaxis"===s?c.xAxisAnnotation:"yaxis"===s?c.yAxisAnnotation:c.pointAnnotation),g=x.extend(d,e);switch(s){case"xaxis":this.addXaxisAnnotation(g,l,h);break;case"yaxis":this.addYaxisAnnotation(g,l,h);break;case"point":this.addPointAnnotation(g,l,h)}var u=n.globals.dom.baseEl.querySelector(".apexcharts-".concat(s,"-annotations .apexcharts-").concat(s,"-annotation-label[rel='").concat(h,"']")),p=this.helpers.addBackgroundToAnno(u,g);return p&&l.insertBefore(p.node,u),i&&n.globals.memory.methodsToExec.push({context:o,id:g.id?g.id:x.randomId(),method:r,label:"addAnnotation",params:e}),a}},{key:"clearAnnotations",value:function(t){var e=t.w,i=e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis-annotations, .apexcharts-xaxis-annotations, .apexcharts-point-annotations");e.globals.memory.methodsToExec.map((function(t,i){"addText"!==t.label&&"addAnnotation"!==t.label||e.globals.memory.methodsToExec.splice(i,1)})),i=x.listToArray(i),Array.prototype.forEach.call(i,(function(t){for(;t.firstChild;)t.removeChild(t.firstChild)}))}},{key:"removeAnnotation",value:function(t,e){var i=t.w,a=i.globals.dom.baseEl.querySelectorAll(".".concat(e));a&&(i.globals.memory.methodsToExec.map((function(t,a){t.id===e&&i.globals.memory.methodsToExec.splice(a,1)})),Array.prototype.forEach.call(a,(function(t){t.parentElement.removeChild(t)})))}}]),t}(),I=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.months31=[1,3,5,7,8,10,12],this.months30=[2,4,6,9,11],this.daysCntOfYear=[0,31,59,90,120,151,181,212,243,273,304,334]}return r(t,[{key:"isValidDate",value:function(t){return!isNaN(this.parseDate(t))}},{key:"getTimeStamp",value:function(t){return Date.parse(t)?this.w.config.xaxis.labels.datetimeUTC?new Date(new Date(t).toISOString().substr(0,25)).getTime():new Date(t).getTime():t}},{key:"getDate",value:function(t){return this.w.config.xaxis.labels.datetimeUTC?new Date(new Date(t).toUTCString()):new Date(t)}},{key:"parseDate",value:function(t){var e=Date.parse(t);if(!isNaN(e))return this.getTimeStamp(t);var i=Date.parse(t.replace(/-/g,"/").replace(/[a-z]+/gi," "));return i=this.getTimeStamp(i)}},{key:"parseDateWithTimezone",value:function(t){return Date.parse(t.replace(/-/g,"/").replace(/[a-z]+/gi," "))}},{key:"formatDate",value:function(t,e){var i=this.w.globals.locale,a=this.w.config.xaxis.labels.datetimeUTC,s=["\0"].concat(u(i.months)),r=["\x01"].concat(u(i.shortMonths)),o=["\x02"].concat(u(i.days)),n=["\x03"].concat(u(i.shortDays));function l(t,e){var i=t+"";for(e=e||2;i.length12?g-12:0===g?12:g;e=(e=(e=(e=e.replace(/(^|[^\\])HH+/g,"$1"+l(g))).replace(/(^|[^\\])H/g,"$1"+g)).replace(/(^|[^\\])hh+/g,"$1"+l(p))).replace(/(^|[^\\])h/g,"$1"+p);var f=a?t.getUTCMinutes():t.getMinutes();e=(e=e.replace(/(^|[^\\])mm+/g,"$1"+l(f))).replace(/(^|[^\\])m/g,"$1"+f);var x=a?t.getUTCSeconds():t.getSeconds();e=(e=e.replace(/(^|[^\\])ss+/g,"$1"+l(x))).replace(/(^|[^\\])s/g,"$1"+x);var b=a?t.getUTCMilliseconds():t.getMilliseconds();e=e.replace(/(^|[^\\])fff+/g,"$1"+l(b,3)),b=Math.round(b/10),e=e.replace(/(^|[^\\])ff/g,"$1"+l(b)),b=Math.round(b/10);var v=g<12?"AM":"PM";e=(e=(e=e.replace(/(^|[^\\])f/g,"$1"+b)).replace(/(^|[^\\])TT+/g,"$1"+v)).replace(/(^|[^\\])T/g,"$1"+v.charAt(0));var m=v.toLowerCase();e=(e=e.replace(/(^|[^\\])tt+/g,"$1"+m)).replace(/(^|[^\\])t/g,"$1"+m.charAt(0));var y=-t.getTimezoneOffset(),w=a||!y?"Z":y>0?"+":"-";if(!a){var k=(y=Math.abs(y))%60;w+=l(Math.floor(y/60))+":"+l(k)}e=e.replace(/(^|[^\\])K/g,"$1"+w);var A=(a?t.getUTCDay():t.getDay())+1;return e=(e=(e=(e=(e=e.replace(new RegExp(o[0],"g"),o[A])).replace(new RegExp(n[0],"g"),n[A])).replace(new RegExp(s[0],"g"),s[c])).replace(new RegExp(r[0],"g"),r[c])).replace(/\\(.)/g,"$1")}},{key:"getTimeUnitsfromTimestamp",value:function(t,e,i){var a=this.w;void 0!==a.config.xaxis.min&&(t=a.config.xaxis.min),void 0!==a.config.xaxis.max&&(e=a.config.xaxis.max);var s=this.getDate(t),r=this.getDate(e),o=this.formatDate(s,"yyyy MM dd HH mm ss fff").split(" "),n=this.formatDate(r,"yyyy MM dd HH mm ss fff").split(" ");return{minMillisecond:parseInt(o[6],10),maxMillisecond:parseInt(n[6],10),minSecond:parseInt(o[5],10),maxSecond:parseInt(n[5],10),minMinute:parseInt(o[4],10),maxMinute:parseInt(n[4],10),minHour:parseInt(o[3],10),maxHour:parseInt(n[3],10),minDate:parseInt(o[2],10),maxDate:parseInt(n[2],10),minMonth:parseInt(o[1],10)-1,maxMonth:parseInt(n[1],10)-1,minYear:parseInt(o[0],10),maxYear:parseInt(n[0],10)}}},{key:"isLeapYear",value:function(t){return t%4==0&&t%100!=0||t%400==0}},{key:"calculcateLastDaysOfMonth",value:function(t,e,i){return this.determineDaysOfMonths(t,e)-i}},{key:"determineDaysOfYear",value:function(t){var e=365;return this.isLeapYear(t)&&(e=366),e}},{key:"determineRemainingDaysOfYear",value:function(t,e,i){var a=this.daysCntOfYear[e]+i;return e>1&&this.isLeapYear()&&a++,a}},{key:"determineDaysOfMonths",value:function(t,e){var i=30;switch(t=x.monthMod(t),!0){case this.months30.indexOf(t)>-1:2===t&&(i=this.isLeapYear(e)?29:28);break;case this.months31.indexOf(t)>-1:default:i=31}return i}}]),t}(),T=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.tooltipKeyFormat="dd MMM"}return r(t,[{key:"xLabelFormat",value:function(t,e,i,a){var s=this.w;if("datetime"===s.config.xaxis.type&&void 0===s.config.xaxis.labels.formatter&&void 0===s.config.tooltip.x.formatter){var r=new I(this.ctx);return r.formatDate(r.getDate(e),s.config.tooltip.x.format)}return t(e,i,a)}},{key:"defaultGeneralFormatter",value:function(t){return Array.isArray(t)?t.map((function(t){return t})):t}},{key:"defaultYFormatter",value:function(t,e,i){var a=this.w;return x.isNumber(t)&&(t=0!==a.globals.yValueDecimal?t.toFixed(void 0!==e.decimalsInFloat?e.decimalsInFloat:a.globals.yValueDecimal):a.globals.maxYArr[i]-a.globals.minYArr[i]<5?t.toFixed(1):t.toFixed(0)),t}},{key:"setLabelFormatters",value:function(){var t=this,e=this.w;return e.globals.xaxisTooltipFormatter=function(e){return t.defaultGeneralFormatter(e)},e.globals.ttKeyFormatter=function(e){return t.defaultGeneralFormatter(e)},e.globals.ttZFormatter=function(t){return t},e.globals.legendFormatter=function(e){return t.defaultGeneralFormatter(e)},void 0!==e.config.xaxis.labels.formatter?e.globals.xLabelFormatter=e.config.xaxis.labels.formatter:e.globals.xLabelFormatter=function(t){if(x.isNumber(t)){if(!e.config.xaxis.convertedCatToNumeric&&"numeric"===e.config.xaxis.type){if(x.isNumber(e.config.xaxis.decimalsInFloat))return t.toFixed(e.config.xaxis.decimalsInFloat);var i=e.globals.maxX-e.globals.minX;return i>0&&i<100?t.toFixed(1):t.toFixed(0)}if(e.globals.isBarHorizontal)if(e.globals.maxY-e.globals.minYArr<4)return t.toFixed(1);return t.toFixed(0)}return t},"function"==typeof e.config.tooltip.x.formatter?e.globals.ttKeyFormatter=e.config.tooltip.x.formatter:e.globals.ttKeyFormatter=e.globals.xLabelFormatter,"function"==typeof e.config.xaxis.tooltip.formatter&&(e.globals.xaxisTooltipFormatter=e.config.xaxis.tooltip.formatter),(Array.isArray(e.config.tooltip.y)||void 0!==e.config.tooltip.y.formatter)&&(e.globals.ttVal=e.config.tooltip.y),void 0!==e.config.tooltip.z.formatter&&(e.globals.ttZFormatter=e.config.tooltip.z.formatter),void 0!==e.config.legend.formatter&&(e.globals.legendFormatter=e.config.legend.formatter),e.config.yaxis.forEach((function(i,a){void 0!==i.labels.formatter?e.globals.yLabelFormatters[a]=i.labels.formatter:e.globals.yLabelFormatters[a]=function(s){return e.globals.xyCharts?Array.isArray(s)?s.map((function(e){return t.defaultYFormatter(e,i,a)})):t.defaultYFormatter(s,i,a):s}})),e.globals}},{key:"heatmapLabelFormatters",value:function(){var t=this.w;if("heatmap"===t.config.chart.type){t.globals.yAxisScale[0].result=t.globals.seriesNames.slice();var e=t.globals.seriesNames.reduce((function(t,e){return t.length>e.length?t:e}),0);t.globals.yAxisScale[0].niceMax=e,t.globals.yAxisScale[0].niceMin=e}}}]),t}(),M=function(t){var e,i=t.isTimeline,a=t.ctx,s=t.seriesIndex,r=t.dataPointIndex,o=t.y1,n=t.y2,l=t.w,h=l.globals.seriesRangeStart[s][r],c=l.globals.seriesRangeEnd[s][r],d=l.globals.labels[r],g=l.config.series[s].name?l.config.series[s].name:"",u=l.globals.ttKeyFormatter,p=l.config.tooltip.y.title.formatter,f={w:l,seriesIndex:s,dataPointIndex:r,start:h,end:c};("function"==typeof p&&(g=p(g,f)),null!==(e=l.config.series[s].data[r])&&void 0!==e&&e.x&&(d=l.config.series[s].data[r].x),i)||"datetime"===l.config.xaxis.type&&(d=new T(a).xLabelFormat(l.globals.ttKeyFormatter,d,d,{i:void 0,dateFormatter:new I(a).formatDate,w:l}));"function"==typeof u&&(d=u(d,f)),Number.isFinite(o)&&Number.isFinite(n)&&(h=o,c=n);var x="",b="",v=l.globals.colors[s];if(void 0===l.config.tooltip.x.formatter)if("datetime"===l.config.xaxis.type){var m=new I(a);x=m.formatDate(m.getDate(h),l.config.tooltip.x.format),b=m.formatDate(m.getDate(c),l.config.tooltip.x.format)}else x=h,b=c;else x=l.config.tooltip.x.formatter(h),b=l.config.tooltip.x.formatter(c);return{start:h,end:c,startVal:x,endVal:b,ylabel:d,color:v,seriesName:g}},X=function(t){var e=t.color,i=t.seriesName,a=t.ylabel,s=t.start,r=t.end,o=t.seriesIndex,n=t.dataPointIndex,l=t.ctx.tooltip.tooltipLabels.getFormatters(o);s=l.yLbFormatter(s),r=l.yLbFormatter(r);var h=l.yLbFormatter(t.w.globals.series[o][n]),c='\n '.concat(s,'\n - \n ').concat(r,"\n ");return'
'+(i||"")+'
'+a+": "+(t.w.globals.comboCharts?"rangeArea"===t.w.config.series[o].type||"rangeBar"===t.w.config.series[o].type?c:"".concat(h,""):c)+"
"},z=function(){function t(e){a(this,t),this.opts=e}return r(t,[{key:"hideYAxis",value:function(){this.opts.yaxis[0].show=!1,this.opts.yaxis[0].title.text="",this.opts.yaxis[0].axisBorder.show=!1,this.opts.yaxis[0].axisTicks.show=!1,this.opts.yaxis[0].floating=!0}},{key:"line",value:function(){return{chart:{animations:{easing:"swing"}},dataLabels:{enabled:!1},stroke:{width:5,curve:"straight"},markers:{size:0,hover:{sizeOffset:6}},xaxis:{crosshairs:{width:1}}}}},{key:"sparkline",value:function(t){this.hideYAxis();return x.extend(t,{grid:{show:!1,padding:{left:0,right:0,top:0,bottom:0}},legend:{show:!1},xaxis:{labels:{show:!1},tooltip:{enabled:!1},axisBorder:{show:!1},axisTicks:{show:!1}},chart:{toolbar:{show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1}})}},{key:"bar",value:function(){return{chart:{stacked:!1,animations:{easing:"swing"}},plotOptions:{bar:{dataLabels:{position:"center"}}},dataLabels:{style:{colors:["#fff"]},background:{enabled:!1}},stroke:{width:0,lineCap:"round"},fill:{opacity:.85},legend:{markers:{shape:"square",radius:2,size:8}},tooltip:{shared:!1,intersect:!0},xaxis:{tooltip:{enabled:!1},tickPlacement:"between",crosshairs:{width:"barWidth",position:"back",fill:{type:"gradient"},dropShadow:{enabled:!1},stroke:{width:0}}}}}},{key:"funnel",value:function(){return this.hideYAxis(),e(e({},this.bar()),{},{chart:{animations:{easing:"linear",speed:800,animateGradually:{enabled:!1}}},plotOptions:{bar:{horizontal:!0,borderRadiusApplication:"around",borderRadius:0,dataLabels:{position:"center"}}},grid:{show:!1,padding:{left:0,right:0}},xaxis:{labels:{show:!1},tooltip:{enabled:!1},axisBorder:{show:!1},axisTicks:{show:!1}}})}},{key:"candlestick",value:function(){var t=this;return{stroke:{width:1,colors:["#333"]},fill:{opacity:1},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(e){var i=e.seriesIndex,a=e.dataPointIndex,s=e.w;return t._getBoxTooltip(s,i,a,["Open","High","","Low","Close"],"candlestick")}},states:{active:{filter:{type:"none"}}},xaxis:{crosshairs:{width:1}}}}},{key:"boxPlot",value:function(){var t=this;return{chart:{animations:{dynamicAnimation:{enabled:!1}}},stroke:{width:1,colors:["#24292e"]},dataLabels:{enabled:!1},tooltip:{shared:!0,custom:function(e){var i=e.seriesIndex,a=e.dataPointIndex,s=e.w;return t._getBoxTooltip(s,i,a,["Minimum","Q1","Median","Q3","Maximum"],"boxPlot")}},markers:{size:5,strokeWidth:1,strokeColors:"#111"},xaxis:{crosshairs:{width:1}}}}},{key:"rangeBar",value:function(){return{chart:{animations:{animateGradually:!1}},stroke:{width:0,lineCap:"square"},plotOptions:{bar:{borderRadius:0,dataLabels:{position:"center"}}},dataLabels:{enabled:!1,formatter:function(t,e){e.ctx;var i=e.seriesIndex,a=e.dataPointIndex,s=e.w,r=function(){var t=s.globals.seriesRangeStart[i][a];return s.globals.seriesRangeEnd[i][a]-t};return s.globals.comboCharts?"rangeBar"===s.config.series[i].type||"rangeArea"===s.config.series[i].type?r():t:r()},background:{enabled:!1},style:{colors:["#fff"]}},markers:{size:10},tooltip:{shared:!1,followCursor:!0,custom:function(t){return t.w.config.plotOptions&&t.w.config.plotOptions.bar&&t.w.config.plotOptions.bar.horizontal?function(t){var i=M(e(e({},t),{},{isTimeline:!0})),a=i.color,s=i.seriesName,r=i.ylabel,o=i.startVal,n=i.endVal;return X(e(e({},t),{},{color:a,seriesName:s,ylabel:r,start:o,end:n}))}(t):function(t){var i=M(t),a=i.color,s=i.seriesName,r=i.ylabel,o=i.start,n=i.end;return X(e(e({},t),{},{color:a,seriesName:s,ylabel:r,start:o,end:n}))}(t)}},xaxis:{tickPlacement:"between",tooltip:{enabled:!1},crosshairs:{stroke:{width:0}}}}}},{key:"dumbbell",value:function(t){var e,i;return null!==(e=t.plotOptions.bar)&&void 0!==e&&e.barHeight||(t.plotOptions.bar.barHeight=2),null!==(i=t.plotOptions.bar)&&void 0!==i&&i.columnWidth||(t.plotOptions.bar.columnWidth=2),t}},{key:"area",value:function(){return{stroke:{width:4,fill:{type:"solid",gradient:{inverseColors:!1,shade:"light",type:"vertical",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}}},fill:{type:"gradient",gradient:{inverseColors:!1,shade:"light",type:"vertical",opacityFrom:.65,opacityTo:.5,stops:[0,100,100]}},markers:{size:0,hover:{sizeOffset:6}},tooltip:{followCursor:!1}}}},{key:"rangeArea",value:function(){return{stroke:{curve:"straight",width:0},fill:{type:"solid",opacity:.6},markers:{size:0},states:{hover:{filter:{type:"none"}},active:{filter:{type:"none"}}},tooltip:{intersect:!1,shared:!0,followCursor:!0,custom:function(t){return function(t){var i=M(t),a=i.color,s=i.seriesName,r=i.ylabel,o=i.start,n=i.end;return X(e(e({},t),{},{color:a,seriesName:s,ylabel:r,start:o,end:n}))}(t)}}}}},{key:"brush",value:function(t){return x.extend(t,{chart:{toolbar:{autoSelected:"selection",show:!1},zoom:{enabled:!1}},dataLabels:{enabled:!1},stroke:{width:1},tooltip:{enabled:!1},xaxis:{tooltip:{enabled:!1}}})}},{key:"stacked100",value:function(t){t.dataLabels=t.dataLabels||{},t.dataLabels.formatter=t.dataLabels.formatter||void 0;var e=t.dataLabels.formatter;return t.yaxis.forEach((function(e,i){t.yaxis[i].min=0,t.yaxis[i].max=100})),"bar"===t.chart.type&&(t.dataLabels.formatter=e||function(t){return"number"==typeof t&&t?t.toFixed(0)+"%":t}),t}},{key:"stackedBars",value:function(){var t=this.bar();return e(e({},t),{},{plotOptions:e(e({},t.plotOptions),{},{bar:e(e({},t.plotOptions.bar),{},{borderRadiusApplication:"end",borderRadiusWhenStacked:"last"})})})}},{key:"convertCatToNumeric",value:function(t){return t.xaxis.convertedCatToNumeric=!0,t}},{key:"convertCatToNumericXaxis",value:function(t,e,i){t.xaxis.type="numeric",t.xaxis.labels=t.xaxis.labels||{},t.xaxis.labels.formatter=t.xaxis.labels.formatter||function(t){return x.isNumber(t)?Math.floor(t):t};var a=t.xaxis.labels.formatter,s=t.xaxis.categories&&t.xaxis.categories.length?t.xaxis.categories:t.labels;return i&&i.length&&(s=i.map((function(t){return Array.isArray(t)?t:String(t)}))),s&&s.length&&(t.xaxis.labels.formatter=function(t){return x.isNumber(t)?a(s[Math.floor(t)-1]):a(t)}),t.xaxis.categories=[],t.labels=[],t.xaxis.tickAmount=t.xaxis.tickAmount||"dataPoints",t}},{key:"bubble",value:function(){return{dataLabels:{style:{colors:["#fff"]}},tooltip:{shared:!1,intersect:!0},xaxis:{crosshairs:{width:0}},fill:{type:"solid",gradient:{shade:"light",inverse:!0,shadeIntensity:.55,opacityFrom:.4,opacityTo:.8}}}}},{key:"scatter",value:function(){return{dataLabels:{enabled:!1},tooltip:{shared:!1,intersect:!0},markers:{size:6,strokeWidth:1,hover:{sizeOffset:2}}}}},{key:"heatmap",value:function(){return{chart:{stacked:!1},fill:{opacity:1},dataLabels:{style:{colors:["#fff"]}},stroke:{colors:["#fff"]},tooltip:{followCursor:!0,marker:{show:!1},x:{show:!1}},legend:{position:"top",markers:{shape:"square",size:10,offsetY:2}},grid:{padding:{right:20}}}}},{key:"treemap",value:function(){return{chart:{zoom:{enabled:!1}},dataLabels:{style:{fontSize:14,fontWeight:600,colors:["#fff"]}},stroke:{show:!0,width:2,colors:["#fff"]},legend:{show:!1},fill:{gradient:{stops:[0,100]}},tooltip:{followCursor:!0,x:{show:!1}},grid:{padding:{left:0,right:0}},xaxis:{crosshairs:{show:!1},tooltip:{enabled:!1}}}}},{key:"pie",value:function(){return{chart:{toolbar:{show:!1}},plotOptions:{pie:{donut:{labels:{show:!1}}}},dataLabels:{formatter:function(t){return t.toFixed(1)+"%"},style:{colors:["#fff"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:["#fff"]},fill:{opacity:1,gradient:{shade:"light",stops:[0,100]}},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"donut",value:function(){return{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(t){return t.toFixed(1)+"%"},style:{colors:["#fff"]},background:{enabled:!1},dropShadow:{enabled:!0}},stroke:{colors:["#fff"]},fill:{opacity:1,gradient:{shade:"light",shadeIntensity:.35,stops:[80,100],opacityFrom:1,opacityTo:1}},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"polarArea",value:function(){return this.opts.yaxis[0].tickAmount=this.opts.yaxis[0].tickAmount?this.opts.yaxis[0].tickAmount:6,{chart:{toolbar:{show:!1}},dataLabels:{formatter:function(t){return t.toFixed(1)+"%"},enabled:!1},stroke:{show:!0,width:2},fill:{opacity:.7},tooltip:{theme:"dark",fillSeriesColor:!0},legend:{position:"right"}}}},{key:"radar",value:function(){return this.opts.yaxis[0].labels.offsetY=this.opts.yaxis[0].labels.offsetY?this.opts.yaxis[0].labels.offsetY:6,{dataLabels:{enabled:!1,style:{fontSize:"11px"}},stroke:{width:2},markers:{size:3,strokeWidth:1,strokeOpacity:1},fill:{opacity:.2},tooltip:{shared:!1,intersect:!0,followCursor:!0},grid:{show:!1},xaxis:{labels:{formatter:function(t){return t},style:{colors:["#a8a8a8"],fontSize:"11px"}},tooltip:{enabled:!1},crosshairs:{show:!1}}}}},{key:"radialBar",value:function(){return{chart:{animations:{dynamicAnimation:{enabled:!0,speed:800}},toolbar:{show:!1}},fill:{gradient:{shade:"dark",shadeIntensity:.4,inverseColors:!1,type:"diagonal2",opacityFrom:1,opacityTo:1,stops:[70,98,100]}},legend:{show:!1,position:"right"},tooltip:{enabled:!1,fillSeriesColor:!0}}}},{key:"_getBoxTooltip",value:function(t,e,i,a,s){var r=t.globals.seriesCandleO[e][i],o=t.globals.seriesCandleH[e][i],n=t.globals.seriesCandleM[e][i],l=t.globals.seriesCandleL[e][i],h=t.globals.seriesCandleC[e][i];return t.config.series[e].type&&t.config.series[e].type!==s?'
\n '.concat(t.config.series[e].name?t.config.series[e].name:"series-"+(e+1),": ").concat(t.globals.series[e][i],"\n
"):'
')+"
".concat(a[0],': ')+r+"
"+"
".concat(a[1],': ')+o+"
"+(n?"
".concat(a[2],': ')+n+"
":"")+"
".concat(a[3],': ')+l+"
"+"
".concat(a[4],': ')+h+"
"}}]),t}(),E=function(){function t(e){a(this,t),this.opts=e}return r(t,[{key:"init",value:function(t){var e=t.responsiveOverride,a=this.opts,s=new L,r=new z(a);this.chartType=a.chart.type,a=this.extendYAxis(a),a=this.extendAnnotations(a);var o=s.init(),n={};if(a&&"object"===i(a)){var l,h,c,d,g,u,p,f,b={};b=-1!==["line","area","bar","candlestick","boxPlot","rangeBar","rangeArea","bubble","scatter","heatmap","treemap","pie","polarArea","donut","radar","radialBar"].indexOf(a.chart.type)?r[a.chart.type]():r.line(),null!==(l=a.plotOptions)&&void 0!==l&&null!==(h=l.bar)&&void 0!==h&&h.isFunnel&&(b=r.funnel()),a.chart.stacked&&"bar"===a.chart.type&&(b=r.stackedBars()),null!==(c=a.chart.brush)&&void 0!==c&&c.enabled&&(b=r.brush(b)),a.chart.stacked&&"100%"===a.chart.stackType&&(a=r.stacked100(a)),null!==(d=a.plotOptions)&&void 0!==d&&null!==(g=d.bar)&&void 0!==g&&g.isDumbbell&&(a=r.dumbbell(a)),this.checkForDarkTheme(window.Apex),this.checkForDarkTheme(a),a.xaxis=a.xaxis||window.Apex.xaxis||{},e||(a.xaxis.convertedCatToNumeric=!1),(null!==(u=(a=this.checkForCatToNumericXAxis(this.chartType,b,a)).chart.sparkline)&&void 0!==u&&u.enabled||null!==(p=window.Apex.chart)&&void 0!==p&&null!==(f=p.sparkline)&&void 0!==f&&f.enabled)&&(b=r.sparkline(b)),n=x.extend(o,b)}var v=x.extend(n,window.Apex);return o=x.extend(v,a),o=this.handleUserInputErrors(o)}},{key:"checkForCatToNumericXAxis",value:function(t,e,i){var a,s,r=new z(i),o=("bar"===t||"boxPlot"===t)&&(null===(a=i.plotOptions)||void 0===a||null===(s=a.bar)||void 0===s?void 0:s.horizontal),n="pie"===t||"polarArea"===t||"donut"===t||"radar"===t||"radialBar"===t||"heatmap"===t,l="datetime"!==i.xaxis.type&&"numeric"!==i.xaxis.type,h=i.xaxis.tickPlacement?i.xaxis.tickPlacement:e.xaxis&&e.xaxis.tickPlacement;return o||n||!l||"between"===h||(i=r.convertCatToNumeric(i)),i}},{key:"extendYAxis",value:function(t,e){var i=new L;(void 0===t.yaxis||!t.yaxis||Array.isArray(t.yaxis)&&0===t.yaxis.length)&&(t.yaxis={}),t.yaxis.constructor!==Array&&window.Apex.yaxis&&window.Apex.yaxis.constructor!==Array&&(t.yaxis=x.extend(t.yaxis,window.Apex.yaxis)),t.yaxis.constructor!==Array?t.yaxis=[x.extend(i.yAxis,t.yaxis)]:t.yaxis=x.extendArray(t.yaxis,i.yAxis);var a=!1;t.yaxis.forEach((function(t){t.logarithmic&&(a=!0)}));var s=t.series;return e&&!s&&(s=e.config.series),a&&s.length!==t.yaxis.length&&s.length&&(t.yaxis=s.map((function(e,a){if(e.name||(s[a].name="series-".concat(a+1)),t.yaxis[a])return t.yaxis[a].seriesName=s[a].name,t.yaxis[a];var r=x.extend(i.yAxis,t.yaxis[0]);return r.show=!1,r}))),a&&s.length>1&&s.length!==t.yaxis.length&&console.warn("A multi-series logarithmic chart should have equal number of series and y-axes. Please make sure to equalize both."),t}},{key:"extendAnnotations",value:function(t){return void 0===t.annotations&&(t.annotations={},t.annotations.yaxis=[],t.annotations.xaxis=[],t.annotations.points=[]),t=this.extendYAxisAnnotations(t),t=this.extendXAxisAnnotations(t),t=this.extendPointAnnotations(t)}},{key:"extendYAxisAnnotations",value:function(t){var e=new L;return t.annotations.yaxis=x.extendArray(void 0!==t.annotations.yaxis?t.annotations.yaxis:[],e.yAxisAnnotation),t}},{key:"extendXAxisAnnotations",value:function(t){var e=new L;return t.annotations.xaxis=x.extendArray(void 0!==t.annotations.xaxis?t.annotations.xaxis:[],e.xAxisAnnotation),t}},{key:"extendPointAnnotations",value:function(t){var e=new L;return t.annotations.points=x.extendArray(void 0!==t.annotations.points?t.annotations.points:[],e.pointAnnotation),t}},{key:"checkForDarkTheme",value:function(t){t.theme&&"dark"===t.theme.mode&&(t.tooltip||(t.tooltip={}),"light"!==t.tooltip.theme&&(t.tooltip.theme="dark"),t.chart.foreColor||(t.chart.foreColor="#f6f7f8"),t.chart.background||(t.chart.background="#424242"),t.theme.palette||(t.theme.palette="palette4"))}},{key:"handleUserInputErrors",value:function(t){var e=t;if(e.tooltip.shared&&e.tooltip.intersect)throw new Error("tooltip.shared cannot be enabled when tooltip.intersect is true. Turn off any other option by setting it to false.");if("bar"===e.chart.type&&e.plotOptions.bar.horizontal){if(e.yaxis.length>1)throw new Error("Multiple Y Axis for bars are not supported. Switch to column chart by setting plotOptions.bar.horizontal=false");e.yaxis[0].reversed&&(e.yaxis[0].opposite=!0),e.xaxis.tooltip.enabled=!1,e.yaxis[0].tooltip.enabled=!1,e.chart.zoom.enabled=!1}return"bar"!==e.chart.type&&"rangeBar"!==e.chart.type||e.tooltip.shared&&"barWidth"===e.xaxis.crosshairs.width&&e.series.length>1&&(e.xaxis.crosshairs.width="tickWidth"),"candlestick"!==e.chart.type&&"boxPlot"!==e.chart.type||e.yaxis[0].reversed&&(console.warn("Reversed y-axis in ".concat(e.chart.type," chart is not supported.")),e.yaxis[0].reversed=!1),e}}]),t}(),Y=function(){function t(){a(this,t)}return r(t,[{key:"initGlobalVars",value:function(t){t.series=[],t.seriesCandleO=[],t.seriesCandleH=[],t.seriesCandleM=[],t.seriesCandleL=[],t.seriesCandleC=[],t.seriesRangeStart=[],t.seriesRangeEnd=[],t.seriesRange=[],t.seriesPercent=[],t.seriesGoals=[],t.seriesX=[],t.seriesZ=[],t.seriesNames=[],t.seriesTotals=[],t.seriesLog=[],t.seriesColors=[],t.stackedSeriesTotals=[],t.seriesXvalues=[],t.seriesYvalues=[],t.labels=[],t.hasXaxisGroups=!1,t.groups=[],t.hasSeriesGroups=!1,t.seriesGroups=[],t.categoryLabels=[],t.timescaleLabels=[],t.noLabelsProvided=!1,t.resizeTimer=null,t.selectionResizeTimer=null,t.delayedElements=[],t.pointsArray=[],t.dataLabelsRects=[],t.isXNumeric=!1,t.skipLastTimelinelabel=!1,t.skipFirstTimelinelabel=!1,t.isDataXYZ=!1,t.isMultiLineX=!1,t.isMultipleYAxis=!1,t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE,t.minYArr=[],t.maxYArr=[],t.maxX=-Number.MAX_VALUE,t.minX=Number.MAX_VALUE,t.initialMaxX=-Number.MAX_VALUE,t.initialMinX=Number.MAX_VALUE,t.maxDate=0,t.minDate=Number.MAX_VALUE,t.minZ=Number.MAX_VALUE,t.maxZ=-Number.MAX_VALUE,t.minXDiff=Number.MAX_VALUE,t.yAxisScale=[],t.xAxisScale=null,t.xAxisTicksPositions=[],t.yLabelsCoords=[],t.yTitleCoords=[],t.barPadForNumericAxis=0,t.padHorizontal=0,t.xRange=0,t.yRange=[],t.zRange=0,t.dataPoints=0,t.xTickAmount=0}},{key:"globalVars",value:function(t){return{chartID:null,cuid:null,events:{beforeMount:[],mounted:[],updated:[],clicked:[],selection:[],dataPointSelection:[],zoomed:[],scrolled:[]},colors:[],clientX:null,clientY:null,fill:{colors:[]},stroke:{colors:[]},dataLabels:{style:{colors:[]}},radarPolygons:{fill:{colors:[]}},markers:{colors:[],size:t.markers.size,largestSize:0},animationEnded:!1,isTouchDevice:"ontouchstart"in window||navigator.msMaxTouchPoints,isDirty:!1,isExecCalled:!1,initialConfig:null,initialSeries:[],lastXAxis:[],lastYAxis:[],columnSeries:null,labels:[],timescaleLabels:[],noLabelsProvided:!1,allSeriesCollapsed:!1,collapsedSeries:[],collapsedSeriesIndices:[],ancillaryCollapsedSeries:[],ancillaryCollapsedSeriesIndices:[],risingSeries:[],dataFormatXNumeric:!1,capturedSeriesIndex:-1,capturedDataPointIndex:-1,selectedDataPoints:[],goldenPadding:35,invalidLogScale:!1,ignoreYAxisIndexes:[],yAxisSameScaleIndices:[],maxValsInArrayIndex:0,radialSize:0,selection:void 0,zoomEnabled:"zoom"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.zoom&&t.chart.zoom.enabled,panEnabled:"pan"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.pan,selectionEnabled:"selection"===t.chart.toolbar.autoSelected&&t.chart.toolbar.tools.selection,yaxis:null,mousedown:!1,lastClientPosition:{},visibleXRange:void 0,yValueDecimal:0,total:0,SVGNS:"http://www.w3.org/2000/svg",svgWidth:0,svgHeight:0,noData:!1,locale:{},dom:{},memory:{methodsToExec:[]},shouldAnimate:!0,skipLastTimelinelabel:!1,skipFirstTimelinelabel:!1,delayedElements:[],axisCharts:!0,isDataXYZ:!1,resized:!1,resizeTimer:null,comboCharts:!1,dataChanged:!1,previousPaths:[],allSeriesHasEqualX:!0,pointsArray:[],dataLabelsRects:[],lastDrawnDataLabelsIndexes:[],hasNullValues:!1,easing:null,zoomed:!1,gridWidth:0,gridHeight:0,rotateXLabels:!1,defaultLabels:!1,xLabelFormatter:void 0,yLabelFormatters:[],xaxisTooltipFormatter:void 0,ttKeyFormatter:void 0,ttVal:void 0,ttZFormatter:void 0,LINE_HEIGHT_RATIO:1.618,xAxisLabelsHeight:0,xAxisGroupLabelsHeight:0,xAxisLabelsWidth:0,yAxisLabelsWidth:0,scaleX:1,scaleY:1,translateX:0,translateY:0,translateYAxisX:[],yAxisWidths:[],translateXAxisY:0,translateXAxisX:0,tooltip:null}}},{key:"init",value:function(t){var e=this.globalVars(t);return this.initGlobalVars(e),e.initialConfig=x.extend({},t),e.initialSeries=x.clone(t.series),e.lastXAxis=x.clone(e.initialConfig.xaxis),e.lastYAxis=x.clone(e.initialConfig.yaxis),e}}]),t}(),F=function(){function t(e){a(this,t),this.opts=e}return r(t,[{key:"init",value:function(){var t=new E(this.opts).init({responsiveOverride:!1});return{config:t,globals:(new Y).init(t)}}}]),t}(),R=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.opts=null,this.seriesIndex=0}return r(t,[{key:"clippedImgArea",value:function(t){var e=this.w,i=e.config,a=parseInt(e.globals.gridWidth,10),s=parseInt(e.globals.gridHeight,10),r=a>s?a:s,o=t.image,n=0,l=0;void 0===t.width&&void 0===t.height?void 0!==i.fill.image.width&&void 0!==i.fill.image.height?(n=i.fill.image.width+1,l=i.fill.image.height):(n=r+1,l=r):(n=t.width,l=t.height);var h=document.createElementNS(e.globals.SVGNS,"pattern");m.setAttrs(h,{id:t.patternID,patternUnits:t.patternUnits?t.patternUnits:"userSpaceOnUse",width:n+"px",height:l+"px"});var c=document.createElementNS(e.globals.SVGNS,"image");h.appendChild(c),c.setAttributeNS(window.SVG.xlink,"href",o),m.setAttrs(c,{x:0,y:0,preserveAspectRatio:"none",width:n+"px",height:l+"px"}),c.style.opacity=t.opacity,e.globals.dom.elDefs.node.appendChild(h)}},{key:"getSeriesIndex",value:function(t){var e=this.w,i=e.config.chart.type;return("bar"===i||"rangeBar"===i)&&e.config.plotOptions.bar.distributed||"heatmap"===i||"treemap"===i?this.seriesIndex=t.seriesNumber:this.seriesIndex=t.seriesNumber%e.globals.series.length,this.seriesIndex}},{key:"fillPath",value:function(t){var e=this.w;this.opts=t;var i,a,s,r=this.w.config;this.seriesIndex=this.getSeriesIndex(t);var o=this.getFillColors()[this.seriesIndex];void 0!==e.globals.seriesColors[this.seriesIndex]&&(o=e.globals.seriesColors[this.seriesIndex]),"function"==typeof o&&(o=o({seriesIndex:this.seriesIndex,dataPointIndex:t.dataPointIndex,value:t.value,w:e}));var n=t.fillType?t.fillType:this.getFillType(this.seriesIndex),l=Array.isArray(r.fill.opacity)?r.fill.opacity[this.seriesIndex]:r.fill.opacity;t.color&&(o=t.color);var h=o;if(-1===o.indexOf("rgb")?o.length<9&&(h=x.hexToRgba(o,l)):o.indexOf("rgba")>-1&&(l=x.getOpacityFromRGBA(o)),t.opacity&&(l=t.opacity),"pattern"===n&&(a=this.handlePatternFill({fillConfig:t.fillConfig,patternFill:a,fillColor:o,fillOpacity:l,defaultColor:h})),"gradient"===n&&(s=this.handleGradientFill({fillConfig:t.fillConfig,fillColor:o,fillOpacity:l,i:this.seriesIndex})),"image"===n){var c=r.fill.image.src,d=t.patternID?t.patternID:"";this.clippedImgArea({opacity:l,image:Array.isArray(c)?t.seriesNumber-1&&(u=x.getOpacityFromRGBA(g));var p=void 0===o.gradient.opacityTo?a:Array.isArray(o.gradient.opacityTo)?o.gradient.opacityTo[r]:o.gradient.opacityTo;if(void 0===o.gradient.gradientToColors||0===o.gradient.gradientToColors.length)n="dark"===o.gradient.shade?c.shadeColor(-1*parseFloat(o.gradient.shadeIntensity),i.indexOf("rgb")>-1?x.rgb2hex(i):i):c.shadeColor(parseFloat(o.gradient.shadeIntensity),i.indexOf("rgb")>-1?x.rgb2hex(i):i);else if(o.gradient.gradientToColors[l.seriesNumber]){var f=o.gradient.gradientToColors[l.seriesNumber];n=f,f.indexOf("rgba")>-1&&(p=x.getOpacityFromRGBA(f))}else n=i;if(o.gradient.gradientFrom&&(g=o.gradient.gradientFrom),o.gradient.gradientTo&&(n=o.gradient.gradientTo),o.gradient.inverseColors){var b=g;g=n,n=b}return g.indexOf("rgb")>-1&&(g=x.rgb2hex(g)),n.indexOf("rgb")>-1&&(n=x.rgb2hex(n)),h.drawGradient(d,g,n,u,p,l.size,o.gradient.stops,o.gradient.colorStops,r)}}]),t}(),H=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"setGlobalMarkerSize",value:function(){var t=this.w;if(t.globals.markers.size=Array.isArray(t.config.markers.size)?t.config.markers.size:[t.config.markers.size],t.globals.markers.size.length>0){if(t.globals.markers.size.length4&&void 0!==arguments[4]&&arguments[4],o=this.w,n=e,l=t,h=null,c=new m(this.ctx),d=o.config.markers.discrete&&o.config.markers.discrete.length;if((o.globals.markers.size[e]>0||r||d)&&(h=c.group({class:r||d?"":"apexcharts-series-markers"})).attr("clip-path","url(#gridRectMarkerMask".concat(o.globals.cuid,")")),Array.isArray(l.x))for(var g=0;g0:o.config.markers.size>0)||r||d){x.isNumber(l.y[g])?p+=" w".concat(x.randomId()):p="apexcharts-nullpoint";var f=this.getMarkerConfig({cssClass:p,seriesIndex:e,dataPointIndex:u});o.config.series[n].data[u]&&(o.config.series[n].data[u].fillColor&&(f.pointFillColor=o.config.series[n].data[u].fillColor),o.config.series[n].data[u].strokeColor&&(f.pointStrokeColor=o.config.series[n].data[u].strokeColor)),a&&(f.pSize=a),(l.x[g]<0||l.x[g]>o.globals.gridWidth||l.y[g]<0||l.y[g]>o.globals.gridHeight)&&(f.pSize=0),(s=c.drawMarker(l.x[g],l.y[g],f)).attr("rel",u),s.attr("j",u),s.attr("index",e),s.node.setAttribute("default-marker-size",f.pSize),new v(this.ctx).setSelectionFilter(s,e,u),this.addEvents(s),h&&h.add(s)}else void 0===o.globals.pointsArray[e]&&(o.globals.pointsArray[e]=[]),o.globals.pointsArray[e].push([l.x[g],l.y[g]])}return h}},{key:"getMarkerConfig",value:function(t){var e=t.cssClass,i=t.seriesIndex,a=t.dataPointIndex,s=void 0===a?null:a,r=t.finishRadius,o=void 0===r?null:r,n=this.w,l=this.getMarkerStyle(i),h=n.globals.markers.size[i],c=n.config.markers;return null!==s&&c.discrete.length&&c.discrete.map((function(t){t.seriesIndex===i&&t.dataPointIndex===s&&(l.pointStrokeColor=t.strokeColor,l.pointFillColor=t.fillColor,h=t.size,l.pointShape=t.shape)})),{pSize:null===o?h:o,pRadius:c.radius,width:Array.isArray(c.width)?c.width[i]:c.width,height:Array.isArray(c.height)?c.height[i]:c.height,pointStrokeWidth:Array.isArray(c.strokeWidth)?c.strokeWidth[i]:c.strokeWidth,pointStrokeColor:l.pointStrokeColor,pointFillColor:l.pointFillColor,shape:l.pointShape||(Array.isArray(c.shape)?c.shape[i]:c.shape),class:e,pointStrokeOpacity:Array.isArray(c.strokeOpacity)?c.strokeOpacity[i]:c.strokeOpacity,pointStrokeDashArray:Array.isArray(c.strokeDashArray)?c.strokeDashArray[i]:c.strokeDashArray,pointFillOpacity:Array.isArray(c.fillOpacity)?c.fillOpacity[i]:c.fillOpacity,seriesIndex:i}}},{key:"addEvents",value:function(t){var e=this.w,i=new m(this.ctx);t.node.addEventListener("mouseenter",i.pathMouseEnter.bind(this.ctx,t)),t.node.addEventListener("mouseleave",i.pathMouseLeave.bind(this.ctx,t)),t.node.addEventListener("mousedown",i.pathMouseDown.bind(this.ctx,t)),t.node.addEventListener("click",e.config.markers.onClick),t.node.addEventListener("dblclick",e.config.markers.onDblClick),t.node.addEventListener("touchstart",i.pathMouseDown.bind(this.ctx,t),{passive:!0})}},{key:"getMarkerStyle",value:function(t){var e=this.w,i=e.globals.markers.colors,a=e.config.markers.strokeColor||e.config.markers.strokeColors;return{pointStrokeColor:Array.isArray(a)?a[t]:a,pointFillColor:Array.isArray(i)?i[t]:i}}}]),t}(),D=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled}return r(t,[{key:"draw",value:function(t,e,i){var a=this.w,s=new m(this.ctx),r=i.realIndex,o=i.pointsPos,n=i.zRatio,l=i.elParent,h=s.group({class:"apexcharts-series-markers apexcharts-series-".concat(a.config.chart.type)});if(h.attr("clip-path","url(#gridRectMarkerMask".concat(a.globals.cuid,")")),Array.isArray(o.x))for(var c=0;cf.maxBubbleRadius&&(p=f.maxBubbleRadius)}a.config.chart.animations.enabled||(u=p);var x=o.x[c],b=o.y[c];if(u=u||0,null!==b&&void 0!==a.globals.series[r][d]||(g=!1),g){var v=this.drawPoint(x,b,u,p,r,d,e);h.add(v)}l.add(h)}}},{key:"drawPoint",value:function(t,e,i,a,s,r,o){var n=this.w,l=s,h=new b(this.ctx),c=new v(this.ctx),d=new R(this.ctx),g=new H(this.ctx),u=new m(this.ctx),p=g.getMarkerConfig({cssClass:"apexcharts-marker",seriesIndex:l,dataPointIndex:r,finishRadius:"bubble"===n.config.chart.type||n.globals.comboCharts&&n.config.series[s]&&"bubble"===n.config.series[s].type?a:null});a=p.pSize;var f,x=d.fillPath({seriesNumber:s,dataPointIndex:r,color:p.pointFillColor,patternUnits:"objectBoundingBox",value:n.globals.series[s][o]});if("circle"===p.shape?f=u.drawCircle(i):"square"!==p.shape&&"rect"!==p.shape||(f=u.drawRect(0,0,p.width-p.pointStrokeWidth/2,p.height-p.pointStrokeWidth/2,p.pRadius)),n.config.series[l].data[r]&&n.config.series[l].data[r].fillColor&&(x=n.config.series[l].data[r].fillColor),f.attr({x:t-p.width/2-p.pointStrokeWidth/2,y:e-p.height/2-p.pointStrokeWidth/2,cx:t,cy:e,fill:x,"fill-opacity":p.pointFillOpacity,stroke:p.pointStrokeColor,r:a,"stroke-width":p.pointStrokeWidth,"stroke-dasharray":p.pointStrokeDashArray,"stroke-opacity":p.pointStrokeOpacity}),n.config.chart.dropShadow.enabled){var y=n.config.chart.dropShadow;c.dropShadow(f,y,s)}if(!this.initialAnim||n.globals.dataChanged||n.globals.resized)n.globals.animationEnded=!0;else{var w=n.config.chart.animations.speed;h.animateMarker(f,0,"circle"===p.shape?a:{width:p.width,height:p.height},w,n.globals.easing,(function(){window.setTimeout((function(){h.animationCompleted(f)}),100)}))}if(n.globals.dataChanged&&"circle"===p.shape)if(this.dynamicAnim){var k,A,S,C,L=n.config.chart.animations.dynamicAnimation.speed;null!=(C=n.globals.previousPaths[s]&&n.globals.previousPaths[s][o])&&(k=C.x,A=C.y,S=void 0!==C.r?C.r:a);for(var P=0;Pn.globals.gridHeight+d&&(e=n.globals.gridHeight+d/2),void 0===n.globals.dataLabelsRects[a]&&(n.globals.dataLabelsRects[a]=[]),n.globals.dataLabelsRects[a].push({x:t,y:e,width:c,height:d});var g=n.globals.dataLabelsRects[a].length-2,u=void 0!==n.globals.lastDrawnDataLabelsIndexes[a]?n.globals.lastDrawnDataLabelsIndexes[a][n.globals.lastDrawnDataLabelsIndexes[a].length-1]:0;if(void 0!==n.globals.dataLabelsRects[a][g]){var p=n.globals.dataLabelsRects[a][u];(t>p.x+p.width+2||e>p.y+p.height+2||t+ce.globals.gridWidth+f.textRects.width+10)&&(n="");var x=e.globals.dataLabels.style.colors[r];(("bar"===e.config.chart.type||"rangeBar"===e.config.chart.type)&&e.config.plotOptions.bar.distributed||e.config.dataLabels.distributed)&&(x=e.globals.dataLabels.style.colors[o]),"function"==typeof x&&(x=x({series:e.globals.series,seriesIndex:r,dataPointIndex:o,w:e})),g&&(x=g);var b=d.offsetX,y=d.offsetY;if("bar"!==e.config.chart.type&&"rangeBar"!==e.config.chart.type||(b=0,y=0),f.drawnextLabel){var w=i.drawText({width:100,height:parseInt(d.style.fontSize,10),x:a+b,y:s+y,foreColor:x,textAnchor:l||d.textAnchor,text:n,fontSize:h||d.style.fontSize,fontFamily:d.style.fontFamily,fontWeight:d.style.fontWeight||"normal"});if(w.attr({class:"apexcharts-datalabel",cx:a,cy:s}),d.dropShadow.enabled){var k=d.dropShadow;new v(this.ctx).dropShadow(w,k)}c.add(w),void 0===e.globals.lastDrawnDataLabelsIndexes[r]&&(e.globals.lastDrawnDataLabelsIndexes[r]=[]),e.globals.lastDrawnDataLabelsIndexes[r].push(o)}}}},{key:"addBackgroundToDataLabel",value:function(t,e){var i=this.w,a=i.config.dataLabels.background,s=a.padding,r=a.padding/2,o=e.width,n=e.height,l=new m(this.ctx).drawRect(e.x-s,e.y-r/2,o+2*s,n+r,a.borderRadius,"transparent"===i.config.chart.background?"#fff":i.config.chart.background,a.opacity,a.borderWidth,a.borderColor);a.dropShadow.enabled&&new v(this.ctx).dropShadow(l,a.dropShadow);return l}},{key:"dataLabelsBackground",value:function(){var t=this.w;if("bubble"!==t.config.chart.type)for(var e=t.globals.dom.baseEl.querySelectorAll(".apexcharts-datalabels text"),i=0;i0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.w,s=x.clone(a.globals.initialSeries);a.globals.previousPaths=[],i?(a.globals.collapsedSeries=[],a.globals.ancillaryCollapsedSeries=[],a.globals.collapsedSeriesIndices=[],a.globals.ancillaryCollapsedSeriesIndices=[]):s=this.emptyCollapsedSeries(s),a.config.series=s,t&&(e&&(a.globals.zoomed=!1,this.ctx.updateHelpers.revertDefaultAxisMinMax()),this.ctx.updateHelpers._updateSeries(s,a.config.chart.animations.dynamicAnimation.enabled))}},{key:"emptyCollapsedSeries",value:function(t){for(var e=this.w,i=0;i-1&&(t[i].data=[]);return t}},{key:"toggleSeriesOnHover",value:function(t,e){var i=this.w;e||(e=t.target);var a=i.globals.dom.baseEl.querySelectorAll(".apexcharts-series, .apexcharts-datalabels");if("mousemove"===t.type){var s=parseInt(e.getAttribute("rel"),10)-1,r=null,o=null;i.globals.axisCharts||"radialBar"===i.config.chart.type?i.globals.axisCharts?(r=i.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(s,"']")),o=i.globals.dom.baseEl.querySelector(".apexcharts-datalabels[data\\:realIndex='".concat(s,"']"))):r=i.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(s+1,"']")):r=i.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(s+1,"'] path"));for(var n=0;n=t.from&&a<=t.to&&s[e].classList.remove(i.legendInactiveClass)}}(a.config.plotOptions.heatmap.colorScale.ranges[o])}else"mouseout"===t.type&&r("remove")}},{key:"getActiveConfigSeriesIndex",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"asc",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],i=this.w,a=0;if(i.config.series.length>1)for(var s=i.config.series.map((function(t,a){return t.data&&t.data.length>0&&-1===i.globals.collapsedSeriesIndices.indexOf(a)&&(!i.globals.comboCharts||0===e.length||e.length&&e.indexOf(i.config.series[a].type)>-1)?a:-1})),r="asc"===t?0:s.length-1;"asc"===t?r=0;"asc"===t?r++:r--)if(-1!==s[r]){a=s[r];break}return a}},{key:"getBarSeriesIndices",value:function(){return this.w.globals.comboCharts?this.w.config.series.map((function(t,e){return"bar"===t.type||"column"===t.type?e:-1})).filter((function(t){return-1!==t})):this.w.config.series.map((function(t,e){return e}))}},{key:"getPreviousPaths",value:function(){var t=this.w;function e(e,i,a){for(var s=e[i].childNodes,r={type:a,paths:[],realIndex:e[i].getAttribute("data:realIndex")},o=0;o0)for(var a=function(e){for(var i=t.globals.dom.baseEl.querySelectorAll(".apexcharts-".concat(t.config.chart.type," .apexcharts-series[data\\:realIndex='").concat(e,"'] rect")),a=[],s=function(t){var e=function(e){return i[t].getAttribute(e)},s={x:parseFloat(e("x")),y:parseFloat(e("y")),width:parseFloat(e("width")),height:parseFloat(e("height"))};a.push({rect:s,color:i[t].getAttribute("color")})},r=0;r0)for(var a=0;a0?t:[]}));return t}}]),t}(),W=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.twoDSeries=[],this.threeDSeries=[],this.twoDSeriesX=[],this.seriesGoals=[],this.coreUtils=new y(this.ctx)}return r(t,[{key:"isMultiFormat",value:function(){return this.isFormatXY()||this.isFormat2DArray()}},{key:"isFormatXY",value:function(){var t=this.w.config.series.slice(),e=new N(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&null!==t[this.activeSeriesIndex].data[0]&&void 0!==t[this.activeSeriesIndex].data[0].x&&null!==t[this.activeSeriesIndex].data[0])return!0}},{key:"isFormat2DArray",value:function(){var t=this.w.config.series.slice(),e=new N(this.ctx);if(this.activeSeriesIndex=e.getActiveConfigSeriesIndex(),void 0!==t[this.activeSeriesIndex].data&&t[this.activeSeriesIndex].data.length>0&&void 0!==t[this.activeSeriesIndex].data[0]&&null!==t[this.activeSeriesIndex].data[0]&&t[this.activeSeriesIndex].data[0].constructor===Array)return!0}},{key:"handleFormat2DArray",value:function(t,e){for(var i=this.w.config,a=this.w.globals,s="boxPlot"===i.chart.type||"boxPlot"===i.series[e].type,r=0;r=5?this.twoDSeries.push(x.parseNumber(t[e].data[r][4])):this.twoDSeries.push(x.parseNumber(t[e].data[r][1])),a.dataFormatXNumeric=!0),"datetime"===i.xaxis.type){var o=new Date(t[e].data[r][0]);o=new Date(o).getTime(),this.twoDSeriesX.push(o)}else this.twoDSeriesX.push(t[e].data[r][0]);for(var n=0;n-1&&(r=this.activeSeriesIndex);for(var o=0;o1&&void 0!==arguments[1]?arguments[1]:this.ctx,s=this.w.config,r=this.w.globals,o=new I(a),n=s.labels.length>0?s.labels.slice():s.xaxis.categories.slice();if(r.isRangeBar="rangeBar"===s.chart.type&&r.isBarHorizontal,r.hasXaxisGroups="category"===s.xaxis.type&&s.xaxis.group.groups.length>0,r.hasXaxisGroups&&(r.groups=s.xaxis.group.groups),r.hasSeriesGroups=null===(e=t[0])||void 0===e?void 0:e.group,r.hasSeriesGroups){var l=[],h=u(new Set(t.map((function(t){return t.group}))));t.forEach((function(t,e){var i=h.indexOf(t.group);l[i]||(l[i]=[]),l[i].push(t.name)})),r.seriesGroups=l}for(var c=function(){for(var t=0;t0&&(this.twoDSeriesX=n,r.seriesX.push(this.twoDSeriesX))),r.labels.push(this.twoDSeriesX);var g=t[d].data.map((function(t){return x.parseNumber(t)}));r.series.push(g)}r.seriesZ.push(this.threeDSeries),void 0!==t[d].name?r.seriesNames.push(t[d].name):r.seriesNames.push("series-"+parseInt(d+1,10)),void 0!==t[d].color?r.seriesColors.push(t[d].color):r.seriesColors.push(void 0)}return this.w}},{key:"parseDataNonAxisCharts",value:function(t){var e=this.w.globals,i=this.w.config;e.series=t.slice(),e.seriesNames=i.labels.slice();for(var a=0;a0)i.labels=e.xaxis.categories;else if(e.labels.length>0)i.labels=e.labels.slice();else if(this.fallbackToCategory){if(i.labels=i.labels[0],i.seriesRange.length&&(i.seriesRange.map((function(t){t.forEach((function(t){i.labels.indexOf(t.x)<0&&t.x&&i.labels.push(t.x)}))})),i.labels=Array.from(new Set(i.labels.map(JSON.stringify)),JSON.parse)),e.xaxis.convertedCatToNumeric)new z(e).convertCatToNumericXaxis(e,this.ctx,i.seriesX[0]),this._generateExternalLabels(t)}else this._generateExternalLabels(t)}},{key:"_generateExternalLabels",value:function(t){var e=this.w.globals,i=this.w.config,a=[];if(e.axisCharts){if(e.series.length>0)if(this.isFormatXY())for(var s=i.series.map((function(t,e){return t.data.filter((function(t,e,i){return i.findIndex((function(e){return e.x===t.x}))===e}))})),r=s.reduce((function(t,e,i,a){return a[t].length>e.length?t:i}),0),o=0;o4&&void 0!==arguments[4]?arguments[4]:[],r=arguments.length>5&&void 0!==arguments[5]?arguments[5]:"12px",o=!(arguments.length>6&&void 0!==arguments[6])||arguments[6],n=this.w,l=void 0===t[a]?"":t[a],h=l,c=n.globals.xLabelFormatter,d=n.config.xaxis.labels.formatter,g=!1,u=new T(this.ctx),p=l;o&&(h=u.xLabelFormat(c,l,p,{i:a,dateFormatter:new I(this.ctx).formatDate,w:n}),void 0!==d&&(h=d(l,t[a],{i:a,dateFormatter:new I(this.ctx).formatDate,w:n})));var f,x;e.length>0?(f=e[a].unit,x=null,e.forEach((function(t){"month"===t.unit?x="year":"day"===t.unit?x="month":"hour"===t.unit?x="day":"minute"===t.unit&&(x="hour")})),g=x===f,i=e[a].position,h=e[a].value):"datetime"===n.config.xaxis.type&&void 0===d&&(h=""),void 0===h&&(h=""),h=Array.isArray(h)?h:h.toString();var b=new m(this.ctx),v={};v=n.globals.rotateXLabels&&o?b.getTextRects(h,parseInt(r,10),null,"rotate(".concat(n.config.xaxis.labels.rotate," 0 0)"),!1):b.getTextRects(h,parseInt(r,10));var y=!n.config.xaxis.labels.showDuplicates&&this.ctx.timeScale;return!Array.isArray(h)&&(0===h.indexOf("NaN")||0===h.toLowerCase().indexOf("invalid")||h.toLowerCase().indexOf("infinity")>=0||s.indexOf(h)>=0&&y)&&(h=""),{x:i,text:h,textRect:v,isBold:g}}},{key:"checkLabelBasedOnTickamount",value:function(t,e,i){var a=this.w,s=a.config.xaxis.tickAmount;return"dataPoints"===s&&(s=Math.round(a.globals.gridWidth/120)),s>i||t%Math.round(i/(s+1))==0||(e.text=""),e}},{key:"checkForOverflowingLabels",value:function(t,e,i,a,s){var r=this.w;if(0===t&&r.globals.skipFirstTimelinelabel&&(e.text=""),t===i-1&&r.globals.skipLastTimelinelabel&&(e.text=""),r.config.xaxis.labels.hideOverlappingLabels&&a.length>0){var o=s[s.length-1];e.x0){!0===n.config.yaxis[s].opposite&&(t+=a.width);for(var c=e;c>=0;c--){var d=h+e/10+n.config.yaxis[s].labels.offsetY-1;n.globals.isBarHorizontal&&(d=r*c),"heatmap"===n.config.chart.type&&(d+=r/2);var g=l.drawLine(t+i.offsetX-a.width+a.offsetX,d+a.offsetY,t+i.offsetX+a.offsetX,d+a.offsetY,a.color);o.add(g),h+=r}}}}]),t}(),G=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"scaleSvgNode",value:function(t,e){var i=parseFloat(t.getAttributeNS(null,"width")),a=parseFloat(t.getAttributeNS(null,"height"));t.setAttributeNS(null,"width",i*e),t.setAttributeNS(null,"height",a*e),t.setAttributeNS(null,"viewBox","0 0 "+i+" "+a)}},{key:"fixSvgStringForIe11",value:function(t){if(!x.isIE11())return t.replace(/ /g," ");var e=0,i=t.replace(/xmlns="http:\/\/www.w3.org\/2000\/svg"/g,(function(t){return 2===++e?'xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svgjs="http://svgjs.dev"':t}));return i=(i=i.replace(/xmlns:NS\d+=""/g,"")).replace(/NS\d+:(\w+:\w+=")/g,"$1")}},{key:"getSvgString",value:function(t){null==t&&(t=1);var e=this.w.globals.dom.Paper.svg();if(1!==t){var i=this.w.globals.dom.Paper.node.cloneNode(!0);this.scaleSvgNode(i,t),e=(new XMLSerializer).serializeToString(i)}return this.fixSvgStringForIe11(e)}},{key:"cleanup",value:function(){var t=this.w,e=t.globals.dom.baseEl.getElementsByClassName("apexcharts-xcrosshairs"),i=t.globals.dom.baseEl.getElementsByClassName("apexcharts-ycrosshairs"),a=t.globals.dom.baseEl.querySelectorAll(".apexcharts-zoom-rect, .apexcharts-selection-rect");Array.prototype.forEach.call(a,(function(t){t.setAttribute("width",0)})),e&&e[0]&&(e[0].setAttribute("x",-500),e[0].setAttribute("x1",-500),e[0].setAttribute("x2",-500)),i&&i[0]&&(i[0].setAttribute("y",-100),i[0].setAttribute("y1",-100),i[0].setAttribute("y2",-100))}},{key:"svgUrl",value:function(){this.cleanup();var t=this.getSvgString(),e=new Blob([t],{type:"image/svg+xml;charset=utf-8"});return URL.createObjectURL(e)}},{key:"dataURI",value:function(t){var e=this;return new Promise((function(i){var a=e.w,s=t?t.scale||t.width/a.globals.svgWidth:1;e.cleanup();var r=document.createElement("canvas");r.width=a.globals.svgWidth*s,r.height=parseInt(a.globals.dom.elWrap.style.height,10)*s;var o="transparent"===a.config.chart.background?"#fff":a.config.chart.background,n=r.getContext("2d");n.fillStyle=o,n.fillRect(0,0,r.width*s,r.height*s);var l=e.getSvgString(s);if(window.canvg&&x.isIE11()){var h=window.canvg.Canvg.fromString(n,l,{ignoreClear:!0,ignoreDimensions:!0});h.start();var c=r.msToBlob();h.stop(),i({blob:c})}else{var d="data:image/svg+xml,"+encodeURIComponent(l),g=new Image;g.crossOrigin="anonymous",g.onload=function(){if(n.drawImage(g,0,0),r.msToBlob){var t=r.msToBlob();i({blob:t})}else{var e=r.toDataURL("image/png");i({imgURI:e})}},g.src=d}}))}},{key:"exportToSVG",value:function(){this.triggerDownload(this.svgUrl(),this.w.config.chart.toolbar.export.svg.filename,".svg")}},{key:"exportToPng",value:function(){var t=this;this.dataURI().then((function(e){var i=e.imgURI,a=e.blob;a?navigator.msSaveOrOpenBlob(a,t.w.globals.chartID+".png"):t.triggerDownload(i,t.w.config.chart.toolbar.export.png.filename,".png")}))}},{key:"exportToCSV",value:function(t){var e=this,i=t.series,a=t.fileName,s=t.columnDelimiter,r=void 0===s?",":s,o=t.lineDelimiter,n=void 0===o?"\n":o,l=this.w;i||(i=l.config.series);var h=[],c=[],d="",g=l.globals.series.map((function(t,e){return-1===l.globals.collapsedSeriesIndices.indexOf(e)?t:[]})),p=Math.max.apply(Math,u(i.map((function(t){return t.data?t.data.length:0})))),f=new W(this.ctx),b=new B(this.ctx),v=function(t){var i="";if(l.globals.axisCharts){if("category"===l.config.xaxis.type||l.config.xaxis.convertedCatToNumeric)if(l.globals.isBarHorizontal){var a=l.globals.yLabelFormatters[0],s=new N(e.ctx).getActiveConfigSeriesIndex();i=a(l.globals.labels[t],{seriesIndex:s,dataPointIndex:t,w:l})}else i=b.getLabel(l.globals.labels,l.globals.timescaleLabels,0,t).text;"datetime"===l.config.xaxis.type&&(l.config.xaxis.categories.length?i=l.config.xaxis.categories[t]:l.config.labels.length&&(i=l.config.labels[t]))}else i=l.config.labels[t];return Array.isArray(i)&&(i=i.join(" ")),x.isNumber(i)?i:i.split(r).join("")},m=function(t,e){if(h.length&&0===e&&c.push(h.join(r)),t.data){t.data=t.data.length&&t.data||u(Array(p)).map((function(){return""}));for(var a=0;a=10?l.config.chart.toolbar.export.csv.dateFormatter(s):x.isNumber(s)?s:s.split(r).join("")));for(var o=0;o0&&!s.globals.isBarHorizontal&&(this.xaxisLabels=s.globals.timescaleLabels.slice()),s.config.xaxis.overwriteCategories&&(this.xaxisLabels=s.config.xaxis.overwriteCategories),this.drawnLabels=[],this.drawnLabelsRects=[],"top"===s.config.xaxis.position?this.offY=0:this.offY=s.globals.gridHeight+1,this.offY=this.offY+s.config.xaxis.axisBorder.offsetY,this.isCategoryBarHorizontal="bar"===s.config.chart.type&&s.config.plotOptions.bar.horizontal,this.xaxisFontSize=s.config.xaxis.labels.style.fontSize,this.xaxisFontFamily=s.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=s.config.xaxis.labels.style.colors,this.xaxisBorderWidth=s.config.xaxis.axisBorder.width,this.isCategoryBarHorizontal&&(this.xaxisBorderWidth=s.config.yaxis[0].axisBorder.width.toString()),this.xaxisBorderWidth.indexOf("%")>-1?this.xaxisBorderWidth=s.globals.gridWidth*parseInt(this.xaxisBorderWidth,10)/100:this.xaxisBorderWidth=parseInt(this.xaxisBorderWidth,10),this.xaxisBorderHeight=s.config.xaxis.axisBorder.height,this.yaxis=s.config.yaxis[0]}return r(t,[{key:"drawXaxis",value:function(){var t=this.w,e=new m(this.ctx),i=e.group({class:"apexcharts-xaxis",transform:"translate(".concat(t.config.xaxis.offsetX,", ").concat(t.config.xaxis.offsetY,")")}),a=e.group({class:"apexcharts-xaxis-texts-g",transform:"translate(".concat(t.globals.translateXAxisX,", ").concat(t.globals.translateXAxisY,")")});i.add(a);for(var s=[],r=0;r6&&void 0!==arguments[6]?arguments[6]:{},h=[],c=[],d=this.w,g=l.xaxisFontSize||this.xaxisFontSize,u=l.xaxisFontFamily||this.xaxisFontFamily,p=l.xaxisForeColors||this.xaxisForeColors,f=l.fontWeight||d.config.xaxis.labels.style.fontWeight,x=l.cssClass||d.config.xaxis.labels.style.cssClass,b=d.globals.padHorizontal,v=a.length,m="category"===d.config.xaxis.type?d.globals.dataPoints:v;if(0===m&&v>m&&(m=v),s){var y=m>1?m-1:m;o=d.globals.gridWidth/y,b=b+r(0,o)/2+d.config.xaxis.labels.offsetX}else o=d.globals.gridWidth/m,b=b+r(0,o)+d.config.xaxis.labels.offsetX;for(var w=function(s){var l=b-r(s,o)/2+d.config.xaxis.labels.offsetX;0===s&&1===v&&o/2===b&&1===m&&(l=d.globals.gridWidth/2);var y=n.axesUtils.getLabel(a,d.globals.timescaleLabels,l,s,h,g,t),w=28;d.globals.rotateXLabels&&t&&(w=22),d.config.xaxis.title.text&&"top"===d.config.xaxis.position&&(w+=parseFloat(d.config.xaxis.title.style.fontSize)+2),t||(w=w+parseFloat(g)+(d.globals.xAxisLabelsHeight-d.globals.xAxisGroupLabelsHeight)+(d.globals.rotateXLabels?10:0)),y=void 0!==d.config.xaxis.tickAmount&&"dataPoints"!==d.config.xaxis.tickAmount&&"datetime"!==d.config.xaxis.type?n.axesUtils.checkLabelBasedOnTickamount(s,y,v):n.axesUtils.checkForOverflowingLabels(s,y,v,h,c);if(d.config.xaxis.labels.show){var k=e.drawText({x:y.x,y:n.offY+d.config.xaxis.labels.offsetY+w-("top"===d.config.xaxis.position?d.globals.xAxisHeight+d.config.xaxis.axisTicks.height-2:0),text:y.text,textAnchor:"middle",fontWeight:y.isBold?600:f,fontSize:g,fontFamily:u,foreColor:Array.isArray(p)?t&&d.config.xaxis.convertedCatToNumeric?p[d.globals.minX+s-1]:p[s]:p,isPlainText:!1,cssClass:(t?"apexcharts-xaxis-label ":"apexcharts-xaxis-group-label ")+x});if(i.add(k),k.on("click",(function(t){if("function"==typeof d.config.chart.events.xAxisLabelClick){var e=Object.assign({},d,{labelIndex:s});d.config.chart.events.xAxisLabelClick(t,n.ctx,e)}})),t){var A=document.createElementNS(d.globals.SVGNS,"title");A.textContent=Array.isArray(y.text)?y.text.join(" "):y.text,k.node.appendChild(A),""!==y.text&&(h.push(y.text),c.push(y))}}sa.globals.gridWidth)){var r=this.offY+a.config.xaxis.axisTicks.offsetY;if(e=e+r+a.config.xaxis.axisTicks.height,"top"===a.config.xaxis.position&&(e=r-a.config.xaxis.axisTicks.height),a.config.xaxis.axisTicks.show){var o=new m(this.ctx).drawLine(t+a.config.xaxis.axisTicks.offsetX,r+a.config.xaxis.offsetY,s+a.config.xaxis.axisTicks.offsetX,e+a.config.xaxis.offsetY,a.config.xaxis.axisTicks.color);i.add(o),o.node.classList.add("apexcharts-xaxis-tick")}}}},{key:"getXAxisTicksPositions",value:function(){var t=this.w,e=[],i=this.xaxisLabels.length,a=t.globals.padHorizontal;if(t.globals.timescaleLabels.length>0)for(var s=0;s0){var h=s[s.length-1].getBBox(),c=s[0].getBBox();h.x<-20&&s[s.length-1].parentNode.removeChild(s[s.length-1]),c.x+c.width>t.globals.gridWidth&&!t.globals.isBarHorizontal&&s[0].parentNode.removeChild(s[0]);for(var d=0;d0&&(this.xaxisLabels=i.globals.timescaleLabels.slice())}return r(t,[{key:"drawGridArea",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,e=this.w,i=new m(this.ctx);null===t&&(t=i.group({class:"apexcharts-grid"}));var a=i.drawLine(e.globals.padHorizontal,1,e.globals.padHorizontal,e.globals.gridHeight,"transparent"),s=i.drawLine(e.globals.padHorizontal,e.globals.gridHeight,e.globals.gridWidth,e.globals.gridHeight,"transparent");return t.add(s),t.add(a),t}},{key:"drawGrid",value:function(){var t=null;return this.w.globals.axisCharts&&(t=this.renderGrid(),this.drawGridArea(t.el)),t}},{key:"createGridMask",value:function(){var t=this.w,e=t.globals,i=new m(this.ctx),a=Array.isArray(t.config.stroke.width)?0:t.config.stroke.width;if(Array.isArray(t.config.stroke.width)){var s=0;t.config.stroke.width.forEach((function(t){s=Math.max(s,t)})),a=s}e.dom.elGridRectMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elGridRectMask.setAttribute("id","gridRectMask".concat(e.cuid)),e.dom.elGridRectMarkerMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elGridRectMarkerMask.setAttribute("id","gridRectMarkerMask".concat(e.cuid)),e.dom.elForecastMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elForecastMask.setAttribute("id","forecastMask".concat(e.cuid)),e.dom.elNonForecastMask=document.createElementNS(e.SVGNS,"clipPath"),e.dom.elNonForecastMask.setAttribute("id","nonForecastMask".concat(e.cuid));var r=t.config.chart.type,o=0,n=0;("bar"===r||"rangeBar"===r||"candlestick"===r||"boxPlot"===r||t.globals.comboBarCount>0)&&t.globals.isXNumeric&&!t.globals.isBarHorizontal&&(o=t.config.grid.padding.left,n=t.config.grid.padding.right,e.barPadForNumericAxis>o&&(o=e.barPadForNumericAxis,n=e.barPadForNumericAxis)),e.dom.elGridRect=i.drawRect(-a/2-o-2,-a/2,e.gridWidth+a+n+o+4,e.gridHeight+a,0,"#fff");var l=t.globals.markers.largestSize+1;e.dom.elGridRectMarker=i.drawRect(2*-l,2*-l,e.gridWidth+4*l,e.gridHeight+4*l,0,"#fff"),e.dom.elGridRectMask.appendChild(e.dom.elGridRect.node),e.dom.elGridRectMarkerMask.appendChild(e.dom.elGridRectMarker.node);var h=e.dom.baseEl.querySelector("defs");h.appendChild(e.dom.elGridRectMask),h.appendChild(e.dom.elForecastMask),h.appendChild(e.dom.elNonForecastMask),h.appendChild(e.dom.elGridRectMarkerMask)}},{key:"_drawGridLines",value:function(t){var e=t.i,i=t.x1,a=t.y1,s=t.x2,r=t.y2,o=t.xCount,n=t.parent,l=this.w;if(!(0===e&&l.globals.skipFirstTimelinelabel||e===o-1&&l.globals.skipLastTimelinelabel&&!l.config.xaxis.labels.formatter||"radar"===l.config.chart.type)){l.config.grid.xaxis.lines.show&&this._drawGridLine({i:e,x1:i,y1:a,x2:s,y2:r,xCount:o,parent:n});var h=0;if(l.globals.hasXaxisGroups&&"between"===l.config.xaxis.tickPlacement){var c=l.globals.groups;if(c){for(var d=0,g=0;d2));s++);return!t.globals.isBarHorizontal||this.isRangeBar?(i=this.xaxisLabels.length,this.isRangeBar&&(i--,a=t.globals.labels.length,t.config.xaxis.tickAmount&&t.config.xaxis.labels.formatter&&(i=t.config.xaxis.tickAmount)),this._drawXYLines({xCount:i,tickAmount:a})):(i=a,a=t.globals.xTickAmount,this._drawInvertedXYLines({xCount:i,tickAmount:a})),this.drawGridBands(i,a),{el:this.elg,elGridBorders:this.elGridBorders,xAxisTickWidth:t.globals.gridWidth/i}}},{key:"drawGridBands",value:function(t,e){var i=this.w;if(void 0!==i.config.grid.row.colors&&i.config.grid.row.colors.length>0)for(var a=0,s=i.globals.gridHeight/e,r=i.globals.gridWidth,o=0,n=0;o=i.config.grid.row.colors.length&&(n=0),this._drawGridBandRect({c:n,x1:0,y1:a,x2:r,y2:s,type:"row"}),a+=i.globals.gridHeight/e;if(void 0!==i.config.grid.column.colors&&i.config.grid.column.colors.length>0)for(var l=i.globals.isBarHorizontal||"category"!==i.config.xaxis.type&&!i.config.xaxis.convertedCatToNumeric?t:t-1,h=i.globals.padHorizontal,c=i.globals.padHorizontal+i.globals.gridWidth/l,d=i.globals.gridHeight,g=0,u=0;g=i.config.grid.column.colors.length&&(u=0),this._drawGridBandRect({c:u,x1:h,y1:0,x2:c,y2:d,type:"column"}),h+=i.globals.gridWidth/l}}]),t}(),_=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"niceScale",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,s=arguments.length>4?arguments[4]:void 0,r=this.w,o=Math.abs(e-t);if("dataPoints"===(i=this._adjustTicksForSmallRange(i,a,o))&&(i=r.globals.dataPoints-1),t===Number.MIN_VALUE&&0===e||!x.isNumber(t)&&!x.isNumber(e)||t===Number.MIN_VALUE&&e===-Number.MAX_VALUE)return t=0,e=i,this.linearScale(t,e,i);t>e?(console.warn("axis.min cannot be greater than axis.max"),e=t+.1):t===e&&(t=0===t?0:t-.5,e=0===e?2:e+.5);var n=[];o<1&&s&&("candlestick"===r.config.chart.type||"candlestick"===r.config.series[a].type||"boxPlot"===r.config.chart.type||"boxPlot"===r.config.series[a].type||r.globals.isRangeData)&&(e*=1.01);var l=i+1;l<2?l=2:l>2&&(l-=2);var h=o/l,c=Math.floor(x.log10(h)),d=Math.pow(10,c),g=Math.round(h/d);g<1&&(g=1);var u=g*d,p=u*Math.floor(t/u),f=u*Math.ceil(e/u),b=p;if(s&&o>2){for(;n.push(x.stripNumber(b,7)),!((b+=u)>f););return{result:n,niceMin:n[0],niceMax:n[n.length-1]}}var v=t;(n=[]).push(x.stripNumber(v,7));for(var m=Math.abs(e-t)/i,y=0;y<=i;y++)v+=m,n.push(v);return n[n.length-2]>=e&&n.pop(),{result:n,niceMin:n[0],niceMax:n[n.length-1]}}},{key:"linearScale",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10,a=arguments.length>3?arguments[3]:void 0,s=Math.abs(e-t);"dataPoints"===(i=this._adjustTicksForSmallRange(i,a,s))&&(i=this.w.globals.dataPoints-1);var r=s/i;i===Number.MAX_VALUE&&(i=10,r=1);for(var o=[],n=t;i>=0;)o.push(n),n+=r,i-=1;return{result:o,niceMin:o[0],niceMax:o[o.length-1]}}},{key:"logarithmicScaleNice",value:function(t,e,i){e<=0&&(e=Math.max(t,i)),t<=0&&(t=Math.min(e,i));for(var a=[],s=Math.ceil(Math.log(e)/Math.log(i)+1),r=Math.floor(Math.log(t)/Math.log(i));r5)a.allSeriesCollapsed=!1,a.yAxisScale[t]=this.logarithmicScale(e,i,r.logBase),a.yAxisScale[t]=r.forceNiceScale?this.logarithmicScaleNice(e,i,r.logBase):this.logarithmicScale(e,i,r.logBase);else if(i!==-Number.MAX_VALUE&&x.isNumber(i))if(a.allSeriesCollapsed=!1,void 0===r.min&&void 0===r.max||r.forceNiceScale){var n=void 0===s.yaxis[t].max&&void 0===s.yaxis[t].min||s.yaxis[t].forceNiceScale;a.yAxisScale[t]=this.niceScale(e,i,r.tickAmount?r.tickAmount:o<5&&o>1?o+1:5,t,n)}else a.yAxisScale[t]=this.linearScale(e,i,r.tickAmount,t);else a.yAxisScale[t]=this.linearScale(0,5,5)}},{key:"setXScale",value:function(t,e){var i=this.w,a=i.globals,s=i.config.xaxis,r=Math.abs(e-t);return e!==-Number.MAX_VALUE&&x.isNumber(e)?a.xAxisScale=this.linearScale(t,e,s.tickAmount?s.tickAmount:r<5&&r>1?r+1:5,0):a.xAxisScale=this.linearScale(0,5,5),a.xAxisScale}},{key:"setMultipleYScales",value:function(){var t=this,e=this.w.globals,i=this.w.config,a=e.minYArr.concat([]),s=e.maxYArr.concat([]),r=[];i.yaxis.forEach((function(e,o){var n=o;i.series.forEach((function(t,i){t.name===e.seriesName&&(n=i,o!==i?r.push({index:i,similarIndex:o,alreadyExists:!0}):r.push({index:i}))}));var l=a[n],h=s[n];t.setYScaleForIndex(o,l,h)})),this.sameScaleInMultipleAxes(a,s,r)}},{key:"sameScaleInMultipleAxes",value:function(t,e,i){var a=this,s=this.w.config,r=this.w.globals,o=[];i.forEach((function(t){t.alreadyExists&&(void 0===o[t.index]&&(o[t.index]=[]),o[t.index].push(t.index),o[t.index].push(t.similarIndex))})),r.yAxisSameScaleIndices=o,o.forEach((function(t,e){o.forEach((function(i,a){var s,r;e!==a&&(s=t,r=i,s.filter((function(t){return-1!==r.indexOf(t)}))).length>0&&(o[e]=o[e].concat(o[a]))}))}));var n=o.map((function(t){return t.filter((function(e,i){return t.indexOf(e)===i}))})).map((function(t){return t.sort()}));o=o.filter((function(t){return!!t}));var l=n.slice(),h=l.map((function(t){return JSON.stringify(t)}));l=l.filter((function(t,e){return h.indexOf(JSON.stringify(t))===e}));var c=[],d=[];t.forEach((function(t,i){l.forEach((function(a,s){a.indexOf(i)>-1&&(void 0===c[s]&&(c[s]=[],d[s]=[]),c[s].push({key:i,value:t}),d[s].push({key:i,value:e[i]}))}))}));var g=Array.apply(null,Array(l.length)).map(Number.prototype.valueOf,Number.MIN_VALUE),u=Array.apply(null,Array(l.length)).map(Number.prototype.valueOf,-Number.MAX_VALUE);c.forEach((function(t,e){t.forEach((function(t,i){g[e]=Math.min(t.value,g[e])}))})),d.forEach((function(t,e){t.forEach((function(t,i){u[e]=Math.max(t.value,u[e])}))})),t.forEach((function(t,e){d.forEach((function(t,i){var o=g[i],n=u[i];s.chart.stacked&&(n=0,t.forEach((function(t,e){t.value!==-Number.MAX_VALUE&&(n+=t.value),o!==Number.MIN_VALUE&&(o+=c[i][e].value)}))),t.forEach((function(i,l){t[l].key===e&&(void 0!==s.yaxis[e].min&&(o="function"==typeof s.yaxis[e].min?s.yaxis[e].min(r.minY):s.yaxis[e].min),void 0!==s.yaxis[e].max&&(n="function"==typeof s.yaxis[e].max?s.yaxis[e].max(r.maxY):s.yaxis[e].max),a.setYScaleForIndex(e,o,n))}))}))}))}},{key:"autoScaleY",value:function(t,e,i){t||(t=this);var a=t.w;if(a.globals.isMultipleYAxis||a.globals.collapsedSeries.length)return console.warn("autoScaleYaxis is not supported in a multi-yaxis chart."),e;var s=a.globals.seriesX[0],r=a.config.chart.stacked;return e.forEach((function(t,o){for(var n=0,l=0;l=i.xaxis.min){n=l;break}var h,c,d=a.globals.minYArr[o],g=a.globals.maxYArr[o],u=a.globals.stackedSeriesTotals;a.globals.series.forEach((function(o,l){var p=o[n];r?(p=u[n],h=c=p,u.forEach((function(t,e){s[e]<=i.xaxis.max&&s[e]>=i.xaxis.min&&(t>c&&null!==t&&(c=t),o[e]=i.xaxis.min){var r=t,o=t;a.globals.series.forEach((function(i,a){null!==t&&(r=Math.min(i[e],r),o=Math.max(i[e],o))})),o>c&&null!==o&&(c=o),rd&&(h=d),e.length>1?(e[l].min=void 0===t.min?h:t.min,e[l].max=void 0===t.max?c:t.max):(e[0].min=void 0===t.min?h:t.min,e[0].max=void 0===t.max?c:t.max)}))})),e}}]),t}(),U=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.scales=new _(e)}return r(t,[{key:"init",value:function(){this.setYRange(),this.setXRange(),this.setZRange()}},{key:"getMinYMaxY",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.MAX_VALUE,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-Number.MAX_VALUE,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w.config,r=this.w.globals,o=-Number.MAX_VALUE,n=Number.MIN_VALUE;null===a&&(a=t+1);var l=r.series,h=l,c=l;"candlestick"===s.chart.type?(h=r.seriesCandleL,c=r.seriesCandleH):"boxPlot"===s.chart.type?(h=r.seriesCandleO,c=r.seriesCandleC):r.isRangeData&&(h=r.seriesRangeStart,c=r.seriesRangeEnd);for(var d=t;dh[d][g]&&h[d][g]<0&&(n=h[d][g])):r.hasNullValues=!0}}return"rangeBar"===s.chart.type&&r.seriesRangeStart.length&&r.isBarHorizontal&&(n=e),"bar"===s.chart.type&&(n<0&&o<0&&(o=0),n===Number.MIN_VALUE&&(n=0)),{minY:n,maxY:o,lowestY:e,highestY:i}}},{key:"setYRange",value:function(){var t=this.w.globals,e=this.w.config;t.maxY=-Number.MAX_VALUE,t.minY=Number.MIN_VALUE;var i=Number.MAX_VALUE;if(t.isMultipleYAxis)for(var a=0;a=0&&i<=10||void 0!==e.yaxis[0].min||void 0!==e.yaxis[0].max)&&(o=0),t.minY=i-5*o/100,i>0&&t.minY<0&&(t.minY=0),t.maxY=t.maxY+5*o/100}if(e.yaxis.forEach((function(e,i){void 0!==e.max&&("number"==typeof e.max?t.maxYArr[i]=e.max:"function"==typeof e.max&&(t.maxYArr[i]=e.max(t.isMultipleYAxis?t.maxYArr[i]:t.maxY)),t.maxY=t.maxYArr[i]),void 0!==e.min&&("number"==typeof e.min?t.minYArr[i]=e.min:"function"==typeof e.min&&(t.minYArr[i]=e.min(t.isMultipleYAxis?t.minYArr[i]===Number.MIN_VALUE?0:t.minYArr[i]:t.minY)),t.minY=t.minYArr[i])})),t.isBarHorizontal){["min","max"].forEach((function(i){void 0!==e.xaxis[i]&&"number"==typeof e.xaxis[i]&&("min"===i?t.minY=e.xaxis[i]:t.maxY=e.xaxis[i])}))}return t.isMultipleYAxis?(this.scales.setMultipleYScales(),t.minY=i,t.yAxisScale.forEach((function(e,i){t.minYArr[i]=e.niceMin,t.maxYArr[i]=e.niceMax}))):(this.scales.setYScaleForIndex(0,t.minY,t.maxY),t.minY=t.yAxisScale[0].niceMin,t.maxY=t.yAxisScale[0].niceMax,t.minYArr[0]=t.yAxisScale[0].niceMin,t.maxYArr[0]=t.yAxisScale[0].niceMax),{minY:t.minY,maxY:t.maxY,minYArr:t.minYArr,maxYArr:t.maxYArr,yAxisScale:t.yAxisScale}}},{key:"setXRange",value:function(){var t=this.w.globals,e=this.w.config,i="numeric"===e.xaxis.type||"datetime"===e.xaxis.type||"category"===e.xaxis.type&&!t.noLabelsProvided||t.noLabelsProvided||t.isXNumeric;if(t.isXNumeric&&function(){for(var e=0;et.dataPoints&&0!==t.dataPoints&&(a=t.dataPoints-1)):"dataPoints"===e.xaxis.tickAmount?(t.series.length>1&&(a=t.series[t.maxValsInArrayIndex].length-1),t.isXNumeric&&(a=t.maxX-t.minX-1)):a=e.xaxis.tickAmount,t.xTickAmount=a,void 0!==e.xaxis.max&&"number"==typeof e.xaxis.max&&(t.maxX=e.xaxis.max),void 0!==e.xaxis.min&&"number"==typeof e.xaxis.min&&(t.minX=e.xaxis.min),void 0!==e.xaxis.range&&(t.minX=t.maxX-e.xaxis.range),t.minX!==Number.MAX_VALUE&&t.maxX!==-Number.MAX_VALUE)if(e.xaxis.convertedCatToNumeric&&!t.dataFormatXNumeric){for(var s=[],r=t.minX-1;r0&&(t.xAxisScale=this.scales.linearScale(1,t.labels.length,a-1),t.seriesX=t.labels.slice());i&&(t.labels=t.xAxisScale.result.slice())}return t.isBarHorizontal&&t.labels.length&&(t.xTickAmount=t.labels.length),this._handleSingleDataPoint(),this._getMinXDiff(),{minX:t.minX,maxX:t.maxX}}},{key:"setZRange",value:function(){var t=this.w.globals;if(t.isDataXYZ)for(var e=0;e0){var s=e-a[i-1];s>0&&(t.minXDiff=Math.min(s,t.minXDiff))}})),1!==t.dataPoints&&t.minXDiff!==Number.MAX_VALUE||(t.minXDiff=.5)}))}},{key:"_setStackedMinMax",value:function(){var t=this,e=this.w.globals;if(e.series.length){var i=e.seriesGroups;i.length||(i=[this.w.config.series.map((function(t){return t.name}))]);var a={},s={};i.forEach((function(i){a[i]=[],s[i]=[],t.w.config.series.map((function(t,e){return i.indexOf(t.name)>-1?e:null})).filter((function(t){return null!==t})).forEach((function(t){for(var r=0;r0?a[i][r]+=parseFloat(e.series[t][r])+1e-4:s[i][r]+=parseFloat(e.series[t][r]))}))})),Object.entries(a).forEach((function(t){var i=g(t,1)[0];a[i].forEach((function(t,r){e.maxY=Math.max(e.maxY,a[i][r]),e.minY=Math.min(e.minY,s[i][r])}))}))}}}]),t}(),q=function(){function t(e,i){a(this,t),this.ctx=e,this.elgrid=i,this.w=e.w;var s=this.w;this.xaxisFontSize=s.config.xaxis.labels.style.fontSize,this.axisFontFamily=s.config.xaxis.labels.style.fontFamily,this.xaxisForeColors=s.config.xaxis.labels.style.colors,this.isCategoryBarHorizontal="bar"===s.config.chart.type&&s.config.plotOptions.bar.horizontal,this.xAxisoffX=0,"bottom"===s.config.xaxis.position&&(this.xAxisoffX=s.globals.gridHeight),this.drawnLabels=[],this.axesUtils=new B(e)}return r(t,[{key:"drawYaxis",value:function(t){var e=this,i=this.w,a=new m(this.ctx),s=i.config.yaxis[t].labels.style,r=s.fontSize,o=s.fontFamily,n=s.fontWeight,l=a.group({class:"apexcharts-yaxis",rel:t,transform:"translate("+i.globals.translateYAxisX[t]+", 0)"});if(this.axesUtils.isYAxisHidden(t))return l;var h=a.group({class:"apexcharts-yaxis-texts-g"});l.add(h);var c=i.globals.yAxisScale[t].result.length-1,d=i.globals.gridHeight/c,g=i.globals.translateY,u=i.globals.yLabelFormatters[t],p=i.globals.yAxisScale[t].result.slice();p=this.axesUtils.checkForReversedLabels(t,p);var f="";if(i.config.yaxis[t].labels.show)for(var x=function(l){var x=p[l];x=u(x,l,i);var b=i.config.yaxis[t].labels.padding;i.config.yaxis[t].opposite&&0!==i.config.yaxis.length&&(b*=-1);var v="end";i.config.yaxis[t].opposite&&(v="start"),"left"===i.config.yaxis[t].labels.align?v="start":"center"===i.config.yaxis[t].labels.align?v="middle":"right"===i.config.yaxis[t].labels.align&&(v="end");var m=e.axesUtils.getYAxisForeColor(s.colors,t),y=a.drawText({x:b,y:g+c/10+i.config.yaxis[t].labels.offsetY+1,text:x,textAnchor:v,fontSize:r,fontFamily:o,fontWeight:n,maxWidth:i.config.yaxis[t].labels.maxWidth,foreColor:Array.isArray(m)?m[l]:m,isPlainText:!1,cssClass:"apexcharts-yaxis-label "+s.cssClass});l===c&&(f=y),h.add(y);var w=document.createElementNS(i.globals.SVGNS,"title");if(w.textContent=Array.isArray(x)?x.join(" "):x,y.node.appendChild(w),0!==i.config.yaxis[t].labels.rotate){var k=a.rotateAroundCenter(f.node),A=a.rotateAroundCenter(y.node);y.node.setAttribute("transform","rotate(".concat(i.config.yaxis[t].labels.rotate," ").concat(k.x," ").concat(A.y,")"))}g+=d},b=c;b>=0;b--)x(b);if(void 0!==i.config.yaxis[t].title.text){var v=a.group({class:"apexcharts-yaxis-title"}),y=0;i.config.yaxis[t].opposite&&(y=i.globals.translateYAxisX[t]);var w=a.drawText({x:y,y:i.globals.gridHeight/2+i.globals.translateY+i.config.yaxis[t].title.offsetY,text:i.config.yaxis[t].title.text,textAnchor:"end",foreColor:i.config.yaxis[t].title.style.color,fontSize:i.config.yaxis[t].title.style.fontSize,fontWeight:i.config.yaxis[t].title.style.fontWeight,fontFamily:i.config.yaxis[t].title.style.fontFamily,cssClass:"apexcharts-yaxis-title-text "+i.config.yaxis[t].title.style.cssClass});v.add(w),l.add(v)}var k=i.config.yaxis[t].axisBorder,A=31+k.offsetX;if(i.config.yaxis[t].opposite&&(A=-31-k.offsetX),k.show){var S=a.drawLine(A,i.globals.translateY+k.offsetY-2,A,i.globals.gridHeight+i.globals.translateY+k.offsetY+2,k.color,0,k.width);l.add(S)}return i.config.yaxis[t].axisTicks.show&&this.axesUtils.drawYAxisTicks(A,c,k,i.config.yaxis[t].axisTicks,t,d,l),l}},{key:"drawYaxisInversed",value:function(t){var e=this.w,i=new m(this.ctx),a=i.group({class:"apexcharts-xaxis apexcharts-yaxis-inversed"}),s=i.group({class:"apexcharts-xaxis-texts-g",transform:"translate(".concat(e.globals.translateXAxisX,", ").concat(e.globals.translateXAxisY,")")});a.add(s);var r=e.globals.yAxisScale[t].result.length-1,o=e.globals.gridWidth/r+.1,n=o+e.config.xaxis.labels.offsetX,l=e.globals.xLabelFormatter,h=e.globals.yAxisScale[t].result.slice(),c=e.globals.timescaleLabels;c.length>0&&(this.xaxisLabels=c.slice(),r=(h=c.slice()).length),h=this.axesUtils.checkForReversedLabels(t,h);var d=c.length;if(e.config.xaxis.labels.show)for(var g=d?0:r;d?g=0;d?g++:g--){var u=h[g];u=l(u,g,e);var p=e.globals.gridWidth+e.globals.padHorizontal-(n-o+e.config.xaxis.labels.offsetX);if(c.length){var f=this.axesUtils.getLabel(h,c,p,g,this.drawnLabels,this.xaxisFontSize);p=f.x,u=f.text,this.drawnLabels.push(f.text),0===g&&e.globals.skipFirstTimelinelabel&&(u=""),g===h.length-1&&e.globals.skipLastTimelinelabel&&(u="")}var x=i.drawText({x:p,y:this.xAxisoffX+e.config.xaxis.labels.offsetY+30-("top"===e.config.xaxis.position?e.globals.xAxisHeight+e.config.xaxis.axisTicks.height-2:0),text:u,textAnchor:"middle",foreColor:Array.isArray(this.xaxisForeColors)?this.xaxisForeColors[t]:this.xaxisForeColors,fontSize:this.xaxisFontSize,fontFamily:this.xaxisFontFamily,fontWeight:e.config.xaxis.labels.style.fontWeight,isPlainText:!1,cssClass:"apexcharts-xaxis-label "+e.config.xaxis.labels.style.cssClass});s.add(x),x.tspan(u);var b=document.createElementNS(e.globals.SVGNS,"title");b.textContent=u,x.node.appendChild(b),n+=o}return this.inversedYAxisTitleText(a),this.inversedYAxisBorder(a),a}},{key:"inversedYAxisBorder",value:function(t){var e=this.w,i=new m(this.ctx),a=e.config.xaxis.axisBorder;if(a.show){var s=0;"bar"===e.config.chart.type&&e.globals.isXNumeric&&(s-=15);var r=i.drawLine(e.globals.padHorizontal+s+a.offsetX,this.xAxisoffX,e.globals.gridWidth,this.xAxisoffX,a.color,0,a.height);this.elgrid&&this.elgrid.elGridBorders&&e.config.grid.show?this.elgrid.elGridBorders.add(r):t.add(r)}}},{key:"inversedYAxisTitleText",value:function(t){var e=this.w,i=new m(this.ctx);if(void 0!==e.config.xaxis.title.text){var a=i.group({class:"apexcharts-xaxis-title apexcharts-yaxis-title-inversed"}),s=i.drawText({x:e.globals.gridWidth/2+e.config.xaxis.title.offsetX,y:this.xAxisoffX+parseFloat(this.xaxisFontSize)+parseFloat(e.config.xaxis.title.style.fontSize)+e.config.xaxis.title.offsetY+20,text:e.config.xaxis.title.text,textAnchor:"middle",fontSize:e.config.xaxis.title.style.fontSize,fontFamily:e.config.xaxis.title.style.fontFamily,fontWeight:e.config.xaxis.title.style.fontWeight,foreColor:e.config.xaxis.title.style.color,cssClass:"apexcharts-xaxis-title-text "+e.config.xaxis.title.style.cssClass});a.add(s),t.add(a)}}},{key:"yAxisTitleRotate",value:function(t,e){var i=this.w,a=new m(this.ctx),s={width:0,height:0},r={width:0,height:0},o=i.globals.dom.baseEl.querySelector(" .apexcharts-yaxis[rel='".concat(t,"'] .apexcharts-yaxis-texts-g"));null!==o&&(s=o.getBoundingClientRect());var n=i.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(t,"'] .apexcharts-yaxis-title text"));if(null!==n&&(r=n.getBoundingClientRect()),null!==n){var l=this.xPaddingForYAxisTitle(t,s,r,e);n.setAttribute("x",l.xPos-(e?10:0))}if(null!==n){var h=a.rotateAroundCenter(n);n.setAttribute("transform","rotate(".concat(e?-1*i.config.yaxis[t].title.rotate:i.config.yaxis[t].title.rotate," ").concat(h.x," ").concat(h.y,")"))}}},{key:"xPaddingForYAxisTitle",value:function(t,e,i,a){var s=this.w,r=0,o=0,n=10;return void 0===s.config.yaxis[t].title.text||t<0?{xPos:o,padd:0}:(a?(o=e.width+s.config.yaxis[t].title.offsetX+i.width/2+n/2,0===(r+=1)&&(o-=n/2)):(o=-1*e.width+s.config.yaxis[t].title.offsetX+n/2+i.width/2,s.globals.isBarHorizontal&&(n=25,o=-1*e.width-s.config.yaxis[t].title.offsetX-n)),{xPos:o,padd:n})}},{key:"setYAxisXPosition",value:function(t,e){var i=this.w,a=0,s=0,r=18,o=1;i.config.yaxis.length>1&&(this.multipleYs=!0),i.config.yaxis.map((function(n,l){var h=i.globals.ignoreYAxisIndexes.indexOf(l)>-1||!n.show||n.floating||0===t[l].width,c=t[l].width+e[l].width;n.opposite?i.globals.isBarHorizontal?(s=i.globals.gridWidth+i.globals.translateX-1,i.globals.translateYAxisX[l]=s-n.labels.offsetX):(s=i.globals.gridWidth+i.globals.translateX+o,h||(o=o+c+20),i.globals.translateYAxisX[l]=s-n.labels.offsetX+20):(a=i.globals.translateX-r,h||(r=r+c+20),i.globals.translateYAxisX[l]=a+n.labels.offsetX)}))}},{key:"setYAxisTextAlignments",value:function(){var t=this.w,e=t.globals.dom.baseEl.getElementsByClassName("apexcharts-yaxis");(e=x.listToArray(e)).forEach((function(e,i){var a=t.config.yaxis[i];if(a&&!a.floating&&void 0!==a.labels.align){var s=t.globals.dom.baseEl.querySelector(".apexcharts-yaxis[rel='".concat(i,"'] .apexcharts-yaxis-texts-g")),r=t.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxis[rel='".concat(i,"'] .apexcharts-yaxis-label"));r=x.listToArray(r);var o=s.getBoundingClientRect();"left"===a.labels.align?(r.forEach((function(t,e){t.setAttribute("text-anchor","start")})),a.opposite||s.setAttribute("transform","translate(-".concat(o.width,", 0)"))):"center"===a.labels.align?(r.forEach((function(t,e){t.setAttribute("text-anchor","middle")})),s.setAttribute("transform","translate(".concat(o.width/2*(a.opposite?1:-1),", 0)"))):"right"===a.labels.align&&(r.forEach((function(t,e){t.setAttribute("text-anchor","end")})),a.opposite&&s.setAttribute("transform","translate(".concat(o.width,", 0)")))}}))}}]),t}(),Z=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.documentEvent=x.bind(this.documentEvent,this)}return r(t,[{key:"addEventListener",value:function(t,e){var i=this.w;i.globals.events.hasOwnProperty(t)?i.globals.events[t].push(e):i.globals.events[t]=[e]}},{key:"removeEventListener",value:function(t,e){var i=this.w;if(i.globals.events.hasOwnProperty(t)){var a=i.globals.events[t].indexOf(e);-1!==a&&i.globals.events[t].splice(a,1)}}},{key:"fireEvent",value:function(t,e){var i=this.w;if(i.globals.events.hasOwnProperty(t)){e&&e.length||(e=[]);for(var a=i.globals.events[t],s=a.length,r=0;r0&&(e=this.w.config.chart.locales.concat(window.Apex.chart.locales));var i=e.filter((function(e){return e.name===t}))[0];if(!i)throw new Error("Wrong locale name provided. Please make sure you set the correct locale name in options");var a=x.extend(C,i);this.w.globals.locale=a.options}}]),t}(),J=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"drawAxis",value:function(t,e){var i,a,s=this,r=this.w.globals,o=this.w.config,n=new V(this.ctx,e),l=new q(this.ctx,e);r.axisCharts&&"radar"!==t&&(r.isBarHorizontal?(a=l.drawYaxisInversed(0),i=n.drawXaxisInversed(0),r.dom.elGraphical.add(i),r.dom.elGraphical.add(a)):(i=n.drawXaxis(),r.dom.elGraphical.add(i),o.yaxis.map((function(t,e){if(-1===r.ignoreYAxisIndexes.indexOf(e)&&(a=l.drawYaxis(e),r.dom.Paper.add(a),"back"===s.w.config.grid.position)){var i=r.dom.Paper.children()[1];i.remove(),r.dom.Paper.add(i)}}))))}}]),t}(),Q=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"drawXCrosshairs",value:function(){var t=this.w,e=new m(this.ctx),i=new v(this.ctx),a=t.config.xaxis.crosshairs.fill.gradient,s=t.config.xaxis.crosshairs.dropShadow,r=t.config.xaxis.crosshairs.fill.type,o=a.colorFrom,n=a.colorTo,l=a.opacityFrom,h=a.opacityTo,c=a.stops,d=s.enabled,g=s.left,u=s.top,p=s.blur,f=s.color,b=s.opacity,y=t.config.xaxis.crosshairs.fill.color;if(t.config.xaxis.crosshairs.show){"gradient"===r&&(y=e.drawGradient("vertical",o,n,l,h,null,c,null));var w=e.drawRect();1===t.config.xaxis.crosshairs.width&&(w=e.drawLine());var k=t.globals.gridHeight;(!x.isNumber(k)||k<0)&&(k=0);var A=t.config.xaxis.crosshairs.width;(!x.isNumber(A)||A<0)&&(A=0),w.attr({class:"apexcharts-xcrosshairs",x:0,y:0,y2:k,width:A,height:k,fill:y,filter:"none","fill-opacity":t.config.xaxis.crosshairs.opacity,stroke:t.config.xaxis.crosshairs.stroke.color,"stroke-width":t.config.xaxis.crosshairs.stroke.width,"stroke-dasharray":t.config.xaxis.crosshairs.stroke.dashArray}),d&&(w=i.dropShadow(w,{left:g,top:u,blur:p,color:f,opacity:b})),t.globals.dom.elGraphical.add(w)}}},{key:"drawYCrosshairs",value:function(){var t=this.w,e=new m(this.ctx),i=t.config.yaxis[0].crosshairs,a=t.globals.barPadForNumericAxis;if(t.config.yaxis[0].crosshairs.show){var s=e.drawLine(-a,0,t.globals.gridWidth+a,0,i.stroke.color,i.stroke.dashArray,i.stroke.width);s.attr({class:"apexcharts-ycrosshairs"}),t.globals.dom.elGraphical.add(s)}var r=e.drawLine(-a,0,t.globals.gridWidth+a,0,i.stroke.color,0,0);r.attr({class:"apexcharts-ycrosshairs-hidden"}),t.globals.dom.elGraphical.add(r)}}]),t}(),K=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"checkResponsiveConfig",value:function(t){var e=this,i=this.w,a=i.config;if(0!==a.responsive.length){var s=a.responsive.slice();s.sort((function(t,e){return t.breakpoint>e.breakpoint?1:e.breakpoint>t.breakpoint?-1:0})).reverse();var r=new E({}),o=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=s[0].breakpoint,o=window.innerWidth>0?window.innerWidth:screen.width;if(o>a){var n=y.extendArrayProps(r,i.globals.initialConfig,i);t=x.extend(n,t),t=x.extend(i.config,t),e.overrideResponsiveOptions(t)}else for(var l=0;l0&&"function"==typeof i.config.colors[0]&&(i.globals.colors=i.config.series.map((function(t,a){var s=i.config.colors[a];return s||(s=i.config.colors[0]),"function"==typeof s?(e.isColorFn=!0,s({value:i.globals.axisCharts?i.globals.series[a][0]?i.globals.series[a][0]:0:i.globals.series[a],seriesIndex:a,dataPointIndex:a,w:i})):s})))),i.globals.seriesColors.map((function(t,e){t&&(i.globals.colors[e]=t)})),i.config.theme.monochrome.enabled){var s=[],r=i.globals.series.length;(this.isBarDistributed||this.isHeatmapDistributed)&&(r=i.globals.series[0].length*i.globals.series.length);for(var o=i.config.theme.monochrome.color,n=1/(r/i.config.theme.monochrome.shadeIntensity),l=i.config.theme.monochrome.shadeTo,h=0,c=0;c2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=e||a.globals.series.length;if(null===i&&(i=this.isBarDistributed||this.isHeatmapDistributed||"heatmap"===a.config.chart.type&&a.config.plotOptions.heatmap.colorScale.inverse),i&&a.globals.series.length&&(s=a.globals.series[a.globals.maxValsInArrayIndex].length*a.globals.series.length),t.lengtht.globals.svgWidth&&(this.dCtx.lgRect.width=t.globals.svgWidth/1.5),this.dCtx.lgRect}},{key:"getLargestStringFromMultiArr",value:function(t,e){var i=t;if(this.w.globals.isMultiLineX){var a=e.map((function(t,e){return Array.isArray(t)?t.length:1})),s=Math.max.apply(Math,u(a));i=e[a.indexOf(s)]}return i}}]),t}(),at=function(){function t(e){a(this,t),this.w=e.w,this.dCtx=e}return r(t,[{key:"getxAxisLabelsCoords",value:function(){var t,e=this.w,i=e.globals.labels.slice();if(e.config.xaxis.convertedCatToNumeric&&0===i.length&&(i=e.globals.categoryLabels),e.globals.timescaleLabels.length>0){var a=this.getxAxisTimeScaleLabelsCoords();t={width:a.width,height:a.height},e.globals.rotateXLabels=!1}else{this.dCtx.lgWidthForSideLegends="left"!==e.config.legend.position&&"right"!==e.config.legend.position||e.config.legend.floating?0:this.dCtx.lgRect.width;var s=e.globals.xLabelFormatter,r=x.getLargestStringFromArr(i),o=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,i);e.globals.isBarHorizontal&&(o=r=e.globals.yAxisScale[0].result.reduce((function(t,e){return t.length>e.length?t:e}),0));var n=new T(this.dCtx.ctx),l=r;r=n.xLabelFormat(s,r,l,{i:void 0,dateFormatter:new I(this.dCtx.ctx).formatDate,w:e}),o=n.xLabelFormat(s,o,l,{i:void 0,dateFormatter:new I(this.dCtx.ctx).formatDate,w:e}),(e.config.xaxis.convertedCatToNumeric&&void 0===r||""===String(r).trim())&&(o=r="1");var h=new m(this.dCtx.ctx),c=h.getTextRects(r,e.config.xaxis.labels.style.fontSize),d=c;if(r!==o&&(d=h.getTextRects(o,e.config.xaxis.labels.style.fontSize)),(t={width:c.width>=d.width?c.width:d.width,height:c.height>=d.height?c.height:d.height}).width*i.length>e.globals.svgWidth-this.dCtx.lgWidthForSideLegends-this.dCtx.yAxisWidth-this.dCtx.gridPad.left-this.dCtx.gridPad.right&&0!==e.config.xaxis.labels.rotate||e.config.xaxis.labels.rotateAlways){if(!e.globals.isBarHorizontal){e.globals.rotateXLabels=!0;var g=function(t){return h.getTextRects(t,e.config.xaxis.labels.style.fontSize,e.config.xaxis.labels.style.fontFamily,"rotate(".concat(e.config.xaxis.labels.rotate," 0 0)"),!1)};c=g(r),r!==o&&(d=g(o)),t.height=(c.height>d.height?c.height:d.height)/1.5,t.width=c.width>d.width?c.width:d.width}}else e.globals.rotateXLabels=!1}return e.config.xaxis.labels.show||(t={width:0,height:0}),{width:t.width,height:t.height}}},{key:"getxAxisGroupLabelsCoords",value:function(){var t,e=this.w;if(!e.globals.hasXaxisGroups)return{width:0,height:0};var i,a=(null===(t=e.config.xaxis.group.style)||void 0===t?void 0:t.fontSize)||e.config.xaxis.labels.style.fontSize,s=e.globals.groups.map((function(t){return t.title})),r=x.getLargestStringFromArr(s),o=this.dCtx.dimHelpers.getLargestStringFromMultiArr(r,s),n=new m(this.dCtx.ctx),l=n.getTextRects(r,a),h=l;return r!==o&&(h=n.getTextRects(o,a)),i={width:l.width>=h.width?l.width:h.width,height:l.height>=h.height?l.height:h.height},e.config.xaxis.labels.show||(i={width:0,height:0}),{width:i.width,height:i.height}}},{key:"getxAxisTitleCoords",value:function(){var t=this.w,e=0,i=0;if(void 0!==t.config.xaxis.title.text){var a=new m(this.dCtx.ctx).getTextRects(t.config.xaxis.title.text,t.config.xaxis.title.style.fontSize);e=a.width,i=a.height}return{width:e,height:i}}},{key:"getxAxisTimeScaleLabelsCoords",value:function(){var t,e=this.w;this.dCtx.timescaleLabels=e.globals.timescaleLabels.slice();var i=this.dCtx.timescaleLabels.map((function(t){return t.value})),a=i.reduce((function(t,e){return void 0===t?(console.error("You have possibly supplied invalid Date format. Please supply a valid JavaScript Date"),0):t.length>e.length?t:e}),0);return 1.05*(t=new m(this.dCtx.ctx).getTextRects(a,e.config.xaxis.labels.style.fontSize)).width*i.length>e.globals.gridWidth&&0!==e.config.xaxis.labels.rotate&&(e.globals.overlappingXLabels=!0),t}},{key:"additionalPaddingXLabels",value:function(t){var e=this,i=this.w,a=i.globals,s=i.config,r=s.xaxis.type,o=t.width;a.skipLastTimelinelabel=!1,a.skipFirstTimelinelabel=!1;var n=i.config.yaxis[0].opposite&&i.globals.isBarHorizontal,l=function(t,n){s.yaxis.length>1&&function(t){return-1!==a.collapsedSeriesIndices.indexOf(t)}(n)||function(t){if(e.dCtx.timescaleLabels&&e.dCtx.timescaleLabels.length){var n=e.dCtx.timescaleLabels[0],l=e.dCtx.timescaleLabels[e.dCtx.timescaleLabels.length-1].position+o/1.75-e.dCtx.yAxisWidthRight,h=n.position-o/1.75+e.dCtx.yAxisWidthLeft,c="right"===i.config.legend.position&&e.dCtx.lgRect.width>0?e.dCtx.lgRect.width:0;l>a.svgWidth-a.translateX-c&&(a.skipLastTimelinelabel=!0),h<-(t.show&&!t.floating||"bar"!==s.chart.type&&"candlestick"!==s.chart.type&&"rangeBar"!==s.chart.type&&"boxPlot"!==s.chart.type?10:o/1.75)&&(a.skipFirstTimelinelabel=!0)}else"datetime"===r?e.dCtx.gridPad.rightString(n.niceMax).length?c:n.niceMax,g=h(d,{seriesIndex:o,dataPointIndex:-1,w:e}),u=g;if(void 0!==g&&0!==g.length||(g=d),e.globals.isBarHorizontal){a=0;var p=e.globals.labels.slice();g=h(g=x.getLargestStringFromArr(p),{seriesIndex:o,dataPointIndex:-1,w:e}),u=t.dCtx.dimHelpers.getLargestStringFromMultiArr(g,p)}var f=new m(t.dCtx.ctx),b="rotate(".concat(r.labels.rotate," 0 0)"),v=f.getTextRects(g,r.labels.style.fontSize,r.labels.style.fontFamily,b,!1),y=v;g!==u&&(y=f.getTextRects(u,r.labels.style.fontSize,r.labels.style.fontFamily,b,!1)),i.push({width:(l>y.width||l>v.width?l:y.width>v.width?y.width:v.width)+a,height:y.height>v.height?y.height:v.height})}else i.push({width:0,height:0})})),i}},{key:"getyAxisTitleCoords",value:function(){var t=this,e=this.w,i=[];return e.config.yaxis.map((function(e,a){if(e.show&&void 0!==e.title.text){var s=new m(t.dCtx.ctx),r="rotate(".concat(e.title.rotate," 0 0)"),o=s.getTextRects(e.title.text,e.title.style.fontSize,e.title.style.fontFamily,r,!1);i.push({width:o.width,height:o.height})}else i.push({width:0,height:0})})),i}},{key:"getTotalYAxisWidth",value:function(){var t=this.w,e=0,i=0,a=0,s=t.globals.yAxisScale.length>1?10:0,r=new B(this.dCtx.ctx),o=function(o,n){var l=t.config.yaxis[n].floating,h=0;o.width>0&&!l?(h=o.width+s,function(e){return t.globals.ignoreYAxisIndexes.indexOf(e)>-1}(n)&&(h=h-o.width-s)):h=l||r.isYAxisHidden(n)?0:5,t.config.yaxis[n].opposite?a+=h:i+=h,e+=h};return t.globals.yLabelsCoords.map((function(t,e){o(t,e)})),t.globals.yTitleCoords.map((function(t,e){o(t,e)})),t.globals.isBarHorizontal&&!t.config.yaxis[0].floating&&(e=t.globals.yLabelsCoords[0].width+t.globals.yTitleCoords[0].width+15),this.dCtx.yAxisWidthLeft=i,this.dCtx.yAxisWidthRight=a,e}}]),t}(),rt=function(){function t(e){a(this,t),this.w=e.w,this.dCtx=e}return r(t,[{key:"gridPadForColumnsInNumericAxis",value:function(t){var e=this.w;if(e.globals.noData||e.globals.allSeriesCollapsed)return 0;var i=function(t){return"bar"===t||"rangeBar"===t||"candlestick"===t||"boxPlot"===t},a=e.config.chart.type,s=0,r=i(a)?e.config.series.length:1;if(e.globals.comboBarCount>0&&(r=e.globals.comboBarCount),e.globals.collapsedSeries.forEach((function(t){i(t.type)&&(r-=1)})),e.config.chart.stacked&&(r=1),(i(a)||e.globals.comboBarCount>0)&&e.globals.isXNumeric&&!e.globals.isBarHorizontal&&r>0){var o,n,l=Math.abs(e.globals.initialMaxX-e.globals.initialMinX);l<=3&&(l=e.globals.dataPoints),o=l/t,e.globals.minXDiff&&e.globals.minXDiff/o>0&&(n=e.globals.minXDiff/o),n>t/2&&(n/=2),(s=n/r*parseInt(e.config.plotOptions.bar.columnWidth,10)/100)<1&&(s=1),s=s/(r>1?1:1.5)+5,e.globals.barPadForNumericAxis=s}return s}},{key:"gridPadFortitleSubtitle",value:function(){var t=this,e=this.w,i=e.globals,a=this.dCtx.isSparkline||!e.globals.axisCharts?0:10;["title","subtitle"].forEach((function(i){void 0!==e.config[i].text?a+=e.config[i].margin:a+=t.dCtx.isSparkline||!e.globals.axisCharts?0:5})),!e.config.legend.show||"bottom"!==e.config.legend.position||e.config.legend.floating||e.globals.axisCharts||(a+=10);var s=this.dCtx.dimHelpers.getTitleSubtitleCoords("title"),r=this.dCtx.dimHelpers.getTitleSubtitleCoords("subtitle");i.gridHeight=i.gridHeight-s.height-r.height-a,i.translateY=i.translateY+s.height+r.height+a}},{key:"setGridXPosForDualYAxis",value:function(t,e){var i=this.w,a=new B(this.dCtx.ctx);i.config.yaxis.map((function(s,r){-1!==i.globals.ignoreYAxisIndexes.indexOf(r)||s.floating||a.isYAxisHidden(r)||(s.opposite&&(i.globals.translateX=i.globals.translateX-(e[r].width+t[r].width)-parseInt(i.config.yaxis[r].labels.style.fontSize,10)/1.2-12),i.globals.translateX<2&&(i.globals.translateX=2))}))}}]),t}(),ot=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.lgRect={},this.yAxisWidth=0,this.yAxisWidthLeft=0,this.yAxisWidthRight=0,this.xAxisHeight=0,this.isSparkline=this.w.config.chart.sparkline.enabled,this.dimHelpers=new it(this),this.dimYAxis=new st(this),this.dimXAxis=new at(this),this.dimGrid=new rt(this),this.lgWidthForSideLegends=0,this.gridPad=this.w.config.grid.padding,this.xPadRight=0,this.xPadLeft=0}return r(t,[{key:"plotCoords",value:function(){var t=this,e=this.w,i=e.globals;this.lgRect=this.dimHelpers.getLegendsRect(),this.isSparkline&&(e.config.markers.discrete.length>0||e.config.markers.size>0)&&Object.entries(this.gridPad).forEach((function(e){var i=g(e,2),a=i[0],s=i[1];t.gridPad[a]=Math.max(s,t.w.globals.markers.largestSize/1.5)})),i.axisCharts?this.setDimensionsForAxisCharts():this.setDimensionsForNonAxisCharts(),this.dimGrid.gridPadFortitleSubtitle(),i.gridHeight=i.gridHeight-this.gridPad.top-this.gridPad.bottom,i.gridWidth=i.gridWidth-this.gridPad.left-this.gridPad.right-this.xPadRight-this.xPadLeft;var a=this.dimGrid.gridPadForColumnsInNumericAxis(i.gridWidth);i.gridWidth=i.gridWidth-2*a,i.translateX=i.translateX+this.gridPad.left+this.xPadLeft+(a>0?a+4:0),i.translateY=i.translateY+this.gridPad.top}},{key:"setDimensionsForAxisCharts",value:function(){var t=this,e=this.w,i=e.globals,a=this.dimYAxis.getyAxisLabelsCoords(),s=this.dimYAxis.getyAxisTitleCoords();e.globals.yLabelsCoords=[],e.globals.yTitleCoords=[],e.config.yaxis.map((function(t,i){e.globals.yLabelsCoords.push({width:a[i].width,index:i}),e.globals.yTitleCoords.push({width:s[i].width,index:i})})),this.yAxisWidth=this.dimYAxis.getTotalYAxisWidth();var r=this.dimXAxis.getxAxisLabelsCoords(),o=this.dimXAxis.getxAxisGroupLabelsCoords(),n=this.dimXAxis.getxAxisTitleCoords();this.conditionalChecksForAxisCoords(r,n,o),i.translateXAxisY=e.globals.rotateXLabels?this.xAxisHeight/8:-4,i.translateXAxisX=e.globals.rotateXLabels&&e.globals.isXNumeric&&e.config.xaxis.labels.rotate<=-45?-this.xAxisWidth/4:0,e.globals.isBarHorizontal&&(i.rotateXLabels=!1,i.translateXAxisY=parseInt(e.config.xaxis.labels.style.fontSize,10)/1.5*-1),i.translateXAxisY=i.translateXAxisY+e.config.xaxis.labels.offsetY,i.translateXAxisX=i.translateXAxisX+e.config.xaxis.labels.offsetX;var l=this.yAxisWidth,h=this.xAxisHeight;i.xAxisLabelsHeight=this.xAxisHeight-n.height,i.xAxisGroupLabelsHeight=i.xAxisLabelsHeight-r.height,i.xAxisLabelsWidth=this.xAxisWidth,i.xAxisHeight=this.xAxisHeight;var c=10;("radar"===e.config.chart.type||this.isSparkline)&&(l=0,h=i.goldenPadding),this.isSparkline&&(this.lgRect={height:0,width:0}),(this.isSparkline||"treemap"===e.config.chart.type)&&(l=0,h=0,c=0),this.isSparkline||this.dimXAxis.additionalPaddingXLabels(r);var d=function(){i.translateX=l,i.gridHeight=i.svgHeight-t.lgRect.height-h-(t.isSparkline||"treemap"===e.config.chart.type?0:e.globals.rotateXLabels?10:15),i.gridWidth=i.svgWidth-l};switch("top"===e.config.xaxis.position&&(c=i.xAxisHeight-e.config.xaxis.axisTicks.height-5),e.config.legend.position){case"bottom":i.translateY=c,d();break;case"top":i.translateY=this.lgRect.height+c,d();break;case"left":i.translateY=c,i.translateX=this.lgRect.width+l,i.gridHeight=i.svgHeight-h-12,i.gridWidth=i.svgWidth-this.lgRect.width-l;break;case"right":i.translateY=c,i.translateX=l,i.gridHeight=i.svgHeight-h-12,i.gridWidth=i.svgWidth-this.lgRect.width-l-5;break;default:throw new Error("Legend position not supported")}this.dimGrid.setGridXPosForDualYAxis(s,a),new q(this.ctx).setYAxisXPosition(a,s)}},{key:"setDimensionsForNonAxisCharts",value:function(){var t=this.w,e=t.globals,i=t.config,a=0;t.config.legend.show&&!t.config.legend.floating&&(a=20);var s="pie"===i.chart.type||"polarArea"===i.chart.type||"donut"===i.chart.type?"pie":"radialBar",r=i.plotOptions[s].offsetY,o=i.plotOptions[s].offsetX;if(!i.legend.show||i.legend.floating)return e.gridHeight=e.svgHeight-i.grid.padding.left+i.grid.padding.right,e.gridWidth=e.gridHeight,e.translateY=r,void(e.translateX=o+(e.svgWidth-e.gridWidth)/2);switch(i.legend.position){case"bottom":e.gridHeight=e.svgHeight-this.lgRect.height-e.goldenPadding,e.gridWidth=e.svgWidth,e.translateY=r-10,e.translateX=o+(e.svgWidth-e.gridWidth)/2;break;case"top":e.gridHeight=e.svgHeight-this.lgRect.height-e.goldenPadding,e.gridWidth=e.svgWidth,e.translateY=this.lgRect.height+r+10,e.translateX=o+(e.svgWidth-e.gridWidth)/2;break;case"left":e.gridWidth=e.svgWidth-this.lgRect.width-a,e.gridHeight="auto"!==i.chart.height?e.svgHeight:e.gridWidth,e.translateY=r,e.translateX=o+this.lgRect.width+a;break;case"right":e.gridWidth=e.svgWidth-this.lgRect.width-a-5,e.gridHeight="auto"!==i.chart.height?e.svgHeight:e.gridWidth,e.translateY=r,e.translateX=o+10;break;default:throw new Error("Legend position not supported")}}},{key:"conditionalChecksForAxisCoords",value:function(t,e,i){var a=this.w,s=a.globals.hasXaxisGroups?2:1,r=i.height+t.height+e.height,o=a.globals.isMultiLineX?1.2:a.globals.LINE_HEIGHT_RATIO,n=a.globals.rotateXLabels?22:10,l=a.globals.rotateXLabels&&"bottom"===a.config.legend.position?10:0;this.xAxisHeight=r*o+s*n+l,this.xAxisWidth=t.width,this.xAxisHeight-e.height>a.config.xaxis.labels.maxHeight&&(this.xAxisHeight=a.config.xaxis.labels.maxHeight),a.config.xaxis.labels.minHeight&&this.xAxisHeightc&&(this.yAxisWidth=c)}}]),t}(),nt=function(){function t(e){a(this,t),this.w=e.w,this.lgCtx=e}return r(t,[{key:"getLegendStyles",value:function(){var t=document.createElement("style");t.setAttribute("type","text/css");var e=document.createTextNode("\t\n \t\n .apexcharts-legend {\t\n display: flex;\t\n overflow: auto;\t\n padding: 0 10px;\t\n }\t\n .apexcharts-legend.apx-legend-position-bottom, .apexcharts-legend.apx-legend-position-top {\t\n flex-wrap: wrap\t\n }\t\n .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\t\n flex-direction: column;\t\n bottom: 0;\t\n }\t\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-left, .apexcharts-legend.apx-legend-position-top.apexcharts-align-left, .apexcharts-legend.apx-legend-position-right, .apexcharts-legend.apx-legend-position-left {\t\n justify-content: flex-start;\t\n }\t\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-center, .apexcharts-legend.apx-legend-position-top.apexcharts-align-center {\t\n justify-content: center; \t\n }\t\n .apexcharts-legend.apx-legend-position-bottom.apexcharts-align-right, .apexcharts-legend.apx-legend-position-top.apexcharts-align-right {\t\n justify-content: flex-end;\t\n }\t\n .apexcharts-legend-series {\t\n cursor: pointer;\t\n line-height: normal;\t\n }\t\n .apexcharts-legend.apx-legend-position-bottom .apexcharts-legend-series, .apexcharts-legend.apx-legend-position-top .apexcharts-legend-series{\t\n display: flex;\t\n align-items: center;\t\n }\t\n .apexcharts-legend-text {\t\n position: relative;\t\n font-size: 14px;\t\n }\t\n .apexcharts-legend-text *, .apexcharts-legend-marker * {\t\n pointer-events: none;\t\n }\t\n .apexcharts-legend-marker {\t\n position: relative;\t\n display: inline-block;\t\n cursor: pointer;\t\n margin-right: 3px;\t\n border-style: solid;\n }\t\n \t\n .apexcharts-legend.apexcharts-align-right .apexcharts-legend-series, .apexcharts-legend.apexcharts-align-left .apexcharts-legend-series{\t\n display: inline-block;\t\n }\t\n .apexcharts-legend-series.apexcharts-no-click {\t\n cursor: auto;\t\n }\t\n .apexcharts-legend .apexcharts-hidden-zero-series, .apexcharts-legend .apexcharts-hidden-null-series {\t\n display: none !important;\t\n }\t\n .apexcharts-inactive-legend {\t\n opacity: 0.45;\t\n }");return t.appendChild(e),t}},{key:"getLegendBBox",value:function(){var t=this.w.globals.dom.baseEl.querySelector(".apexcharts-legend").getBoundingClientRect(),e=t.width;return{clwh:t.height,clww:e}}},{key:"appendToForeignObject",value:function(){this.w.globals.dom.elLegendForeign.appendChild(this.getLegendStyles())}},{key:"toggleDataSeries",value:function(t,e){var i=this,a=this.w;if(a.globals.axisCharts||"radialBar"===a.config.chart.type){a.globals.resized=!0;var s=null,r=null;if(a.globals.risingSeries=[],a.globals.axisCharts?(s=a.globals.dom.baseEl.querySelector(".apexcharts-series[data\\:realIndex='".concat(t,"']")),r=parseInt(s.getAttribute("data:realIndex"),10)):(s=a.globals.dom.baseEl.querySelector(".apexcharts-series[rel='".concat(t+1,"']")),r=parseInt(s.getAttribute("rel"),10)-1),e)[{cs:a.globals.collapsedSeries,csi:a.globals.collapsedSeriesIndices},{cs:a.globals.ancillaryCollapsedSeries,csi:a.globals.ancillaryCollapsedSeriesIndices}].forEach((function(t){i.riseCollapsedSeries(t.cs,t.csi,r)}));else this.hideSeries({seriesEl:s,realIndex:r})}else{var o=a.globals.dom.Paper.select(" .apexcharts-series[rel='".concat(t+1,"'] path")),n=a.config.chart.type;if("pie"===n||"polarArea"===n||"donut"===n){var l=a.config.plotOptions.pie.donut.labels;new m(this.lgCtx.ctx).pathMouseDown(o.members[0],null),this.lgCtx.ctx.pie.printDataLabelsInner(o.members[0].node,l)}o.fire("click")}}},{key:"hideSeries",value:function(t){var e=t.seriesEl,i=t.realIndex,a=this.w,s=x.clone(a.config.series);if(a.globals.axisCharts){var r=!1;if(a.config.yaxis[i]&&a.config.yaxis[i].show&&a.config.yaxis[i].showAlways&&(r=!0,a.globals.ancillaryCollapsedSeriesIndices.indexOf(i)<0&&(a.globals.ancillaryCollapsedSeries.push({index:i,data:s[i].data.slice(),type:e.parentNode.className.baseVal.split("-")[1]}),a.globals.ancillaryCollapsedSeriesIndices.push(i))),!r){a.globals.collapsedSeries.push({index:i,data:s[i].data.slice(),type:e.parentNode.className.baseVal.split("-")[1]}),a.globals.collapsedSeriesIndices.push(i);var o=a.globals.risingSeries.indexOf(i);a.globals.risingSeries.splice(o,1)}}else a.globals.collapsedSeries.push({index:i,data:s[i]}),a.globals.collapsedSeriesIndices.push(i);for(var n=e.childNodes,l=0;l0){for(var r=0;r-1&&(t[a].data=[])})):t.forEach((function(i,a){e.globals.collapsedSeriesIndices.indexOf(a)>-1&&(t[a]=0)})),t}}]),t}(),lt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.onLegendClick=this.onLegendClick.bind(this),this.onLegendHovered=this.onLegendHovered.bind(this),this.isBarsDistributed="bar"===this.w.config.chart.type&&this.w.config.plotOptions.bar.distributed&&1===this.w.config.series.length,this.legendHelpers=new nt(this)}return r(t,[{key:"init",value:function(){var t=this.w,e=t.globals,i=t.config;if((i.legend.showForSingleSeries&&1===e.series.length||this.isBarsDistributed||e.series.length>1||!e.axisCharts)&&i.legend.show){for(;e.dom.elLegendWrap.firstChild;)e.dom.elLegendWrap.removeChild(e.dom.elLegendWrap.firstChild);this.drawLegends(),x.isIE11()?document.getElementsByTagName("head")[0].appendChild(this.legendHelpers.getLegendStyles()):this.legendHelpers.appendToForeignObject(),"bottom"===i.legend.position||"top"===i.legend.position?this.legendAlignHorizontal():"right"!==i.legend.position&&"left"!==i.legend.position||this.legendAlignVertical()}}},{key:"drawLegends",value:function(){var t=this,e=this.w,i=e.config.legend.fontFamily,a=e.globals.seriesNames,s=e.globals.colors.slice();if("heatmap"===e.config.chart.type){var r=e.config.plotOptions.heatmap.colorScale.ranges;a=r.map((function(t){return t.name?t.name:t.from+" - "+t.to})),s=r.map((function(t){return t.color}))}else this.isBarsDistributed&&(a=e.globals.labels.slice());e.config.legend.customLegendItems.length&&(a=e.config.legend.customLegendItems);for(var o=e.globals.legendFormatter,n=e.config.legend.inverseOrder,l=n?a.length-1:0;n?l>=0:l<=a.length-1;n?l--:l++){var h,c=o(a[l],{seriesIndex:l,w:e}),d=!1,g=!1;if(e.globals.collapsedSeries.length>0)for(var u=0;u0)for(var p=0;p0?l-10:0)+(h>0?h-10:0)}a.style.position="absolute",r=r+t+i.config.legend.offsetX,o=o+e+i.config.legend.offsetY,a.style.left=r+"px",a.style.top=o+"px","bottom"===i.config.legend.position?(a.style.top="auto",a.style.bottom=5-i.config.legend.offsetY+"px"):"right"===i.config.legend.position&&(a.style.left="auto",a.style.right=25+i.config.legend.offsetX+"px");["width","height"].forEach((function(t){a.style[t]&&(a.style[t]=parseInt(i.config.legend[t],10)+"px")}))}},{key:"legendAlignHorizontal",value:function(){var t=this.w;t.globals.dom.elLegendWrap.style.right=0;var e=this.legendHelpers.getLegendBBox(),i=new ot(this.ctx),a=i.dimHelpers.getTitleSubtitleCoords("title"),s=i.dimHelpers.getTitleSubtitleCoords("subtitle"),r=0;"bottom"===t.config.legend.position?r=-e.clwh/1.8:"top"===t.config.legend.position&&(r=a.height+s.height+t.config.title.margin+t.config.subtitle.margin-10),this.setLegendWrapXY(20,r)}},{key:"legendAlignVertical",value:function(){var t=this.w,e=this.legendHelpers.getLegendBBox(),i=0;"left"===t.config.legend.position&&(i=20),"right"===t.config.legend.position&&(i=t.globals.svgWidth-e.clww-10),this.setLegendWrapXY(i,20)}},{key:"onLegendHovered",value:function(t){var e=this.w,i=t.target.classList.contains("apexcharts-legend-text")||t.target.classList.contains("apexcharts-legend-marker");if("heatmap"===e.config.chart.type||this.isBarsDistributed){if(i){var a=parseInt(t.target.getAttribute("rel"),10)-1;this.ctx.events.fireEvent("legendHover",[this.ctx,a,this.w]),new N(this.ctx).highlightRangeInSeries(t,t.target)}}else!t.target.classList.contains("apexcharts-inactive-legend")&&i&&new N(this.ctx).toggleSeriesOnHover(t,t.target)}},{key:"onLegendClick",value:function(t){var e=this.w;if(!e.config.legend.customLegendItems.length&&(t.target.classList.contains("apexcharts-legend-text")||t.target.classList.contains("apexcharts-legend-marker"))){var i=parseInt(t.target.getAttribute("rel"),10)-1,a="true"===t.target.getAttribute("data:collapsed"),s=this.w.config.chart.events.legendClick;"function"==typeof s&&s(this.ctx,i,this.w),this.ctx.events.fireEvent("legendClick",[this.ctx,i,this.w]);var r=this.w.config.legend.markers.onClick;"function"==typeof r&&t.target.classList.contains("apexcharts-legend-marker")&&(r(this.ctx,i,this.w),this.ctx.events.fireEvent("legendMarkerClick",[this.ctx,i,this.w])),"treemap"!==e.config.chart.type&&"heatmap"!==e.config.chart.type&&!this.isBarsDistributed&&e.config.legend.onItemClick.toggleDataSeries&&this.legendHelpers.toggleDataSeries(i,a)}}}]),t}(),ht=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w;var i=this.w;this.ev=this.w.config.chart.events,this.selectedClass="apexcharts-selected",this.localeValues=this.w.globals.locale.toolbar,this.minX=i.globals.minX,this.maxX=i.globals.maxX}return r(t,[{key:"createToolbar",value:function(){var t=this,e=this.w,i=function(){return document.createElement("div")},a=i();if(a.setAttribute("class","apexcharts-toolbar"),a.style.top=e.config.chart.toolbar.offsetY+"px",a.style.right=3-e.config.chart.toolbar.offsetX+"px",e.globals.dom.elWrap.appendChild(a),this.elZoom=i(),this.elZoomIn=i(),this.elZoomOut=i(),this.elPan=i(),this.elSelection=i(),this.elZoomReset=i(),this.elMenuIcon=i(),this.elMenu=i(),this.elCustomIcons=[],this.t=e.config.chart.toolbar.tools,Array.isArray(this.t.customIcons))for(var s=0;s\n \n \n\n'),o("zoomOut",this.elZoomOut,'\n \n \n\n');var n=function(i){t.t[i]&&e.config.chart[i].enabled&&r.push({el:"zoom"===i?t.elZoom:t.elSelection,icon:"string"==typeof t.t[i]?t.t[i]:"zoom"===i?'\n \n \n \n':'\n \n \n',title:t.localeValues["zoom"===i?"selectionZoom":"selection"],class:e.globals.isTouchDevice?"apexcharts-element-hidden":"apexcharts-".concat(i,"-icon")})};n("zoom"),n("selection"),this.t.pan&&e.config.chart.zoom.enabled&&r.push({el:this.elPan,icon:"string"==typeof this.t.pan?this.t.pan:'\n \n \n \n \n \n \n \n',title:this.localeValues.pan,class:e.globals.isTouchDevice?"apexcharts-element-hidden":"apexcharts-pan-icon"}),o("reset",this.elZoomReset,'\n \n \n'),this.t.download&&r.push({el:this.elMenuIcon,icon:"string"==typeof this.t.download?this.t.download:'',title:this.localeValues.menu,class:"apexcharts-menu-icon"});for(var l=0;l0&&e.height>0&&this.slDraggableRect.selectize({points:"l, r",pointSize:8,pointType:"rect"}).resize({constraint:{minX:0,minY:0,maxX:t.globals.gridWidth,maxY:t.globals.gridHeight}}).on("resizing",this.selectionDragging.bind(this,"resizing"))}}},{key:"preselectedSelection",value:function(){var t=this.w,e=this.xyRatios;if(!t.globals.zoomEnabled)if(void 0!==t.globals.selection&&null!==t.globals.selection)this.drawSelectionRect(t.globals.selection);else if(void 0!==t.config.chart.selection.xaxis.min&&void 0!==t.config.chart.selection.xaxis.max){var i=(t.config.chart.selection.xaxis.min-t.globals.minX)/e.xRatio,a={x:i,y:0,width:t.globals.gridWidth-(t.globals.maxX-t.config.chart.selection.xaxis.max)/e.xRatio-i,height:t.globals.gridHeight,translateX:0,translateY:0,selectionEnabled:!0};this.drawSelectionRect(a),this.makeSelectionRectDraggable(),"function"==typeof t.config.chart.events.selection&&t.config.chart.events.selection(this.ctx,{xaxis:{min:t.config.chart.selection.xaxis.min,max:t.config.chart.selection.xaxis.max},yaxis:{}})}}},{key:"drawSelectionRect",value:function(t){var e=t.x,i=t.y,a=t.width,s=t.height,r=t.translateX,o=void 0===r?0:r,n=t.translateY,l=void 0===n?0:n,h=this.w,c=this.zoomRect,d=this.selectionRect;if(this.dragged||null!==h.globals.selection){var g={transform:"translate("+o+", "+l+")"};h.globals.zoomEnabled&&this.dragged&&(a<0&&(a=1),c.attr({x:e,y:i,width:a,height:s,fill:h.config.chart.zoom.zoomedArea.fill.color,"fill-opacity":h.config.chart.zoom.zoomedArea.fill.opacity,stroke:h.config.chart.zoom.zoomedArea.stroke.color,"stroke-width":h.config.chart.zoom.zoomedArea.stroke.width,"stroke-opacity":h.config.chart.zoom.zoomedArea.stroke.opacity}),m.setAttrs(c.node,g)),h.globals.selectionEnabled&&(d.attr({x:e,y:i,width:a>0?a:0,height:s>0?s:0,fill:h.config.chart.selection.fill.color,"fill-opacity":h.config.chart.selection.fill.opacity,stroke:h.config.chart.selection.stroke.color,"stroke-width":h.config.chart.selection.stroke.width,"stroke-dasharray":h.config.chart.selection.stroke.dashArray,"stroke-opacity":h.config.chart.selection.stroke.opacity}),m.setAttrs(d.node,g))}}},{key:"hideSelectionRect",value:function(t){t&&t.attr({x:0,y:0,width:0,height:0})}},{key:"selectionDrawing",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,r=this.gridRect.getBoundingClientRect(),o=s.startX-1,n=s.startY,l=!1,h=!1,c=s.clientX-r.left-o,d=s.clientY-r.top-n,g={};return Math.abs(c+o)>a.globals.gridWidth?c=a.globals.gridWidth-o:s.clientX-r.left<0&&(c=o),o>s.clientX-r.left&&(l=!0,c=Math.abs(c)),n>s.clientY-r.top&&(h=!0,d=Math.abs(d)),g="x"===i?{x:l?o-c:o,y:0,width:c,height:a.globals.gridHeight}:"y"===i?{x:0,y:h?n-d:n,width:a.globals.gridWidth,height:d}:{x:l?o-c:o,y:h?n-d:n,width:c,height:d},s.drawSelectionRect(g),s.selectionDragging("resizing"),g}},{key:"selectionDragging",value:function(t,e){var i=this,a=this.w,s=this.xyRatios,r=this.selectionRect,o=0;"resizing"===t&&(o=30);var n=function(t){return parseFloat(r.node.getAttribute(t))},l={x:n("x"),y:n("y"),width:n("width"),height:n("height")};a.globals.selection=l,"function"==typeof a.config.chart.events.selection&&a.globals.selectionEnabled&&(clearTimeout(this.w.globals.selectionResizeTimer),this.w.globals.selectionResizeTimer=window.setTimeout((function(){var t=i.gridRect.getBoundingClientRect(),e=r.node.getBoundingClientRect(),o={xaxis:{min:a.globals.xAxisScale.niceMin+(e.left-t.left)*s.xRatio,max:a.globals.xAxisScale.niceMin+(e.right-t.left)*s.xRatio},yaxis:{min:a.globals.yAxisScale[0].niceMin+(t.bottom-e.bottom)*s.yRatio[0],max:a.globals.yAxisScale[0].niceMax-(e.top-t.top)*s.yRatio[0]}};a.config.chart.events.selection(i.ctx,o),a.config.chart.brush.enabled&&void 0!==a.config.chart.events.brushScrolled&&a.config.chart.events.brushScrolled(i.ctx,o)}),o))}},{key:"selectionDrawn",value:function(t){var e=t.context,i=t.zoomtype,a=this.w,s=e,r=this.xyRatios,o=this.ctx.toolbar;if(s.startX>s.endX){var n=s.startX;s.startX=s.endX,s.endX=n}if(s.startY>s.endY){var l=s.startY;s.startY=s.endY,s.endY=l}var h=void 0,c=void 0;a.globals.isRangeBar?(h=a.globals.yAxisScale[0].niceMin+s.startX*r.invertedYRatio,c=a.globals.yAxisScale[0].niceMin+s.endX*r.invertedYRatio):(h=a.globals.xAxisScale.niceMin+s.startX*r.xRatio,c=a.globals.xAxisScale.niceMin+s.endX*r.xRatio);var d=[],g=[];if(a.config.yaxis.forEach((function(t,e){d.push(a.globals.yAxisScale[e].niceMax-r.yRatio[e]*s.startY),g.push(a.globals.yAxisScale[e].niceMax-r.yRatio[e]*s.endY)})),s.dragged&&(s.dragX>10||s.dragY>10)&&h!==c)if(a.globals.zoomEnabled){var u=x.clone(a.globals.initialConfig.yaxis),p=x.clone(a.globals.initialConfig.xaxis);if(a.globals.zoomed=!0,a.config.xaxis.convertedCatToNumeric&&(h=Math.floor(h),c=Math.floor(c),h<1&&(h=1,c=a.globals.dataPoints),c-h<2&&(c=h+1)),"xy"!==i&&"x"!==i||(p={min:h,max:c}),"xy"!==i&&"y"!==i||u.forEach((function(t,e){u[e].min=g[e],u[e].max=d[e]})),a.config.chart.zoom.autoScaleYaxis){var f=new _(s.ctx);u=f.autoScaleY(s.ctx,u,{xaxis:p})}if(o){var b=o.getBeforeZoomRange(p,u);b&&(p=b.xaxis?b.xaxis:p,u=b.yaxis?b.yaxis:u)}var v={xaxis:p};a.config.chart.group||(v.yaxis=u),s.ctx.updateHelpers._updateOptions(v,!1,s.w.config.chart.animations.dynamicAnimation.enabled),"function"==typeof a.config.chart.events.zoomed&&o.zoomCallback(p,u)}else if(a.globals.selectionEnabled){var m,y=null;m={min:h,max:c},"xy"!==i&&"y"!==i||(y=x.clone(a.config.yaxis)).forEach((function(t,e){y[e].min=g[e],y[e].max=d[e]})),a.globals.selection=s.selection,"function"==typeof a.config.chart.events.selection&&a.config.chart.events.selection(s.ctx,{xaxis:m,yaxis:y})}}},{key:"panDragging",value:function(t){var e=t.context,i=this.w,a=e;if(void 0!==i.globals.lastClientPosition.x){var s=i.globals.lastClientPosition.x-a.clientX,r=i.globals.lastClientPosition.y-a.clientY;Math.abs(s)>Math.abs(r)&&s>0?this.moveDirection="left":Math.abs(s)>Math.abs(r)&&s<0?this.moveDirection="right":Math.abs(r)>Math.abs(s)&&r>0?this.moveDirection="up":Math.abs(r)>Math.abs(s)&&r<0&&(this.moveDirection="down")}i.globals.lastClientPosition={x:a.clientX,y:a.clientY};var o=i.globals.isRangeBar?i.globals.minY:i.globals.minX,n=i.globals.isRangeBar?i.globals.maxY:i.globals.maxX;i.config.xaxis.convertedCatToNumeric||a.panScrolled(o,n)}},{key:"delayedPanScrolled",value:function(){var t=this.w,e=t.globals.minX,i=t.globals.maxX,a=(t.globals.maxX-t.globals.minX)/2;"left"===this.moveDirection?(e=t.globals.minX+a,i=t.globals.maxX+a):"right"===this.moveDirection&&(e=t.globals.minX-a,i=t.globals.maxX-a),e=Math.floor(e),i=Math.floor(i),this.updateScrolledChart({xaxis:{min:e,max:i}},e,i)}},{key:"panScrolled",value:function(t,e){var i=this.w,a=this.xyRatios,s=x.clone(i.globals.initialConfig.yaxis),r=a.xRatio,o=i.globals.minX,n=i.globals.maxX;i.globals.isRangeBar&&(r=a.invertedYRatio,o=i.globals.minY,n=i.globals.maxY),"left"===this.moveDirection?(t=o+i.globals.gridWidth/15*r,e=n+i.globals.gridWidth/15*r):"right"===this.moveDirection&&(t=o-i.globals.gridWidth/15*r,e=n-i.globals.gridWidth/15*r),i.globals.isRangeBar||(ti.globals.initialMaxX)&&(t=o,e=n);var l={min:t,max:e};i.config.chart.zoom.autoScaleYaxis&&(s=new _(this.ctx).autoScaleY(this.ctx,s,{xaxis:l}));var h={xaxis:{min:t,max:e}};i.config.chart.group||(h.yaxis=s),this.updateScrolledChart(h,t,e)}},{key:"updateScrolledChart",value:function(t,e,i){var a=this.w;this.ctx.updateHelpers._updateOptions(t,!1,!1),"function"==typeof a.config.chart.events.scrolled&&a.config.chart.events.scrolled(this.ctx,{xaxis:{min:e,max:i}})}}]),i}(ht),dt=function(){function t(e){a(this,t),this.w=e.w,this.ttCtx=e,this.ctx=e.ctx}return r(t,[{key:"getNearestValues",value:function(t){var e=t.hoverArea,i=t.elGrid,a=t.clientX,s=t.clientY,r=this.w,o=i.getBoundingClientRect(),n=o.width,l=o.height,h=n/(r.globals.dataPoints-1),c=l/r.globals.dataPoints,d=this.hasBars();!r.globals.comboCharts&&!d||r.config.xaxis.convertedCatToNumeric||(h=n/r.globals.dataPoints);var g=a-o.left-r.globals.barPadForNumericAxis,u=s-o.top;g<0||u<0||g>n||u>l?(e.classList.remove("hovering-zoom"),e.classList.remove("hovering-pan")):r.globals.zoomEnabled?(e.classList.remove("hovering-pan"),e.classList.add("hovering-zoom")):r.globals.panEnabled&&(e.classList.remove("hovering-zoom"),e.classList.add("hovering-pan"));var p=Math.round(g/h),f=Math.floor(u/c);d&&!r.config.xaxis.convertedCatToNumeric&&(p=Math.ceil(g/h),p-=1);var b=null,v=null,m=[],y=[];if(r.globals.seriesXvalues.forEach((function(t){m.push([t[0]+1e-6].concat(t))})),r.globals.seriesYvalues.forEach((function(t){y.push([t[0]+1e-6].concat(t))})),m=m.map((function(t){return t.filter((function(t){return x.isNumber(t)}))})),y=y.map((function(t){return t.filter((function(t){return x.isNumber(t)}))})),r.globals.isXNumeric){var w=this.ttCtx.getElGrid().getBoundingClientRect(),k=g*(w.width/n),A=u*(w.height/l);b=(v=this.closestInMultiArray(k,A,m,y)).index,p=v.j,null!==b&&(m=r.globals.seriesXvalues[b],p=(v=this.closestInArray(k,m)).index)}return r.globals.capturedSeriesIndex=null===b?-1:b,(!p||p<1)&&(p=0),r.globals.isBarHorizontal?r.globals.capturedDataPointIndex=f:r.globals.capturedDataPointIndex=p,{capturedSeries:b,j:r.globals.isBarHorizontal?f:p,hoverX:g,hoverY:u}}},{key:"closestInMultiArray",value:function(t,e,i,a){var s=this.w,r=0,o=null,n=-1;s.globals.series.length>1?r=this.getFirstActiveXArray(i):o=0;var l=i[r][0],h=Math.abs(t-l);if(i.forEach((function(e){e.forEach((function(e,i){var a=Math.abs(t-e);a0?e:-1})),s=0;s0)for(var a=0;a *")):this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers-wrap > *")}},{key:"getAllMarkers",value:function(){var t=this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers-wrap");(t=u(t)).sort((function(t,e){var i=Number(t.getAttribute("data:realIndex")),a=Number(e.getAttribute("data:realIndex"));return ai?-1:0}));var e=[];return t.forEach((function(t){e.push(t.querySelector(".apexcharts-marker"))})),e}},{key:"hasMarkers",value:function(t){return this.getElMarkers(t).length>0}},{key:"getElBars",value:function(){return this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-bar-series, .apexcharts-candlestick-series, .apexcharts-boxPlot-series, .apexcharts-rangebar-series")}},{key:"hasBars",value:function(){return this.getElBars().length>0}},{key:"getHoverMarkerSize",value:function(t){var e=this.w,i=e.config.markers.hover.size;return void 0===i&&(i=e.globals.markers.size[t]+e.config.markers.hover.sizeOffset),i}},{key:"toggleAllTooltipSeriesGroups",value:function(t){var e=this.w,i=this.ttCtx;0===i.allTooltipSeriesGroups.length&&(i.allTooltipSeriesGroups=e.globals.dom.baseEl.querySelectorAll(".apexcharts-tooltip-series-group"));for(var a=i.allTooltipSeriesGroups,s=0;s ').concat(i.attrs.name,""),e+="
".concat(i.val,"
")})),v.innerHTML=t+"",m.innerHTML=e+""};o?l.globals.seriesGoals[e][i]&&Array.isArray(l.globals.seriesGoals[e][i])?y():(v.innerHTML="",m.innerHTML=""):y()}else v.innerHTML="",m.innerHTML="";null!==p&&(a[e].querySelector(".apexcharts-tooltip-text-z-label").innerHTML=l.config.tooltip.z.title,a[e].querySelector(".apexcharts-tooltip-text-z-value").innerHTML=void 0!==p?p:"");o&&f[0]&&(null==c||l.globals.ancillaryCollapsedSeriesIndices.indexOf(e)>-1||l.globals.collapsedSeriesIndices.indexOf(e)>-1?f[0].parentNode.style.display="none":f[0].parentNode.style.display=l.config.tooltip.items.display)}},{key:"toggleActiveInactiveSeries",value:function(t){var e=this.w;if(t)this.tooltipUtil.toggleAllTooltipSeriesGroups("enable");else{this.tooltipUtil.toggleAllTooltipSeriesGroups("disable");var i=e.globals.dom.baseEl.querySelector(".apexcharts-tooltip-series-group");i&&(i.classList.add("apexcharts-active"),i.style.display=e.config.tooltip.items.display)}}},{key:"getValuesToPrint",value:function(t){var e=t.i,i=t.j,a=this.w,s=this.ctx.series.filteredSeriesX(),r="",o="",n=null,l=null,h={series:a.globals.series,seriesIndex:e,dataPointIndex:i,w:a},c=a.globals.ttZFormatter;null===i?l=a.globals.series[e]:a.globals.isXNumeric&&"treemap"!==a.config.chart.type?(r=s[e][i],0===s[e].length&&(r=s[this.tooltipUtil.getFirstActiveXArray(s)][i])):r=void 0!==a.globals.labels[i]?a.globals.labels[i]:"";var d=r;a.globals.isXNumeric&&"datetime"===a.config.xaxis.type?r=new T(this.ctx).xLabelFormat(a.globals.ttKeyFormatter,d,d,{i:void 0,dateFormatter:new I(this.ctx).formatDate,w:this.w}):r=a.globals.isBarHorizontal?a.globals.yLabelFormatters[0](d,h):a.globals.xLabelFormatter(d,h);return void 0!==a.config.tooltip.x.formatter&&(r=a.globals.ttKeyFormatter(d,h)),a.globals.seriesZ.length>0&&a.globals.seriesZ[e].length>0&&(n=c(a.globals.seriesZ[e][i],a)),o="function"==typeof a.config.xaxis.tooltip.formatter?a.globals.xaxisTooltipFormatter(d,h):r,{val:Array.isArray(l)?l.join(" "):l,xVal:Array.isArray(r)?r.join(" "):r,xAxisTTVal:Array.isArray(o)?o.join(" "):o,zVal:n}}},{key:"handleCustomTooltip",value:function(t){var e=t.i,i=t.j,a=t.y1,s=t.y2,r=t.w,o=this.ttCtx.getElTooltip(),n=r.config.tooltip.custom;Array.isArray(n)&&n[e]&&(n=n[e]),o.innerHTML=n({ctx:this.ctx,series:r.globals.series,seriesIndex:e,dataPointIndex:i,y1:a,y2:s,w:r})}}]),t}(),ut=function(){function t(e){a(this,t),this.ttCtx=e,this.ctx=e.ctx,this.w=e.w}return r(t,[{key:"moveXCrosshairs",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,i=this.ttCtx,a=this.w,s=i.getElXCrosshairs(),r=t-i.xcrosshairsWidth/2,o=a.globals.labels.slice().length;if(null!==e&&(r=a.globals.gridWidth/o*e),null===s||a.globals.isBarHorizontal||(s.setAttribute("x",r),s.setAttribute("x1",r),s.setAttribute("x2",r),s.setAttribute("y2",a.globals.gridHeight),s.classList.add("apexcharts-active")),r<0&&(r=0),r>a.globals.gridWidth&&(r=a.globals.gridWidth),i.isXAxisTooltipEnabled){var n=r;"tickWidth"!==a.config.xaxis.crosshairs.width&&"barWidth"!==a.config.xaxis.crosshairs.width||(n=r+i.xcrosshairsWidth/2),this.moveXAxisTooltip(n)}}},{key:"moveYCrosshairs",value:function(t){var e=this.ttCtx;null!==e.ycrosshairs&&m.setAttrs(e.ycrosshairs,{y1:t,y2:t}),null!==e.ycrosshairsHidden&&m.setAttrs(e.ycrosshairsHidden,{y1:t,y2:t})}},{key:"moveXAxisTooltip",value:function(t){var e=this.w,i=this.ttCtx;if(null!==i.xaxisTooltip&&0!==i.xcrosshairsWidth){i.xaxisTooltip.classList.add("apexcharts-active");var a=i.xaxisOffY+e.config.xaxis.tooltip.offsetY+e.globals.translateY+1+e.config.xaxis.offsetY;if(t-=i.xaxisTooltip.getBoundingClientRect().width/2,!isNaN(t)){t+=e.globals.translateX;var s;s=new m(this.ctx).getTextRects(i.xaxisTooltipText.innerHTML),i.xaxisTooltipText.style.minWidth=s.width+"px",i.xaxisTooltip.style.left=t+"px",i.xaxisTooltip.style.top=a+"px"}}}},{key:"moveYAxisTooltip",value:function(t){var e=this.w,i=this.ttCtx;null===i.yaxisTTEls&&(i.yaxisTTEls=e.globals.dom.baseEl.querySelectorAll(".apexcharts-yaxistooltip"));var a=parseInt(i.ycrosshairsHidden.getAttribute("y1"),10),s=e.globals.translateY+a,r=i.yaxisTTEls[t].getBoundingClientRect().height,o=e.globals.translateYAxisX[t]-2;e.config.yaxis[t].opposite&&(o-=26),s-=r/2,-1===e.globals.ignoreYAxisIndexes.indexOf(t)?(i.yaxisTTEls[t].classList.add("apexcharts-active"),i.yaxisTTEls[t].style.top=s+"px",i.yaxisTTEls[t].style.left=o+e.config.yaxis[t].tooltip.offsetX+"px"):i.yaxisTTEls[t].classList.remove("apexcharts-active")}},{key:"moveTooltip",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=this.w,s=this.ttCtx,r=s.getElTooltip(),o=s.tooltipRect,n=null!==i?parseFloat(i):1,l=parseFloat(t)+n+5,h=parseFloat(e)+n/2;if(l>a.globals.gridWidth/2&&(l=l-o.ttWidth-n-10),l>a.globals.gridWidth-o.ttWidth-10&&(l=a.globals.gridWidth-o.ttWidth),l<-20&&(l=-20),a.config.tooltip.followCursor){var c=s.getElGrid().getBoundingClientRect();(l=s.e.clientX-c.left)>a.globals.gridWidth/2&&(l-=s.tooltipRect.ttWidth),(h=s.e.clientY+a.globals.translateY-c.top)>a.globals.gridHeight/2&&(h-=s.tooltipRect.ttHeight)}else a.globals.isBarHorizontal||o.ttHeight/2+h>a.globals.gridHeight&&(h=a.globals.gridHeight-o.ttHeight+a.globals.translateY);isNaN(l)||(l+=a.globals.translateX,r.style.left=l+"px",r.style.top=h+"px")}},{key:"moveMarkers",value:function(t,e){var i=this.w,a=this.ttCtx;if(i.globals.markers.size[t]>0)for(var s=i.globals.dom.baseEl.querySelectorAll(" .apexcharts-series[data\\:realIndex='".concat(t,"'] .apexcharts-marker")),r=0;r0&&(h.setAttribute("r",n),h.setAttribute("cx",i),h.setAttribute("cy",a)),this.moveXCrosshairs(i),r.fixedTooltip||this.moveTooltip(i,a,n)}}},{key:"moveDynamicPointsOnHover",value:function(t){var e,i=this.ttCtx,a=i.w,s=0,r=0,o=a.globals.pointsArray;e=new N(this.ctx).getActiveConfigSeriesIndex("asc",["line","area","scatter","bubble"]);var n=i.tooltipUtil.getHoverMarkerSize(e);o[e]&&(s=o[e][t][0],r=o[e][t][1]);var l=i.tooltipUtil.getAllMarkers();if(null!==l)for(var h=0;h0?(l[h]&&l[h].setAttribute("r",n),l[h]&&l[h].setAttribute("cy",d)):l[h]&&l[h].setAttribute("r",0)}}this.moveXCrosshairs(s),i.fixedTooltip||this.moveTooltip(s,r||a.globals.gridHeight,n)}},{key:"moveStickyTooltipOverBars",value:function(t,e){var i=this.w,a=this.ttCtx,s=i.globals.columnSeries?i.globals.columnSeries.length:i.globals.series.length,r=s>=2&&s%2==0?Math.floor(s/2):Math.floor(s/2)+1;i.globals.isBarHorizontal&&(r=new N(this.ctx).getActiveConfigSeriesIndex("desc")+1);var o=i.globals.dom.baseEl.querySelector(".apexcharts-bar-series .apexcharts-series[rel='".concat(r,"'] path[j='").concat(t,"'], .apexcharts-candlestick-series .apexcharts-series[rel='").concat(r,"'] path[j='").concat(t,"'], .apexcharts-boxPlot-series .apexcharts-series[rel='").concat(r,"'] path[j='").concat(t,"'], .apexcharts-rangebar-series .apexcharts-series[rel='").concat(r,"'] path[j='").concat(t,"']"));o||"number"!=typeof e||(o=i.globals.dom.baseEl.querySelector(".apexcharts-bar-series .apexcharts-series[data\\:realIndex='".concat(e,"'] path[j='").concat(t,"'],\n .apexcharts-candlestick-series .apexcharts-series[data\\:realIndex='").concat(e,"'] path[j='").concat(t,"'],\n .apexcharts-boxPlot-series .apexcharts-series[data\\:realIndex='").concat(e,"'] path[j='").concat(t,"'],\n .apexcharts-rangebar-series .apexcharts-series[data\\:realIndex='").concat(e,"'] path[j='").concat(t,"']")));var n=o?parseFloat(o.getAttribute("cx")):0,l=o?parseFloat(o.getAttribute("cy")):0,h=o?parseFloat(o.getAttribute("barWidth")):0,c=a.getElGrid().getBoundingClientRect(),d=o&&(o.classList.contains("apexcharts-candlestick-area")||o.classList.contains("apexcharts-boxPlot-area"));i.globals.isXNumeric?(o&&!d&&(n-=s%2!=0?h/2:0),o&&d&&i.globals.comboCharts&&(n-=h/2)):i.globals.isBarHorizontal||(n=a.xAxisTicksPositions[t-1]+a.dataPointsDividedWidth/2,isNaN(n)&&(n=a.xAxisTicksPositions[t]-a.dataPointsDividedWidth/2)),i.globals.isBarHorizontal?l-=a.tooltipRect.ttHeight:i.config.tooltip.followCursor?l=a.e.clientY-c.top-a.tooltipRect.ttHeight/2:l+a.tooltipRect.ttHeight+15>i.globals.gridHeight&&(l=i.globals.gridHeight),i.globals.isBarHorizontal||this.moveXCrosshairs(n),a.fixedTooltip||this.moveTooltip(n,l||i.globals.gridHeight)}}]),t}(),pt=function(){function t(e){a(this,t),this.w=e.w,this.ttCtx=e,this.ctx=e.ctx,this.tooltipPosition=new ut(e)}return r(t,[{key:"drawDynamicPoints",value:function(){var t=this.w,e=new m(this.ctx),i=new H(this.ctx),a=t.globals.dom.baseEl.querySelectorAll(".apexcharts-series");a=u(a),t.config.chart.stacked&&a.sort((function(t,e){return parseFloat(t.getAttribute("data:realIndex"))-parseFloat(e.getAttribute("data:realIndex"))}));for(var s=0;s2&&void 0!==arguments[2]?arguments[2]:null,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,s=this.w;"bubble"!==s.config.chart.type&&this.newPointSize(t,e);var r=e.getAttribute("cx"),o=e.getAttribute("cy");if(null!==i&&null!==a&&(r=i,o=a),this.tooltipPosition.moveXCrosshairs(r),!this.fixedTooltip){if("radar"===s.config.chart.type){var n=this.ttCtx.getElGrid().getBoundingClientRect();r=this.ttCtx.e.clientX-n.left}this.tooltipPosition.moveTooltip(r,o,s.config.markers.hover.size)}}},{key:"enlargePoints",value:function(t){for(var e=this.w,i=this,a=this.ttCtx,s=t,r=e.globals.dom.baseEl.querySelectorAll(".apexcharts-series:not(.apexcharts-series-collapsed) .apexcharts-marker"),o=e.config.markers.hover.size,n=0;n=0?t[e].setAttribute("r",i):t[e].setAttribute("r",0)}}}]),t}(),ft=function(){function t(e){a(this,t),this.w=e.w;var i=this.w;this.ttCtx=e,this.isVerticalGroupedRangeBar=!i.globals.isBarHorizontal&&"rangeBar"===i.config.chart.type&&i.config.plotOptions.bar.rangeBarGroupRows}return r(t,[{key:"getAttr",value:function(t,e){return parseFloat(t.target.getAttribute(e))}},{key:"handleHeatTreeTooltip",value:function(t){var e=t.e,i=t.opt,a=t.x,s=t.y,r=t.type,o=this.ttCtx,n=this.w;if(e.target.classList.contains("apexcharts-".concat(r,"-rect"))){var l=this.getAttr(e,"i"),h=this.getAttr(e,"j"),c=this.getAttr(e,"cx"),d=this.getAttr(e,"cy"),g=this.getAttr(e,"width"),u=this.getAttr(e,"height");if(o.tooltipLabels.drawSeriesTexts({ttItems:i.ttItems,i:l,j:h,shared:!1,e:e}),n.globals.capturedSeriesIndex=l,n.globals.capturedDataPointIndex=h,a=c+o.tooltipRect.ttWidth/2+g,s=d+o.tooltipRect.ttHeight/2-u/2,o.tooltipPosition.moveXCrosshairs(c+g/2),a>n.globals.gridWidth/2&&(a=c-o.tooltipRect.ttWidth/2+g),o.w.config.tooltip.followCursor){var p=n.globals.dom.elWrap.getBoundingClientRect();a=n.globals.clientX-p.left-(a>n.globals.gridWidth/2?o.tooltipRect.ttWidth:0),s=n.globals.clientY-p.top-(s>n.globals.gridHeight/2?o.tooltipRect.ttHeight:0)}}return{x:a,y:s}}},{key:"handleMarkerTooltip",value:function(t){var e,i,a=t.e,s=t.opt,r=t.x,o=t.y,n=this.w,l=this.ttCtx;if(a.target.classList.contains("apexcharts-marker")){var h=parseInt(s.paths.getAttribute("cx"),10),c=parseInt(s.paths.getAttribute("cy"),10),d=parseFloat(s.paths.getAttribute("val"));if(i=parseInt(s.paths.getAttribute("rel"),10),e=parseInt(s.paths.parentNode.parentNode.parentNode.getAttribute("rel"),10)-1,l.intersect){var g=x.findAncestor(s.paths,"apexcharts-series");g&&(e=parseInt(g.getAttribute("data:realIndex"),10))}if(l.tooltipLabels.drawSeriesTexts({ttItems:s.ttItems,i:e,j:i,shared:!l.showOnIntersect&&n.config.tooltip.shared,e:a}),"mouseup"===a.type&&l.markerClick(a,e,i),n.globals.capturedSeriesIndex=e,n.globals.capturedDataPointIndex=i,r=h,o=c+n.globals.translateY-1.4*l.tooltipRect.ttHeight,l.w.config.tooltip.followCursor){var u=l.getElGrid().getBoundingClientRect();o=l.e.clientY+n.globals.translateY-u.top}d<0&&(o=c),l.marker.enlargeCurrentPoint(i,s.paths,r,o)}return{x:r,y:o}}},{key:"handleBarTooltip",value:function(t){var e,i,a=t.e,s=t.opt,r=this.w,o=this.ttCtx,n=o.getElTooltip(),l=0,h=0,c=0,d=this.getBarTooltipXY({e:a,opt:s});e=d.i;var g=d.barHeight,u=d.j;r.globals.capturedSeriesIndex=e,r.globals.capturedDataPointIndex=u,r.globals.isBarHorizontal&&o.tooltipUtil.hasBars()||!r.config.tooltip.shared?(h=d.x,c=d.y,i=Array.isArray(r.config.stroke.width)?r.config.stroke.width[e]:r.config.stroke.width,l=h):r.globals.comboCharts||r.config.tooltip.shared||(l/=2),isNaN(c)&&(c=r.globals.svgHeight-o.tooltipRect.ttHeight);var p=parseInt(s.paths.parentNode.getAttribute("data:realIndex"),10),f=r.globals.isMultipleYAxis?r.config.yaxis[p]&&r.config.yaxis[p].reversed:r.config.yaxis[0].reversed;if(h+o.tooltipRect.ttWidth>r.globals.gridWidth&&!f?h-=o.tooltipRect.ttWidth:h<0&&(h=0),o.w.config.tooltip.followCursor){var x=o.getElGrid().getBoundingClientRect();c=o.e.clientY-x.top}null===o.tooltip&&(o.tooltip=r.globals.dom.baseEl.querySelector(".apexcharts-tooltip")),r.config.tooltip.shared||(r.globals.comboBarCount>0?o.tooltipPosition.moveXCrosshairs(l+i/2):o.tooltipPosition.moveXCrosshairs(l)),!o.fixedTooltip&&(!r.config.tooltip.shared||r.globals.isBarHorizontal&&o.tooltipUtil.hasBars())&&(f&&(h-=o.tooltipRect.ttWidth)<0&&(h=0),!f||r.globals.isBarHorizontal&&o.tooltipUtil.hasBars()||(c=c+g-2*(r.globals.series[e][u]<0?g:0)),c=c+r.globals.translateY-o.tooltipRect.ttHeight/2,n.style.left=h+r.globals.translateX+"px",n.style.top=c+"px")}},{key:"getBarTooltipXY",value:function(t){var e=this,i=t.e,a=t.opt,s=this.w,r=null,o=this.ttCtx,n=0,l=0,h=0,c=0,d=0,g=i.target.classList;if(g.contains("apexcharts-bar-area")||g.contains("apexcharts-candlestick-area")||g.contains("apexcharts-boxPlot-area")||g.contains("apexcharts-rangebar-area")){var u=i.target,p=u.getBoundingClientRect(),f=a.elGrid.getBoundingClientRect(),x=p.height;d=p.height;var b=p.width,v=parseInt(u.getAttribute("cx"),10),m=parseInt(u.getAttribute("cy"),10);c=parseFloat(u.getAttribute("barWidth"));var y="touchmove"===i.type?i.touches[0].clientX:i.clientX;r=parseInt(u.getAttribute("j"),10),n=parseInt(u.parentNode.getAttribute("rel"),10)-1;var w=u.getAttribute("data-range-y1"),k=u.getAttribute("data-range-y2");s.globals.comboCharts&&(n=parseInt(u.parentNode.getAttribute("data:realIndex"),10));var A=function(t){return s.globals.isXNumeric?v-b/2:e.isVerticalGroupedRangeBar?v+b/2:v-o.dataPointsDividedWidth+b/2},S=function(){return m-o.dataPointsDividedHeight+x/2-o.tooltipRect.ttHeight/2};o.tooltipLabels.drawSeriesTexts({ttItems:a.ttItems,i:n,j:r,y1:w?parseInt(w,10):null,y2:k?parseInt(k,10):null,shared:!o.showOnIntersect&&s.config.tooltip.shared,e:i}),s.config.tooltip.followCursor?s.globals.isBarHorizontal?(l=y-f.left+15,h=S()):(l=A(),h=i.clientY-f.top-o.tooltipRect.ttHeight/2-15):s.globals.isBarHorizontal?((l=v)0&&i.setAttribute("width",e.xcrosshairsWidth)}},{key:"handleYCrosshair",value:function(){var t=this.w,e=this.ttCtx;e.ycrosshairs=t.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs"),e.ycrosshairsHidden=t.globals.dom.baseEl.querySelector(".apexcharts-ycrosshairs-hidden")}},{key:"drawYaxisTooltipText",value:function(t,e,i){var a=this.ttCtx,s=this.w,r=s.globals.yLabelFormatters[t];if(a.yaxisTooltips[t]){var o=a.getElGrid().getBoundingClientRect(),n=(e-o.top)*i.yRatio[t],l=s.globals.maxYArr[t]-s.globals.minYArr[t],h=s.globals.minYArr[t]+(l-n);a.tooltipPosition.moveYCrosshairs(e-o.top),a.yaxisTooltipText[t].innerHTML=r(h),a.tooltipPosition.moveYAxisTooltip(t)}}}]),t}(),bt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w;var i=this.w;this.tConfig=i.config.tooltip,this.tooltipUtil=new dt(this),this.tooltipLabels=new gt(this),this.tooltipPosition=new ut(this),this.marker=new pt(this),this.intersect=new ft(this),this.axesTooltip=new xt(this),this.showOnIntersect=this.tConfig.intersect,this.showTooltipTitle=this.tConfig.x.show,this.fixedTooltip=this.tConfig.fixed.enabled,this.xaxisTooltip=null,this.yaxisTTEls=null,this.isBarShared=!i.globals.isBarHorizontal&&this.tConfig.shared,this.lastHoverTime=Date.now()}return r(t,[{key:"getElTooltip",value:function(t){return t||(t=this),t.w.globals.dom.baseEl?t.w.globals.dom.baseEl.querySelector(".apexcharts-tooltip"):null}},{key:"getElXCrosshairs",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-xcrosshairs")}},{key:"getElGrid",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-grid")}},{key:"drawTooltip",value:function(t){var e=this.w;this.xyRatios=t,this.isXAxisTooltipEnabled=e.config.xaxis.tooltip.enabled&&e.globals.axisCharts,this.yaxisTooltips=e.config.yaxis.map((function(t,i){return!!(t.show&&t.tooltip.enabled&&e.globals.axisCharts)})),this.allTooltipSeriesGroups=[],e.globals.axisCharts||(this.showTooltipTitle=!1);var i=document.createElement("div");if(i.classList.add("apexcharts-tooltip"),e.config.tooltip.cssClass&&i.classList.add(e.config.tooltip.cssClass),i.classList.add("apexcharts-theme-".concat(this.tConfig.theme)),e.globals.dom.elWrap.appendChild(i),e.globals.axisCharts){this.axesTooltip.drawXaxisTooltip(),this.axesTooltip.drawYaxisTooltip(),this.axesTooltip.setXCrosshairWidth(),this.axesTooltip.handleYCrosshair();var a=new V(this.ctx);this.xAxisTicksPositions=a.getXAxisTicksPositions()}if(!e.globals.comboCharts&&!this.tConfig.intersect&&"rangeBar"!==e.config.chart.type||this.tConfig.shared||(this.showOnIntersect=!0),0!==e.config.markers.size&&0!==e.globals.markers.largestSize||this.marker.drawDynamicPoints(this),e.globals.collapsedSeries.length!==e.globals.series.length){this.dataPointsDividedHeight=e.globals.gridHeight/e.globals.dataPoints,this.dataPointsDividedWidth=e.globals.gridWidth/e.globals.dataPoints,this.showTooltipTitle&&(this.tooltipTitle=document.createElement("div"),this.tooltipTitle.classList.add("apexcharts-tooltip-title"),this.tooltipTitle.style.fontFamily=this.tConfig.style.fontFamily||e.config.chart.fontFamily,this.tooltipTitle.style.fontSize=this.tConfig.style.fontSize,i.appendChild(this.tooltipTitle));var s=e.globals.series.length;(e.globals.xyCharts||e.globals.comboCharts)&&this.tConfig.shared&&(s=this.showOnIntersect?1:e.globals.series.length),this.legendLabels=e.globals.dom.baseEl.querySelectorAll(".apexcharts-legend-text"),this.ttItems=this.createTTElements(s),this.addSVGEvents()}}},{key:"createTTElements",value:function(t){for(var e=this,i=this.w,a=[],s=this.getElTooltip(),r=function(r){var o=document.createElement("div");o.classList.add("apexcharts-tooltip-series-group"),o.style.order=i.config.tooltip.inverseOrder?t-r:r+1,e.tConfig.shared&&e.tConfig.enabledOnSeries&&Array.isArray(e.tConfig.enabledOnSeries)&&e.tConfig.enabledOnSeries.indexOf(r)<0&&o.classList.add("apexcharts-tooltip-series-group-hidden");var n=document.createElement("span");n.classList.add("apexcharts-tooltip-marker"),n.style.backgroundColor=i.globals.colors[r],o.appendChild(n);var l=document.createElement("div");l.classList.add("apexcharts-tooltip-text"),l.style.fontFamily=e.tConfig.style.fontFamily||i.config.chart.fontFamily,l.style.fontSize=e.tConfig.style.fontSize,["y","goals","z"].forEach((function(t){var e=document.createElement("div");e.classList.add("apexcharts-tooltip-".concat(t,"-group"));var i=document.createElement("span");i.classList.add("apexcharts-tooltip-text-".concat(t,"-label")),e.appendChild(i);var a=document.createElement("span");a.classList.add("apexcharts-tooltip-text-".concat(t,"-value")),e.appendChild(a),l.appendChild(e)})),o.appendChild(l),s.appendChild(o),a.push(o)},o=0;o0&&this.addPathsEventListeners(u,c),this.tooltipUtil.hasBars()&&!this.tConfig.shared&&this.addDatapointEventsListeners(c)}}},{key:"drawFixedTooltipRect",value:function(){var t=this.w,e=this.getElTooltip(),i=e.getBoundingClientRect(),a=i.width+10,s=i.height+10,r=this.tConfig.fixed.offsetX,o=this.tConfig.fixed.offsetY,n=this.tConfig.fixed.position.toLowerCase();return n.indexOf("right")>-1&&(r=r+t.globals.svgWidth-a+10),n.indexOf("bottom")>-1&&(o=o+t.globals.svgHeight-s-10),e.style.left=r+"px",e.style.top=o+"px",{x:r,y:o,ttWidth:a,ttHeight:s}}},{key:"addDatapointEventsListeners",value:function(t){var e=this.w.globals.dom.baseEl.querySelectorAll(".apexcharts-series-markers .apexcharts-marker, .apexcharts-bar-area, .apexcharts-candlestick-area, .apexcharts-boxPlot-area, .apexcharts-rangebar-area");this.addPathsEventListeners(e,t)}},{key:"addPathsEventListeners",value:function(t,e){for(var i=this,a=function(a){var s={paths:t[a],tooltipEl:e.tooltipEl,tooltipY:e.tooltipY,tooltipX:e.tooltipX,elGrid:e.elGrid,hoverArea:e.hoverArea,ttItems:e.ttItems};["mousemove","mouseup","touchmove","mouseout","touchend"].map((function(e){return t[a].addEventListener(e,i.onSeriesHover.bind(i,s),{capture:!1,passive:!0})}))},s=0;s=100?this.seriesHover(t,e):(clearTimeout(this.seriesHoverTimeout),this.seriesHoverTimeout=setTimeout((function(){i.seriesHover(t,e)}),100-a))}},{key:"seriesHover",value:function(t,e){var i=this;this.lastHoverTime=Date.now();var a=[],s=this.w;s.config.chart.group&&(a=this.ctx.getGroupedCharts()),s.globals.axisCharts&&(s.globals.minX===-1/0&&s.globals.maxX===1/0||0===s.globals.dataPoints)||(a.length?a.forEach((function(a){var s=i.getElTooltip(a),r={paths:t.paths,tooltipEl:s,tooltipY:t.tooltipY,tooltipX:t.tooltipX,elGrid:t.elGrid,hoverArea:t.hoverArea,ttItems:a.w.globals.tooltip.ttItems};a.w.globals.minX===i.w.globals.minX&&a.w.globals.maxX===i.w.globals.maxX&&a.w.globals.tooltip.seriesHoverByContext({chartCtx:a,ttCtx:a.w.globals.tooltip,opt:r,e:e})})):this.seriesHoverByContext({chartCtx:this.ctx,ttCtx:this.w.globals.tooltip,opt:t,e:e}))}},{key:"seriesHoverByContext",value:function(t){var e=t.chartCtx,i=t.ttCtx,a=t.opt,s=t.e,r=e.w,o=this.getElTooltip();if(o){if(i.tooltipRect={x:0,y:0,ttWidth:o.getBoundingClientRect().width,ttHeight:o.getBoundingClientRect().height},i.e=s,i.tooltipUtil.hasBars()&&!r.globals.comboCharts&&!i.isBarShared)if(this.tConfig.onDatasetHover.highlightDataSeries)new N(e).toggleSeriesOnHover(s,s.target.parentNode);i.fixedTooltip&&i.drawFixedTooltipRect(),r.globals.axisCharts?i.axisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect}):i.nonAxisChartsTooltips({e:s,opt:a,tooltipRect:i.tooltipRect})}}},{key:"axisChartsTooltips",value:function(t){var e,i,a=t.e,s=t.opt,r=this.w,o=s.elGrid.getBoundingClientRect(),n="touchmove"===a.type?a.touches[0].clientX:a.clientX,l="touchmove"===a.type?a.touches[0].clientY:a.clientY;if(this.clientY=l,this.clientX=n,r.globals.capturedSeriesIndex=-1,r.globals.capturedDataPointIndex=-1,lo.top+o.height)this.handleMouseOut(s);else{if(Array.isArray(this.tConfig.enabledOnSeries)&&!r.config.tooltip.shared){var h=parseInt(s.paths.getAttribute("index"),10);if(this.tConfig.enabledOnSeries.indexOf(h)<0)return void this.handleMouseOut(s)}var c=this.getElTooltip(),d=this.getElXCrosshairs(),g=r.globals.xyCharts||"bar"===r.config.chart.type&&!r.globals.isBarHorizontal&&this.tooltipUtil.hasBars()&&this.tConfig.shared||r.globals.comboCharts&&this.tooltipUtil.hasBars();if("mousemove"===a.type||"touchmove"===a.type||"mouseup"===a.type){if(r.globals.collapsedSeries.length+r.globals.ancillaryCollapsedSeries.length===r.globals.series.length)return;null!==d&&d.classList.add("apexcharts-active");var u=this.yaxisTooltips.filter((function(t){return!0===t}));if(null!==this.ycrosshairs&&u.length&&this.ycrosshairs.classList.add("apexcharts-active"),g&&!this.showOnIntersect)this.handleStickyTooltip(a,n,l,s);else if("heatmap"===r.config.chart.type||"treemap"===r.config.chart.type){var p=this.intersect.handleHeatTreeTooltip({e:a,opt:s,x:e,y:i,type:r.config.chart.type});e=p.x,i=p.y,c.style.left=e+"px",c.style.top=i+"px"}else this.tooltipUtil.hasBars()&&this.intersect.handleBarTooltip({e:a,opt:s}),this.tooltipUtil.hasMarkers()&&this.intersect.handleMarkerTooltip({e:a,opt:s,x:e,y:i});if(this.yaxisTooltips.length)for(var f=0;fl.width)this.handleMouseOut(a);else if(null!==n)this.handleStickyCapturedSeries(t,n,a,o);else if(this.tooltipUtil.isXoverlap(o)||s.globals.isBarHorizontal){var h=s.globals.series.findIndex((function(t,e){return!s.globals.collapsedSeriesIndices.includes(e)}));this.create(t,this,h,o,a.ttItems)}}},{key:"handleStickyCapturedSeries",value:function(t,e,i,a){var s=this.w;if(!this.tConfig.shared&&null===s.globals.series[e][a])return void this.handleMouseOut(i);if(void 0!==s.globals.series[e][a])this.tConfig.shared&&this.tooltipUtil.isXoverlap(a)&&this.tooltipUtil.isInitialSeriesSameLen()?this.create(t,this,e,a,i.ttItems):this.create(t,this,e,a,i.ttItems,!1);else if(this.tooltipUtil.isXoverlap(a)){var r=s.globals.series.findIndex((function(t,e){return!s.globals.collapsedSeriesIndices.includes(e)}));this.create(t,this,r,a,i.ttItems)}}},{key:"deactivateHoverFilter",value:function(){for(var t=this.w,e=new m(this.ctx),i=t.globals.dom.Paper.select(".apexcharts-bar-area"),a=0;a5&&void 0!==arguments[5]?arguments[5]:null,S=this.w,C=i;"mouseup"===t.type&&this.markerClick(t,a,s),null===A&&(A=this.tConfig.shared);var L=this.tooltipUtil.hasMarkers(a),P=this.tooltipUtil.getElBars();if(S.config.legend.tooltipHoverFormatter){var I=S.config.legend.tooltipHoverFormatter,T=Array.from(this.legendLabels);T.forEach((function(t){var e=t.getAttribute("data:default-text");t.innerHTML=decodeURIComponent(e)}));for(var M=0;M0?C.marker.enlargePoints(s):C.tooltipPosition.moveDynamicPointsOnHover(s);else if(this.tooltipUtil.hasBars()&&(this.barSeriesHeight=this.tooltipUtil.getBarsHeight(P),this.barSeriesHeight>0)){var R=new m(this.ctx),H=S.globals.dom.Paper.select(".apexcharts-bar-area[j='".concat(s,"']"));this.deactivateHoverFilter(),this.tooltipPosition.moveStickyTooltipOverBars(s,a);for(var D=0;Da.globals.gridHeight&&(p=a.globals.gridHeight-v)),{bcx:h,bcy:l,dataLabelsX:u,dataLabelsY:p,totalDataLabelsX:i,totalDataLabelsY:e,totalDataLabelsAnchor:"middle"}}},{key:"calculateBarsDataLabelsPosition",value:function(t){var e=this.w,i=t.x,a=t.i,s=t.j,r=t.realIndex,o=t.groupIndex,n=t.bcy,l=t.barHeight,h=t.barWidth,c=t.textRects,d=t.dataLabelsX,g=t.strokeWidth,u=t.dataLabelsConfig,p=t.barDataLabelsConfig,f=t.barTotalDataLabelsConfig,x=t.offX,b=t.offY,v=e.globals.gridHeight/e.globals.dataPoints;h=Math.abs(h);var y,w,k=(n+=-1!==o?o*l:0)-(this.barCtx.isRangeBar?0:v)+l/2+c.height/2+b-3,A="start",S=this.barCtx.series[a][s]<0,C=i;switch(this.barCtx.isReversed&&(C=i+h-(S?2*h:0),i=e.globals.gridWidth-h),p.position){case"center":d=S?C+h/2-x:Math.max(c.width/2,C-h/2)+x;break;case"bottom":d=S?C+h-g-Math.round(c.width/2)-x:C-h+g+Math.round(c.width/2)+x;break;case"top":d=S?C-g+Math.round(c.width/2)-x:C-g-Math.round(c.width/2)+x}if(this.barCtx.lastActiveBarSerieIndex===r&&f.enabled){var L=new m(this.barCtx.ctx).getTextRects(this.getStackedTotalDataLabel({realIndex:r,j:s}),u.fontSize);S?(y=C-g+Math.round(L.width/2)-x-f.offsetX-15,A="end"):y=C-g-Math.round(L.width/2)+x+f.offsetX+15,w=k+f.offsetY}return e.config.chart.stacked||(d<0?d=d+c.width+g:d+c.width/2>e.globals.gridWidth&&(d=e.globals.gridWidth-c.width-g)),{bcx:i,bcy:n,dataLabelsX:d,dataLabelsY:k,totalDataLabelsX:y,totalDataLabelsY:w,totalDataLabelsAnchor:A}}},{key:"drawCalculatedDataLabels",value:function(t){var i=t.x,a=t.y,s=t.val,r=t.i,o=t.j,n=t.textRects,l=t.barHeight,h=t.barWidth,c=t.dataLabelsConfig,d=this.w,g="rotate(0)";"vertical"===d.config.plotOptions.bar.dataLabels.orientation&&(g="rotate(-90, ".concat(i,", ").concat(a,")"));var u=new O(this.barCtx.ctx),p=new m(this.barCtx.ctx),f=c.formatter,x=null,b=d.globals.collapsedSeriesIndices.indexOf(r)>-1;if(c.enabled&&!b){x=p.group({class:"apexcharts-data-labels",transform:g});var v="";void 0!==s&&(v=f(s,e(e({},d),{},{seriesIndex:r,dataPointIndex:o,w:d}))),!s&&d.config.plotOptions.bar.hideZeroBarsWhenGrouped&&(v="");var y=d.globals.series[r][o]<0,w=d.config.plotOptions.bar.dataLabels.position;if("vertical"===d.config.plotOptions.bar.dataLabels.orientation&&("top"===w&&(c.textAnchor=y?"end":"start"),"center"===w&&(c.textAnchor="middle"),"bottom"===w&&(c.textAnchor=y?"end":"start")),this.barCtx.isRangeBar&&this.barCtx.barOptions.dataLabels.hideOverflowingLabels)hMath.abs(h)&&(v=""):n.height/1.6>Math.abs(l)&&(v=""));var k=e({},c);this.barCtx.isHorizontal&&s<0&&("start"===c.textAnchor?k.textAnchor="end":"end"===c.textAnchor&&(k.textAnchor="start")),u.plotDataLabelsText({x:i,y:a,text:v,i:r,j:o,parent:x,dataLabelsConfig:k,alwaysDrawDataLabel:!0,offsetCorrection:!0})}return x}},{key:"drawTotalDataLabels",value:function(t){var e,i=t.x,a=t.y,s=t.val,r=t.realIndex,o=t.textAnchor,n=t.barTotalDataLabelsConfig,l=new m(this.barCtx.ctx);return n.enabled&&void 0!==i&&void 0!==a&&this.barCtx.lastActiveBarSerieIndex===r&&(e=l.drawText({x:i,y:a,foreColor:n.style.color,text:s,textAnchor:o,fontFamily:n.style.fontFamily,fontSize:n.style.fontSize,fontWeight:n.style.fontWeight})),e}}]),t}(),mt=function(){function t(e){a(this,t),this.w=e.w,this.barCtx=e}return r(t,[{key:"initVariables",value:function(t){var e=this.w;this.barCtx.series=t,this.barCtx.totalItems=0,this.barCtx.seriesLen=0,this.barCtx.visibleI=-1,this.barCtx.visibleItems=1;for(var i=0;i0&&(this.barCtx.seriesLen=this.barCtx.seriesLen+1,this.barCtx.totalItems+=t[i].length),e.globals.isXNumeric)for(var a=0;ae.globals.minX&&e.globals.seriesX[i][a]0&&(a=l.globals.minXDiff/d),(r=a/c*parseInt(this.barCtx.barOptions.columnWidth,10)/100)<1&&(r=1)}-1===String(this.barCtx.barOptions.columnWidth).indexOf("%")&&(r=parseInt(this.barCtx.barOptions.columnWidth,10)),o=l.globals.gridHeight-this.barCtx.baseLineY[this.barCtx.yaxisIndex]-(this.barCtx.isReversed?l.globals.gridHeight:0)+(this.barCtx.isReversed?2*this.barCtx.baseLineY[this.barCtx.yaxisIndex]:0),t=l.globals.padHorizontal+(a-r*this.barCtx.seriesLen)/2}return{x:t,y:e,yDivision:i,xDivision:a,barHeight:s,barWidth:r,zeroH:o,zeroW:n}}},{key:"initializeStackedPrevVars",value:function(t){var e=t.w;e.globals.hasSeriesGroups?e.globals.seriesGroups.forEach((function(e){t[e]||(t[e]={}),t[e].prevY=[],t[e].prevX=[],t[e].prevYF=[],t[e].prevXF=[],t[e].prevYVal=[],t[e].prevXVal=[]})):(t.prevY=[],t.prevX=[],t.prevYF=[],t.prevXF=[],t.prevYVal=[],t.prevXVal=[])}},{key:"initializeStackedXYVars",value:function(t){var e=t.w;e.globals.hasSeriesGroups?e.globals.seriesGroups.forEach((function(e){t[e]||(t[e]={}),t[e].xArrj=[],t[e].xArrjF=[],t[e].xArrjVal=[],t[e].yArrj=[],t[e].yArrjF=[],t[e].yArrjVal=[]})):(t.xArrj=[],t.xArrjF=[],t.xArrjVal=[],t.yArrj=[],t.yArrjF=[],t.yArrjVal=[])}},{key:"getPathFillColor",value:function(t,e,i,a){var s,r,o,n,l=this.w,h=new R(this.barCtx.ctx),c=null,d=this.barCtx.barOptions.distributed?i:e;this.barCtx.barOptions.colors.ranges.length>0&&this.barCtx.barOptions.colors.ranges.map((function(a){t[e][i]>=a.from&&t[e][i]<=a.to&&(c=a.color)}));return l.config.series[e].data[i]&&l.config.series[e].data[i].fillColor&&(c=l.config.series[e].data[i].fillColor),h.fillPath({seriesNumber:this.barCtx.barOptions.distributed?d:a,dataPointIndex:i,color:c,value:t[e][i],fillConfig:null===(s=l.config.series[e].data[i])||void 0===s?void 0:s.fill,fillType:null!==(r=l.config.series[e].data[i])&&void 0!==r&&null!==(o=r.fill)&&void 0!==o&&o.type?null===(n=l.config.series[e].data[i])||void 0===n?void 0:n.fill.type:l.config.fill.type})}},{key:"getStrokeWidth",value:function(t,e,i){var a=0,s=this.w;return this.barCtx.series[t][e]?this.barCtx.isNullValue=!1:this.barCtx.isNullValue=!0,s.config.stroke.show&&(this.barCtx.isNullValue||(a=Array.isArray(this.barCtx.strokeWidth)?this.barCtx.strokeWidth[i]:this.barCtx.strokeWidth)),a}},{key:"shouldApplyRadius",value:function(t){var e=this.w,i=!1;return e.config.plotOptions.bar.borderRadius>0&&(e.config.chart.stacked&&"last"===e.config.plotOptions.bar.borderRadiusWhenStacked?this.barCtx.lastActiveBarSerieIndex===t&&(i=!0):i=!0),i}},{key:"barBackground",value:function(t){var e=t.j,i=t.i,a=t.x1,s=t.x2,r=t.y1,o=t.y2,n=t.elSeries,l=this.w,h=new m(this.barCtx.ctx),c=new N(this.barCtx.ctx).getActiveConfigSeriesIndex();if(this.barCtx.barOptions.colors.backgroundBarColors.length>0&&c===i){e>=this.barCtx.barOptions.colors.backgroundBarColors.length&&(e%=this.barCtx.barOptions.colors.backgroundBarColors.length);var d=this.barCtx.barOptions.colors.backgroundBarColors[e],g=h.drawRect(void 0!==a?a:0,void 0!==r?r:0,void 0!==s?s:l.globals.gridWidth,void 0!==o?o:l.globals.gridHeight,this.barCtx.barOptions.colors.backgroundBarRadius,d,this.barCtx.barOptions.colors.backgroundBarOpacity);n.add(g),g.node.classList.add("apexcharts-backgroundBar")}}},{key:"getColumnPaths",value:function(t){var e,i=t.barWidth,a=t.barXPosition,s=t.y1,r=t.y2,o=t.strokeWidth,n=t.seriesGroup,l=t.realIndex,h=t.i,c=t.j,d=t.w,g=new m(this.barCtx.ctx);(o=Array.isArray(o)?o[l]:o)||(o=0);var u=i,p=a;null!==(e=d.config.series[l].data[c])&&void 0!==e&&e.columnWidthOffset&&(p=a-d.config.series[l].data[c].columnWidthOffset/2,u=i+d.config.series[l].data[c].columnWidthOffset);var f=p,x=p+u;s+=.001,r+=.001;var b=g.move(f,s),v=g.move(f,s),y=g.line(x-o,s);if(d.globals.previousPaths.length>0&&(v=this.barCtx.getPreviousPath(l,c,!1)),b=b+g.line(f,r)+g.line(x-o,r)+g.line(x-o,s)+("around"===d.config.plotOptions.bar.borderRadiusApplication?" Z":" z"),v=v+g.line(f,s)+y+y+y+y+y+g.line(f,s)+("around"===d.config.plotOptions.bar.borderRadiusApplication?" Z":" z"),this.shouldApplyRadius(l)&&(b=g.roundPathCorners(b,d.config.plotOptions.bar.borderRadius)),d.config.chart.stacked){var w=this.barCtx;d.globals.hasSeriesGroups&&n&&(w=this.barCtx[n]),w.yArrj.push(r),w.yArrjF.push(Math.abs(s-r)),w.yArrjVal.push(this.barCtx.series[h][c])}return{pathTo:b,pathFrom:v}}},{key:"getBarpaths",value:function(t){var e,i=t.barYPosition,a=t.barHeight,s=t.x1,r=t.x2,o=t.strokeWidth,n=t.seriesGroup,l=t.realIndex,h=t.i,c=t.j,d=t.w,g=new m(this.barCtx.ctx);(o=Array.isArray(o)?o[l]:o)||(o=0);var u=i,p=a;null!==(e=d.config.series[l].data[c])&&void 0!==e&&e.barHeightOffset&&(u=i-d.config.series[l].data[c].barHeightOffset/2,p=a+d.config.series[l].data[c].barHeightOffset);var f=u,x=u+p;s+=.001,r+=.001;var b=g.move(s,f),v=g.move(s,f);d.globals.previousPaths.length>0&&(v=this.barCtx.getPreviousPath(l,c,!1));var y=g.line(s,x-o);if(b=b+g.line(r,f)+g.line(r,x-o)+y+("around"===d.config.plotOptions.bar.borderRadiusApplication?" Z":" z"),v=v+g.line(s,f)+y+y+y+y+y+g.line(s,f)+("around"===d.config.plotOptions.bar.borderRadiusApplication?" Z":" z"),this.shouldApplyRadius(l)&&(b=g.roundPathCorners(b,d.config.plotOptions.bar.borderRadius)),d.config.chart.stacked){var w=this.barCtx;d.globals.hasSeriesGroups&&n&&(w=this.barCtx[n]),w.xArrj.push(r),w.xArrjF.push(Math.abs(s-r)),w.xArrjVal.push(this.barCtx.series[h][c])}return{pathTo:b,pathFrom:v}}},{key:"checkZeroSeries",value:function(t){for(var e=t.series,i=this.w,a=0;a2&&void 0!==arguments[2])||arguments[2]?e:null;return null!=t&&(i=e+t/this.barCtx.invertedYRatio-2*(this.barCtx.isReversed?t/this.barCtx.invertedYRatio:0)),i}},{key:"getYForValue",value:function(t,e){var i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2]?e:null;return null!=t&&(i=e-t/this.barCtx.yRatio[this.barCtx.yaxisIndex]+2*(this.barCtx.isReversed?t/this.barCtx.yRatio[this.barCtx.yaxisIndex]:0)),i}},{key:"getGoalValues",value:function(t,i,a,s,r){var n=this,l=this.w,h=[],c=function(e,s){var r;h.push((o(r={},t,"x"===t?n.getXForValue(e,i,!1):n.getYForValue(e,a,!1)),o(r,"attrs",s),r))};if(l.globals.seriesGoals[s]&&l.globals.seriesGoals[s][r]&&Array.isArray(l.globals.seriesGoals[s][r])&&l.globals.seriesGoals[s][r].forEach((function(t){c(t.value,t)})),this.barCtx.barOptions.isDumbbell&&l.globals.seriesRange.length){var d=this.barCtx.barOptions.dumbbellColors?this.barCtx.barOptions.dumbbellColors:l.globals.colors,g={strokeHeight:"x"===t?0:l.globals.markers.size[s],strokeWidth:"x"===t?l.globals.markers.size[s]:0,strokeDashArray:0,strokeLineCap:"round",strokeColor:Array.isArray(d[s])?d[s][0]:d[s]};c(l.globals.seriesRangeStart[s][r],g),c(l.globals.seriesRangeEnd[s][r],e(e({},g),{},{strokeColor:Array.isArray(d[s])?d[s][1]:d[s]}))}return h}},{key:"drawGoalLine",value:function(t){var e=t.barXPosition,i=t.barYPosition,a=t.goalX,s=t.goalY,r=t.barWidth,o=t.barHeight,n=new m(this.barCtx.ctx),l=n.group({className:"apexcharts-bar-goals-groups"});l.node.classList.add("apexcharts-element-hidden"),this.barCtx.w.globals.delayedElements.push({el:l.node}),l.attr("clip-path","url(#gridRectMarkerMask".concat(this.barCtx.w.globals.cuid,")"));var h=null;return this.barCtx.isHorizontal?Array.isArray(a)&&a.forEach((function(t){var e=void 0!==t.attrs.strokeHeight?t.attrs.strokeHeight:o/2,a=i+e+o/2;h=n.drawLine(t.x,a-2*e,t.x,a,t.attrs.strokeColor?t.attrs.strokeColor:void 0,t.attrs.strokeDashArray,t.attrs.strokeWidth?t.attrs.strokeWidth:2,t.attrs.strokeLineCap),l.add(h)})):Array.isArray(s)&&s.forEach((function(t){var i=void 0!==t.attrs.strokeWidth?t.attrs.strokeWidth:r/2,a=e+i+r/2;h=n.drawLine(a-2*i,t.y,a,t.y,t.attrs.strokeColor?t.attrs.strokeColor:void 0,t.attrs.strokeDashArray,t.attrs.strokeHeight?t.attrs.strokeHeight:2,t.attrs.strokeLineCap),l.add(h)})),l}},{key:"drawBarShadow",value:function(t){var e=t.prevPaths,i=t.currPaths,a=t.color,s=this.w,r=e.x,o=e.x1,n=e.barYPosition,l=i.x,h=i.x1,c=i.barYPosition,d=n+i.barHeight,g=new m(this.barCtx.ctx),u=new x,p=g.move(o,d)+g.line(r,d)+g.line(l,c)+g.line(h,c)+g.line(o,d)+("around"===s.config.plotOptions.bar.borderRadiusApplication?" Z":" z");return g.drawPath({d:p,fill:u.shadeColor(.5,x.rgb2hex(a)),stroke:"none",strokeWidth:0,fillOpacity:1,classes:"apexcharts-bar-shadows"})}}]),t}(),yt=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w;var s=this.w;this.barOptions=s.config.plotOptions.bar,this.isHorizontal=this.barOptions.horizontal,this.strokeWidth=s.config.stroke.width,this.isNullValue=!1,this.isRangeBar=s.globals.seriesRange.length&&this.isHorizontal,this.isVerticalGroupedRangeBar=!s.globals.isBarHorizontal&&s.globals.seriesRange.length&&s.config.plotOptions.bar.rangeBarGroupRows,this.isFunnel=this.barOptions.isFunnel,this.xyRatios=i,null!==this.xyRatios&&(this.xRatio=i.xRatio,this.initialXRatio=i.initialXRatio,this.yRatio=i.yRatio,this.invertedXRatio=i.invertedXRatio,this.invertedYRatio=i.invertedYRatio,this.baseLineY=i.baseLineY,this.baseLineInvertedY=i.baseLineInvertedY),this.yaxisIndex=0,this.seriesLen=0,this.pathArr=[];var r=new N(this.ctx);this.lastActiveBarSerieIndex=r.getActiveConfigSeriesIndex("desc",["bar","column"]);var o=r.getBarSeriesIndices(),n=new y(this.ctx);this.stackedSeriesTotals=n.getStackedSeriesTotals(this.w.config.series.map((function(t,e){return-1===o.indexOf(e)?e:-1})).filter((function(t){return-1!==t}))),this.barHelpers=new mt(this)}return r(t,[{key:"draw",value:function(t,i){var a=this.w,s=new m(this.ctx),r=new y(this.ctx,a);t=r.getLogSeries(t),this.series=t,this.yRatio=r.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t);var o=s.group({class:"apexcharts-bar-series apexcharts-plot-series"});a.config.dataLabels.enabled&&this.totalItems>this.barOptions.dataLabels.maxItems&&console.warn("WARNING: DataLabels are enabled but there are too many to display. This may cause performance issue when rendering.");for(var n=0,l=0;n0&&(this.visibleI=this.visibleI+1);var k=0,A=0;this.yRatio.length>1&&(this.yaxisIndex=v),this.isReversed=a.config.yaxis[this.yaxisIndex]&&a.config.yaxis[this.yaxisIndex].reversed;var S=this.barHelpers.initialPositions();p=S.y,k=S.barHeight,c=S.yDivision,g=S.zeroW,u=S.x,A=S.barWidth,h=S.xDivision,d=S.zeroH,this.horizontal||b.push(u+A/2);var C=s.group({class:"apexcharts-datalabels","data:realIndex":v});a.globals.delayedElements.push({el:C.node}),C.node.classList.add("apexcharts-element-hidden");var L=s.group({class:"apexcharts-bar-goals-markers"}),P=s.group({class:"apexcharts-bar-shadows"});a.globals.delayedElements.push({el:P.node}),P.node.classList.add("apexcharts-element-hidden");for(var I=0;I0){var E=this.barHelpers.drawBarShadow({color:"string"==typeof z&&-1===(null==z?void 0:z.indexOf("url"))?z:x.hexToRgba(a.globals.colors[n]),prevPaths:this.pathArr[this.pathArr.length-1],currPaths:M});E&&P.add(E)}this.pathArr.push(M);var Y=this.barHelpers.drawGoalLine({barXPosition:M.barXPosition,barYPosition:M.barYPosition,goalX:M.goalX,goalY:M.goalY,barHeight:k,barWidth:A});Y&&L.add(Y),p=M.y,u=M.x,I>0&&b.push(u+A/2),f.push(p),this.renderSeries({realIndex:v,pathFill:z,j:I,i:n,pathFrom:M.pathFrom,pathTo:M.pathTo,strokeWidth:T,elSeries:w,x:u,y:p,series:t,barHeight:M.barHeight?M.barHeight:k,barWidth:M.barWidth?M.barWidth:A,elDataLabelsWrap:C,elGoalsMarkers:L,elBarShadows:P,visibleSeries:this.visibleI,type:"bar"})}a.globals.seriesXvalues[v]=b,a.globals.seriesYvalues[v]=f,o.add(w)}return o}},{key:"renderSeries",value:function(t){var e=t.realIndex,i=t.pathFill,a=t.lineFill,s=t.j,r=t.i,o=t.groupIndex,n=t.pathFrom,l=t.pathTo,h=t.strokeWidth,c=t.elSeries,d=t.x,g=t.y,u=t.y1,p=t.y2,f=t.series,x=t.barHeight,b=t.barWidth,y=t.barXPosition,w=t.barYPosition,k=t.elDataLabelsWrap,A=t.elGoalsMarkers,S=t.elBarShadows,C=t.visibleSeries,L=t.type,P=this.w,I=new m(this.ctx);a||(a=this.barOptions.distributed?P.globals.stroke.colors[s]:P.globals.stroke.colors[e]),P.config.series[r].data[s]&&P.config.series[r].data[s].strokeColor&&(a=P.config.series[r].data[s].strokeColor),this.isNullValue&&(i="none");var T=s/P.config.chart.animations.animateGradually.delay*(P.config.chart.animations.speed/P.globals.dataPoints)/2.4,M=I.renderPaths({i:r,j:s,realIndex:e,pathFrom:n,pathTo:l,stroke:a,strokeWidth:h,strokeLineCap:P.config.stroke.lineCap,fill:i,animationDelay:T,initialSpeed:P.config.chart.animations.speed,dataChangeSpeed:P.config.chart.animations.dynamicAnimation.speed,className:"apexcharts-".concat(L,"-area")});M.attr("clip-path","url(#gridRectMask".concat(P.globals.cuid,")"));var X=P.config.forecastDataPoints;X.count>0&&s>=P.globals.dataPoints-X.count&&(M.node.setAttribute("stroke-dasharray",X.dashArray),M.node.setAttribute("stroke-width",X.strokeWidth),M.node.setAttribute("fill-opacity",X.fillOpacity)),void 0!==u&&void 0!==p&&(M.attr("data-range-y1",u),M.attr("data-range-y2",p)),new v(this.ctx).setSelectionFilter(M,e,s),c.add(M);var z=new vt(this).handleBarDataLabels({x:d,y:g,y1:u,y2:p,i:r,j:s,series:f,realIndex:e,groupIndex:o,barHeight:x,barWidth:b,barXPosition:y,barYPosition:w,renderedPath:M,visibleSeries:C});return null!==z.dataLabels&&k.add(z.dataLabels),z.totalDataLabels&&k.add(z.totalDataLabels),c.add(k),A&&c.add(A),S&&c.add(S),c}},{key:"drawBarPaths",value:function(t){var e,i=t.indexes,a=t.barHeight,s=t.strokeWidth,r=t.zeroW,o=t.x,n=t.y,l=t.yDivision,h=t.elSeries,c=this.w,d=i.i,g=i.j;if(c.globals.isXNumeric)e=(n=(c.globals.seriesX[d][g]-c.globals.minX)/this.invertedXRatio-a)+a*this.visibleI;else if(c.config.plotOptions.bar.hideZeroBarsWhenGrouped){var u=0,p=0;c.globals.seriesPercent.forEach((function(t,e){t[g]&&u++,e0&&(a=this.seriesLen*a/u),e=n+a*this.visibleI,e-=a*p}else e=n+a*this.visibleI;this.isFunnel&&(r-=(this.barHelpers.getXForValue(this.series[d][g],r)-r)/2),o=this.barHelpers.getXForValue(this.series[d][g],r);var f=this.barHelpers.getBarpaths({barYPosition:e,barHeight:a,x1:r,x2:o,strokeWidth:s,series:this.series,realIndex:i.realIndex,i:d,j:g,w:c});return c.globals.isXNumeric||(n+=l),this.barHelpers.barBackground({j:g,i:d,y1:e-a*this.visibleI,y2:a*this.seriesLen,elSeries:h}),{pathTo:f.pathTo,pathFrom:f.pathFrom,x1:r,x:o,y:n,goalX:this.barHelpers.getGoalValues("x",r,null,d,g),barYPosition:e,barHeight:a}}},{key:"drawColumnPaths",value:function(t){var e,i=t.indexes,a=t.x,s=t.y,r=t.xDivision,o=t.barWidth,n=t.zeroH,l=t.strokeWidth,h=t.elSeries,c=this.w,d=i.realIndex,g=i.i,u=i.j,p=i.bc;if(c.globals.isXNumeric){var f=d;c.globals.seriesX[d].length||(f=c.globals.maxValsInArrayIndex),c.globals.seriesX[f][u]&&(a=(c.globals.seriesX[f][u]-c.globals.minX)/this.xRatio-o*this.seriesLen/2),e=a+o*this.visibleI}else if(c.config.plotOptions.bar.hideZeroBarsWhenGrouped){var x=0,b=0;c.globals.seriesPercent.forEach((function(t,e){t[u]&&x++,e0&&(o=this.seriesLen*o/x),e=a+o*this.visibleI,e-=o*b}else e=a+o*this.visibleI;s=this.barHelpers.getYForValue(this.series[g][u],n);var v=this.barHelpers.getColumnPaths({barXPosition:e,barWidth:o,y1:n,y2:s,strokeWidth:l,series:this.series,realIndex:i.realIndex,i:g,j:u,w:c});return c.globals.isXNumeric||(a+=r),this.barHelpers.barBackground({bc:p,j:u,i:g,x1:e-l/2-o*this.visibleI,x2:o*this.seriesLen+l/2,elSeries:h}),{pathTo:v.pathTo,pathFrom:v.pathFrom,x:a,y:s,goalY:this.barHelpers.getGoalValues("y",null,n,g,u),barXPosition:e,barWidth:o}}},{key:"getPreviousPath",value:function(t,e){for(var i,a=this.w,s=0;s0&&parseInt(r.realIndex,10)===parseInt(t,10)&&void 0!==a.globals.previousPaths[s].paths[e]&&(i=a.globals.previousPaths[s].paths[e].d)}return i}}]),t}(),wt=function(t){n(s,t);var i=d(s);function s(){return a(this,s),i.apply(this,arguments)}return r(s,[{key:"draw",value:function(t,i){var a=this,s=this.w;this.graphics=new m(this.ctx),this.bar=new yt(this.ctx,this.xyRatios);var r=new y(this.ctx,s);t=r.getLogSeries(t),this.yRatio=r.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t),"100%"===s.config.chart.stackType&&(t=s.globals.seriesPercent.slice()),this.series=t,this.barHelpers.initializeStackedPrevVars(this);for(var o=this.graphics.group({class:"apexcharts-bar-series apexcharts-plot-series"}),n=0,l=0,h=function(r,h){var c=void 0,d=void 0,g=void 0,u=void 0,p=-1;a.groupCtx=a,s.globals.seriesGroups.forEach((function(t,e){t.indexOf(s.config.series[r].name)>-1&&(p=e)})),-1!==p&&(a.groupCtx=a[s.globals.seriesGroups[p]]);var f=[],b=[],v=s.globals.comboCharts?i[r]:r;a.yRatio.length>1&&(a.yaxisIndex=v),a.isReversed=s.config.yaxis[a.yaxisIndex]&&s.config.yaxis[a.yaxisIndex].reversed;var m=a.graphics.group({class:"apexcharts-series",seriesName:x.escapeString(s.globals.seriesNames[v]),rel:r+1,"data:realIndex":v});a.ctx.series.addCollapsedClassToSeries(m,v);var y=a.graphics.group({class:"apexcharts-datalabels","data:realIndex":v}),w=a.graphics.group({class:"apexcharts-bar-goals-markers"}),k=0,A=0,S=a.initialPositions(n,l,c,d,g,u);l=S.y,k=S.barHeight,d=S.yDivision,u=S.zeroW,n=S.x,A=S.barWidth,c=S.xDivision,g=S.zeroH,a.barHelpers.initializeStackedXYVars(a),1===a.groupCtx.prevY.length&&a.groupCtx.prevY[0].every((function(t){return isNaN(t)}))&&(a.groupCtx.prevY[0]=a.groupCtx.prevY[0].map((function(t){return g})),a.groupCtx.prevYF[0]=a.groupCtx.prevYF[0].map((function(t){return 0})));for(var C=0;C1?(i=c.globals.minXDiff/this.xRatio)*parseInt(this.barOptions.columnWidth,10)/100:h*parseInt(c.config.plotOptions.bar.columnWidth,10)/100,-1===String(c.config.plotOptions.bar.columnWidth).indexOf("%")&&(h=parseInt(c.config.plotOptions.bar.columnWidth,10)),s=c.globals.gridHeight-this.baseLineY[this.yaxisIndex]-(this.isReversed?c.globals.gridHeight:0)+(this.isReversed?2*this.baseLineY[this.yaxisIndex]:0),t=c.globals.padHorizontal+(i-h)/2),{x:t,y:e,yDivision:a,xDivision:i,barHeight:null!==(o=c.globals.seriesGroups)&&void 0!==o&&o.length?l/c.globals.seriesGroups.length:l,barWidth:null!==(n=c.globals.seriesGroups)&&void 0!==n&&n.length?h/c.globals.seriesGroups.length:h,zeroH:s,zeroW:r}}},{key:"drawStackedBarPaths",value:function(t){for(var e,i=t.indexes,a=t.barHeight,s=t.strokeWidth,r=t.zeroW,o=t.x,n=t.y,l=t.groupIndex,h=t.seriesGroup,c=t.yDivision,d=t.elSeries,g=this.w,u=n+(-1!==l?l*a:0),p=i.i,f=i.j,x=0,b=0;b0){var m=r;this.groupCtx.prevXVal[v-1][f]<0?m=this.series[p][f]>=0?this.groupCtx.prevX[v-1][f]+x-2*(this.isReversed?x:0):this.groupCtx.prevX[v-1][f]:this.groupCtx.prevXVal[v-1][f]>=0&&(m=this.series[p][f]>=0?this.groupCtx.prevX[v-1][f]:this.groupCtx.prevX[v-1][f]-x+2*(this.isReversed?x:0)),e=m}else e=r;o=null===this.series[p][f]?e:e+this.series[p][f]/this.invertedYRatio-2*(this.isReversed?this.series[p][f]/this.invertedYRatio:0);var y=this.barHelpers.getBarpaths({barYPosition:u,barHeight:a,x1:e,x2:o,strokeWidth:s,series:this.series,realIndex:i.realIndex,seriesGroup:h,i:p,j:f,w:g});return this.barHelpers.barBackground({j:f,i:p,y1:u,y2:a,elSeries:d}),n+=c,{pathTo:y.pathTo,pathFrom:y.pathFrom,goalX:this.barHelpers.getGoalValues("x",r,null,p,f),barYPosition:u,x:o,y:n}}},{key:"drawStackedColumnPaths",value:function(t){var e=t.indexes,i=t.x,a=t.y,s=t.xDivision,r=t.barWidth,o=t.zeroH,n=t.groupIndex,l=t.seriesGroup,h=t.elSeries,c=this.w,d=e.i,g=e.j,u=e.bc;if(c.globals.isXNumeric){var p=c.globals.seriesX[d][g];p||(p=0),i=(p-c.globals.minX)/this.xRatio-r/2,c.globals.seriesGroups.length&&(i=(p-c.globals.minX)/this.xRatio-r/2*c.globals.seriesGroups.length)}for(var f,x=i+(-1!==n?n*r:0),b=0,v=0;v0&&!c.globals.isXNumeric||m>0&&c.globals.isXNumeric&&c.globals.seriesX[d-1][g]===c.globals.seriesX[d][g]){var y,w,k,A=Math.min(this.yRatio.length+1,d+1);if(void 0!==this.groupCtx.prevY[m-1]&&this.groupCtx.prevY[m-1].length)for(var S=1;S=0?k-b+2*(this.isReversed?b:0):k;break}if((null===(I=this.groupCtx.prevYVal[m-L])||void 0===I?void 0:I[g])>=0){w=this.series[d][g]>=0?k:k+b-2*(this.isReversed?b:0);break}}void 0===w&&(w=c.globals.gridHeight),f=null!==(y=this.groupCtx.prevYF[0])&&void 0!==y&&y.every((function(t){return 0===t}))&&this.groupCtx.prevYF.slice(1,m).every((function(t){return t.every((function(t){return isNaN(t)}))}))?o:w}else f=o;a=this.series[d][g]?f-this.series[d][g]/this.yRatio[this.yaxisIndex]+2*(this.isReversed?this.series[d][g]/this.yRatio[this.yaxisIndex]:0):f;var T=this.barHelpers.getColumnPaths({barXPosition:x,barWidth:r,y1:f,y2:a,yRatio:this.yRatio[this.yaxisIndex],strokeWidth:this.strokeWidth,series:this.series,seriesGroup:l,realIndex:e.realIndex,i:d,j:g,w:c});return this.barHelpers.barBackground({bc:u,j:g,i:d,x1:x,x2:r,elSeries:h}),i+=s,{pathTo:T.pathTo,pathFrom:T.pathFrom,goalY:this.barHelpers.getGoalValues("y",null,o,d,g),barXPosition:x,x:c.globals.isXNumeric?i-s:i,y:a}}}]),s}(yt),kt=function(t){n(s,t);var i=d(s);function s(){return a(this,s),i.apply(this,arguments)}return r(s,[{key:"draw",value:function(t,i,a){var s=this,r=this.w,o=new m(this.ctx),n=r.globals.comboCharts?i:r.config.chart.type,l=new R(this.ctx);this.candlestickOptions=this.w.config.plotOptions.candlestick,this.boxOptions=this.w.config.plotOptions.boxPlot,this.isHorizontal=r.config.plotOptions.bar.horizontal;var h=new y(this.ctx,r);t=h.getLogSeries(t),this.series=t,this.yRatio=h.getLogYRatios(this.yRatio),this.barHelpers.initVariables(t);for(var c=o.group({class:"apexcharts-".concat(n,"-series apexcharts-plot-series")}),d=function(i){s.isBoxPlot="boxPlot"===r.config.chart.type||"boxPlot"===r.config.series[i].type;var n,h,d,g,u=void 0,p=void 0,f=[],b=[],v=r.globals.comboCharts?a[i]:i,m=o.group({class:"apexcharts-series",seriesName:x.escapeString(r.globals.seriesNames[v]),rel:i+1,"data:realIndex":v});s.ctx.series.addCollapsedClassToSeries(m,v),t[i].length>0&&(s.visibleI=s.visibleI+1);var y,w;s.yRatio.length>1&&(s.yaxisIndex=v);var k=s.barHelpers.initialPositions();p=k.y,y=k.barHeight,h=k.yDivision,g=k.zeroW,u=k.x,w=k.barWidth,n=k.xDivision,d=k.zeroH,b.push(u+w/2);for(var A=o.group({class:"apexcharts-datalabels","data:realIndex":v}),S=function(a){var o=s.barHelpers.getStrokeWidth(i,a,v),c=null,x={indexes:{i:i,j:a,realIndex:v},x:u,y:p,strokeWidth:o,elSeries:m};c=s.isHorizontal?s.drawHorizontalBoxPaths(e(e({},x),{},{yDivision:h,barHeight:y,zeroW:g})):s.drawVerticalBoxPaths(e(e({},x),{},{xDivision:n,barWidth:w,zeroH:d})),p=c.y,u=c.x,a>0&&b.push(u+w/2),f.push(p),c.pathTo.forEach((function(e,n){var h=!s.isBoxPlot&&s.candlestickOptions.wick.useFillColor?c.color[n]:r.globals.stroke.colors[i],d=l.fillPath({seriesNumber:v,dataPointIndex:a,color:c.color[n],value:t[i][a]});s.renderSeries({realIndex:v,pathFill:d,lineFill:h,j:a,i:i,pathFrom:c.pathFrom,pathTo:e,strokeWidth:o,elSeries:m,x:u,y:p,series:t,barHeight:y,barWidth:w,elDataLabelsWrap:A,visibleSeries:s.visibleI,type:r.config.chart.type})}))},C=0;Cb.c&&(d=!1);var w=Math.min(b.o,b.c),k=Math.max(b.o,b.c),A=b.m;n.globals.isXNumeric&&(i=(n.globals.seriesX[x][c]-n.globals.minX)/this.xRatio-s/2);var S=i+s*this.visibleI;void 0===this.series[h][c]||null===this.series[h][c]?(w=r,k=r):(w=r-w/f,k=r-k/f,v=r-b.h/f,y=r-b.l/f,A=r-b.m/f);var C=l.move(S,r),L=l.move(S+s/2,w);return n.globals.previousPaths.length>0&&(L=this.getPreviousPath(x,c,!0)),C=this.isBoxPlot?[l.move(S,w)+l.line(S+s/2,w)+l.line(S+s/2,v)+l.line(S+s/4,v)+l.line(S+s-s/4,v)+l.line(S+s/2,v)+l.line(S+s/2,w)+l.line(S+s,w)+l.line(S+s,A)+l.line(S,A)+l.line(S,w+o/2),l.move(S,A)+l.line(S+s,A)+l.line(S+s,k)+l.line(S+s/2,k)+l.line(S+s/2,y)+l.line(S+s-s/4,y)+l.line(S+s/4,y)+l.line(S+s/2,y)+l.line(S+s/2,k)+l.line(S,k)+l.line(S,A)+"z"]:[l.move(S,k)+l.line(S+s/2,k)+l.line(S+s/2,v)+l.line(S+s/2,k)+l.line(S+s,k)+l.line(S+s,w)+l.line(S+s/2,w)+l.line(S+s/2,y)+l.line(S+s/2,w)+l.line(S,w)+l.line(S,k-o/2)],L+=l.move(S,w),n.globals.isXNumeric||(i+=a),{pathTo:C,pathFrom:L,x:i,y:k,barXPosition:S,color:this.isBoxPlot?p:d?[g]:[u]}}},{key:"drawHorizontalBoxPaths",value:function(t){var e=t.indexes;t.x;var i=t.y,a=t.yDivision,s=t.barHeight,r=t.zeroW,o=t.strokeWidth,n=this.w,l=new m(this.ctx),h=e.i,c=e.j,d=this.boxOptions.colors.lower;this.isBoxPlot&&(d=[this.boxOptions.colors.lower,this.boxOptions.colors.upper]);var g=this.invertedYRatio,u=e.realIndex,p=this.getOHLCValue(u,c),f=r,x=r,b=Math.min(p.o,p.c),v=Math.max(p.o,p.c),y=p.m;n.globals.isXNumeric&&(i=(n.globals.seriesX[u][c]-n.globals.minX)/this.invertedXRatio-s/2);var w=i+s*this.visibleI;void 0===this.series[h][c]||null===this.series[h][c]?(b=r,v=r):(b=r+b/g,v=r+v/g,f=r+p.h/g,x=r+p.l/g,y=r+p.m/g);var k=l.move(r,w),A=l.move(b,w+s/2);return n.globals.previousPaths.length>0&&(A=this.getPreviousPath(u,c,!0)),k=[l.move(b,w)+l.line(b,w+s/2)+l.line(f,w+s/2)+l.line(f,w+s/2-s/4)+l.line(f,w+s/2+s/4)+l.line(f,w+s/2)+l.line(b,w+s/2)+l.line(b,w+s)+l.line(y,w+s)+l.line(y,w)+l.line(b+o/2,w),l.move(y,w)+l.line(y,w+s)+l.line(v,w+s)+l.line(v,w+s/2)+l.line(x,w+s/2)+l.line(x,w+s-s/4)+l.line(x,w+s/4)+l.line(x,w+s/2)+l.line(v,w+s/2)+l.line(v,w)+l.line(y,w)+"z"],A+=l.move(b,w),n.globals.isXNumeric||(i+=a),{pathTo:k,pathFrom:A,x:v,y:i,barYPosition:w,color:d}}},{key:"getOHLCValue",value:function(t,e){var i=this.w;return{o:this.isBoxPlot?i.globals.seriesCandleH[t][e]:i.globals.seriesCandleO[t][e],h:this.isBoxPlot?i.globals.seriesCandleO[t][e]:i.globals.seriesCandleH[t][e],m:i.globals.seriesCandleM[t][e],l:this.isBoxPlot?i.globals.seriesCandleC[t][e]:i.globals.seriesCandleL[t][e],c:this.isBoxPlot?i.globals.seriesCandleL[t][e]:i.globals.seriesCandleC[t][e]}}}]),s}(yt),At=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"checkColorRange",value:function(){var t=this.w,e=!1,i=t.config.plotOptions[t.config.chart.type];return i.colorScale.ranges.length>0&&i.colorScale.ranges.map((function(t,i){t.from<=0&&(e=!0)})),e}},{key:"getShadeColor",value:function(t,e,i,a){var s=this.w,r=1,o=s.config.plotOptions[t].shadeIntensity,n=this.determineColor(t,e,i);s.globals.hasNegs||a?r=s.config.plotOptions[t].reverseNegativeShade?n.percent<0?n.percent/100*(1.25*o):(1-n.percent/100)*(1.25*o):n.percent<=0?1-(1+n.percent/100)*o:(1-n.percent/100)*o:(r=1-n.percent/100,"treemap"===t&&(r=(1-n.percent/100)*(1.25*o)));var l=n.color,h=new x;return s.config.plotOptions[t].enableShades&&(l="dark"===this.w.config.theme.mode?x.hexToRgba(h.shadeColor(-1*r,n.color),s.config.fill.opacity):x.hexToRgba(h.shadeColor(r,n.color),s.config.fill.opacity)),{color:l,colorProps:n}}},{key:"determineColor",value:function(t,e,i){var a=this.w,s=a.globals.series[e][i],r=a.config.plotOptions[t],o=r.colorScale.inverse?i:e;r.distributed&&"treemap"===a.config.chart.type&&(o=i);var n=a.globals.colors[o],l=null,h=Math.min.apply(Math,u(a.globals.series[e])),c=Math.max.apply(Math,u(a.globals.series[e]));r.distributed||"heatmap"!==t||(h=a.globals.minY,c=a.globals.maxY),void 0!==r.colorScale.min&&(h=r.colorScale.mina.globals.maxY?r.colorScale.max:a.globals.maxY);var d=Math.abs(c)+Math.abs(h),g=100*s/(0===d?d-1e-6:d);r.colorScale.ranges.length>0&&r.colorScale.ranges.map((function(t,e){if(s>=t.from&&s<=t.to){n=t.color,l=t.foreColor?t.foreColor:null,h=t.from,c=t.to;var i=Math.abs(c)+Math.abs(h);g=100*s/(0===i?i-1e-6:i)}}));return{color:n,foreColor:l,percent:g}}},{key:"calculateDataLabels",value:function(t){var e=t.text,i=t.x,a=t.y,s=t.i,r=t.j,o=t.colorProps,n=t.fontSize,l=this.w.config.dataLabels,h=new m(this.ctx),c=new O(this.ctx),d=null;if(l.enabled){d=h.group({class:"apexcharts-data-labels"});var g=l.offsetX,u=l.offsetY,p=i+g,f=a+parseFloat(l.style.fontSize)/3+u;c.plotDataLabelsText({x:p,y:f,text:e,i:s,j:r,color:o.foreColor,parent:d,fontSize:n,dataLabelsConfig:l})}return d}},{key:"addListeners",value:function(t){var e=new m(this.ctx);t.node.addEventListener("mouseenter",e.pathMouseEnter.bind(this,t)),t.node.addEventListener("mouseleave",e.pathMouseLeave.bind(this,t)),t.node.addEventListener("mousedown",e.pathMouseDown.bind(this,t))}}]),t}(),St=function(){function t(e,i){a(this,t),this.ctx=e,this.w=e.w,this.xRatio=i.xRatio,this.yRatio=i.yRatio,this.dynamicAnim=this.w.config.chart.animations.dynamicAnimation,this.helpers=new At(e),this.rectRadius=this.w.config.plotOptions.heatmap.radius,this.strokeWidth=this.w.config.stroke.show?this.w.config.stroke.width:0}return r(t,[{key:"draw",value:function(t){var e=this.w,i=new m(this.ctx),a=i.group({class:"apexcharts-heatmap"});a.attr("clip-path","url(#gridRectMask".concat(e.globals.cuid,")"));var s=e.globals.gridWidth/e.globals.dataPoints,r=e.globals.gridHeight/e.globals.series.length,o=0,n=!1;this.negRange=this.helpers.checkColorRange();var l=t.slice();e.config.yaxis[0].reversed&&(n=!0,l.reverse());for(var h=n?0:l.length-1;n?h=0;n?h++:h--){var c=i.group({class:"apexcharts-series apexcharts-heatmap-series",seriesName:x.escapeString(e.globals.seriesNames[h]),rel:h+1,"data:realIndex":h});if(this.ctx.series.addCollapsedClassToSeries(c,h),e.config.chart.dropShadow.enabled){var d=e.config.chart.dropShadow;new v(this.ctx).dropShadow(c,d,h)}for(var g=0,u=e.config.plotOptions.heatmap.shadeIntensity,p=0;p-1&&this.pieClicked(d),i.config.dataLabels.enabled){var A=w.x,S=w.y,C=100*u/this.fullAngle+"%";if(0!==u&&i.config.plotOptions.pie.dataLabels.minAngleToShowLabelthis.fullAngle?e.endAngle=e.endAngle-(a+o):a+o=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle&&(n=this.fullAngle+this.w.config.plotOptions.pie.startAngle%this.fullAngle-.01),Math.ceil(n)>this.fullAngle&&(n-=this.fullAngle);var l=Math.PI*(n-90)/180,h=e.centerX+s*Math.cos(o),c=e.centerY+s*Math.sin(o),d=e.centerX+s*Math.cos(l),g=e.centerY+s*Math.sin(l),u=x.polarToCartesian(e.centerX,e.centerY,e.donutSize,n),p=x.polarToCartesian(e.centerX,e.centerY,e.donutSize,r),f=a>180?1:0,b=["M",h,c,"A",s,s,0,f,1,d,g];return"donut"===e.chartType?[].concat(b,["L",u.x,u.y,"A",e.donutSize,e.donutSize,0,f,0,p.x,p.y,"L",h,c,"z"]).join(" "):"pie"===e.chartType||"polarArea"===e.chartType?[].concat(b,["L",e.centerX,e.centerY,"L",h,c]).join(" "):[].concat(b).join(" ")}},{key:"drawPolarElements",value:function(t){var e=this.w,i=new _(this.ctx),a=new m(this.ctx),s=new Ct(this.ctx),r=a.group(),o=a.group(),n=i.niceScale(0,Math.ceil(this.maxY),e.config.yaxis[0].tickAmount,0,!0),l=n.result.reverse(),h=n.result.length;this.maxY=n.niceMax;for(var c=e.globals.radialSize,d=c/(h-1),g=0;g1&&t.total.show&&(s=t.total.color);var o=r.globals.dom.baseEl.querySelector(".apexcharts-datalabel-label"),n=r.globals.dom.baseEl.querySelector(".apexcharts-datalabel-value");i=(0,t.value.formatter)(i,r),a||"function"!=typeof t.total.formatter||(i=t.total.formatter(r));var l=e===t.total.label;e=t.name.formatter(e,l,r),null!==o&&(o.textContent=e),null!==n&&(n.textContent=i),null!==o&&(o.style.fill=s)}},{key:"printDataLabelsInner",value:function(t,e){var i=this.w,a=t.getAttribute("data:value"),s=i.globals.seriesNames[parseInt(t.parentNode.getAttribute("rel"),10)-1];i.globals.series.length>1&&this.printInnerLabels(e,s,a,t);var r=i.globals.dom.baseEl.querySelector(".apexcharts-datalabels-group");null!==r&&(r.style.opacity=1)}},{key:"drawSpokes",value:function(t){var e=this,i=this.w,a=new m(this.ctx),s=i.config.plotOptions.polarArea.spokes;if(0!==s.strokeWidth){for(var r=[],o=360/i.globals.series.length,n=0;n1)o&&!e.total.showAlways?l({makeSliceOut:!1,printLabel:!0}):this.printInnerLabels(e,e.total.label,e.total.formatter(s));else if(l({makeSliceOut:!1,printLabel:!0}),!o)if(s.globals.selectedDataPoints.length&&s.globals.series.length>1)if(s.globals.selectedDataPoints[0].length>0){var h=s.globals.selectedDataPoints[0],c=s.globals.dom.baseEl.querySelector(".apexcharts-".concat(this.chartType.toLowerCase(),"-slice-").concat(h));this.printDataLabelsInner(c,e)}else r&&s.globals.selectedDataPoints.length&&0===s.globals.selectedDataPoints[0].length&&(r.style.opacity=0);else r&&s.globals.series.length>1&&(r.style.opacity=0)}}]),t}(),Pt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.chartType=this.w.config.chart.type,this.initialAnim=this.w.config.chart.animations.enabled,this.dynamicAnim=this.initialAnim&&this.w.config.chart.animations.dynamicAnimation.enabled,this.animDur=0;var i=this.w;this.graphics=new m(this.ctx),this.lineColorArr=void 0!==i.globals.stroke.colors?i.globals.stroke.colors:i.globals.colors,this.defaultSize=i.globals.svgHeight0&&(f=i.getPreviousPath(n));for(var b=0;b=10?t.x>0?(i="start",a+=10):t.x<0&&(i="end",a-=10):i="middle",Math.abs(t.y)>=e-10&&(t.y<0?s-=10:t.y>0&&(s+=10)),{textAnchor:i,newX:a,newY:s}}},{key:"getPreviousPath",value:function(t){for(var e=this.w,i=null,a=0;a0&&parseInt(s.realIndex,10)===parseInt(t,10)&&void 0!==e.globals.previousPaths[a].paths[0]&&(i=e.globals.previousPaths[a].paths[0].d)}return i}},{key:"getDataPointsPos",value:function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:this.dataPointsLen;t=t||[],e=e||[];for(var a=[],s=0;s=360&&(g=360-Math.abs(this.startAngle)-.1);var u=i.drawPath({d:"",stroke:c,strokeWidth:o*parseInt(h.strokeWidth,10)/100,fill:"none",strokeOpacity:h.opacity,classes:"apexcharts-radialbar-area"});if(h.dropShadow.enabled){var p=h.dropShadow;s.dropShadow(u,p)}l.add(u),u.attr("id","apexcharts-radialbarTrack-"+n),this.animatePaths(u,{centerX:t.centerX,centerY:t.centerY,endAngle:g,startAngle:d,size:t.size,i:n,totalItems:2,animBeginArr:0,dur:0,isTrack:!0,easing:e.globals.easing})}return a}},{key:"drawArcs",value:function(t){var e=this.w,i=new m(this.ctx),a=new R(this.ctx),s=new v(this.ctx),r=i.group(),o=this.getStrokeWidth(t);t.size=t.size-o/2;var n=e.config.plotOptions.radialBar.hollow.background,l=t.size-o*t.series.length-this.margin*t.series.length-o*parseInt(e.config.plotOptions.radialBar.track.strokeWidth,10)/100/2,h=l-e.config.plotOptions.radialBar.hollow.margin;void 0!==e.config.plotOptions.radialBar.hollow.image&&(n=this.drawHollowImage(t,r,l,n));var c=this.drawHollow({size:h,centerX:t.centerX,centerY:t.centerY,fill:n||"transparent"});if(e.config.plotOptions.radialBar.hollow.dropShadow.enabled){var d=e.config.plotOptions.radialBar.hollow.dropShadow;s.dropShadow(c,d)}var g=1;!this.radialDataLabels.total.show&&e.globals.series.length>1&&(g=0);var u=null;this.radialDataLabels.show&&(u=this.renderInnerDataLabels(this.radialDataLabels,{hollowSize:l,centerX:t.centerX,centerY:t.centerY,opacity:g})),"back"===e.config.plotOptions.radialBar.hollow.position&&(r.add(c),u&&r.add(u));var p=!1;e.config.plotOptions.radialBar.inverseOrder&&(p=!0);for(var f=p?t.series.length-1:0;p?f>=0:f100?100:t.series[f])/100,S=Math.round(this.totalAngle*A)+this.startAngle,C=void 0;e.globals.dataChanged&&(k=this.startAngle,C=Math.round(this.totalAngle*x.negToZero(e.globals.previousPaths[f])/100)+k),Math.abs(S)+Math.abs(w)>=360&&(S-=.01),Math.abs(C)+Math.abs(k)>=360&&(C-=.01);var L=S-w,P=Array.isArray(e.config.stroke.dashArray)?e.config.stroke.dashArray[f]:e.config.stroke.dashArray,I=i.drawPath({d:"",stroke:y,strokeWidth:o,fill:"none",fillOpacity:e.config.fill.opacity,classes:"apexcharts-radialbar-area apexcharts-radialbar-slice-"+f,strokeDashArray:P});if(m.setAttrs(I.node,{"data:angle":L,"data:value":t.series[f]}),e.config.chart.dropShadow.enabled){var T=e.config.chart.dropShadow;s.dropShadow(I,T,f)}s.setSelectionFilter(I,0,f),this.addListeners(I,this.radialDataLabels),b.add(I),I.attr({index:0,j:f});var M=0;!this.initialAnim||e.globals.resized||e.globals.dataChanged||(M=e.config.chart.animations.speed),e.globals.dataChanged&&(M=e.config.chart.animations.dynamicAnimation.speed),this.animDur=M/(1.2*t.series.length)+this.animDur,this.animBeginArr.push(this.animDur),this.animatePaths(I,{centerX:t.centerX,centerY:t.centerY,endAngle:S,startAngle:w,prevEndAngle:C,prevStartAngle:k,size:t.size,i:f,totalItems:2,animBeginArr:this.animBeginArr,dur:M,shouldSetPrevPaths:!0,easing:e.globals.easing})}return{g:r,elHollow:c,dataLabels:u}}},{key:"drawHollow",value:function(t){var e=new m(this.ctx).drawCircle(2*t.size);return e.attr({class:"apexcharts-radialbar-hollow",cx:t.centerX,cy:t.centerY,r:t.size,fill:t.fill}),e}},{key:"drawHollowImage",value:function(t,e,i,a){var s=this.w,r=new R(this.ctx),o=x.randomId(),n=s.config.plotOptions.radialBar.hollow.image;if(s.config.plotOptions.radialBar.hollow.imageClipped)r.clippedImgArea({width:i,height:i,image:n,patternID:"pattern".concat(s.globals.cuid).concat(o)}),a="url(#pattern".concat(s.globals.cuid).concat(o,")");else{var l=s.config.plotOptions.radialBar.hollow.imageWidth,h=s.config.plotOptions.radialBar.hollow.imageHeight;if(void 0===l&&void 0===h){var c=s.globals.dom.Paper.image(n).loaded((function(e){this.move(t.centerX-e.width/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-e.height/2+s.config.plotOptions.radialBar.hollow.imageOffsetY)}));e.add(c)}else{var d=s.globals.dom.Paper.image(n).loaded((function(e){this.move(t.centerX-l/2+s.config.plotOptions.radialBar.hollow.imageOffsetX,t.centerY-h/2+s.config.plotOptions.radialBar.hollow.imageOffsetY),this.size(l,h)}));e.add(d)}}return a}},{key:"getStrokeWidth",value:function(t){var e=this.w;return t.size*(100-parseInt(e.config.plotOptions.radialBar.hollow.size,10))/100/(t.series.length+1)-this.margin}}]),i}(Lt),Tt=function(t){n(s,t);var i=d(s);function s(){return a(this,s),i.apply(this,arguments)}return r(s,[{key:"draw",value:function(t,i){var a=this.w,s=new m(this.ctx);this.rangeBarOptions=this.w.config.plotOptions.rangeBar,this.series=t,this.seriesRangeStart=a.globals.seriesRangeStart,this.seriesRangeEnd=a.globals.seriesRangeEnd,this.barHelpers.initVariables(t);for(var r=s.group({class:"apexcharts-rangebar-series apexcharts-plot-series"}),n=0;n0&&(this.visibleI=this.visibleI+1);var b=0,v=0;this.yRatio.length>1&&(this.yaxisIndex=p);var y=this.barHelpers.initialPositions();u=y.y,d=y.zeroW,g=y.x,v=y.barWidth,b=y.barHeight,l=y.xDivision,h=y.yDivision,c=y.zeroH;for(var w=s.group({class:"apexcharts-datalabels","data:realIndex":p}),k=s.group({class:"apexcharts-rangebar-goals-markers"}),A=0;A0}));return this.isHorizontal?(a=g.config.plotOptions.bar.rangeBarGroupRows?r+h*b:r+n*this.visibleI+h*b,v>-1&&!g.config.plotOptions.bar.rangeBarOverlap&&(u=g.globals.seriesRange[e][v].overlaps).indexOf(p)>-1&&(a=(n=d.barHeight/u.length)*this.visibleI+h*(100-parseInt(this.barOptions.barHeight,10))/100/2+n*(this.visibleI+u.indexOf(p))+h*b)):(b>-1&&(s=g.config.plotOptions.bar.rangeBarGroupRows?o+c*b:o+l*this.visibleI+c*b),v>-1&&!g.config.plotOptions.bar.rangeBarOverlap&&(u=g.globals.seriesRange[e][v].overlaps).indexOf(p)>-1&&(s=(l=d.barWidth/u.length)*this.visibleI+c*(100-parseInt(this.barOptions.barWidth,10))/100/2+l*(this.visibleI+u.indexOf(p))+c*b)),{barYPosition:a,barXPosition:s,barHeight:n,barWidth:l}}},{key:"drawRangeColumnPaths",value:function(t){var e=t.indexes,i=t.x,a=t.xDivision,s=t.barWidth,r=t.barXPosition,o=t.zeroH,n=this.w,l=e.i,h=e.j,c=this.yRatio[this.yaxisIndex],d=e.realIndex,g=this.getRangeValue(d,h),u=Math.min(g.start,g.end),p=Math.max(g.start,g.end);void 0===this.series[l][h]||null===this.series[l][h]?u=o:(u=o-u/c,p=o-p/c);var f=Math.abs(p-u),x=this.barHelpers.getColumnPaths({barXPosition:r,barWidth:s,y1:u,y2:p,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,realIndex:e.realIndex,i:d,j:h,w:n});return n.globals.isXNumeric||(i+=a),{pathTo:x.pathTo,pathFrom:x.pathFrom,barHeight:f,x:i,y:p,goalY:this.barHelpers.getGoalValues("y",null,o,l,h),barXPosition:r}}},{key:"drawRangeBarPaths",value:function(t){var e=t.indexes,i=t.y,a=t.y1,s=t.y2,r=t.yDivision,o=t.barHeight,n=t.barYPosition,l=t.zeroW,h=this.w,c=l+a/this.invertedYRatio,d=l+s/this.invertedYRatio,g=Math.abs(d-c),u=this.barHelpers.getBarpaths({barYPosition:n,barHeight:o,x1:c,x2:d,strokeWidth:this.strokeWidth,series:this.seriesRangeEnd,i:e.realIndex,realIndex:e.realIndex,j:e.j,w:h});return h.globals.isXNumeric||(i+=r),{pathTo:u.pathTo,pathFrom:u.pathFrom,barWidth:g,x:d,goalX:this.barHelpers.getGoalValues("x",l,null,e.realIndex,e.j),y:i}}},{key:"getRangeValue",value:function(t,e){var i=this.w;return{start:i.globals.seriesRangeStart[t][e],end:i.globals.seriesRangeEnd[t][e]}}}]),s}(yt),Mt=function(){function t(e){a(this,t),this.w=e.w,this.lineCtx=e}return r(t,[{key:"sameValueSeriesFix",value:function(t,e){var i=this.w;if(("gradient"===i.config.fill.type||"gradient"===i.config.fill.type[t])&&new y(this.lineCtx.ctx,i).seriesHaveSameValues(t)){var a=e[t].slice();a[a.length-1]=a[a.length-1]+1e-6,e[t]=a}return e}},{key:"calculatePoints",value:function(t){var e=t.series,i=t.realIndex,a=t.x,s=t.y,r=t.i,o=t.j,n=t.prevY,l=this.w,h=[],c=[];if(0===o){var d=this.lineCtx.categoryAxisCorrection+l.config.markers.offsetX;l.globals.isXNumeric&&(d=(l.globals.seriesX[i][0]-l.globals.minX)/this.lineCtx.xRatio+l.config.markers.offsetX),h.push(d),c.push(x.isNumber(e[r][0])?n+l.config.markers.offsetY:null),h.push(a+l.config.markers.offsetX),c.push(x.isNumber(e[r][o+1])?s+l.config.markers.offsetY:null)}else h.push(a+l.config.markers.offsetX),c.push(x.isNumber(e[r][o+1])?s+l.config.markers.offsetY:null);return{x:h,y:c}}},{key:"checkPreviousPaths",value:function(t){for(var e=t.pathFromLine,i=t.pathFromArea,a=t.realIndex,s=this.w,r=0;r0&&parseInt(o.realIndex,10)===parseInt(a,10)&&("line"===o.type?(this.lineCtx.appendPathFrom=!1,e=s.globals.previousPaths[r].paths[0].d):"area"===o.type&&(this.lineCtx.appendPathFrom=!1,i=s.globals.previousPaths[r].paths[0].d,s.config.stroke.show&&s.globals.previousPaths[r].paths[1]&&(e=s.globals.previousPaths[r].paths[1].d)))}return{pathFromLine:e,pathFromArea:i}}},{key:"determineFirstPrevY",value:function(t){var e,i=t.i,a=t.series,s=t.prevY,r=t.lineYPosition,o=this.w;if(void 0!==(null===(e=a[i])||void 0===e?void 0:e[0]))s=(r=o.config.chart.stacked&&i>0?this.lineCtx.prevSeriesY[i-1][0]:this.lineCtx.zeroY)-a[i][0]/this.lineCtx.yRatio[this.lineCtx.yaxisIndex]+2*(this.lineCtx.isReversed?a[i][0]/this.lineCtx.yRatio[this.lineCtx.yaxisIndex]:0);else if(o.config.chart.stacked&&i>0&&void 0===a[i][0])for(var n=i-1;n>=0;n--)if(null!==a[n][0]&&void 0!==a[n][0]){s=r=this.lineCtx.prevSeriesY[n][0];break}return{prevY:s,lineYPosition:r}}}]),t}(),Xt=function(t){for(var e,i,a,s,r=function(t){for(var e=[],i=t[0],a=t[1],s=e[0]=Yt(i,a),r=1,o=t.length-1;r9&&(s=3*a/Math.sqrt(s),r[l]=s*e,r[l+1]=s*i);for(var h=0;h<=o;h++)s=(t[Math.min(o,h+1)][0]-t[Math.max(0,h-1)][0])/(6*(1+r[h]*r[h])),n.push([s||0,r[h]*s||0]);return n},zt=function(t){for(var e="",i=0;i4?(e+="C".concat(a[0],", ").concat(a[1]),e+=", ".concat(a[2],", ").concat(a[3]),e+=", ".concat(a[4],", ").concat(a[5])):s>2&&(e+="S".concat(a[0],", ").concat(a[1]),e+=", ".concat(a[2],", ").concat(a[3]))}return e},Et=function(t){var e=Xt(t),i=t[1],a=t[0],s=[],r=e[1],o=e[0];s.push(a,[a[0]+o[0],a[1]+o[1],i[0]-r[0],i[1]-r[1],i[0],i[1]]);for(var n=2,l=e.length;n0&&(x=(r.globals.seriesX[g][0]-r.globals.minX)/this.xRatio),f.push(x);var b,v=x,w=void 0,k=v,A=this.zeroY,S=this.zeroY;A=this.lineHelpers.determineFirstPrevY({i:d,series:t,prevY:A,lineYPosition:0}).prevY,u.push(A),b=A;"rangeArea"===n&&(w=S=this.lineHelpers.determineFirstPrevY({i:d,series:s,prevY:S,lineYPosition:0}).prevY,p.push(S));var C={type:n,series:t,realIndex:g,i:d,x:x,y:1,pX:v,pY:b,pathsFrom:this._calculatePathsFrom({type:n,series:t,i:d,realIndex:g,prevX:k,prevY:A,prevY2:S}),linePaths:[],areaPaths:[],seriesIndex:a,lineYPosition:0,xArrj:f,yArrj:u,y2Arrj:p,seriesRangeEnd:s},L=this._iterateOverDataPoints(e(e({},C),{},{iterations:"rangeArea"===n?t[d].length-1:void 0,isRangeStart:!0}));if("rangeArea"===n){var P=this._calculatePathsFrom({series:s,i:d,realIndex:g,prevX:k,prevY:S}),I=this._iterateOverDataPoints(e(e({},C),{},{series:s,pY:w,pathsFrom:P,iterations:s[d].length-1,isRangeStart:!1}));L.linePaths[0]=I.linePath+L.linePath,L.pathFromLine=I.pathFromLine+L.pathFromLine}this._handlePaths({type:n,realIndex:g,i:d,paths:L}),this.elSeries.add(this.elPointsMain),this.elSeries.add(this.elDataLabelsWrap),c.push(this.elSeries)}if(r.config.chart.stacked)for(var T=c.length;T>0;T--)l.add(c[T-1]);else for(var M=0;M1&&(this.yaxisIndex=i),this.isReversed=a.config.yaxis[this.yaxisIndex]&&a.config.yaxis[this.yaxisIndex].reversed,this.zeroY=a.globals.gridHeight-this.baseLineY[this.yaxisIndex]-(this.isReversed?a.globals.gridHeight:0)+(this.isReversed?2*this.baseLineY[this.yaxisIndex]:0),this.areaBottomY=this.zeroY,(this.zeroY>a.globals.gridHeight||"end"===a.config.plotOptions.area.fillTo)&&(this.areaBottomY=a.globals.gridHeight),this.categoryAxisCorrection=this.xDivision/2,this.elSeries=s.group({class:"apexcharts-series",seriesName:x.escapeString(a.globals.seriesNames[i])}),this.elPointsMain=s.group({class:"apexcharts-series-markers-wrap","data:realIndex":i}),this.elDataLabelsWrap=s.group({class:"apexcharts-datalabels","data:realIndex":i});var r=t[e].length===a.globals.dataPoints;this.elSeries.attr({"data:longestSeries":r,rel:e+1,"data:realIndex":i}),this.appendPathFrom=!0}},{key:"_calculatePathsFrom",value:function(t){var e,i,a,s,r=t.type,o=t.series,n=t.i,l=t.realIndex,h=t.prevX,c=t.prevY,d=t.prevY2,g=this.w,u=new m(this.ctx);if(null===o[n][0]){for(var p=0;p0){var f=this.lineHelpers.checkPreviousPaths({pathFromLine:a,pathFromArea:s,realIndex:l});a=f.pathFromLine,s=f.pathFromArea}return{prevX:h,prevY:c,linePath:e,areaPath:i,pathFromLine:a,pathFromArea:s}}},{key:"_handlePaths",value:function(t){var i=t.type,a=t.realIndex,s=t.i,r=t.paths,o=this.w,n=new m(this.ctx),l=new R(this.ctx);this.prevSeriesY.push(r.yArrj),o.globals.seriesXvalues[a]=r.xArrj,o.globals.seriesYvalues[a]=r.yArrj;var h=o.config.forecastDataPoints;if(h.count>0&&"rangeArea"!==i){var c=o.globals.seriesXvalues[a][o.globals.seriesXvalues[a].length-h.count-1],d=n.drawRect(c,0,o.globals.gridWidth,o.globals.gridHeight,0);o.globals.dom.elForecastMask.appendChild(d.node);var g=n.drawRect(0,0,c,o.globals.gridHeight,0);o.globals.dom.elNonForecastMask.appendChild(g.node)}this.pointsChart||o.globals.delayedElements.push({el:this.elPointsMain.node,index:a});var u={i:s,realIndex:a,animationDelay:s,initialSpeed:o.config.chart.animations.speed,dataChangeSpeed:o.config.chart.animations.dynamicAnimation.speed,className:"apexcharts-".concat(i)};if("area"===i)for(var p=l.fillPath({seriesNumber:a}),f=0;f0&&"rangeArea"!==i){var S=n.renderPaths(k);S.node.setAttribute("stroke-dasharray",h.dashArray),h.strokeWidth&&S.node.setAttribute("stroke-width",h.strokeWidth),this.elSeries.add(S),S.attr("clip-path","url(#forecastMask".concat(o.globals.cuid,")")),A.attr("clip-path","url(#nonForecastMask".concat(o.globals.cuid,")"))}}}}},{key:"_iterateOverDataPoints",value:function(t){var e=t.type,i=t.series,a=t.iterations,s=t.realIndex,r=t.i,o=t.x,n=t.y,l=t.pX,h=t.pY,c=t.pathsFrom,d=t.linePaths,g=t.areaPaths,u=t.seriesIndex,p=t.lineYPosition,f=t.xArrj,b=t.yArrj,v=t.y2Arrj,y=t.isRangeStart,w=t.seriesRangeEnd,k=this.w,A=new m(this.ctx),S=this.yRatio,C=c.prevY,L=c.linePath,P=c.areaPath,I=c.pathFromLine,T=c.pathFromArea,M=x.isNumber(k.globals.minYArr[s])?k.globals.minYArr[s]:k.globals.minY;a||(a=k.globals.dataPoints>1?k.globals.dataPoints-1:k.globals.dataPoints);for(var X=n,z=0;z0&&k.globals.collapsedSeries.length-1){e--;break}return e>=0?e:0}(r-1)][z+1]}else p=this.zeroY;else p=this.zeroY;E?n=p-M/S[this.yaxisIndex]+2*(this.isReversed?M/S[this.yaxisIndex]:0):(n=p-i[r][z+1]/S[this.yaxisIndex]+2*(this.isReversed?i[r][z+1]/S[this.yaxisIndex]:0),"rangeArea"===e&&(X=p-w[r][z+1]/S[this.yaxisIndex]+2*(this.isReversed?w[r][z+1]/S[this.yaxisIndex]:0))),f.push(o),b.push(n),v.push(X);var F=this.lineHelpers.calculatePoints({series:i,x:o,y:n,realIndex:s,i:r,j:z,prevY:C}),R=this._createPaths({type:e,series:i,i:r,realIndex:s,j:z,x:o,y:n,y2:X,xArrj:f,yArrj:b,y2Arrj:v,pX:l,pY:h,linePath:L,areaPath:P,linePaths:d,areaPaths:g,seriesIndex:u,isRangeStart:y});g=R.areaPaths,d=R.linePaths,l=R.pX,h=R.pY,P=R.areaPath,L=R.linePath,!this.appendPathFrom||"monotoneCubic"===k.config.stroke.curve&&"rangeArea"===e||(I+=A.line(o,this.zeroY),T+=A.line(o,this.zeroY)),this.handleNullDataPoints(i,F,r,z,s),this._handleMarkersAndLabels({type:e,pointsPos:F,i:r,j:z,realIndex:s,isRangeStart:y})}return{yArrj:b,xArrj:f,pathFromArea:T,areaPaths:g,pathFromLine:I,linePaths:d,linePath:L,areaPath:P}}},{key:"_handleMarkersAndLabels",value:function(t){var e=t.type,i=t.pointsPos,a=t.isRangeStart,s=t.i,r=t.j,o=t.realIndex,n=this.w,l=new O(this.ctx);if(this.pointsChart)this.scatter.draw(this.elSeries,r,{realIndex:o,pointsPos:i,zRatio:this.zRatio,elParent:this.elPointsMain});else{n.globals.series[s].length>1&&this.elPointsMain.node.classList.add("apexcharts-element-hidden");var h=this.markers.plotChartMarkers(i,o,r+1);null!==h&&this.elPointsMain.add(h)}var c=l.drawDataLabel({type:e,isRangeStart:a,pos:i,i:o,j:r+1});null!==c&&this.elDataLabelsWrap.add(c)}},{key:"_createPaths",value:function(t){var e=t.type,i=t.series,a=t.i,s=t.realIndex,r=t.j,o=t.x,n=t.y,l=t.xArrj,h=t.yArrj,c=t.y2,d=t.y2Arrj,g=t.pX,u=t.pY,p=t.linePath,f=t.areaPath,x=t.linePaths,b=t.areaPaths,v=t.seriesIndex,y=t.isRangeStart,w=this.w,k=new m(this.ctx),A=w.config.stroke.curve,S=this.areaBottomY;if(Array.isArray(w.config.stroke.curve)&&(A=Array.isArray(v)?w.config.stroke.curve[v[a]]:w.config.stroke.curve[a]),("rangeArea"===e&&(w.globals.hasNullValues||w.config.forecastDataPoints.count>0)||w.globals.hasNullValues)&&"monotoneCubic"===A&&(A="straight"),"smooth"===A){var C=.35*(o-g);w.globals.hasNullValues?(null!==i[a][r]&&(null!==i[a][r+1]?(p=k.move(g,u)+k.curve(g+C,u,o-C,n,o+1,n),f=k.move(g+1,u)+k.curve(g+C,u,o-C,n,o+1,n)+k.line(o,S)+k.line(g,S)+"z"):(p=k.move(g,u),f=k.move(g,u)+"z")),x.push(p),b.push(f)):(p+=k.curve(g+C,u,o-C,n,o,n),f+=k.curve(g+C,u,o-C,n,o,n)),g=o,u=n,r===i[a].length-2&&(f+=k.curve(g,u,o,n,o,S)+k.move(o,n)+"z","rangeArea"===e&&y?p+=k.curve(g,u,o,n,o,c)+k.move(o,c)+"z":w.globals.hasNullValues||(x.push(p),b.push(f)))}else if("monotoneCubic"===A){if("rangeArea"===e?l.length===w.globals.dataPoints:r===i[a].length-2){var L=l.map((function(t,e){return[l[e],h[e]]})),P=Et(L);if(p+=zt(P),f+=zt(P),g=o,u=n,"rangeArea"===e&&y){p+=k.line(l[l.length-1],d[d.length-1]);var I=l.slice().reverse(),T=d.slice().reverse(),M=I.map((function(t,e){return[I[e],T[e]]})),X=Et(M);f=p+=zt(X)}else f+=k.curve(g,u,o,n,o,S)+k.move(o,n)+"z";x.push(p),b.push(f)}}else{if(null===i[a][r+1]){p+=k.move(o,n);var z=w.globals.isXNumeric?(w.globals.seriesX[s][r]-w.globals.minX)/this.xRatio:o-this.xDivision;f=f+k.line(z,S)+k.move(o,n)+"z"}null===i[a][r]&&(p+=k.move(o,n),f+=k.move(o,S)),"stepline"===A?(p=p+k.line(o,null,"H")+k.line(null,n,"V"),f=f+k.line(o,null,"H")+k.line(null,n,"V")):"straight"===A&&(p+=k.line(o,n),f+=k.line(o,n)),r===i[a].length-2&&(f=f+k.line(o,S)+k.move(o,n)+"z","rangeArea"===e&&y?p=p+k.line(o,c)+k.move(o,c)+"z":(x.push(p),b.push(f)))}return{linePaths:x,areaPaths:b,pX:g,pY:u,linePath:p,areaPath:f}}},{key:"handleNullDataPoints",value:function(t,e,i,a,s){var r=this.w;if(null===t[i][a]&&r.config.markers.showNullDataPoints||1===t[i].length){var o=this.markers.plotChartMarkers(e,s,a+1,this.strokeWidth-r.config.markers.strokeWidth/2,!0);null!==o&&this.elPointsMain.add(o)}}}]),t}();window.TreemapSquared={},window.TreemapSquared.generate=function(){function t(e,i,a,s){this.xoffset=e,this.yoffset=i,this.height=s,this.width=a,this.shortestEdge=function(){return Math.min(this.height,this.width)},this.getCoordinates=function(t){var e,i=[],a=this.xoffset,s=this.yoffset,o=r(t)/this.height,n=r(t)/this.width;if(this.width>=this.height)for(e=0;e=this.height){var a=e/this.height,s=this.width-a;i=new t(this.xoffset+a,this.yoffset,s,this.height)}else{var r=e/this.width,o=this.height-r;i=new t(this.xoffset,this.yoffset+r,this.width,o)}return i}}function e(e,a,s,o,n){o=void 0===o?0:o,n=void 0===n?0:n;var l=i(function(t,e){var i,a=[],s=e/r(t);for(i=0;i=o}(e,l=t[0],n)?(e.push(l),i(t.slice(1),e,s,o)):(h=s.cutArea(r(e),o),o.push(s.getCoordinates(e)),i(t,[],h,o)),o;o.push(s.getCoordinates(e))}function a(t,e){var i=Math.min.apply(Math,t),a=Math.max.apply(Math,t),s=r(t);return Math.max(Math.pow(e,2)*a/Math.pow(s,2),Math.pow(s,2)/(Math.pow(e,2)*i))}function s(t){return t&&t.constructor===Array}function r(t){var e,i=0;for(e=0;er-a&&l.width<=o-s){var h=n.rotateAroundCenter(t.node);t.node.setAttribute("transform","rotate(-90 ".concat(h.x," ").concat(h.y,") translate(").concat(l.height/3,")"))}}},{key:"truncateLabels",value:function(t,e,i,a,s,r){var o=new m(this.ctx),n=o.getTextRects(t,e).width+this.w.config.stroke.width+5>s-i&&r-a>s-i?r-a:s-i,l=o.getTextBasedOnMaxWidth({text:t,maxWidth:n,fontSize:e});return t.length!==l.length&&n/e<5?"":l}},{key:"animateTreemap",value:function(t,e,i,a){var s=new b(this.ctx);s.animateRect(t,{x:e.x,y:e.y,width:e.width,height:e.height},{x:i.x,y:i.y,width:i.width,height:i.height},a,(function(){s.animationCompleted(t)}))}}]),t}(),Ot=86400,Nt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w,this.timeScaleArray=[],this.utc=this.w.config.xaxis.labels.datetimeUTC}return r(t,[{key:"calculateTimeScaleTicks",value:function(t,i){var a=this,s=this.w;if(s.globals.allSeriesCollapsed)return s.globals.labels=[],s.globals.timescaleLabels=[],[];var r=new I(this.ctx),o=(i-t)/864e5;this.determineInterval(o),s.globals.disableZoomIn=!1,s.globals.disableZoomOut=!1,o<.00011574074074074075?s.globals.disableZoomIn=!0:o>5e4&&(s.globals.disableZoomOut=!0);var n=r.getTimeUnitsfromTimestamp(t,i,this.utc),l=s.globals.gridWidth/o,h=l/24,c=h/60,d=c/60,g=Math.floor(24*o),u=Math.floor(1440*o),p=Math.floor(o*Ot),f=Math.floor(o),x=Math.floor(o/30),b=Math.floor(o/365),v={minMillisecond:n.minMillisecond,minSecond:n.minSecond,minMinute:n.minMinute,minHour:n.minHour,minDate:n.minDate,minMonth:n.minMonth,minYear:n.minYear},m={firstVal:v,currentMillisecond:v.minMillisecond,currentSecond:v.minSecond,currentMinute:v.minMinute,currentHour:v.minHour,currentMonthDate:v.minDate,currentDate:v.minDate,currentMonth:v.minMonth,currentYear:v.minYear,daysWidthOnXAxis:l,hoursWidthOnXAxis:h,minutesWidthOnXAxis:c,secondsWidthOnXAxis:d,numberOfSeconds:p,numberOfMinutes:u,numberOfHours:g,numberOfDays:f,numberOfMonths:x,numberOfYears:b};switch(this.tickInterval){case"years":this.generateYearScale(m);break;case"months":case"half_year":this.generateMonthScale(m);break;case"months_days":case"months_fortnight":case"days":case"week_days":this.generateDayScale(m);break;case"hours":this.generateHourScale(m);break;case"minutes_fives":case"minutes":this.generateMinuteScale(m);break;case"seconds_tens":case"seconds_fives":case"seconds":this.generateSecondScale(m)}var y=this.timeScaleArray.map((function(t){var i={position:t.position,unit:t.unit,year:t.year,day:t.day?t.day:1,hour:t.hour?t.hour:0,month:t.month+1};return"month"===t.unit?e(e({},i),{},{day:1,value:t.value+1}):"day"===t.unit||"hour"===t.unit?e(e({},i),{},{value:t.value}):"minute"===t.unit?e(e({},i),{},{value:t.value,minute:t.value}):"second"===t.unit?e(e({},i),{},{value:t.value,minute:t.minute,second:t.second}):t}));return y.filter((function(t){var e=1,i=Math.ceil(s.globals.gridWidth/120),r=t.value;void 0!==s.config.xaxis.tickAmount&&(i=s.config.xaxis.tickAmount),y.length>i&&(e=Math.floor(y.length/i));var o=!1,n=!1;switch(a.tickInterval){case"years":"year"===t.unit&&(o=!0);break;case"half_year":e=7,"year"===t.unit&&(o=!0);break;case"months":e=1,"year"===t.unit&&(o=!0);break;case"months_fortnight":e=15,"year"!==t.unit&&"month"!==t.unit||(o=!0),30===r&&(n=!0);break;case"months_days":e=10,"month"===t.unit&&(o=!0),30===r&&(n=!0);break;case"week_days":e=8,"month"===t.unit&&(o=!0);break;case"days":e=1,"month"===t.unit&&(o=!0);break;case"hours":"day"===t.unit&&(o=!0);break;case"minutes_fives":case"seconds_fives":r%5!=0&&(n=!0);break;case"seconds_tens":r%10!=0&&(n=!0)}if("hours"===a.tickInterval||"minutes_fives"===a.tickInterval||"seconds_tens"===a.tickInterval||"seconds_fives"===a.tickInterval){if(!n)return!0}else if((r%e==0||o)&&!n)return!0}))}},{key:"recalcDimensionsBasedOnFormat",value:function(t,e){var i=this.w,a=this.formatDates(t),s=this.removeOverlappingTS(a);i.globals.timescaleLabels=s.slice(),new ot(this.ctx).plotCoords()}},{key:"determineInterval",value:function(t){var e=24*t,i=60*e;switch(!0){case t/365>5:this.tickInterval="years";break;case t>800:this.tickInterval="half_year";break;case t>180:this.tickInterval="months";break;case t>90:this.tickInterval="months_fortnight";break;case t>60:this.tickInterval="months_days";break;case t>30:this.tickInterval="week_days";break;case t>2:this.tickInterval="days";break;case e>2.4:this.tickInterval="hours";break;case i>15:this.tickInterval="minutes_fives";break;case i>5:this.tickInterval="minutes";break;case i>1:this.tickInterval="seconds_tens";break;case 60*i>20:this.tickInterval="seconds_fives";break;default:this.tickInterval="seconds"}}},{key:"generateYearScale",value:function(t){var e=t.firstVal,i=t.currentMonth,a=t.currentYear,s=t.daysWidthOnXAxis,r=t.numberOfYears,o=e.minYear,n=0,l=new I(this.ctx),h="year";if(e.minDate>1||e.minMonth>0){var c=l.determineRemainingDaysOfYear(e.minYear,e.minMonth,e.minDate);n=(l.determineDaysOfYear(e.minYear)-c+1)*s,o=e.minYear+1,this.timeScaleArray.push({position:n,value:o,unit:h,year:o,month:x.monthMod(i+1)})}else 1===e.minDate&&0===e.minMonth&&this.timeScaleArray.push({position:n,value:o,unit:h,year:a,month:x.monthMod(i+1)});for(var d=o,g=n,u=0;u1){l=(h.determineDaysOfMonths(a+1,e.minYear)-i+1)*r,n=x.monthMod(a+1);var g=s+d,u=x.monthMod(n),p=n;0===n&&(c="year",p=g,u=1,g+=d+=1),this.timeScaleArray.push({position:l,value:p,unit:c,year:g,month:u})}else this.timeScaleArray.push({position:l,value:n,unit:c,year:s,month:x.monthMod(a)});for(var f=n+1,b=l,v=0,m=1;vo.determineDaysOfMonths(e+1,i)?(h=1,n="month",g=e+=1,e):e},d=(24-e.minHour)*s,g=l,u=c(h,i,a);0===e.minHour&&1===e.minDate?(d=0,g=x.monthMod(e.minMonth),n="month",h=e.minDate,r++):1!==e.minDate&&0===e.minHour&&0===e.minMinute&&(d=0,l=e.minDate,g=l,u=c(h=l,i,a)),this.timeScaleArray.push({position:d,value:g,unit:n,year:this._getYear(a,u,0),month:x.monthMod(u),day:h});for(var p=d,f=0;fn.determineDaysOfMonths(e+1,s)&&(f=1,e+=1),{month:e,date:f}},c=function(t,e){return t>n.determineDaysOfMonths(e+1,s)?e+=1:e},d=60-(e.minMinute+e.minSecond/60),g=d*r,u=e.minHour+1,p=u+1;60===d&&(g=0,p=(u=e.minHour)+1);var f=i,b=c(f,a);this.timeScaleArray.push({position:g,value:u,unit:l,day:f,hour:p,year:s,month:x.monthMod(b)});for(var v=g,m=0;m=24)p=0,l="day",b=h(f+=1,b).month,b=c(f,b);var y=this._getYear(s,b,0);v=60*r+v;var w=0===p?f:p;this.timeScaleArray.push({position:v,value:w,unit:l,hour:p,day:f,year:y,month:x.monthMod(b)}),p++}}},{key:"generateMinuteScale",value:function(t){for(var e=t.currentMillisecond,i=t.currentSecond,a=t.currentMinute,s=t.currentHour,r=t.currentDate,o=t.currentMonth,n=t.currentYear,l=t.minutesWidthOnXAxis,h=t.secondsWidthOnXAxis,c=t.numberOfMinutes,d=a+1,g=r,u=o,p=n,f=s,b=(60-i-e/1e3)*h,v=0;v=60&&(d=0,24===(f+=1)&&(f=0)),this.timeScaleArray.push({position:b,value:d,unit:"minute",hour:f,minute:d,day:g,year:this._getYear(p,u,0),month:x.monthMod(u)}),b+=l,d++}},{key:"generateSecondScale",value:function(t){for(var e=t.currentMillisecond,i=t.currentSecond,a=t.currentMinute,s=t.currentHour,r=t.currentDate,o=t.currentMonth,n=t.currentYear,l=t.secondsWidthOnXAxis,h=t.numberOfSeconds,c=i+1,d=a,g=r,u=o,p=n,f=s,b=(1e3-e)/1e3*l,v=0;v=60&&(c=0,++d>=60&&(d=0,24===++f&&(f=0))),this.timeScaleArray.push({position:b,value:c,unit:"second",hour:f,minute:d,second:c,day:g,year:this._getYear(p,u,0),month:x.monthMod(u)}),b+=l,c++}},{key:"createRawDateString",value:function(t,e){var i=t.year;return 0===t.month&&(t.month=1),i+="-"+("0"+t.month.toString()).slice(-2),"day"===t.unit?i+="day"===t.unit?"-"+("0"+e).slice(-2):"-01":i+="-"+("0"+(t.day?t.day:"1")).slice(-2),"hour"===t.unit?i+="hour"===t.unit?"T"+("0"+e).slice(-2):"T00":i+="T"+("0"+(t.hour?t.hour:"0")).slice(-2),"minute"===t.unit?i+=":"+("0"+e).slice(-2):i+=":"+(t.minute?("0"+t.minute).slice(-2):"00"),"second"===t.unit?i+=":"+("0"+e).slice(-2):i+=":00",this.utc&&(i+=".000Z"),i}},{key:"formatDates",value:function(t){var e=this,i=this.w;return t.map((function(t){var a=t.value.toString(),s=new I(e.ctx),r=e.createRawDateString(t,a),o=s.getDate(s.parseDate(r));if(e.utc||(o=s.getDate(s.parseDateWithTimezone(r))),void 0===i.config.xaxis.labels.format){var n="dd MMM",l=i.config.xaxis.labels.datetimeFormatter;"year"===t.unit&&(n=l.year),"month"===t.unit&&(n=l.month),"day"===t.unit&&(n=l.day),"hour"===t.unit&&(n=l.hour),"minute"===t.unit&&(n=l.minute),"second"===t.unit&&(n=l.second),a=s.formatDate(o,n)}else a=s.formatDate(o,i.config.xaxis.labels.format);return{dateString:r,position:t.position,value:a,unit:t.unit,year:t.year,month:t.month}}))}},{key:"removeOverlappingTS",value:function(t){var e,i=this,a=new m(this.ctx),s=!1;t.length>0&&t[0].value&&t.every((function(e){return e.value.length===t[0].value.length}))&&(s=!0,e=a.getTextRects(t[0].value).width);var r=0,o=t.map((function(o,n){if(n>0&&i.w.config.xaxis.labels.hideOverlappingLabels){var l=s?e:a.getTextRects(t[r].value).width,h=t[r].position;return o.position>h+l+10?(r=n,o):null}return o}));return o=o.filter((function(t){return null!==t}))}},{key:"_getYear",value:function(t,e,i){return t+Math.floor(e/12)+i}}]),t}(),Wt=function(){function t(e,i){a(this,t),this.ctx=i,this.w=i.w,this.el=e}return r(t,[{key:"setupElements",value:function(){var t=this.w.globals,e=this.w.config,i=e.chart.type;t.axisCharts=["line","area","bar","rangeBar","rangeArea","candlestick","boxPlot","scatter","bubble","radar","heatmap","treemap"].indexOf(i)>-1,t.xyCharts=["line","area","bar","rangeBar","rangeArea","candlestick","boxPlot","scatter","bubble"].indexOf(i)>-1,t.isBarHorizontal=("bar"===e.chart.type||"rangeBar"===e.chart.type||"boxPlot"===e.chart.type)&&e.plotOptions.bar.horizontal,t.chartClass=".apexcharts"+t.chartID,t.dom.baseEl=this.el,t.dom.elWrap=document.createElement("div"),m.setAttrs(t.dom.elWrap,{id:t.chartClass.substring(1),class:"apexcharts-canvas "+t.chartClass.substring(1)}),this.el.appendChild(t.dom.elWrap),t.dom.Paper=new window.SVG.Doc(t.dom.elWrap),t.dom.Paper.attr({class:"apexcharts-svg","xmlns:data":"ApexChartsNS",transform:"translate(".concat(e.chart.offsetX,", ").concat(e.chart.offsetY,")")}),t.dom.Paper.node.style.background=e.chart.background,this.setSVGDimensions(),t.dom.elLegendForeign=document.createElementNS(t.SVGNS,"foreignObject"),m.setAttrs(t.dom.elLegendForeign,{x:0,y:0,width:t.svgWidth,height:t.svgHeight}),t.dom.elLegendWrap=document.createElement("div"),t.dom.elLegendWrap.classList.add("apexcharts-legend"),t.dom.elLegendWrap.setAttribute("xmlns","http://www.w3.org/1999/xhtml"),t.dom.elLegendForeign.appendChild(t.dom.elLegendWrap),t.dom.Paper.node.appendChild(t.dom.elLegendForeign),t.dom.elGraphical=t.dom.Paper.group().attr({class:"apexcharts-inner apexcharts-graphical"}),t.dom.elDefs=t.dom.Paper.defs(),t.dom.Paper.add(t.dom.elGraphical),t.dom.elGraphical.add(t.dom.elDefs)}},{key:"plotChartType",value:function(t,e){var i=this.w,a=i.config,s=i.globals,r={series:[],i:[]},o={series:[],i:[]},n={series:[],i:[]},l={series:[],i:[]},h={series:[],i:[]},c={series:[],i:[]},d={series:[],i:[]},g={series:[],i:[]},u={series:[],seriesRangeEnd:[],i:[]};s.series.map((function(e,p){var f=0;void 0!==t[p].type?("column"===t[p].type||"bar"===t[p].type?(s.series.length>1&&a.plotOptions.bar.horizontal&&console.warn("Horizontal bars are not supported in a mixed/combo chart. Please turn off `plotOptions.bar.horizontal`"),h.series.push(e),h.i.push(p),f++,i.globals.columnSeries=h.series):"area"===t[p].type?(o.series.push(e),o.i.push(p),f++):"line"===t[p].type?(r.series.push(e),r.i.push(p),f++):"scatter"===t[p].type?(n.series.push(e),n.i.push(p)):"bubble"===t[p].type?(l.series.push(e),l.i.push(p),f++):"candlestick"===t[p].type?(c.series.push(e),c.i.push(p),f++):"boxPlot"===t[p].type?(d.series.push(e),d.i.push(p),f++):"rangeBar"===t[p].type?(g.series.push(e),g.i.push(p),f++):"rangeArea"===t[p].type?(u.series.push(s.seriesRangeStart[p]),u.seriesRangeEnd.push(s.seriesRangeEnd[p]),u.i.push(p),f++):console.warn("You have specified an unrecognized chart type. Available types for this property are line/area/column/bar/scatter/bubble/candlestick/boxPlot/rangeBar/rangeArea"),f>1&&(s.comboCharts=!0)):(r.series.push(e),r.i.push(p))}));var p=new Ft(this.ctx,e),f=new kt(this.ctx,e);this.ctx.pie=new Lt(this.ctx);var x=new It(this.ctx);this.ctx.rangeBar=new Tt(this.ctx,e);var b=new Pt(this.ctx),v=[];if(s.comboCharts){if(o.series.length>0&&v.push(p.draw(o.series,"area",o.i)),h.series.length>0)if(i.config.chart.stacked){var m=new wt(this.ctx,e);v.push(m.draw(h.series,h.i))}else this.ctx.bar=new yt(this.ctx,e),v.push(this.ctx.bar.draw(h.series,h.i));if(u.series.length>0&&v.push(p.draw(u.series,"rangeArea",u.i,u.seriesRangeEnd)),r.series.length>0&&v.push(p.draw(r.series,"line",r.i)),c.series.length>0&&v.push(f.draw(c.series,"candlestick",c.i)),d.series.length>0&&v.push(f.draw(d.series,"boxPlot",d.i)),g.series.length>0&&v.push(this.ctx.rangeBar.draw(g.series,g.i)),n.series.length>0){var y=new Ft(this.ctx,e,!0);v.push(y.draw(n.series,"scatter",n.i))}if(l.series.length>0){var w=new Ft(this.ctx,e,!0);v.push(w.draw(l.series,"bubble",l.i))}}else switch(a.chart.type){case"line":v=p.draw(s.series,"line");break;case"area":v=p.draw(s.series,"area");break;case"bar":if(a.chart.stacked)v=new wt(this.ctx,e).draw(s.series);else this.ctx.bar=new yt(this.ctx,e),v=this.ctx.bar.draw(s.series);break;case"candlestick":v=new kt(this.ctx,e).draw(s.series,"candlestick");break;case"boxPlot":v=new kt(this.ctx,e).draw(s.series,a.chart.type);break;case"rangeBar":v=this.ctx.rangeBar.draw(s.series);break;case"rangeArea":v=p.draw(s.seriesRangeStart,"rangeArea",void 0,s.seriesRangeEnd);break;case"heatmap":v=new St(this.ctx,e).draw(s.series);break;case"treemap":v=new Dt(this.ctx,e).draw(s.series);break;case"pie":case"donut":case"polarArea":v=this.ctx.pie.draw(s.series);break;case"radialBar":v=x.draw(s.series);break;case"radar":v=b.draw(s.series);break;default:v=p.draw(s.series)}return v}},{key:"setSVGDimensions",value:function(){var t=this.w.globals,e=this.w.config;t.svgWidth=e.chart.width,t.svgHeight=e.chart.height;var i=x.getDimensions(this.el),a=e.chart.width.toString().split(/[0-9]+/g).pop();"%"===a?x.isNumber(i[0])&&(0===i[0].width&&(i=x.getDimensions(this.el.parentNode)),t.svgWidth=i[0]*parseInt(e.chart.width,10)/100):"px"!==a&&""!==a||(t.svgWidth=parseInt(e.chart.width,10));var s=e.chart.height.toString().split(/[0-9]+/g).pop();if("auto"!==t.svgHeight&&""!==t.svgHeight)if("%"===s){var r=x.getDimensions(this.el.parentNode);t.svgHeight=r[1]*parseInt(e.chart.height,10)/100}else t.svgHeight=parseInt(e.chart.height,10);else t.axisCharts?t.svgHeight=t.svgWidth/1.61:t.svgHeight=t.svgWidth/1.2;if(t.svgWidth<0&&(t.svgWidth=0),t.svgHeight<0&&(t.svgHeight=0),m.setAttrs(t.dom.Paper.node,{width:t.svgWidth,height:t.svgHeight}),"%"!==s){var o=e.chart.sparkline.enabled?0:t.axisCharts?e.chart.parentHeightOffset:0;t.dom.Paper.node.parentNode.parentNode.style.minHeight=t.svgHeight+o+"px"}t.dom.elWrap.style.width=t.svgWidth+"px",t.dom.elWrap.style.height=t.svgHeight+"px"}},{key:"shiftGraphPosition",value:function(){var t=this.w.globals,e=t.translateY,i={transform:"translate("+t.translateX+", "+e+")"};m.setAttrs(t.dom.elGraphical.node,i)}},{key:"resizeNonAxisCharts",value:function(){var t=this.w,e=t.globals,i=0,a=t.config.chart.sparkline.enabled?1:15;a+=t.config.grid.padding.bottom,"top"!==t.config.legend.position&&"bottom"!==t.config.legend.position||!t.config.legend.show||t.config.legend.floating||(i=new lt(this.ctx).legendHelpers.getLegendBBox().clwh+10);var s=t.globals.dom.baseEl.querySelector(".apexcharts-radialbar, .apexcharts-pie"),r=2.05*t.globals.radialSize;if(s&&!t.config.chart.sparkline.enabled&&0!==t.config.plotOptions.radialBar.startAngle){var o=x.getBoundingClientRect(s);r=o.bottom;var n=o.bottom-o.top;r=Math.max(2.05*t.globals.radialSize,n)}var l=r+e.translateY+i+a;e.dom.elLegendForeign&&e.dom.elLegendForeign.setAttribute("height",l),t.config.chart.height&&String(t.config.chart.height).indexOf("%")>0||(e.dom.elWrap.style.height=l+"px",m.setAttrs(e.dom.Paper.node,{height:l}),e.dom.Paper.node.parentNode.parentNode.style.minHeight=l+"px")}},{key:"coreCalculations",value:function(){new U(this.ctx).init()}},{key:"resetGlobals",value:function(){var t=this,e=function(){return t.w.config.series.map((function(t){return[]}))},i=new Y,a=this.w.globals;i.initGlobalVars(a),a.seriesXvalues=e(),a.seriesYvalues=e()}},{key:"isMultipleY",value:function(){if(this.w.config.yaxis.constructor===Array&&this.w.config.yaxis.length>1)return this.w.globals.isMultipleYAxis=!0,!0}},{key:"xySettings",value:function(){var t=null,e=this.w;if(e.globals.axisCharts){if("back"===e.config.xaxis.crosshairs.position)new Q(this.ctx).drawXCrosshairs();if("back"===e.config.yaxis[0].crosshairs.position)new Q(this.ctx).drawYCrosshairs();if("datetime"===e.config.xaxis.type&&void 0===e.config.xaxis.labels.formatter){this.ctx.timeScale=new Nt(this.ctx);var i=[];isFinite(e.globals.minX)&&isFinite(e.globals.maxX)&&!e.globals.isBarHorizontal?i=this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minX,e.globals.maxX):e.globals.isBarHorizontal&&(i=this.ctx.timeScale.calculateTimeScaleTicks(e.globals.minY,e.globals.maxY)),this.ctx.timeScale.recalcDimensionsBasedOnFormat(i)}t=new y(this.ctx).getCalculatedRatios()}return t}},{key:"updateSourceChart",value:function(t){this.ctx.w.globals.selection=void 0,this.ctx.updateHelpers._updateOptions({chart:{selection:{xaxis:{min:t.w.globals.minX,max:t.w.globals.maxX}}}},!1,!1)}},{key:"setupBrushHandler",value:function(){var t=this,i=this.w;if(i.config.chart.brush.enabled&&"function"!=typeof i.config.chart.events.selection){var a=Array.isArray(i.config.chart.brush.targets)||[i.config.chart.brush.target];a.forEach((function(e){var i=ApexCharts.getChartByID(e);i.w.globals.brushSource=t.ctx,"function"!=typeof i.w.config.chart.events.zoomed&&(i.w.config.chart.events.zoomed=function(){t.updateSourceChart(i)}),"function"!=typeof i.w.config.chart.events.scrolled&&(i.w.config.chart.events.scrolled=function(){t.updateSourceChart(i)})})),i.config.chart.events.selection=function(t,s){a.forEach((function(t){var a=ApexCharts.getChartByID(t),r=x.clone(i.config.yaxis);if(i.config.chart.brush.autoScaleYaxis&&1===a.w.globals.series.length){var o=new _(a);r=o.autoScaleY(a,r,s)}var n=a.w.config.yaxis.reduce((function(t,i,s){return[].concat(u(t),[e(e({},a.w.config.yaxis[s]),{},{min:r[0].min,max:r[0].max})])}),[]);a.ctx.updateHelpers._updateOptions({xaxis:{min:s.xaxis.min,max:s.xaxis.max},yaxis:n},!1,!1,!1,!1)}))}}}}]),t}(),Bt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"_updateOptions",value:function(t){var e=this,a=arguments.length>1&&void 0!==arguments[1]&&arguments[1],s=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],o=arguments.length>4&&void 0!==arguments[4]&&arguments[4];return new Promise((function(n){var l=[e.ctx];r&&(l=e.ctx.getSyncedCharts()),e.ctx.w.globals.isExecCalled&&(l=[e.ctx],e.ctx.w.globals.isExecCalled=!1),l.forEach((function(r,h){var c=r.w;if(c.globals.shouldAnimate=s,a||(c.globals.resized=!0,c.globals.dataChanged=!0,s&&r.series.getPreviousPaths()),t&&"object"===i(t)&&(r.config=new E(t),t=y.extendArrayProps(r.config,t,c),r.w.globals.chartID!==e.ctx.w.globals.chartID&&delete t.series,c.config=x.extend(c.config,t),o&&(c.globals.lastXAxis=t.xaxis?x.clone(t.xaxis):[],c.globals.lastYAxis=t.yaxis?x.clone(t.yaxis):[],c.globals.initialConfig=x.extend({},c.config),c.globals.initialSeries=x.clone(c.config.series),t.series))){for(var d=0;d2&&void 0!==arguments[2]&&arguments[2];return new Promise((function(s){var r,o=i.w;return o.globals.shouldAnimate=e,o.globals.dataChanged=!0,e&&i.ctx.series.getPreviousPaths(),o.globals.axisCharts?(0===(r=t.map((function(t,e){return i._extendSeries(t,e)}))).length&&(r=[{data:[]}]),o.config.series=r):o.config.series=t.slice(),a&&(o.globals.initialConfig.series=x.clone(o.config.series),o.globals.initialSeries=x.clone(o.config.series)),i.ctx.update().then((function(){s(i.ctx)}))}))}},{key:"_extendSeries",value:function(t,i){var a=this.w,s=a.config.series[i];return e(e({},a.config.series[i]),{},{name:t.name?t.name:s&&s.name,color:t.color?t.color:s&&s.color,type:t.type?t.type:s&&s.type,group:t.group?t.group:s&&s.group,data:t.data?t.data:s&&s.data})}},{key:"toggleDataPointSelection",value:function(t,e){var i=this.w,a=null,s=".apexcharts-series[data\\:realIndex='".concat(t,"']");return i.globals.axisCharts?a=i.globals.dom.Paper.select("".concat(s," path[j='").concat(e,"'], ").concat(s," circle[j='").concat(e,"'], ").concat(s," rect[j='").concat(e,"']")).members[0]:void 0===e&&(a=i.globals.dom.Paper.select("".concat(s," path[j='").concat(t,"']")).members[0],"pie"!==i.config.chart.type&&"polarArea"!==i.config.chart.type&&"donut"!==i.config.chart.type||this.ctx.pie.pieClicked(t)),a?(new m(this.ctx).pathMouseDown(a,null),a.node?a.node:null):(console.warn("toggleDataPointSelection: Element not found"),null)}},{key:"forceXAxisUpdate",value:function(t){var e=this.w;if(["min","max"].forEach((function(i){void 0!==t.xaxis[i]&&(e.config.xaxis[i]=t.xaxis[i],e.globals.lastXAxis[i]=t.xaxis[i])})),t.xaxis.categories&&t.xaxis.categories.length&&(e.config.xaxis.categories=t.xaxis.categories),e.config.xaxis.convertedCatToNumeric){var i=new z(t);t=i.convertCatToNumericXaxis(t,this.ctx)}return t}},{key:"forceYAxisUpdate",value:function(t){return t.chart&&t.chart.stacked&&"100%"===t.chart.stackType&&(Array.isArray(t.yaxis)?t.yaxis.forEach((function(e,i){t.yaxis[i].min=0,t.yaxis[i].max=100})):(t.yaxis.min=0,t.yaxis.max=100)),t}},{key:"revertDefaultAxisMinMax",value:function(t){var e=this,i=this.w,a=i.globals.lastXAxis,s=i.globals.lastYAxis;t&&t.xaxis&&(a=t.xaxis),t&&t.yaxis&&(s=t.yaxis),i.config.xaxis.min=a.min,i.config.xaxis.max=a.max;var r=function(t){void 0!==s[t]&&(i.config.yaxis[t].min=s[t].min,i.config.yaxis[t].max=s[t].max)};i.config.yaxis.map((function(t,a){i.globals.zoomed||void 0!==s[a]?r(a):void 0!==e.ctx.opts.yaxis[a]&&(t.min=e.ctx.opts.yaxis[a].min,t.max=e.ctx.opts.yaxis[a].max)}))}}]),t}();Rt="undefined"!=typeof window?window:void 0,Ht=function(t,e){var a=(void 0!==this?this:t).SVG=function(t){if(a.supported)return t=new a.Doc(t),a.parser.draw||a.prepare(),t};if(a.ns="http://www.w3.org/2000/svg",a.xmlns="http://www.w3.org/2000/xmlns/",a.xlink="http://www.w3.org/1999/xlink",a.svgjs="http://svgjs.dev",a.supported=!0,!a.supported)return!1;a.did=1e3,a.eid=function(t){return"Svgjs"+d(t)+a.did++},a.create=function(t){var i=e.createElementNS(this.ns,t);return i.setAttribute("id",this.eid(t)),i},a.extend=function(){var t,e;e=(t=[].slice.call(arguments)).pop();for(var i=t.length-1;i>=0;i--)if(t[i])for(var s in e)t[i].prototype[s]=e[s];a.Set&&a.Set.inherit&&a.Set.inherit()},a.invent=function(t){var e="function"==typeof t.create?t.create:function(){this.constructor.call(this,a.create(t.create))};return t.inherit&&(e.prototype=new t.inherit),t.extend&&a.extend(e,t.extend),t.construct&&a.extend(t.parent||a.Container,t.construct),e},a.adopt=function(e){return e?e.instance?e.instance:((i="svg"==e.nodeName?e.parentNode instanceof t.SVGElement?new a.Nested:new a.Doc:"linearGradient"==e.nodeName?new a.Gradient("linear"):"radialGradient"==e.nodeName?new a.Gradient("radial"):a[d(e.nodeName)]?new(a[d(e.nodeName)]):new a.Element(e)).type=e.nodeName,i.node=e,e.instance=i,i instanceof a.Doc&&i.namespace().defs(),i.setData(JSON.parse(e.getAttribute("svgjs:data"))||{}),i):null;var i},a.prepare=function(){var t=e.getElementsByTagName("body")[0],i=(t?new a.Doc(t):a.adopt(e.documentElement).nested()).size(2,0);a.parser={body:t||e.documentElement,draw:i.style("opacity:0;position:absolute;left:-100%;top:-100%;overflow:hidden").node,poly:i.polyline().node,path:i.path().node,native:a.create("svg")}},a.parser={native:a.create("svg")},e.addEventListener("DOMContentLoaded",(function(){a.parser.draw||a.prepare()}),!1),a.regex={numberAndUnit:/^([+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?)([a-z%]*)$/i,hex:/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i,rgb:/rgb\((\d+),(\d+),(\d+)\)/,reference:/#([a-z0-9\-_]+)/i,transforms:/\)\s*,?\s*/,whitespace:/\s/g,isHex:/^#[a-f0-9]{3,6}$/i,isRgb:/^rgb\(/,isCss:/[^:]+:[^;]+;?/,isBlank:/^(\s+)?$/,isNumber:/^[+-]?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,isPercent:/^-?[\d\.]+%$/,isImage:/\.(jpg|jpeg|png|gif|svg)(\?[^=]+.*)?/i,delimiter:/[\s,]+/,hyphen:/([^e])\-/gi,pathLetters:/[MLHVCSQTAZ]/gi,isPathLetter:/[MLHVCSQTAZ]/i,numbersWithDots:/((\d?\.\d+(?:e[+-]?\d+)?)((?:\.\d+(?:e[+-]?\d+)?)+))+/gi,dots:/\./g},a.utils={map:function(t,e){for(var i=t.length,a=[],s=0;s1?1:t,new a.Color({r:~~(this.r+(this.destination.r-this.r)*t),g:~~(this.g+(this.destination.g-this.g)*t),b:~~(this.b+(this.destination.b-this.b)*t)})):this}}),a.Color.test=function(t){return t+="",a.regex.isHex.test(t)||a.regex.isRgb.test(t)},a.Color.isRgb=function(t){return t&&"number"==typeof t.r&&"number"==typeof t.g&&"number"==typeof t.b},a.Color.isColor=function(t){return a.Color.isRgb(t)||a.Color.test(t)},a.Array=function(t,e){0==(t=(t||[]).valueOf()).length&&e&&(t=e.valueOf()),this.value=this.parse(t)},a.extend(a.Array,{toString:function(){return this.value.join(" ")},valueOf:function(){return this.value},parse:function(t){return t=t.valueOf(),Array.isArray(t)?t:this.split(t)}}),a.PointArray=function(t,e){a.Array.call(this,t,e||[[0,0]])},a.PointArray.prototype=new a.Array,a.PointArray.prototype.constructor=a.PointArray;for(var s={M:function(t,e,i){return e.x=i.x=t[0],e.y=i.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]]},Q:function(t,e){return e.x=t[2],e.y=t[3],["Q",t[0],t[1],t[2],t[3]]},S:function(t,e){return e.x=t[2],e.y=t[3],["S",t[0],t[1],t[2],t[3]]},Z:function(t,e,i){return e.x=i.x,e.y=i.y,["Z"]}},r="mlhvqtcsaz".split(""),o=0,n=r.length;ol);return r},bbox:function(){return a.parser.draw||a.prepare(),a.parser.path.setAttribute("d",this.toString()),a.parser.path.getBBox()}}),a.Number=a.invent({create:function(t,e){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(a.regex.numberAndUnit))&&(this.value=parseFloat(e[1]),"%"==e[5]?this.value/=100:"s"==e[5]&&(this.value*=1e3),this.unit=e[5]):t instanceof a.Number&&(this.value=t.valueOf(),this.unit=t.unit)},extend:{toString:function(){return("%"==this.unit?~~(1e8*this.value)/1e6:"s"==this.unit?this.value/1e3:this.value)+this.unit},toJSON:function(){return this.toString()},valueOf:function(){return this.value},plus:function(t){return t=new a.Number(t),new a.Number(this+t,this.unit||t.unit)},minus:function(t){return t=new a.Number(t),new a.Number(this-t,this.unit||t.unit)},times:function(t){return t=new a.Number(t),new a.Number(this*t,this.unit||t.unit)},divide:function(t){return t=new a.Number(t),new a.Number(this/t,this.unit||t.unit)},to:function(t){var e=new a.Number(this);return"string"==typeof t&&(e.unit=t),e},morph:function(t){return this.destination=new a.Number(t),t.relative&&(this.destination.value+=this.value),this},at:function(t){return this.destination?new a.Number(this.destination).minus(this).times(t).plus(this):this}}}),a.Element=a.invent({create:function(t){this._stroke=a.defaults.attrs.stroke,this._event=null,this.dom={},(this.node=t)&&(this.type=t.nodeName,this.node.instance=this,this._stroke=t.getAttribute("stroke")||this._stroke)},extend:{x:function(t){return this.attr("x",t)},y:function(t){return this.attr("y",t)},cx:function(t){return null==t?this.x()+this.width()/2:this.x(t-this.width()/2)},cy:function(t){return null==t?this.y()+this.height()/2:this.y(t-this.height()/2)},move:function(t,e){return this.x(t).y(e)},center:function(t,e){return this.cx(t).cy(e)},width:function(t){return this.attr("width",t)},height:function(t){return this.attr("height",t)},size:function(t,e){var i=u(this,t,e);return this.width(new a.Number(i.width)).height(new a.Number(i.height))},clone:function(t){this.writeDataToDom();var e=x(this.node.cloneNode(!0));return t?t.add(e):this.after(e),e},remove:function(){return this.parent()&&this.parent().removeElement(this),this},replace:function(t){return this.after(t).remove(),t},addTo:function(t){return t.put(this)},putIn:function(t){return t.add(this)},id:function(t){return this.attr("id",t)},show:function(){return this.style("display","")},hide:function(){return this.style("display","none")},visible:function(){return"none"!=this.style("display")},toString:function(){return this.attr("id")},classes:function(){var t=this.attr("class");return null==t?[]:t.trim().split(a.regex.delimiter)},hasClass:function(t){return-1!=this.classes().indexOf(t)},addClass:function(t){if(!this.hasClass(t)){var 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)},reference:function(t){return a.get(this.attr(t))},parent:function(e){var i=this;if(!i.node.parentNode)return null;if(i=a.adopt(i.node.parentNode),!e)return i;for(;i&&i.node instanceof t.SVGElement;){if("string"==typeof e?i.matches(e):i instanceof e)return i;if(!i.node.parentNode||"#document"==i.node.parentNode.nodeName)return null;i=a.adopt(i.node.parentNode)}},doc:function(){return this instanceof a.Doc?this:this.parent(a.Doc)},parents:function(t){var e=[],i=this;do{if(!(i=i.parent(t))||!i.node)break;e.push(i)}while(i.parent);return e},matches:function(t){return function(t,e){return(t.matches||t.matchesSelector||t.msMatchesSelector||t.mozMatchesSelector||t.webkitMatchesSelector||t.oMatchesSelector).call(t,e)}(this.node,t)},native:function(){return this.node},svg:function(t){var i=e.createElement("svg");if(!(t&&this instanceof a.Parent))return i.appendChild(t=e.createElement("svg")),this.writeDataToDom(),t.appendChild(this.node.cloneNode(!0)),i.innerHTML.replace(/^/,"").replace(/<\/svg>$/,"");i.innerHTML=""+t.replace(/\n/,"").replace(/<([\w:-]+)([^<]+?)\/>/g,"<$1$2>")+"";for(var s=0,r=i.firstChild.childNodes.length;s":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)}},a.morph=function(t){return function(e,i){return new a.MorphObj(e,i).at(t)}},a.Situation=a.invent({create:function(t){this.init=!1,this.reversed=!1,this.reversing=!1,this.duration=new a.Number(t.duration).valueOf(),this.delay=new a.Number(t.delay).valueOf(),this.start=+new Date+this.delay,this.finish=this.start+this.duration,this.ease=t.ease,this.loop=0,this.loops=!1,this.animations={},this.attrs={},this.styles={},this.transforms=[],this.once={}}}),a.FX=a.invent({create:function(t){this._target=t,this.situations=[],this.active=!1,this.situation=null,this.paused=!1,this.lastPos=0,this.pos=0,this.absPos=0,this._speed=1},extend:{animate:function(t,e,s){"object"===i(t)&&(e=t.ease,s=t.delay,t=t.duration);var r=new a.Situation({duration:t||1e3,delay:s||0,ease:a.easing[e||"-"]||e});return this.queue(r),this},target:function(t){return t&&t instanceof a.Element?(this._target=t,this):this._target},timeToAbsPos:function(t){return(t-this.situation.start)/(this.situation.duration/this._speed)},absPosToTime:function(t){return this.situation.duration/this._speed*t+this.situation.start},startAnimFrame:function(){this.stopAnimFrame(),this.animationFrame=t.requestAnimationFrame(function(){this.step()}.bind(this))},stopAnimFrame:function(){t.cancelAnimationFrame(this.animationFrame)},start:function(){return!this.active&&this.situation&&(this.active=!0,this.startCurrent()),this},startCurrent:function(){return this.situation.start=+new Date+this.situation.delay/this._speed,this.situation.finish=this.situation.start+this.situation.duration/this._speed,this.initAnimations().step()},queue:function(t){return("function"==typeof t||t instanceof a.Situation)&&this.situations.push(t),this.situation||(this.situation=this.situations.shift()),this},dequeue:function(){return this.stop(),this.situation=this.situations.shift(),this.situation&&(this.situation instanceof a.Situation?this.start():this.situation.call(this)),this},initAnimations:function(){var t,e=this.situation;if(e.init)return this;for(var i in e.animations){t=this.target()[i](),Array.isArray(t)||(t=[t]),Array.isArray(e.animations[i])||(e.animations[i]=[e.animations[i]]);for(var s=t.length;s--;)e.animations[i][s]instanceof a.Number&&(t[s]=new a.Number(t[s])),e.animations[i][s]=t[s].morph(e.animations[i][s])}for(var i in e.attrs)e.attrs[i]=new a.MorphObj(this.target().attr(i),e.attrs[i]);for(var i in e.styles)e.styles[i]=new a.MorphObj(this.target().style(i),e.styles[i]);return e.initialTransformation=this.target().matrixify(),e.init=!0,this},clearQueue:function(){return this.situations=[],this},clearCurrent:function(){return this.situation=null,this},stop:function(t,e){var i=this.active;return this.active=!1,e&&this.clearQueue(),t&&this.situation&&(!i&&this.startCurrent(),this.atEnd()),this.stopAnimFrame(),this.clearCurrent()},after:function(t){var e=this.last();return this.target().on("finished.fx",(function i(a){a.detail.situation==e&&(t.call(this,e),this.off("finished.fx",i))})),this._callStart()},during:function(t){var e=this.last(),i=function(i){i.detail.situation==e&&t.call(this,i.detail.pos,a.morph(i.detail.pos),i.detail.eased,e)};return this.target().off("during.fx",i).on("during.fx",i),this.after((function(){this.off("during.fx",i)})),this._callStart()},afterAll:function(t){var e=function e(i){t.call(this),this.off("allfinished.fx",e)};return this.target().off("allfinished.fx",e).on("allfinished.fx",e),this._callStart()},last:function(){return this.situations.length?this.situations[this.situations.length-1]:this.situation},add:function(t,e,i){return this.last()[i||"animations"][t]=e,this._callStart()},step:function(t){var e,i,a;t||(this.absPos=this.timeToAbsPos(+new Date)),!1!==this.situation.loops?(e=Math.max(this.absPos,0),i=Math.floor(e),!0===this.situation.loops||ithis.lastPos&&r<=s&&(this.situation.once[r].call(this.target(),this.pos,s),delete this.situation.once[r]);return this.active&&this.target().fire("during",{pos:this.pos,eased:s,fx:this,situation:this.situation}),this.situation?(this.eachAt(),1==this.pos&&!this.situation.reversed||this.situation.reversed&&0==this.pos?(this.stopAnimFrame(),this.target().fire("finished",{fx:this,situation:this.situation}),this.situations.length||(this.target().fire("allfinished"),this.situations.length||(this.target().off(".fx"),this.active=!1)),this.active?this.dequeue():this.clearCurrent()):!this.paused&&this.active&&this.startAnimFrame(),this.lastPos=s,this):this},eachAt:function(){var t,e=this,i=this.target(),s=this.situation;for(var r in s.animations)t=[].concat(s.animations[r]).map((function(t){return"string"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i[r].apply(i,t);for(var r in s.attrs)t=[r].concat(s.attrs[r]).map((function(t){return"string"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i.attr.apply(i,t);for(var r in s.styles)t=[r].concat(s.styles[r]).map((function(t){return"string"!=typeof t&&t.at?t.at(s.ease(e.pos),e.pos):t})),i.style.apply(i,t);if(s.transforms.length){t=s.initialTransformation,r=0;for(var o=s.transforms.length;r=0;--s)this[v[s]]=null!=t[v[s]]?t[v[s]]:e[v[s]]},extend:{extract:function(){var t=p(this,0,1);p(this,1,0);var e=180/Math.PI*Math.atan2(t.y,t.x)-90;return{x:this.e,y:this.f,transformedX:(this.e*Math.cos(e*Math.PI/180)+this.f*Math.sin(e*Math.PI/180))/Math.sqrt(this.a*this.a+this.b*this.b),transformedY:(this.f*Math.cos(e*Math.PI/180)+this.e*Math.sin(-e*Math.PI/180))/Math.sqrt(this.c*this.c+this.d*this.d),rotation:e,a:this.a,b:this.b,c:this.c,d:this.d,e:this.e,f:this.f,matrix:new a.Matrix(this)}},clone:function(){return new a.Matrix(this)},morph:function(t){return this.destination=new a.Matrix(t),this},multiply:function(t){return new a.Matrix(this.native().multiply(function(t){return t instanceof a.Matrix||(t=new a.Matrix(t)),t}(t).native()))},inverse:function(){return new a.Matrix(this.native().inverse())},translate:function(t,e){return new a.Matrix(this.native().translate(t||0,e||0))},native:function(){for(var t=a.parser.native.createSVGMatrix(),e=v.length-1;e>=0;e--)t[v[e]]=this[v[e]];return t},toString:function(){return"matrix("+b(this.a)+","+b(this.b)+","+b(this.c)+","+b(this.d)+","+b(this.e)+","+b(this.f)+")"}},parent:a.Element,construct:{ctm:function(){return new a.Matrix(this.node.getCTM())},screenCTM:function(){if(this instanceof a.Nested){var t=this.rect(1,1),e=t.node.getScreenCTM();return t.remove(),new a.Matrix(e)}return new a.Matrix(this.node.getScreenCTM())}}}),a.Point=a.invent({create:function(t,e){var a;a=Array.isArray(t)?{x:t[0],y:t[1]}:"object"===i(t)?{x:t.x,y:t.y}:null!=t?{x:t,y:null!=e?e:t}:{x:0,y:0},this.x=a.x,this.y=a.y},extend:{clone:function(){return new a.Point(this)},morph:function(t,e){return this.destination=new a.Point(t,e),this}}}),a.extend(a.Element,{point:function(t,e){return new a.Point(t,e).transform(this.screenCTM().inverse())}}),a.extend(a.Element,{attr:function(t,e,s){if(null==t){for(t={},s=(e=this.node.attributes).length-1;s>=0;s--)t[e[s].nodeName]=a.regex.isNumber.test(e[s].nodeValue)?parseFloat(e[s].nodeValue):e[s].nodeValue;return t}if("object"===i(t))for(var r in t)this.attr(r,t[r]);else if(null===e)this.node.removeAttribute(t);else{if(null==e)return null==(e=this.node.getAttribute(t))?a.defaults.attrs[t]:a.regex.isNumber.test(e)?parseFloat(e):e;"stroke-width"==t?this.attr("stroke",parseFloat(e)>0?this._stroke:null):"stroke"==t&&(this._stroke=e),"fill"!=t&&"stroke"!=t||(a.regex.isImage.test(e)&&(e=this.doc().defs().image(e,0,0)),e instanceof a.Image&&(e=this.doc().defs().pattern(0,0,(function(){this.add(e)})))),"number"==typeof e?e=new a.Number(e):a.Color.isColor(e)?e=new a.Color(e):Array.isArray(e)&&(e=new a.Array(e)),"leading"==t?this.leading&&this.leading(e):"string"==typeof s?this.node.setAttributeNS(s,t,e.toString()):this.node.setAttribute(t,e.toString()),!this.rebuild||"font-size"!=t&&"x"!=t||this.rebuild(t,e)}return this}}),a.extend(a.Element,{transform:function(t,e){var s;return"object"!==i(t)?(s=new a.Matrix(this).extract(),"string"==typeof t?s[t]:s):(s=new a.Matrix(this),e=!!e||!!t.relative,null!=t.a&&(s=e?s.multiply(new a.Matrix(t)):new a.Matrix(t)),this.attr("transform",s))}}),a.extend(a.Element,{untransform:function(){return this.attr("transform",null)},matrixify:function(){return(this.attr("transform")||"").split(a.regex.transforms).slice(0,-1).map((function(t){var e=t.trim().split("(");return[e[0],e[1].split(a.regex.delimiter).map((function(t){return parseFloat(t)}))]})).reduce((function(t,e){return"matrix"==e[0]?t.multiply(f(e[1])):t[e[0]].apply(t,e[1])}),new a.Matrix)},toParent:function(t){if(this==t)return this;var e=this.screenCTM(),i=t.screenCTM().inverse();return this.addTo(t).untransform().transform(i.multiply(e)),this},toDoc:function(){return this.toParent(this.doc())}}),a.Transformation=a.invent({create:function(t,e){if(arguments.length>1&&"boolean"!=typeof e)return this.constructor.call(this,[].slice.call(arguments));if(Array.isArray(t))for(var a=0,s=this.arguments.length;a=0},index:function(t){return[].slice.call(this.node.childNodes).indexOf(t.node)},get:function(t){return a.adopt(this.node.childNodes[t])},first:function(){return this.get(0)},last:function(){return this.get(this.node.childNodes.length-1)},each:function(t,e){for(var i=this.children(),s=0,r=i.length;s=0;i--)e.childNodes[i]instanceof t.SVGElement&&x(e.childNodes[i]);return a.adopt(e).id(a.eid(e.nodeName))}function b(t){return Math.abs(t)>1e-37?t:0}["fill","stroke"].forEach((function(t){var e={};e[t]=function(e){if(void 0===e)return this;if("string"==typeof e||a.Color.isRgb(e)||e&&"function"==typeof e.fill)this.attr(t,e);else for(var i=l[t].length-1;i>=0;i--)null!=e[l[t][i]]&&this.attr(l.prefix(t,l[t][i]),e[l[t][i]]);return this},a.extend(a.Element,a.FX,e)})),a.extend(a.Element,a.FX,{translate:function(t,e){return this.transform({x:t,y:e})},matrix:function(t){return this.attr("transform",new a.Matrix(6==arguments.length?[].slice.call(arguments):t))},opacity:function(t){return this.attr("opacity",t)},dx:function(t){return this.x(new a.Number(t).plus(this instanceof a.FX?0:this.x()),!0)},dy:function(t){return this.y(new a.Number(t).plus(this instanceof a.FX?0:this.y()),!0)}}),a.extend(a.Path,{length:function(){return this.node.getTotalLength()},pointAt:function(t){return this.node.getPointAtLength(t)}}),a.Set=a.invent({create:function(t){Array.isArray(t)?this.members=t:this.clear()},extend:{add:function(){for(var t=[].slice.call(arguments),e=0,i=t.length;e-1&&this.members.splice(e,1),this},each:function(t){for(var e=0,i=this.members.length;e=0},index:function(t){return this.members.indexOf(t)},get:function(t){return this.members[t]},first:function(){return this.get(0)},last:function(){return this.get(this.members.length-1)},valueOf:function(){return this.members}},construct:{set:function(t){return new a.Set(t)}}}),a.FX.Set=a.invent({create:function(t){this.set=t}}),a.Set.inherit=function(){var t=[];for(var e in a.Shape.prototype)"function"==typeof a.Shape.prototype[e]&&"function"!=typeof a.Set.prototype[e]&&t.push(e);for(var e in t.forEach((function(t){a.Set.prototype[t]=function(){for(var e=0,i=this.members.length;e=0;t--)delete this.memory()[arguments[t]];return this},memory:function(){return this._memory||(this._memory={})}}),a.get=function(t){var i=e.getElementById(function(t){var e=(t||"").toString().match(a.regex.reference);if(e)return e[1]}(t)||t);return a.adopt(i)},a.select=function(t,i){return new a.Set(a.utils.map((i||e).querySelectorAll(t),(function(t){return a.adopt(t)})))},a.extend(a.Parent,{select:function(t){return a.select(t,this.node)}});var v="abcdef".split("");if("function"!=typeof t.CustomEvent){var m=function(t,i){i=i||{bubbles:!1,cancelable:!1,detail:void 0};var a=e.createEvent("CustomEvent");return a.initCustomEvent(t,i.bubbles,i.cancelable,i.detail),a};m.prototype=t.Event.prototype,a.CustomEvent=m}else a.CustomEvent=t.CustomEvent;return a},"function"==typeof define&&define.amd?define((function(){return Ht(Rt,Rt.document)})):"object"===("undefined"==typeof exports?"undefined":i(exports))&&"undefined"!=typeof module?module.exports=Rt.document?Ht(Rt,Rt.document):function(t){return Ht(t,t.document)}:Rt.SVG=Ht(Rt,Rt.document), +/*! svg.filter.js - v2.0.2 - 2016-02-24 + * https://github.com/wout/svg.filter.js + * Copyright (c) 2016 Wout Fierens; Licensed MIT */ +function(){SVG.Filter=SVG.invent({create:"filter",inherit:SVG.Parent,extend:{source:"SourceGraphic",sourceAlpha:"SourceAlpha",background:"BackgroundImage",backgroundAlpha:"BackgroundAlpha",fill:"FillPaint",stroke:"StrokePaint",autoSetIn:!0,put:function(t,e){return this.add(t,e),!t.attr("in")&&this.autoSetIn&&t.attr("in",this.source),t.attr("result")||t.attr("result",t),t},blend:function(t,e,i){return this.put(new SVG.BlendEffect(t,e,i))},colorMatrix:function(t,e){return this.put(new SVG.ColorMatrixEffect(t,e))},convolveMatrix:function(t){return this.put(new SVG.ConvolveMatrixEffect(t))},componentTransfer:function(t){return this.put(new SVG.ComponentTransferEffect(t))},composite:function(t,e,i){return this.put(new SVG.CompositeEffect(t,e,i))},flood:function(t,e){return this.put(new SVG.FloodEffect(t,e))},offset:function(t,e){return this.put(new SVG.OffsetEffect(t,e))},image:function(t){return this.put(new SVG.ImageEffect(t))},merge:function(){var t=[void 0];for(var e in arguments)t.push(arguments[e]);return this.put(new(SVG.MergeEffect.bind.apply(SVG.MergeEffect,t)))},gaussianBlur:function(t,e){return this.put(new SVG.GaussianBlurEffect(t,e))},morphology:function(t,e){return this.put(new SVG.MorphologyEffect(t,e))},diffuseLighting:function(t,e,i){return this.put(new SVG.DiffuseLightingEffect(t,e,i))},displacementMap:function(t,e,i,a,s){return this.put(new SVG.DisplacementMapEffect(t,e,i,a,s))},specularLighting:function(t,e,i,a){return this.put(new SVG.SpecularLightingEffect(t,e,i,a))},tile:function(){return this.put(new SVG.TileEffect)},turbulence:function(t,e,i,a,s){return this.put(new SVG.TurbulenceEffect(t,e,i,a,s))},toString:function(){return"url(#"+this.attr("id")+")"}}}),SVG.extend(SVG.Defs,{filter:function(t){var e=this.put(new SVG.Filter);return"function"==typeof t&&t.call(e,e),e}}),SVG.extend(SVG.Container,{filter:function(t){return this.defs().filter(t)}}),SVG.extend(SVG.Element,SVG.G,SVG.Nested,{filter:function(t){return this.filterer=t instanceof SVG.Element?t:this.doc().filter(t),this.doc()&&this.filterer.doc()!==this.doc()&&this.doc().defs().add(this.filterer),this.attr("filter",this.filterer),this.filterer},unfilter:function(t){return this.filterer&&!0===t&&this.filterer.remove(),delete this.filterer,this.attr("filter",null)}}),SVG.Effect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Element,extend:{in:function(t){return null==t?this.parent()&&this.parent().select('[result="'+this.attr("in")+'"]').get(0)||this.attr("in"):this.attr("in",t)},result:function(t){return null==t?this.attr("result"):this.attr("result",t)},toString:function(){return this.result()}}}),SVG.ParentEffect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Parent,extend:{in:function(t){return null==t?this.parent()&&this.parent().select('[result="'+this.attr("in")+'"]').get(0)||this.attr("in"):this.attr("in",t)},result:function(t){return null==t?this.attr("result"):this.attr("result",t)},toString:function(){return this.result()}}});var t={blend:function(t,e){return this.parent()&&this.parent().blend(this,t,e)},colorMatrix:function(t,e){return this.parent()&&this.parent().colorMatrix(t,e).in(this)},convolveMatrix:function(t){return this.parent()&&this.parent().convolveMatrix(t).in(this)},componentTransfer:function(t){return this.parent()&&this.parent().componentTransfer(t).in(this)},composite:function(t,e){return this.parent()&&this.parent().composite(this,t,e)},flood:function(t,e){return this.parent()&&this.parent().flood(t,e)},offset:function(t,e){return this.parent()&&this.parent().offset(t,e).in(this)},image:function(t){return this.parent()&&this.parent().image(t)},merge:function(){return this.parent()&&this.parent().merge.apply(this.parent(),[this].concat(arguments))},gaussianBlur:function(t,e){return this.parent()&&this.parent().gaussianBlur(t,e).in(this)},morphology:function(t,e){return this.parent()&&this.parent().morphology(t,e).in(this)},diffuseLighting:function(t,e,i){return this.parent()&&this.parent().diffuseLighting(t,e,i).in(this)},displacementMap:function(t,e,i,a){return this.parent()&&this.parent().displacementMap(this,t,e,i,a)},specularLighting:function(t,e,i,a){return this.parent()&&this.parent().specularLighting(t,e,i,a).in(this)},tile:function(){return this.parent()&&this.parent().tile().in(this)},turbulence:function(t,e,i,a,s){return this.parent()&&this.parent().turbulence(t,e,i,a,s).in(this)}};SVG.extend(SVG.Effect,t),SVG.extend(SVG.ParentEffect,t),SVG.ChildEffect=SVG.invent({create:function(){this.constructor.call(this)},inherit:SVG.Element,extend:{in:function(t){this.attr("in",t)}}});var e={blend:function(t,e,i){this.attr({in:t,in2:e,mode:i||"normal"})},colorMatrix:function(t,e){"matrix"==t&&(e=s(e)),this.attr({type:t,values:void 0===e?null:e})},convolveMatrix:function(t){t=s(t),this.attr({order:Math.sqrt(t.split(" ").length),kernelMatrix:t})},composite:function(t,e,i){this.attr({in:t,in2:e,operator:i})},flood:function(t,e){this.attr("flood-color",t),null!=e&&this.attr("flood-opacity",e)},offset:function(t,e){this.attr({dx:t,dy:e})},image:function(t){this.attr("href",t,SVG.xlink)},displacementMap:function(t,e,i,a,s){this.attr({in:t,in2:e,scale:i,xChannelSelector:a,yChannelSelector:s})},gaussianBlur:function(t,e){null!=t||null!=e?this.attr("stdDeviation",function(t){if(!Array.isArray(t))return t;for(var e=0,i=t.length,a=[];e1&&(I*=a=Math.sqrt(a),T*=a);s=(new SVG.Matrix).rotate(M).scale(1/I,1/T).rotate(-M),F=F.transform(s),R=R.transform(s),r=[R.x-F.x,R.y-F.y],n=r[0]*r[0]+r[1]*r[1],o=Math.sqrt(n),r[0]/=o,r[1]/=o,l=n<4?Math.sqrt(1-n/4):0,X===z&&(l*=-1);h=new SVG.Point((R.x+F.x)/2+l*-r[1],(R.y+F.y)/2+l*r[0]),c=new SVG.Point(F.x-h.x,F.y-h.y),d=new SVG.Point(R.x-h.x,R.y-h.y),g=Math.acos(c.x/Math.sqrt(c.x*c.x+c.y*c.y)),c.y<0&&(g*=-1);u=Math.acos(d.x/Math.sqrt(d.x*d.x+d.y*d.y)),d.y<0&&(u*=-1);z&&g>u&&(u+=2*Math.PI);!z&&gr.maxX-e.width&&(o=(a=r.maxX-e.width)-this.startPoints.box.x),null!=r.minY&&sr.maxY-e.height&&(n=(s=r.maxY-e.height)-this.startPoints.box.y),null!=r.snapToGrid&&(a-=a%r.snapToGrid,s-=s%r.snapToGrid,o-=o%r.snapToGrid,n-=n%r.snapToGrid),this.el instanceof SVG.G?this.el.matrix(this.startPoints.transform).transform({x:o,y:n},!0):this.el.move(a,s));return i},t.prototype.end=function(t){var e=this.drag(t);this.el.fire("dragend",{event:t,p:e,m:this.m,handler:this}),SVG.off(window,"mousemove.drag"),SVG.off(window,"touchmove.drag"),SVG.off(window,"mouseup.drag"),SVG.off(window,"touchend.drag")},SVG.extend(SVG.Element,{draggable:function(e,i){"function"!=typeof e&&"object"!=typeof e||(i=e,e=!0);var a=this.remember("_draggable")||new t(this);return(e=void 0===e||e)?a.init(i||{},e):(this.off("mousedown.drag"),this.off("touchstart.drag")),this}})}.call(void 0),function(){function t(t){this.el=t,t.remember("_selectHandler",this),this.pointSelection={isSelected:!1},this.rectSelection={isSelected:!1},this.pointsList={lt:[0,0],rt:["width",0],rb:["width","height"],lb:[0,"height"],t:["width",0],r:["width","height"],b:["width","height"],l:[0,"height"]},this.pointCoord=function(t,e,i){var a="string"!=typeof t?t:e[t];return i?a/2:a},this.pointCoords=function(t,e){var i=this.pointsList[t];return{x:this.pointCoord(i[0],e,"t"===t||"b"===t),y:this.pointCoord(i[1],e,"r"===t||"l"===t)}}}t.prototype.init=function(t,e){var i=this.el.bbox();this.options={};var a=this.el.selectize.defaults.points;for(var s in this.el.selectize.defaults)this.options[s]=this.el.selectize.defaults[s],void 0!==e[s]&&(this.options[s]=e[s]);var r=["points","pointsExclude"];for(var s in r){var o=this.options[r[s]];"string"==typeof o?o=o.length>0?o.split(/\s*,\s*/i):[]:"boolean"==typeof o&&"points"===r[s]&&(o=o?a:[]),this.options[r[s]]=o}this.options.points=[a,this.options.points].reduce((function(t,e){return t.filter((function(t){return e.indexOf(t)>-1}))})),this.options.points=[this.options.points,this.options.pointsExclude].reduce((function(t,e){return t.filter((function(t){return e.indexOf(t)<0}))})),this.parent=this.el.parent(),this.nested=this.nested||this.parent.group(),this.nested.matrix(new SVG.Matrix(this.el).translate(i.x,i.y)),this.options.deepSelect&&-1!==["line","polyline","polygon"].indexOf(this.el.type)?this.selectPoints(t):this.selectRect(t),this.observe(),this.cleanup()},t.prototype.selectPoints=function(t){return this.pointSelection.isSelected=t,this.pointSelection.set||(this.pointSelection.set=this.parent.set(),this.drawPoints()),this},t.prototype.getPointArray=function(){var t=this.el.bbox();return this.el.array().valueOf().map((function(e){return[e[0]-t.x,e[1]-t.y]}))},t.prototype.drawPoints=function(){for(var t=this,e=this.getPointArray(),i=0,a=e.length;i0&&this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y+i[1]).size(this.parameters.box.width-i[0],this.parameters.box.height-i[1])}};break;case"rt":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).size(this.parameters.box.width+i[0],this.parameters.box.height-i[1])}};break;case"rb":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0&&this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x-i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize+i[0]);i=this.checkAspectRatio(i),this.el.move(this.parameters.box.x,this.parameters.box.y).size(this.parameters.box.width+i[0],this.parameters.box.height+i[1])}};break;case"lb":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0&&this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return this.el.move(this.parameters.box.x+i[0],this.parameters.box.y),void this.el.attr("font-size",this.parameters.fontSize-i[0]);i=this.checkAspectRatio(i,!0),this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).size(this.parameters.box.width-i[0],this.parameters.box.height+i[1])}};break;case"t":this.calc=function(t,e){var i=this.snapToGrid(t,e,2);if(this.parameters.box.height-i[1]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y+i[1]).height(this.parameters.box.height-i[1])}};break;case"r":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.width+i[0]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).width(this.parameters.box.width+i[0])}};break;case"b":this.calc=function(t,e){var i=this.snapToGrid(t,e,0);if(this.parameters.box.height+i[1]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x,this.parameters.box.y).height(this.parameters.box.height+i[1])}};break;case"l":this.calc=function(t,e){var i=this.snapToGrid(t,e,1);if(this.parameters.box.width-i[0]>0){if("text"===this.parameters.type)return;this.el.move(this.parameters.box.x+i[0],this.parameters.box.y).width(this.parameters.box.width-i[0])}};break;case"rot":this.calc=function(t,e){var i=t+this.parameters.p.x,a=e+this.parameters.p.y,s=Math.atan2(this.parameters.p.y-this.parameters.box.y-this.parameters.box.height/2,this.parameters.p.x-this.parameters.box.x-this.parameters.box.width/2),r=Math.atan2(a-this.parameters.box.y-this.parameters.box.height/2,i-this.parameters.box.x-this.parameters.box.width/2),o=this.parameters.rotation+180*(r-s)/Math.PI+this.options.snapToAngle/2;this.el.center(this.parameters.box.cx,this.parameters.box.cy).rotate(o-o%this.options.snapToAngle,this.parameters.box.cx,this.parameters.box.cy)};break;case"point":this.calc=function(t,e){var i=this.snapToGrid(t,e,this.parameters.pointCoords[0],this.parameters.pointCoords[1]),a=this.el.array().valueOf();a[this.parameters.i][0]=this.parameters.pointCoords[0]+i[0],a[this.parameters.i][1]=this.parameters.pointCoords[1]+i[1],this.el.plot(a)}}this.el.fire("resizestart",{dx:this.parameters.x,dy:this.parameters.y,event:t}),SVG.on(window,"touchmove.resize",(function(t){e.update(t||window.event)})),SVG.on(window,"touchend.resize",(function(){e.done()})),SVG.on(window,"mousemove.resize",(function(t){e.update(t||window.event)})),SVG.on(window,"mouseup.resize",(function(){e.done()}))},t.prototype.update=function(t){if(t){var e=this._extractPosition(t),i=this.transformPoint(e.x,e.y),a=i.x-this.parameters.p.x,s=i.y-this.parameters.p.y;this.lastUpdateCall=[a,s],this.calc(a,s),this.el.fire("resizing",{dx:a,dy:s,event:t})}else this.lastUpdateCall&&this.calc(this.lastUpdateCall[0],this.lastUpdateCall[1])},t.prototype.done=function(){this.lastUpdateCall=null,SVG.off(window,"mousemove.resize"),SVG.off(window,"mouseup.resize"),SVG.off(window,"touchmove.resize"),SVG.off(window,"touchend.resize"),this.el.fire("resizedone")},t.prototype.snapToGrid=function(t,e,i,a){var s;return void 0!==a?s=[(i+t)%this.options.snapToGrid,(a+e)%this.options.snapToGrid]:(i=null==i?3:i,s=[(this.parameters.box.x+t+(1&i?0:this.parameters.box.width))%this.options.snapToGrid,(this.parameters.box.y+e+(2&i?0:this.parameters.box.height))%this.options.snapToGrid]),t<0&&(s[0]-=this.options.snapToGrid),e<0&&(s[1]-=this.options.snapToGrid),t-=Math.abs(s[0])o.maxX&&(t=o.maxX-s),void 0!==o.minY&&r+eo.maxY&&(e=o.maxY-r),[t,e]},t.prototype.checkAspectRatio=function(t,e){if(!this.options.saveAspectRatio)return t;var i=t.slice(),a=this.parameters.box.width/this.parameters.box.height,s=this.parameters.box.width+t[0],r=this.parameters.box.height-t[1],o=s/r;return oa&&(i[0]=this.parameters.box.width-r*a,e&&(i[0]=-i[0])),i},SVG.extend(SVG.Element,{resize:function(e){return(this.remember("_resizeHandler")||new t(this)).init(e||{}),this}}),SVG.Element.prototype.resize.defaults={snapToAngle:.1,snapToGrid:1,constraint:{},saveAspectRatio:!1}}).call(this)}(),void 0===window.Apex&&(window.Apex={});var Gt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"initModules",value:function(){this.ctx.publicMethods=["updateOptions","updateSeries","appendData","appendSeries","toggleSeries","showSeries","hideSeries","setLocale","resetSeries","zoomX","toggleDataPointSelection","dataURI","exportToCSV","addXaxisAnnotation","addYaxisAnnotation","addPointAnnotation","clearAnnotations","removeAnnotation","paper","destroy"],this.ctx.eventList=["click","mousedown","mousemove","mouseleave","touchstart","touchmove","touchleave","mouseup","touchend"],this.ctx.animations=new b(this.ctx),this.ctx.axes=new J(this.ctx),this.ctx.core=new Wt(this.ctx.el,this.ctx),this.ctx.config=new E({}),this.ctx.data=new W(this.ctx),this.ctx.grid=new j(this.ctx),this.ctx.graphics=new m(this.ctx),this.ctx.coreUtils=new y(this.ctx),this.ctx.crosshairs=new Q(this.ctx),this.ctx.events=new Z(this.ctx),this.ctx.exports=new G(this.ctx),this.ctx.localization=new $(this.ctx),this.ctx.options=new L,this.ctx.responsive=new K(this.ctx),this.ctx.series=new N(this.ctx),this.ctx.theme=new tt(this.ctx),this.ctx.formatters=new T(this.ctx),this.ctx.titleSubtitle=new et(this.ctx),this.ctx.legend=new lt(this.ctx),this.ctx.toolbar=new ht(this.ctx),this.ctx.tooltip=new bt(this.ctx),this.ctx.dimensions=new ot(this.ctx),this.ctx.updateHelpers=new Bt(this.ctx),this.ctx.zoomPanSelection=new ct(this.ctx),this.ctx.w.globals.tooltip=new bt(this.ctx)}}]),t}(),Vt=function(){function t(e){a(this,t),this.ctx=e,this.w=e.w}return r(t,[{key:"clear",value:function(t){var e=t.isUpdating;this.ctx.zoomPanSelection&&this.ctx.zoomPanSelection.destroy(),this.ctx.toolbar&&this.ctx.toolbar.destroy(),this.ctx.animations=null,this.ctx.axes=null,this.ctx.annotations=null,this.ctx.core=null,this.ctx.data=null,this.ctx.grid=null,this.ctx.series=null,this.ctx.responsive=null,this.ctx.theme=null,this.ctx.formatters=null,this.ctx.titleSubtitle=null,this.ctx.legend=null,this.ctx.dimensions=null,this.ctx.options=null,this.ctx.crosshairs=null,this.ctx.zoomPanSelection=null,this.ctx.updateHelpers=null,this.ctx.toolbar=null,this.ctx.localization=null,this.ctx.w.globals.tooltip=null,this.clearDomElements({isUpdating:e})}},{key:"killSVG",value:function(t){t.each((function(t,e){this.removeClass("*"),this.off(),this.stop()}),!0),t.ungroup(),t.clear()}},{key:"clearDomElements",value:function(t){var e=this,i=t.isUpdating,a=this.w.globals.dom.Paper.node;a.parentNode&&a.parentNode.parentNode&&!i&&(a.parentNode.parentNode.style.minHeight="unset");var s=this.w.globals.dom.baseEl;s&&this.ctx.eventList.forEach((function(t){s.removeEventListener(t,e.ctx.events.documentEvent)}));var r=this.w.globals.dom;if(null!==this.ctx.el)for(;this.ctx.el.firstChild;)this.ctx.el.removeChild(this.ctx.el.firstChild);this.killSVG(r.Paper),r.Paper.remove(),r.elWrap=null,r.elGraphical=null,r.elLegendWrap=null,r.elLegendForeign=null,r.baseEl=null,r.elGridRect=null,r.elGridRectMask=null,r.elGridRectMarkerMask=null,r.elForecastMask=null,r.elNonForecastMask=null,r.elDefs=null}}]),t}(),jt=new WeakMap;var _t=function(){function t(e,i){a(this,t),this.opts=i,this.ctx=this,this.w=new F(i).init(),this.el=e,this.w.globals.cuid=x.randomId(),this.w.globals.chartID=this.w.config.chart.id?x.escapeString(this.w.config.chart.id):this.w.globals.cuid,new Gt(this).initModules(),this.create=x.bind(this.create,this),this.windowResizeHandler=this._windowResizeHandler.bind(this),this.parentResizeHandler=this._parentResizeCallback.bind(this)}return r(t,[{key:"render",value:function(){var t=this;return new Promise((function(e,i){if(null!==t.el){void 0===Apex._chartInstances&&(Apex._chartInstances=[]),t.w.config.chart.id&&Apex._chartInstances.push({id:t.w.globals.chartID,group:t.w.config.chart.group,chart:t}),t.setLocale(t.w.config.chart.defaultLocale);var a=t.w.config.chart.events.beforeMount;if("function"==typeof a&&a(t,t.w),t.events.fireEvent("beforeMount",[t,t.w]),window.addEventListener("resize",t.windowResizeHandler),function(t,e){var i=!1;if(t.nodeType!==Node.DOCUMENT_FRAGMENT_NODE){var a=t.getBoundingClientRect();"none"!==t.style.display&&0!==a.width||(i=!0)}var s=new ResizeObserver((function(a){i&&e.call(t,a),i=!0}));t.nodeType===Node.DOCUMENT_FRAGMENT_NODE?Array.from(t.children).forEach((function(t){return s.observe(t)})):s.observe(t),jt.set(e,s)}(t.el.parentNode,t.parentResizeHandler),!t.css){var s=t.el.getRootNode&&t.el.getRootNode(),r=x.is("ShadowRoot",s),o=t.el.ownerDocument,n=o.getElementById("apexcharts-css");!r&&n||(t.css=document.createElement("style"),t.css.id="apexcharts-css",t.css.textContent='@keyframes opaque {\n 0% {\n opacity: 0\n }\n\n to {\n opacity: 1\n }\n}\n\n@keyframes resizeanim {\n 0%,to {\n opacity: 0\n }\n}\n\n.apexcharts-canvas {\n position: relative;\n user-select: none\n}\n\n.apexcharts-canvas ::-webkit-scrollbar {\n -webkit-appearance: none;\n width: 6px\n}\n\n.apexcharts-canvas ::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background-color: rgba(0,0,0,.5);\n box-shadow: 0 0 1px rgba(255,255,255,.5);\n -webkit-box-shadow: 0 0 1px rgba(255,255,255,.5)\n}\n\n.apexcharts-inner {\n position: relative\n}\n\n.apexcharts-text tspan {\n font-family: inherit\n}\n\n.legend-mouseover-inactive {\n transition: .15s ease all;\n opacity: .2\n}\n\n.apexcharts-legend-text {\n padding-left: 15px;\n margin-left: -15px;\n}\n\n.apexcharts-series-collapsed {\n opacity: 0\n}\n\n.apexcharts-tooltip {\n border-radius: 5px;\n box-shadow: 2px 2px 6px -4px #999;\n cursor: default;\n font-size: 14px;\n left: 62px;\n opacity: 0;\n pointer-events: none;\n position: absolute;\n top: 20px;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n white-space: nowrap;\n z-index: 12;\n transition: .15s ease all\n}\n\n.apexcharts-tooltip.apexcharts-active {\n opacity: 1;\n transition: .15s ease all\n}\n\n.apexcharts-tooltip.apexcharts-theme-light {\n border: 1px solid #e3e3e3;\n background: rgba(255,255,255,.96)\n}\n\n.apexcharts-tooltip.apexcharts-theme-dark {\n color: #fff;\n background: rgba(30,30,30,.8)\n}\n\n.apexcharts-tooltip * {\n font-family: inherit\n}\n\n.apexcharts-tooltip-title {\n padding: 6px;\n font-size: 15px;\n margin-bottom: 4px\n}\n\n.apexcharts-tooltip.apexcharts-theme-light .apexcharts-tooltip-title {\n background: #eceff1;\n border-bottom: 1px solid #ddd\n}\n\n.apexcharts-tooltip.apexcharts-theme-dark .apexcharts-tooltip-title {\n background: rgba(0,0,0,.7);\n border-bottom: 1px solid #333\n}\n\n.apexcharts-tooltip-text-goals-value,.apexcharts-tooltip-text-y-value,.apexcharts-tooltip-text-z-value {\n display: inline-block;\n margin-left: 5px;\n font-weight: 600\n}\n\n.apexcharts-tooltip-text-goals-label:empty,.apexcharts-tooltip-text-goals-value:empty,.apexcharts-tooltip-text-y-label:empty,.apexcharts-tooltip-text-y-value:empty,.apexcharts-tooltip-text-z-value:empty,.apexcharts-tooltip-title:empty {\n display: none\n}\n\n.apexcharts-tooltip-text-goals-label,.apexcharts-tooltip-text-goals-value {\n padding: 6px 0 5px\n}\n\n.apexcharts-tooltip-goals-group,.apexcharts-tooltip-text-goals-label,.apexcharts-tooltip-text-goals-value {\n display: flex\n}\n\n.apexcharts-tooltip-text-goals-label:not(:empty),.apexcharts-tooltip-text-goals-value:not(:empty) {\n margin-top: -6px\n}\n\n.apexcharts-tooltip-marker {\n width: 12px;\n height: 12px;\n position: relative;\n top: 0;\n margin-right: 10px;\n border-radius: 50%\n}\n\n.apexcharts-tooltip-series-group {\n padding: 0 10px;\n display: none;\n text-align: left;\n justify-content: left;\n align-items: center\n}\n\n.apexcharts-tooltip-series-group.apexcharts-active .apexcharts-tooltip-marker {\n opacity: 1\n}\n\n.apexcharts-tooltip-series-group.apexcharts-active,.apexcharts-tooltip-series-group:last-child {\n padding-bottom: 4px\n}\n\n.apexcharts-tooltip-series-group-hidden {\n opacity: 0;\n height: 0;\n line-height: 0;\n padding: 0!important\n}\n\n.apexcharts-tooltip-y-group {\n padding: 6px 0 5px\n}\n\n.apexcharts-custom-tooltip,.apexcharts-tooltip-box {\n padding: 4px 8px\n}\n\n.apexcharts-tooltip-boxPlot {\n display: flex;\n flex-direction: column-reverse\n}\n\n.apexcharts-tooltip-box>div {\n margin: 4px 0\n}\n\n.apexcharts-tooltip-box span.value {\n font-weight: 700\n}\n\n.apexcharts-tooltip-rangebar {\n padding: 5px 8px\n}\n\n.apexcharts-tooltip-rangebar .category {\n font-weight: 600;\n color: #777\n}\n\n.apexcharts-tooltip-rangebar .series-name {\n font-weight: 700;\n display: block;\n margin-bottom: 5px\n}\n\n.apexcharts-xaxistooltip,.apexcharts-yaxistooltip {\n opacity: 0;\n pointer-events: none;\n color: #373d3f;\n font-size: 13px;\n text-align: center;\n border-radius: 2px;\n position: absolute;\n z-index: 10;\n background: #eceff1;\n border: 1px solid #90a4ae\n}\n\n.apexcharts-xaxistooltip {\n padding: 9px 10px;\n transition: .15s ease all\n}\n\n.apexcharts-xaxistooltip.apexcharts-theme-dark {\n background: rgba(0,0,0,.7);\n border: 1px solid rgba(0,0,0,.5);\n color: #fff\n}\n\n.apexcharts-xaxistooltip:after,.apexcharts-xaxistooltip:before {\n left: 50%;\n border: solid transparent;\n content: " ";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none\n}\n\n.apexcharts-xaxistooltip:after {\n border-color: transparent;\n border-width: 6px;\n margin-left: -6px\n}\n\n.apexcharts-xaxistooltip:before {\n border-color: transparent;\n border-width: 7px;\n margin-left: -7px\n}\n\n.apexcharts-xaxistooltip-bottom:after,.apexcharts-xaxistooltip-bottom:before {\n bottom: 100%\n}\n\n.apexcharts-xaxistooltip-top:after,.apexcharts-xaxistooltip-top:before {\n top: 100%\n}\n\n.apexcharts-xaxistooltip-bottom:after {\n border-bottom-color: #eceff1\n}\n\n.apexcharts-xaxistooltip-bottom:before {\n border-bottom-color: #90a4ae\n}\n\n.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:after,.apexcharts-xaxistooltip-bottom.apexcharts-theme-dark:before {\n border-bottom-color: rgba(0,0,0,.5)\n}\n\n.apexcharts-xaxistooltip-top:after {\n border-top-color: #eceff1\n}\n\n.apexcharts-xaxistooltip-top:before {\n border-top-color: #90a4ae\n}\n\n.apexcharts-xaxistooltip-top.apexcharts-theme-dark:after,.apexcharts-xaxistooltip-top.apexcharts-theme-dark:before {\n border-top-color: rgba(0,0,0,.5)\n}\n\n.apexcharts-xaxistooltip.apexcharts-active {\n opacity: 1;\n transition: .15s ease all\n}\n\n.apexcharts-yaxistooltip {\n padding: 4px 10px\n}\n\n.apexcharts-yaxistooltip.apexcharts-theme-dark {\n background: rgba(0,0,0,.7);\n border: 1px solid rgba(0,0,0,.5);\n color: #fff\n}\n\n.apexcharts-yaxistooltip:after,.apexcharts-yaxistooltip:before {\n top: 50%;\n border: solid transparent;\n content: " ";\n height: 0;\n width: 0;\n position: absolute;\n pointer-events: none\n}\n\n.apexcharts-yaxistooltip:after {\n border-color: transparent;\n border-width: 6px;\n margin-top: -6px\n}\n\n.apexcharts-yaxistooltip:before {\n border-color: transparent;\n border-width: 7px;\n margin-top: -7px\n}\n\n.apexcharts-yaxistooltip-left:after,.apexcharts-yaxistooltip-left:before {\n left: 100%\n}\n\n.apexcharts-yaxistooltip-right:after,.apexcharts-yaxistooltip-right:before {\n right: 100%\n}\n\n.apexcharts-yaxistooltip-left:after {\n border-left-color: #eceff1\n}\n\n.apexcharts-yaxistooltip-left:before {\n border-left-color: #90a4ae\n}\n\n.apexcharts-yaxistooltip-left.apexcharts-theme-dark:after,.apexcharts-yaxistooltip-left.apexcharts-theme-dark:before {\n border-left-color: rgba(0,0,0,.5)\n}\n\n.apexcharts-yaxistooltip-right:after {\n border-right-color: #eceff1\n}\n\n.apexcharts-yaxistooltip-right:before {\n border-right-color: #90a4ae\n}\n\n.apexcharts-yaxistooltip-right.apexcharts-theme-dark:after,.apexcharts-yaxistooltip-right.apexcharts-theme-dark:before {\n border-right-color: rgba(0,0,0,.5)\n}\n\n.apexcharts-yaxistooltip.apexcharts-active {\n opacity: 1\n}\n\n.apexcharts-yaxistooltip-hidden {\n display: none\n}\n\n.apexcharts-xcrosshairs,.apexcharts-ycrosshairs {\n pointer-events: none;\n opacity: 0;\n transition: .15s ease all\n}\n\n.apexcharts-xcrosshairs.apexcharts-active,.apexcharts-ycrosshairs.apexcharts-active {\n opacity: 1;\n transition: .15s ease all\n}\n\n.apexcharts-ycrosshairs-hidden {\n opacity: 0\n}\n\n.apexcharts-selection-rect {\n cursor: move\n}\n\n.svg_select_boundingRect,.svg_select_points_rot {\n pointer-events: none;\n opacity: 0;\n visibility: hidden\n}\n\n.apexcharts-selection-rect+g .svg_select_boundingRect,.apexcharts-selection-rect+g .svg_select_points_rot {\n opacity: 0;\n visibility: hidden\n}\n\n.apexcharts-selection-rect+g .svg_select_points_l,.apexcharts-selection-rect+g .svg_select_points_r {\n cursor: ew-resize;\n opacity: 1;\n visibility: visible\n}\n\n.svg_select_points {\n fill: #efefef;\n stroke: #333;\n rx: 2\n}\n\n.apexcharts-svg.apexcharts-zoomable.hovering-zoom {\n cursor: crosshair\n}\n\n.apexcharts-svg.apexcharts-zoomable.hovering-pan {\n cursor: move\n}\n\n.apexcharts-menu-icon,.apexcharts-pan-icon,.apexcharts-reset-icon,.apexcharts-selection-icon,.apexcharts-toolbar-custom-icon,.apexcharts-zoom-icon,.apexcharts-zoomin-icon,.apexcharts-zoomout-icon {\n cursor: pointer;\n width: 20px;\n height: 20px;\n line-height: 24px;\n color: #6e8192;\n text-align: center\n}\n\n.apexcharts-menu-icon svg,.apexcharts-reset-icon svg,.apexcharts-zoom-icon svg,.apexcharts-zoomin-icon svg,.apexcharts-zoomout-icon svg {\n fill: #6e8192\n}\n\n.apexcharts-selection-icon svg {\n fill: #444;\n transform: scale(.76)\n}\n\n.apexcharts-theme-dark .apexcharts-menu-icon svg,.apexcharts-theme-dark .apexcharts-pan-icon svg,.apexcharts-theme-dark .apexcharts-reset-icon svg,.apexcharts-theme-dark .apexcharts-selection-icon svg,.apexcharts-theme-dark .apexcharts-toolbar-custom-icon svg,.apexcharts-theme-dark .apexcharts-zoom-icon svg,.apexcharts-theme-dark .apexcharts-zoomin-icon svg,.apexcharts-theme-dark .apexcharts-zoomout-icon svg {\n fill: #f3f4f5\n}\n\n.apexcharts-canvas .apexcharts-reset-zoom-icon.apexcharts-selected svg,.apexcharts-canvas .apexcharts-selection-icon.apexcharts-selected svg,.apexcharts-canvas .apexcharts-zoom-icon.apexcharts-selected svg {\n fill: #008ffb\n}\n\n.apexcharts-theme-light .apexcharts-menu-icon:hover svg,.apexcharts-theme-light .apexcharts-reset-icon:hover svg,.apexcharts-theme-light .apexcharts-selection-icon:not(.apexcharts-selected):hover svg,.apexcharts-theme-light .apexcharts-zoom-icon:not(.apexcharts-selected):hover svg,.apexcharts-theme-light .apexcharts-zoomin-icon:hover svg,.apexcharts-theme-light .apexcharts-zoomout-icon:hover svg {\n fill: #333\n}\n\n.apexcharts-menu-icon,.apexcharts-selection-icon {\n position: relative\n}\n\n.apexcharts-reset-icon {\n margin-left: 5px\n}\n\n.apexcharts-menu-icon,.apexcharts-reset-icon,.apexcharts-zoom-icon {\n transform: scale(.85)\n}\n\n.apexcharts-zoomin-icon,.apexcharts-zoomout-icon {\n transform: scale(.7)\n}\n\n.apexcharts-zoomout-icon {\n margin-right: 3px\n}\n\n.apexcharts-pan-icon {\n transform: scale(.62);\n position: relative;\n left: 1px;\n top: 0\n}\n\n.apexcharts-pan-icon svg {\n fill: #fff;\n stroke: #6e8192;\n stroke-width: 2\n}\n\n.apexcharts-pan-icon.apexcharts-selected svg {\n stroke: #008ffb\n}\n\n.apexcharts-pan-icon:not(.apexcharts-selected):hover svg {\n stroke: #333\n}\n\n.apexcharts-toolbar {\n position: absolute;\n z-index: 11;\n max-width: 176px;\n text-align: right;\n border-radius: 3px;\n padding: 0 6px 2px;\n display: flex;\n justify-content: space-between;\n align-items: center\n}\n\n.apexcharts-menu {\n background: #fff;\n position: absolute;\n top: 100%;\n border: 1px solid #ddd;\n border-radius: 3px;\n padding: 3px;\n right: 10px;\n opacity: 0;\n min-width: 110px;\n transition: .15s ease all;\n pointer-events: none\n}\n\n.apexcharts-menu.apexcharts-menu-open {\n opacity: 1;\n pointer-events: all;\n transition: .15s ease all\n}\n\n.apexcharts-menu-item {\n padding: 6px 7px;\n font-size: 12px;\n cursor: pointer\n}\n\n.apexcharts-theme-light .apexcharts-menu-item:hover {\n background: #eee\n}\n\n.apexcharts-theme-dark .apexcharts-menu {\n background: rgba(0,0,0,.7);\n color: #fff\n}\n\n@media screen and (min-width:768px) {\n .apexcharts-canvas:hover .apexcharts-toolbar {\n opacity: 1\n }\n}\n\n.apexcharts-canvas .apexcharts-element-hidden,.apexcharts-datalabel.apexcharts-element-hidden,.apexcharts-hide .apexcharts-series-points {\n opacity: 0\n}\n\n.apexcharts-hidden-element-shown {\n opacity: 1;\n transition: 0.25s ease all;\n}\n.apexcharts-datalabel,.apexcharts-datalabel-label,.apexcharts-datalabel-value,.apexcharts-datalabels,.apexcharts-pie-label {\n cursor: default;\n pointer-events: none\n}\n\n.apexcharts-pie-label-delay {\n opacity: 0;\n animation-name: opaque;\n animation-duration: .3s;\n animation-fill-mode: forwards;\n animation-timing-function: ease\n}\n\n.apexcharts-annotation-rect,.apexcharts-area-series .apexcharts-area,.apexcharts-area-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,.apexcharts-gridline,.apexcharts-line,.apexcharts-line-series .apexcharts-series-markers .apexcharts-marker.no-pointer-events,.apexcharts-point-annotation-label,.apexcharts-radar-series path,.apexcharts-radar-series polygon,.apexcharts-toolbar svg,.apexcharts-tooltip .apexcharts-marker,.apexcharts-xaxis-annotation-label,.apexcharts-yaxis-annotation-label,.apexcharts-zoom-rect {\n pointer-events: none\n}\n\n.apexcharts-marker {\n transition: .15s ease all\n}\n\n.resize-triggers {\n animation: 1ms resizeanim;\n visibility: hidden;\n opacity: 0;\n height: 100%;\n width: 100%;\n overflow: hidden\n}\n\n.contract-trigger:before,.resize-triggers,.resize-triggers>div {\n content: " ";\n display: block;\n position: absolute;\n top: 0;\n left: 0\n}\n\n.resize-triggers>div {\n height: 100%;\n width: 100%;\n background: #eee;\n overflow: auto\n}\n\n.contract-trigger:before {\n overflow: hidden;\n width: 200%;\n height: 200%\n}\n\n.apexcharts-bar-goals-markers{\n pointer-events: none\n}\n\n.apexcharts-bar-shadows{\n pointer-events: none\n}\n\n.apexcharts-rangebar-goals-markers{\n pointer-events: none\n}',r?s.prepend(t.css):o.head.appendChild(t.css))}var l=t.create(t.w.config.series,{});if(!l)return e(t);t.mount(l).then((function(){"function"==typeof t.w.config.chart.events.mounted&&t.w.config.chart.events.mounted(t,t.w),t.events.fireEvent("mounted",[t,t.w]),e(l)})).catch((function(t){i(t)}))}else i(new Error("Element not found"))}))}},{key:"create",value:function(t,e){var i=this.w;new Gt(this).initModules();var a=this.w.globals;(a.noData=!1,a.animationEnded=!1,this.responsive.checkResponsiveConfig(e),i.config.xaxis.convertedCatToNumeric)&&new z(i.config).convertCatToNumericXaxis(i.config,this.ctx);if(null===this.el)return a.animationEnded=!0,null;if(this.core.setupElements(),"treemap"===i.config.chart.type&&(i.config.grid.show=!1,i.config.yaxis[0].show=!1),0===a.svgWidth)return a.animationEnded=!0,null;var s=y.checkComboSeries(t);a.comboCharts=s.comboCharts,a.comboBarCount=s.comboBarCount;var r=t.every((function(t){return t.data&&0===t.data.length}));(0===t.length||r)&&this.series.handleNoData(),this.events.setupEventHandlers(),this.data.parseData(t),this.theme.init(),new H(this).setGlobalMarkerSize(),this.formatters.setLabelFormatters(),this.titleSubtitle.draw(),a.noData&&a.collapsedSeries.length!==a.series.length&&!i.config.legend.showForSingleSeries||this.legend.init(),this.series.hasAllSeriesEqualX(),a.axisCharts&&(this.core.coreCalculations(),"category"!==i.config.xaxis.type&&this.formatters.setLabelFormatters(),this.ctx.toolbar.minX=i.globals.minX,this.ctx.toolbar.maxX=i.globals.maxX),this.formatters.heatmapLabelFormatters(),new y(this).getLargestMarkerSize(),this.dimensions.plotCoords();var o=this.core.xySettings();this.grid.createGridMask();var n=this.core.plotChartType(t,o),l=new O(this);return l.bringForward(),i.config.dataLabels.background.enabled&&l.dataLabelsBackground(),this.core.shiftGraphPosition(),{elGraph:n,xyRatios:o,dimensions:{plot:{left:i.globals.translateX,top:i.globals.translateY,width:i.globals.gridWidth,height:i.globals.gridHeight}}}}},{key:"mount",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,i=this,a=i.w;return new Promise((function(s,r){if(null===i.el)return r(new Error("Not enough data to display or target element not found"));(null===e||a.globals.allSeriesCollapsed)&&i.series.handleNoData(),i.grid=new j(i);var o,n,l=i.grid.drawGrid();(i.annotations=new P(i),i.annotations.drawImageAnnos(),i.annotations.drawTextAnnos(),"back"===a.config.grid.position)&&(l&&a.globals.dom.elGraphical.add(l.el),null!=l&&null!==(o=l.elGridBorders)&&void 0!==o&&o.node&&a.globals.dom.elGraphical.add(l.elGridBorders));if(Array.isArray(e.elGraph))for(var h=0;h0&&a.globals.memory.methodsToExec.forEach((function(t){t.method(t.params,!1,t.context)})),a.globals.axisCharts||a.globals.noData||i.core.resizeNonAxisCharts(),s(i)}))}},{key:"destroy",value:function(){var t,e;window.removeEventListener("resize",this.windowResizeHandler),this.el.parentNode,t=this.parentResizeHandler,(e=jt.get(t))&&(e.disconnect(),jt.delete(t));var i=this.w.config.chart.id;i&&Apex._chartInstances.forEach((function(t,e){t.id===x.escapeString(i)&&Apex._chartInstances.splice(e,1)})),new Vt(this.ctx).clear({isUpdating:!1})}},{key:"updateOptions",value:function(t){var e=this,i=arguments.length>1&&void 0!==arguments[1]&&arguments[1],a=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],s=!(arguments.length>3&&void 0!==arguments[3])||arguments[3],r=!(arguments.length>4&&void 0!==arguments[4])||arguments[4],o=this.w;return o.globals.selection=void 0,t.series&&(this.series.resetSeries(!1,!0,!1),t.series.length&&t.series[0].data&&(t.series=t.series.map((function(t,i){return e.updateHelpers._extendSeries(t,i)}))),this.updateHelpers.revertDefaultAxisMinMax()),t.xaxis&&(t=this.updateHelpers.forceXAxisUpdate(t)),t.yaxis&&(t=this.updateHelpers.forceYAxisUpdate(t)),o.globals.collapsedSeriesIndices.length>0&&this.series.clearPreviousPaths(),t.theme&&(t=this.theme.updateThemeOptions(t)),this.updateHelpers._updateOptions(t,i,a,s,r)}},{key:"updateSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];return this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(t,e,i)}},{key:"appendSeries",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],a=this.w.config.series.slice();return a.push(t),this.series.resetSeries(!1),this.updateHelpers.revertDefaultAxisMinMax(),this.updateHelpers._updateSeries(a,e,i)}},{key:"appendData",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=this;i.w.globals.dataChanged=!0,i.series.getPreviousPaths();for(var a=i.w.config.series.slice(),s=0;s0&&void 0!==arguments[0])||arguments[0],e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];this.series.resetSeries(t,e)}},{key:"addEventListener",value:function(t,e){this.events.addEventListener(t,e)}},{key:"removeEventListener",value:function(t,e){this.events.removeEventListener(t,e)}},{key:"addXaxisAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addXaxisAnnotationExternal(t,e,a)}},{key:"addYaxisAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addYaxisAnnotationExternal(t,e,a)}},{key:"addPointAnnotation",value:function(t){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,a=this;i&&(a=i),a.annotations.addPointAnnotationExternal(t,e,a)}},{key:"clearAnnotations",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0,e=this;t&&(e=t),e.annotations.clearAnnotations(e)}},{key:"removeAnnotation",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,i=this;e&&(i=e),i.annotations.removeAnnotation(i,t)}},{key:"getChartArea",value:function(){return this.w.globals.dom.baseEl.querySelector(".apexcharts-inner")}},{key:"getSeriesTotalXRange",value:function(t,e){return this.coreUtils.getSeriesTotalsXRange(t,e)}},{key:"getHighestValueInSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new U(this.ctx).getMinYMaxY(t).highestY}},{key:"getLowestValueInSeries",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return new U(this.ctx).getMinYMaxY(t).lowestY}},{key:"getSeriesTotal",value:function(){return this.w.globals.seriesTotals}},{key:"toggleDataPointSelection",value:function(t,e){return this.updateHelpers.toggleDataPointSelection(t,e)}},{key:"zoomX",value:function(t,e){this.ctx.toolbar.zoomUpdateOptions(t,e)}},{key:"setLocale",value:function(t){this.localization.setCurrentLocaleValues(t)}},{key:"dataURI",value:function(t){return new G(this.ctx).dataURI(t)}},{key:"exportToCSV",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new G(this.ctx).exportToCSV(t)}},{key:"paper",value:function(){return this.w.globals.dom.Paper}},{key:"_parentResizeCallback",value:function(){this.w.globals.animationEnded&&this.w.config.chart.redrawOnParentResize&&this._windowResize()}},{key:"_windowResize",value:function(){var t=this;clearTimeout(this.w.globals.resizeTimer),this.w.globals.resizeTimer=window.setTimeout((function(){t.w.globals.resized=!0,t.w.globals.dataChanged=!1,t.ctx.update()}),150)}},{key:"_windowResizeHandler",value:function(){var t=this.w.config.chart.redrawOnWindowResize;"function"==typeof t&&(t=t()),t&&this._windowResize()}}],[{key:"getChartByID",value:function(t){var e=x.escapeString(t),i=Apex._chartInstances.filter((function(t){return t.id===e}))[0];return i&&i.chart}},{key:"initOnLoad",value:function(){for(var e=document.querySelectorAll("[data-apexcharts]"),i=0;i2?s-2:0),o=2;o Date: Mon, 28 Aug 2023 17:32:34 +0200 Subject: [PATCH 07/12] Switched to new resource sync --- .../App/Services/Files/StorageService.cs | 67 +- Moonlight/Program.cs | 6 +- .../configs/default_subscription.json | 1 - .../defaultstorage/resources/lang/de_de.lang | 778 ------------------ .../defaultstorage/resources/lang/en_us.lang | 567 ------------- .../defaultstorage/resources/lang/fr_fr.lang | 778 ------------------ .../defaultstorage/resources/lang/ro_ro.lang | 778 ------------------ .../defaultstorage/resources/mail/login.html | 53 -- .../resources/mail/passwordChange.html | 53 -- .../resources/mail/passwordReset.html | 54 -- .../resources/mail/register.html | 50 -- .../resources/public/background/main.jpg | Bin 891895 -> 0 bytes .../resources/public/images/logo.svg | 14 - .../resources/public/images/logolong.png | Bin 12410 -> 0 bytes 14 files changed, 65 insertions(+), 3134 deletions(-) delete mode 100644 Moonlight/defaultstorage/configs/default_subscription.json delete mode 100644 Moonlight/defaultstorage/resources/lang/de_de.lang delete mode 100644 Moonlight/defaultstorage/resources/lang/en_us.lang delete mode 100644 Moonlight/defaultstorage/resources/lang/fr_fr.lang delete mode 100644 Moonlight/defaultstorage/resources/lang/ro_ro.lang delete mode 100644 Moonlight/defaultstorage/resources/mail/login.html delete mode 100644 Moonlight/defaultstorage/resources/mail/passwordChange.html delete mode 100644 Moonlight/defaultstorage/resources/mail/passwordReset.html delete mode 100644 Moonlight/defaultstorage/resources/mail/register.html delete mode 100644 Moonlight/defaultstorage/resources/public/background/main.jpg delete mode 100644 Moonlight/defaultstorage/resources/public/images/logo.svg delete mode 100644 Moonlight/defaultstorage/resources/public/images/logolong.png diff --git a/Moonlight/App/Services/Files/StorageService.cs b/Moonlight/App/Services/Files/StorageService.cs index 9980e23a..b1a50d9a 100644 --- a/Moonlight/App/Services/Files/StorageService.cs +++ b/Moonlight/App/Services/Files/StorageService.cs @@ -1,15 +1,11 @@ using Moonlight.App.Helpers; +using Octokit; namespace Moonlight.App.Services.Files; public class StorageService { - public StorageService() - { - EnsureCreated(); - } - - public void EnsureCreated() + public async Task EnsureCreated() { Directory.CreateDirectory(PathBuilder.Dir("storage", "uploads")); Directory.CreateDirectory(PathBuilder.Dir("storage", "configs")); @@ -17,7 +13,10 @@ public class StorageService Directory.CreateDirectory(PathBuilder.Dir("storage", "backups")); Directory.CreateDirectory(PathBuilder.Dir("storage", "logs")); Directory.CreateDirectory(PathBuilder.Dir("storage", "plugins")); + + await UpdateResources(); + return; if(IsEmpty(PathBuilder.Dir("storage", "resources"))) { Logger.Info("Default resources not found. Copying default resources"); @@ -39,6 +38,62 @@ public class StorageService } } + private async Task UpdateResources() + { + Logger.Info("Checking resources"); + + var client = new GitHubClient( + new ProductHeaderValue("Moonlight-Panel")); + + string user = "Moonlight-Panel"; + string repo = "Resources"; + string branch = "main"; + string resourcesDir = PathBuilder.Dir("storage", "resources"); + + async Task CopyDirectory(string dirPath, string localDir) + { + IReadOnlyList contents; + + if(string.IsNullOrEmpty(dirPath)) + contents = await client.Repository.Content.GetAllContents(user, repo); + else + contents = await client.Repository.Content.GetAllContents(user, repo, dirPath); + + foreach (var content in contents) + { + string localPath = Path.Combine(localDir, content.Name); + + if (content.Type == ContentType.File) + { + if(content.Name.EndsWith(".gitattributes")) + continue; + + if(File.Exists(localPath) && !content.Name.EndsWith(".lang")) + continue; + + if (content.Name.EndsWith(".lang") && File.Exists(localPath) && + new FileInfo(localPath).Length == content.Size) + { + Logger.Info($"Skipped language file '{content.Name}'"); + continue; + } + + var fileContent = await client.Repository.Content.GetRawContent(user, repo, content.Path); + Directory.CreateDirectory(localDir); // Ensure the directory exists + await File.WriteAllBytesAsync(localPath, fileContent); + + Logger.Debug($"Synced file '{content.Path}'"); + } + else if (content.Type == ContentType.Dir) + { + await CopyDirectory(content.Path, localPath); + } + } + } + + await CopyDirectory("", resourcesDir); + } + private bool IsEmpty(string path) { return !Directory.EnumerateFileSystemEntries(path).Any(); diff --git a/Moonlight/Program.cs b/Moonlight/Program.cs index 05f6d541..e866b418 100644 --- a/Moonlight/Program.cs +++ b/Moonlight/Program.cs @@ -42,8 +42,10 @@ namespace Moonlight { public static async Task Main(string[] args) { - // This will also copy all default config files - var configService = new ConfigService(new StorageService()); + var storageService = new StorageService(); + await storageService.EnsureCreated(); + + var configService = new ConfigService(storageService); var shouldUseSentry = configService .Get() .Moonlight.Sentry.Enable; diff --git a/Moonlight/defaultstorage/configs/default_subscription.json b/Moonlight/defaultstorage/configs/default_subscription.json deleted file mode 100644 index ad47dbb9..00000000 --- a/Moonlight/defaultstorage/configs/default_subscription.json +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/Moonlight/defaultstorage/resources/lang/de_de.lang b/Moonlight/defaultstorage/resources/lang/de_de.lang deleted file mode 100644 index 48ef7508..00000000 --- a/Moonlight/defaultstorage/resources/lang/de_de.lang +++ /dev/null @@ -1,778 +0,0 @@ -Open support;Support Öffnen -About us;Über uns -Imprint;Impressum -Privacy;Privacy -Login;Einloggen -Register;Registrieren -Insert brand name...;Firmenname eingeben... -Save and continue;Speichern und Fortfahren -Saving;Speichern -Configure basics;Grundlagen einstellen -Brand name;Firmenname -test;test -Insert first name...;Vornamen eingeben... -Insert last name...;Nachnamen eingeben... -Insert email address...;E-Mail-Adresse eingeben... -Add;Hinzufügen -Adding...;Wird hinzugefügt... -Add admin accounts;Admin Konto hinzufügen -First name;Vorname -Last name;Nachname -Email address;E-Mail-Adresse -Enter password;Password eingeben -Next;Weiter -Back;Zurück -Configure features;Features konfigurieren -Support chat;Chat Hilfe -Finish;Fertigstellen -Finalize installation;Installation Fertigstellen -Moonlight basic settings successfully configured;Moonlight's Standard-Einstellungen wurden konfiguriert -Ooops. This page is crashed;Ups. Die Seite ist abgestürzt. -This page is crashed. The error has been reported to the moonlight team. Meanwhile you can try reloading the page;Diese Seite ist abgestürzt. Bitte versuche, sie neu zu laden. -Setup complete;Einrichtung abgeschlossen -It looks like this moonlight instance is ready to go;Diese Moonlight Instanz ist bereit -User successfully created;Benutzer erfolgreich erstellt -Ooops. Your moonlight client is crashed;Ups. Dein Moonlight ist abgestürzt. -This error has been reported to the moonlight team;Dieser Fehler wurde dem Moonlight-Team mitgeteilt -Sign In;Anmelden -Sign in to start with moonlight;Anmelden, um mit Moonlight zu starten -Sign in with Discord;Mit Discord Anmelden -Or with email;Oder mit E-Mail -Forgot password?;Password vergessen? -Sign-in;Anmelden -Not registered yet?;Noch nicht Registriert? -Sign up;Registrieren -Authenticating;Authentifizieren... -Sign in with Google;Mit Google Anmelden -Working;Bitte warten... -Error;Fehler -Email and password combination not found;E-Mail und Password-Kombination wurden nicht gefunden -Email;E-mail -Password;Password -Account settings;Benutzer-Einstellungen -Logout;Abmelden -Dashboard;Dashboard -Order;Bestellen -Website;Webseite -Database;Datenbank -Domain;Domain -Servers;Server -Websites;Webseiten -Databases;Datenbanken -Domains;Domains -Changelog;Änderungen -Firstname;Vorname -Lastname;Nachname -Repeat password;Password wiederholen -Sign Up;Anmelden -Sign up to start with moonlight;Registrieren um mit Moonlight zu starten -Sign up with Discord;Mit Discord Registrieren -Sign up with Google;Mit Google Registrieren -Sign-up;Registrieren -Already registered?;Schon Registriert? -Sign in;Registrieren -Create something new;Etwas neues erstellen -Create a gameserver;Einen Gameserver erstellen -A new gameserver in just a few minutes;Ein neuer Gameserver in wenigen Minuten -Create a database;Eine Datenbank erstellen -A quick way to store your data and manage it from all around the world;Eine schnelle Möglichkeit, um deine Daten von überall auf der Welt zu verwalten -Manage your services;Deine Dienste verwalten -Manage your gameservers;Gameserver verwalten -Adjust your gameservers;Deine Gameserver anpassen -Manage your databases;Datenbanken verwalten -Insert, delete and update the data in your databases;Daten in die Datenbank einfügen, entfernen und ändern -Create a website;Eine Webseite erstellen -Make your own websites with a webspace;Mit einem Webspace eine Webseite erstellen -Create a domain;Eine Domain erstellen -Make your servvices accessible throught your own domain;Mache deine Dienste mit einer Domain erreichbar -Manage your websites;Deine Webseiten verwalten -Modify the content of your websites;Den Inhalt deiner Webseiten verwalten -Manage your domains;Deine Domains verwalten -Add, edit and delete dns records;DNS-Records hinzufügen, entfernen oder bearbeiten -Admin;Admin -System;System -Overview;Übersicht -Manager;Manager -Cleanup;Cleanup -Nodes;Nodes -Images;Images -aaPanel;aaPanel -Users;Benutzer -Support;Hilfe -Statistics;Statistiken -No nodes found. Start with adding a new node;Keine Nodes gefunden. Ein neues Node hinzufügen -Nodename;Nodename -FQDN;FQDN -Create;Erstellen -Creating;Wird erstellt... -Http port;Http Port -Sftp port;Sftp Port -Moonlight daemon port;Moonlight Daemon Port -SSL;SSL -CPU Usage;CPU Auslastung -In %;In % -Memory;Arbeitsspeicher -Used / Available memory;Benutzter / Verfügbarer Arbeitsspeicher -Storage;Speicherplatz -Available storage;Verfügbarer Speicherplatz -Add a new node;Ein neues Node hinzufügen -Delete;Löschen -Deleting;Wird gelöscht... -Edit;Bearbeiten -Token Id;Token Id -Token;Token -Save;Speichern -Setup;Aufsetzen -Open a ssh connection to your node and enter;Eine SSH verbindung zum Node hinzufügen und öffnen -and paste the config below. Then press STRG+O and STRG+X to save;und die Config darunter einfügern. Dann STRG+O und STRG+X um zu Speichern -Before configuring this node, install the daemon;Installiere den Daemon bevor du dieses Node konfigurierst -Delete this node?;Dieses Node löschen? -Do you really want to delete this node;Möchtest du dieses Node wirklich löschen? -Yes;Ja -No;Nein -Status;Status -Adding;Hinzufügen -Port;Port -Id;Id -Manage;Verwalten -Create new server;Neuen Server erstellen -No servers found;Keine Server gefunden -Server name;Server Name -Cpu cores;CPU Kerne -Disk;Speicherplatz -Image;Image -Override startup;Startup überschreiben -Docker image;Docker Image -CPU Cores (100% = 1 Core);CPU Kerne (100% = 1 Kern) -Server successfully created;Server erfolgreich erstellt -Name;Name -Cores;Kerne -Owner;Besitzer -Value;Wert -An unknown error occured;Ein unbekannter Fehler ist aufgetreten -No allocation found;Keine Zuweisung gefunden -Identifier;Identifier -UuidIdentifier;UuidIdentifier -Override startup command;Startup Befehl überschreiben -Loading;Wird geladen... -Offline;Offline -Connecting;Verbiden... -Start;Start -Restart;Neu Starten -Stop;Stoppen -Shared IP;Geteilte IP -Server ID;Server ID -Cpu;CPU -Console;Console -Files;Dateien -Backups;Backups -Network;Netzwerk -Plugins;Plugins -Settings;Einstellungen -Enter command;Befehl eingeben -Execute;Ausführen -Checking disk space;Speicherplatz überprüfen -Updating config files;Konfigurations-Dateien werden geupdatet -Checking file permissions;Datei-Rechte werden überprüft -Downloading server image;Server Image wird heruntergeladen -Downloaded server image;Server Image wurde heruntergeladen -Starting;Startet -Online;Online -Kill;Kill -Stopping;Stoppt -Search files and folders;Ordner und Dateien durchsuchen -Launch WinSCP;WinSCP starten -New folder;Neuer Ordner -Upload;Hochladen -File name;Datei-Name -File size;Datei-Größe -Last modified;Zuletz geändert -Cancel;Abbrechen -Canceling;Wird Abbgebrochen -Running;Läuft -Loading backups;Backups werden geladen -Started backup creation;Backup wird erstellt -Backup is going to be created;Backup wird erstellt werden -Rename;Umbenennen -Move;Bewegen -Archive;Archivieren -Unarchive;Archivieren rückgängig machen -Download;Herunterladen -Starting download;Herunterladen wird gestartet -Backup successfully created;Backup wurde erfolgreich erstellt -Restore;Wiederherstellen -Copy url;URL Kopieren -Backup deletion started;Backup löschung wird gestartet -Backup successfully deleted;Backup wurde erfolgreich gelöscht -Primary;Primärer -This feature is currently not available;Diese Funktion ist zur Zeit nicht verfügbar -Send;Senden -Sending;Wird gesendet -Welcome to the support chat. Ask your question here and we will help you;Willkommen in der Chat Hilfe. Stelle hier deine Frage und wir helfen dir. - minutes ago; Minuten -just now;gerade eben -less than a minute ago;weniger als eine Minute -1 hour ago;vor einer Stunde -1 minute ago;vor einer Minute -Failed;Fehlgeschlagen - hours ago; Stunden -Open tickets;Tickets öffnen -Actions;Aktionen -No support ticket is currently open;Kein Support Ticket ist zurzeit offen. -User information;Benutzer-Information -Close ticket;Ticket schließen -Closing;Wird geschlossen... -The support team has been notified. Please be patient;Das Support-Team wurde benachrichtigt. Habe etwas gedult -The ticket is now closed. Type a message to open it again;Das Ticket wurde geschlossen. Schreibe etwas, um es wieder zu öffnen -1 day ago;vor einem Tag -is typing;schreibt... -are typing;schreiben -No domains available;Keine Domains verfügbar -Shared domains;Geteilte Domains -Shared domain;Geteilte Domain -Shared domain successfully deleted;Geteilte Domain wurde erfolgreich gelöscht -Shared domain successfully added;Geteilte Domain wurde erfolgreich hinzugefügt -Domain name;Domain Name -DNS records for;DNS-Record für -Fetching dns records;Es wird nach DNS-Records gesucht -No dns records found;Keine DNS-Records gefunden -Content;Inhalt -Priority;Priorität -Ttl;Ttl -Enable cloudflare proxy;Cloudflare-Proxy benutzen -CF Proxy;CF Proxy - days ago; Tage -Cancle;Abbrechen -An unexpected error occured;Ein unbekannter Fehler ist aufgetreten -Testy;Testy -Error from cloudflare api;Fehler von der Cloudflare-API -Profile;Profil -No subscription available;Kein Abo verfügbar -Buy;Kaufen -Redirecting;Weiterleiten -Apply;Anwenden -Applying code;Code Anwenden -Invalid subscription code;Unbekannter Abo-Code -Cancel Subscription;Abo beenden -Active until;Aktiv bis -We will send you a notification upon subscription expiration;Wenn dein Abo endet, senden wir dir eine E-Mail -This token has been already used;Dieser Token wurde schon benutzt -New login for;Neue Anmeldung für -No records found for this day;Für diesen Tag wurden keine Records gefunden -Change;Ändern -Changing;Wird geändert -Minecraft version;Minecraft Version -Build version;Build Version -Server installation is currently running;Der Server wird installiert. -Selected;Ausgewählt -Move deleted;Gelöschtest Bewegen -Delete selected;Ausgewähltes löschen -Log level;Log Level -Log message;Log Message -Time;Zeit -Version;Version -You are running moonlight version;Du benutzt die Moonlight-Version -Operating system;Betriebssystem -Moonlight is running on;Moonlight läuft auf -Memory usage;Arbeitsspeicher-Auslastung -Moonlight is using;Moonlight benutzt -of memory;des Arbeitsspeichers -Cpu usage;CPU Auslastung -Refresh;Neu Laden -Send a message to all users;Eine Nachricht an alle Benutzer senden -IP;IP -URL;URL -Device;Gerät -Change url;URL Ändern -Message;Nachricht -Enter message;Nachricht eingeben -Enter the message to send;Eine Nachricht zum senden eingeben -Confirm;Bestätigen -Are you sure?;Bist du dir sicher -Enter url;URL eingeben -An unknown error occured while starting backup deletion;Ein unbekannter Fehler ist während der Backuplöschung aufgetreten -Success;erfolgreich -Backup URL successfully copied to your clipboard;Die Backup URL wurde in deine Zwischenablage kopiert -Backup restore started;Backup wiederherstellung gestartet -Backup successfully restored;Das Backup wurde erfolgreich wiedergeherstellt -Register for;Registrieren für -Core;Kern -Logs;Logs -AuditLog;AuditLog -SecurityLog;SecurityLog -ErrorLog;ErrorLog -Resources;Resourcen -WinSCP cannot be launched here;WinSCP kann nicht gestartet werden -Create a new folder;Neuen Ordner erstellen -Enter a name;Einen Namen eingeben -File upload complete;Dateiupload abgeschlossen -New server;Neuer Server -Sessions;Sitzungen -New user;Neuer Benutzer -Created at;Erstellt am -Mail template not found;E-Mail template wurde nicht gefunden -Missing admin permissions. This attempt has been logged ;Fehlende Admin-Rechte. Dieser Versuch wurde aufgezeichnet -Address;Addresse -City;Stadt -State;Land -Country;Staat -Totp;Totp -Discord;Discord -Subscription;Abonnement -None;None -No user with this id found;Kein Benutzer mit dieser ID gefunden -Back to list;Zurück zur liste -New domain;Neue domain -Reset password;Password wiederherstellen -Password reset;Password wiederherstellung -Reset the password of your account;Password deines Accounts zurücksetzen -Wrong here?;Falsch hier? -A user with this email can not be found;Ein Benutzer mit dieser E-Mail konnte nicht gefunden werden -Password reset successfull. Check your mail;Password wiederherstellung erfolgreich. Überprüfe deine Email -Discord bot;Discord Bot -New image;Neues Image -Description;Beschreibung -Uuid;UUID -Enter tag name;Tag Namen eingeben -Remove;Entfernen -No tags found;Keine Tags gefunden -Enter docker image name;Docker Image Namen eingeben -Tags;Tags -Docker images;Docker Images -Default image;Standard Image -Startup command;Startup Befehl -Install container;Install container -Install entry;Install entry -Configuration files;Konfigurationsdateien -Startup detection;Startuperkennung -Stop command;Stopp-Befehl -Successfully saved image;Das Image wurde erfolgreich gespeichert -No docker images found;Keine Docker Images gefunden -Key;Schlüssel -Default value;Standardwert -Allocations;Zuweisung -No variables found;Keine Variablen gefunden -Successfully added image;Das Image wurde erfolgreich hinzugefügt -Password change for;Password ändern für -of;von -New node;Neues Node -Fqdn;Fqdn -Cores used;Kerne genutzt -used;benutzt -5.15.90.1-microsoft-standard-WSL2 - amd64;5.15.90.1-microsoft-standard-WSL2 - amd64 -Host system information;Host System Information -0;0 -Docker containers running;Laufende Docker Container -details;Details -1;1 -2;2 -DDos;DDos -No ddos attacks found;Keine DDoS gefunden -Node;Node -Date;Datum -DDos attack started;DDos Attacke gestartet -packets;Pakete -DDos attack stopped;DDos Attacke gestoppt - packets; Pakete -Stop all;Alle Stoppen -Kill all;Allen Killen -Network in;Network in -Network out;Network out -Kill all servers;Alle Server Killen -Do you really want to kill all running servers?;Möchtest du wirklich alle laufenden Server Killen? -Change power state for;Power-State ändern für -to;zu -Stop all servers;Alle Server stoppen -Do you really want to stop all running servers?;Möchtest du wirklich alle laufenden Server Killen? -Manage ;Verwalten -Manage user ;Benutzer verwalten -Reloading;Neu Laden... -Update;Aktualisieren -Updating;Wird Aktualisiert... -Successfully updated user;Benutzer erfolgreich aktualisiert -Discord id;Discord ID -Discord username;Discord Benutzername -Discord discriminator;Discord Tag -The Name field is required.;Der Name dieses Feldes ist erforderlich -An error occured while logging you in;Ein Fehler ist aufgetreten, als du dich angemeldet hast -You need to enter an email address;Du musst eine E-Mail-Adresse angeben -You need to enter a password;Du musst ein Password eingeben -You need to enter a password with minimum 8 characters in lenght;Du musst ein Password eingeben, das mindestens 8 Buchstaben lang ist -Proccessing;Wird verarbeitet... -The FirstName field is required.;Das Vorname-Feld ist erforderlich -The LastName field is required.;Das Nachname-Feld ist erforderlich -The Address field is required.;Das Address-Feld ist erforderlich -The City field is required.;Das Stadt-Feld ist erforderlich -The State field is required.;Das Staat-Feld ist erforderlich -The Country field is required.;Das Land-Feld ist erforderlich -Street and house number requered;Straße und Hausnummer erforderlich -Max lenght reached;Maximale Länge erreicht -Server;Server -stopped;gestoppt -Cleanups;Cleanups -executed;ausgeführt -Used clanup;Cleanup benutzt -Enable;Aktivieren -Disable;Deaktivieren -Addons;Add-ons -Javascript version;Javascript Version -Javascript file;Javascript Datei -Select javascript file to execute on start;Javascript Datei zum starten auswählen -Submit;Einreichen -Processing;Wird verarbeitet... -Go up;Nach oben gehen -Running cleanup;Cleanup läuft -servers;Servers -Select folder to move the file(s) to;Ordner zum Bewegen der Dateien auswählen -Paper version;Paper Version -Join2Start;Join2Start -Server reset;Server zurücksetzen -Reset;Zurücksetzen -Resetting;Wird zurückgesetzt -Are you sure you want to reset this server?;Möchtest du diesen Server wirklich zurücksetzen? -Are you sure? This cannot be undone;Bist du dir sicher? Dies kann nicht rückgängig gemacht werden -Resetting server;Server wird zurückgesetzt... -Deleted file;Datei gelöscht -Reinstalling server;Server wird reinstalliert -Uploading files;Dateien wurden hochgeladen -complete;vollständig -Upload complete;Upload komplett -Security;Sicherheit -Subscriptions;Abonnements -2fa Code;2FA Code -Your account is secured with 2fa;Dein Account wird mit 2-FA gesichert -anyone write a fancy text here?;hier einen schönen Text schreiben? -Activate 2fa;2-FA Aktivieren -2fa apps;2-FA Apps -Use an app like ;Benutze eine App wie -or;oder -and scan the following QR Code;und scanne diesen QR-Code -If you have trouble using the QR Code, select manual input in the app and enter your email and the following code:;Wenn du Probleme mit dem Scannen des Qr-Codes has, benutze doch die Manuelle Eingabe der App und gib deine E-Mail und den folgenden Code ein: -Finish activation;Aktivierung fertig -2fa Code requiered;2-FA Code erforderlich -New password;Neues Password -Secure your account;Deinen Account sichern -2fa adds another layer of security to your account. You have to enter a 6 digit code in order to login.;2-FA fügt eine weitere Sicherheits-Schicht hinzu. Du musst einen 6-Ziffern-Code eingeben, um dich anzumelden. -New subscription;Neues Abonnement -You need to enter a name;Du musst einen Namen eingeben -You need to enter a description;Du musst eine Beschreibung eigeben -Add new limit;Ein neues Limit hinzufügen -Create subscription;Abonnement erstellen -Options;Optionen -Amount;Betrag -Do you really want to delete it?;Möchtes du es wirklich löschen? -Loading your subscription;Dein Abonnement wird geladen -Searching for deploy node;Suche Node zum Aufsetzen -Searching for available images;Nach verfügbaren Images wird gesucht -Server details;Server Details -Configure your server;Deinen Server konfigurieren -Default;Standard -You reached the maximum amount of servers for every image of your subscription;Du hast die maximale Anzahl an Images von deinem Abonnement erreicht. -Personal information;Prsönliche Informationen -Enter code;Code eingeben -Server rename;Server Umbenennen -Create code;Code erstellen -Save subscription;Abonnement speichern -Enter your information;Informationen eingeben -You need to enter your full name in order to use moonlight;Du musst deinen ganzen Namen eingeben, um Moonlight zu nutzen -No node found;Kein Node gefunden -No node found to deploy to found;Keine Node zum Aufsetzen gefunden -Node offline;Node offline -The node the server is running on is currently offline;Die Node, auf dem der Server grat läuft, ist offline -Server not found;Server konnte nicht gefunden werden -A server with that id cannot be found or you have no access for this server;Ein Server mit dieser ID konnte nicht gefunden werden -Compress;Komprimieren -Decompress;De-Komprimieren -Moving;Bewegen... -Compressing;Komprimieren... -selected;Ausgewählt -New website;Neue Webseite -Plesk servers;Plesk Servers -Base domain;Base Domain -Plesk server;Plesk Server -Ftp;FTP -No SSL certificate found;Keine SSL-Zertifikate gefunden -Ftp Host;FTP Host -Ftp Port;FTP Port -Ftp Username;FTP Username -Ftp Password;FTP Password -Use;Benutzen -SSL Certificates;SSL Zertifikate -SSL certificates;SSL Zertifikate -Issue certificate;SSL-Zertifikat Ausgeben -New plesk server;Neuer Plesk Server -Api url;API URL -Host system offline;Host System Offline -The host system the website is running on is currently offline;Das Host System, auf dem diese Webseite läuft, ist offline -No SSL certificates found;Keine SSL-Zertifikate gefunden -No databases found for this website;Dieser Webseite konnten keine Datenbanken zugeordnet werden -The name should be at least 8 characters long;Der Name sollte mindestens 8 Zeichen lang sein -The name should only contain of lower case characters and numbers;Der Name sollte nur Kleinbuchstaben und Zahlen enthalten -Error from plesk;Error von Plesk -Host;Host -Username;Benutzername -SRV records cannot be updated thanks to the cloudflare api client. Please delete the record and create a new one;SRV Records können aufgrund von Cloudflare nicht geupdatet werden. Bitte lösche den Record und erstelle einen neuen. -The User field is required.;Das Benutzer-Feld ist erforderlich -You need to specify a owner;Du musst einen Server-Besitzer angeben -You need to specify a image;You need to specify a image -Api Url;API URL -Api Key;Api Key -Duration;Dauer -Enter duration of subscription;Dauer des Abonnements eingeben -Copied code to clipboard;Code in die Zwischenablage kopiert -Invalid or expired subscription code;Ungültiger oder Abgelaufener Abo-Code -Current subscription;Dein Abonnement -You need to specify a server image;Du musst ein Image angeben -CPU;CPU -Hour;Stunde -Day;Tag -Month;Monat -Year;Jahr -All time;Für immer -This function is not implemented;Diese Funktion wurde noch nicht hinzugefügt -Domain details;Domain Details -Configure your domain;Deine Domain konfigurieren -You reached the maximum amount of domains in your subscription;Du hast das Maximum an Domains in deinem Abonnement erreicht -You need to specify a shared domain;Du musst eine Shared-Domain angeben -A domain with this name does already exist for this shared domain;Eine Domain mit diesem Name existiert bereits in dieser Shared-Domain -The Email field is required.;Das E-Mail-Feld ist erforderlich -The Password field is required.;Das Password-Feld ist erforderlich -The ConfirmPassword field is required.;Das Password-Bestätigen-Feld ist erforderlich -Passwords need to match;Die Passwörter müssen übereinstimmen -Cleanup exception;Cleanup ausnahme -No shared domain found;Keine Shared-Domain gefunden -Searching for deploy plesk server;Suchen um den Plesk Server aufzusetzen -No plesk server found;Kein Plesk Server gefunden -No plesk server found to deploy to;Keinen Plesk Server zum Aufsetzen gefunden -No node found to deploy to;Kein Node zum Aufsetzen -Website details;Details der Webseite -Configure your website;Konfiguriere deine Webseite -The name cannot be longer that 32 characters;Der Name kann nicht länger als 32 Zeichen sein -The name should only consist of lower case characters;Der Name sollte nur aus Kleinbuchstaben bestehen -News;Neuigkeiten -Title...;Titel... -Enter text...;Text einfügen... -Saving...;Wird gespeichert... -Deleting...;Wird gelöscht... -Delete post;Post löschen -Do you really want to delete the post ";Post löschen? " -You have no domains;Du hast keine Domains -We were not able to find any domains associated with your account;Wir haben keine Domains, die mit deinem Account verbunden sind, gefunden -You have no websites;Du hast keine Webseites -We were not able to find any websites associated with your account;Wir haben keine Webseiten, die mit deinem Account verbunden sind, gefunden -Guest;Gast -You need a domain;Du brauchts eine Domain -New post;Neuer Post -New entry;Neuer Eintrag -You have no servers;Du hast keine Server -We were not able to find any servers associated with your account;Wir haben keine Server, die mit deinem Account verbunden sind, gefunden -Error creating server on wings;Fehler bei der Erstellung des Servers auf Wings -An unknown error occured while restoring a backup;Ein unbekannter Fehler ist während der Backup-Wiederherstellung aufgetreten -Error from daemon;Fehler vom Daemon -End;Ende -Cloud panel;Cloud Panel -Cloud panels;Cloud Panels -New cloud panel;Neues cloud Panel -You need to enter an api key;Du musst einen API-Key eigeben -Webspaces;Webspaces -New webspace;Neuer Webspace -The uploaded file should not be bigger than 100MB;DIe Datei sollte nicht größer als 100MB sein -An unknown error occured while uploading a file;Ein unbekannter Fehler ist während dem Datei-Hochladen aufgetreten -No databases found for this webspace;Keine Datenbanken für diesen Webspace gefunden -Sftp;SFTP -Sftp Host;Sftp Host -Sftp Port;Sftp Port -Sftp Username;Sftp Benutzername -Sftp Password;Sftp Password -Lets Encrypt certificate successfully issued;Lets Encrypt Zertifikat erfolgreich erstellt -Add shared domain;Shared Domain Hinzufügen -Webspace;Webspace -You reached the maximum amount of websites in your subscription;Du hast das Maximum an Webseiten in deinem Abonnement erreicht -Searching for deploy web host;Suchen um den Webhost aufzusetzen -Webspace details;Webspace Details -Web host;Web host -Configure your webspaces;Konfiguriere deine Webspaces -You reached the maximum amount of webspaces in your subscription;Du hast das Maximum an Webspaces in deinem Abonnement erreicht -Create a webspace;Einen Webspace erstellen -Manage your webspaces;Deine Webspaces verwalten -Modify the content of your webspaces;Den Inhalt deiner Webspaces verwalten -Successfully updated password;Password erfolgreich geupdatet -An unknown error occured while sending your message;Ein unbekannter Fehler ist während dem Senden von deiner Nachricht aufgetreten -Open chats;Offene Chats -No message sent yet;Keine Nachrichten gesendet -Support ticket open;Support-Ticket geöffnet -Support ticket closed;Support-Ticket geschlossen -Your connection has been paused;Deine Verbindung wurde pausiert -We paused your connection because of inactivity. The resume just focus the tab and wait a few seconds;Wir haben deine Verbindung aufgrund von inaktivität pausiert. Wechsle auf den Tab und warte ein paar Sekunden -Failed to reconnect to the moonlight servers;Die Wiederverbindung zu den Moonlight-Servern ist gescheitert -We were unable to reconnect to moonlight. Please refresh the page;Verbindung zu Moonlight fehlgeschlagen. Bitte aktualisiere die Seite -Failed to reconnect to the moonlight servers. The connection has been rejected;Die Wiederverbindung zu den Moonlight-Servern ist fehlgeschlagen. Die Verbindung wurde abgelehnt -We were unable to reconnect to moonlight. Most of the time this is caused by an update of moonlight. Please refresh the page;Verbindung zu Moonlight fehlgeschlagen. Meistens wird dies durch eine Aktualisierung von Moonlight verursacht. Bitte aktualisieren Sie die Seite -Verifying token, loading user data;Token verifizieren, Benutzer-Daten laden -Reload config;Konfiguration neu laden -Successfully reloading configuration;Konfiguration wird neu geladen... -Successfully reloaded configuration;Die Konfiguration wurde erfolgreich neu geladen -Flows;Flows -Add node;Node Hinzufügen -Web system;Web System -Servers with this image;Server mit diesem Image -You need to specify a user;Du musst einen Benutzer angeben -Import;Importieren -Export;Exportieren -Exporting;Wird exportiert -Successfully imported image;Das Image wurde erfolgreich importiert. -Forge version;Forge Version -Fabric version;Fabric Version -Fabric loader version;Fabric Loader Version -Rate;Rate -Hey, can i borrow you for a second?;Hey, kann ich dich mal kurz ausleihen? -We want to improve our services and get a little bit of feedback how we are currently doing. Please leave us a rating;Da wir unsere Dienste ständig verbessern, möchten wir dich um Feedback bitten. Bitte Bewerte uns: -Thanks for your rating;Danke für deine Bewertun -It would be really kind of you rating us on a external platform as it will help our project very much;Es wäre wirklich nett, wenn du uns auf einer externen Plattform bewerten würdest, denn das würde unserem Projekt sehr helfen -Close;Schließen -Rating saved;Bewretung gespeichert -Group;Gruppe -Beta;Beta -Create a new group;Eine neue Gruppe erstellen -Download WinSCP;WinSCP herunterladen -Show connection details;Verbindungsdetails anzeigen -New;Neu -New file;Neue Datei -Connection details;Verbindungsdetails -Malware;Malware -Create a new file;Eine neue Datei erstellen -Edit layout;Layout anpassen -Uptime;Laufzeit -Moonlight is online since;Moonlight ist online seit -User;Benutzer -Databases;Datenbanken -Sitzungen;Sitzungen -Active users;Aktive Nutzer -Search for plugins;Nach Plugins suchen -Search;Suchen -Searching;Wird gesucht... -Successfully installed gunshell;Gunshell wurde erfolgreich installiert -Successfully installed fastasyncworldedit;Fastasyncworldedit wurde erfolgreich installiert -Successfully installed minimotd;Minimotd wurde erfolgreich installiert -Moonlight health;Moonlight Status -Healthy;Healthy -Successfully saved file;Die Datei wurde erfolgreich gespeichert -Unsorted servers;Unsortierte Server -Enter a new name;Einen neuen Namen eingeben -Sign in with;Anmelden mit -Make your services accessible through your own domain;Mache deine Dienste mit einer Domain verfügbar -New group;Neue Gruppe -Finish editing layout;Layout Fertigstellen -Remove group;Gruppe löschen -Hidden in edit mode;Im Edit-Mode ausgeblendet -Enter your 2fa code here;Deinen 2FA Code hier eingeben -Two factor authentication;Zwei Faktor Authentifikation -Preferences;Preferenzen -Streamer mode;Streamer Modus -Scan the QR code and enter the code generated by the app you have scanned it in;Scanne den QR-Code mit der App -Start scan;Scan Starten -Results;Ergebnisse -Scan in progress;Wird gescannt -Debug;Debug -Save changes;Änderungen speichern -Delete domain;Domain löschen -Python version;Python Version -Python file;Python Datei -Select python file to execute on start;Wähle die Python Datei aus, die beim Start ausgeführt wird -You have no webspaces;Du hast keine Webspaces -We were not able to find any webspaces associated with your account;Wir haben keine Webspaces gefunden, die mit deinem Account verbunden sind -Backup download successfully started;Der Backup-Download wurde erfolgreich gestartet -Error from cloud panel;Fehler vom Cloud Panel -Error from wings;Fehler von Wings -Remove link;Link entfernen -Your account is linked to a discord account;Dein Account ist mit einem Discord Account verbunden -You are able to use features like the discord bot of moonlight;Du kannst Features wie den Discord Bot von Moonlight benutzen -The password should be at least 8 characters long;Dein Password sollte mindestens 8 Zeichen lang sein -The name should only consist of lower case characters or numbers;Der Name sollte nur aus Kleinbuchstaben und Nummern bestehen -The requested resource was not found;Die gewünschte Ressource wurde nicht gefunden -We were not able to find the requested resource. This can have following reasons;Wir haben die gewünschte Ressource nicht gefunden. Das kann folgenden Grund haben -The resource was deleted;Die Ressource wurde gelöscht -You have to permission to access this resource;Du hast keine Rechte um auf diese Ressource zuzugreifen -You may have entered invalid data;Du hast ungültige Daten angegeben -A unknown bug occured;Ein unbekannter Bug ist aufgetreten -An api was down and not proper handled;Eine API war offline und wurde nicht richtig behandelt -A database with this name does already exist;Es gibt bereits eine Datenbank mit diesem Namen -Successfully installed quickshop-hikari;Quickshop-Hikari wurde erfolgreich installiert -You need to enter a valid domain;Du musst eine gültige Domain angeben -2fa code;2FA Code -This feature is not available for;Dieses Feature ist nicht verfügbar für -Your account is currently not linked to discord;Dein Account ist nicht mit Discord verbunden -To use features like the discord bot, link your moonlight account with your discord account;Um Features wie Moonlights Discord Bot nutzen zu können, verbinde deinen Account mit Discord -Link account;Account verbinden -Continue;Weiter -Preparing;Wird vorbereitet -Make sure you have installed one of the following apps on your smartphone and press continue;Stelle sicher dass du eine der folgenden Apps auf deinem Smartphone installiert hast und drücke auf Weiter -The max lenght for the name is 32 characters;Die maximale Länge für den Namen beträgt 32 Zeichen -Successfully installed chunky;Chunky wurde erfolgreich installiert -Successfully installed huskhomes;Huskhomes wurde erfolgreich installiert -Successfully installed simply-farming;Simple-Farming wurde erfolgreich installiert -You need to specify a first name;Du musst einen Vornamen eingeben -You need to specify a last name;Du musst einen Nachnamen angeben -You need to specify a password;Du musst ein Password angeben -Please solve the captcha;Bitte löse das Captcha -The email is already in use;Diese Email wird bereits verwendet -The dns records of your webspace do not point to the host system;Die DNS Records deines Webspaces zeigen nicht zum Hostsystem -Scan complete;Scan komplett -Currently scanning:;Zurzeit wird gescannt: -Successfully installed dynmap;Dynmap wurde erfolgreich installiert -Successfully installed squaremap;Squaremap wurde erfolgreich installiert -No web host found;Kein Webhost gefunden -No web host found to deploy to;Es wurde kein Webhost zum Aufsetzen gefunden -Successfully installed sleeper;Sleeper wurde erfolgreich installiert -You need to enter a domain;Du musst eine Domain angeben -Enter a ip;Eine IP angeben -Ip Bans;Ip Bans -Ip;Ip -Successfully installed simple-voice-chat;Simple-Voice-Chat wurde erfolgreich installiert -Successfully installed smithing-table-fix;Smithing-Table-Fix wurde erfolgreich installiert -Successfully installed justplayer-tpa;Justplayer-TPA wurde erfolgreich installiert -Successfully installed ishop;iShop wurde erfolgreich installiert -Successfully installed lifestealre;Lifestealre wurde erfolgreich installiert -Successfully installed lifeswap;Lifeswap wurde erfolgreich installiert -Java version;Java Version -Jar file;JAR Datei -Select jar to execute on start;Eine JAR Datei auswählen, die beim Start ausgeführt wird -A website with this domain does already exist;Eine Webseite mit dieser Domain existiert bereits -Successfully installed discordsrv;DiscordSrv wurde erfolgreich installiert -Reinstall;Reinstallieren -Reinstalling;Wird Reinstalliert -Successfully installed freedomchat;Freedomchat wurde erfolgreich installiert -Leave empty for the default background image;Für das Standard Hintergrundbild freilassen -Background image url;URL zum Hintergrundbild -of CPU used;von der CPU wird benutzt -memory used;Speicher benutzt -163;163 -172;172 -Sentry;Sentry -Sentry is enabled;Sentry ist eingeschaltet -Successfully installed mobis-homes;Mobis-Homes wurde erfolgreich installiert -Your moonlight account is disabled;Dein Moonlight Account ist deaktiviert -Your moonlight account is currently disabled. But dont worry your data is still saved;Dein Moonlight Account ist deaktiviert, aber keine Sorge, deine Daten sind noch gespeichert -You need to specify a email address;Du musst eine Email Adresse angeben -A user with that email does already exist;Ein Nutzer mit dieser Email Adresse existiert bereits -Successfully installed buildmode;Buildmode wurde erfolgreich installiert -Successfully installed plasmo-voice;Plasmo-Voice wurde erfolgreich installiert -157;157 -174;174 -158;158 -Webspace not found;Webspace nicht gefunden -A webspace with that id cannot be found or you have no access for this webspace;Ein Webspace mit dieser ID wurde nicht gefunden, oder du hast keinen Zugriff auf diesen Webspace -No plugin download for your minecraft version found;Kein Plugin für deine Minecraft-Version gefunden -Successfully installed gamemode-alias;Gamemode-Alias wurde erfolgreich installiert -228;228 -User;Nutzer -Send notification;Benachrichtigung senden -Successfully saved changes;Änderungen erfolgreich gespeichert -Archiving;Wird Archiviert -Server is currently not archived;Dieser Server ist zurzeit nicht Archiviert -Add allocation;Zuweisung hinzufügen -231;231 -175;175 -Dotnet version;Dotnet Version -Dll file;DLL Datei -Select dll to execute on start;Wähle die DLL Datei aus, die beim Start ausgeführt wird diff --git a/Moonlight/defaultstorage/resources/lang/en_us.lang b/Moonlight/defaultstorage/resources/lang/en_us.lang deleted file mode 100644 index fe6687f7..00000000 --- a/Moonlight/defaultstorage/resources/lang/en_us.lang +++ /dev/null @@ -1,567 +0,0 @@ -Open support;Open support -About us;About us -Imprint;Imprint -Privacy;Privacy -Login;Login -Register;Register -Insert brand name...;Insert brand name... -Save and continue;Save and continue -Saving;Saving -Configure basics;Configure basics -Brand name;Brand name -test;test -Insert first name...;Insert first name... -Insert last name...;Insert last name... -Insert email address...;Insert email address... -Add;Add -Adding...;Adding... -Add admin accounts;Add admin accounts -First name;First name -Last name;Last name -Email address;Email address -Enter password;Enter password -Next;Next -Back;Back -Configure features;Configure features -Support chat;Support chat -Finish;Finish -Finalize installation;Finalize installation -Moonlight basic settings successfully configured;Moonlight basic settings successfully configured -Ooops. This page is crashed;Ooops. This page crashed -This page is crashed. The error has been reported to the moonlight team. Meanwhile you can try reloading the page;This page crashed. The error has been reported to the moonlight team. Meanwhile you can try reloading the page -Setup complete;Setup complete -It looks like this moonlight instance is ready to go;It looks like this moonlight instance is ready to go -User successfully created;User successfully created -Ooops. Your moonlight client is crashed;Ooops. Your moonlight client crashed -This error has been reported to the moonlight team;This error has been reported to the moonlight team -Sign In;Sign In -Sign in to start with moonlight;Sign in to start with moonlight -Sign in with Discord;Sign in with Discord -Or with email;Or with email -Forgot password?;Forgot password? -Sign-in;Sign-in -Not registered yet?;Not registered yet? -Sign up;Sign up -Authenticating;Authenticating -Sign in with Google;Sign in with Google -Working;Working -Error;Error -Email and password combination not found;Email and password combination not found -Email;Email -Password;Password -Account settings;Account settings -Logout;Logout -Dashboard;Dashboard -Order;Order -Website;Website -Database;Database -Domain;Domain -Servers;Servers -Websites;Websites -Databases;Databases -Domains;Domains -Changelog;Changelog -Firstname;First Name -Lastname;Last Name -Repeat password;Repeat password -Sign Up;Sign Up -Sign up to start with moonlight;Sign up to start with moonlight -Sign up with Discord;Sign up with Discord -Sign up with Google;Sign up with Google -Sign-up;Sign-up -Already registered?;Already registered? -Sign in;Sign in -Create something new;Create something new -Create a gameserver;Create a gameserver -A new gameserver in just a few minutes;A new gameserver in just a few minutes -Create a database;Create a database -A quick way to store your data and manage it from all around the world;A quick way to store your data and manage it from all around the world -Manage your services;Manage your services -Manage your gameservers;Manage your gameservers -Adjust your gameservers;Adjust your gameservers -Manage your databases;Manage your databases -Insert, delete and update the data in your databases;Insert, delete and update the data in your databases -Create a website;Create a website -Make your own websites with a webspace;Make your own websites with a webspace -Create a domain;Create a domain -Make your servvices accessible throught your own domain;Make your services accessible throught your own domain -Manage your websites;Manage your websites -Modify the content of your websites;Modify the content of your websites -Manage your domains;Manage your domains -Add, edit and delete dns records;Add, edit and delete dns records -Admin;Admin -System;System -Overview;Overview -Manager;Manager -Cleanup;Cleanup -Nodes;Nodes -Images;Images -aaPanel;aaPanel -Users;Users -Support;Support -Statistics;Statistics -No nodes found. Start with adding a new node;No nodes found. Start with adding a new node -Nodename;Nodename -FQDN;FQDN -Create;Create -Creating;Creating -Http port;Http port -Sftp port;Sftp port -Moonlight daemon port;Moonlight daemon port -SSL;SSL -CPU Usage;CPU Usage -In %;In % -Memory;Memory -Used / Available memory;Used / Available memory -Storage;Storage -Available storage;Available storage -Add a new node;Add a new node -Delete;Delete -Deleting;Deleting -Edit;Edit -Token Id;Token Id -Token;Token -Save;Save -Setup;Setup -Open a ssh connection to your node and enter;Open a ssh connection to your node and enter -and paste the config below. Then press STRG+O and STRG+X to save;and paste the config below. Then press STRG+O and STRG+X to save -Before configuring this node, install the daemon;Before configuring this node, install the daemon -Delete this node?;Delete this node? -Do you really want to delete this node;Do you really want to delete this node -Yes;Yes -No;No -Status;Status -Adding;Adding -Port;Port -Id;Id -Manage;Manage -Create new server;Create new server -No servers found;No servers found -Server name;Server name -Cpu cores;Cpu cores -Disk;Disk -Image;Image -Override startup;Override startup -Docker image;Docker image -CPU Cores (100% = 1 Core);CPU Cores (100% = 1 Core) -Server successfully created;Server successfully created -Name;Name -Cores;Cores -Owner;Owner -Value;Value -An unknown error occured;An unknown error occured -No allocation found;No allocation found -Identifier;Identifier -UuidIdentifier;UuidIdentifier -Override startup command;Override startup command -Loading;Loading -Offline;Offline -Connecting;Connecting -Start;Start -Restart;Restart -Stop;Stop -Shared IP;Shared IP -Server ID;Server ID -Cpu;Cpu -Console;Console -Files;Files -Backups;Backups -Network;Network -Plugins;Plugins -Settings;Settings -Enter command;Enter command -Execute;Execute -Checking disk space;Checking disk space -Updating config files;Updating config files -Checking file permissions;Checking file permissions -Downloading server image;Downloading server image -Downloaded server image;Downloaded server image -Starting;Starting -Online;Online -Kill;Kill -Stopping;Stopping -Search files and folders;Search files and folders -Launch WinSCP;Launch WinSCP -New folder;New folder -Upload;Upload -File name;File name -File size;File size -Last modified;Last modified -Cancel;Cancel -Canceling;Canceling -Running;Running -Loading backups;Loading backups -Started backup creation;Started backup creation -Backup is going to be created;Backup is going to be created -Rename;Rename -Move;Move -Archive;Archive -Unarchive;Unarchive -Download;Download -Starting download;Starting download -Backup successfully created;Backup successfully created -Restore;Restore -Copy url;Copy url -Backup deletion started;Backup deletion started -Backup successfully deleted;Backup successfully deleted -Primary;Primary -This feature is currently not available;This feature is currently not available -Send;Send -Sending;Sending -Welcome to the support chat. Ask your question here and we will help you;Welcome to the support chat. Ask your question here and we will help you - minutes ago; minutes ago -just now;just now -less than a minute ago;less than a minute ago -1 hour ago;1 hour ago -1 minute ago;1 minute ago -Failed;Failed - hours ago; hours ago -Open tickets;Open tickets -Actions;Actions -No support ticket is currently open;No support ticket is currently open -User information;User information -Close ticket;Close ticket -Closing;Closing -The support team has been notified. Please be patient;The support team has been notified. Please be patient -The ticket is now closed. Type a message to open it again;The ticket is now closed. Type a message to open it again -1 day ago;1 day ago -is typing;is typing -are typing;are typing -No domains available;No domains available -Shared domains;Shared domains -Shared domain;Shared domain -Shared domain successfully deleted;Shared domain successfully deleted -Shared domain successfully added;Shared domain successfully added -Domain name;Domain name -DNS records for;DNS records for -Fetching dns records;Fetching dns records -No dns records found;No dns records found -Content;Content -Priority;Priority -Ttl;Ttl -Enable cloudflare proxy;Enable cloudflare proxy -CF Proxy;CF Proxy - days ago; days ago -Cancle;Cancle -An unexpected error occured;An unexpected error occured -Testy;Testy -Error from cloudflare api;Error from cloudflare api -Profile;Profile -No subscription available;No subscription available -Buy;Buy -Redirecting;Redirecting -Apply;Apply -Applying code;Applying code -Invalid subscription code;Invalid subscription code -Cancel Subscription;Cancel Subscription -Active until;Active until -We will send you a notification upon subscription expiration;We will send you a notification upon subscription expiration -This token has been already used;This token has been already used -New login for;New login for -No records found for this day;No records found for this day -Change;Change -Changing;Changing -Minecraft version;Minecraft version -Build version;Build version -Server installation is currently running;Server installation is currently running -Selected;Selected -Move deleted;Move deleted -Delete selected;Delete selected -Log level;Log level -Log message;Log message -Time;Time -Version;Version -You are running moonlight version;You are running moonlight version -Operating system;Operating system -Moonlight is running on;Moonlight is running on -Memory usage;Memory usage -Moonlight is using;Moonlight is using -of memory;of memory -Cpu usage;Cpu usage -Refresh;Refresh -Send a message to all users;Send a message to all users -IP;IP -URL;URL -Device;Device -Change url;Change url -Message;Message -Enter message;Enter message -Enter the message to send;Enter the message to send -Confirm;Confirm -Are you sure?;Are you sure? -Enter url;Enter url -An unknown error occured while starting backup deletion;An unknown error occured while starting backup deletion -Success;Success -Backup URL successfully copied to your clipboard;Backup URL successfully copied to your clipboard -Backup restore started;Backup restore started -Backup successfully restored;Backup successfully restored -Register for;Register for -Core;Core -Logs;Logs -AuditLog;AuditLog -SecurityLog;SecurityLog -ErrorLog;ErrorLog -Resources;Resources -WinSCP cannot be launched here;WinSCP cannot be launched here -Create a new folder;Create a new folder -Enter a name;Enter a name -File upload complete;File upload complete -New server;New server -Sessions;Sessions -New user;New user -Created at;Created at -Mail template not found;Mail template not found -Missing admin permissions. This attempt has been logged ;) -Address;Address -City;City -State;State -Country;Country -Totp;Totp -Discord;Discord -Subscription;Subscription -None;None -No user with this id found;No user with this id found -Back to list;Back to list -New domain;New domain -Reset password;Reset password -Password reset;Password reset -Reset the password of your account;Reset the password of your account -Wrong here?;Wrong here? -A user with this email can not be found;A user with this email can not be found -Passwort reset successfull. Check your mail;Passwort reset successfull. Check your mail -Discord bot;Discord bot -New image;New image -Description;Description -Uuid;Uuid -Enter tag name;Enter tag name -Remove;Remove -No tags found;No tags found -Enter docker image name;Enter docker image name -Tags;Tags -Docker images;Docker images -Default image;Default image -Startup command;Startup command -Install container;Install container -Install entry;Install entry -Configuration files;Configuration files -Startup detection;Startup detection -Stop command;Stop command -Successfully saved image;Successfully saved image -No docker images found;No docker images found -Key;Key -Default value;Default value -Allocations;Allocations -No variables found;No variables found -Successfully added image;Successfully added image -Password change for;Password change for -of;of -New node;New node -Fqdn;Fqdn -Cores used;Cores used -used;used -5.15.90.1-microsoft-standard-WSL2 - amd64;5.15.90.1-microsoft-standard-WSL2 - amd64 -Host system information;Host system information -0;0 -Docker containers running;Docker containers running -details;details -1;1 -2;2 -DDos;DDos -No ddos attacks found;No ddos attacks found -Node;Node -Date;Date -DDos attack started;DDos attack started -packets;packets -DDos attack stopped;DDos attack stopped - packets; packets -Stop all;Stop all -Kill all;Kill all -Network in;Network in -Network out;Network out -Kill all servers;Kill all servers -Do you really want to kill all running servers?;Do you really want to kill all running servers? -Change power state for;Change power state for -to;to -Stop all servers;Stop all servers -Do you really want to stop all running servers?;Do you really want to stop all running servers? -Manage ;Manage -Manage user ;Manage user -Reloading;Reloading -Update;Update -Updating;Updating -Successfully updated user;Successfully updated user -Discord id;Discord id -Discord username;Discord username -Discord discriminator;Discord discriminator -The Name field is required.;The Name field is required. -An error occured while logging you in;An error occured while logging you in -You need to enter an email address;You need to enter an email address -You need to enter a password;You need to enter a password -You need to enter a password with minimum 8 characters in lenght;You need to enter a password with minimum 8 characters in length -Proccessing;Proccessing -The FirstName field is required.;The FirstName field is required. -The LastName field is required.;The LastName field is required. -The Address field is required.;The Address field is required. -The City field is required.;The City field is required. -The State field is required.;The State field is required. -The Country field is required.;The Country field is required. -Street and house number requered;Street and house number requered -Max lenght reached;Max lenght reached -Server;Server -stopped;stopped -Cleanups;Cleanups -executed;executed -Used clanup;Used clanup -Enable;Enable -Disabble;Disabble -Disable;Disable -Addons;Addons -Javascript version;Javascript version -Javascript file;Javascript file -Select javascript file to execute on start;Select javascript file to execute on start -Submit;Submit -Processing;Processing -Go up;Go up -Running cleanup;Running cleanup -servers;servers -Select folder to move the file(s) to;Select folder to move the file(s) to -Paper version;Paper version -Join2Start;Join2Start -Server reset;Server reset -Reset;Reset -Resetting;Resetting -Are you sure you want to reset this server?;Are you sure you want to reset this server? -Are you sure? This cannot be undone;Are you sure? This cannot be undone -Resetting server;Resetting server -Deleted file;Deleted file -Reinstalling server;Reinstalling server -Uploading files;Uploading files -complete;complete -Upload complete;Upload complete -Security;Security -Subscriptions;Subscriptions -2fa Code;2fa Code -Your account is secured with 2fa;Your account is secured with 2fa -anyone write a fancy text here?;anyone write a fancy text here? -Activate 2fa;Activate 2fa -2fa apps;2fa apps -Use an app like ;Use an app like -or;or -and scan the following QR Code;and scan the following QR Code -If you have trouble using the QR Code, select manual input in the app and enter your email and the following code:;If you have trouble using the QR Code, select manual input in the app and enter your email and the following code: -Finish activation;Finish activation -2fa Code requiered;2fa Code requiered -New password;New password -Secure your account;Secure your account -2fa adds another layer of security to your account. You have to enter a 6 digit code in order to login.;2fa adds another layer of security to your account. You have to enter a 6 digit code in order to login. -New subscription;New subscription -You need to enter a name;You need to enter a name -You need to enter a description;You need to enter a description -Add new limit;Add new limit -Create subscription;Create subscription -Options;Options -Amount;Amount -Do you really want to delete it?;Do you really want to delete it? -Loading your subscription;Loading your subscription -Searching for deploy node;Searching for deploy node -Searching for available images;Searching for available images -Server details;Server details -Configure your server;Configure your server -Default;Default -You reached the maximum amount of servers for every image of your subscription;You reached the maximum amount of servers for every image of your subscription -Personal information;Personal information -Enter code;Enter code -Server rename;Server rename -Create code;Create code -Save subscription;Save subscription -Enter your information;Enter your information -You need to enter your full name in order to use moonlight;You need to enter your full name in order to use moonlight -No node found;No node found -No node found to deploy to found;No node found to deploy to found -Node offline;Node offline -The node the server is running on is currently offline;The node the server is running on is currently offline -Server not found;Server not found -A server with that id cannot be found or you have no access for this server;A server with that id cannot be found or you don't have access for this server -Compress;Compress -Decompress;Decompress -Moving;Moving -Compressing;Compressing -selected;selected -New website;New website -Plesk servers;Plesk servers -Base domain;Base domain -Plesk server;Plesk server -Ftp;Ftp -No SSL certificate found;No SSL certificate found -Ftp Host;Ftp Host -Ftp Port;Ftp Port -Ftp Username;Ftp Username -Ftp Password;Ftp Password -Use;Use -SSL Certificates;SSL Certificates -SSL certificates;SSL certificates -Issue certificate;Issue certificate -New plesk server;New plesk server -Api url;Api url -Host system offline;Host system offline -The host system the website is running on is currently offline;The host system the website is running on is currently offline -No SSL certificates found;No SSL certificates found -No databases found for this website;No databases found for this website -The name should be at least 8 characters long;The name should be at least 8 characters long -The name should only contain of lower case characters and numbers;The name should only contain of lower case characters and numbers -Error from plesk;Error from plesk -Host;Host -Username;Username -SRV records cannot be updated thanks to the cloudflare api client. Please delete the record and create a new one;SRV records cannot be updated thanks to the cloudflare api client. Please delete the record and create a new one -The User field is required.;The User field is required. -You need to specify a owner;You need to specify a owner -You need to specify a image;You need to specify a image -Api Url;Api Url -Api Key;Api Key -Duration;Duration -Enter duration of subscription;Enter duration of subscription -Copied code to clipboard;Copied code to clipboard -Invalid or expired subscription code;Invalid or expired subscription code -Current subscription;Current subscription -You need to specify a server image;You need to specify a server image -CPU;CPU -Hour;Hour -Day;Day -Month;Month -Year;Year -All time;All time -This function is not implemented;This function is not implemented -Domain details;Domain details -Configure your domain;Configure your domain -You reached the maximum amount of domains in your subscription;You reached the maximum amount of domains in your subscription -You need to specify a shared domain;You need to specify a shared domain -A domain with this name does already exist for this shared domain;A domain with this name does already exist for this shared domain -The Email field is required.;The Email field is required. -The Password field is required.;The Password field is required. -The ConfirmPassword field is required.;The ConfirmPassword field is required. -Passwords need to match;Passwords need to match -Cleanup exception;Cleanup exception -No shared domain found;No shared domain found -Searching for deploy plesk server;Searching for deploy plesk server -No plesk server found;No plesk server found -No plesk server found to deploy to;No plesk server found to deploy to -No node found to deploy to;No node found to deploy to -Website details;Website details -Configure your website;Configure your website -The name cannot be longer that 32 characters;The name cannot be longer that 32 characters -The name should only consist of lower case characters;The name should only consist of lower case characters -News;News -Title...;Title... -Enter text...;Enter text... -Saving...;Saving... -Deleting...;Deleting... -Delete post;Delete post -Do you really want to delete the post ";Do you really want to delete the post " -You have no domains;You don't have domains -We were not able to find any domains associated with your account;We were not able to find any domains associated with your account -You have no websites;You have no websites -We were not able to find any websites associated with your account;We were not able to find any websites associated with your account -Guest;Guest -You need a domain;You need a domain -New post;New post -New entry;New entry diff --git a/Moonlight/defaultstorage/resources/lang/fr_fr.lang b/Moonlight/defaultstorage/resources/lang/fr_fr.lang deleted file mode 100644 index 3422fa1c..00000000 --- a/Moonlight/defaultstorage/resources/lang/fr_fr.lang +++ /dev/null @@ -1,778 +0,0 @@ -Open support;Assistance ouverte -About us;À propos de nous -Imprint;Imprimer -Privacy;Confidentialité -Login;Se connecter -Register;S'enregistrer -Insert brand name...;Insérer le nom de la marque... -Save and continue;Sauvegarder et continuer -Saving;Sauvegarde -Configure basics;Configurer les bases -Brand name;Nom de l'entreprise -test;test -Insert first name...;Insérer le prénom... -Insert last name...;Insérer le nom de famille... -Insert email address...;Insérer l'adresse e-mail... -Add;Ajouter -Adding...;Ajout... -Add admin accounts;Ajouter des comptes administrateur -First name;Prénom -Last name;Nom de famille -Email address;Adresse e-mail -Enter password;Entrer le mot de passe -Next;Suivant -Back;Retour -Configure features;Configurer les fonctionnalités -Support chat;Chat d'assistance -Finish;Finition -Finalize installation;Finaliser l'installation -Moonlight basic settings successfully configured;Paramètres de base Moonlight configurés avec succès -Ooops. This page is crashed;Oups. Cette page est plantée. -This page is crashed. The error has been reported to the moonlight team. Meanwhile you can try reloading the page;Cette page est plantée. L'erreur a été signalée à l'équipe Moonlight. En attendant, vous pouvez essayer de recharger la page -Setup complete;Configuration terminée -It looks like this moonlight instance is ready to go;Cette instance Moonlight est prête -User successfully created;Utilisateur créé avec succès -Ooops. Your moonlight client is crashed;Oups. Votre client moonlight est planté -This error has been reported to the moonlight team;Cette erreur a été signalée à l'équipe Moonlight -Sign In;Se connecter -Sign in to start with moonlight;Connectez-vous pour commencer avec Moonlight -Sign in with Discord;Connectez-vous avec Discord -Or with email;Ou avec e-mail -Forgot password?;Mot de passe oublié? -Sign-in;Se connecter -Not registered yet?;Pas encore inscrit? -Sign up;S'inscrire -Authenticating;Authentification... -Sign in with Google;Connectez-vous avec Google -Working;En fonctionnement... -Error;Erreur -Email and password combination not found;Combinaison e-mail et mot de passe introuvable -Email;E-mail -Password;Mot de passe -Account settings;Paramètres du compte -Logout;Se déconnecter -Dashboard;Tableau de bord -Order;Commande -Website;Site internet -Database;Base de données -Domain;Domaine -Servers;Serveurs -Websites;Sites Internet -Databases;Bases de données -Domains;Domaines -Changelog;Journal des modifications -Firstname;Prénom -Lastname;Nom de famille -Repeat password;Répéter le mot de passe -Sign Up;S'inscrire -Sign up to start with moonlight;Inscrivez-vous pour commencer avec moonlight -Sign up with Discord;Inscrivez-vous avec Discord -Sign up with Google;S'inscrire avec Google -Sign-up;S'inscrire -Already registered?;Déjà enregistré? -Sign in;Se connecter -Create something new;Créer quelque chose de nouveau -Create a gameserver;Créer un serveur de jeu -A new gameserver in just a few minutes;Un nouveau serveur de jeu en quelques minutes -Create a database;Créer une base de données -A quick way to store your data and manage it from all around the world;Un moyen rapide de stocker vos données et de les gérer partout dans le monde -Manage your services;Gérez vos prestations -Manage your gameservers;Gérez vos serveurs de jeux -Adjust your gameservers;Ajustez vos serveurs de jeu -Manage your databases;Gérez vos bases de données -Insert, delete and update the data in your databases;Insérer, supprimer et mettre à jour les données dans vos bases de données -Create a website;Créer un site internet -Make your own websites with a webspace;Créez vos propres sites internet avec un espace Web -Create a domain;Créer un domaine -Make your servvices accessible throught your own domain;Rendez vos services accessibles via votre propre domaine -Manage your websites;Gérer vos sites internet -Modify the content of your websites;Modifier le contenu de vos sites internet -Manage your domains;Gérez vos domaines -Add, edit and delete dns records;Ajouter, modifier et supprimer des enregistrements DNS -Admin;Admin -System;Système -Overview;Aperçu -Manager;Manager -Cleanup;Nettoyer -Nodes;Nœuds -Images;Images -aaPanel;aaPanel -Users;Utilisateurs -Support;Assistance -Statistics;Statistiques -No nodes found. Start with adding a new node;Aucun nœud trouvé. Commencez par ajouter un nouveau nœud -Nodename;Nom du nœud -FQDN;Nom de domaine complet -Create;Créer -Creating;Création... -Http port;Port HTTP -Sftp port;Port Sftp -Moonlight daemon port;Port du daemon Moonlight -SSL;SSL -CPU Usage;L'utilisation du processeur -In %;En % -Memory;Mémoire -Used / Available memory;Mémoire utilisée / disponible -Storage;Stockage -Available storage;Stockage disponible -Add a new node;Ajouter un nouveau nœud -Delete;Supprimer -Deleting;Suppression... -Edit;Modifier -Token Id;Token Id -Token;Token -Save;Sauvegarder -Setup;Configuration -Open a ssh connection to your node and enter;Ouvrez une connexion ssh à votre nœud et entrez -and paste the config below. Then press STRG+O and STRG+X to save;et collez la configuration ci-dessous. Appuyez ensuite sur CTRL+O et CTRL+X pour enregistrer -Before configuring this node, install the daemon;Avant de configurer ce nœud, installez le deamon -Delete this node?;Supprimer ce nœud ? -Do you really want to delete this node;Voulez-vous vraiment supprimer ce nœud? -Yes;Oui -No;Non -Status;Statut -Adding;Ajout -Port;Port -Id;Id -Manage;Gérer -Create new server;Créer un nouveau serveur -No servers found;Aucun serveur trouvé -Server name;Nom du serveur -Cpu cores;Cœurs de processeur -Disk;Stockage -Image;Image -Override startup;Ignorer le démarrage -Docker image;Image Docker -CPU Cores (100% = 1 Core);Cœurs de processeur (100% = 1 cœur) -Server successfully created;Serveur créé avec succès -Name;Nom -Cores;Noyaux -Owner;Propriétaire -Value;Valeur -An unknown error occured;Une erreur inconnue s'est produite -No allocation found;Aucune attribution trouvée -Identifier;Identifiant -UuidIdentifier;Identifiant Uuid -Override startup command;Remplacer la commande de démarrage -Loading;Chargement... -Offline;Hors ligne -Connecting;Connexion... -Start;Démarrer -Restart;Redémarrer -Stop;Arrêt -Shared IP;IP partagée -Server ID;Identifiant du serveur -Cpu;CPU -Console;Console -Files;Fichiers -Backups;Sauvegardes -Network;Réseau -Plugins;Plugins -Settings;Paramètres -Enter command;Entrez la commande -Execute;Exécuter -Checking disk space;Vérification de l'espace disque -Updating config files;Mise à jour des fichiers de configuration -Checking file permissions;Vérification des autorisations de fichiers -Downloading server image;Téléchargement de l'image du serveur -Downloaded server image;Image de serveur téléchargée -Starting;Démarrage -Online;En ligne -Kill;Kill -Stopping;Arrêt -Search files and folders;Rechercher des fichiers et des dossiers -Launch WinSCP;Lancer WinSCP -New folder;Nouveau dossier -Upload;Upload -File name;Nom de fichier -File size;Taille du fichier -Last modified;Dernière modification -Cancel;Annuler -Canceling;Annulation -Running;En cours d'exécution -Loading backups;Chargement des sauvegardes -Started backup creation;Création de sauvegarde démarrée -Backup is going to be created;La sauvegarde va être crée -Rename;Renommer -Move;Déplacer -Archive;Archiver -Unarchive;Désarchiver -Download;Télécharger -Starting download;Démarrage du téléchargement -Backup successfully created;Sauvegarde crée avec succès -Restore;Restaurer -Copy url;Copier le lien -Backup deletion started;La suppression de la sauvegarde a commencé -Backup successfully deleted;Sauvegarde supprimée avec succès -Primary;Primaire -This feature is currently not available;Cette fonctionnalité n'est pas disponible actuellement -Send;Envoyer -Sending;Envoi en cours -Welcome to the support chat. Ask your question here and we will help you;Bienvenue sur le chat d'assistance. Posez votre question ici et nous vous aiderons - minutes ago; minutes -just now;à l'instant -less than a minute ago;il y a moins d'une minute -1 hour ago;Il ya 1 heure -1 minute ago;il y a 1 minute -Failed;Échec - hours ago; Heures -Open tickets;Tickets ouverts -Actions;Actions -No support ticket is currently open;Aucun ticket d'assistance n'est actuellement ouvert -User information;Informations de l'utilisateur -Close ticket;Fermer le ticket -Closing;Fermeture... -The support team has been notified. Please be patient;L'équipe d'assistance a été prévenue. S'il vous plaît soyez patient -The ticket is now closed. Type a message to open it again;Le ticket est maintenant fermé. Tapez un message pour l'ouvrir à nouveau -1 day ago;il y a 1 jour -is typing;est en train d'écrire... -are typing;sont en train de taper -No domains available;Aucun domaine disponible -Shared domains;Domaines partagés -Shared domain;Domaine partagé -Shared domain successfully deleted;Domaine partagé supprimé avec succès -Shared domain successfully added;Domaine partagé ajouté avec succès -Domain name;Nom de domaine -DNS records for;enregistrements DNS pour -Fetching dns records;Récupération des enregistrements DNS -No dns records found;Aucun enregistrement DNS trouvé -Content;Contenu -Priority;Priorité -Ttl;TTL -Enable cloudflare proxy;Activer le proxy cloudflare -CF Proxy;Proxy CF - days ago; Jours -Cancle;Annuler -An unexpected error occured;Une erreur inattendue s'est produite -Testy;Testy -Error from cloudflare api;Erreur de l'API cloudflare -Profile;Profil -No subscription available;Aucun abonnement disponible -Buy;Acheter -Redirecting;Redirection -Apply;Appliquer -Applying code;Appliquer le code -Invalid subscription code;Code d'abonnement invalide -Cancel Subscription;Annuler l'abonnement -Active until;Actif jusqu'à -We will send you a notification upon subscription expiration;Nous vous enverrons une notification à l'expiration de l'abonnement -This token has been already used;Ce jeton a déjà été utilisé -New login for;Nouvelle connexion pour -No records found for this day;Aucun enregistrement trouvé pour ce jour -Change;Changer -Changing;En changement -Minecraft version;Version Minecraft -Build version;Version -Server installation is currently running;L'installation du serveur est en cours -Selected;Choisi -Move deleted;Déplacement supprimé -Delete selected;Supprimer sélectionnée -Log level;Niveau de journalisation -Log message;Message de journal -Time;Temps -Version;Version -You are running moonlight version;Vous utilisez la version Moonlight -Operating system;Système opérateur -Moonlight is running on;Moonlight est en cours d'exécution -Memory usage;Utilisation de la mémoire -Moonlight is using;Moonlight est utilisé -of memory;de mémoire -Cpu usage;L'utilisation du processeur -Refresh;Rafraîchir -Send a message to all users;Envoyer un message à tous les utilisateurs -IP;IP -URL;URL -Device;Appareil -Change url;Modifier l'URL -Message;Message -Enter message;Entrez le message -Enter the message to send;Entrez le message à envoyer -Confirm;Confirmer -Are you sure?;Etes-vous sûr? -Enter url;Entrer l'URL -An unknown error occured while starting backup deletion;Une erreur inconnue s'est produite lors du démarrage de la suppression de la sauvegarde -Success;Succès -Backup URL successfully copied to your clipboard;URL de sauvegarde copiée avec succès dans votre presse-papiers -Backup restore started;La restauration de la sauvegarde a commencé -Backup successfully restored;Sauvegarde restaurée avec succès -Register for;S'inscrire à -Core;Cœur -Logs;Logs -AuditLog;AuditLog -SecurityLog;SecurityLog -ErrorLog;ErrorLog -Resources;Ressources -WinSCP cannot be launched here;WinSCP ne peut pas être lancé ici -Create a new folder;Créer un nouveau dossier -Enter a name;Entrez un nom -File upload complete;Téléchargement du fichier terminé -New server;Nouveau serveur -Sessions;Session -New user;Nouvel utilisateur -Created at;Créé à -Mail template not found;Modèle de courrier introuvable -Missing admin permissions. This attempt has been logged ;Autorisations d'administrateur manquantes. Cette tentative a été enregistrée -Address;Adresse -City;Ville -State;État -Country;Pays -Totp;Totp -Discord;Discord -Subscription;Abonnement -None;Aucun -No user with this id found;Aucun utilisateur avec cet identifiant n'a été trouvé -Back to list;Retour à la liste -New domain;Nouveau domaine -Reset password;Réinitialiser le mot de passe -Password reset;Réinitialisation du mot de passe -Reset the password of your account;Réinitialiser le mot de passe de votre compte -Wrong here?;Faux ici? -A user with this email can not be found;Un utilisateur avec cet e-mail est introuvable -Password reset successfull. Check your mail;Réinitialisation du mot de passe réussie. Vérifier votre e-mail -Discord bot;Discord Bot -New image;Nouvelle image -Description;Description -Uuid;UUID -Enter tag name;Entrez le nom de la balise -Remove;Retirer -No tags found;Aucun tag trouvé -Enter docker image name;Entrez le nom de l'image Docker -Tags;Mots clés -Docker images;Images Docker -Default image;Image par défaut -Startup command;Commande de démarrage -Install container;Installer le conteneur -Install entry;Installer l'entrée -Configuration files;Fichiers de configuration -Startup detection;Détection de démarrage -Stop command;Commande d'arrêt -Successfully saved image;Image enregistrée avec succès -No docker images found;Aucune image docker trouvée -Key;Clé -Default value;Valeur par défaut -Allocations;Allocations -No variables found;Aucune variable trouvée -Successfully added image;Image ajoutée avec succès -Password change for;Changement de mot de passe pour -of;de -New node;Nouveau nœud -Fqdn;Fqdn -Cores used;Cœurs utilisés -used;utilisé -5.15.90.1-microsoft-standard-WSL2 - amd64;5.15.90.1-microsoft-standard-WSL2 - amd64 -Host system information;Informations sur le système hôte -0;0 -Docker containers running;Conteneurs Docker en cours d'exécution -details;Détails -1;1 -2;2 -DDos;DDos -No ddos attacks found;Aucune attaque ddos trouvée -Node;Nœud -Date;Date -DDos attack started;L'attaque DDos a commencé -packets;paquets -DDos attack stopped;Attaque DDos stoppée - packets; paquets -Stop all;Arrête tout -Kill all;Tuer tous -Network in;Réseau dans -Network out;Sortie réseau -Kill all servers;Tuez tous les serveurs -Do you really want to kill all running servers?;Voulez-vous vraiment tuer tous les serveurs en cours d'exécution? -Change power state for;Changer l'état de l'alimentation pour -to;à -Stop all servers;Arrêtez tous les serveurs -Do you really want to stop all running servers?;Voulez-vous vraiment arrêter tous les serveurs en cours d'exécution? -Manage ;Gérer -Manage user ;Gérer l'utilisateur -Reloading;Rechargement... -Update;Mise à jour -Updating;Mise à jour... -Successfully updated user;Utilisateur mis à jour avec succès -Discord id;Discord ID -Discord username;Nom d'utilisateur Discord -Discord discriminator;Discord Tag -The Name field is required.;Il est requis de compléter le champ correspondant au nom. -An error occured while logging you in;Une erreur s'est produite lors de votre connexion -You need to enter an email address;Vous devez saisir une adresse e-mail -You need to enter a password;Vous devez entrer un mot de passe -You need to enter a password with minimum 8 characters in lenght;Vous devez saisir un mot de passe d'au moins 8 caractères -Proccessing;Traitement... -The FirstName field is required.;Le champ Prénom est obligatoire. -The LastName field is required.;Le champ Nom est obligatoire. -The Address field is required.;Le champ Adresse est obligatoire. -The City field is required.;Le champ Ville est obligatoire. -The State field is required.;Le champ État est obligatoire. -The Country field is required.;Le champ Pays est obligatoire. -Street and house number requered;Rue et numéro de maison requis -Max lenght reached;Longueur max atteinte -Server;Serveur -stopped;arrêté -Cleanups;Nettoyages -executed;réalisé -Used clanup;nettoyage utilisé -Enable;Activer -Disable;Désactiver -Addons;Compléments -Javascript version;Version Javascript -Javascript file;Fichier Javascript -Select javascript file to execute on start;Sélectionnez le fichier javascript à exécuter au démarrage -Submit;Soumettre -Processing;Traitement... -Go up;monter -Running cleanup;Nettoyage en cours -servers;Serveurs -Select folder to move the file(s) to;Sélectionnez le dossier dans lequel déplacer le(s) fichier(s) -Paper version;Version paper -Join2Start;Join2Start -Server reset;Réinitialisation du serveur -Reset;Réinitialiser -Resetting;Réinitialisation... -Are you sure you want to reset this server?;Voulez-vous vraiment réinitialiser ce serveur? -Are you sure? This cannot be undone;Etes-vous sûr? cela ne peut être annulé -Resetting server;Réinitialisation du serveur... -Deleted file;Fichier supprimé -Reinstalling server;Réinstallation du serveur -Uploading files;Téléchargement des fichiers -complete;complet -Upload complete;Téléchargement complet -Security;Sécurité -Subscriptions;Abonnements -2fa Code;Code 2FA -Your account is secured with 2fa;Votre compte est sécurisé avec 2fa -anyone write a fancy text here?;quelqu'un écrit un texte de fantaisie ici? -Activate 2fa;Activer 2FA -2fa apps;applications 2FA -Use an app like ;Utilisez une application comme -or;ou -and scan the following QR Code;et scannez le QR Code suivant -If you have trouble using the QR Code, select manual input in the app and enter your email and the following code:;Si vous rencontrez des difficultés pour utiliser le QR Code, sélectionnez la saisie manuelle dans l'application et entrez votre email et le code suivant: -Finish activation;Terminer l'activation -2fa Code requiered;Code 2FA requis -New password;Nouveau mot de passe -Secure your account;Sécurisez votre compte -2fa adds another layer of security to your account. You have to enter a 6 digit code in order to login.;2FA ajoute une autre couche de sécurité à votre compte. Vous devez entrer un code à 6 chiffres pour vous connecter. -New subscription;Nouvel abonnement -You need to enter a name;Vous devez entrer un nom -You need to enter a description;Vous devez entrer une description -Add new limit;Ajouter une nouvelle limite -Create subscription;Créer un abonnement -Options;Options -Amount;Montant -Do you really want to delete it?;Voulez-vous vraiment le supprimer? -Loading your subscription;Chargement de votre abonnement -Searching for deploy node;Recherche d'un nœud de déploiement -Searching for available images;Recherche d'images disponibles -Server details;Détails du serveur -Configure your server;Configurez votre serveur -Default;Défaut -You reached the maximum amount of servers for every image of your subscription;Vous avez atteint le nombre maximum de serveurs pour chaque image de votre abonnement. -Personal information;Informations personnelles -Enter code;Entrez le code -Server rename;Renommer le serveur -Create code;créer un code -Save subscription;Enregistrer l'abonnement -Enter your information;Entrez vos informations -You need to enter your full name in order to use moonlight;Vous devez entrer votre nom complet pour utiliser moonlight -No node found;Aucun nœud trouvé -No node found to deploy to found;Aucun noeud trouvé à monter -Node offline;Nœud hors ligne -The node the server is running on is currently offline;Le nœud sur lequel le serveur s'exécute est actuellement hors ligne -Server not found;serveur introuvable -A server with that id cannot be found or you have no access for this server;Un serveur avec cet identifiant est introuvable ou vous n'avez pas accès à ce serveur -Compress;Compresser -Decompress;Décompresser -Moving;Déplacement... -Compressing;Compression... -selected;choisi -New website;Nouveau site internet -Plesk servers;Serveurs Plesk -Base domain;Domaine de base -Plesk server;Serveur Plesk -Ftp;FTP -No SSL certificate found;Aucun certificat SSL trouvé -Ftp Host;Hôte FTP -Ftp Port;Port FTP -Ftp Username;Nom d'utilisateur FTP -Ftp Password;Mot de passe FTP -Use;Utiliser -SSL Certificates;Certificats SSL -SSL certificates;Certificats SSL -Issue certificate;Délivrer un certificat -New plesk server;Nouveau serveur plesk -Api url;URL de l'API -Host system offline;Système hôte hors ligne -The host system the website is running on is currently offline;Le système hôte sur lequel le site internet s'exécute est actuellement hors ligne -No SSL certificates found;Aucun certificat SSL trouvé -No databases found for this website;Aucune base de données trouvée pour ce site internet -The name should be at least 8 characters long;Le nom doit comporter au moins 8 caractères -The name should only contain of lower case characters and numbers;Le nom ne doit contenir que des caractères minuscules et des chiffres -Error from plesk;Erreur de plesk -Host;Hôte -Username;Nom d'utilisateur -SRV records cannot be updated thanks to the cloudflare api client. Please delete the record and create a new one;Les enregistrements SRV ne peuvent pas être mis à jour grâce au client api cloudflare. Veuillez supprimer l'enregistrement et en créer un nouveau -The User field is required.;Le champ Utilisateur est obligatoire. -You need to specify a owner;Vous devez spécifier un propriétaire -You need to specify a image;Vous devez spécifier une image -Api Url;URL de l'API -Api Key;Clé API -Duration;Durée -Enter duration of subscription;Saisir la durée de l'abonnement -Copied code to clipboard;Code copié dans le presse-papiers -Invalid or expired subscription code;Code d'abonnement invalide ou expiré -Current subscription;Abonnement actuel -You need to specify a server image;Vous devez spécifier une image de serveur -CPU;CPU -Hour;Heure -Day;Jour -Month;Mois -Year;Année -All time;Tout le temps -This function is not implemented;Cette fonction n'est pas implémentée -Domain details;Détails du domaine -Configure your domain;Configurez votre domaine -You reached the maximum amount of domains in your subscription;Vous avez atteint le nombre maximum de domaines dans votre abonnement -You need to specify a shared domain;Vous devez spécifier un domaine partagé -A domain with this name does already exist for this shared domain;Un domaine portant ce nom existe déjà pour ce domaine partagé -The Email field is required.;Le champ E-mail est obligatoire. -The Password field is required.;Le champ Mot de passe est obligatoire. -The ConfirmPassword field is required.;Le champ Confirmer le mot de passe est obligatoire. -Passwords need to match;Les mots de passe doivent correspondre -Cleanup exception;Exception de nettoyage -No shared domain found;Aucun domaine partagé trouvé -Searching for deploy plesk server;Recherche de déploiement du serveur Plesk -No plesk server found;Aucun serveur plesk trouvé -No plesk server found to deploy to;Aucun serveur plesk trouvé pour le déploiement -No node found to deploy to;Aucun nœud trouvé pour le déploiement -Website details;Détails du site internet -Configure your website;Configurez votre site internet -The name cannot be longer that 32 characters;Le nom ne peut pas dépasser 32 caractères -The name should only consist of lower case characters;Le nom ne doit être composé que de caractères minuscules -News;Nouvelles -Title...;Titre... -Enter text...;Entrez du texte... -Saving...;Sauvegarde... -Deleting...;Suppression... -Delete post;Supprimer le message -Do you really want to delete the post ";Voulez-vous vraiment supprimer le message " -You have no domains;Vous n'avez aucun domaine -We were not able to find any domains associated with your account;Nous n'avons trouvé aucun domaine associé à votre compte -You have no websites;Vous n'avez pas de sites internet -We were not able to find any websites associated with your account;Nous n'avons trouvé aucun site internet associé à votre compte -Guest;Invité -You need a domain;Vous avez besoin d'un domaine -New post;Nouveau poste -New entry;Nouvelle entrée -You have no servers;Vous n'avez pas de serveurs -We were not able to find any servers associated with your account;Nous n'avons trouvé aucun serveur associé à votre compte -Error creating server on wings;Erreur lors de la création du serveur sur les ailes -An unknown error occured while restoring a backup;Une erreur inconnue s'est produite lors de la restauration d'une sauvegarde -Error from daemon;Erreur du daemon -End;Fin -Cloud panel;Cloud panel -Cloud panels;Cloud panels -New cloud panel;Nouveau Panel cloud -You need to enter an api key;Vous devez entrer une clé API -Webspaces;Espaces webs -New webspace;Nouvel espace web -The uploaded file should not be bigger than 100MB;Le fichier téléchargé ne doit pas dépasser 100 Mo -An unknown error occured while uploading a file;Une erreur inconnue s'est produite lors du téléchargement d'un fichier -No databases found for this webspace;Aucune base de données trouvée pour cet espace Web -Sftp;SFTP -Sftp Host;Hôte Sftp -Sftp Port;Port Sftp -Sftp Username;Nom d'utilisateur Sftp -Sftp Password;Mot de passe Sftp -Lets Encrypt certificate successfully issued;Certificat Lets Encrypt émis avec succès -Add shared domain;Ajouter un domaine partagé -Webspace;Espace web -You reached the maximum amount of websites in your subscription;Vous avez atteint le nombre maximum de sites internet dans votre abonnement -Searching for deploy web host;Recherche d'hébergeur web déployé -Webspace details;Détails de l'espace Web -Web host;Hébergeur -Configure your webspaces;Configurez vos espaces web -You reached the maximum amount of webspaces in your subscription;Vous avez atteint le nombre maximum d'espaces Web dans votre abonnement -Create a webspace;Créer un espace Web -Manage your webspaces;Gérez vos espaces web -Modify the content of your webspaces;Modifier le contenu de vos espaces web -Successfully updated password;Mot de passe mis à jour avec succès -An unknown error occured while sending your message;Une erreur inconnue s'est produite lors de l'envoi de votre message -Open chats;Ouvrir les messages -No message sent yet;Aucun message envoyé pour le moment -Support ticket open;Ticket d'assistance ouvert -Support ticket closed;Ticket d'assistance fermé -Your connection has been paused;Votre connexion a été interrompue -We paused your connection because of inactivity. The resume just focus the tab and wait a few seconds;Nous avons suspendu votre connexion pour cause d'inactivité. Passez à l'onglet et attendez quelques secondes -Failed to reconnect to the moonlight servers;Échec de la reconnexion aux serveurs Moonlight -We were unable to reconnect to moonlight. Please refresh the page;Nous n'avons pas pu nous reconnecter à moonlight. Veuillez actualiser la page -Failed to reconnect to the moonlight servers. The connection has been rejected;Échec de la reconnexion aux serveurs Moonlight. La connexion a été rejetée -We were unable to reconnect to moonlight. Most of the time this is caused by an update of moonlight. Please refresh the page;Nous n'avons pas pu nous reconnecter à moonlight. La plupart du temps, cela est causé par une mise à jour du clair de lune. Veuillez actualiser la page -Verifying token, loading user data;Vérification du jeton, chargement des données utilisateur -Reload config;Recharger la configuration -Successfully reloading configuration;Rechargement de la configuration réussi... -Successfully reloaded configuration;Configuration rechargée avec succès -Flows;Flux -Add node;Ajouter un nœud -Web system;Système Internet -Servers with this image;Serveurs avec cette image -You need to specify a user;Vous devez spécifier un utilisateur -Import;Importer -Export;Exporter -Exporting;Exportation -Successfully imported image;Image importée avec succès -Forge version;Forge Version -Fabric version;Fabric Version -Fabric loader version;Fabric Loader Version -Rate;Taux -Hey, can i borrow you for a second?;Hey, je peux vous empruntez une seconde ? -We want to improve our services and get a little bit of feedback how we are currently doing. Please leave us a rating;Nous voulons améliorer nos services et obtenir un peu de rétroaction sur la façon dont nous faisons actuellement. Merci de nous laisser une note: -Thanks for your rating;Merci pour votre évaluation -It would be really kind of you rating us on a external platform as it will help our project very much;Ce serait vraiment gentil de votre part de nous noter sur une plateforme externe car cela aidera beaucoup notre projet -Close;Fermer -Rating saved;Note enregistrée -Group;Groupe -Beta;Bêta -Create a new group;Créer un nouveau groupe -Download WinSCP;Télécharger WinSCP -Show connection details;Afficher les détails de la connexion -New;Nouveau -New file;Nouveau fichier -Connection details;Détails de connexion -Malware;Logiciels malveillants -Create a new file;Créer un nouveau fichier -Edit layout;Modifier la mise en page -Uptime;Disponibilité -Moonlight is online since;Moonlight est en ligne depuis -User;Utilisateur -Databases;Bases de données -Sitzungen;Sitzungen -Active users;Utilisateurs actifs -Search for plugins;Rechercher des plugins -Search;Recherche -Searching;Recherche... -Successfully installed gunshell;Cartouche installée avec succès -Successfully installed fastasyncworldedit;Fastasyncworldedit a été installé avec succès -Successfully installed minimotd;Minimotd installé avec succès -Moonlight health;Statut Moonlight -Healthy;En bonne santé -Successfully saved file;Fichier enregistré avec succès -Unsorted servers;Serveurs non triés -Enter a new name;Entrez un nouveau nom -Sign in with;Se connecter avec -Make your services accessible through your own domain;Rendez vos services accessibles via votre propre domaine -New group;Nouveau groupe -Finish editing layout;Terminer la modification de la mise en page -Remove group;Supprimer le groupe -Hidden in edit mode;Masqué en mode édition -Enter your 2fa code here;Entrez votre code 2FA ici -Two factor authentication;Authentification à deux facteurs -Preferences;Préférences -Streamer mode;Mode diffusion -Scan the QR code and enter the code generated by the app you have scanned it in;Scannez le code QR et entrez le code généré par l'application dans laquelle vous l'avez scanné -Start scan;Lancer l'analyse -Results;Résultats -Scan in progress;Analyse en cours -Debug;Debug -Save changes;Sauvegarder les modifications -Delete domain;Supprimer le domaine -Python version;Version Python -Python file;Fichier Python -Select python file to execute on start;Sélectionnez le fichier python à exécuter au démarrage -You have no webspaces;Vous n'avez pas d'espaces Web -We were not able to find any webspaces associated with your account;Nous n'avons trouvé aucun espace Web associé à votre compte -Backup download successfully started;Le téléchargement de la sauvegarde a démarré avec succès -Error from cloud panel;Erreur du Cloud Panel -Error from wings;Erreur des ailes -Remove link;Supprimer le lien -Your account is linked to a discord account;Votre compte est lié à un compte discord -You are able to use features like the discord bot of moonlight;Vous pouvez utiliser des fonctionnalités telles que le bot discord de Moonlight -The password should be at least 8 characters long;Le mot de passe doit comporter au moins 8 caractères -The name should only consist of lower case characters or numbers;Le nom ne doit être composé que de caractères minuscules ou de chiffres -The requested resource was not found;La ressource demandée n'a pas été trouvée -We were not able to find the requested resource. This can have following reasons;Nous n'avons pas pu trouver la ressource demandée. Cela peut avoir les raisons suivantes -The resource was deleted;La ressource a été supprimée -You have to permission to access this resource;Vous devez être autorisé à accéder à cette ressource -You may have entered invalid data;Vous avez peut-être entré des données invalides -A unknown bug occured;Un bug inconnu s'est produit -An api was down and not proper handled;Une API était en panne et n'était pas correctement gérée -A database with this name does already exist;Une base de données portant ce nom existe déjà -Successfully installed quickshop-hikari;Quickshop-hikari a été installé avec succès -You need to enter a valid domain;Vous devez entrer un domaine valide -2fa code;code 2FA -This feature is not available for;Cette fonction n'est pas disponible pour -Your account is currently not linked to discord;Votre compte n'est actuellement pas lié à discord -To use features like the discord bot, link your moonlight account with your discord account;Pour utiliser des fonctionnalités telles que le bot Discord, liez votre compte Moonlight à votre compte Discord -Link account;Lien de compte -Continue;Continuer -Preparing;Préparation -Make sure you have installed one of the following apps on your smartphone and press continue;Assurez-vous d'avoir installé l'une des applications suivantes sur votre smartphone et appuyez sur continuer -The max lenght for the name is 32 characters;La longueur maximale du nom est de 32 caractères -Successfully installed chunky;Chunky installé avec succès -Successfully installed huskhomes;Hulkhomes installés avec succès -Successfully installed simply-farming;Simple-farming installé avec succès -You need to specify a first name;Vous devez indiquer un prénom -You need to specify a last name;Vous devez spécifier un nom de famille -You need to specify a password;Vous devez spécifier un mot de passe -Please solve the captcha;Merci de résoudre le captcha -The email is already in use;L'e-mail est déjà utilisé -The dns records of your webspace do not point to the host system;Les enregistrements DNS de votre espace Web ne pointent pas vers le système hôte -Scan complete;Analyse terminée -Currently scanning:;Analyse en cours: -Successfully installed dynmap;Dynamap installé avec succès -Successfully installed squaremap;Squaremap installé avec succès -No web host found;Aucun hébergeur trouvé -No web host found to deploy to;Aucun hébergeur trouvé pour le déploiement -Successfully installed sleeper;Sleeper installé avec succès -You need to enter a domain;Vous devez saisir un domaine -Enter a ip;Entrez une ip -Ip Bans;Ip Bans -Ip;Ip -Successfully installed simple-voice-chat;Simple-voice-chat installé avec succès -Successfully installed smithing-table-fix;Smithing-table-fix a été installé avec succès -Successfully installed justplayer-tpa;Justplayer-TPA installé avec succès -Successfully installed ishop;iShop installé avec succès -Successfully installed lifestealre;Lifestealre installé avec succès -Successfully installed lifeswap;Lifeswap installé avec succès -Java version;Java Version -Jar file;Fichier Jar -Select jar to execute on start;Sélectionnez le jar à exécuter au démarrage -A website with this domain does already exist;Un site Web avec ce domaine existe déjà -Successfully installed discordsrv;Discordsrv a été installé avec succès -Reinstall;Réinstaller -Reinstalling;Réinstallation -Successfully installed freedomchat;Freedomchat installé avec succès -Leave empty for the default background image;Laisser vide pour l'image d'arrière-plan par défaut -Background image url;URL de l'image d'arrière-plan -of CPU used;du processeur utilisé -memory used;mémoire utilisée -163;163 -172;172 -Sentry;Sentinelle -Sentry is enabled;La sentinelle est activée -Successfully installed mobis-homes;Mobis-homes installés avec succès -Your moonlight account is disabled;Votre compte moonlight est désactivé -Your moonlight account is currently disabled. But dont worry your data is still saved;Votre compte Moonlight est actuellement désactivé. Mais ne vous inquiétez pas, vos données sont toujours enregistrées -You need to specify a email address;Vous devez indiquer une adresse e-mail -A user with that email does already exist;Un utilisateur avec cet email existe déjà -Successfully installed buildmode;buildmode installé avec succès -Successfully installed plasmo-voice;Plasmo-Voice installé avec succès -157;157 -174;174 -158;158 -Webspace not found;Espace Web introuvable -A webspace with that id cannot be found or you have no access for this webspace;Un espace Web avec cet identifiant est introuvable ou vous n'avez pas accès à cet espace Web -No plugin download for your minecraft version found;Aucun téléchargement de plugin pour votre version de minecraft trouvé -Successfully installed gamemode-alias;Gamemode-alias installé avec succès -228;228 -User;Utilisateur -Send notification;Envoyer une notification -Successfully saved changes;Modifications enregistrées avec succès -Archiving;Archivage... -Server is currently not archived;Le serveur n'est actuellement pas archivé -Add allocation;Ajouter une allocation -231;231 -175;175 -Dotnet version;Version Dotnet -Dll file;Fichier DLL -Select dll to execute on start;Sélectionnez le dll à exécuter au démarrage diff --git a/Moonlight/defaultstorage/resources/lang/ro_ro.lang b/Moonlight/defaultstorage/resources/lang/ro_ro.lang deleted file mode 100644 index 6517bd58..00000000 --- a/Moonlight/defaultstorage/resources/lang/ro_ro.lang +++ /dev/null @@ -1,778 +0,0 @@ -Open support;Suport deschis -About us;Despre noi -Imprint;Impresum -Privacy;Confidențialitate -Login;Autentificare -Register;Înregistrare -Insert brand name...;Introduceți numele mărcii... -Save and continue;Salvați și continuați -Saving;Se salvează -Configure basics;Configurare elemente de bază -Brand name;Numele mărcii -test;test -Insert first name...;Introduceți prenumele... -Insert last name...;Introduceți numele de familie... -Insert email address...;Introduceți adresa de email... -Add;Adăugați -Adding...;Se adaugă... -Add admin accounts;Adăugați conturi de administrator -First name;Prenume -Last name;Nume de familie -Email address;Adresă de email -Enter password;Introduceți parola -Next;Următorul -Back;Înapoi -Configure features;Configurați funcționalitățile -Support chat;Asistență prin chat -Finish;Finalizare -Finalize installation;Finalizați instalarea -Moonlight basic settings successfully configured;Setările de bază Moonlight au fost configurate cu succes -Ooops. This page is crashed;Hopa. Această pagină s-a blocat. -This page is crashed. The error has been reported to the moonlight team. Meanwhile you can try reloading the page;Această pagină s-a blocat. Eroarea a fost raportată echipei Moonlight. Între timp, puteți încerca să reîncărcați pagina -Setup complete;Configurare completă -It looks like this moonlight instance is ready to go;Se pare că această instanță Moonlight este gata de utilizare -User successfully created;Utilizator creat cu succes -Ooops. Your moonlight client is crashed;Hopa. Clientul tău Moonlight s-a blocat. -This error has been reported to the moonlight team;Această eroare a fost raportată echipei Moonlight -Sign In;Autentificare -Sign in to start with moonlight;Autentificați-vă pentru a începe cu Moonlight -Sign in with Discord;Autentificare cu Discord -Or with email;Sau cu email -Forgot password?;Ați uitat parola? -Sign-in;Autentificare -Not registered yet?;Încă nu sunteți înregistrat? -Sign up;Înregistrare -Authenticating;Se autentifică... -Sign in with Google;Autentificare cu Google -Working;Se lucrează... -Error;Eroare -Email and password combination not found;Combinarea de email și parolă nu a fost găsită -Email;Email -Password;Parolă -Account settings;Setări cont -Logout;Deconectare -Dashboard;Panou de control -Order;Comandă -Website;Website -Database;Bază de date -Domain;Domeniu -Servers;Servere -Websites;Site-uri web -Databases;Baze de date -Domains;Domenii -Changelog;Jurnal de modificări -Firstname;Prenume -Lastname;Nume de familie -Repeat password;Repetă parola -Sign Up;Înregistrare -Sign up to start with moonlight;Înregistrați-vă pentru a începe cu Moonlight -Sign up with Discord;Înregistrare cu Discord -Sign up with Google;Înregistrare cu Google -Sign-up;Înregistrare -Already registered?;Deja înregistrat? -Sign in;Autentificare -Create something new;Creați ceva nou -Create a gameserver;Creați un server de jocuri -A new gameserver in just a few minutes;Un server de jocuri nou în doar câteva minute -Create a database;Creați o bază de date -A quick way to store your data and manage it from all around the world;O modalitate rapidă de a stoca datele și de a le gestiona din întreaga lume -Manage your services;Gestionați serviciile dumneavoastră -Manage your gameservers;Gestionați serverele dumneavoastră de jocuri -Adjust your gameservers;Reglați serverele dumneavoastră de jocuri -Manage your databases;Gestionați bazele de date -Insert, delete and update the data in your databases;Introduceți, ștergeți și actualizați datele din bazele de date -Create a website;Creați un site web -Make your own websites with a webspace;Creați propriile site-uri web cu un spațiu web -Create a domain;Creați un domeniu -Make your services accessible through your own domain;Faceți serviciile dumneavoastră accesibile prin propriul domeniu -Manage your websites;Gestionați site-urile web -Modify the content of your websites;Modificați conținutul site-urilor dumneavoastră -Manage your domains;Gestionați domeniile dumneavoastră -Add, edit, and delete DNS records;Adăugați, editați și ștergeți înregistrări DNS -Admin;Administrator -System;Sistem -Overview;Prezentare generală -Manager;Manager -Cleanup;Curățare -Nodes;Noduri -Images;Imagini -aaPanel;aaPanel -Users;Utilizatori -Support;Asistență -Statistics;Statistici -No nodes found. Start with adding a new node;Nu s-au găsit noduri. Începeți prin adăugarea unui nod nou -Nodename;Nume nod -FQDN;Nume complet de domeniu (FQDN) -Create;Creare -Creating;Se creează... -Http port;Port HTTP -Sftp port;Port SFTP -Moonlight daemon port;Port daemon Moonlight -SSL;SSL -CPU Usage;Utilizare CPU -In %;În % -Memory;Memorie -Used / Available memory;Memorie utilizată / Memorie disponibilă -Storage;Stocare -Available storage;Stocare disponibilă -Add a new node;Adăugați un nod nou -Delete;Ștergere -Deleting;Se șterge... -Edit;Editare -Token Id;ID token -Token;Token -Save;Salvare -Setup;Configurare -Open a ssh connection to your node and enter;Deschideți o conexiune SSH la nodul dvs. și introduceți -and paste the config below. Then press STRG+O and STRG+X to save;și lipiți configurația de mai jos. Apoi apăsați STRG+O și STRG+X pentru a salva -Before configuring this node, install the daemon;Înainte de a configura acest nod, instalați daemonul -Delete this node?;Doriți să ștergeți acest nod? -Do you really want to delete this node;Doriți cu adevărat să ștergeți acest nod? -Yes;Da -No;Nu -Status;Stare -Adding;Se adaugă -Port;Port -Id;ID -Manage;Administrare -Create new server;Creați un server nou -No servers found;Niciun server găsit -Server name;Nume server -Cpu cores;Nuclee CPU -Disk;Disc -Image;Imagine -Override startup;Suprascrie pornirea -Docker image;Imagine Docker -CPU Cores (100% = 1 Core);Nuclee CPU (100% = 1 nucleu) -Server successfully created;Server creat cu succes -Name;Nume -Cores;Nuclee -Owner;Proprietar -Value;Valoare -An unknown error occurred;A apărut o eroare necunoscută -No allocation found;Nicio alocare găsită -Identifier;Identificator -UuidIdentifier;UuidIdentifier -Override startup command;Suprascrieți comanda de pornire -Loading;Se încarcă... -Offline;Deconectat -Connecting;Conectare... -Start;Pornire -Restart;Repornire -Stop;Oprire -Shared IP;IP partajată -Server ID;ID server -Cpu;CPU -Console;Consolă -Files;Fișiere -Backups;Copii de siguranță -Network;Rețea -Plugins;Plugin-uri -Settings;Setări -Enter command;Introduceți comanda -Execute;Executare -Checking disk space;Verificare spațiu pe disc -Updating config files;Actualizare fișiere de configurație -Checking file permissions;Verificare permisiuni de fișiere -Downloading server image;Se descarcă imaginea serverului -Downloaded server image;Imaginea serverului a fost descărcată -Starting;Începere -Online;Conectat -Kill;Oprit forțat -Stopping;Se oprește -Search files and folders;Căutare fișiere și foldere -Launch WinSCP;Lansați WinSCP -New folder;Folder nou -Upload;Încărcare -File name;Nume fișier -File size;Mărime fișier -Last modified;Ultima modificare -Cancel;Anulare -Canceling;Se anulează -Running;În execuție -Loading backups;Se încarcă copiile de siguranță -Started backup creation;Crearea copiei de siguranță a început -Backup is going to be created;Se va crea o copie de siguranță -Rename;Redenumire -Move;Mutare -Archive;Arhivare -Unarchive;Dezarhivare -Download;Descărcare -Starting download;Începerea descărcării -Backup successfully created;Copie de siguranță creată cu succes -Restore;Restaurare -Copy url;Copiere URL -Backup deletion started;Se începe ștergerea copiei de siguranță -Backup successfully deleted;Copie de siguranță ștearsă cu succes -Primary;Primar -This feature is currently not available;Această funcționalitate nu este disponibilă în prezent -Send;Trimite -Sending;Se trimite -Welcome to the support chat. Ask your question here and we will help you;Bine ați venit la chatul de asistență. Puneți-vă întrebarea aici și vă vom ajuta -minutes ago;minute în urmă -just now;chiar acum -less than a minute ago;mai puțin de o minută în urmă -1 hour ago;acum 1 oră -1 minute ago;acum 1 minut -Failed;Eșuat -hours ago;ore în urmă -Open tickets;Deschideți tichete -Actions;Acțiuni -No support ticket is currently open;Nu există momentan niciun tichet de asistență deschis -User information;Informații utilizator -Close ticket;Închideți tichetul -Closing;Se închide -The support team has been notified. Please be patient;Echipa de suport a fost notificată. Vă rugăm să aveți răbdare -The ticket is now closed. Type a message to open it again;Tichetul este acum închis. Tastați un mesaj pentru a-l deschide din nou -1 day ago;acum 1 zi -is typing;scrie... -are typing;scriu... -No domains available;Niciun domeniu disponibil -Shared domains;Domenii partajate -Shared domain;Domeniu partajat -Shared domain successfully deleted;Domeniu partajat șters cu succes -Shared domain successfully added;Domeniu partajat adăugat cu succes -Domain name;Nume de domeniu -DNS records for;Înregistrări DNS pentru -Fetching dns records;Se preiau înregistrările DNS -No dns records found;Nicio înregistrare DNS găsită -Content;Conținut -Priority;Prioritate -Ttl;TTL (Timp de Viață) -Enable cloudflare proxy;Activați proxy Cloudflare -CF Proxy;Proxy CF -days ago;zile în urmă -Cancel;Anulare -An unexpected error occurred;A apărut o eroare neașteptată -Testy;Testy -Error from cloudflare api;Eroare de la API Cloudflare -Profile;Profil -No subscription available;Nicio abonare disponibilă -Buy;Cumpără -Redirecting;Redirecționare -Apply;Aplică -Applying code;Se aplică codul -Invalid subscription code;Cod de abonament invalid -Cancel Subscription;Anulează abonamentul -Active until;Activ până la -We will send you a notification upon subscription expiration;Vă vom trimite o notificare la expirarea abonamentului -This token has been already used;Acest token a fost deja utilizat -New login for;Autentificare nouă pentru -No records found for this day;Nu s-au găsit înregistrări pentru această zi -Change;Schimbă -Changing;Se schimbă -Minecraft version;Versiune Minecraft -Build version;Versiune build -Server installation is currently running;Instalarea serverului este în desfășurare în prezent -Selected;Selectat -Move deleted;Mutarea ștergerii -Delete selected;Ștergeți selecția -Log level;Nivelul de jurnal -Log message;Mesaj de jurnal -Time;Timp -Version;Versiune -You are running moonlight version;Rulați versiunea Moonlight -Operating system;Sistem de operare -Moonlight is running on;Moonlight rulează pe -Memory usage;Utilizare memorie -Moonlight is using;Moonlight folosește -of memory;din memorie -Cpu usage;Utilizare CPU -Refresh;Reîmprospătează -Send a message to all users;Trimiteți un mesaj tuturor utilizatorilor -IP;IP -URL;URL -Device;Dispozitiv -Change url;Schimbați URL-ul -Message;Mesaj -Enter message;Introduceți mesajul -Enter the message to send;Introduceți mesajul de trimis -Confirm;Confirmă -Are you sure?;Sunteți sigur? -Enter url;Introduceți URL-ul -An unknown error occured while starting backup deletion;A apărut o eroare necunoscută în timpul începerii ștergerii backup-ului -Success;Succes -Backup URL successfully copied to your clipboard;URL-ul de backup a fost copiat cu succes în clipboard -Backup restore started;Restaurarea backup-ului a început -Backup successfully restored;Backup-ul a fost restaurat cu succes -Register for;Înregistrare pentru -Core;Nucleu -Logs;Jurnale -AuditLog;Jurnal de audit -SecurityLog;Jurnal de securitate -ErrorLog;Jurnal de eroare -Resources;Resurse -WinSCP cannot be launched here;WinSCP nu poate fi lansat aici -Create a new folder;Creați un folder nou -Enter a name;Introduceți un nume -File upload complete;Încărcarea fișierului a fost finalizată -New server;Server nou -Sessions;Sesiuni -New user;Utilizator nou -Created at;Creat la -Mail template not found;Șablonul de e-mail nu a fost găsit -Missing admin permissions. This attempt has been logged ;Lipsesc permisiunile de administrator. Acest încercare a fost înregistrată -Address;Adresă -City;Oraș -State;Stat -Country;Țară -Totp;Totp -Discord;Discord -Subscription;Abonament -None;Niciunul -No user with this id found;Niciun utilizator cu această ID găsit -Back to list;Înapoi la listă -New domain;Domeniu nou -Reset password;Resetare parolă -Password reset;Resetare parolă -Reset the password of your account;Resetați parola contului dvs. -Wrong here?;Greșit aici? -A user with this email can not be found;Un utilizator cu această adresă de e-mail nu poate fi găsit -Password reset successfull. Check your mail;Resetarea parolei a fost efectuată cu succes. Verificați-vă poșta -Discord bot;Bot Discord -New image;Imagine nouă -Description;Descriere -Uuid;UUID -Enter tag name;Introduceți numele etichetei -Remove;Eliminați -No tags found;Nu s-au găsit etichete -Enter docker image name;Introduceți numele imaginii Docker -Tags;Etichete -Docker images;Imagini Docker -Default image;Imagine implicită -Startup command;Comandă de pornire -Install container;Instalați containerul -Install entry;Intrare de instalare -Configuration files;Fișiere de configurare -Startup detection;Detectare de pornire -Stop command;Comandă de oprire -Successfully saved image;Imaginea a fost salvată cu succes -No docker images found;Nu s-au găsit imagini Docker -Key;Cheie -Default value;Valoare implicită -Allocations;Alocări -No variables found;Nu s-au găsit variabile -Successfully added image;Imaginea a fost adăugată cu succes -Password change for;Schimbarea parolei pentru -of;al -New node;Nod nou -Fqdn;Nume de domeniu complet -Cores used;Nuclee utilizate -used;folosite -5.15.90.1-microsoft-standard-WSL2 - amd64;5.15.90.1-microsoft-standard-WSL2 - amd64 -Host system information;Informații despre sistemul gazdă -0;0 -Docker containers running;Containere Docker în execuție -details;Detalii -1;1 -2;2 -DDos;DDoS -No ddos attacks found;Nu s-au găsit atacuri DDoS -Node;Nod -Date;Dată -DDos attack started;Atac DDoS început -packets;pachete -DDos attack stopped;Atac DDoS oprit -packets; pachete -Stop all;Oprește totul -Kill all;Omoară totul -Network in;Rețea intrare -Network out;Rețea ieșire -Kill all servers;Omoară toate serverele -Do you really want to kill all running servers?;Doriți cu adevărat să opriți toate serverele care rulează? -Change power state for;Schimbați starea de alimentare pentru -to;la -Stop all servers;Oprește toate serverele -Do you really want to stop all running servers?;Doriți cu adevărat să opriți toate serverele care rulează? -Manage ;Gestionează -Manage user ;Gestionează utilizatorul -Reloading;Se reîncarcă... -Update;Actualizare -Updating;Se actualizează -Successfully updated user;Utilizator actualizat cu succes -Discord id;ID Discord -Discord username;Nume de utilizator Discord -Discord discriminator;Discord Discriminator -The Name field is required.;Câmpul Nume este obligatoriu. -An error occured while logging you in;A apărut o eroare în timpul autentificării -You need to enter an email address;Trebuie să introduceți o adresă de email -You need to enter a password;Trebuie să introduceți o parolă -You need to enter a password with minimum 8 characters in lenght;Trebuie să introduceți o parolă cu minim 8 caractere în lungime -Proccessing;Se procesează... -The FirstName field is required.;Câmpul Prenume este obligatoriu. -The LastName field is required.;Câmpul Nume este obligatoriu. -The Address field is required.;Câmpul Adresă este obligatoriu. -The City field is required.;Câmpul Oraș este obligatoriu. -The State field is required.;Câmpul Stat este obligatoriu. -The Country field is required.;Câmpul Țară este obligatoriu. -Street and house number requered;Strada și numărul casei sunt necesare. -Max lenght reached;A fost atinsă lungimea maximă -Server;Server -stopped;oprit -Cleanups;Curățări -executed;executat -Used clanup;Curățare folosită -Enable;Activare -Disable;Dezactivare -Addons;Add-on-uri -Javascript version;Versiune JavaScript -Javascript file;Fișier JavaScript -Select javascript file to execute on start;Selectați fișierul JavaScript pentru a fi executat la pornire -Submit;Trimite -Processing;Se procesează... -Go up;Urcați în sus -Running cleanup;Curățarea în curs de rulare -servers;servere -Select folder to move the file(s) to;Selectați folderul în care să mutați fișierele -Paper version;Versiune tipărită -Join2Start;Join2Start -Server reset;Resetare server -Reset;Resetare -Resetting;Se resetează... -Are you sure you want to reset this server?;Sigur doriți să resetați acest server? -Are you sure? This cannot be undone;Sunteți sigur? Aceasta nu poate fi anulată -Resetting server;Se resetează serverul... -Deleted file;Fișier șters -Reinstalling server;Se reinstalează serverul -Uploading files;Încărcare fișiere -complete;complet -Upload complete;Încărcare completă -Security;Securitate -Subscriptions;Abonamente -2fa Code;Cod 2FA -Your account is secured with 2fa;Contul dvs. este securizat cu 2FA -anyone write a fancy text here?;cineva să scrie un text frumos aici? -Activate 2fa;Activare 2FA -2fa apps;Aplicații 2FA -Use an app like ;Utilizați o aplicație precum -or;sau -and scan the following QR Code;și scanați codul QR următor -If you have trouble using the QR Code, select manual input in the app and enter your email and the following code:;Dacă întâmpinați probleme la utilizarea codului QR, selectați introducerea manuală în aplicație și introduceți adresa dvs. de email și următorul cod: -Finish activation;Finalizare activare -2fa Code requiered;Cod 2FA necesar -New password;Parolă nouă -Secure your account;Securizați contul dvs. -2fa adds another layer of security to your account. You have to enter a 6 digit code in order to login.;2FA adaugă un alt nivel de securitate contului dvs. Trebuie să introduceți un cod cu 6 cifre pentru a vă autentifica. -New subscription;Abonament nou -You need to enter a name;Trebuie să introduceți un nume -You need to enter a description;Trebuie să introduceți o descriere -Add new limit;Adăugați o limită nouă -Create subscription;Creați abonament -Options;Opțiuni -Amount;Suma -Do you really want to delete it?;Sigur doriți să ștergeți acesta? -Loading your subscription;Se încarcă abonamentul dvs. -Searching for deploy node;Căutare nod de implementare -Searching for available images;Căutare imagini disponibile -Server details;Detalii server -Configure your server;Configurați serverul dvs. -Default;Implicit -You reached the maximum amount of servers for every image of your subscription;Ați atins cantitatea maximă de servere pentru fiecare imagine din abonamentul dvs. -Personal information;Informații personale -Enter code;Introduceți codul -Server rename;Redenumire server -Create code;Creați codul -Save subscription;Salvați abonamentul -Enter your information;Introduceți informațiile dvs. -You need to enter your full name in order to use moonlight;Trebuie să introduceți numele complet pentru a utiliza Moonlight -No node found;Niciun nod găsit -No node found to deploy to found;Nu s-a găsit niciun nod pentru a fi implementat -Node offline;Nodul este deconectat -The node the server is running on is currently offline;Nodul pe care rulează serverul este momentan deconectat -Server not found;Serverul nu a fost găsit -A server with that id cannot be found or you have no access for this server;Un server cu această ID nu poate fi găsit sau nu aveți acces la acest server -Compress;Comprimare -Decompress;Dezcompresare -Moving;Mutare... -Compressing;Se comprimă... -selected;selectat -New website;Site web nou -Plesk servers;Servere Plesk -Base domain;Domeniu de bază -Plesk server;Server Plesk -Ftp;FTP -No SSL certificate found;Nu s-a găsit niciun certificat SSL -Ftp Host;Gazdă FTP -Ftp Port;Port FTP -Ftp Username;Nume utilizator FTP -Ftp Password;Parolă FTP -Use;Utilizați -SSL Certificates;Certificate SSL -SSL certificates;Certificate SSL -Issue certificate;Emitere certificat -New plesk server;Un nou server Plesk -Api url;URL API -Host system offline;Sistemul gazdă este offline -The host system the website is running on is currently offline;Sistemul gazdă pe care rulează site-ul este în prezent offline -No SSL certificates found;Nu s-au găsit certificate SSL -No databases found for this website;Nu s-au găsit baze de date pentru acest site web -The name should be at least 8 characters long;Numele trebuie să aibă cel puțin 8 caractere -The name should only contain of lower case characters and numbers;Numele ar trebui să conțină doar litere mici și cifre -Error from plesk;Eroare de la Plesk -Host;Gazdă -Username;Nume de utilizator -SRV records cannot be updated thanks to the cloudflare api client. Please delete the record and create a new one;Înregistrările SRV nu pot fi actualizate datorită clientului API Cloudflare. Vă rugăm să ștergeți înregistrarea și să creați una nouă -The User field is required.;Câmpul Utilizator este obligatoriu -You need to specify an owner;Trebuie să specificați un proprietar -You need to specify an image;Trebuie să specificați o imagine -Api Url;URL API -Api Key;Cheie API -Duration;Durată -Enter duration of subscription;Introduceți durata abonamentului -Copied code to clipboard;Codul a fost copiat în clipboard -Invalid or expired subscription code;Cod de abonament invalid sau expirat -Current subscription;Abonament curent -You need to specify a server image;Trebuie să specificați o imagine de server -CPU;CPU -Hour;Oră -Day;Zi -Month;Lună -Year;An -All time;Tot timpul -This function is not implemented;Această funcție nu este implementată -Domain details;Detalii domeniu -Configure your domain;Configurați domeniul dvs. -You reached the maximum amount of domains in your subscription;Ați atins numărul maxim de domenii în abonamentul dvs. -You need to specify a shared domain;Trebuie să specificați un domeniu partajat -A domain with this name already exists for this shared domain;Un domeniu cu acest nume există deja pentru acest domeniu partajat -The Email field is required.;Câmpul Email este obligatoriu -The Password field is required.;Câmpul Parolă este obligatoriu -The ConfirmPassword field is required.;Câmpul Confirmare Parolă este obligatoriu -Passwords need to match;Parolele trebuie să se potrivească -Cleanup exception;Excepție la curățare -No shared domain found;Nu s-a găsit niciun domeniu partajat -Searching for deploy plesk server;Se caută pentru a implementa serverul Plesk -No plesk server found;Nu s-a găsit niciun server Plesk -No plesk server found to deploy to;Nu s-a găsit niciun server Plesk pentru a implementa -No node found to deploy to;Nu s-a găsit niciun nod pentru a implementa -Website details;Detalii site web -Configure your website;Configurați site-ul dvs. web -The name cannot be longer that 32 characters;Numele nu poate avea mai mult de 32 de caractere -The name should only consist of lower case characters;Numele ar trebui să conțină doar litere mici -News;Știri -Title...;Titlu... -Enter text...;Introduceți text... -Saving...;Se salvează... -Deleting...;Se șterge... -Delete post;Ștergeți postarea -Do you really want to delete the post ";Doriți cu adevărat să ștergeți postarea " -You have no domains;Nu aveți domenii -We were not able to find any domains associated with your account;Nu am putut găsi niciun domeniu asociat cu contul dvs. -You have no websites;Nu aveți site-uri web -We were not able to find any websites associated with your account;Nu am putut găsi niciun site web asociat cu contul dvs. -Guest;Vizitator -You need a domain;Aveți nevoie de un domeniu -New post;Postare nouă -New entry;Intrare nouă -You have no servers;Nu aveți servere -We were not able to find any servers associated with your account;Nu am putut găsi niciun server asociat cu contul dvs. -Error creating server on wings;Eroare la crearea serverului pe Wings -An unknown error occurred while restoring a backup;A apărut o eroare necunoscută în timpul restaurării unei copii de rezervă -Error from daemon;Eroare de la daemon -End;Sfârșit -Cloud panel;Panou de control pentru cloud -Cloud panels;Panouri de control pentru cloud -New cloud panel;Panou de control pentru cloud nou -You need to enter an api key;Trebuie să introduceți o cheie API -Webspaces;Spații web -New webspace;Spațiu web nou -The uploaded file should not be bigger than 100MB;Fișierul încărcat nu trebuie să depășească 100MB -An unknown error occurred while uploading a file;A apărut o eroare necunoscută în timpul încărcării unui fișier -No databases found for this webspace;Nu s-au găsit baze de date pentru acest spațiu web -Sftp;SFTP -Sftp Host;Gazdă SFTP -Sftp Port;Port SFTP -Sftp Username;Nume de utilizator SFTP -Sftp Password;Parolă SFTP -Lets Encrypt certificate successfully issued;Certificatul Lets Encrypt a fost emis cu succes -Add shared domain;Adăugați domeniu partajat -Webspace;Spațiu web -You reached the maximum amount of websites in your subscription;Ați atins numărul maxim de site-uri web în abonamentul dvs. -Searching for deploy web host;Se caută pentru a implementa gazda web -Webspace details;Detalii spațiu web -Web host;Gazdă web -Configure your webspaces;Configurați spațiile dvs. web -You reached the maximum amount of webspaces in your subscription;Ați atins numărul maxim de spații web în abonamentul dvs. -Create a webspace;Creați un spațiu web -Manage your webspaces;Gestionați spațiile dvs. web -Modify the content of your webspaces;Modificați conținutul spațiilor dvs. web -Successfully updated password;Parola a fost actualizată cu succes -An unknown error occurred while sending your message;A apărut o eroare necunoscută în timpul trimiterii mesajului dvs. -Open chats;Deschideți conversații -No message sent yet;Nu ați trimis încă niciun mesaj -Support ticket open;Bilet de suport deschis -Support ticket closed;Bilet de suport închis -Your connection has been paused;Conexiunea dvs. a fost pusă în pauză -We paused your connection because of inactivity. To resume, simply focus the tab and wait a few seconds;Am pus în pauză conexiunea dvs. din cauza inactivității. Pentru a relua, focalizați pur și simplu fila și așteptați câteva secunde -Failed to reconnect to the moonlight servers;Nu s-a reușit reconectarea la serverele Moonlight -We were unable to reconnect to moonlight. Please refresh the page;Nu am reușit să ne reconectăm la Moonlight. Vă rugăm să reîmprospătați pagina -Failed to reconnect to the moonlight servers. The connection has been rejected;Nu s-a reușit reconectarea la serverele Moonlight. Conexiunea a fost respinsă -We were unable to reconnect to moonlight. Most of the time this is caused by an update of moonlight. Please refresh the page;Nu am reușit să ne reconectăm la Moonlight. De cele mai multe ori, aceasta este cauzată de o actualizare a Moonlight. Vă rugăm să reîmprospătați pagina -Verifying token, loading user data;Se verifică token-ul, se încarcă datele utilizatorului -Reload config;Reîncarcă configurația -Successfully reloading configuration;Configurația a fost reîncărcată cu succes -Successfully reloaded configuration;Configurația a fost reîncărcată cu succes -Flows;Fluxuri -Add node;Adăugați nod -Web system;Sistem web -Servers with this image;Servere cu această imagine -You need to specify a user;Trebuie să specificați un utilizator -Import;Importați -Export;Exportați -Exporting;Se exportă -Successfully imported image;Imaginea a fost importată cu succes -Forge version;Versiune Forge -Fabric version;Versiune Fabric -Fabric loader version;Versiune Fabric Loader -Rate;Evaluare -Hey, can i borrow you for a second?;Hey, pot să te împrumut pentru o secundă? -We want to improve our services and get a little bit of feedback how we are currently doing. Please leave us a rating;Vrem să îmbunătățim serviciile noastre și să obținem un pic de feedback despre modul în care facem în prezent. Vă rugăm să ne lăsați o evaluare -Thanks for your rating;Mulțumim pentru evaluarea dvs. -It would be really kind of you rating us on a external platform as it will help our project very much;Ar fi foarte amabil din partea dvs. să ne evaluați pe o platformă externă, deoarece va ajuta foarte mult proiectul nostru -Close;Închide -Rating saved;Evaluare salvată -Group;Grup -Beta;Beta -Create a new group;Creați un grup nou -Download WinSCP;Descărcați WinSCP -Show connection details;Afișați detaliile de conexiune -New;Nou -New file;Fișier nou -Connection details;Detalii de conexiune -Malware;Program malware -Create a new file;Creați un fișier nou -Edit layout;Editați aspectul -Uptime;Timp de funcționare -Moonlight is online since;Moonlight este online de la -User;Utilizator -Databases;Baze de date -Sesiuni;Sesiuni -Active users;Utilizatori activi -Search for plugins;Căutați plugin-uri -Search;Căutare -Searching;Se caută... -Successfully installed gunshell;Gunshell a fost instalat cu succes -Successfully installed fastasyncworldedit;FastAsyncWorldEdit a fost instalat cu succes -Successfully installed minimotd;MiniMotd a fost instalat cu succes -Moonlight health;Stare Moonlight -Healthy;Sănătos -Successfully saved file;Fișier salvat cu succes -Unsorted servers;Servere nesortate -Enter a new name;Introduceți un nume nou -Sign in with;Conectare cu -Make your services accessible through your own domain;Faceți serviciile dvs. accesibile prin propriul domeniu -New group;Grup nou -Finish editing layout;Finalizați editarea aspectului -Remove group;Eliminați grupul -Hidden in edit mode;Ascuns în modul de editare -Enter your 2fa code here;Introduceți codul dvs. 2FA aici -Two factor authentication;Autentificare în două factori -Preferences;Preferințe -Streamer mode;Mod streamer -Scan the QR code and enter the code generated by the app you have scanned it in;Scanați codul QR și introduceți codul generat de aplicație -Start scan;Începeți scanarea -Results;Rezultate -Scan in progress;Scanare în curs -Debug;Depanare -Save changes;Salvați modificările -Delete domain;Ștergeți domeniul -Python version;Versiune Python -Python file;Fișier Python -Select python file to execute on start;Selectați fișierul Python pentru a fi executat la pornire -You have no webspaces;Nu aveți spații web -We were not able to find any webspaces associated with your account;Nu am reușit să găsim spații web asociate contului dvs. -Backup download successfully started;Descărcarea backup-ului a început cu succes -Error from cloud panel;Eroare din panoul de control al norului -Error from wings;Eroare din Wings -Remove link;Elimină linkul -Your account is linked to a discord account;Contul dvs. este legat de un cont Discord -You are able to use features like the discord bot of moonlight;Puteți utiliza funcții precum botul Discord al Moonlight -The password should be at least 8 characters long;Parola trebuie să aibă cel puțin 8 caractere -The name should only consist of lower case characters or numbers;Numele ar trebui să conțină doar litere mici sau cifre -The requested resource was not found;Resursa cerută nu a fost găsită -We were not able to find the requested resource. This can have following reasons;Nu am putut găsi resursa solicitată. Acest lucru poate avea următoarele motive -The resource was deleted;Resursa a fost ștearsă -You have to permission to access this resource;Nu aveți permisiunea de a accesa această resursă -You may have entered invalid data;Ați putut introduce date invalide -A unknown bug occured;A apărut o eroare necunoscută -An api was down and not proper handled;O interfață API a fost indisponibilă și nu a fost gestionată corespunzător -A database with this name does already exist;O bază de date cu acest nume există deja -Successfully installed quickshop-hikari;Quickshop-Hikari a fost instalat cu succes -You need to enter a valid domain;Trebuie să introduceți un domeniu valid -2fa code;Cod 2FA -This feature is not available for;Această funcționalitate nu este disponibilă pentru -Your account is currently not linked to discord;Contul dvs. nu este în prezent legat de Discord -To use features like the discord bot, link your moonlight account with your discord account;Pentru a utiliza funcții precum botul Discord, legați-vă contul Moonlight de contul Discord -Link account;Conectează contul -Continue;Continuați -Preparing;Pregătire -Make sure you have installed one of the following apps on your smartphone and press continue;Asigurați-vă că ați instalat una dintre următoarele aplicații pe smartphone-ul dvs. și apăsați Continuare -The max length for the name is 32 characters;Lungimea maximă a numelui este de 32 de caractere -Successfully installed chunky;Chunky a fost instalat cu succes -Successfully installed huskhomes;Huskhomes a fost instalat cu succes -Successfully installed simply-farming;Simply-Farming a fost instalat cu succes -You need to specify a first name;Trebuie să specificați un prenume -You need to specify a last name;Trebuie să specificați un nume de familie -You need to specify a password;Trebuie să specificați o parolă -Please solve the captcha;Vă rugăm să rezolvați captcha -The email is already in use;Adresa de email este deja folosită -The dns records of your webspace do not point to the host system;Înregistrările DNS ale spațiului dvs. web nu se îndreaptă către sistemul gazdă -Scan complete;Scanare completă -Currently scanning:;În prezent se scanează: -Successfully installed dynmap;Dynmap a fost instalat cu succes -Successfully installed squaremap;Squaremap a fost instalat cu succes -No web host found;Niciun gazdă web găsită -No web host found to deploy to;Niciun gazdă web găsită pentru a implementa -Successfully installed sleeper;Sleeper a fost instalat cu succes -You need to enter a domain;Trebuie să introduceți un domeniu -Enter a ip;Introduceți o adresă IP -Ip Bans;Interdicții IP -Ip;Adresă IP -Successfully installed simple-voice-chat;Simple-Voice-Chat a fost instalat cu succes -Successfully installed smithing-table-fix;Smithing-Table-Fix a fost instalat cu succes -Successfully installed justplayer-tpa;Justplayer-TPA a fost instalat cu succes -Successfully installed ishop;iShop a fost instalat cu succes -Successfully installed lifestealre;Lifestealre a fost instalat cu succes -Successfully installed lifeswap;Lifeswap a fost instalat cu succes -Java version;Versiune Java -Jar file;Fișier JAR -Select jar to execute on start;Selectați fișierul JAR pentru a fi executat la pornire -A website with this domain does already exist;Un website cu acest domeniu există deja -Successfully installed discordsrv;DiscordSrv a fost instalat cu succes -Reinstall;Reinstalați -Reinstalling;Se reinstalează -Successfully installed freedomchat;Freedomchat a fost instalat cu succes -Leave empty for the default background image;Lăsați gol pentru imaginea de fundal implicită -Background image url;URL-ul imaginii de fundal -of CPU used;de CPU folosit -memory used;memorie folosită -163;163 -172;172 -Sentry;Sentry -Sentry is enabled;Sentry este activat -Successfully installed mobis-homes;Mobis-Homes a fost instalat cu succes -Your moonlight account is disabled;Contul Moonlight este dezactivat -Your moonlight account is currently disabled. But dont worry your data is still saved;Contul Moonlight este în prezent dezactivat. Dar nu vă faceți griji, datele dvs. sunt încă salvate -You need to specify a email address;Trebuie să specificați o adresă de email -A user with that email does already exist;Un utilizator cu această adresă de email există deja -Successfully installed buildmode;Buildmode a fost instalat cu succes -Successfully installed plasmo-voice;Plasmo-Voice a fost instalat cu succes -157;157 -174;174 -158;158 -Webspace not found;Spațiu web nu găsit -A webspace with that id cannot be found or you have no access for this webspace;Un spațiu web cu această ID nu poate fi găsit sau nu aveți acces la acest spațiu web -No plugin download for your minecraft version found;Nu s-a găsit nicio descărcare de plugin pentru versiunea dvs. Minecraft -Successfully installed gamemode-alias;Gamemode-Alias a fost instalat cu succes -228;228 -User;Utilizator -Send notification;Trimite notificare -Successfully saved changes;Modificări salvate cu succes -Archiving;Se arhivează -Server is currently not archived;Serverul nu este arhivat în prezent -Add allocation;Adaugă alocare -231;231 -175;175 -Dotnet version;Versiune Dotnet -Dll file;Fișier DLL -Select dll to execute on start;Selectați fișierul DLL pentru a fi executat la pornire diff --git a/Moonlight/defaultstorage/resources/mail/login.html b/Moonlight/defaultstorage/resources/mail/login.html deleted file mode 100644 index 06748d96..00000000 --- a/Moonlight/defaultstorage/resources/mail/login.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - New moonlight login - - -
- - - - - - - - - - - - -
-
-
- - Logo - -
-
-

Hey {{FirstName}}, there is a new login in your moonlight account

-

Here is all the data we collected

-

IP: {{Ip}}

-

Device: {{Device}}

-

Location: {{Location}}

-
- Open Moonlight - -
-
-

You need help?

-

We are happy to help!

-

More information at - endelon.link/support. -

-
-

Copyright 2022 Endelon Hosting

-
-
- - \ No newline at end of file diff --git a/Moonlight/defaultstorage/resources/mail/passwordChange.html b/Moonlight/defaultstorage/resources/mail/passwordChange.html deleted file mode 100644 index ae3e5a12..00000000 --- a/Moonlight/defaultstorage/resources/mail/passwordChange.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - Moonlight password change - - -
- - - - - - - - - - - - -
-
-
- - Logo - -
-
-

Hey {{FirstName}}, your password has been changed

-

If this was not you please contact us. Also here is the data we collected.

-

IP: {{Ip}}

-

Device: {{Device}}

-

Location: {{Location}}

-
- Open Moonlight - -
-
-

You need help?

-

We are happy to help!

-

More information at - endelon.link/support. -

-
-

Copyright 2023 Endelon Hosting

-
-
- - \ No newline at end of file diff --git a/Moonlight/defaultstorage/resources/mail/passwordReset.html b/Moonlight/defaultstorage/resources/mail/passwordReset.html deleted file mode 100644 index 9dd066c6..00000000 --- a/Moonlight/defaultstorage/resources/mail/passwordReset.html +++ /dev/null @@ -1,54 +0,0 @@ - - - - - Moonlight password reset - - -
- - - - - - - - - - - - -
-
-
- - Logo - -
-
-

Hey {{FirstName}}, your password has been resetted

-

Your new password is: {{Password}}

-

If this was not you please contact us. Also here is the data we collected.

-

IP: {{Ip}}

-

Device: {{Device}}

-

Location: {{Location}}

-
- Open Moonlight - -
-
-

You need help?

-

We are happy to help!

-

More information at - endelon.link/support. -

-
-

Copyright 2022 Endelon Hosting

-
-
- - \ No newline at end of file diff --git a/Moonlight/defaultstorage/resources/mail/register.html b/Moonlight/defaultstorage/resources/mail/register.html deleted file mode 100644 index 3ffbc507..00000000 --- a/Moonlight/defaultstorage/resources/mail/register.html +++ /dev/null @@ -1,50 +0,0 @@ - - - - - Welcome - - -
- - - - - - - - - - - - -
-
-
- - Logo - -
-
-

Hey {{FirstName}}, welcome to moonlight

-

We are happy to welcome you in ;)

-
- Open Moonlight - -
-
-

You need help?

-

We are happy to help!

-

More information at - endelon.link/support. -

-
-

Copyright 2022 Endelon Hosting

-
-
- - \ No newline at end of file diff --git a/Moonlight/defaultstorage/resources/public/background/main.jpg b/Moonlight/defaultstorage/resources/public/background/main.jpg deleted file mode 100644 index 1a54040f4be779c5434678fcb36ba9059f69104f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 891895 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[r^gR2z5jUGe-h=?z}hVR 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

72~2><55HTNbqZ^RclPVK4wKItJRqgg#T1y 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

ExXRfLV@1rOe1t~L(|$0Gsur$byp9A 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 z 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

sO(0|-2B};&A*paDCmg17 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%0DcyO5cw%DiNqwFxiyVC0g< zs(F?!21`kl<~D>S4SYe~JK$EHL$eD-c24u1@yv3Hua%7*)!3`@lJ>C?NM{bT9uuYj z6tr#6VQ{+1IDcx7iKjDqrk$NfWTvUD9D!*)Eiye1&oaP$R>JUC`S@SccCbe zDfU22A-!9>Mov_lm9|&fg9m)Cu?B*g-cIEvsAP4OSha&&d^}^S{@ND_Mb*4V!Ox_s z<*>;V67M25YL?mY!D_OQu?GHu%9KS4XoVNFq@+qqf|z=N1H@9_1}yTi{JqQNyx4_! z5$+*Ag~h@N6ByI~0;9i^yo<0=D-AIh=g*+GDlY4w`Fd(g#lMgPol-F%HTM_;QT66E1OU^{tyCb&cC0PpPFMun5Z_WSBINH{rg64d~g zs^!DrItV6)%j{RO#!586gHf&AWY^zsTA#G=EXoxair)z(g1=FE)R?p*+$QLh>FIa^4cLxOqQ3cUl(gsJfg*q-QKPYu#kMd5blc-0MNvsTF*)Z>!mvf-(B@+c0o#=}rMc(NH zojpiT34Dp(>nrM?ZL^|3JFi==_$g8d5PnEy4KN*9t4|k(t$8S?0oj6Ek0%^d!#ob` z8A2z=Qn*(VoY&2V)JWU(887>Tql7|MQYL}&7;mRG*&9tIuQ>yp9XGj<&5G-$5-=>8 z$g5%(s;0^7T!KS(Thy;HXDdzvsma(@*D+p^H4Ky-n0AWT{NJ1}S^#Q=T@km{O~Ky+ zO9fQ@Do%3%6=!t8P@RPAGAB3!*~T|iXQ2?LSAD>7=hCV}dXB9K1Zv6s8gB&N0N^sx z>y7F~F3yp{2x(n^*R7}$|AVd{0;@P3pQ=Jk_q7fsWtdfQAmWwx%^+i~%Lm~$n<{Pg zBF&it5Ifh^YgRWw8{=r!Vj43E+I%|jbRgKZM*^v&^}WG}^?1VHPZdLbLozGijw|8H zF{v!WyBkP2lsP(R;HSrXy&P9oaW1npr6wK&zlJAyUr2B)Bx)h|Ux5^x8t!(7tymwN zpuWW^VzqqX?!mcEz%YRV`pM$ir^=C^t@>dB`btnJD5!x7&Jj(1_klFanPL@z=v&{c zEBvLtDGFcr71&q~GE35%wos@Duj=u;@OU)=d$X{~ zc)l`BkHYd!)tgR_ps*?XH=PlvR&XOi%imlfljpo-^_hmxc38fpopRafqIgI=!P5H1 zAQ@aiR%6TuEh(f234@lIu?|Ypm~zCc-*Y*LtS+kSk!Lz%B4SG;(&GLD0qQd4*gAOK2Y#d?uPW&cQ?@}Z#R_2L zF_gRhr}i_J?^xSGe60Mvg;K>J&fZ*&69m0bd%`~J9M>x0^fUHQ8T*6U9CjiGt5o5|gFKvv{MSqe zr_S>&>s%rid<2SIJ+y}9?b7G8#ENgbdVz-la)}Z#zL|1#-pf`R(*n#ZvldQu^D0iX{_g%+MLVvD82CDv8vS6PmVpuGUoz*)M}^{ zN_x}YNST+4eeTR*!dJP>9Y!X(wMKP$i&Vq4+ zU?)q4PG))bH*8qYx&t~8G!(*(auq= zF}_GyJ|)BFW*U~4Nz6k`I&_<4)TZN1E#SV|==-lsifc>Hh*jnG)Bjec%}L3bqgalg z&6x`UJ77V#O)n1({6!I+Sir6j;}mICJ8mU$hcYo$FBa1rf3+J=W!*&fC|?lE-$!XY zYTBVM+sf&L31>|f9&NoWmS?5T;lt0Vt=JsyWN)UCW-066=OJhl>a>hm_6b}9x@J~& zy~G2|64>U$CnVRBD@ZXKuNr>FR4UaY#rhwjI_MR|CNDTXGf!0_+GSTl$<3YqwaY?r?=ZBr8wQ9(=Np zXdnIqw`HF2HOU@h3R+ZI0cfEm)%*_Di*@Es^j_^3#Pk7h5gMGoE&?F&E5#ek>uegs zq%d5(ogvn4q0aajuV$%9eQeoJzlbflw1bbGj80_;~ri< z0v-@RDi3P9z$R~29}58IUO&VtRiI4fRFwSOTbqx4T(#5S1UFmfl^4J>ivDV8HC)ra*0(|?^?^|p>Y!zl`{3EO4cbKeNB1wGbFPJl9)Kq*-x*Inxw!u< zC_E!?G!C@h%5UD3xRc64$#rOV;RoWzi<*8K=XIR=7o98rQJc>$r{3qw!#h#*=PimI z22O~cR@EoBb{sU5`cZVmV8fPFYt3@kvW@gi0b^LEMCb^CnB`7Z`L_XohOkGI@ar1F zOa25FpjIz~vqY*RiGV$-CDlqx5*`BGp9e!zHx%NMLV;sLDiU^hl3sCQ^>qXqM6X;_ z@(%FvOJpX%;&*1AW-oQja?ptIrKBTBN`l%xT*v~3xr$0&sNT}J-pp5|8zz;vB$nyy zaflqbL9n*%z?)Nl0R$M(lC$ph@zvm&n;ldrpJtX zR!H%zII6`PfEH>{0nT&c242GwQ)7QzL$dvsW6*n;+Skssab$S*K?CggGFDGbkLR)~ zPOij^OVdI3E@;$9*y2RB^aj08QCk39F`325M|U>`<_;`r_I@%p3uOQ@A2br_cX!~k z^&B!|?kMF_A=KK{ccLK%^{Vr05METle1&+|6WNKjGDT`EIr>nAct)+8WquQWIm27f zbpIfUY_!ng9Iax=T%pc6tA@@v5ekbP7B!xH{6XVo177~K2<2gPh>Zi?;q|d+@7g2i zEg_9_wI3wR+H|y4yTloOALhVLrKYF1b@cpfhR55)?VVWwpqW53Bx#q?^ zlkV&72dfLHnD0B~QIniS3vx!cb41j#%nIMB^3P)~rrvI6%Sy+)xa`tn%n_j(! z&)d2iF@y_)n$m@$?h^Ra-GOe>)8 zl&kveO@n7DC3|4C*E*lV%d>Oz;%9}vs8&ELPX4-*OeaU*3?hI6 zo#byF!SavYqN-N_!l81zctIrXU3c}h$*SoSalXFmDF}U^f|>A(V8Hn7%*#3W_h8ZW z?x&Ntri!nG$p77layc2b6z)+mDG+j<8^p)bkCqfK91H_{e|hflxvO1T>;M%p&(1uU zmuk*?5%2wOryA6)W!0{1XfyolK!2M9xcQK9E_%D>aI9{Jopzklr8(t$ZNtVuSaSFg zmgZl5YD&_hcAA}bzpD?6&ue42HmMZ0XOJqZ@6&lV${uO7-tV<0**Naoe+gu%6t=cY z;j>;`^H8+!Us17*K^wfbuLkNm$u+oOfbc5`mn zzXlf|f8~2WCJ)AMqu-u~rPS5B+#DUZ6LC1E`RmYlv%aQBLyGHY^C8uB)l&DX^>zM2 z=E{PZZ{ApVnM)@nUCKJ%@Xv3!Yu}|O$yLYi+;DjAv6&Der*Ko=k1LqVmwc)*1g4ia zz%x^vn~LAUFHcmj@!i&ZQFNxT=|RfchiwMoKM1dZ@(<{uUBZ{YGB-58oqAbU{!!sm z$f*w-&!cB!%N`ri*%Y}b3pIbP;a6Ta(Wt=^?gI~*k z&uaTAR$l%?GYgMm1Qm&aW;f^TFngs-2!C37+J_>upb#@QR<*RIs^K*Le9r8MvrvHL z8j<1#5$_31)o4~JR@TsTzF{hDLAsUGx%AuehI?KJeLdEfB}f?+@><;2{%od5Bw~JXgOu+h-N`?{m^l>;`9q^h836#*))JoLHAwC8xOW zutKVPiUO@5w_Hrm!P?H=>D-BkK9oTi5pwsQW0IweRI|&Gfr90QtYlN%J^8C|$C5q; z^6`8}_E}}6e4UtbRhgG!u0VLs^Dmi*Q~@ZbEN0WrJBz{@E>rl;mKr77S78ZU9Ojfm z`eE4kgm-Y9j85o>!Yt>F6tx1|nekMyH3!`^fLfmbmpbIjfM!eCg51jfAIDEYv``68 zN1Q)7nXYw}K2$deNa}$T*rYM6EPhj6;sRJ3L*`k;On@{4m6)LRWt~;f5p>A?{FK8AW=W|vk<(NfSl*h3Zv|mM5LQvK8AsID{AV@DtsOrvhx|sBbG$*0tLz* z8NlM{zl9w*GQW_A@I|pHKjQ-pBn0fh{X$lmz?xa9oT`mxXfHlOqz_zrg1nH_mgO5e zl`8&ums(Gm9aALQ@MeQl?&L$I6tMjWx?%qYn$X2iYej|M&nJh74dJC%N@`T{@(?6t zbZEzFjIo1N$nTx1;KTVPJ@KG-21>l_2~0z@@1|^#mewvZxhaFd78+2YUa1Y%PS7La zf#OOxK>Y}LEFnDm0ki`P;;dhK?STJUZGNZ1=gQe=fCk_fShJ~KX8Si`)4D82)v|D# z_G#IB@P8|@Wquzk5(&qWW0)Ucmw?bF2^MhLfU6Jggg=$A!kEC1LaWPips2BxW&``F z$S{T(2<|p)BRu(YW2d2voilW(B z0H|>nh+n8Ly_oX8*n3Y%mG?ROHg_vE*$nl%la3JVA1dS#)b|^Q@H!xG{EyFsxb_-0 zRV!?=L?aUZrLXz~nCQq46YO$K9xHHS!BdCFe}6r$1yWz8Vf!R?`=g50HT*s{KeZX= zg}5Dl@1Ad+l}EdJl`(FcVdsRwgy5IsvPhr*fpCT~1@BMK5pcyrZ`)g+^BdFE-UfXFDbFZT*%Dc>+!3KaLIjQ9HC@ zE1!nAabqusBbrB|E6Fn>Sz26IzT>qBllgkx6jSyRISTg`0+dM!`KwN;cRVvC{1HBR zg`}L?cBB<8uBfe0^LoZS9MfaAxf*DHm^4eyMmC$Y@_$^n8SZeJ5sJUVFMtc8&s9De@Upw%cy7tdk#)56sIMj2TrGZS-2I-mi05lOx&LbLs*CW7#wS-7ra z!Ps2|;7#}s;**mIfCcIVUcKE4W$XYDQU=w@`pB-(C?0)kYbS50QduF%yQ0z1!3M}n znPcZ9!i?99GLfEV&?g))RfD>zW5gQ^K!%iNWdtI+(!z)?S7&Lv31P>y7bt^Ibc)DTicg0bjm=uUeO!>6k99oOt>kV!o zAv3V0H7T5wSYQqI3duUm>)m;o-_;c_hRPFDXIY9^@{-e*g>i#E zvZhau;>yN^7UgWPAF+eC?os{xM9}h3mLLK22yp@%N*fOb#lJY7V13{a%$G-zMV>oEiFXC0*#@X!CjFEBNZuyBBl2TRJ46Zzl2o)R|XZf;( zVPlT~x(w(%XA;8+#2ej+q{0!Ng-5RzY5hA?_5-U5d%SuN1jD8`_O*?r;i!Y(cIKcspD=~!0PwcM3y~3^VpxN-pQ{lI@!D6s(t+P= zSgZ%`srrg&NUPBZasojr9I&l}CgS)?;HuOQtXYPXl5jlACR2VCC21vUJ>dBAC@CpX zA-sh+feN;;LF_!wRgNvS(nO>Gy*45Qrgs2}hVgTOR|@We6fq%=&m@XmoO{PWNXo_c zg-|(3?|Tp^bcA&F0GjZGNg9vcfprCz{s*!Q&}Li`TkLH=sV3%{*&@N*4wo;ETFo}g!7PA3#C6x{0AG-y=ODlUC4vZ> zp~6jB?cuiK;wma@}(M-cWphpqm8`sUnt{7|GoG2CLu8p>@4(YaxV1@7OoMt zrx$JiDR(cWrM_A$sXUoNtzrmnnUGPV(i_OQ(st7!9iq|9*C23c;%iyNDx=7031LL_ zIWhP2lI+)I(q>AHI!R5eX%#IG1=TRw%O&^d%N`20p-Cxz;ySPry1N=kDo z4=N&NR&ue^NUg=RcOszOy5>ZufYr4E(#{IAo?um?)=4w@v*n3aK|G=-x`PHefUv0cztM<-$?+bnC#7U7 z`@T9s7+g^g<=f~A9PEl|Nl8}St*YjA=I3(%H!AuIIFFjpu>xy$$|Xroh)zLA2Arq6 zTW~HvS#}e5`g$g27}a@bl?i)s7VJYueauBs(-54cevlH|e3C`ERAm)T(!z~@yO|A; zS~*X6I&?-=`o&JT`8<%@DX;Qkdw@F1{!r;>zOdZgj%l1ME94-Va!N>)OGT;b?}j_ZI(z&1-E64D&ujjKw_qU~TMF}BQSehoge zTiV^Kfk<=mahCiX*X^QUrf*})ijPK(40Qiu%2;nvA|>Cly_+m?<<$Y=i~qi^X)A^@0Tw0y|xc?4^<@JZibNz>3toG5CF04 zO?UwcxP!mK=0MO!z2;rOSrr#uyum?dh6HOLRKT3aL3YY=JO?MQ8pD#@dVi=5t$LQN zG}ix$KilJ07fTqZ=r{1SY=#yl)ALm`>I`r!)ZFi1lXlYPhSQq+~ZQVz(VSz2AU^0OW>-?E+>?o)G;HZ6C60REJL|U#W z6an-l*%E5d1Cv$}_EtqP>S4pT;duC!P#cI1SkX=VQ93-8oe!!VRq~>Jl!2N-MJvp` zY(4~>Bz|)NG}_+2Q@>wHr+8(E7{ew$A52&79)DM1r}VSl4fLtsY5gm4qx9sp1*#c% z`9e#SK+u~meJtk;vg+MfZHe)lWDLXP@t;Mju1z7456p2(XdOz_H);MlSnA$yn2N~+ z017)<5m$b%)4$y-f8N@zPq}VIKh%#F2p`6baevvz?bX-KqAhRER3ks^c!ywsN|CNMWwtkC_8E6ij;lsw}_h5HN#uU z1$6cpg10G|(q1qIV@1tjbO`@Vg zs_LBlgVy=84{tF$d`;tulAooU1xfT-@>A`;xttX3iF;>)mlUjHT@RZB6)SpLpxZ9+ zK!>4{zHFazSHA@A{6@PfQ907OvgzV6mlhuE);~Ti@iDM}f8yb8&rS`?G|m_|1dDyE zRd{>n6U%U2usq};fDwl5hm_?DuOD8I)DKpF4BMlzjCL!NE=uLopGK`Y0-9oA!Anib zo8WPhL{(vNU=aG_zH|1wj=eD;SMVvcv7UJB%{{~zFvo-G#U1WuTO-VU?Cwi{@`c48 zK#G6>R7&Dj|1 z+j#%^XOy;^wA=gjAMrIeqn)Q<+6R8~=C!T4h6leN$36~3yL|$&W4&a$;Vt#O)m)>F z#+DbU7kBQRw%e=eD6wj6nSR*ebF=B!C>YeG|FbRx`e*(;eHOHp@=VKgbKjZxd=S`` zSawZXoGaoC--`br)%2M=tH;iT>yX{ghJY3!@gvIw_xd)Tx1zNq8(&#))~VO%2-aFJ zXqya|?;p`jaIgFd=>7K&5SyFs|3R+omG*n~CbaC)C)FQOv&ST%fgT7-3R?5FwOLyRl5oM_Bnn3lBEFenf^R3Q-|QcgzQwH%*3`KSI5 z`Ja&C#M{l4IStX5?EemYLxeqO|N62*<4*|$(QclgcYFP`?2p`V&RgoAbpAH~Tj%ld zwUp#U{grEUmiyIfCszWOlMP36a}vvAlP=!0t}kp(YJ6uWX@A3NW&6-#;k%WOUjqJv zaNcq^t?DkGerZ$ANqpBE`E}W;LiCrU2j#=B9mwk$vRa)les*pVTZBUhaA7okRSjigFpA zsS)g%^=J@NxxmRv?ji~0k&IZgPsd(xZ!36V)3$4%nQcv>(UQUC#YVa@R{jB^1iz&} zZ&m|F*}pr~NQd=VMLFiyX9vSmKP-b*E9dO+=hL^|624DX)*cZ&!|AR_iEfRo6&$a# zTReX)_rq13)HV8}VTP_-YEqH%y@0ck6{%e1t#<9EftIOpY+Q90O^!7?NcR*eH%4(^ zOr-JFW_@1~IW-m_3m<6A552F*;aD$v4eg_G`fC4KWUZFUn)8v7-h461$~xOtOpi;c z=JBNdT1}Jk@5(!hMr86hTCO2iyhp9k{fA`Gcj(i(M5`x@s1ILz8rth}fc*mkHKmpg}oo}AU=;iNhq7M{G5lqXiWh#H&HMsX#o zZFo?6GOWDA&Py+%iq(5TBJ}kl@zARc6y(+GGzri8=$e*|Gs#1N4V`IUK_wvN45Sj~ z?O+E&RpGHX-SpBXu_e8Q0t>$!XconX=Sq4rf#LuO>%}V+{`01?DhGZy##zS+00qD2 zsI+0;N?7^uAg5G25r|Q2s-}%`k+MVsf8|rb&Z;AlMulk;V42U!k-!{*a7*%O-A1{o zo+ZSNIepI^wBR=jqD{>+lgpl(a?Bu;t)psO*?uk@#Cfq6<-m8tYpUvSUwjdLs34H_ zP^np=^4goPL5Cv$EovJ4MTz{xQIJw+PBvHCu&yHkgG?aky?Oi&E%hDjr{wu>Dx=8< zv$PYLJa@8V4=CO3gHp&QaF1FT2`^+RR@y@lj>%ufAF=psHCXR+bp?H#0-LJ>(e)JI zGg7Ch_J!jtKH-H=tXrGLgB}WwFIj8*K4hGzIU&sz&wMy|G7R@K1vs9*>NFc!Dk>z9 z#r2hi7AF%eqsVh50^}|#w|g7eex(E2vc3RBxDl1c54{@7`ip=H@Uh2ij18MAo*=^g zP^MY|9d4&hjMwFfJe=L07NbxS0D{Z}jJ~qQA_50}64VA74izU0SO>mlxj6z3G%aGV zd9CZX3E@G#mjY;UFI}KJ0XW<-trFl$@-N%s2C+O1qp-;`Rm}lvHnwvcEs(#C{W8!> z1H(o(@1^V*+F;B4IP;{X{m;Kl_j_bC_d`Vr2AiWMONk#S(zMG_wHhPk9-Rk9WIOc} zvaK{=yalpRUmIV$ll9Vg!yP#?+2-SOqHoJWs4^^%|LA>n0af@8i|R`T97U<&*>rPr zq+a*^BIc`kXE)DRjUgbOJ#sE{`AVUqcq4$=-xeQQ4GCk8SO~>Y(hDXN%|*9G#L3VE zyBrDM_s^ZqgEiu^TxJ7Qj(PHZSq^6q!5(aq>~%OYijcqw2Ow4GavtToVeSpe3gLl@ zd7+ul;Y2mSE^)!9e%-woF38EH=U@+%1#W zjIASkbcJM}d)ot}gtHI!H-iZI8AL|%59u&3x73(;x?V;Q(@8e!JhpRxg3>~f+^@#oRr$!(y1TFUXZtl0pE@5ytB9*Zt~8qh_Fi}!hVXrJ%h z+L5#|d3_yx6)egZ(UR)_16|p_F+8x?jd~rp!qh1kid12Ft( zH~uEbD!0Dr(IfW7cr5(i^cF4vT*e>{+$7?lH~<0$`bup5ZiTGEGAJBU@s#O+bACmP z@*adcx+*EvKnCPC) z^b0t8$|E_&QOlj;3JFO!Hv;{K4YBp{N~^Js1gxjy^M>+D>C*d+7w%$U;#EM1YCZwk zsg@(IBmRJR9CA@98!ZS<= z>Ee|wvS#M|V)8zmArcn%{9<=-ig{MZqU z=pLNb-qgITn&MA?-L_XJn-^1HF3GwgKe9t_ZolR+4c1ed(TnYjgovW#C#IX#b-tu6 zG)Z@GN>mn%knhiH53jlIY-+r0Z=-w+TCBVLr#<#>)5{Ll>H2zBe(S;F^Xly|n4IMKi^9-KLQD$viJcR>qy>qhk4NjU8XjQwG#;pp1mC5P zNBx)->V3)50PmSAG;T8Z!lXv80ZXGtbZ&`1$|d;1PPZ$n(I)ThkxRk#2U`~~8ZL6q zPpg#xR@BLJbNj5;W&6B0)if~6mYys282Z9sqF>H_2&3Ny-`gg9gks+N^P91K=Rd|4 z;aFNi`!84f&VAekTyei^@_QY=@|zthYAmzgQRRE|=*@qoE8ZCRh16|e6rN=NIKBW7 zE@p4$R({mVU%M%ho0Kn67s0rU1}k}8epY^)v{y4v{bA9#`k9{Ed5G4H9=AL-` z;IA{(>z@>L*AJGy6i;}0A3Q;Si#Y2^8T0mZMG#EA8Sy4q=h)ZS=F`!b^gCG=HR=}y zHl0>=DdIJs!*y|@3O=UhD=Sugjd^dUY|0QU6+?jd2SB)3->w30D zsoztMMN5#DOB8e_PB#;}N(XQBJXQOGFYw$SUslX(U194DHaOQ#pkU0(FYROX*VOAf zHvx7!uxV{((s3?s)TcFF;f1~X>9~xADsUyHh5Q@}miy=nN-tRGm+weB8M|A>9p`{g zX8L^Bn%n2weV{Sb)okGcy9S@1{O996U_lkq7k;QWSV7--vf_2r8G{jlW3`ymnOnt^ zRXO#(*4FyLXV=U2neHj-6)Tam?*CkojKZn<;p<)l{P~ZEk z>b^?IR`IPf?dS*!FPSC7#1~2h$P9~}lQBh!Wkdfa0<<*tcQ_tBTNDI$6X+9>0Ei<< zCNOX%Bxs8meD%x$?sdI{$s%gr!t7l&?P0FG4U6-VL87oEY;5ut#R$NpPG+i$NbT-a zvpe4caeh6gdwD`S5^3r(2?Qa(@u+4MxORgi{!9p1PyeKA8^n%7*)^REe4H_?ymVru z!k*krSlSp!0~5Qo>}hZid#I>3vDkFjDQ7*i5g!Hg7?`T%twuzhUc z;VEkN;DZDUAv5zj@FR|IWQ!?p5L`pNN<`kZv%*-ld|%>a6*OffGM}+^4FHR%XvK*O zTnjMZPAXCo+f;i#CzFrm*9Zf|_6@P2pd4_KYKdh=Pzn61x{g7>$UOhIw7?ovH7w*Y zNJ{)Z&JRTZH+Tf`{bYG(cx4SeZwXx3*2ODC20)@gMSWGpVt`VUjV^7&)CkVRx&T{` z#Nbr&4?*|)p*MlrgiiOrQnz`t_eu7b$v4%dbcXkhn>LsK(EV#ai0pt=2x)@6+hzXj z_;WPh=9NkJwtK;+T>H~ zpDSnsV57OT?-4s0R!{`O<%%Cfr`OE~C7w>-jx7d;o72ZiKD+!@wf;Dh7Lo2JTQJ(BS`U zjNjjSoIHR&6dHJ3Q_&qpz$F?oP7o{_6qLgys51l#`iP^#HYmj_z-OjQ6o;VHEZYdTpsIX+p-#W3(c8|W$O+k*ao zWW9MH)O-KNJ!3EtBaF4N6xowy#AJzNH_RX*l`S!CmLjwaDj6Ef5Qd|%4!|Nk1YVF5B z`|k;QL;hz*p{O+`(D~5Rl>C5<6s~kt{^E)5*n#h40Q$(_i7Q1n|3U0lSpm4dZvMS0 zi&MNdO5LAz-$n&*D7=~5m~-vVqAH6}{{oMXm!JMcS+BD2hcP|AL}4s$bi=YKmri=H zbL)c{S`oIpHWbFn27$rWqwSF^cAC*UryFPFcvjtoh%{?&HCZmZJ95QdH}21OCEsIy zoczf+b)n<$gEnVQVVt%cyCw2ALjS&w>ke_;<9`rKJJ4UU>-7IV76zft+*qRvCgq{R zBNgwPmFoYxtF*NGefKZU^$(#Br9UWrK77^LZ}9ILzpKlJfA#H-Iy1N~bUdQ3sq4ay z1BVAg!xctrI=WPy6$vTw@R6zJCz! z_n%5Vyus$tWeX!4<7=m}<0)tG?Ps(-P)a%#$v?w)^j~}^5XO0`PkMEDvHvZ7*QNVI zKb`+LyWp$Tc5D39)QzPbe-D1Kzaai){4dhSKaH8^ZZx;lo9~X>c&^W|?YNYAaxKBV z($%3lHvb7Z=kan>+6bPD3n)F}RQC0LzzvfDMDWDpo3i4r&2CEgw(bXaQzbJzbsrvC z@K6z4ClX%^9BL+=RjKhx-S~%r`Kx=QPs_Tu=F%_xgK)AO$o{GI^V{{*@9ujDuk!iP z74x1a*Uxk}kYv}dQ>5w|wl8cZ7}+QCt%avw$ol?1rtQbEz1DhX09YKlJ|)o3>u{r; zd`5BNs789A#is{M2Ru!W1$y6;)YjE{uJd6~+zaonk1E+uoNg7FE7t4Us}57tQ#jGbgo1IY-$(L9)^J ze$4KBm5VvHS4H@(grLpA#=Cwmy4+C0XAcwzk6iDZDGN!~mzS83=X^(?w^5P}RPPP; zJ@qk`?n_c064bfp_o;gIG4_K;x}1b}o$9`YK>iOlmyWdFjbEosRMUz=g6nnAudCh8 z)eBx0jDHYtlbF_`!Iy76=$Luo!f|)i+V|-#%#2)Ydr9S9K|R4}w-HVTor)Xo>7a*Z z?PM+$3h3*X`aK8mpyO1GEGr$Nwia&Cs+L*sQ9!!xl1OwA^Mp_l9QK*TP3gmW;g0V% z0602C@1cCY?IpU1t0#MMZ`z7{@iM@cm#gl$`1;8U^!t2w)ELJQJ#5>0S%l zwqC&rc4Q{PHb7JLiH4Sr@rU7jt3Atvfo%wrCUecwDH7`X9s+xvDa2Ka)`<|$0EbenA@V0O16BEtVuzm61nrf^OD505JH20oArzxh zfU@_!M@sx$D#Iohv(1%EEbcc_D7@fV9&|L(W6R%zu_r?W!o8DAS*6`7+2sYFS-K95 zK*HT^5mJ|YUunf1yE;I;#7D}1V9QDnNWfE*o6I%j}F!mLGYPzN# z{)6FgNOTOEkrIyx;Z=&3h`rSiS6d~2Ei9%g04Vl^{x5lSl)b$IMM@s;ONHgkfwv)bkx|0e=3t!f$fIwkr9r&QCRuT?YtOLc5Uj~| zERgX90dzNqbN!qHbUlrsjJJyg4AR{bV7r&7PpqY=sAD5itomQSH2`NhWWsK%8_5N@ zgnnf7n>^IadgrQl6G-aKi8jex>?1ReQ@WGL;?9Zv*$+_8ps^%3290<(PS-we{3M5O z&-QV4&bTpIq!TOYl%2^x%gvw*Sdc_J$|(kIr;R)fu>}!C+fGFaHR@eq{cxC}{q^?z z*1f(*ndeGrOOqv_juoF&_{u_YM%0|cAvsA8)9UYx9M1(%fqJf68_2&_$^#7hZb0;U z-)<{UxAUnb`)cOX^@&^TJpud!je?nS<#)s5t#b9ztvjj0wkFt(Lw4YY8hw#b8z+ob z4=>*W&=)2c#3b6k4RuPf_HVY~6Bcts94mZLK6>0aA+;djQnIiX^;jXN`NHv`Es^mI zBHV&@DlU;YJB+AM?j1l7Yy~y&a`7gM&dT$0EHoWBWM7lY5MpDzvQwTs0iwij?P2?G ze+dFB-GzY6=@820+Zj`;$TZCoi)7Fcn%?$Ys>E-n3!MYfF=qd}&=UA_1|E7a$QcDB zNJ=3p)YY-IZh;}?B=`cW$pS&a|094P`(DVx#vkZe?)z@HV>gmHAcFKR*qs|PWtHj( zpc)_focsV8Eg_kcq4l|t7ERZ8Ge^5aK`?rmUJ4vT$1Te#4o&AnUzk6SDbG=;%rfN; z^56j1J5388=R?FbyX&-o*BU;5oF0sOob?Gm!QecPf=rZ!A1EzQm_>4!E=WurdbwZW zUz>~7b^%B_kx=SbK08ONV6*i4K7IgS!EKITMVc(xptzgY-}wL7ldyOEB~)rTaH&!k z4rNIea=@fnN`@4{MjO848UW;}k0o1K{g!?B{Y2c^$cKlaQcQjm-P)avSorPR`Tds> zsn8b>c7*@_CpVW&vLp$*XdvI{83MECfBy;*1a{^`6#gyG_QZSCuYgb_tCsEXx(lI& z`Se!!D%r}G{JK!nm_FUyYVlm8Da%L$S9dw%5Svt*E=qt<(N_fa)QcAjJl!i$ygm$w#`SwtjhF z(O?&cv8<8SI{4J9{P1_zbs|afQSgsN8(M~wlDS_u?9JELZoUqcYXRiRLr(XXYO`lg?tab; ziVKa_%`aCVl2!|I@RyfV4;lyEX!U4$DfYpwS;j2o+Udy#`{py-?FpsCZBLKN8Tr_% zhQT`i=tS1D$p#3Dr>lqdf`wsgJjLZ`w>ya>kXFyG`s8(_^uebp=vdmZox6)!40{zE zD|FlYUu#E`W!>gbk^LMz}z+iM_!N%&NnM{ zd)MgWmciW`vUxggEc%ba^6G5N-0HcDt=?SsMX=kPJsdf9_s7UDB91NUwQ^oGxLY4x zqf6R3-LihOXI`Zh#KYV@V`J$Fn z%X&#xVW8D5bNM?1L+Xi;yt=mcVYl4PNA=%f>U_e9Zd<>3`hi6~eE)>gWcY*Izg~1e zkHvodmK->FdumPo{`LK-_wu(r*MC+KteI-_udbY>bbUYi{d7bMQ*DZ4a?|RZ-G|{h z8N&U~Z#%z-K8uEbncMqFc5009(0n{cBXYCgC#C6|*0C2`?UW;#OXoAztFeGqJ+fPUKLgno>6?Ue9=#kBdFGgme z<#Xi)d|_}5*mQ9vT)gOajIn3vbvijxUg?y%5DYQ;X+8w&+~ETg@MTA1Dq3-6zJEGB zQGjRbw4J+qpG|D-5k$SX@4h|n6TJP<+}hLimA!1)yAF4+zcL9%jL*fcKE6d!6eC`G zL$3EN3_yl>(Z7F5-(1;^kI3%#J$6UF^16B}%1syF{)kpp4Nba|Icmj|_Fzzs@17wi zDZG(Wz5t_pZNQPh0!ebx8usS?otN6a$y0VsU+-wrx)(~bBZY|Vv9zCc(+<8~vbN0| ztPt}!PQ8qpgdTge!-GD%sJlG6NmbsG*y0XKeL{n}w>2gkW6u)zKk_w3N>-VM2KGrz zm+iH;l;Z}c3~?vfAH}S#d?a8Q7I0tIXj_PVO`#~>V7><7K-6`0gy@qjIBpcGK(Nr! zj#4Y~?A{7zt$-4Vp!09jxvJ&W9|lldg~o3q=Q>`H3_>Q>j5cH>ITn(1qWd`7>gS&K z861g1*VwfLZcV|=Uj8Y7$EDKJhcXVBji3M{qmgB@@;h&sbG97y1Qf~MXfdCwdggCJ zVl%-3CQtB^f!hlsFXmR)5b9-4HCEn4}u1Fk#-fv^nYeMsB)>zs;hbz*6j8{+seQSlTP1=MC}>_Yosk5ahNMbllprUs{@h_1yRLeEBI~US+na^ha!XNQHmq| z_l_zyxDF`KGJX3CBc3<@+N4$OXs4EAC>G*n2pGXz`GucqyZU`rljn^*2;DyW{rkNP zE;j62XAC`$LF*ecUnALa??cma3;NDeB&OCt@zqP0PqO%g);9^Gh|Yc#g~~r~JwxUt zi?c@CC7gZfHRM@NW4tneMidavs?)`u${sI-+R0825@9EHG4cwn6F z$^W*KmI|#~@oIk;1ea8>Bvp>4azb7mz+x+bCE{C`4QS%hJuhr31>-FdAoQct^U zXEqh7JWF;KDk-2PfwbDB(0y)nUpj`BuPygJoJufr ziYt8^6>+NJ;mER&W}roXDK3_NDePG8cmHR`@;Hxdrl#X7r3=3XK+N#@OZM!^&8I|u z4POxdHF@8SJ-PMyXX~@o-2} zdb{g*$rO4?pvg!RAc{(8Pu!O;3cf2>-Q*0pi5tG7?+M_9Z&>6)YeEKEGbF9-^5 z{TJQ86hD71FdtJoEFDRRN>V1jM9x76*NXgMgyj%=1)@w{}z1tS;IJRzn~d9~}| z9v6z!tjTtAsF!I*( z>OY7M&*Y;ylwF&*C~rUWp!|C3fw}c^hk4`J1E>UT_M>6a$-YrF;xoZT=M&!@|8zZH zR@wW?GufoKenQ`^p*1?7`iD^f;lLjz@#(GFl#eexevVhu=8es-l6_>t&s{=#$P`T>>D&GiHM;sH%h5Qv<$z+b$M&{ zw_YPfiVxXhG?VmFg%+Hk$Yi8cc5~Hn(`#m_?&mr@^eYl+SEfI18CpJN16-YDqQ{}n z`@crk$HAw5z$~LnY4X%#_Vu;_X{nd0IXV-{uSl@MK3BqtfqKW_83^d|caKDW7|zkw zID-dgb3~o0^*9r9@yTG%DTI)aUrcFaeAj0ByI?P1+y{v6*VdYzE&K$*BVA7!1?S0d z+PR|euS;YG9bl9WL_6>oU&HgfAuYiv8=@Q*iMnV<9sc+)+&rL5xA8U%3Q#>@nQt~- z^w%?uxs42uBUGTp_-5vA;}2}r7R$Zh>a(X!WO!5kYbdKwylJD?xRt8vfHYAn0;XJB zK_feHzQ!Ds1e|-M-2>Cx?H>(7o4S3>hd39YbPHAs7&phX3nl}~bK5+}W7v0GV+E>I zF=zt&jbdrnfHm-O&=Gqa2<-N)xxL0fBuTw(#*E@S@pXz;)3Q8(W4T;tKt`DprTv^3 zsflDkWxst$ji+ZQX>la}mm4`8)1Nl38j=!dAL>1Lgk^%he|Yvb>0$$pW#1*#Yoz%1 z&+#Z^_lpthjPYE|4tjY}aJRJ$HQgeXb0EJ4qwMU9F(jS*`T%0sC#Fj_e}grNL`>nR zVwg#6l%)gD@}pxoM)%-%^+X*H(Rz>ByZp>ZwgfL-#nZYP~xv=q20NPu^zgb(6-xr(3)8N>|mH5yW5-M9Je zBH=rOp=YBPpy1Hr0AMMB?j63&V><;lgA-Osr!&tmOU5uG3Wys>TyhkXYzi& z-F0}2FR*z6cWPy-#$}=fOG1TMmWRhnz;&k9ZRoe^e6q3XHlkaNIY5g-Y^Mw0cVg_z zodW-yWS9jF*>fXo5#>-os!I}`1ltl$zFIO0^SUziMMa-|=~OUa`=oj98rrp2byan> zgcpj@9;a1p+6uYMd3C8n#ayYTDS4a6*Pi5w(%!{-MChyKPG zvDd&&of@WH!sxk%qJEww%I>Ne8L#gwXC2Cba1?BKn1{BK(Ak2z9rXdWUY3`(#Q^j)?4XwT& zP$r>b%5;c)Cm-`hd8uxmkK^v=6_`({(7;Vy}5r82gv})1#<}2ZrqFOfEr~(>dQ*;I7iV%x72(XnP z>C?Z3n8b|n1O_fq9bZk=ci(!sIQxYF_A3?ke|)rR-jr{q@ni$=o3d_hz+*MSQ^koa zPtoo%nxL+2gv~Yt0in*^CyPbY|HroSZ@viCj0lUgu`R~6xkq-Hw}rV7iqLX+FTp~L z03oNb%x|-eGQuF-#cDDIYPxb&O za=<9Dd6od>RUnbjp_*zD|`4-X-Z|skdMw=+Cxt` zXkVeIfNTLbo+c~rFT3K{=0F75D}p++27n+t4N=psUD<7xksP-XE~Lf$K#9{}3I2d6 zmQdqqe4}EPnB@Q-7A%&S@+9*&3b}8Q=rTTzM(GeIftHU2c?Q%s&6ia144MX%;dshY z>i!kj;K@~20GEUYzaEP~1=jl>>JaX+3^wM%C$ypHFV1Cq*8YGMP!zEOFP7j)?n?gN zai4ZV=15#e%7?Crp-$*0MF0Gk%2(1IM(RdXih9aK_jTAc+KtkC(CtSKm5^r;>Do?Gj>zGpWt;o0w<#nm5-) zSCC{7h&SLC!g15<)>s1NIZ%pr)1Y2Em@4PA?xJrg0*G-|z8dl$ZqM$9w-U)S!B zyJN-M3rF|f)64=hUkbRzG?3BvYqlZ7Cy%Xz_Q-gqUhQ!jsaNog106wp5d!;J8@En< z8$HoImQ8K=%&dkTrvK~fzlNIHD3#aOD*R9{hAwVUZ4Q{8=3HYlvOE zS8X%`px`L3;x_XE0~km1(?}FO`vu5g7qU2%nO1G2M%E0&zEsk_I!(?jIPX#Fb9P)O ztquBjj<4G5I>P6=WHUbAz>n8M3M~fN&GOg03N^iiq?+Z^!qjVY-I|g|Z#zr4%^jgQ z^NhR`XG(b#Kua+o#2yjQln^wxVz(>Ll1z((B8d+Alku5B^eY*g6-2eO`yJs%*(Jmb z$O~SgPBWGG%2;aGzAlifBQwa$$&xWtcT^CN-^(U)om)4s*+W5-e(dK-j?O}vZfCaw zY#XVUo|xVs8(A3YRq7=nIpm@7Wx?i(7e9^Cv!QD{;sSTA94g|aB5VTA;zuu>#kUT9 zQk0dX`JXd3QrYGf?cx8bHbmj6a2Q4T)ny2%K#c410i3*VQ3NHR@lbI2Aj4(uPWRN{{S-IJRMkAEM7%l;ONV@OYU~Cq68OoAN`4zK5a2<)T z&T@PM>7^fG6tnNo8<(F7M~l#I!MVm$qo7V|1Ef^vHg@Kmw`+mZfHo$`9-`o`ExP{g z?Tf?`PEc0cf!h^*sD$ zK5gEyKrws_66*>r?x0Tjd*2D&h=kua&K*C)e)>(A;Hc=uBzDNbxY;`P}F?PlrmEF4xVb~`o<%xw^f{FK;CtwMv!tWj;E7*xH>z&Avi z`oMHeUuT_ruE4P0&<*r5O#-1jHPLc;7b6M^G4$#I)K0iO07AwTH{bGWhT5+fBL%)D z-H)z5S9gxM`!yNoK>^zjw>pU{Ge(;tC;y<<)zBM+?-Q^Q@fK@q|EZ%W?RDrzf)qv_x} zp>LL4JqxW|GEnlS86OX0a3?E~Jdf>D?PY&FAHwH0o9b@NL|mAm*AIYP!vjXAGr)c& zbVqA9g<#2uBJkJ)5^|=&xf>KbE3UUWs`juu(j0Yo-fw6x*{`?M4M+TW{D$AJ1{0R9 zY4{V^V}=9ZCnx5Kmfj3jpck7N4tiI&mF2R%70R^oid!snM~*f@*PC4N2MXVoouaP^x$8Hpkz4%h#rXbGH-z2E-m)v?d{Uoczleu@5Y*e%U9aXIAMr5lvH z8(;5rTlP>|K4GyoXH>v`UirahcSd-P+wP4a-@pGY_CtEiZqvde#b4rAri9L%+Bi7) z=erT5&Ws&H``Z8-|7hcmyQi!}X0+`pzZ<=;_&oA6&w_AM?~CMg?Tyb1IlruSF*ZA~ zE-f2Q<2^bIV#aN zuZ=<<+&Z2nPP=x9ZuYV<$vkf`?L@F&Gi~WojT1n>stNe`!)@V9&f0|8gBwwYZw(Zj zzExlbHdX=WpUfY=fk|DP77yX_=&HvSl`J-$XG-+jjiToUj;{IcjZWFIh&@uDv106y z@RY8d_dcy#DeUkR5zlR|(&H()zW!#>1PXSoDamVWSpB(gr(6w|YN&tDpH2HGcC@ z#r6yjhk;3(^ov?|&x>vEGEjIH`%z8Kt%cTbUWrgGKJZq2iGZRtToiknunVfhBG<3} zrDqiIc?YG~*|e6h(d}?|>d#}A`X@(@)m7e-*}YRksy~iRU35QK?jBaNL4SGw!(ARZ z$5t6u#)c=;_3#TLa&B6eBX?ObXy+;!1^YHsXc(z3{P6lVB%^uX%)N|Qf$!sL-&K0> z_z#0XE_Qh1MD06Q{?WMBJ$-_m_wCK^NA3$asd=KJ=BV$ND^E=>8UB(5zFOCU&_H1C zEnj2tz11LQ<9bE{?Avc@uITCt2In?dxW!y^IJ5EW+0b~4l!3s+j1177WXeaGuGdvT z(15)&ED@3mryVZ*$g6t$a?zQP45@~+tx#nIdtNhoJz8IF>g>SYf%q zKzs*158e*K)cNunQDgAM&c?Y5Vd!iwllP=x7Xl3 zNmsKTt+(`xGmgrQ+-WO-2lF_A3b7gpf&e3AzRd7!aeuA<+<@(YMm)CE@usK^$hQoS zP+eR3ib<)L+we_Gb}d_8DmKVjG*}YANM_fh;|8N571XLUbr)`SQiNYW?CK@ki`!gV0+~rsXdhn|5uk2cKAxrMT#g84(6cuhR~A3! z%7m|#OMktinceTuGF_r;N;17eoF6WpfVZQ(%w$8-EImssk8#Q(TmDgvexw0$p1}JA z(v=AU>C=1$yKE6`()5OC3!CJ|rsQ*ju{0>4<;e-;eq6_oHbCl{$Q4g>6`By+Hc47_!;(%#?|Uv)`r6UZ?4_xq%QO zfwJ@sfBnMUxqzfiXaD#sHZ~R6@|D&uT@w$hNY+KGop%=^_Kz{O|>52~+E^ z5!BDw`A`x+&#ZMjtt!@SBo{f(L&~h0(yq`wv@_)hkl0`)3z=7e0|Aeip@K8kvAo30CQ^k|=R#Sau^#m9;#^z z`2tXV??4Sf7m%RM+>LM57%4*4y9vb4jP_2%D8nZ{vK`;s7|a}a;XXu2G7MyppI1T} z2bu-D>7ry~oUA0#SEHAevxW2L#aN+63*mVqxv;a)WTLt4E)9DbHxl%ko-yc?TBnxo zD+D7vqrIY1xnIA%{I1_V;VIWh@N2|J3d6q+DQN!7Ff~x>)pHf-VWRi~kr7oj>6pS)|^K91;(vl#@TcwLCXIw8Dq##cG|F-EcnE$)&#uboI=|>qZI1v)+!lL_C zbfyN9l^J;tXc{Jexu~e)5q~OmxpY$y^sL&=SVSeG7eA$^&%>+!_n+X!R+zD=A|(E! zHH36VhW)uV2X{N!4!1QWy`uQiasBKPORfSLUP=*J4n&Nd55Y@}%y3LaaI^Ea(*emL zZ=`DXy=9m|=ZpmI^^+W?M`n0qV8)f5X<`8!Y^78%c7t^SyhqK)(Hg+{+}NA$H99{FT4#d zl!b9|zJ*!iwI14av&;z0Cv&0WFb&fZe&4H5xO;W#D3fBU%AmRCv_*sl@*l(*Tg@gs zQdyaYZ$dcO%Zf9={_yX({_kkbNOfcPvd|iBWvn51cmPnMf$Y=M{OvLMUmJ+Fp&kne zDyVdrB>yv#dsu>Xgr|z|EF&he>?X5z8)a~80BnViw!z5T{S#RezIZYA8&LHL!R0S>TTsL@^9MY~+ zEiC`t!32tkNTC4A%3AP=C94j)hM6*EdMrfaJB^P&-ylGBR8jDxio*949Hk)+E;;P$ zLqf9Bu?_1E44Xo#+*X>8WWUG&Q)7sbK#Q^wz(&9|#KYToAZ?^Av2H{Ag*AqtRmwh6 zkT8JdO9wB@zgiF?1i?n(?}a#Kk(8ZikXPwYnB=lC9U#Q(gt;! zA7bP_{W0`YP2Ad=W;jlLAa8}nmL)G)HeI%UqFKr;bW6%?eQUM};t`fHaB21qI(j1E z!Zo^ME1;~s}`|QTkEyrpdsD+5mF5l(4-W!hKGmw^Az6Bb5ZA6vD({UM=5J z;;6Zn1*pnd6WNQFJfscpIzlPDVMPa~7iJCFLuC`Af^w3J8*&SZ?~e8J3ysKL&YTtR z0)&m*9LDX)aS{1c!irONN;X5fZNRp+A|VvHWlK|erB)2<_S+ZuETqCjYq?V&`kl}G4o@eU_@a6bTLxd|C zsZvy4lAsS>fu3}G8)K72r!3uMX*Y^l#&CM?`i`2tI2gOSs6RZm#LEh%p!Jpg!~{#= zM8x~6)JR%Be8i(B+@(G|p;)`^i)5yqU1J4xLEiP2OFdHA96o4J_?wA)_Bgzy7)6m8 z&bszuW%`G)yp2N*V!n)z3(sFYW+wY?*UtFNlL+WWh;NfJE71``%2jc#-3-FjVm+*y z6D_qRwLcqeV&F(*-4Em>0*p_S`eUrs7-;HFPW(3FF&j+fD#7BjPoUp{cP2weI0k<- z9gS|p5i3X9YoK1{ey%`30ech7l>E)r)JLBy0YM2fyjp6X-dL% z#PbK|b}A-Nxr&%r4}Tg=SkNd;G2_A?;N*`W`_1#AN#JM$>Vc}rh5FuMV7R;KXI3p(YGJcJeW`5p5)= zgE6%9jR}YwF=p0!lHQ(NU4UzB4{?dSf{(a85q?gQ$P*3b0${EO!}{;&XPTNFIbeGfx>rc$LG%zx2a>Bf=02rZXKMdU$mT1k3R7ai**y5aXtPtP*>k z8QN)dqtP|SX43%rKRF)DIeoKZDC2M=yIrMB8>t5@kV%g4J07mby6_XcFqA)#SLWdi z++E_GPChkLwk1+xMGC4ssoZVAhS?N2#QB(2>d@lu zv5t?R&m^w)lm;@oq%r=V+B!vGTk zYmKl_V-yFNdBVQJ{@oP3j6Qtcl?!f7KbTf7t;$Uic=0VXay-4Zo99a8n}Q~aQlLdw z+1L6XwYRbknxkv6V()G>K02}gYu=}aP#!6u`z4_|P5g)P^V+8Qcg7O0KK!*Jr_DV-UGcW@ z;+*!PRP&94p?|$6-{AY}Vo&?~MbG-LkLI3nwNu5u$mAT}dWv$R^7+!2>^0`=!G;sN zPwb%jRNb98_UG8{cdr*RCI3OBchJ7vimCke#}2)3qpm7T!9UA?p(a<+o!S?hp;l%4 zQP-bB0_WTT`L?EY{>Ax#^J(>B-MbV2OcX!2XXO0;{u`%$T@pBVu$BF-ATDWa+l%jt z7nA=ISx&!dp&W8E>izEe>3Ro{RX9dt70d=E0HM|G~X9%3z-osZtdJCj#K8B_mBSQ{XA(m^ykB!?|lPB zrw8z#A5U)iW&1E%Czf03|D$UuEv)%V{8XvQKZr}26RSUV+?YEg|Ez7TcII`I92(D_q_D?WVV?jG(@huvunGMoMGUbg%0ed>MfamR31Mvrg* zXw!$_CPTl2T5&o7ck-T|fec<(^4j)2izz9+n_o0_dBOzw4%hM4tdK*&b>^{GVOo~( zi1}^Z*aFVq?HM$GX!LqFs-O!mzwLC&E-b_9#7xY;~34_yQvxMUPxn5eB69E;#b#N@jO?17GnEJB_>1GKnD zHM-<($V#UpC zA+Lz#M%gd$D8d}y&V0x-#0mTNcdt;6=EeyJa#bfs#e>b?)HNkX-*8L{2Ow8%fVFz- z9`7XVSG)e?`wT#S9c|DhJy`a_*z8f8hfn{eWT)HgmZ=b^f(iP@2_Wr)(v}DS7CWzI z=4kkatF9S|hjaEt#OwY&!7=TIwi&eveE^6e$LZv_(sHXsvYbgtR;&cD7BIg|DDZsd zHf?1Ygtu414m#zAPhyNZQ%6Q^)xl(7uPgv7GOsHP*nn<;d^dTeL|5Q9g`$P*r_}h3 zV`~{JPq0kC;ZDjk*Zg?<4UtrTvjh8eucH@cO^^s)QpW>o#YI~p#dP$?@?7`o`a3E4 z0D@oFj~lRZ%Ev!^JngLc-(9zRVg3!Ja*uy1m*!RG6eu=qeq_dj-tqwde?iwx(5l2K z$UyR_tt}o_bjY#DK+KnKitfW3utV+HDe=Q}c>emr+pD;Hv@Tb|HI)sX0yf{#ER28^ zv>gg@!%vuvg7R)f5 zO%AyN7V*`i7K#}IG=aQk6cL!L6GA5NMGzN2_RK?3{d>(9gd}OzqehA@`b;C0T%fYL zhtxHJtE=2P{pJfCCx|gt)hX=7bWWXt33)1LMD9+=rsjA8&wz$C z56S@76cnjUm(a2Z-vnB*@71q@u)sm~^UpAd0lP@{sV|otz*sI}%32@-FE(o9XJO4Z z_U_*A&z7+_OyGp~L_`wz-q0&%!w|5^-S;!=#?^4dTKSPQIhIcM+FMPb@p_3Zu&!=l z*p|gFc4@d5kYsqq^!iO()LF2K&F$%cmf#Qs0+RrSN)q4u68vL_sUcUrEQ||y)Ot)u z*ciX!|5=AarK}zgZ-9h9r?z$dCvosUgCPGs*jWI+vfT#NNVa@TLwEq<;eR&NM&02q zs-Lk;WK~$`3q?3t?_m`T3GR{yU>vuUBpW%Fc9w8ugeE@B7JP2gW?&bqfwYFT7sf3X zxkp5VQz!c6ttN-Y-P}UzL-bUzmUVeDRiFNMsKWF>!AaPFswyI8O|+Vf-?@v%t5!kf zUB>b?l5J=(aN`O9?OFQz(u;Q@fmn}C`d38FQd9RGZgSjvdJ_!vj>&)Ob-n;~ zz{Uz`vk!)KGOL*G_L%00D6?YNquFg;Sm7B*)bJmcPsHn|Z+s!4q7n>5HAxUlN$vbV zRHns(tJVQWgW@k1mG>YaK-!=oB1A-nheCdjrD%1>5LFyah^Jc;V8X4Gx=+#%sZ{&h zMm{AM*8b<(ZOB%Zv(tACc@uM({(k}mfGNT5LsTJ6@KlMj5cO!Eb+6L3c}&~$TS*Ys zP%;!otCYc%UBG)zcs(*CvXxm$dJs3;V#zsg>vK0j1*ru!qz&o+1Qh;_D!`V><71NE z>Ecq>?_2!e|G+@K+@?{{-^Ozz!TnL^u%!?0G`4DpT}uchGn*lJSnPz#2+Ni@wjx9&D!uW*8Ow*0K$NVhOEQK z%UHCQaHc9@!jn2g(RJ;QN&{qp+=KX)F63$LC#4FdailjzVH!&M@|{VE112J;vF{8B z+vm{h$J&2tjZ5Ay+j>UBsHKFlUs3PCqSZF9?ed3wm!v`hcD7+f*e7T`Jp*kki=LBP zrxIF2_)@mApDbHdZmZYqD|j9*LK9MxOFdnAB75f9-)o=erUO`(#Vo-tO(W=)64jjgfNa&zt+98c!QY?tNjYZ z{eyz>uj!Cf!A!)t$9{0KW+N@$F3awubE= zRTWx5oqA~L6Jq0tj7p-L%r-ld0iy$E@>Wsy2O7(VgsnS{vde=LV0B1cA}?=EXv#A= zcbbxX0G|kFo=@yVamT;=oo{ZK7w-|?;rM01okS8(LGHW z+I}BMUvtge<~Cjzp=rrm4`tmplD|EO$GkbO5TejFGo0Ue3oCL#aMuWGb_(*3VycN_ znK{4>ck5g)EtkRWG<7>_u8G#)Y65P0CagW7fK7*^kWE$wIl%^89S3J4h%g!fz(j#p@e>2fqt3!$+ek9xU;~IV=5Uy`byl^= z#<)5U&-vLuGi1_lXh;MF8YvP@5!0|42|-NQ#U5h}msKOm-dngkm!h(J%10xpyp0ZF z&-8Ud4?f#cByvD*W@~&oc6bISuWJFD$;X&?A#DZg+V@A-F&d0Myiw<_sdTIky{I{5TdQp99-w%Y6o+Gu89Osh?Hu(w^=R0#XvLS8pe~G zD=TiN(L4GDuH4V~n@&wTS6_G>$RA5T++;$4X5>M*Tas6lJ-kh(sa!S4Xe5CcO#l^# zL$H9|n{i&Z<2CQQaMuNU+t?j-1o*ouGo~jdV9!evo-`pXpJ8y%q|3VbVMtx?{Q_>$ zL~L-5h9n$jHv}%aW+QcH3YaMucGEztGPJOh!kpKPNXg3tO(^&SEnh19J0LAuNLyaz zkL9(HQ0vAudW~4GYI^SzLn4$a*7-)cI-bfk1;lU=WI}+aw`{7qR{k~7q_{o2ErTdF zxRu(Zp7$2|ZFm=+#Hr8aX!jx5L3Y4yEA4C-oOm5zSr+&E7cJjB;=V$(my5H18+y}f zmV|q}eAp*AghNPL!9H%o1p^XC2||f^AZ#eKM3pn>_3t`zqy7Qn0-&n&-cJ`#cuWmL z(zw?+LCbs!Oa>kIjRB9h=$dt|vz;DeBt66P)Jx=iV&~oEO$F8ktGqM{!3)$4#ca8A zsR23Km|&CJfDz-(YCIY)^hd%YIayvZz`Loy);J9oeKjC4yIBM{!yLt%<3Qz7WqKgA`(1xn&C|cSrAD*(+Erqd%sz&IE`lW?q!ivx{o#Qf( z^%m$w4sI>+)}PE>cE-_CVg|I8xk@dk2JAoulTkf7&rAjL399kqlslxmZNlVB1}Qo+ zia~Pa?o!>Su;ZReytV1;jJP9japMY_%?7w;hfjgpn~y~G|-u%fPojKqi?4%vz0hgPLY_U5xij(`^p9x z8CTq_0}cFkPw?{1dL+A@d@W|AXth9I*fG`sd3M#+`(C-_FQofyMZPJTa>YHgZ@6}97$UUmuto}l!` zC34d56ktpg{_(Gb6v^;+kVtX-(nD-A!SdH^bMj=}!QOCi+$lGCU$S z8169GR6}q6$`WWVMWu3xR1S7`^f|ba3;nx3hC7G4+EhWa=DRP`MPR9hl+&bUb5e~w z!1co0*-y_k3I1_8{QF?dUclEF#3UQ@Y3+g|@?UAwush|z#tUZuGAh&|!Wn3I_EXiI zjNbG-j+v$kQ~G|~-~x{r=+YkE)k?H;&Zq0fxjR9PM?2FmumGl*pWvm!-wmt*VoonS zH8IECg_a@S4K20DEY4!zY2WTFEHCLT-O}G}BFJIA?-Q0U&|`+F^^VjS_)K$Z zHW(h}>Ta^*=IykA#vSX|wr>$IdR52TkHY{?uOS3rf%%rXWUDPOSwJTFKZ6Cfm^UU^ z)+WHL^t*Tx2_q9y|KGVz;Qu`+SZ%+ImEe^Z{GRs&B85xT3KIF^Cww$EvWnv`|2s+` z$X4600LR+Oq)RL9dP1>q)9f(2ZNX}fKu?!R>KaS%#Mj%7-J)Gie!G}Ag({I8l8i96 zaLoac+FVJYrdBFY9EG_mFsNmR!G{wDCjz&a_XF{@SdtgnQULtE#N^v;etrSnWY7?{(FkvmQCjZ+d`ak#GBV9ns62+jMZCB7bN$f&kvcT62&Ey)0isL3dEJ0{AbRof~ z51)YQ$Q$0UP2(lNfA8s>0!NmIZbTIy$lQ*drgjv!V%+rrwJK8Zb3D{77WX_LDd;r2 zFJqit%sYa^Z2&*ye;w4nf4-D5*8Psc3o^jR+Tq02Zyc%Fg&_iB;W=_GrQ5qQfTv1~dB^p&i0 zB_IgpTfXB5CZQn21S?&{e4;S^MT6mvJMZ#$DZ2%Iu3O&xM@;o5|NZn3WSZQ*>9VXV za(qqZ)O?&~2){${ZO2dx<{UrM}suKlFwp3JY- zOhNn7+pmZz>q**{TRkD_ow=-1WB*BEEMHF9k7Pfe7S>)7#6LBPwIxR_;U9XVp!9G< z)q5$E%9C3&U93M?()t_A@6OCsAtQNRIEe6zjwg^|5J32!YySTubo}?XPIO}uA6%UO za~b^iR~Q#jSZN}|6UP$t2l#N9znL}yL@*EwVo3B zD1>Ou+#xC-QCA*Pd{a*%y?3>ChL31OCiAANAQcx8!<*`X^+|y1IT_j0!(Lr*?<4C) zp^fAlSKR&7L?=A_GKS$CXse#+?5PfAgpm?J_b*RcE0s}&;K#|xVc3Oi`MVu5qzccs z!P&=7bHAE|$%?ZlzsHN9Y86FrB&!rv&hb6&={&<8O~&3d7m8N$u_4Hn%3~%&>qTPk zg;Kw{^BoBgQ!Clu?PE0%Kx$hr=Q9sc(l>Z0um{R3F#)Fx$C(?RgbL3j`h6;&#nksT zDTiUK*sDO#^;dHdwFZ6;R|hpApN#u7pq7|hKv*GqqS8a9A{;|_2F_Z4UdxR){cqcl z|A(sY4y1bj|33)Xr6Z$b6xr!m86lFrXF_FVoI=MbE6NBN9lMT0I><`22uaC0$cmF> zrEo+>NUl=%_k6qe^ZER~|LAlaXS~mQyq=HQATVqmz_Wm^gaCRszSBfxH^o%uw`sN>v-rI&)F=2iJxMU zY0kT6pfrnhNvFDhR%`GPFRMDe=um7DiUb}~_daXCxK5e4MDPT+%oX?HU`|mB{f-PR z`mrEx6SnYy|3v3v*i-6Rq5D#DZO$gX&zW($eoC?sil_jGXBsHr4Tom~T2vHBdkLSZ zBnWot-%-$~Zw;@>-1(vphum>A14d~5Ot=7&I&i!$D$Jd1OSmJ!ZTnL7+8`KuLa($- zh({ruUgRx#7uEr9h&6k+v*V1t`s{3`0fK-Pf@wq{D5>=3tY-%x=PvQZ+dO-T zR8zpNvmQ%?Ns*XwW$sxu^)hj@Crl?9j7b8RsYRf80PNi7)ZzhI7 z$X_o`Klixx>=1OU0o9#8uNv`9)~MSO;Pt(0pbE4ea4kxbaD_=oUq$ZAb&;_PDs^ zMRV!HgWdcBIrZ8v`}*V4qrHkY@_BeE1l?el4jkS*CCdmh_l@eqnN8&M2Dw3(zZSp-@G`-3j62p*=!z zR7gQwYbq|Q`uBN{5<7)u8v4TByERE(;&}srM)Y7o<`3jO@)mmGC9n(m*`hh|5MfQ= z-9xNy4>B@!?*?hXZBT%u-zCZlLoV-U*2Y3Mz0hMjh1jU)oFF1KJbCCb6Kv_^ESUvQQXwvMRPJ%+SX0L@5Z+#+@NP7{) zFnEEkrx0w}P{|^>22O5p9=Nu~^{! zkUMkX&WV#5$hT#_p}NnQ=K#?LYUkkV(w40^)Osw=Lh4J8Hi!zoVtOtChB zI#~?Z3#(kmF~sVfr20SWh5|y&K|pH(_S5_&%`_6H8SH)u$d(u$Q$47mqme# zQ1eLELi8Fh>l8UPjN;mT8z!3CbT}t@r2x8;90tEr{M3mNN=egv2dNasm|4)M04$Z6 z2oZ+U+~0#9^*^q=+~crj41*u;6i9mOavI)t_2VpeN>!ea6ewM0?mQJ$mi&0xun+>T zOp_sGN^rlo_Pi4CXKecE)=T2Ze5#;3O}nr;4YzoI0XbOsy4zH0Hr-|x5p*8h!=8Kq zW*;?jT}PQ3r#IZhk{luzVHn>`774I|TAE%iSPMC=ooqbmEnW;aJFmAi9v7IBuyH3C zXP2;M!08+^J!E*p?yT8BQ4!4GQaOL#8P)j+7ItVP?zp>X?{a%6S&V-0W4^NW?eCxh zl!O#d+QB|t8eMXNb>DsA*?|Q2wLJl>jk-?clN^~#A~k36>xG|!oxmrj|Cv*M3-$jmEniO}bbS4wuvE>3&w#Exd9=Zc78|AAMx+GKzyVmtN%g1$hg3KVH zo2j6L-)po-pAKe%9i~p8+)adG5_l%Gagy2m zV3^Pt6RF|oa-o!h*dnfJ&ib}6TWOa=C&wNd?cCp}k>aivQd(_!8PY@OwRQkptChzQ zWedOhnxutN8POds3b}9|v2BIO(tb?0Ov7*Hqe=l(J0Vw_t|q*j>|tf?^3|j-X|IZn z8q0@WTavly1&904@T~Q{c=I$Q^IgWzA~sbcISKG%C=z~8oC zGu6-y_A7v9;C&aYu=9Qq-;29C;gmyL;730ao{LMU+{<9L$J~?ZEN_K{Tzjds@Avtr zw?Vc0Cu=9+Sb5nSLI#As%R7@?Jt1RWLV@oh7kma>y)j(`a))yauSZLerFGF@Sf;T1 z5%QTC0fyMh2SzYhW{yZ}HYx2AE2*E2wP!Mss$@4L=#dr{oeecqcqOeW#WCz`yK_Op z#{l&S(oltLz80-_a&OE}ot`oO zQl{=fBbC=Ni&T}7f+Gl4Si!gqxFCyU~;N&P*hK1?;d2ub7~E>HS5DuQQ_9 zbT`=XY`?XopReQ;d%9IQgaD&6Gz!bo3S+9b6`dB)w5Mxh=K&u(Q1>J^Pq=Kro4N)r zNr;$QQ(RLteY9wrBPB_6qhlaEtQ=y=kq=P0t=8>^n=;m3{Y*4BkN@a*|My8tFG3a- z%Esgoy9{bOQmX^2Z27-mQy8N=w@sgyk;S(uI=>plEa8Lxrr1Q;Ie(mzpM|0c&s)iR zCUv{E_yyORTl4c~l{2YukaXF~p{@@KUMR$&m0~K6a})sqi>L z(&Y_iA)?gn(GGdb@XD-sd#^Rq3L?&BU)o~PKvIS-C#Q`)jDJCw?(gyD;`<^9dxtwR zqcR2a23crEkELd-{IK>F#maf-K5mqjo%$k3J%A8_u@3Ye*s35;g#L(>)rLZ(Q=$4M8S>Dh*?37?gg*J$!{6U_57KjV@=6 zHmUpB&tOtJLEge!ux@UX;bU_bdPjC{cF%! zONy|31Ag|TG=Z7Vk#E>WHzo9_BQa`#ck0B4(jFk`3{x%^9q2n^$QJ(uendNV*iX($p$wv zDkY56>+6(rc18uYTz!3?OXE>D(JPfGqc^K;W-WAD59oVV~_jq}7Dd87& zAWA96G;gE(wp@V$X~z z3~b`X?8D9sOWYPm2zR)~&MrD_!8vneddjL7NWAtNn> z7+f@&NSPq(;Ua=iF5zuH-k4ID!7%>;-DIp$P!OJh)H&{tLq{pc_K16ymqb~2a~r6r zd0LJq1i|_imYz_|@=oY6`T?f3g*Dx#f(VgibP0sRh584FZUzHP8-bhCK)C ztgZ(Ao<_p{4muf3axA8mNxFoAsCrNhftQ;C9cUFkusH<&?1xrgV@0AYfCZp(z29o5 zmTKyF&Xpwcxo8J5E0&bwx>44$V&_H|q2_amxfv2pnA&0z#97i^SXK4#lj;3$VKj9{ z!R%GwlIKyY2tQULB4R_M%r3Q|Z-dZu2t38aM1nd!kgW*w#jq}|dD7#~1yp%gxg zS5qieV&fjBBZDN6#6*gO5D-|_aKlIShTg&T!l*i*6g!Sx&}${ZX@J!MXY>-V3U&lY z;IU5Jks}~k)T3Z6v8LWW4?*Pzd1s?-n4pl4(On9cAc@=&GY(Orru80$JXFc-95s=% zti>m~Ep)8wez#NsTaZ<{gLPD-degN2prI?#%oc=GvZ@|N zEXf?CtKj5>ph7H&bnT9@yRa%r>=4NYc^a&6c_D7JAJMmkBvmkXKDCLb>KlhhaOyVQ zn|N6rOA5W_?EML@jiygfq2Tl?phR@!LZsFEK%66dm$2=FV2z^Joyg=})GHGd_YV>w zeVW%h_XVg*TVUQYPw~DNg25#DUcCtH^xErtV(Muo<9K2_TZNM! znDMMXvSPz}0B9qx(S*tqmC$9@Aj$Owrzplkv~G~tL5we23&MlucY3rBd`O;T=VVga zu}T%Jw)8rre*G@5ZXt!_EF#%oVfls7Iu0tEQEIUoNVG{DySMD$i>-3)6~!*h=E0e~ zV2w9`8csyCdiIw#Vb0Z_*Mx16_l?VljQmRgYwHrGHCvdU+vE7~JWlKF#qF_M1mdZZ zfm2%fYBO6S2D=(?FJmCdqf3nEuZtj)!Z3us3BwI@dQq=N50);`3xA9s=M7lkGBQ?3 zl-1hkIhJ;s*GG#MCQ=;{4{`VwMsR%V9Iq=ThN|QUw);U^G4NaB2D=3e`9kpC)@+v1jgvsW0f9^{h9Ul6 ze>o0xwtFVXuEA)Saf6}H2gzmOcK-!rA+V(YMZh{(^sz6&TsqZjM&1<*ZL zt?bMvtim1LyN^k3_su+_g80;E zFIi1BoHi4+T40`(LS8}ruARA$#HCUe27!L*7^3Bv?0US29I;q!!aQs-<-yY>nv+9W$#I3`+}>#o#zeTn>^bM5F2i-!t)fq zzAdGC7Jv^p#??rQNeRK%l8Dy*c_u_=J-{BNUGrWEmMOvTzFUo?DU_fRl#&Z$H}ZmV zTx=mpAm1$PJ{JWJp-)Mx(lidiHhsF9`CD%}-p$ftedyYp@ub}jEeo;&OMkieBQ6_d z%thZBVd`yx&qZs}AR=W-A1YYGPry#WyH|>w(tQ+my4Kv(N<+z>lL!i6q$)@vG9w$i z6Hqle#uLmEKdwWugHW6+v4m(nD<6o9sza_y4a48g6ntDnumk0>8pGCn8bb6MUR^0O zZ_ zQ#b5tlbss7D#Iuog&_3WJf()=mT6cS0CT4MXsV65LOapc=+?Tbpbl&RShd1cmhZ$f zEWX)dq!In zHe;NAlng%dl{uO!Ny5ycH;+#x3YOHm(#z6YCkZwHfU>)$+dSQ)cPOc6*jAbqEYc!H z;Cjr|~M z(2Fs$cfTRf!$>2D>RV9cP3l0kVr9zQCC6)}l5N8Li$UV8z446LVOY{Le9c@FQe$Yx zp^O5W$>IIpXa`VVX&~OY!vBy-Q80F-5Xjrp$A5kxvmcTHjSLb0{lRBwp<&3pqwDzF ze@HSI3{?@yU6p&8<$`@8F+RJC>;70$u(oUflc4F~v*{qeHB=YgO5cjaGLS7^iG`pV zRA(D-YN*TqT{WYoAzryrvdPf4dMma~?vZ$5*}szzN~Qx^%yzy>ibSar(H?g|`>4zH zzEX~9BM!CS$`sbTd`Ie*J(PCN%bGgM6Yp00s6;vZuRu!{0*=|GH`12SHs1Vt26BpH zGWK3jh4O#Rg@~P6Qil>gB;8<0ek1OZD&ZkDS5llcR2H837>q0qmR zbvaAXV*N~hrT|UxW*gGCqm>u@KSwdVC!?e&6xO(Z`qW^mij_iqpSB+k#qmk}!~AW3 z?0=+{NZ55IWGV3}G5D7MZ#y&Cdkv2kt zx9=&)jLRbqLq{y6LrHbZ_%bl<*;0Yfsn7A4i`6K&tmf1-N;CYrJ(LEdnmK?JO6g$B zJ6%b$h3hY%G_j8gI2xD*wtTt0k36gX8^!Vw$NNOCYDl-gt90gS7`5t{Dbs`^ZsK9l z_?HdC3Hp)IyXjrO=b0vC|D{-&TnXfpg3j#8f(F~nujK;Up();D-4|v0?`CSyvzw~T zuN;Z(;N$e|>6Mn@y$BNQ3OVLBi!StIE!(4$Hg#OVBN`}xgRk^UKWSC@#v)lwiGPAS%l#LJygLJ=86~R6lqyc{ zVB?p?g+)=^74ML!;mUv3(o^JIb z^s?e=B1;ZbSU&j$eWyoR2lB3er`&3%kwgG(6;`J}%Rn?V00qZjefj!9vcVWV674Gv z)oWA%%5GuwUPv5206VGsd-Tqoqo7E)^kvi=jJ9y3vP7$Bg5eoCQtOCHGLQmAjHPa) zHQVgDAvazZMGeQha`uY}d`^QJqDb_v{b#;cqlR2Bl|sA-H>oh%b!SHtCC}Pv45eoG ziXCOXHC*D8*S{l+Fr~jOnggkO>UyZc^S9Nw~@^#T78(*kdF%!s2KXWx1zlCZi!!pag0U68^IP&^{sNJA{ER< z1I-g&K@aN0%ixNGf<+q}Ym(PkMiRJ1rR^+0Hp3tu4T)R03)^ul)%7s+K%NZow#~Kj$B<=z5<%P`#pIyQ?ML-hfXOK9Ro383rDFK z>3(zqL@Om-{jx-r3n%+y%1(OaK2k?c@KE`w!6yW*^VLT)DgqYGJA~)MjJk~>FdVDV z=M3mDH;?lTWE#~-d}?v>9;gv>Zx4Z9;=IUYKZH41II;q`G}DI*`1IAZgEhWK86KNT zN>db`hlQ3IfZOsWC4m>-mO*E#K+g$`2xvC3SFv1%++46wpCH_Pw-3UV!9~&b&2P6v zPOEi+w`ZJ#pu|r*;kTtlp`NbqE4^L}ETmNI@%OLnd&zo6?xT+2mQL>LCoauHj%$XG zHofP>N4kx7Wahtkf8yeckGp%c&K_C8B`9QkSM@tMWX zW?uujT7Z8~MdXSD7*FX@Q?wg3B~ z%+`tL$}V)@X#e33ukUm3SE~GM@h6XppE4Q#G_Nf4y=>+%={CL{S?ig$(2?AYo<*=6 zGX11o=__We`@M(=r*wg|BVSh({sQZmEjOT95jjccS5OurzKx{|>t$QbMPx_MddVLE z3y`7cby*$O``|K3u%kF;F8zT4jZZLMSGBh2i;{Njoy&o26NY_9{2N#73nZmfQsSSc zVZz`0u*NKVW(Yq&alckM3?Fu_^`uz7(fDi?toH?f`R3`1Gu?bu9KtpE@ad?D|K-5_ zBbCqfsogwZ2j`5Qru}|k$@iqu0Eg4W+>}W6^p{T-J?Ye8XZPm7W}z2QKm5BanEcPR zS-sHlQURCh%@0rW9C%2CV+Cc&dxoOwzP%w65z}Ni?G#YC$q$dq3NZr~!h+LoDFL8m za+2l(wAeuf2+L#u(nf*@HVY#lJ`v>9Uf_}Q_K)-@`{PEh<6V- zmhm5$Dh+$_Jx8(ik_4MXU1481{8*-Z%Uaf;Fi*h@+(zCPE~9~w1cLKL_o@X5erxla z3wWbxh?>{!PmMsDkRu;egv)S&N3sle;(kk&EVc#cb%hl&n5?T|$VL2JDQX2sG!rnR zzsepF_Q>VO7x6M7%j6Jnf&KP#tg4f@u;9Qv2S0B+u*yat?VDto~td%?RYA~wfq0J&U z5!$O0u*-K<#`0#7BWmkUR`&+tS(mibv{Q<-fJsmzRz$DF3%FH{1jzCB%l(b8sJ3_- z^2RXmGVy(;-ainED%i@RdZ6dM%BB;6{ZyQiiF)sRu&k0W5W{GARotudrN1KhYXZvQyh0|2#gr`FDql(EJLD z>z!^noF3z)@|j$c%hfOJ7w7%Dw|B(lIxpi(m)$RRclOoJoKzWCI(^bC{?HM0PUVvShv>QY{;F`K zdBzO2GuPZ4aCm--{{p^>d&YL>_!{A3Dc=jvWnaSc{H15Vx*Lx+zZ$u{!SdT9P5#8g z^nKC+VPco2w7=f7;%xK7`xO6;@|!29+&plfD(H}=>{B~6Qf_zhU4T_h#B*&TPiwfm zCO*;U&Yh&2{aeMgGN>3<%bltdYAwq=ALRVfhK(yFg3vh*If<-)b#ChQn3p}X$L~IE z#rJN3>t1DbL_=NMB@xB9j$QNTLkrG1O`{Y8UxbS^USprRqht5vj%7fp$k~xZ-5ziM zZk0~r_xA@aLGKXJy`j=WMTS+~-_fc95g1Sw2)~j-4@!phpo|YLk`qEpy^m%lNEMW6 zbq7g56;<@SVt*je8E_$s#`|28`4&v|N9gNi=GQO5h;2sqjKK;2p)tP^aTmr3w+Q?0 zRwRs2z_A%6sbFy&14XFZMjB;LA@(ll_%yc#2!02JsSt+PJZURT-9!|;bGoOINMnJE zAh$^!3#aEcf`uTJ+rSX&f0#QtNrG*LPT1FI=Kh6^vd%NjQ6f&!>E@huosbh>`;*=8 z9OxO2Ua`OGQ={VuXanF=O6kT5$3jc?GDffQC}`sj%+|nRE1?99Q{jLd-0tp!+6QD` zv{Dv^SUqHq&i4W5In5SC4KisWHG5ZJzvKg9b998Ksy-PyF0aBj})v$et}auzxI8WtnbK?e=H}CUa{;s0f^~A zKf*xaN2;l+@Z0^_ec>s`D)+i0W`H8l9wjRh_D^ThXzqzK7JC7gq+NNUiG&42H?Kg4 zfo)hqPU2+JIUVo<*WNXCcauSA=RM{VG-xz`hHq1;7Y7?zj#MS~R-bc~ZPhUlBc-aq zAsFU%bWr942e_q&?KmcaZ1vG9p~_yqAOfEb6m zSu$fWtJ3_~#VNjhiY!rd%)l;LB@4znhya%FPHEGYVX%S+~V{H3tPi_fjQuQ4`5+ zQgj71HQy@UDm!C%UItvN2yb0@oZOSoY$eSAkHJL&7Z0h&J`2()Zz^N1-l61M;+2x2 zl(c(XnbGE~QRoQT$O%`$r=67V^k}Zba~2gd2NpuL2hp;kKJFcN@C+Kiu?xrI7|G4Hip3dpB#ww=gLGN3gmr9cEJD9j*qa zD006wgEljYPyWdAeiV0OnINC@=_AusC$53Ri}SvQs$#4*>-!P7RK!DMoN7ReBVpO4()Odu$ne@AEZh$%v~LPHpG#qJof|<4iYjQX1&8elkGq z(_1t^sT8nATi&O;skxQfHf%RNk?T+b0x;df`;o1hf&g4;-Co~103mi|XtFz_q>J6h zr0;!JY0fsZkYmM?bg~Z~%`mb>vFaINcTfJb&vuULPiWLEC9z~3$OpFFm4(t&ihW&v zh|R2eN`=$(U(n{isYzBy(FY5wEByS2#{Wl`U5^Ar^R+Jsm(w`0nxFrR95AXd)Y?b6 zdBnKzG{aztjg*!VE8QWPoQ@z-(SHkNJxTEq=8loZy!A%(UPgzMwH} zSH8xo%*im4q>+f)&W(<{s4)`UGWNdclJ}7qEPfjeL&)-rg-8h%B1`y3CcYO{2pk}o z6(P~7D61jEOC+9DNd#fDsIh>^y4WFPm*6^>wO&9CXV(>_+4+s9X7e)g=-Uj^`K4DW zd4rIOQ$&)dX0c?36_K<*v8S882thB!PVBSn5|N2(A4p@>*E_zw4?*tJ87}m$_632` zC@b~3p=co;!EX!X-?Kj=_T29tdvLA}A7iEcm^y14>cR0#IN+mo5{u--C#SesF_Ei< zF`vUrUyqCH4^$`KbxOZF?kD-qG41n-KG~Odjyl#hzuNKg>6Gz${Id)*nLU?oVui0g zXLW;in~k<(*M$xzZz=z%Jm^_lmtvy*^uShCFt7c_YxRfbE364PSh?+w+%D#!Dmi ze({dSqb7~HOaVuSTFDOWQTNUBlNh{eeZk@4m6po^39K}p=3cZT- z^RHI1R*9(X8D49mL_Fww-Hvw@>YA~BUb4y;G1?o+%tYr%PR(W8q}>{V=F%%gH5B3QHC$c) z{rv)zbH>-Ndb54ba(Zf#7M#RnJGMJMLiTemDo4jqbg8zIss8*Myl9Ovu?a){%UTN5odxp*YvasK#RG%C#NQ1n2t+zlPQH9N+qF`AX8js~-@im`%d z!PBF46}wwa&t3U(55>1TL}qc~j=FVzw%AEey69n#&v^wQo`G}bY~s)C*or+y)r;$P zV=ucJhAvz1%U0G3`^}>Su1~J%qbM*piPxuF)H_b=oK`_(KEUw~U-p z<4>yO%$+)`92|-f@`-sV^!0she@nS*ZALHC7Hz=G`0)h=R>iJc#fQ2rz=-s1Q*@Z5!ljQ~HzHyEC8_wh?UJze-esK5994(Uy;~|bfK~(v@WN$h4#qHatgdIfUXia>Ic1kz_+Yr* z;}eh+mF~1V$%TEYC3Yy+RxX2)#}s!Nxb`$fjF3M=w-#2*P8yW6>E^ZsC^?hhzA}g` z4?#0h)T0dm-j3Kd#O_@KGZJKbf{s8B-=gt3O}%HoYpA>oWdoe89tKzaK>7>ww(;4N zqyUhTKd5q_Zyi+P(Kmxotf|H$;Gp$FJdBEBTJ$0TXkUS)sO-@}Jw$Qaore9w1q*Cs z9y2GWV1lH9S_~9!GkUQbW;uLoQh?wnBlL%jMQ{yx-)?;pN|ZZT=dXe1lpoax7lip; z%U49Xp;tcF*uMx}i}8Q>IYpcHs$>aH>@8?!9HD4ohg=Z5M6b@DU9$Kb_ zB~hNts;frs3tHkEF7k{UZ%CBDcf}pl?Ftox%8b&k=I)0-UWyDrC=9cO=Jd`A7LoWCBFKdKP1`u z^)FXDjugDn3mtd5IZ$U)ARDWr2Ph$S1GojQ&VGCkL(mDr^CDqi4)Tbm6sc;|bV)Sy zn@0HyIi-VLIh8~9Tx*}%(J$B+Y9}rnJ9m0Ccb`Rl8$223#mkw$i%4z+p;q}ma$0rZS=fiHE&nBu&s0HzK#YXqP zKlj5USx7f{@uKU}OdVCHB=hI z+=p~lzYKf(=es!#vt$!GJ+4gOZQ*+(ukp@`FF5sfpnv}OjdRCtR25OLijoH$vp#IP zZ-_QTe;28%^0UJq6}KZz%~hFZ)R)PTE*lPrC6cEWj7d($!JvPClSU7cP6sc}Fa7rjnN^%VJPa{Y1kB=?l1pboGVVv8^Vm>961|la9DgPRTZR`^ z?Bi!7E%4o7Rn;oyme-6$suFRS));-8WgKE4S+og|K%5E4aK9B??8SeOo6G1`iV)yM z+{&-Zt~ag#Hfb)9bfX7);UIaQ8lKQwlntmJ_=pnYHHy31f+D}#2%ZE8Rk+hEDWO+j z`?sIIT5rAqD9*$Gt98!%N8o!&tOb#{Br9A>!GO@(-CLV1TCxw%>ALFY zH{W^G&oBPwr`->=;=K%Uq~KDl3iI&zY@-U4Q(;`hD-B&B#4)V#skt|lgfmlff;5qo zE5MDVau$)D`&8WUDpWb|$;`8R4AzQx#Wo|*q-0+6K*AxqOQ1f<7;9hX%LvlrKoASk?tPqKb z8j*E`A_^4fF>26emSd(atGr#-b%ih+e4GE={wsi!N+Hb3Wqs)aaXcnA) zHMg%yICF>L3-`!+)>PAn-%P&)*nxrBnQu)vZA-{LcQk(fn7JR^|zYIR&HRIx{ub3&;2Ta9U_?6KEQJAHV;7 z*?LvS8b-23Vh?n{=A=nk=rT#^eI}cp##MU)4LhDxGCokIfUy=I8HF5Us z11+<{PkMGul~}2ZjLQvZo&U7y&)nGf;%$p)&-8-}H-=GnqOiZ}mdVY<+EteZAN&+m z`s(<^W$Y0?_I;rFNxc)^sh??3C^Jc(^q5kGMQCrTWbc^{Lvd2vL_Z!vfs9T&jXbr$t%)c zFi!lA*hz{i^&n;q5UkA`*ODmm3~g4@Z}#05WTEtGLic-6U}kw)MBk6{VFfEtxiB0? z>LV4;m6=0Z7C)v}uZa(niJ3lxZ2;26dUN(yH8*&-!tEum8BoGOAN7vCOEXh&I*ArhbpHZkq{m^C=%=U%ag;&hoW3La;%G!4k3$-O2F5cBp!Kn<1$B7cj| zg%i5dh+jn}2q&ucY#!jiOak}1XfC2YqD%Ctv>XOw3xTJsHUB$2>Y(8{DDYJ{cCpIb-IoM<3|@pIkRd4Vju5SdUtt)`z1!qatMo#p&*`o$s}OY3LuK5KUXQycRe)r+ z6h|#1mLhn<{nzwtHlx^KYglZ1(U7}5{GvO+k1tHVSq!H#IKneD?XUVHH}dgtKAfC*lxV!AhN|#UMI=8UE@~N43lo;hHo$*qfQL9a^4S6SAU0ro1VbL=&q^UJ$`*8# zqV-$f%pjvoZP~r}vOwL8je9WtaqSGB~4fR^U+CDBHlS8S8@!)7@->kGdy% zs0hv*P721rD1$c^LM&D-m#UjhzS=X@f~T3xMrVZF&s*O?8^qnq3Q}MwJV?03ME3lY znF$m?^xgWB!&2l5)HkdQBtGp(1wd{)q6JcbLZAyIv1twoIuW3(WFVLAn6Nl+q@0b7 zUsX_I{r(I?8>Ag>T606&99c2ncR1f2>cx#+e-u|pP9-x8L2O7N&C$b8Nx8@R0VYX; zFcR&g45`&?`3xl~`Ctvww!+xxVO|?Mv9s0PoAlbwqZ@C6zW{4V4*+yKVg-6-wemb- z!gSX^C$Y234oFCsSU^}6s_?c9c>RMiAbMICZ8yxAlnfQtD@V zYLfvHrHtr2!Zxnwu!~)0m@$e?y||09tg|#a`roE5%VFal75;sea@ChhzwqzV-6(95 zP06!sqB7poGuSZ@8W6r3If$_6BJbaCxZVI(~418re_iEfv?c$3mE$i$q z<6PZuts4(Qdeb(~zakuFHhT5ySa$fysHLrA_y?nZ1)blQ95?82@7IYWK^IY_jNv(I z_<*7T=1k5cOG90#$1A6)48=qDJ7Zcm^y-LLvlm48|3K;2v(zvjl?{Sfg7FsRL8$`w z+54YvY=(ZWNN1S3^#|pbdgro#mP_Q~fzEp6{Ar%XFU(g`lP~$Jgc|xEJI=prewSS2 zt+(cf62+$rR$tGGVxeU2LtN?|)sGyVKH)t46B zurPanZdzMS;Z}6MJ%ag>{M=yHE#Qu9m`Q^YEyZ6|{#oB1FK{0#D8=lYOoG#ZbkQfC z8$pjTb~sbauvUKcSY{g*!#+j!7nA6Lh9hZ6@w(=Wx{R9k`VUNpLOVtQW@lO?8HFig zy!8}xD?(j*lXmy(qlovKdhvj94(2F#lwRCt$u{r%oWa`7mWCjud=vl@wtYIVZ;w=3gFPtz+0nF`3!3iJfg_jgYAGs;e7T2gZ3;BPe4Da`CvDk~5ls8Xh1t|#v`u&O0wmCBknZbhsATH}=>{pAbK;|Q z6Ro}IDT}Ti#bc~?4o_c$*Tn|%(rq6xBZ4mbsBKgb3gv~OmdS6F3#Af-x8g`b*-+6A;|zUoPnUSQhLmDE?%&w`7UJ3e zhlaC6|Mx$L+{#hVdE2j|=h|eV{RI~FtlD$c4;-j@*rpOlQesvZFvOc>-^NSd!xrV& zAri6e&HLXU;ZZhL){-@b{?y=i)E=86<_p< z(n39z>(t2Umj~kyj#WqyoMvMuFCDCk_BSh6fxJ@0^^_M zi+^(+x#FsEdF0#8VTP#5pYKnF@SYw1^m(k&R9o&6=G5xPEwPR8{FIRk1K9dx#kk=1 z0lBv?Rp#`~>X}R!_mYq0+!h$$`ZW}wRlFvm^EZk^wL)(A!g9&YqO`41CwyD52#1>H z_x?MU;~x&qZswTG=F3L*)Ato`F%0xnhXg-gh%rjp>wxj;Ck#BlY4>TV;qv_>^?~>0 zgNyuzyN#GARCC9G;PKtPVH=4$yUzHTS8`WyzF|`98a~sQfLk}a$z=TMX}sv;7pwSI z&sViIW))?PMOrP*KhGq4oQpXv*O{iYH)nWp8Iei6c+;HA)4N>qaHb zctq#-;R%%)8`(VPT)GAnOL}UroSWLAFpWiZ=tUT7T*700*%1AuE`G-w@ z>HBYG^aTa)i?{zqaV`3HoWJ4+g)GjRX=hVXn;Y4kmcHNN9@?N zy8Wha6=z)d>OZR&nha@sbhL;oU%O}2Rr`iIMIKS2t0t#B!?viM43Pcq%(wM6EWM?k zy?p%cnQQ~}yUkAY->AcHHjjT-VemdIFKN0(8{XKVZdKxkHqDfeWv_9T%M={3&AxuB zo;!WY$N567>0C`JZWmf2{l%D~)KB}q-CwS07T_$Otvr$D*|ax($UAd2(3xHSP!X!P zI(@9OcHb)=(=>tTjUZ`zPf6GQ9ZD-=M8{vWGou~eV=vyZ5zk-Sq<{bF<7M$gL8mZ{ zx|5`^HfNdMLfQA6V9Z`3Ho*TiDVs0**~JhCRCCmw+11h)%09S)zfs{)2Yk)A8*wM& zosKl5^s}5PMVlP^xfD!PG`TOE94}ipo?>@Gsl4zmHU_!srNOz(#-QnvZsy=x`61JQ z%~8haqT}tor#!oDkF0yHaw|sXy?6NbvscE4U-=n*O#Gbv{u`HM_u&O*OD*GLZpv{9 z*4X%bcG(v?q8=c`QRY>5Rv9nIz@l^JFYVBtaG#cI44Z*$&ugBXDpDMaOxkI7H2e3k zf43#7SD9$6>RL!w;{UW*)iC8i8~7pM|2OKX+bz{|JHEB%O|Ihap0Si0>}&ZNDXYO% zl3ddK#!pE+FNk{F zsTB+tBD=qWhL&wJf@^AXFHc_-d0!`7Ya;xu7Q&9{uZq zcbEMa&kU|uweTy?`Qr(G-U_!q(tTa781KH}z8Z6dk!>AHG_&qSOdIl;HddZG)Ht~F z>bcHoUYuUx&3}V}R7taFrRiyF+efUzT(U&00R!dURFa>q6=PKY<^L~C=szdO9X>=E z@S&iNB%zSnb6sAhbeq^%GCN&@g6X$@FFZ$;z*`*13Q!i9d zQpJ^%4M|Zvf1?~MA5UJYu+J$hInFRwO`EV@kZnvn(;6$%UaI)h_Q&xbMh>4AnOgl1 z=GPYD%rLy2`z+W^?F0HY!gv2swQ9a9|MG3&X-$o62k(y}>wS~Q`oa^;E%Q>#wX{Dy zlrwwQkZgS}C+U{!dcgYKZx2sJhL}8ksW6)USi(O&miPj4k!P~3%;OagKB*81UN2;0 zu-;o-B;u&4p0nHfCEk+LN|j5nTE*prAnEYLuXp0d7qnhW@(+}Debx#8UHFo1`0G`< z+|!R~Q?+Dc+LOAkt1Ew_DCG6!8zLNUx6G3c`=2Tvz3xlx`4gsMB5wS~Oq6HB*}^^K zVBW8g_E8tVj)%otr+z7hUbFkQm4446FjU|Tb5q1xN?N2IOcq}0u5WeDvF7nr#kRfV ze(|lhWaLNz%lpLCUjBHIn%hbod4E{&db(_!VLcA*M@t!_qcmwT?8^CBd}TIz$15O* zx5^|BA~tppL}%DSRcK=z$Xh9ozxXME=2Y>EfwaVrat7a`38Yj6k_!2BwOv%Y@@>H^ zVW7%`&W{GH5^Sx<8zfk@l2Ujz0jWMtuz>PC3ObSDtf?D5&sGl6h1rK4fMRHC0g-Gm zv^8VAc;!Kqv4Bsk`Rg;jjMmeaOIQTk7-`pX=4I*^VNgJVP?;c0SI!^Qx(S02=`XM2 zZG4l+WhjaWLm`TB(Pm&qaKFTgg`>8zk(|IvZT-DDtF#Ip*3?_1ouv!ZE)$SQ*(x^O z|KT|!tV_T9R4zMCdw=l0@?S@E43$|P81bgwbrW4yJ?25}=&;^l+Co8Q)Cx(f2WoTZ3%)g0*hG<}rZP-Jx5Gu|d>tPXRy zOQ>RV;yaY?bw7Ru#ecKh-y2C+l$uS3g<`wydZm9{IMe;8s-;qQFx#~f6Z6Ao--=6f z#{6T|F*c!+j}yw@xLGab2yGMRe#GH%RTVFlb9lb}8gh^stCKOfdtm;ekx#knsrFB| zWX93)y%&wkRmYDlI2X4v24`OASwoMwLI%s z3lP@@BSMNPLKC7HXKQ66XD%$I1}nE&Kfb*|A-hG&eLHhS+mZRvZQU5Y_;K?fHO^L) zrjL|>_LY;`zmEP@e`&c|uWbC`ZE+)vEH(4JR*1&Z`6nsq)H6z7uAH*%YPk~ev3S?3 z9D$1u)Cg;rt8y{7Jj>9VPMc0C0#oNb^CRbg&9H;@g(dm($d}V+{w&6#PYGObpkCGV zet7KGo5UkiFXuH(jgq$v`fWdVIlZb8drp=Sc#xzfT-Q0*PdFXYc1YCf$jVo)i2ZT* zdWT1Sa#z!$NS zq-!L$5^s11V8`kie+=s>C#b$p<6 z;w#Mw`e%Ijt{C-8y$d|}_~R4fK`~E_Sv1Y7t;d77GG~iB64U(C?3i-Mt>N+CGN%gG zc5mj#K(LlvqNg!eaxoWiCX}kT1 zoVs+dG++Jn)#4ENZaE-Cpy9VJ3>mZ9GKf)HzHK|in;o7s7~S8Z1?AMseavN38f{E< zMTAQ#UbQ$?zBbI|aBCjCnavmngXK;aC_kVJW`uheuezY&+OMdm<#1zCs%9@EpJiA@ za^P5!s&tjOWL0tPFO?d`!j>N2gO5d9j1}yh*aX{riwne;`js-;sHSgS4*&2KG;!<0 z^}A?YLUR`Vz`gXx_giaozE2Rozwm70JFj;KNm#bE|B4+)&MMQKot22DP_PuK(wxk51#08NN+ z_7`}0d5&EHd%8vHY9gsP5+?<<#&iVD~g8Q-1 z?>7}#>yt+4GoF6grzBQ~>xSRF&-3!ZT>4(>ms#disJ|-fc}SA&K&=D!RonKgJ*J_y z?OiVACALCmWjuFHmA-k6+Gr1VNVa;W7bu#Ix$AfAWmi~e4bVZxb1`VAC{d~~FKyVA3E4TkZiZKsj4{9*+ zHrSE7y7<%jM$OyvO!uK`FGyQEAMHreuFsLL-IkOHf4k*;vw(8ZQ+V~<2dUQ>a{oYA z73uSQiPg^bNHR=p#IgNx&X{-uI%ZLy`_zL|DQ(FRB(ydXM1korEL95`02S`v9Vj;j z6Cl2{uN^qwCPZ0e0UHcpA^$zdlVfO`YMg(T3JA^gE?qpT<6RX3DddLLf-yV*DYec! z_Qen$$7zr^EKM5N*S-i-dw(f3XZ>KoN#OS~!u@pJPn&K2vfx3t{&)zyx`CPHRZ&Az$B)*S;bEk7 zFtM#;f2)O1D)9RJR-=Av^B}Bm{go?kohRb!560Gqat!CEji^f?8`Ts;Rv1+jS%mg` zOZ^ZA4ep@+il)d=e_*_GC{EH`b#LQ#NCHwvKWraK)Y+Gy2 zJpT8R^#d2^iC);!P99gbon(c})8s;{=hrn-(~Ew(T$uf-92i8!7hJISzYM113syyd z2Q>r`S52gPk3i4*G{BowzfxiyeR+d(-iPzlJSW_KTlem))|gPLd&1vqnq!MGYD^d61<(a-*mlLg*wTFoa@VG{S`7kb~2_P&7Fi-yhs6{uE$Tns;UiOBRE-%I` zya<8bjKF=sHd_nOFhgRj*~aEm(TA>Ht^-NGShcQlk&<7fK>#fu0Ohjc-4m&%H4*;+ zBnI^d2yn&#SDpO}h&v2N3rPhVXu9d?*qv}M=gsbTn}md*bl3;d&k zAuP2xKnDQtQ+ic<6VTa}jpOAc<^{HMj!qsp;cVc9(J&fd12>@awxx0Mr{ib7V7zfq zp~VU;^%D&;A275uiRXipa$Zz=52TnVxM%=6X9HPrMIsXZW$Cl?tVvd!o|{$iOP;d& zR}}v%WoPIKxy;)Z0OvOT(g?=|i`xB9` z2(JeTACSSkyt#4tSwCqC>B9$JB}VtWO2=oJ9pZhdi~@{SfQ(8tNK?M3X)I3i3z<$t ziD#&gbngoJ-t|$>L?nUQwk~$ptZJeRYieQgJ&UOzH$lQ36d_{UC@+&NcA#JS(D`1 zZmU7LWqUZH=c*|wp#OD5VoR8KL{SaHr+Jzwy!BlRo$n}Xx~QqIYScaI+Fi)xD7g8ZX`ICIpAD@M zTnRQ=XKoFWc}8$EH-4>e_Vc{dT78$5hC_WU*E*-_Y}{*`gzgERK35&IrfcYHi)S7f zE#sVpL{z+1&>Mx|6f+d|L{Z&128x*AU)$wf_n5F9MU$c0= zb3_b*1>c%mYK2gG$7^2VAt-VL0i3jIztpp2f7Kp1e%=}O`JuPeg;cvdcy>*YgqVQ~VE6=2Y&J_BcBeav zvSnl=Bk}Y1>ZZuYE^(Gf;EiphZJ}IWdTu#J=k29VE)O-*=wnBNy7eES&GRW^#lOz= z^~J1oR2{5DL7(XsZ%8j-dHqt^ssq}DUXe?)KD>UAr>d%Sp3Tpc*2DP0Gi06n4D6`1 z_DK|?Q<+dN2KuOKR zHDDgvHWs%c=@w@cO9dL_>p%t?=#X3g?`WLq|FXybZ>j`r0Njmu5fQDe7}L#{`H)2< zRX95$*&{(QQDmwAH&f>=LxKl50}`J}ObT;(!vUDsRW5I6?#YW&7{Kqoj0XST51tYd zB_`v>ziB$JHo!|fxlCM%73j0*>uLe0E&zkO4z*Jz62}M`Zcu}eAU{Y16-a3opzTR9 z;ixpw1FIP|CDlnIix?BV(0Ag}QCGMhMkQ7JaFAGL$7yH(2d|C%lCTa;|G!TD)k9B(C;$Q!h838$tFnAm#{@na>;3}tT&zBq+%tHw{x*EU2p3hQD z)U@OlcMF#=q9w#oR;z@!0yqQzKY{=t%J`3}{r{fauQ!6UmvE#4r5peyKn@kaU;!(T zSzKe4&sCZ1sW?FI~;5aem99X#gi)Nf>uStVQx(9lhew>!D-*2%PPvlLKeh| zasY&yH|#}TRbs3kIRfpZVgewcN`+3~CefC4?7Bkafu>jO@3Ma-7NCF5b>|lj%x22? z)g{oJ{bdzO-fGSqwP}PgfjhJ~A>jVj5v88PmQdUOTg)XRqHpxySoGTjg?T1dd4)qy zZY=v4ToX}RQr>byxMvFPSOHRG!(|DF!wpP*JLBZ{rko4T( zgM>m)`{q;r{OQ>2L>bx73C%j9S{Bh)s1RG50CH z-TUhEnU5(2c`1y{)Mpt>`cs2)ZBvVE&24a>4oMtUyTs3+E?x3eFOBG%>(wxX@;#-u z6k<)|ytX&R>mysV9!R}y)xkc^(EZWEHTRt9irb+1hog#89&_UhPj5x|`Mf^J;MBp) zkST-mpxI7+*+HL^5dIlsNMBM*YmN;_WWmg^S9~1ZvSGf}NJ*OO;; z8^10JIQ?E*9X9}J`F>VLpbeX5v3LHFx+w4|^^{d9u=#56klz16XH|NHK$h;bfo2?m zXOPJe2-I6d_?C{DdsIIHg%I{LgH+{Mwr>_jKrs;?x%wn^Q{|~`iLjm%>UJGse>o;@s!bBUmT=pp z7ey{}c?UdYYd3s6Xq)OPXJym~rLBg9eha*Cm^H7+-G%B56GufJ+Nifysqry}*LAe; zPcQ24jTPU$t9T2nzR?pVeH~_xLVw~1hUd<`1fjy5UZ0?+!4i|zM1nf!QtTX&CA>Gw}@8%A%Cz`@0!jLtj?$_EJMTSMGY0$ZVRWO!Y)E(0|mV$Lh3OWh90@6PbJv9cSrD_pKwhqP7?R5N$Rwyk3$9 z#ZKLWdu`R)O}K$`!kCf|kpoGF45Ry6TTzgESA*d&GU%ev1$ip)>GByM7fJ}O7u3XC zxKs&m_t=p`u&pq_mL#KdIXSpILSR3 zzq6`zVKD@uZ#>%0zF3<~8w-p+-3xLYK&WLuIS?UXYF&#a8|lTOY14nF$DH!o>34xZ zMJV+MOp!nQ(Wa|uCVqHz#a?t-fOUW*{!XrMKtz(-VQlDN;8Vc1kkT#WFTv%Qg4W^l z?~e`mXkW{)abdjl1H3#N)140M&4HB%j@GKWyGmjy_^97QQO$j#vO8$@B9kMd zVpA-k@%VJRnu`nK8~W&WLffLYq>dkiES4!~kGtlmw6?+15`fT83if|snE#3a|9?L) z`!$jSC<>5xa$jYZ#mIw@fiv_{(x3qLp(+Y^sos}k#}-nj4UxrJ_-o3`GG%9dmO@w2 z)bQ*%whx!ps z%$cS`SG$02w1g}yJ**dRI_+;KRCqsj?3m8}*Dc z!Rh%(e>Q78!Fwwmu{!%#mf6A+oJSZ%S`|`b$aWAY+tG>YV2$JQ?ahEcDyKh^wS3{h z8+iLW>SzyJ%~?OrQ-km8Z@BjHP}mwkvP@s4H_j`!@S4#reC&MJ9x9Bg-hjEeSn!Ly z{QEFMpwB1?M;g4@i-SEOcX4JLLUSb3bnKALXq2BzlqwjV_MGX4T|~mE*y=lG7g9T`)1-e` z8wZ1i4uJ1P`9g885b336IHJr1oaf4bN2b#sQ3)RO-;ki!n&gcB&<&pIqwx9ZsKdZp zXcZ23RYnFZb;`Az6-|Ulk_O8@@W%2~+_%a^a4365G{#skX&Cj+)LjrT!ROfmA2x{ueKcEHc8WyoPFi$KrYS=g%iEjj&(QbiTN2p=X*; ziX+h7w}V$V)#Y0D2BDlZ%a@leug%gY9;B|G=p9Uqubd?(K%1PFz6Fz0hX_|rkI=K9 z*=93#25FpW-XxlJo+{jg6Nn{?*BBKAdU}~=oR;D|@J2pIWR2dh{HnokhX^<&kK_t? z#}w5wx@?iyNj8g1OK=4)p%?SD7Dm5Wm+Vd>pMX_B%n!yuM!$v~~+G z2)l_znw{sbD67tlo*o=^d&r(M5aZq8+!~H(FV?hi3F)#ruR1tT@FacK=~o*y$0Ae~Q;9;>uuMDLL39EVYdpi8lqm!)RLH zUlt1TO$`ojq4mtCdH^|Pnk!%+fSI1HK~h-i)-3)79mcCIP~v%7p&=`1z~BAekP7;j zmae~j9Bv(NGc4W96E0uEf++^EN3bNkBa0 z&?Y@l_H-@KCm2c2^g6FkgpVXB-CGePNUcd85_y`_0-7%5vf z0OPv4y&{{&YIq7mUv`HCJUq2 z>mq8TIX3woXe&p#vZ_sccO`)!Y ziPq83#M3IXU*zj=n0^cU}4EzstxFC+6@H{3zyu~u3K%KuJ zj}94kn{qr)RR;T@qAnO0d$=g5e__yT#=+1*8g@D;7=a2IiVv-KqLU-Yzt!*{Yz~4V zudqluD4}W6#0v2#%rRlCILKT=Pf4I|?yue?8F2K*Gce$4(NM&C`BXA_X5Q;Te0P@) zn%lEvdy4fL?a{Xr;4GAKT*F>t`TCYQg-i&g&ydpVs!eY{4pwaN#>q8+0iS~m=ZJopM456xg1LN0<=4OuX%$G%X zG$^FZp^cd#!wceTzB~l8M}LtEE$pm_Y~E``x9VYW&G%;+qsjuk|@C_G%J*zDnl)&NP-xo^lb196(r{prIQV8 zBcF83<36iD^pvdW^yg)V3mC2yX7o6HF4lq7q|OWxmE)-t2FGAf##VjCi}uB8&a3uF z_6}EB^8G=Js%%*vvj1jZm~PH{#KaHZWdiXwFjqe#qNX^aFggP7!IZ9D-M>WU*pEWD zx}DO-!Tv(GR7icRBQG(4MT{BFFQ_hw-D zrtP>_1$Lnb6Ea`{Ghn;xrsc}9d^QGT3mgF`G!J1>>0KDUP!oCDk)ralhZFCo7m%#+ zs9+&dr-Xt6AUw4vI8dH^9k6LOYaWryK@R9JEr6mBfcNNuU(L(AU=sygL0yea=oT_s zCK)(Rigew`$DRaq%w>Y5=qCL+rtW1E*WLuEG5BtOtgmZA{SmGh1zjF`ip43-p@ve6 z7GO96&_xJoSI7KW9<9A8!xt0h98d?TH+3ZA3DbM^7`v&QMo}>mbkUuJ z%RQyw(mH}o)RA{Ek=G;`RW71o4N2qL>%N6{bzRLGUUuny4oD+JYna}1-wo*pMHR)X z6XMSNi5|IUeY`hZa#W<>H|U07Q~I9m`@b z`#Qcu1x(tQ3CE#)9njEE`lCytPz9Ule%h?53KysIB~LjqdPfZ^tkUIyVAbO=R!tBp za$>(B5IpX4yU*#b6gQz*8}cfMtBH)8%FYX=OFUnnZQF> zdbY}4e|U5lj8DMJp1ZGR!GoFl%!&+BP*S+f%S{BH8maqTSw z(_t!Gze#jPs0#o5eoFgs>XYeeV~l1utT}drSh0RZdUN=D8W)twalXdN5RD@?tSv#$ zny6%q(&H{80I7+m-_R;ehIx%ez`}>LcoiXe#&#q+{^JgBizVoFN1ZYl z!&Y8G?e460Qf<-d&t}#9uu&z(se^e81iIe;$Hzw+75;iv3?DO#ycrm{3(klI`da{) zdm8|>Ga<>?1AP&>vrIKl4&)7J)Qt27A&@j*>i1GJ243q@hLgbhvw!bM&S9k%-^z_`%z*{y+Ib$&I$(cxg76IIu*~RHv8>PT#wJad# zL`ld(C>`Ca^VK$KJRgyft)s#yZ`yk&BpsujE%l<|4;u{DzC!cs+e#GT4~zWe022-T zR$xIp_g0_T1*PI3MXMuiIMg&Ci*M(2qijq_R9~vZG$W=PrbzR2qS(W^izkf19+Cu zV%!jc{Sxq<)7uHCAngOIw^g>%S-nps%g?p2BG*->Q}O5YC9`Hklig|dC|aNkdoppL zvbWeWtHRSPbY=e_-PYigLR%M%OTP;SF#0N}&XKH*7jl3}7?E8bV*ptAxw15n0k%t_ zf|tK2;AB=V18o8X%6{kNDaU0XY9b2oh(D_IRK4(&;kG9J)8=ua#8?i<*uB2MLIk?3 zxkEs|Sh1}IXBjBC@P-a$ZcaC|0{2FTRT22Y;`^Q8I6DnUMp^Y^21(^5cm-wv$2iz= zQKf-&KovC=0P2i-9LR#-c4UfDs!yB=f0pcNadz65%ydqN{R4f&R&vqSSOYx0nEyb? z2GgXYPfbGGUo;l5qbGZ%NDrE)I#`m=P>gNa8yL*4N|US#XiYvg^XxJ(Q8RuNKkxtg zn-lhVjTP(eJxMdLo6WJqBK62Ts!CMJX~(XAltN%-U@c7t)DM^R?EOf^7n! z+c0eRqLsI)1NNfV>+R9HpHq}WAQIERVL0j%_4}B;WbSN@@>>ZL{?@yk!idZ7ER}ly zfw1BJ;O3X%S(QuZ%XL!0f2NctzyFiSMQ<|DGlRm+gm3P8m!w+;JPQTsdc6&2#O>}Q z-EDH(hvIg5=I(@jB5&PgL@*RLI>|Xm!udpA+E7WIqHcf*=mzx44j#oc9SGsyij~>C zlUb1G?6{6ANOOxyG>u-8Ceb*H-&>LU;(3CehdFYw6mq;aMAh8DR1N5I$GB!{Z1$P-<NV*LNiP=<3g&Qppd+c zzxB1HyTQ|*6U(-Mf;fby&%ve(YnCHU{mAT&AS^BqL@oowB)U~ZwzEDa+G0w{M;A9- z;~ajNoxCNPGPb7YqWu={1TGC}k41Yarw}nN>J<+1PsJ7BQik^+;e1ON%B?nfxd~#W zN)JylU_}Dd?=qON*6|YN7ny2-NM7!w{iPO!Wqhb65Ogt7(<;8Kp;vG?DzuGAkbDU_)!5=egHX8*Ham=!5hk3?c*}8rJY>V%8tbMKEda~)H z-Zh|Nj0aW9gF%)f{Y(D84dh*fuuek@s{V+9OC%cPSsm`cjS_tJR|jI&e6>Dxa}9>S zbo61X97LiaX-c8mA9;+UHvW(vEctvmja8@(f@$}T9`>a{|FXi^2Mpw$MsOA8dAB0- z&9yza)x$p9(P|e#DuLeUxnz(#F2UyJLdmKYctDLvzpB7<31@(5?YH2)pL);H(?LPl z0e;dnFGiRl%KCH@)q=_e_5)W8&JO0rn&QHyZT`Jd3SS z)V(jAwMLbyY}#y%PKm0lbp1@_$*0iX!6C{VzJE9(cRnRYZ{3A>+N$)=Ye zMB}UtoXRS`!U!o(TCmY&GQL+fq4STbrQKzfPBLS!&DiZ>ezvA1Rh)!^N(DqQdP7;b z&#{!}BRJgUCC}QA1%WYAJ2iqfbPM{D9YMERG9F464CSoBIlrozl;_wzW;0z|j!ea8 zj~OT%XSUA^G0P$?wr)&s+uizH_`Jb48veEkm;*hY`C^ThQ5c3rJnPho76VshVzNIV zL)~l9Iu01Hq3fK>KGm&8$lsF*`GRIP_B~(E6Jr`^6V&I*|WWR}U zDlD6>VXhPXqv4yqIxFQ}uaJOtEhfS_o!!KUZYp=OHzfDuc~#y^Hf7Zm9rf`V+Nu1K zl%CPvmUR<;O)FvjGS_J<5lV`ccY2Dd)cd~x43J!2i zdc;pC&k#0^DJpfOX{=21^SeGx`Ftf5Vd%Y&LFCsgB7#7si<}3qPD0zFH_!GeFz!Dz zSwh=F7YXJx(Xn}k{$3Ak7<5*EXenkLPUgy-1> zfBDxc4Rxf6mhLEJ@l)GTdY7Z%4W({3e$h3Ll*8W4uUkY?VY48C1wyD1a>xpD`(z7| zhSHP698DH|JG(zzq+c=PJaR7V#P1z-u=^80+Z-C@1tOqGISRgY+B~dUXEVeSUYegP zJ#q(U>VBM-f9d5VJ&37o7nD zIUsU6rWYXw>Qpp<5lRpd5o`najs9o3S%M>23fBmi+=uW9*!zNKu?PtIX*L05_#cLi zkCnQ*vh2p1ThDaJ?evvwb+Ebw-M7}SY{kYsa+yY3DvKet%3*7|Xn0aM7^+l<7T^9p z{yCm6j4ZS>zExtB`KsVk!#q6j(7E61HeBG;^y&laP`r%k-RvGAn;lS7ZPhl`)H8C{ zL`&bHD-LMQzD6T>=5?7ncZ*8t9vuOA#O>)-sw8p!(lm z4s4xp@&40P|L+oBHJ)vt=sg}!+Jwx^G)H?$l240Vz+h=RYck`cN}UEhZ1;S)%UBHh zb@LyH??`|>PaLrd?BI(t3KbjalJ#V(Ma?|s{n@WJ(?CnoSrWpD(xM~l?ayv6hG3lZ zC`b=$Gz^1TKnsKt3Sp9XXMDPbO*3}3fL|?#n>?;$n7!BV7c4w5i;*085lrYo{$zbs zg}?R<%fs#H@gImy!YIc&Elmxl`)d0;%Z(y-TYdb>HQ(b(pBK`1KhmKh(Mg?3 zs_*so7W_GAH(^zbA{WuonV6amhv_i+cBprVAXqQODOFL&mA>A-|IY7npXt}3L&}Ll z{vlI;;?HsL>|GdOGE?74&kt0}mgfrqfp%%ix9AfA2o*_wE>!?Zj)RU?p;e)_W_e~L zugn%lRfmw~NSi187fna~)fHhrXwmYj;j5{onv|)OTSukYw$zp}(wv|2y3d#xq)Y93 zZ9P6CIKl3qe;{8e|J)A2g<%N%88ofdn#mj-)DT>{zv+=OCh?` z=$05Hn|7@^CT{YMpRP!&DU4%k4rL40XNnATlcrA1$KZZrO1g2O)5p@SL(K-7<-#0m z-4ODgo4^4M1O4|JUj)lHaDC+|;3xd3Z&j8wT7mPspjYC()I0_#Ce^ovqYL8MVzvK3 z7$)Fh{KXne=Wo82x~f>7y>AA|b@XM1);eIp$53(^>lDXw-?5nr9sTlwGLZY%AKV7? zh%h$F(UMp%!PKWTs?`X%7K_F%da|Qs*L(HQb7W|8i>+(rmVDga6&Hh#Bvo?chXlF! zb=H3%Mig%i2A#q(dpnroN)5ja@0V;AZ#oTfYI~0qdd# z@}9}`v7ckTyPVo;U^~y^(ccz#iIHQ5Snay0SU|V&_+HuADJ3s+pNQqloi2Ev9*@Eq znL}BxKA8}nQy_2H#;Q$6>#fktdvp89CWwQ#Ki-#_=ht)2y2gvY>t`=l5Ra;ot}Ake zTPs@pezVI^-gQ=3%`%IXI$-NAS_8>_bwpZpvkl%#Sw&hqp^5fw`qd_NBvS*4Db7xL z2gVaZZp;o^m@ZP_fW7w|28N#YXSYc`2}HlWil}NlCXX<=$-)j@X(QPMVyMJluH}39 zKK)Qqq18QmqX;qk@$G$UC}|9)%LK}jN0}`ZxKcxy!Ok|x4T;ypKdySFk1r(@Q$^e5 zGTp96!2Knbs7QYsww8fX(f>deL+I8n>28NV`VS;r%pO})iFWEk<-I zq{4?TEIeMUcF3rh^9mPEe zO+>;}Suu6UV=q86MnbUK_!V2l$F}?RaR>Gtj<_si%dt;NeI+$e3OP?(3%;M$42SLrbJ zm;t^g@Q2l1)R>EYO1Dzsc^q5>k=AOrp~4N|j>ELH7s1zdjuo=5 zuE4vJv#-&Ki(=)x7AECHymdvfrzU;0>-r5iU2;VE_5PxA!Kus>iZ%RIXqU?Kr@&36 zJbQ0_r6IU8`iE1weMga%d#GHB`o1)!W1l7)<*tUE!v6f92hkzZnDrI$#ju+a?^noY zkG#Aq_eN*BvOgY#zB}M$qW+>;7y=h!hLJ>JwQi#Kx(@gyjA3~~^sKycyQbGV&k&YA zWmx^X-Z;W|*J2uw(c0s}yYG8fR-Jr(^`S9ENy}7e+s4MqPa8W|zV|G)M<^)9DvXU@ zKMUg-E7Wo=BuTg*JI3&ik?ko%&U3;$sJxov_Azzr^jlJ_{(&^SgKxJx8`l5y z=<*AizoyHVH<&AIImh|buafpb>l9saLpHIAV!O2p_US_?eamg|>G4U=0#gIiA4bIq z_SjYQyq0?v_}~ic-y`^|u{dvPKEEb0c?oV6!GOc5jHB3#7sWUiaq=^u7{oF9uNa>B z4$xu3;y`@JAS>Y5!OzyJwV=d@?5Of9hn^k+nMv|RuqsO-GQw{y!^Ke5l}G>j=x<#3v;)``Lod`di zZhyoSk*VWzpAGX10JMuoQ@wCkR2-J_7`sM7?O^r{&!@li2 z&sSe(CDCMEX!p9X@ips$gd_YkP9|h7{X-4l4Y6$E#+(kDC!6om{8YR{ChnfqcV^|* z%Ic2&5TG5+)5bRSc~Nx4CU%E(M^UFeSOZu`N-PMD3e*`YpHc-PLzr*}5L>guI3iM$ zc#G3mIy8LxKeOjKFvcpYeZlU0(39J+XC*}z;XJa8++fvZG7GxSDm=OJ(-$->zs%7Eei1=NL3fr)s#q_pBWbYo$z$+bzvuPIY9q9^(>+ zIS0D&3iV%1o^Nm{k;Z@E_#xZynLwj_Sj{M#>4?@>SJ_)Vc^#f>Ykb03+AyWUjIOJSN`FK2(FzL7IXPh#_j68kW+Xg66}~K&&x_rc(Gp2 zkuu91lU((sBnRcIQr8jLb~I60+1g)HOQ=;#u*N9$Xw!V!DNU2$Pmwwx#E&5d>G6`G zgT*ntAA=-=A=3fArPw6o@UK;^@H=>HsUz(G%s*fUm+8}U{g@eP1mIWgg&LLcNl4s_ zr?*6eo$hDEFl7^&26iIh2FK|{*FN)X2Ox|5yvaoh`F<`{0aqC1G(sZFD8LHl|S2{Sa=&ialBq(MxC)27^XZR@K zHfC_j*=&kA6jD`5a>>9V)!|corgHHd3}5MFKcsP4UREVxTg_00u(VK`6yqJWZ;?YP z)S_`&tAo^G;_`Ii3xR57NyFh&Tvb9CIa}5>7Mky;n1q!4k&~rV->>I1h&w?V;DY?= zoR8r-yjiwHDswlhIH7@qC5Mq)f-`GNPvyh>JCPzI$RXgi%ox8W$u&QyZy9*9@%#&g zmgZ)3L(Jm!o<7GKHlZrNBXg%neek44_Gqky)NUv~oODQ&x&T{vM7=(=g9_m=tggZ?%2k$SK#mU7egCc!sgv;>Ae=|{w zFbhL$OUJZgcvypYtHB~Wi85n&Qp-X*zI(i=6Rs`}4WhL%wPNC6k6&phH$TfYwJBdlMU4!e|!t$*%Z8gcRNJ1i#%gV?4>Hp(R*U z3OkeO=rzW!Btg?6i#?u>eIZI78}OOyWqV$iSl>NtxrVC{wN1_cqG!4tjJZmDA{$)> zYmr&EnkZ<^ImP}?Knd~`aDLhk6H2_39G0V+@QRQE3a0UsVk8&3X3av;D{3=o}qG6;(k0uumCdQvE>au`mfCM%aUD-%HHp^qm4 zS|g)5oqz$8-YO}i;?eP?_7H=o_pwW|+o&Cdx_7!;CUdFxSuPiCK0%~xTM^64udYd;;4>{m8> z0dD7tgSa+46pRT9W*?%}x`sLbM)!QSlK53;=Nm=a**@_>-bO*}ZdPzDxciWN+?-%1 zd6y0v=sLnZs3}C}-x<_P8*!hdiGg>_4pQemXaDOWi(WCM(U= zKs_w3)+Av`!Jt#!a)LG+UQ5Sz+NtP6HfO2X?0|M_@w~2k!et)vTfNJ!DmXB<%DL5Q z3HO1V^>&D(ML^mWFKXKJqu6s}@Pv=IDrXMgfr`zZy6&ix_E%sM@O7wPVf!q-E}P(n z(`kR=2)UT%o417DiB2?}n!b$p-JU8MXZPLauY~9&@GjZ3;2^Y$YWWjPKM=}n0odCk zRpbEQOq9K8Is-n5*O_RPd%+62v1kG;Ko<~`;?R&s4?9(9qe?xJP+>;SSQB#d@-YEmBihH@B?hxp6-#fpiA*U-#^5bNU|wb zt~S(yt=1+~?~d&&d(2g%lvSSH8dY?mucYRM&=kRF3Nmh@(POS9l7QQZL69w@QD^Ne zbKTbz72h0(gn&xK$>ob#GGBT#NCK~}B8D~FuIR#HG^((L7|E*Jq%V7>b2gt7eU}{_ zTrxch)1gmoY}?yk34f4ss_Y0Z*&ti@e**izTlB(yd&WC*BuIDAJ3~R}Y@XHUzI@Xt z{3BDyqfCKGA=825h&X4Nj<@PgA9>R*a-w~>V8%euI;{|lt2!J*ny2L_$U1H_BSha7 zIyq$N?#V87EjH8?gRv4j097k-im>TQ2 zckEk1O^iG0c;kfbG^eSQSOAcHDN<`(X(<2B@$QVNN3{H2-n>xXjJq6Ds-}SQGAakL zC&=_-Y(0M=G@V4hDk%U%y;C$pe`^~Xxm^o2ZV*Q_Mn%9E*cpAk>~kTigc^LvIRX~~ z0T}=Di4)B1lIe;>oESfr@g*DZWyI>I)+Q(#A-~|lO9#_z0PINTSwXmziFhTH1oQA; zd#(1y%mDXVD#MVXUSv4r0w`8i>TI-%{qEDaQi+FMa$g~KNZ9?ffc8k>sJ?YZSVFteCacS*q-tVVqmL?wu1nCu} z8$D9Yd#!)4kY!<9l}p$z)<&~`qdmV`5=j;^4|p7jo4QARP}dtxTgCOs8Luas*C9K8D4WoEECDlwUk=8nkYQO`kv!Q}mS0xkV>Ozm)Y&J)y~7JFVz5!1z3 z1U~(-w$rW_B5V6qZffls;UI5~;nyz;;92gyi@73e_HLvPfRg{O2SOm23OiN*+=hFFTkj^3XR*rY(%6FNW|QzDnfL{cZZu=_+Y zDG5L;^3Uq_^SyLLyX-wa<*kCxLx$Wp|2{XpbHjPb`2pjgsMaHeK_9>f(F8rFzCgNw_(Wqee_+Q z;h3hA)*jB+C6ZuB=q2OuXAB};Xz6`4oLe3)w_1j?mP z=xMRwv=d8u_1t> z7Zj_hCSqzZ0+wZIX8bN*30EoX ze9_S*M5DZ@kI)VmcIPZ1EkC2HIo%)&N(vh_m(t?ZfeLjo z7Sq72d91S(Ae%a&k24a}6tjv69HL(?3W%X>*}#aN&ZqD}A-pP|lnW`8 zg#wH^(oW7!hh7r6z*8eS<%4TnV(|OG>)X2?Fi{R;UidMpT78gkIQcf8MkFFzc|-^6 z+6s418Ac?QscLOtA`zDAR`+|hT^i{=VjQxfk$AO)pIQP2&)D)$q+}WgR?vIwd zN|22t;EmKIK=IdCON(N{``X6SwD+usHeUPGPvcJ}4MnEu`)7_Rws=M7@3#%7(+h`t zzQ*<3Gp1Oh36k~PQJ+`>UU@}1InPXYGOJA4*HEo|DkJT%l($kRwvp0}9(9g$oQc`l zlkQ^)k(MmG5RUG^{LrLt&%da%$|a8Ss>==Pw#*l`5qU!>K)z;3i3pUQ0G#+hWo{62KxYnREnXUXvE$VF0G zZVVka36m64IUte}a0sAMXD8ur&}WAc9Q*2E=@RIG1M2T{aplsU>T;#YdnX`@`T*?8 z(5;fb-)o8^g_tyblXu1@6mFkI&H-Z!+o6Zrhvbe_3hi#*x%-`JDi?mfcETdK-U{Fs zx1@{THRqe&m2_C6Y?i9Ss{EE|y3Tu ztENm%hVdO6OMWL_PJ!N5^neuu=HqonXj>+xa-XZSSv|*}_Gf}q&oSoDUib{g+2bpl zZSu>!*@(sJJ9l=LeXoaU@YP36E?cT*Z#ecPyOkb#Mrj7Avr5Mj)XsJdeYqMp zwa)}0)f=&H=v>DoOCKri?ChY zy+KM}duql8>)u|n4X5LB`)h>7|NpV}m2pvZ-P?F$B8Wvvj0%X9bjPR&2nZwHAYIa( zqavWBbazP%2m=g~Dlv42baywy!1$h-!TWjs@9+QN{qTOBGiRT@_u1=O*Sgl)XO}cP zeh^!oQ<8fVBHgoGLp>vcE^sf`m7-!d2yK?*hHEqzrfa*{ji5Y2&xD5+tuo|Ewhjk8 zLK;vpA=k&opHtgkiG849yc1?;RTmVMJW^;p(tXVIw65}wZle2~xwT(;ZNDzLv<~@X zAb}8Y77<8mEvKYPE|0^o-b775UUu`^JMq<%6nCNhCTFq^2ahnnM|HiMqD(eq&irsw ztAp6~+vGmk7rHn-QXw8I&LKRns`SfR)+03=+Ydjf*nT2Ij~~pf$^LX)+<^Wd74R=A zx_3OT!;^oOp2d=`f-)xXoL7grosc}@xG^@)%dN+^&}d@hZ%lr;`*AJ&9pMcrN8lvJ zwnDA&UA^+GRs-HIoEMuLxlTQXm3P39@74}G+0^7iD;bJQmsbUh-gg=fR&Y3exbORc zdGE=+gg4ypUjf^mA)ND6Lb*WtHl|^ch(#ibxh=W#!e)rZ&kd#5tidK@J<6-!Kk`;w zqBnECc6;Pu$iTbkS1Mulon>~HqHwI$p8@d6 z{yEkjqQ)xwM{Bf zx8i;|B3xn8YyoY-M8oyl;J~s<(X}&j6@9ME_1|xJLP>L%q-*@zOqlOdPEcFrDQ~?B zzbw;i(N-yxBXS*3!hyrhZr+p>`X(v=LvkVSwQI(!D~i}p5et^S5466x8_@Gwxaak8 zKNFd)LMeqb<2KaKWj-}6jRZonV!69n$wFqtrtk-?luy*ta?7R`;zqzXxd+EAiXh-k0GOjH?KbZGnG zOxD=q!)cplu9jlf+pA#u&L&TVM7sEN3p?$u0@|upx*_W^*?=pl9jcF=HL^>!m5$M( zMfGbQ%z~h$3ahS#D1_*g8MCF;WNZ4$ksOVhBX4k9_R~wh1>UCEYyKgyQU02t{YpS$ zSH6TY0z#PjEKnz+Zhp5+ySjho18T7k2K6v%mw6a^B~PpqV#}ga6RUppTPfU-(+{!J zvp1DM9rapIQIg&$?ZvKmi6aI<<=`^Hab_$?zx+D+9x0ui^alk_DHiv{ zo@BjuM~Yp0-ce-AH~RWIG)g0f16wdtHJBzha#8DF2JbGYpStBmWp^6FSbyghTMFxzR19ME^K;n8j?)a>hCYIW5F+b&2?<3>2XwP_fFr zjQyL+M`|8P4sS;(DL+$o8?vN?@4%%7I8X&QJ?8MJreA=RJR;HMakYJ3=P+HvX2Y&&|A`FIhfs`|5)0i1-_#&8j>|E zPj0+dM9IG^KK-oPGQ9E-)n+(7tH|UyM{(we?t%^H0M1Y|pzpyyMD|Vpj)3 ziXDlO><3Y?E*@UtFH2cib)>&%i53`}y}Je$P{=8qwD4hw)D38<($?lP)4V76x|R7S z{ns~lJ*O8dLbM!4qC3J^c8Y%`8>#lgW(Etrsy{yn2a3$*GjF6m@64tWVSGW+mfE?@ug zI+wacX_OTn%+a1=vHMQz>7#g+lRYgii&W_tz|6wGF2gMg>FDL#h$IW^|sw$LRqoujWv5uXzh{KI;Y>p8j`2K!RoY$1b}2 z5@QVsgHndkf=P_YMCFZV&GxCX2f9{2WrBi=OLcg;*-Qhtz+* zPfxIoH@Igr{CR3@LLw28NxitN;R53kM~Rj?dDFdwm$c$)S~@=@-Y3mw5nZtq0={t0 zLTZ_I4=9+L=Hz72zW$z|SLw+cf*T)zU38DrT!C!7igAC``4N`u*zW`R-M#cH>WP#& zWz-f2z!WXUgwihe2YS3FeA?P1c60HAHU-_lM!@&H1qO4rUxzUT%VDM=u8fr*TffR{i{ z&9~{|9?jBk=t?n0M2&S#ydYrX7`|9v#+BN6%(2UQ7Jx|r&Sxt(j2+niL(qO)zel=3 zY_{if{WS0o0U-C~)E{qXWUjhF7f$t20f+uPsQOD7Nz;A=4GOrTnS1aGY}@qj?^690 zKqI!NE`_bqgLY^2{e6dk)|_0<{sw&t zaoWj$2(qo8Wy${o8(e++KGCXTQoR_QEj_pmjMsw3l&27wp%+>ZzwFw#Hl~D&DEcnx z9B-?F?RoxEi$cV5TX=q=?#P2~$6(@ZsBAz$MwO45yr>#;anQE@yn5^}wV~aSm0?B5 zXVc)O+cyhC;1Mr{x)J3bk8+Jn@+_u|QrFRHO+{}n!sb84kyKZnvXHTeg~qEj+GH=4 z0^>dU=tVulK{92*54Wh;J)%gb1n%w@S)s!Leb<~2tPe-1;Y|YWw z*qMR*eRa}1_i6j2MfjneHhm5siwu*a(v)0?C=X+DZIEUIF=d>^dRqEqM@RZkddijI zgk@gMtg6bY>JciqMSZVkyUj%3Q&$J^H&R@oENrn7ZhIoDM$20Ku|>zGGLI(QZ0JKK z*?-R6$XqbKLSRhjFlOh%tu3~XmuLuTK6rwZS+wQ9fjm2Er{xwiX+o`?Ii zQDE!#vo686J71pVF9fKVE-7c8f;&)4vrHeK?CYvo1+@l$Y3WFDeEh@CzIpQ9T(-yM z+L_9O0x>OS4&%smhYs1C}?(>>q-TJ(JL8C+te;Kr@~3{vkkG8X@muasx2>O@9dD zW6urf1sFIzJty^eLtgs-HoH$gt$?L~cSaKuegb=uVt1g6d~rtLL|}19970Zj-H)LI zgHYwa&+9eC8`#aWNK68BuAFmz_WVB6aO52Bwij$bi!s2%G@5<1df(v89R6~yBy0n) z@=xMTDG^uz01kz;pdkmLpgiVtcx-TI$bXpxgXH!WS?F~fT7$ecjeyd>;rNKDF*kxl|^oLs$C_6NZC5zd5p5d)c3 z@9W&=FG12TXV2tSE|&{Gp5@|-DO&5LTe8i!Ur$A5Zkg83rRqOGf=g}Mcgyj%Qzbu2* z7{z!5t7Di#G~e<>D~yctkP)r0Xr+Bg^qy0)V0v$Wk&r?zwB^GKgJ1P43UBGGgcNgs z|5CLqst+glG{1m$Y7*+A<_rGXzwRhoYx9R7oU!^MW!Gg7!!+)jC{==9-QYbQ zr%p&|?r-rD_4@f&zHfkaA^SP`-I_|C^1AvEiz`Fda9gc(#AVAtK^N9FGEdBlc5&oH zxawzyU8|RU0dG#4fUS|?o@fR4u;|4N+D?@#wfgW69Am1R7Fz5X6)1&0%%EA;Mv^aN z1X-dtn(J8DTh3}FxjTFTTCLNe-jz%u{xU>8eAr4$%5V1fFj`9*<+DkhTkbgIk z=apMd6V9s|ZwBcBPT?G?tm?~TX}CzwuM*xL8lUw^qx@GlGls47kk?Z%a)ZV7etG|? z9LyrJsDNk;)zez>GC(JFRy?(@%9Gt?^lD8xV!U!WBY^Ud<%!ymek_VkBjrMA)ld#% z=OW0`FUMd>no7@Qj({+=xt6~1j?CApqR*rwizI&tK$p3KXT!`OCAXu^+g8<4^bMz) z+b8Ug1Nw?4dc&{z#V#s2BDD@W^?&dmk?W6XHJyCU+}+`2{`f--sVuLYIp|}m9K$lK zFl9fzV)zfrR8JbswwHZ*3Z(}ar^fnrbb-#7VS#7W- z>Ag$fi8CnC#y*(zIFPEThQB24Fr=emKAKWYm{ji|73Vyiq^ZKzz(Aif(?@_hJpzuY z_B)ru)@N-P*lIWloP-vuY_DrJ8Dxb#ZyVRsf!sH>in$7~M`y=WiOJGv7OrI{X|h23 z>e%Vj`GD2om=nE{+`I{ah``yQN8(yGx@k0rT`ysY1+90-CdWU$h%{zlvm_t{xt;iG zI`pp#&Fr=R}0`H`;gkRhBY0N!YA*cY0j*3r*U4 zkZaLZ^*^b#LL+n6424 zo+|%#=e@BmLza>>2zvktqTXP5TxDou!RKH^HQDDalhm4A3VkSd=Bh9Wi~2WRup&Zp zh$3YDw3Tb&o8VkOVfaClE<$6*dgb2f2;13;r+KDiV5);td5q_p5C?BrC7N3fl+647 zlhjx@J(J+l$zo1LOy3(OLvcu=i-&#Kf)?8=C4o@pBf+iDJ_K}+BNmG8ai>O+0bvp&IQZh22+kSLEew~mOL<6Eft7aWv(PI_ASYa-J64L7(X3jbr4;LA5{jA5}k) zzRrlidE@+9I3>;u7ILK!*Pl{%ZtNVYzFT;VFK~O1gmoVgm38Xn*Q_;2R&xL-nx_Pv&d_E@MLm)~xqH zt$h8?XwOKqy*Ba*mZdDZC^s6VVo~jGtW5VKAUG(_r#tASsU|(Gj~`LU5x~U(l6@_6 zomjebETMa=eHjYe)}I%Qu?40}mA8W!HFdn9qdJQSy&PuSv5~7xfhYG>7E}AfKz9mc zxq8%ge)j5udGh&6^l_0*hzMakK%>gF*w~*SU)WRn9bzLFdxQ5F1on>JQ5jx6!yA%x z&4J6en+@r4SIJ9>`B^d1dA0zuuF>+(d=pS}$dxVu={7oJIbEhvdOPnN$B_b1@3O)h z!ZP=|TBRHrlX(>3qNr2;Kx&M#o$OOgA28J0=2{nH9SS)y8Y_B{Gu?C9yL%4N_e-o!8ilNJKLXnuRSqBr7}>k|ixi@u@dC3l;?+&NKCRN`7UQj&M( zP5*v>^D-RMi>S352oybuHhwGpb$$6D(57X1u>EnSzjKxoDJ(ACY+@{M=~2z2ht~>| z3?18QLj8x;v>O&#t&x*tZ9l)(R&Pm!WlO_#i7_Qla&_%JL~DF?R@a`tXtgm{WL+a3 zDvN#|OZo)~*6OGjAX6qd$e;f-r>EN)?!KiNO_5RcI2vt-BWyM;QIbkH5?L&F|XC460Y(R!e>&FSS5ENihyOl@rCL`-fAWkWaL^wDo{mP9 zj!c+Py&T7`xDBSG`xJ;vvF7-FmXv6%j=UO8UY{#tOK)awKMYy|$_k~g_(hBXRNK9; z11`A2tUX`f(s0l8vgjXzQy17R-$1D1uXBRmjaJ56vC7I1=Tz)UQmM=I!_#{X{thVC zh}Fn1+L>Y(bGMdw=DG3Lm*Xvv34lTo+-x*h5?g+x#=S}ZVPJ4j;M182~ zJ)q&(#c-T9ptbQ2r1&?I4aFgrDRgusb`JyWcm{%8Z$|9%nn3^dGd6Kizx!DF^wXty z&@R?S@|I8V_Zgg(!~wf6fb|@(p1R+Uz4Z0`l5x!(HwO9({GU)`z+3wIX+1EdoT2vd z(C%))9!W>QE4dgEWySLjwqbtbhb>j{n{w(zC8{nRKOb>Wt3_}(pfWt<9|5m{Wn;qD zPnqyTG6Ej+Kbj)OU1;1ZY{&TcV28v9?-sYkhybKS{u^q~)KJ`B#_03qq_2D&fBeszrl=%OmrYzB%Ap}-r#-RBL1N}>IbQ*~+RIYlaZMB{N;o zb}pzbuxuV8_l)=+zh=##!Vk#ITeJZL@H>D<-PdSY9yp-wbdn~-A@0D=ZyXD|dJ{O^ zDkbw#75#fG*3Ndt&F$1jQ8e#B54gjFWq)+Uz9d8D!lK@-_Zj)_Kk&CG}b@_v1Qy=HQ$a z+Lp%x9YAkzaFiDVBBe`>&*G~5E<28uZRjhGxyaK^`!rksDK&z|#Xa!;e9-A~!k8Q# zk|dM+iyu@Q_!BL7`uKpkt!OVAGrQHJ@?Hk`+)yuqv*+VM-bLfSC8jtV!6w-fmAyNi zw;5m8%Cn#HBsx^=#MoMf8k@0b87(_3i83Qydz##u$WQP4`Ri{9(F3=|82I?!U;` zx~TDo01ILy?9KKPq_bpz72!-GUXB}2O?bay7G#KQ-m0{7{DR`-l5R8v4{q#Hk2F=u z#YSLa6cE=q&K9KFI4kp;Z$az8Ja!ty;psBm zM46*^l+50R%22l}b>5w35@H>u-1IuuM8_>Z)(P_X4`ca;blbyKW-Cpmp~8uzao-n> z&0MvLA}>>24tn57uJkO>*A2Q;m&(OQBa)8~xp2jQVUMt!9V0jiEv3fZ;8MhjC^ZXTun=y$yD9URqz$rrH&7JD^8%4zcu@)b-w-PCS-+OIijQSF($OR0MLd$dTwN02_un)2np&%VKRO3j;@_; zj0fi@Oo6k#g?X*Z{lH%hz*wL)`ws}ynU(YZ2l1`Af#sC?5!#~E*r#}w`Vmiwhn)XH zHt@CDe}9gLj%mi8o}SWUo<7b*gRkKo5N5Qaerah2v`h3DSakUH1ODp~e0hPp@x6+WngQV3|{3XT_WLo47+fW=+?L-55tWni>^{S<_?RODGnJQNHx4O)!g zl;n;*bRoquej~uM0gnVc<(F4iwpE=-|-~pV|9bE8Gv-Woa>=}pyNoB$CZJb+RLR$ecA#P?a+ebcK`Fn%GS^3|o zA(#z>j^MqEZ`U5)1AYk9KmRERZTq)nI|pGRYf_G%=Tt?h3l7G)%K+?H$+gd?r@mqj z@}HlJ*T*S#eK<~={`0(-@SDOaPEgb7`beDXtm!{@os!XU`&pkgD;0rGUdK<+XeSu= zPG|}z3bY~H*_cckSMo8J(xpY<#F#mLVUvw$o*D%5Pv=nMv2vwB~laZOd|g-V_Z zalLxk&3zEDL=LEYbBc$fqr(Ga8SDGg33tnCZoFyfWG?Vh=zE+r3fVQz!mR4I5e%f5 zTFZ9UOXF8MHvsVzhjhZ=GOlDZz=N@^eEAerv&y42d3!s15n;bDKKfE>9Oac~u(tm- z21G(TjO$Da2d%OsR)`7Z-H_I*MT;lD?UF&Z2^O1eFZr*pTW4N*r5YnzJTc?IdQJLz zA2>+F;>>*u4BW7!1^Lyw->9AZ@^iMPkv@~fSj_3?je|}PvB9a4BF@9Eegml=HD-cW zcrz8kb`z=wV?y<@$P-twO_wpG=VZtBwzsPEF|zB1hYu*)<1RD9r|Z_V3KWx><3Q~4 zvZ{E)NBVk!8}}lsviL@y`!5KaV>sfY-ZZSPW>OBsFuLdwFO;OCdPX?svS}L+v zt@tzELRmA6dsP?ovK7L<>C$&uX0Jn|;yisy>sz7W-IK?xG8zvAN^O3ltO5JA*S&NA zZzq&WhyE%((pzX#WzXb61~>sNtm)E{VM_S=I z^qnhzDJlP`KmfyuCL8b3`x!OvvRLrDY0W4_BSqcD>aLUb9mRfU=j&8%;~S={{L_ap zc5ve@U70(-OE<%jlk3cAN@QB5mQut~J-tu+({E*APHN_~-$m4G_4?(2&s5UetrD#<@sbzjh>+n~;=Gu9l*&%@Dy+n@$rV`J zux-HZyTfDL6N*vp0MZ3ehPr^N)h?CnmunBnOF7zVIY8Nq`$m`^s=nHs0l z6K?;&7!@v#^T>0c0DXq_#i+u?HMC!x)C5%5OZ- zN?}#{2^!s8Uh_2+G7z23uFVW(~LU)JtfTWV8BaC{~%IlIK)Rs`V!ykfq9EBDBdpq+_OXRVY z!`Q1o1g5}@TsTd|MprMFs1P`KmZY}g2RCRBjT(sEhP(S*L4heSrr}*Ywm5tVMq7gi zS<}kZA1Ii7jN`YI=ziG--D!FZMFfT&xuewAxii*|p3e9m1g4Q5aRrl9yC$`=ZQksi6%Uug>iNW<(0b z@q4O+!vf)`f9AhN$ox}aL#It9^mFyuN~bLuU9On)lYp*z3NHp;ZSsH(=DT(F;rCvS z5WiajaoAiIDt>ufkT$W(g*32OVz1dLNo{-A0{FZdU3hr#&W0|p`AqhX^p06{Ff1hZ zRLFKdbOvl(aVbOs^1=o1n5{#9PN5s z7_Frnp4m)v=sgb7VP!!3H|yOc-U&=K@Li+zfi9|7bYyK&X?k$%3T=JRqa2b%n`XHEITN zy}6r+RREain>L+Y%`u(CAXg9=ChvWzGq_JXh%;{_p;}G*9n=UQKyG28of!uOe+VLw zr@^tw6Q#dkI@;1nRdZs@e+d2pGPl>WL_mC)I*kF(tKPotvj8EsAlhO*P5_tg;!!o= zq#+54|HE^JFZ_K0;?brYPn2ubQz_5n7&*&2Z~Pa4iv z|7|7utRDLutjHlg&Ogzp+U_Z~R&Hq$bM6?P2;m*WE)a`_vwxs*Du_{=64X~HCuRR} zj{cKEi`M79BRo6zg^vzVb&j_2ej#J*G!#qtoTY_3Q%`FE_AM2Yd?kNyLVSwwy+-@L zv~oGrJ^@gIfF9_;1I`k@TVK9IS%^tLhtV3xze>yfP_`SxoyE359#_gOaqYZ~__}- zZSL^33ca>Wk7Odk7QF!KzZqLUz8Z%9dACx`q_J__SLLqBgA|a(n##9*bx6}^Q~aH@ z)Ryp7em#qt2tL2xyvM{YB?KW!u1I~Y&i*3yc9w~p{c!=-J0Eyd(Utqc%ZtBLN`Y{n z&Up@c!BVX%`IkgiR(Ju;M46h-q!a#Np1mg!CMZI4+jD8C z_N_RGHIKRy%iCDohwMQ(-WDdXH`bRm0OX1|j7#E6dn>Ndu9XUz>NDcOH1_cD-^G3{ zDkURPrL^!0Hr{DKL;26+F4y=C`Fu><4=9ctfrp5vFg{pW^?@eBB`Xungl9bfCo80? zKR3>2k{s(b^;o)Nfcb_cQ%5+6zan0y0${>47;8tMwad1Eok6jt_(c)0aYCH$;QT|N z!2?C1ad`3}5L~(q#xgq617884KlLa!XbTYZ{%?QwkLMbVP@GIX)Wb0;lPC8(@c}WV z3Deh{!G9kN-dG>QM{Ex!aWQz!`G`ILd&C6cUmj!H{|*`f$CI+pFvEo18TK^46OajF6)UU`f%6R(WZCyp^@&KumMQG?bWASP`>gTMzJ4(r<-Hp0r$1RiOh< z?)N{?Y!O;cbItc*uS1lVK9blof(ZhPk40rZWYe)ubjLzYtlnv3!LhGq3|YtMp7VwY zP*6#)*@Qi*Fi`?s=d6({65Zpud}ft0z!6*>m(af|=vo5={$>~9Uam4&=~Kp|u|jG! z( z`INgifaQmm(%V99;|@{*7~1sWy~SS@HdK1b>h49)g>pyLsTD5xHXu!o;Tb6wK{2~n zQ%%m$VX=NwGvxAanD}n>-eidrGctXc#^#}R{ZCr@$?@Z;)|oZ;4wg1GY5m%k4Iqy0 zh1CrVkBOTqYAWzX{9esezQv3!CYh!a-i9GRoXXj!PyV2K?(eTVwRZCe^9CJw2o9^G zg%5jin#qee4`%wT+FZ~%pxOs74HbpZu?!G_zprQ?R3I&PVY_iB3;QM_|4K95roag}=5v!}j}ZPQldx_tweTOnjN>eAj4Bl$ z7O+Ji39WBBFTyOz1NCoV$}@nxF?JH~biwfuK)`@q_$OcLknsm`LX5q#AE>) zjJHiLsP*C$Eg5F(P~KXkoB(t+r@$!+5!gh$~Ar+6z})xOB6VhPYPkMyz&Q*1Q+WzcaL!S&u7dvr=*dhh_!F1~iP#oN8Lp zhAbk=&;WmZSoD78%-g06-Dwb`O~pP$y{xu=`O_B4xcv`-M0ntL=b4pqLDO&FcOEuS zbA)>nvsW-09+Q;&%iLe0|0nnN%n@PU>k&#zY+ARB8D34^RQwF~+uA!5h{#GPW`H3c?7 z{tutkTd*T14IM~dc@8G#v8`{&55TW61htQMoTkPRCugFT_VfJN_X;v?3uTWyX>!tM zwIvGVXMl+Jx1RfO5JN2a8fna}oxS>}GW6dB8SGOW2X%y{^JN?o-oj;wW$AB))m(qG zYbV%U{IFWQTq1VnRMt7)@l?wL+K{9lR6~_Hk!bajebe>2W&*WYrQ!2;X-_U|Uy1CN zKx(Z%af(V+(Y6ZEoDc1R^$;mL#9Vs$bK1AMuPm2^C#2IGCL`PHO&W(`J|;5T(LIbe z$l-`9mEmq(x}k2l?Xl4`@T3Z^# zg+448@uAkAXbk}7yN~NL35|-yt&&Mr@4ZHYkG-UZfXxM zy7aw}YWTF%PZpK8u!C3mpf;xGav&MvW6|kC;IzZk#Ikt#s)L)VA)PII<%#!bL+n48 zZY-byIT5_}B~5EEO-m`oSZm8IU#&`U-&@|D`N3~{)l@U0EacUSq z4Vv_cHAnn*v&K@q;ktK675!pZBdG0L)V^wXv918lk>aq<1SdSv-x3vNsNzPUqe9)z zSoKgno3%W_tvReF^aHrZX5`>Oz*6>k2PKX!xk13ni^Y!>N9E5E|uN0_V-> zI0s;R3*qk&?gsK8>MDD6)@WDza%tIwzSRr&AE!Op+8k&n^w-CR){w&rFivxO;o>0- zwXmCFbvok9qfL6QQm;NrkqR>dv@!PY&IiDY8Xdu@Xu%}o6}Iiui2JsnhV&v1$O+9{IPIOJ!^NEHf`7*;A$(v~0=4ET4wR-KdWK4x_tsoiPg_ zB8GprPGTkUoV z1SHjL$`)d0GO)FlmPWW*OKo^*!u2f2Cku2zeZ{|<5uBd`H%K&Vp3qw08DNSCZkD9V zL#9UM6UW!|P5qfh$J9SK?j{*UPW2CcE&FwylmmkJV5&QJ_GmgI5>atQtB;c9c65aB z_J}`=!lr(}DdCutwfO3YthW9|{W7XY9G~yaXi8D;?{+!1vTF5qpZ2|Kf zI1Y`_f^by`_)5>=eR%D-Iy(aeQK>}A=iT@3*X>9L5^~-q8oRh~YwL8FCYy3grJ3H& zdY@Y3=r4HRiH0b&S%0J2<-4cnS1PI){x4CsJ{OirDaE54#_W_92dR9xeYMIf{6t04 zV0~U|_B7N+jRtmUW_h%gNWJLXS&~QnuS=)A7-9skerY)L57D-DL{QC@%!wyk=Iu`D zukAj{Ekjgo96=++jgEUWEfbQ@x~jsvZ=(WZ6Vi#&Z3UZQPJ;dP6sp?3xiF0Nv7fFeD5a)D9O(aJ9P!hd(~NhI$%82 z=faGgtKV2<>89fnbgur)<2z7uf=fr5u&w<~G8CKvDv&%-C{!+o7Py3qE4ls|g`xJq%_sTnq7eudT#2x~<2_Tv<0V50BuS8~i-flQ77TYWhfmX2e#Uoed97(Ui8(2-4N(RQ>e1%5AjVJCt-^zf+Bj#vB0-Lc4CFEJNc zXyM^yNv|E2cqz7sm4e8%7eLFd6QAK|A(^xGed*6$n%nw~iS;+jC&rl>>*Im*Qbrl9XR$Tz1 z#ipiy$_eYPhm`x9?gzzMePuBIIazf~XDIFXx@xnS75`U9?bsduVEc%idiP`cB@&4l zlcvphIz%A~$`@$FS{BSNBwqJJy&PD9=F7f#MemLwpZ8p*vNYv*QZk74-rPYB8~xWa4+5LDdvB z>zjf`X};-$H#XjftlC+G&#lHz@+usbh!o#N$zfD!fH@d~H*I-t9-< z_df*s_^RTyyums;x7=4T&*&og8tu2ljkzL!Ror+w4^5TOD!g%N9UwYpY;d+&5dgxb zSx-at|E*@$bDIwt6}nl#+`vkF)3W{?)Hs163Lww}c+*{l2oW7zX>(25e@Z6)5LEEs z%M^g>V(|XXc{iRZGx0+IBdMGR_>zK7OpbnWk?TNx^m17USD<&!%n%tDPb`vr@B z4UFl_(s zRbi(sS13=l#j64?8#iQMIj=26bJ$rjE2}(7gLWAU5nOQI=aPFd2btuUtcSMu^Bfj9 zQ0)By9a=TpMj||8lkw41KChbc6q1&II4m4f%<_qec<0;0OK;KzmnX~TJt>j1f{cMl zx)}%iQvT5v`Xct*4RSDg_TquzzORNFAV?{c3ljk>dJyrY^`&Lq!0 zEQ_Ex8s6Y7;I4LXzp}GmSZk*I%UvA-WW~oz@6!a^fxENK4t%T+xnmyX472L3x>Q9U zhul&E3lLhqb4;n%`c+?3^1*8b_Gn`aW4dhR?3ep^gdPMN3R9MA6m}Xi)qgmTvSpgQ zUtzCWu01xPH)w?Dav^*)xTUGw@ar(n+woQ}=4zlfgVqYj<~H&>3YEA>xS|L^s-Bz` z*PFg4J&6)Dc`)%}>4YsHfZ+oEKea8Tm&_O(=}sY-xHRE=%Y@>@IPPd=&D$Ku`Z)=TGYoC|#lq_o(@w@(%U zwVq>_Z~wE+{xS7>j9<_je#e9k;mLHHom#kEC2{9u?7$4W_3^ip3A5_cTb7tZE17wB z-I-7mROUoT2kGVXL2~Q2Jfk;NJ(@cNALS<#vCgWYO3rYDgZhgqySo>Ut-!w+iL`Sq zI|#0AXo5^*Wur}9cjwot`39C}7N{kCOv5|u6)m>_{_J5I=2&%5WrN z;FeBkNMRz?u%hIik!>_eG{U{pv7MAoo4qq{kxZy|BkV;#o6*NkdTkz*k!96aN`e$| z|F7m%g)`6eg{?b~M{nK`&l7`W7m|70X20)8#k))nqn}I3wW?;0wtvzn5?VVb;CI=1 zl+i!_s%fML7kZ|7`Hn@6=_}(b7;VB@^Vg-T!!lAyW{yK@if;nD=oQb z&ybk*kERP=b#=9#-mEXx@+chhQ4Z<7j-%srqtvY`@VB0zlRedfMLm}EP`DHLE2F9 z^8R}o0%q;U@UGOuD4VD=+Ss|Afc9Z=klSxxR*%!(xxjr0wHr%=Tz%+I8`VY4dqUzJ zO|c@5q29+uaRzqW!`K=+w}X=Sav|+eY{*RCc{xHoQUJFJ3sx&9TM36gF|YWxS_!Mm zd>@Nt8c7kIaE&c&s>=`xWFq>34HiYb#xxgH&yw+UCLZ*+nhw~QGIat3#i4^g(wwug z*Rja9e21WTiW=;-%PJXzuco!8(K7%>_W_X8 zKCH+>7ZCV8Z@-z+VC358wf!~rngQ5i=-{KCR+L{i{)K$qpk!$=FatHJItCW6ujA@C zy5fd9K)6kO?HP|YU|@`h?h9edCf9p%#yL``k6svP2#^oZ$5y)}O1TH{0j?L=b3}b? zv9Zwzmuq%Md72e#t(o?&Z$5BXDSzRv@$vg5v=OKc4%Fxu0vy&fB1TAB20NO2H)25} z5B!ZIp)7DV`n2UKg_lRLT9#(AiipG2p1fOdGkZxY9qXl(@}zHW&KaK*3WCeWfnt#t z!eQ?=fv?v`uHCl&T!FfY*>Kq)X;<6W*zR|#G!E?&QWFwa4G-%eHu0d#tzeCwUf#1l z^PV3n*5a(^tCK^de%pELm}owtei!5NV|i z?{Kwd_1EG2K`(k?s5FK=U>69E9noHrXDhaS?Wdo4H~5z{1G_d4Z0aV=Tq_0}E%VBI zk{fS*aGOs#$j*{8$ewV&^BIApG;n^h^phl*fG0BeurOOH^~J4XZHsmwug-ceMo~-G zDs}AWgaJL;%-JV%V~{x5`^=}tu*^hW*ptweWWG+Pl|kxJ+#?wqu0I6-tgIw-M9N-gmIQ#(7?|QLr zw1nry@Xg2=scEC{KWRNe%@3hN>1@)~o@1L_)@3iP%MycX#rSn~WUtG6C*8c!;Z-Y4 zYGb*N;36^AW|y5cb=JIF82&MMft&Kea1XG>MZGlF>Nj$YjHA`tN1Aokn@bVi=OsvlJTVW; z%7W`$bju(E(_Zr1lQNG2nKf`ag8NWmFqj_dQHYTiPORX>n_DFYZ!G3GVJL0Rj!~6k4D~0>KIH z8Z@}I#oYr0X_4UWKL5--GxM7d@B1ZdWv#56>-U_q_ch)nf`%g88|U=CydFBg=6FH&DCZ8 z?S@!tJlfmPMMx&FUYLFCs6rdLSg&kKLX72oa-{!N;t6TPOm%lPZRfTX1EruKgk zZZYP2&u#tRGzweJZ{M-bhh~)=0)}g z){N;1#$R|{uw&>w--^*pIv(Wfz=y$>(hdfeiEzyA1{x~`wZi8{l!Lv zez0r#ZG>_1F$Vgmb`Sku9`XM;9IF56iR?8#2D<)x;zItxNB`T`%-ax*Lt}dR?9cb% z)qgyJe*(6FXC$}cfvb|3NWj0#m;8TYS&{xRg8F-`7{2&FkBaF(0bd#JY%AN{zuT85 zdu@ZEs{h3W@3{UKWg8+VP?4DWdp^n&hXcc2{o~cpoc$k(CYg^C&%YFdr2QHGF%YHr z7P^sR^C##0@A$^tFhi~CpJ8rHR)u-s#PnZlgdCe#)kSSXo>3HGdiO7zJ^J$Ue?%kI z9qBax+`k*OQ6%{=@Bb&6{I6Hk!W$D&H~yZ zXYKzpACmt-jggpIhHtMhIq82c?zq(A|HpKUP}2ynZU5aRg@1m~^>4V|79X4D==|^L z%KfLamj8m2yzP~bxX&tX!u~u`|2t6sWq?2k!nedL|J3@yXx5S60%`Wuv^)sIpZ=?1$FAfp&fK8q^ki2T&eymm zn)7Y}X9zl^%EPC%+G|$JIj3dawA^IOt1`h?r&t;ab>f(mqtm&}GdiA$)Nulg<<93@ zXI&mJ3u3$d+N%1Yfny53;4DUlc*MQ zhQTP1FYesnL?@L6Mtc1Ir)N~6F81P^Y^k!dKNVQ~22e6>31FwDueBj)s8#(lch|ai zbeA5x*lC{(!%O%*ny22n4e&*Q+@Fl??tzwW*OU86m?T}>v%845w5%!SD%NMVC8)N~ zuWT{fuBvt*)xo!vhDVY^tL_Awc`IwRoOin2XGNo@OY@?Q3PZL`;P_cx6?&hnQf1-$ z>8jPWk5)f-V*W%at2318Sln0fd27xOy1}0-t_iV(QDl<5EO+}HqnS<)lCp<%Ci8|L zV*7Yf8KJ8tp6TB|mTsPI_#$~CMCq7YaU5WrDg0$915|Bm*;qC2`)o^ydhOU*B(dLiQ2|H?SlE)zQBZGD=?!nGdqtT2&icDaXIdM8Sq1eaHZc)no`$wBUF&N*MPYak zVD=I8;MrF%XaqU?_UB@#X&{%JEK zg^D#UUI|U^GL^}HaosTvtn9(7uNur@G}{Wn>M#oym)bRHJk;&zgX5wR6BXHz#}7*D z=CROo(BpfMbYGjM;z_Z20EzOmRL00$o%2XBL2%y4+5q(rI_#>i^fpbooRtIHet>yZSoH;?%6)%!~hc`O+6quPi{CWtUKeVR4r{bvUKy-2<>yypzXJdKW_*Nr)At7PCVVDG9yo*nQzj{f8AA;#GL zu@!#KOzE8Tm+c3}C$TeqHimnYMOR4MkP2$#k`j2Y_Xk6{pXK0l46d1*SR#ApmiJAA@FIgAMvFgQF7JI0|%0LHm z%)7xO*Pn#oTe46l(CZ{zPcS-7#pk&wd@xHp0yYW{nbX0P5=<9!hNJ{JWdz0To0Mc9 zWo1~(FqA-tAiS#a%}Eh^``Vo?w(c6z?1}UiS%fx-a6ZOikqKNvZUaXH=_7EsU4U?w z)mQH>ZX;N^Mn)cjr8hVJ39ah~%L3NWZ!0nD4<4W|k29iFTeq?EVl;bog}J22ayzu8diX5a-RleILWgskV};b6QglPCj8du9I+jOys!GPMowcb@ zOUKYx74$X-C+nrM(HFm#>f(SOj}$p6hC$=9{XsR28^SbjpOBGYgm$0+i8ChvG}?E} zLT{N}qD?N$YId2?ds$;}0N?#w2CtJ_AezcOp>6F^JP-&exX4i?dx_7-f|dq{;(v|{ z_5sh;0(TwD!TwVHIy0BeYLU_c#I3f=?LYA)rVU}|s!4svc@NFG(L9Ef)EHGl9S%zO zN_Uq29!QL9Fq_HsPXlC%=NagIU+zNe7Z)0wdN^?CWypBENzp)*-eLGe{g@L<2Et5n zp6S*OkVw;9liFF;t(nMcaJ&Q|T<=_s0iTz)(^ckg(`4x$qqL9p6Lf)CCp00_Pz3XQ z#7~sc%eH;Qp7z3e^2)rr!r3YRl$Y8ze#C%3g-Ym)Mk5g@U3D>Ow~H!cO*|yr4I0>S zezsXCo7$ZKrSG(FTdR)h$MVJ|oHoNP2&k#up2WdA!T4 z6hZb;kNXv@yxjJiFs3dA4ER3 zF{*du$4#D>uW#Hos*dv|?RRW^#pD088Qg!Yh=*>o6)z=WAv-4CmH+mUrAncp+d-Jn zIQZiukMM8-x(8Z3IYYSK@m#i|(dYJTp1%oyg-G*h@Gm9Y-}zu7JLrL_pTeWdF-=+q zka;XzjK#gcuI~pu*}BQW*Hm z#&W|ZH(g9!FuC351cr@te04W{YGem@SZ(pmtB2WjLS{ho(9D8IY_%2zN@pyQ)O^55}L652EQ>F@{@zD{(kU@YxF#Sx7m!+HP^VPOj2cwJAOhDF^_M!*orP94%Px6E%JALi3S(e>_Tk1(Lx))R_;`-Y{?wG z66~~cZdYASw8`#mOKrZpw`vjNqo&H7w*q5kO287%2{w8kj#oCSE|ogZ{8UxyU2qz- zB^uqGpL~F|FO~H*n(j-KBJamnp5^<$tukmN-WVGDpooF=b9ixY=U0l(%eJ)6?9W6h zXH3f!=8;0F=^|G{godT^bo!6fQ@r^1s97fbNGyx|Q_)S|b~7YdrDEXF$;@NeF#lx} zl{U|!v2Zl5R&O8w#;+FvuYf4ZF=Ku97={j(pT(@rN#dfed!o?=&{8r-*U5ox%>`-? zEUJf2+W}Zp2!B>8Ct=HmS{T3C;VH%vIK9OOl8^yih0X1M3WB+cG4+hKNw;i@qw=3B z1N$`!-?01;F6;;H> zMG;^2ZzK{P=6q%vx_HV!xWZ@$=pVosk_Loy&9pUql-7@1MJGs!h4@oQUWzsv#EuUu z797D>Z0z~yLDd6bo(?>j^wg(W?&SkN0-nHjEgNL4p;ousu>&!p{%pcpk;=faVsV8w zyaVgI?2>4N;obg4p4cbx*6qo-or4cVFJwu7>kyVN_GGK#tE4u2^6vRjIyg2@ zeH>b79Wr`p`I>wHCAZL@4mZD2Q8&A-xL~XB*Of_d9h}v!o>%vk=%xG$P=$ptxmTxvZ+b{ye%_2_yuWu z64$ZF=x>jjxs6l1oJ!y-W;$d!m-Ic9NZ82`IY?-a6ytTzRq<%HsS!}@)FY^dJV za9urf1fDT<@QFX)oxk*9N=wfTA8QzQa$9)si<>85#ZxVT?s>i3EMCYX5pc9t!>s(W zoU&e`Hb75Kz0uw~sKEAdcr>?U1YBXOt1ic{R_AdSlyi-=`1d=BqX7P#Z?z(pv^J6c z{oZblJ#`3mkzAFZ%!GcIBk-pR=~+7AjAP%V)q+ORjX16HK1WVgS~P+_$T!Tn;$aWe zX{#xPx`5eV7q{ODJ5I`VD`Q`ca}U|NlF8#aH%hw?XdRO($fPnnye!;o=L?dtWO<(F zwn$Oua-nV7d`xU~j!B)x>*BUH4=f=m#HCiDc&diqLz9n*K6j_2FYut4k2UX1&S3&bEaC1zY3hMPpEpoLQ2*pvc9X? zS@69p*pnT@vwddJlRO9OJX=*Hu!%uLq}9WGsS^~3Qr;PUBWuIpV)ZfpIQA;<&rsxt zCOk4tx_ug81Q=Okk!tVF@aaZGOZeHG9Z1GMjZ56$fs?I0#>qa6HlPyJjSVh@b;&D#4ukZSDH;$j~3G1a3t0-Vz05;TXGV0Nq4K#T(f$GoZ;qPk12URckJ!v#;AgT=n7M`DdpS&!fFpAie6UvY@)FU|Dd_x=F<$Nk@_aB#C#n zm*hoglz|j^@rL)6MH6uOZLZi3fLyFzcJQhoX__w6ep^g&DSu)u76(ip9$=%iyJ-w9 z^5$noctZ-!WZyXW>Q1N-Xw+#4TPv;fvU)&uPAQ~c?%jv;W~f(bgquIl2@d{Cx;6YE z#}{*`qSOPob*im64sL`xBUet|{j@aLbM6iZb9PDyMh#v2`BP>n&r>Y=<-8b7;D9yf zo{ZW<>^Ld)Xzs=(adD^QM*qC@(qk7_45k4GUhwei2KM{qcy9egi?L9 z5y-ld>XK4GCkUsa)o6a&lJ%W7X_=FIH#g)fc(N-GH(1f1&EfsQ+pi2wq2`WDYf2qQ zxAUL-POjW@VN^q#6U9tc-~6x(3o44sZ#m`jI2x&{s>FLoF1vgxK8Xnue0HYAK(}8P z0R)2s=Mc7xeD~4Q$_5sbqqq9v8HqZQmF>yj@As!=!tLc*A2Mh(%$NI=P&RW1oC#gp zJ<>PtH7;CC41xa2vtbW03ingz>8T3<#@?<<7xa$be^QuNHJ2WqoL?lXJS&Wwo~O+= zB-@9n$V~wLu;_#8S9>v$Z?#39P?Ns0Gr!TY9Rpwd|(RNJ)A7CSVjLJIJys%-0^Cz#zhk$x4 zebkxulE7plB)&8+1ZSrB^iGHR;tt*`6U7cHH&cw4G1QbwI_Hb(up zxgei;2P3cw99D%f^*5oz4Ytpbquf@8 zeMG8tD+a#^5p%{&J*f1M6m9K>UsW#e=CLg^E0#=#gk3e2ZqBI`w7`TBd*<-a=XHwY zRn`>!yolvet&cA8NJhY5${$!kI)euGy|c+6(oI>BhmSPswbP}ZL`~&COtTw&wxm9Y zd5&~)^JLCEET_rtBb>~<>8#urdLEVYB=kq|riOO){V-Uln{Wx(1?}Qne#izE#QNw; z+ZNbfI7r&r7p0tCnbC*S)y0pC)A`K$i@8*s#ky4n^6<~t~V<-#GSZlaaA z#$DO+!%*G$$hkvK{lup&HbE^UU*w!I*U7B$!`7g?UFjkaIir7DDntNz+LoCyMLmk* zQy@k;7s0ndqEsbR(sE-ghQRh6B)Tp0Zs^Zn%ZP%+2<{^%iAgtVGZ6w&Jo#;z5IJ}= zND>NF+am9VDlB$p1UFHLKW-FFbs9^&(s9ae`M5JuJMPJpEJ~@XpMPN^!~wHp?Ja%X zYr@ldtgnzgp^D39(j`vOame1Bl1%|VFCbg}154eQsvrqJO@kkbk&l#3VVqAp?DiKb zTaYf#pptb{lc3Z}&_|9|Oj{W=$+~y$s;DW$d`iJFnC*ArL@m!F$Y)Q0zKXWby9%4R z(~FN@BsNXOW|}54$~%S;91I4#0kr3h^HvGHM###1)77VLW&-vk4uraWwOy+H^L$bX zjoCO~s4S-N4;6lc$tRLoX&>{V>rc8UV@Z&7wL=btea@)|WwY-0=f8rpn4w2qO|hn2m#G&k0^PRrA9iT^;A!&aZC|R~2sC5Em+^lxa*z z*|%=lOV!ZXwX6#Nx!nn4k0}Gs%|C1T18YeWh;+`^GvaO|Q!A=5y+^QGe0i zMA?lUm?VLVE<88{_AZoH+o+O?R*@s0%Gzt(80vsT$-P6}qOhO&vP0QZA%#8yP`IrF zejY9!cZfC>tG0?fwEbz^yxwU*0!@z z8>kJ~cMNdfIk*u$I58;eE1t!OuU40VCV(T`L!LcEkGp$DCI{HGikoDI4Qf9Wwub1kG(U*dFkxR)tJwr+m~904O=JTd~8h_E5&P5^E0U``+-Br zdTPH;2-h5u{or#)C*6H*SNsoe>Reyr;bSV%UZxrnrKaSWDO;MQ>be8<^$vd`d7v1T zau9p`z!9VcITZ@~b_`mpaVPkyNmZy{{hJ70ic3hchvZ3_CMBq>UlD?{`HDx?Q#p{y zZA8jSk(jZb!sEELX9DbpdKdX-Db=k);2=TihDltG%BLlb?3drqSKx|J1W>_{wzWKg zt|FsjmBMpL{&$+LhL~v8=oSh1QWX3K)D=V}MD?xgHhY3n)EKX*Mcmf1IK}CH$p;D0 zmNy=F^c23U!c5nCoFxMhV~*KbY8XN0s~qyXSw2~y{i=!GwU(Y7M)8sK%?NlRUw3j} zn;vN4oLtW1&#Y_J2w)Gr!%&6?6xTytxG`0$_V-D=V`zNFxw#TR@6XkrG&~Uu;Qv-+ zdZe;7&Mlm;m$5DlLw0m*vvm=(3_=7I12z>Z5mH->Af(HxsRnhxz`)3)_FI zUyUb0GfV&6#X(|mU5KGHL!EnVjgR6{t`2)`j1f3sKsifFMQaaeWQ80j0>dnBw_-%1 zpKU?s217smY79HHsB$d#AR@gfeKMgTSg77LKXKR{M%20M>5j)pRrD;bp`MAzMf|;C zsSJKS+UX{icVs+)MXNAt3&5)|av(;toD^2(mI#f4)picP7g*G#xwYT8LU9N4;Ta`vd6&zaHtw5UO$CyJVY6v>Bh)X_0!IEO>j12ym+ivCvc<)%IrymObIY5+ z<%lHWgFbX;JKwh_<_$4ew=Vu|wL3I5o}po3oE03WjW>-6o_#cujPGN(yvo@Dbh9@i z8Ra-{uR1dkqx%xLUIhLmKc0a6!Ygi`da)L!(R9WcqZ7s&>W>|F=GN{wlPhTR^(PZ% zPlfzASotn3iy2ex#y91XKCi2vx5JGhCF8Ews4vP4on);n?Pf~Zu+7&(QGK^;sfX*4 zy9kWXE)H6DD7;)=(emk3u8K%a(na(NBUg)wGu%5VQcPVS*Yyofby`+ejnWwu;i+<1^)A}9ER?W9(n z0ej~=()_x}W-L|(G`nHvuz$&ELIo8ohClVvwF4R30I>p<&XZRywa5F%M1w!;^={|C za!2uTkP-$YWG`L3n<4elWl!1AEbyeJ_|oG*d0ThHk|;RvN|DSt-n|@?;C`}Mu9tM0 ziqCU(pI;~;H-OAAy8u3@dp7<-S8{=miMbj*z)-a+N!j*%W)qotkl+=7p%6yeEc47@ zx%E=FNBJz~W}zIKUT%_yuF2DNtk=4!cPbE0TaI+1Pqt-Ytb>>2hb_?SuLo_lvwo%* zvi`pt7x$H%MY)3ousqr*1|>x4WKesH`LDy|HWmg;!ASv3%_ zJl|Qg6EVd7%X>S+t_C-!`CVratQn6P@N7vnnO*9Ebt)b!u!{WhE8>%5lYd@R>y&)A zh+EN0qr8abdGKb6Nck72@|q#>lX{M$17SF@j_YW~eW@f@nAXT**u=s1(^9FW`gl$# zNduw(($T8>8JtdSSk0~@2f@Ael$pRRC*nzEPS8X7SI^i$_mg*eFU5313Q{oALpq0h zP#3?p8&@^7#mb|8j|1=6kbppM%pZSvlQDj7AZY<%v zKkUaVFFm@w@l?3{*~V@#^$aQ%lAA*k<>m*_9kIGz>yWhH{=((nI#si(PZ!tU6xtco zrpmb+@_oy;>s(X{u!0tgdcI5}Q1%gDXsy{2R5vuLk*AD<54F$sNk6xKy{n%1`n>G6 z251L5)h6T1Jc)dUI~#?gn^Iu{gzrTsts~|HLH^ChH*~QSL@1-ps^Mbu2RcV(s*IbQ zbZ-hQq(x}cO#yKxg#&1x${Y+JUw{t5h4B+Ed~ z(xL@@X>Xe*|MtYb>%=Qq74i6lrEhIUKxM~1{8bD7<;&syB9>uZ#1l|^W zQ|SuZ&i?uE zVOT$|uP+dh!gI(MD&wA1D2xhx?jV4>YN#E0uinAO4RdT7Nfp{){yj1U+fS1u?V_fV z>mIYEQRk9v-jw3(D!jC>qoA&hFD|yTW<3%aaDHjn_t6q*oCDAxv3xjEPsJ7;{El(3 z5Pd&?X~n`)A0wVsN@XecsXUjeYZBTWB$i-_hISK(zblvhX+lq|!D0hyWC&de+J~I> zXhay#ZcKC+)Ov`EIQUC!>75Fb1jc>`(9#Gh9mzV67umJ3);8$vm;qp-5YOUX>;jRe z%i!W?(oGq(X=}B*eC~uvK7PeEIsondn;r*WD~~_0$SX>=Gp!p#A6pv@d~8;HP827q z@Oe9pMjf{JB|pHjRSPnhg9I-+fET~E#1dJ;gm(MP-*h};$LjwL8d34p9;sT?-_jH{ z25_uKKJF0p&VDD_IAY-u$dhWPAnVF7n%%ix;&H6 zx+q?vVp49oHZG3+>Mb(@OADAd1 znjd9K$Hl7F`jR@@3S@#;Eh^cPG9<;H#g>DtOw+53r=wbMz!u6qDRh^Z4Bwu?ekeeS zOrx!_LV-V*BbvN``r`t%j}#?&mA9jLN-o`A71@v*W%Zg;Ie11RQ%SRmgjkrGR)IQ~ zs4!=v;Lfg7{jv;vRN*u1T1eHQfuT7f_}g_76~%Wm7Y@8D00(smwgo>Mjra5WCTCz;fBKl$EI@)yoLt>(GG3iui7@38yc25Fe`AsZ^1(A-9 z&Xqfn{oTMwipc|PI_y^f6HBH#HmXK*@O8nGAa!U?Q~eA5Jo_zQ8cY367A%9!1NL8z z3(d}^srl-P+h3o4C-d>qf$;jvbK1WUpM1Z^KR?^?HecRi{M(QIs9R6V4b z9T_zqx4469=Sw3xj;0)%v!+ToCgeH~;8={Nw+{5LAB1l|0`e`NbCq6-l`r+?qWXDi z2tps8X3nN?yg0zRgjL8o<4*=}E&X(|M6X=f=W=S7uO`6Wb0CE}K3;$pp0xsv4K9g$ ztwH^}pEUAS1hH||ko^V-3z`J0JL*%5yPpiTab}v$3F~o&nrD7<_fj1A1nW!2dTPI3 zw;}Xp&dkOw9R%kW4EvGQjOgteO5U=V(1%`uiQk+B4IeZOSh+$Tm*tXF_D{S!$MHGe zDM%q&=IEX?oAWPKlxNFobU|&*vc9gL?~wF?qJHLN@A1o8 zf@UnYZa7l0Q|0^7e&ik{V`m{rtXf!XxxMdQ(%K#eojh(XX{j z${~ihefDAeM$?=VR>YsG*gR!P5{G+fj$TJ&tp@G6>bH^BRA->A3~g&;-II;@TkgL_ za02ENMB~U-VpP~*>cNwHg(9&NS9fj4IS}FUHw@+U!9XH|4-lC^`jxC+x|4OdBH^52 zo=30HMs~F;#3$qS$bm*W2W9_GB^PIQ*Fpyxpw7{mMJOxW`@rmE)ylfIQ0V3i)CKA+^@V)^EZsVRG^ozy1iu<_msv{%zAFXi4&m$l%Iuy+A6V!0mCu zb!mp2xQJ`Fy|uxMEoaq-UyILF0;Uy`J9F+G^B$+5>v zf!Ev0gD>w;*iuys@7k7qv0eah5ajR_D99zMD=hU2?0QnNiEPq=ia{T$wF_dcMCv&I z1c~5!aXzt$yYp^*|H!`-Qb=zSRvS{Rkq6=+6xZK(;(LZG&)jgFCwJ5!zAez9=&LMT zQR{7>y=Ct7v(bOiX}!Ggt+jPw3OxHF5fmsJ>hM*dCa`QJGJGJj%SU!(A3 zTtMgeZF=-m@&>AapGf2P!t@PpI(_qS*f?J{U4~v$RjdJZX4V#QlHvHGj3Z_2GXu03 zkwB8=OMduq-vk|h+UA)E*98Q$;|?pKXl!Xs{&~BVU*HAto$Ib6&M>l+6!k1d$E#QH zi$J=j{CU=9vs!}~kM54Dv4=F{18q$B>b8c~{jZE#)fyY!V&)WYiT5^oEG-Tzo%byH zCBp9%xqaPDQ^i?YLsX7_9WmP*+#=I`>TG3T%L3NYv~LgAE5t(_w|oXY&hnS)cJ@o^XBtg`=VyMzI0&) zv9Za+KnOMVSni~*R_Gg&6xy=s=M@8keoo@NP?L1Yj$6RWI}q#grGEULazB~W+$Xl2 zbZ6WA5jK(}e{)ynS&ZhzC5_;Z-}r%QVY?#Y?WiORUUo-p{DsS1=+$(Cmnxw0Ahj;m z(SWVbGD`mw13jqob}yp^Y)shM=jc6o1aleBt(mx*JOBv-8ex}?i}=;f9kQ=qN4nD( zoM%$qh=ZhH%ZAqSb-g-!Qy(?gNUze!>B1ww7ROKKvh80`TQ3=t?f)iWAws+{CFJ-% zcVtT$D{cp&^$4IHjI9#JERFcmFMI{HyoDqtPVaq^Q%n2>u=l<9)4EEPbFD# zB(N6EKR!1UP;nv%XLo;uS`@GyC-(Ty+C@*jFeYo6$N z?|ffjqT-FbWs4uZF)Uf^aC0jE**l7(PMMYd{fN}E=uUfOxw4iPiL~WcwPhHZTlEYX zU;J3rNjW$RO>vDpPRlqQvb$rNe3V@5`cl45d4LWZ8hzLLQ7czy!&@WX6M(Guw8>7~ zb{ne4I>+ABt4DPjq*ph-D>J0@EQ(?Q7$o=WvNj~j*8|YH7c%z1x3-|C5nrY6&z2;p z7!x)oZ=71@8`2ujMW^`sObz*})gTKX{fk3w+CS8zj~vJYZs%7lS|9Jc%@grNaqN*e zr!>j+N5hI9HdHnrt$wQuidH(*W(F8!HEQa%N0pPKr!A`PIHw5e&75A?$|#ow*qz`0 z^4ZACbs)6cblIHt80?nOS4eN{#O#O@q_rCq5RJt(XWDW%nZUQv9Bbq^GCmA6Q#O?nT2f17~(qxp5CH zYb|d;YG)!GmU@xiU_B!~5c$m<#f3jx6p-7ip4O3b=XOi2LPs*|RM^7*5CVg}?I{Lb1ko;wPKKU?IosMW?T(1SmU|gX@ zM*Dc9Kd;dQrwOk)YX{#i@1}d(uyr>ya@~W5V&_~}7UV$GQuhdLeN68pHxIx_f#?K; zxB@xOXZM_6WZ4}Rm1tR!cdMf(cOb%w#oiUP+FC~|&Z#saagZsOm228Vn5cX%YWs`h z32i=qv#fL{KG>&@DlCYN@K3kU^HVYGtTi4Lz?9((3B_jgBhR{@W_b5?nKV~VSxw|VcPK4P zc}tckx7+bZLocZB`$ER)z9yVZQ9jTVJjOg;jB9WnIIZQiA9Y7APmto&eQEBsY9|3y zy9{H(^Ig5NXcb53wE9LEHqY$QhW_$ZDQUCZ19dPo1(NVjKOJfOp~+FG?~-4SK9T?- zZ+LypJVgY?vDri3Lma04^nZ^$TmTMuK5X&W4UeyM(rP1c;b<}lp5U!w-;7Al02D8=jBCxa>ooo#W~Jb;481KJHgJ^}it_#7^(1$QQsCSV%8vO%>T(@{2HhA3PR4 zP^%1b;MTrJAabn22Wc>yZz8C2k)mo!)A?dxu7&z`TDUXzOYv>&e0hmnfB58QSsUXn z#fPg)VG6YmJT(WGq!Bsw+$1|4!d5yuna+|DBAM-6&j1R>g7Mm5V)PPFmzg& z8J2MvAPr`ATGF1+_GBZFXgBaHH2Me**JYjQdO_`%O3FCTn!)8FEV-Vq$`ISbgRnh! z9>BZzOQ^6vDmM(hAyZA^)wP1+i+ZdZGMT8B4FUL9J_Ds6O$FA!-`0#sRRs z|2hBu5T`x~s7;|y>W|#w@zG|q#v{ZfPSIhH6qx#zb|hZPB11X^;~qRG2A%l=1!?1< zr1#&i-ppdi>rcyHw-0r0v-{>nKEh{uAeePEEe7q;T(TRTat67jy2bAG5XxN}$QhEI z?+>X@+CZ48Cn?EjsBM$dqk4qPb*WS+l`bs{LgRhl2p>n13A@1~Otu#Ehb1IxMAe`t zNtE*FQ_wA~eg94fs0#}KW!ikPI_0Yo1vvt0F7DfsUvIMhbj(&D~7G67euiJjblm;-X$uEZ-a6zU4;@}^_=U-&ik*RW_y=P{7{N1K@41LwQsMpHzT0%aRqXT)ogDiAF z+rjhJDZ&%>>WC?&Xb}MdQ!*a|w~7;1BdgZ;&Z$FVJC%zzbB50~CMG$@E1cl;QDLv| zyN=qP=2z)_S#hhK@Gu^Wdv|b}2cBKHEzwDV33H&mS3e5j_pH8KPR;TPCC!G6D9Npa zaMCMk6Mnt<`D#x??zb&dcnXU>B z+&3ddhn6&`%6Gsm&4+)JPvm!fDP-K0uEurQC;Wh*6`#T>if-SJXX=g^xiBaifjeYx zn}Isj8Bqh&lK{9#dkJ(aN>-^w!c$ES<~1V}n-zhQ-dx9Uo0i+@#crQxsr1y`s%tKj zg$y=R`?)n9*Y(1wZyy*AJn(q00}+~Y+RUbDi4l~z25+O9ns;4g4^D&U>QX49)*S1C z7sQZwxp<_ftAwIczVd?E(NmQtzZ+2}(^s}I`^CoyL{o$Jx~G-4T^*`ARCAi%N7wGE zF7@MC6(GuKd@i%ATeRR4h{%*7>tTswsZzb^=K8vxT>9%5f%Tdx8Lx#7+VCocs zA@DcLhQkEy=v((FR=s3p&NXV)g!_eiBhqn^=UZM~z+HHD-)&+c@f2n|v`Y`>Ojtl~ zs>{lRtkrM>v^OgbcFUN;^;QKn*i)T|DcEny2t>`Gi(y}NNY0eyYTdj$VU#%lX?kw& zz+7q6RS4QUxt3orDK7_z!rpI2rv!}T5Oj+I#YI-78umYGr?7{yj znbPdkjg#*~UA2U3Ono$>Q8zJ_{mn?hEHWPJAkT_2?YuM!v}38sj*jQb@64<$eEvGYGM9sD+x%bB4r`fda(ZgK^N;?JdzmZ*D_FU)TljaBr6$if!{ z=>h~K=&EXls-r#FKB-D+XuA?}6`LT+UF_DZ>iB&|MJ8kAWw2hU-NSrrOoKPy-G5^_ zUaoIg`ss(%w#+~zWiT7SLp`-=Q>3>QTQ?=Er;q!rVAemXQcx*1B;FV92D_nEyk zw)NdyT(_*I@uMnppq1bB@tcLu*OlBX*wBpHB!uIBA|c-b>aM-K+dnk;rqQ z4ew<&Hyh(n2`LRY&iDiP$1;VXbyJE(lB)H!bxH9;1D?kQ?-2D^VR8KwOaF`2>2^T7 zCiJs%5U0&&Z3!bxX>A&#Rccq`hl?pWK*5*zmP)Z+vn{`bh3!Hgc`;?!H||@Kgq*qf zAx+v3h}w?hT1IW`3}l70B?BitHjNWgv&$;n4h_4J$9|P$5swD&iiEy*3+3-NDq*;& zx$6ARs=UK%6N^NPYF8(_#v$up-f|GdzOU~5O<}|$G;$C(A>IUQcY=_oxXTq5-q1*Y zbw_<S6lgh<@2UNx2_NaAkT-)ZIjk(m{dCj|Ief$Mk$3{#$Z|I@A+Bx z!?E1lWTkkhWFGv<5_(5TMU-+D^!Fli-<`7EHw=<;Fh?v=y!^yWib?<(rRP@IbLz6u zY1{mMI$ArnPvaQV(JXu^byBp(q6sxXcI!_izg;kzHqP=g*_iL6%8!tz92{e1&n;G3 z&y-eY4IS;MZ%oR%u<=)U)F5XCp0F=kq5EvS7-0#Y_X0V(jo@~G=;Vrs|yUPw!L5}l8mPyVfcSMm*0;igA7U}6U)G$(KfAEmZPy8P_kM+s?} zI&Bp33{FySn4By(;HT7?*UVnX z^cll<6}zkrOQwls69I z%vc}5um;<#Bl_0StR!?5X5QGaTna_syRtZ4~SDixBp&MTK>(jfu5Lckul0ER_@_R`1GR5 zEC(IC*1FgpJw)X2vr+puKV6R97Fa^6G~NJhX@4~_v?nRjMRM4Fg*sH5wQC@Ssvv0j zg3li$iOBJSgML4;t1A)fosR(rbw4w4MYa^E5*p3d%$W@4ef-*HeyJja@dSPBmB2>T zO%h+Krdtd>R}yNQkvbgW`TFL{rE4O1<=hZ#Zn6r=3*8mwJ$IqPw)SX&s>mUZMkwkv z!A9eVWLKIFPvHOsm0Q)*e8pdf;y%kGTJ4iI*S+b0zvg zseK%(i(bObkpL|UnfLr533mtNRH2a_1IfqlA8)aCp=+er0DoY483LY>eBf_6EPD8lvMp5yPCzE>Dr%7j&%&U$M?_iZsc8 zCk%lGR^0$}A$7I`E1Ba3@`9YJyMSg2=0wCsc=@Psu^X};Jm4ZsIoXSXiM+*aPYB5W zb@9=@J#0_u<>jDw2@@5;7U#GqQ8Ge_;=(Ze%Lra#o0apV4h|Tw+r48`YNFbgg--hd zWGzm@@o*64P0W`X2RW`~zij{;9YK3ULL54~w+uhYEmyk;q3Hxx&6Xn)UdOUhLiBq- z#j-$_R7SdMxao1|_$D`DiG7alv}xhS4@aTouuPvcS;C)^uR6sn;1sm(j$kF7wc2kv zj5OCgJT&*ZM{lXw;21#CC*BU#>vjI zZcu&IyPB0V$v0zlTA*%E3t*|@r;VsoP@8xeBn1em9eDVi--M~_(YMqW{S3<0-SJbFu7Uhq@HsV%CAvn488ba|Z*$h=uXV-+$`@sY zZ$#8vT5~@PHM5Q9%f_cntbO~@_vkZxMm~SbKw4rpj}0A(@WW8Ux;)5D!w{trvu{xg zx*k03i_6i{(OXA}5TsaZ0M)MxkM65$c|=1)9MDejc@ISciaYApib*d_B~`pE@c{1y z*=9yYWFTr%x4P^y34V@>Zn=WC?=_?X`4cK*3U3!c_F zOw53wY})fcmcV@0`OHgI9U^cpcBr~g7wU{+vDeny<-^oc_4XTZ$Y-SCdC|n!?RB*} zZekycnq%B%OaZO3y-7AtR|Q~?LsQX^j#PDa^2LQfZ*u02xAX+*_66A=If?m>P{i7_ z0@v9|*wH>l1)x+9-9y3Qs76n$9Ye8OQ5{MXH*RO|I>@ucsJKj5eT7VJP6K-n+GXLV z)tQ$1~_IYuHlJzlm>Ux53{ON7F|ZWZp^jqpyl;a=F7B9z!IdF7wjdJI&qR0?f4)VJxS zJxm~KCfd1orCTifLbI{u<7EDsY8pT0(e*r(3z(?`vXhLWV+1m2?HW~ z?+l~rz7V34d$`=Hpclp%WDSm;xy<29 zFgRLzyj6iGGVC_-idwBI#+xX=Wb;|!JRipmW9w75$q2~3p6rb0lR?7eMPnkHzi&cA zPKxiJ-LH#!S(owrT|+Su*bo4nQ+*n`%Xfw18%{Rg!2-+ZvLJx;f*6ftckL))Er5Vj z7fZJw`CALC(NBlr3d0)Q>2hJ3LB@h#?#Q>Bx^_UWHlv+0&WkLo?(5@?B^E3{jBChz zYb1klSJki$?qs84sO$q&*Y-yBFkP}BuY1obE!Zm%?^FKgN5m(5E5 zpe7<7^{)5W!gJK&SMve)t;5|txY#Wnfgu$l1+*G03fwd9t&MaErO9X|B zA8T{&b=oEtuL=^~6W#2tZ2rQQ8D_8i{3wsXL&DP#V{PG#b zRLQ87Wl;e9KLGDQ5WnS?tP#fM?^tVcM@Fa0Txv7Yd^@d0CKR=Bx>mI{yo2YaqIJ^5 za_)N8MA7A6gWOjy;qMh0W7#Xw%F)>x(UH(x>4|f0*5*UCy63$z()}l5H+7@lMxN}n zDc$&2!`E7Tx=qH94A4lsUN?*oN2O`ns6xt5R?QsDpJxWF(ef9?KZbhe!@Y6gywln{ zIix>jm1N$eV>@%|J^ee^)7~rawTFvsF0?&b$~%Q`o;8tj0qkqCo++=0@bMW;WhUu6 zc^@2dI*Q!!uY+|T32ReWUfYz6O2RkVcJ=A?{A;o@jFr*iRHIUytt4Ud=}!@!Qm>&M z22+euD(@@Dts-nTiV5WobBs_39ZfqE$~XnaO&fE?BR^*m)ToT-YKpEtV^@3);+eFKV$fXKEU>GrZS17~06L0_qK)ErVX0DbN?lIl;jNaD z;jL?bigeYwnH5qNRTy7zJN->|8s~>0xxcm5w73WFcKy%c_pUx~X&-w-+^2+<2_}{Q z0283`rh%X)mma$wj;_(6!xh0rBPaP*l=gD}0Kz@wNh?mv7&3lUlysG@deg(kRPSw0 z9#0tm0BGru!*${BwMHcpHM=hDtB$AEx4a>uLo?i7UBR^rVN)2-_}1L9iH$rhYKqr6 zo7=57#rk3J_M4+VnKH(V%QRpOyZUp`SD-eZVSQ&My!I<1^Tyt_QE}$b+v*aWY}$V- zen*aYr^DV2(B+3qT{_dytbB~GLEQ3l>7IU_Y~Kbf#8Yavtt591A&_p6w*E1W zdVUqr9#y+J<(E{JstF{{8&LQiXQ*07eWBldoHQ!iWF?fG;QbHd+w%0k3}{;Jo1&~b zlqoX#ep<&6`=dPKsZ^9@Whp%M7^5Q?%9|^#5A#~DsXX}*Sc%p z4<&1dyYT0hhG8L+8-hymJ$jydd)HKICbco1M%2CE^FDvCVeuEj8FkG)u4L0Aw7U6E znHr3@9OoTtNYtl$G9FJ_I>%qY@$I`#Gpq`a#DAq9%MouUP2Q=+tXxR$K=A|sBsH#lY znj>;)@qq3TM^n_(<`v2G;9g8H;-#^T;kXDBcJE4wNT|xr#O#lp;<|4Qcs@;Rtc;uE z-Sa5p1J^Z-szy7S#uKTrhhe1N>UkE>w#EC*7QK^2@XnW`+pKWgu0}?7_BGEeO6YV) z3H;3F{vP;CPKw!IP>V7vXK6pFuDEITkv3wFZ+<)1JnM5CQ-moY8s6R)-ESCQU9~Gm zlgO-np;D}horSh-@u>X~`FCz1st6{&m(~%r5O@wvh266+YP& z(MifW8P>v6udTH_UiUy{A1K9k+J=lGc8!y#w_56pIew$$d5zVJLAxN=QLSj(Rf?r_ zM31WSoLt8#*KeZKnvI;W%gWZ#i5}0FLani8lP)(@iI|5qMMvFZoNZEZOBAT+Lw-ILC4;j;%#w)WfMtTAe0=r^RMu)7EJQ*CIy@GWi@}R;8`X5f`=&i7`;y77~g8 zC;a{u$0~e8p=~A+ZtBVk~lRT zxykAO0N1RgP@igS*iLc@s4ST0HJ`LDHJaSqgO$jr>>Qr8Jm~0+OP3x2G%ar^`D9!$ z$7-4~4mhT!%jWKR-^G6lSX0mp6V{Vg9>6 zbLr{zt?6PpUZ!=aMx=B;Vb}DBw~?ck5~O40Bc7G$UOn)Mjs?6~mPH7nNftAPKVMq( zsn=3Gy10I)hwC;NE%Mgpy{8p+Qop5jMpr!glCPa;h?EH()E^^~GpBP%D*%eo}opQsyo!v*C?k>G!e4 zDrPn~ZHh%gtg2LkS7%NhHDxrScYYMmC)Dq4 z(i;upX2fdkjDkQd?gneyd@JE7G#x2KiiTxhmGSpS9DOUzmLY7B^t3YPq@>Hf7|@~6 z^oXnsjUo#6VTbu+1ruk{AjHuuU^Z_g6I8-bGxZ?)uV58!F58=9y%3wS57qdZw!_tVP+B z@mi#1DMmW6x~8EWoB5mfG2ks=-0G=v%_rXGtJ#=Jw_?VvsLyo=2XD1y-Cq`56N;$D z$2_WYZpTNcMv1mZ`G*yqEU<>$tCLsCW$hWEHOd$B6YmcGwVf@?k+nq%BKC!cxt`^` zsc;jmS5|Y*Xd{{REC7+d&olC4rp}56QyDG#)OG=9i(@YpnXGRu zkDh)uS)@M^W|B31vP7ks$5WHj+Ze6Sj#?a0c)>^=WB&2aZ}a$9r-iBes~;1cQIv64 zeNHaQ)60_qa4SM9AU5RWR-D&7Z)P^;0IIB<_U5h|KvVAYsfn+%DGNjVM4b9oorSjO zvg^wF)8?_HXq3*F(x%xL?)p}gHj+qk{{UJxHjNWL*GtFnR`sr({>>*dXwfQKX@}Cc zZR|7AYcFVOsTA$B@H#DR+t~jAvry_9#)(efPRCJOHuhekp~%`aO1Absi(3}a`xw+BAw* z+JE~s&{}B>!~lf%$E{}S8%BhT>uoH7?cJ0a9BF=GxT{VnT zCeTtlStRogS&QI-(Dnxvo2bpwOz8@9K})p~cRbqkRaEJe3BPW>sOWh)eKCI!6P*}hzrA2`qHS@)L+ z3p*};WA|4AwTw<_R2_4BZg!Z-9$(#DoP8@M?(;bb#(wr|NW{WbNiTIqKXLc~9A_1a zd3e7vhdle%iYGj)GW6P^AcS-CaKIea3*Q0qsi(?f@eH|fs7dBV3BiozO=QbEj~&z@yx^+5laYoMR>ET*5qnY0&Wd%pwg5-}%(lsQFxoOlq3&(#8_3I0p*``hKv}RP0Nst#k zG1oQhn%<2I%F^6Bm}HD5)m`3OXM>M=?x%~AO6QY^%IQi?tuOZJBrc&un^mr91|uKxgx5LJ&n^PKmqzYpP>&p@}cj{A1poyQ#H=D2Fh z-q7~&bl0+1z5PzK5C(s_jMOcX?hh_PM?I>w`&~?mZCj&! z!`g-FOsyrg%o(lp-8WbhYYDxTu@ib#uM%m}OC(p2rdfFBwQU#8qd96r*~v7&Qm>D+ zZ7WgHe%*1VeW7-;>?2R;Q{yTk-z@gCNqiNiKBA zJiB&d@^kVWpY!#vb6}jcAaKQ zWG_KoR*B)pj(nbbY}=E_;<@Ej9n|o$*_2?=zFX)pIjW@Q{iKyvT^%^C(p%vOlGCv&$J}k;1bpFy)UQg=g&~&dAWG8(7Y= z(wJHXno=W=J6D9@`r@5D>$Rf?E4OY*>qepO#aM>y*{p34Rb^wrE6K-7qknLrcwA%k zs*FtKJqr4b*eX?5?m7@V~$48OkINZnaiH(ALBuax4cRfWyjClyLrvVQefDT}DdWSsOBRh)`;Gje3{ zOM}*{M&(L}6*|4}h%~r9H?yh-6IgWzW%P%IIrW~g=%QCK8RmU{-P)10s$8ohH zr=X>v?jj-UQh|YiOPE0k!JrIu6t^p5Pfoc+`5gSEO;fj!gODpJMAkB~r{YZ(-(Jv+ z9#epfU3VUYjAM>!Yb)|C*dyV};aIMAS)>0K7&76>!Gp{?M06Y zym44M;mUGnNVzeqMhi0>ZQEVIi)2MpxA#|ykE~0vT)G?y)9+iQyK(JZci5$OW*?8e zY3+j6IQP@<6K?n$=lj0(+I@{yEx5`0bfeq(4CB*DyxyxU3^#gnU4%CH2P?q!r}d8^ z*yLu>C0Ins!QJ;*^{$F*S^m(fN8W0$ZPa!m_(`VN&Eq()wPar^!A-zf2g>p(8&v)$ zr?+vM^&bIvBSN!=IPUbuxYS#0lB$oFk}$n`j{fz{R}~3Il^(7K2UDF+R=-6505jG+ z0J=@?hyAf_XtOgGY35`ZX6`=<-0*go+FppZl0~=XB&l3il~PxhhuC4M$y4{YENGgo zzM~6yFc|j#01GZD+J)u5l@FWcV?9c(MU=Ki{{RQX%DV2bnsvO&&9~E<^WTZSGK2<( zIfn1{O>0hQB)rAQ9!Q3iUbrdG!&66e41E?&MItLG<4XqITdG1 zOb}~18^R`?oB>o|RjVk)X4%mgmh{o~X_jI>wKOZ+6(-S%*XS=as;ngea50L`@Wtas zTHK#?tY;Ill&*G`l4U%zA@{6(I`UPR`G@6iTE)cbjYF{0E><-W?&(>2Wyd>7&1Wc^ zMn^>)^2iws+e0n}+RL=QV=F6~o=X}j5$iq<)1N}RNnm@1+qq8SS-bVEZ5sE^c_W{v zK&GxTlw_Gc%ABIrkC}XD;2lQR-s4--tlR9-%*!lFhxbDyZt8gXPJKR=^mePG*}b*Z zy{(FT=-)2h3CI5cUc2Fpl50cDtCYr3c6y&6wjo@w?_KA_?}a`f(af5}cA{uxmkh8k zC~!Lu^Ze_&ooH0qo+WH8YCEQI@Ldhq#zCgV5^V;wb}&~TIa0iz!jfp)j1R28X_DPcw!wKTk@c;kQ%y{zP2WSG0G@)kAn>K)PvqQ3^K*sky8}F8tJ*}LV^gt@ z9lVl#)Ghc|O=ID>=QG7>9g6J^vV4Ja-{0v{>KaCbnTHOZQI)4Cs#_m>`d6WNFTobt zwD%ES+4*+~8S`YggN`{?0P&OGuhO!WXvcGEcu7xVnX&NA#FvX~#bXSyy36G5$Y#I* z4z=r6`Uan=&E?zAD&1SEhVshi%f@l&Fnv912Z-)=M+NU_a<-oj?=)>r)#KApEGm0y?s9_t1eM4nC!lb2kuckffyUP~oB?Puu5`BI6 zr^;h;*Y=dKM$wV}tyx!eoZ|zE$$N)=#4@&6_o$RiWl`9gNm1L%!jbb8#~pbhsz)Xh zV*dbpJF7VyvX#rQurirceGlPL+LA^yT=FuMjVNa!I@EEV)rgCc&Ccx9FtNreS|qk# ze0ij|8-@w2yW5m!yG&VOeZ(%Z(e&hV&xfq^U zZa435ZfhA)gpsv6(x)WR?UCydJPmCH)@6}*!m)sMwnxf1AbSund*;!ZFg@xGTKa>?3y^&EJMG`)Yo^>? zwxboyax|NQq;h2dINio@Nh6c*RVv1?w#cC;hct~w*89V^mMXUED-jwqZFP}zk~7K4 zJahyCD`NUbg4w0DfXK*ph1?ZSxj5)Pm8~3A+O~$V_I7El4?6LWhi&XUF1id8w9;9_ z7~4BWs*#hxVn-wZamnawth(^^w~4GSBJngZT*YvqJhe`Gr^4pr8F?^+_E2*J(4a?Nc){Q80Nj-;)lcE1`RUW3p-}9 znXVCGdmCStR>pZaIqBE6dboUIdLB+IE$gPffAGi1*Lro$w7yKxvbSKv2D_gdctZ0- z*5otTH=8SxPrYgraxxX4Pitnlvy_a0CySUy!klC zR#5FXP@d8jQhxI1iqsw+VK&&d`DK1zYQ|M5%T@+UYd12em3IQ&K|C7LzR;st0cn?S zO{%=rMx`gv4BJ$a`P%6bkcRoORv;f`yYg)t_iWhRRVjPA0NqA;BWT1~57&3}sb{vg znq7u(nm@hs3{=KZ>IPNDrE-~r%-^}PcXq8ioedFH?dM&s{cMU zt2>KarO8GHJrO}zcunN*A# zObn-WS@-U5TzX=z-J&R4pD&)9cGX5#(2>up71NYM8oz&^=~;IMv=aT6##L6w&75S_ zI8UM^b>5qH7tWeLm5v2Rt9YJ414Qx;7muw~IM%+wp%l{E+W{LorWd_&&3AEmcjp&r z3pXU5mD?OIR>2+2GFh8nwA{FrzI9nfaE(qnB$LvJ!RmMNi)@QkGW>>s~_ zj;6DcrkUzd!^@WI@+8tG@SxNq@Quuoys}&tX`{9uG-Lu46(nHen$oe+JS%D9YgnEO zh;9->h{(Z2(e2I%UNM90YFwksb#tl^lxisHZpEEG>%*2;`zE(Y=4-vN!ws2sR3|Bn zecS+frpTIXgxQ-LWs=6~G>-A2Ct?%3Vg=-|9r@=q8=9|nT3da8t&Yb`)$H_b8sZH$ zPbPdwVTR(=t4SvgCw7-V%HH?i$lRHw@=j@lLdr8_sO>u<}{>ovLci+gW7OK90lk%!&KmYas=931ia z3a@K_Y*B75?{_@dk84N@s}ahKas2B$a_(;@%(t;?R-S8ZLd~GRNc_pR$qN8lMZw`m zZg%AQ56zZWsrHtzxPLNe)m+F>Wz>^{>A}zCp7lJoMSN0P+Q&8G&jel1s_fD+Nu{^N;QH_-|legw?ya*ku*Zwbf7T;9U&bzBa3^CirKXS7f7_cX4 z$sF~@J?p-XC!0oic+9t#-ip)iK4QGLVKYV-8+zAA;?EBo3x{K8Bx=8Svko)P4lBMj z6p`UnqbR*jPh$hK9ed)hJ-3$Iw$_o6hbdDn0O?lV4e{qZ{{Rg>VCC#(+=IU*aZ7o; zPF2TB(mNB>jYdu>@uAzgn2D@nGTbNw>x#Lf!Vvk4gqGtQPfE^A)}21Ay!KH!UB_zn zR_p%&)~i-pWzMyE9i^IXnpqViP&$)YopGk*?2*#^GVnKuHM`??r6kI#RC$W4hEh&> zKAU@2uzWM{cBA3#BHG>)93f#*CmCiWWxrF}xa(HvkD!dQXL9wZFF7 zVzfJ(Z{EP`TX%3YdUK1X--RIY)K?y|mD%n`3&~5B9#21nHT_FOTex9VkX&!wCs4ac z>*{OK{6`wu=)Qf7DmH+2;!>(Zn-PP4*3DgOY3V@y;@VUk90 zcCvK;06)^X>lB7LH%LBQR&s=7?#{YZr%hTq9=`{PzqD*rJkheee=$>B4w>ROZS6d< zCehJU)-IO19)xk1j;C8^sOXwv$!~4fc3bhTDs4q4xcg1BZDv0>&swi%b2WjhK*6E_(G_lRPHcyx9T*Zfo=i8QVU&4t(QqZb+ig9;GcRz|+)^v^la^HEq zE06yGgoze1(={(9w%*m7=Gw;bRPW5&89l5zRo-_gl0%hUx#!ljZ1H%jaXqlz*!ooS zcMoTGc$r=#@cZh}ERYxbq_U~PpRfM_TDm+d4ZC|{lxHaHI+SBmbC=SrG>eDbsK*(X z%-Yd|z-_&W`u47ZT{gh5a}uu8oPkZw3XHBOESNi_HwB*@XP3awXADLsyM3PYTMmsr>!xeSZkuZV00TC0QCMo*t!8;*P%+OOtG{81;!st$bpY}QwQ0__5g(s9kzFC({py|s znXlrGB-)FEAnbjrF1cuD6RhIZSI z{=+LsuqT8V83aNlx@Z+wfw_ghe4$Hg6`JZ zHI>*aXB$sIYXL6&nDQpvy*8fJKF69{8b(q_ec_K8UA&5C3XsLLFOq)uJqM+5T6U); zhx$TAy^kF9>(-S_EG42xRXjyVEzf2;rH|Vh=gs+}UN+>Nqz_IjneaXQ*U`%J#VZD2 z!)%xx0LK-V~)w2dADX8R!P)1%zAJStw(n(7ve~oM&kxgC%5^He$w}PrjCnf# zCNws$e5>}G3wKE7ZzY=DknCZH`AAgDo950GI52tEY>dpR(1bP1eSpeKva95z<<0Jak#;^UYY#|~@T1S^_yQ$h2IR_rS zx_7TajaMh5G?o^PM6VOWyhY$4r$*92`@~(Pq-N@k(YjZxYC0{hsbbbM$uhKM;@gw7 z^N@Y((x+P6oU+Mj%0B8mHct;r1e+Qr;=M0a@OmuyJs1uPed_9`QY_E=8#wuO|ky_K4`GmBuGMr|4`H7h385z=`)(j$^VoILD!n6@o&XuI}8g zO4n;aj+I=;L}*1BLKlyP9CZ7&q}JPihMzHNoML6PBz5{#=d~xbS2%m7Y=}1OVV%7_ zs?*yaN`BHLIYg%OIp{Zh-RbkdM?p*4M8;LDB2K%JcQ(*+zc$=sw;ighhfYB}R5`@v zmLkKNSAzUbl4V(Tt8T^*r!`J_n;C7tdm}v7a*@GT6Rpv7-AK~NWMv*?c~#)!9D$n4 zx|u=TvY(}6DIR@nQEu|_CWCTFs#Nve)OG1uGD)~?LB(Su%&my#MTzw(B}@l79rMlFfB1;k6IJPq>GHN9R3xP8Z&mOyJ-L;q343ZOY-8 zv~9V5ZUG+E4w=ymce_A)4K0 zm^|##C>vpYi}d2M_9uLEK4q^%)E~oI6k1*N-lcan+>0og2T(R|$IF62$GvEHX7^aR(>%M)MkR%qt9_k9sLnIE@^UeZipE!qIw{3YH(ERP z?{7cQgTxlH32gQIJ3H8r=L`9LYhn+w>Gl#$ zG~Q%cFS&3)Q|XSvmp3c1GNTs@w{K7Q25y0)Ph}K#mv>SWnl}FcM)F3*=y~_8hO=ox ztd|m~jn$WHW2ZsWCq2bXs+S5;rj?IB*1j8DO{RGZtwzy&#@a<;$IZe4^f=F2>t*nz zp}4qYnrK$xM2j3bP_N&RI0pl*9^O~I&pM_G6HYEakLA^RA3u1LO1HIbQrzL~E=oojB-n8jt4FU+>Fl&8@EYRU_{l zP*h^%?1Z$p4*c!uoMyH3>q#KFhUrl}wQNdvXKJ1^P~>$}!~4sdVfHY}5v}8Z`Hdo& zK?klmAC+$~`%KZGykFg}M3KTu?&M&%xXvpVKBu7^KQ4*+^#1@dJG=XPD>&e0f*+Na z&I^_tXB>O_R*G2Z*OpCkmW}2~<)mz5B%=~R+qpp1TQ>oLbD0_`t{QlyV#-$mv z%2*46vMCdkD7%9D^O8SNOKD>T)z(>LP|X;+g}!f?WqCaYe@cGp)Suo<-Ckei*HqDE z%Fv@bi!#(MABJjm=r`z3cS&Hu4ZdfBLa(81LIP}dYp`|~4 zc4@A=^nF#0%}&5Bt7mH!znr%=Z1)+G!Yv+`FPfXL%G z&OLt$=9Ngtc6t_!>PG6?H1^ik^VGMg=+N6kCzPzMZEnIpv%)@AJptXpfM%r}-1VHXMp&@;OW z#z$(?zVQD5hV@vKO>ZBW3b5Ja?qh-n@qb>Ks*PmUuTLUnhmXZ&Ej7H1Mzl%dT^~mM z^~5l*+AbuKyrnyi7;`S{`ev=oe9uAc94VrsXWZrFs?r0EZ!48(HRL zjiin~T42K`IqGXj;;kl+HojNPl#<@xkCEiFK=GfM3iIB&y?4T-$tKuHX!2Ey{qdf^ zO6!IqGCZo78r1q6g;=<^F}61S*2QdbO8rQbU{cUXQ9uP00O;sWnV^{tqJlz-04Sgi z5rz#)B4f>C%zdqy4OmMlq%GydPTpCw#wg}RC^lEEMbM>MT;CyMlM4){VywGXshNougQ zuy_{kL~k}d-5WjfMh-jTrPMcu7v4DiJHm777qi-f62lU-i#sXXlh7WS&$V{?WBt3v zt)fTaYjuV>nIvhMyss}D_W+&40;SFJ+|o2-?KyWdd^_Q59dTY%g=YIZXY8t_e6m0X zgT^v5--2tVo_$kSHySmew6eC6MNhOO#iW=90}25h4;-H2v*u>;rxoTyq`r}13dMJ& z%@l^!WN72JK2&Twan+A*l?1Dt?+R<(m#>H<#?9X#7vNpN7h z3wp7Ilgj`}!1=O$4_d34^2S?w6?E$%-c9m#x8a#@6x~(`CDc zc-dQNBxff$1of+FsN3Ayyn1fBW1a;BtPAp;kH>y zhjFFp>u(JI0A(e2vb>SX4+CjDe6wUUz9X7VnyXlbqGqj%IY;8rR^{?*;z=mHXvf`Gwnd z;HMbJ^{g8^nPGj=zSI5c&QLd}S;gG?6XE{=#2bBEMz_=LEn~I3hG8|onQONU5Qf{1 zxgSoZyuabsjBYgB_}~-VGlh2ZmQWcEINDE2=bbL6r-#LD7SDXTpIX#>8+CTp@~z-k zOM5x2*X4NFzTtoX1bXw+l4-vWyhNIwrE)DU_d|TkJaD|5nOMd=#vl$xMmr4GJg*j+ z=|RS%TyOI>v|9z#bQ@c%X&1?xY@)^|5XOO*=0mY^*d&}Dr>!?x)^4=)y0x>klIlA+ zqIQPHWfKFEPX7Q-fZ%lp(xTFnx;0#}jh{icme+9HTpep#g=}slWouuw1GYSX7!nkz z3{HCW80k-z>f-Ts_=d;q*0&O>#}1+8$-5x@xF2_&r;<+;((XQ6{{X=`KN9#7(&J8& z%F_NTVdgAyTIqKCSp3;nk&aF_4t|xht!dgmpK{ms`d#JS=bA01`#gds0ni{jcm)d% zxZso4wT;Z>Mmsco@#8-O>eeW?*Ko#g-?3S;i-Y2D-sRz6lW08& z?rX9Px8sVO@nq7Wlw@}mh7C_8cTjw)n6bor+h)tz+UH4L6#%xcu|h~U_RmKCIT zI%5*C3Ag0ucRco}qHwQ?5B~sKw^2GGiJnX@(ZxdMF)%CXRHBM5=~4*}M`}$jMPs!` z<5MF@9ao0n`&zPYagLf zD;iXGS`@CP%XO-=NLcl#k;PI(jV1@-P?o~iJdP>IcKmaiZg|aMCUMR}O6M7-JNLz6 z&RIyObWS-GU2f&GQF94Pp+ZF=_j=PB;F)$X#VeWf5~DJmv_~Sh1M#FXMc`5gPw&uB z_0DM%575<=N{5;VDrmV;B~jj*4;if^BGV>Zl|0mG(zH@Fiyqx+54C7es>D+ika;y+ zph{Q)OsWCs=QPR+(6Ex@y;l#ny#Q!Maqm=CY;>Zsj&L5zx}*9nGk2NUYee zGv139nY{$+!)dI$d)yzrOO&o-dNv)Zovq@y`_!yxjU;k9R8hzX#UjhF+!4c7aO6-k zMJCAL)kx;YdI~iy=2*uSPC3JH)L1Nyt6S)z8`R_16`KsZPIFM>adP%7YFgZH49Rg0 z)nD~(wEWH5m1m8Y%V0UE<+no_LPsgA>Hh%Q$t+rgAy!ST6w$EEY!|QAw=eCCwvvlY zx!Z+S=nWejQ={Kg%k}*eQPY(k<=K(9Bzs57tBy17PZiQdYk#XNY4?F;iKE1dsrLx) z&ozA3+~JizZH^Y=<*=ejcPgVVMBR#)#s2^e^-UJuOWiXPLmO`L!up-HXC$f}w}&-H2&nDG>@9NIR=Uw%LZpUY zFnp)$*14+DzNb8-dhMxuyESDPR$8m!-DB-GD;>Owj0QRS*N;*%jEr1~VzazSb~H!Y zi>+4WWMHg!f&4wF{p681G|?T0l!xZWHBUy>B=eR@m7B9xQjDXha~j%x!8wFDQmdBS zDb3~D%49MI+%}EF6_>@Z`I%}frMI0y9e=x2?e3yx2;*~q30hX}TxTPww7OLaD-Jze zq=o?BGVxjaIWuU~I*2Y#;y3j4tcx4hRLqa_QSAC15oYXH21A_H8*Av8Zbzrd-H!nQO1yPdc0G!uED4lfZj=7j)nxk=ZxMwxlPJ!P`4mRrG zeecewUEBZ&HRw~IdNi=*Z9+wrT@G=#9eY(v%Z;ZB-qq<*qIwkY<|eae4b&{p4&AvA zxA>P8CZQ(K(r#ipoz1}Fy-GCf&gfy6RC$k!v{)dQ_h+B?Pc^yXD6Q^S_XHP=PtSHqf+vDU7|2#r8JtA==kj;0`FP=#IvNb-g0T+*&_ z&lCiN9crb;&;uE+c~rT_Qxq-D&;yfM*EdA)4Q0%6)WrFTdv;AxxtxkQjyYD7AiJEA zhBaE^Lg$*3npGJ_^apH@!ksE$(3#IE6qqvePmy~L)mI_Oko};J8ljlsuqYQfH<}Mh zrqk?f8lw4&MCX%L#NoPCY6OzE92$w((13W5^{8`-q1>{v=Ae!7(A8Lc#g8-Ep=Qq} zsG>%Y9;Tr#bH!IE60CV)^)6~R z*%%%q_(9=s7u;MQ5ZW2M%=vPE5@*o%uBbclmHO2wRF2HfSXwncDBSrs;#b4FuZ4am zZ8G)N=GtW~Ya@RWdHh(UdqNk6P=ciPF^%BNdar zYtYllpEc-~IwkB`w}MYIat*t(8{eMQ=vtq`n?DBX{z_TQS8gq&+z5Vpo;v$hlBou+ znZ@-gl;vrpdF{uCY?}HzS+wt#MUhm-yGt-9pzDBp@GHw3HvHum!AOCwB(i!^cM zs2|-Q)X^MNjb(+yG@hvOJI@Sj8ap(4zMC{(DJblpDd!z)-7S6`_=8f@eE$Fuw099@ zu!V3{Pp_%`s=m1uzu-sqW0Jg6`JN|Xq02lBBDdU5GTFx5kJh~h#GVJe@cOLQ(U!Ak z!aDP}*#7{HZ5rJB7)u3KpTv$+N$};(mBeDj*;$x*k|(BXq|$C@(p5cZcE-;GG8>dpUSeen+ipJ8+Hw^132X6#ck);%E2;8~-xfzZ|XphVH zc3oUt_aZ@AkHO|GG3FcsU=j@0y+7vg+-5Wp3x+9H~(VX(bQ;zEB@ZEpm7l`!F^o=nE z+y@_Y{OiVfAK_ldq3O5DGaXSD9r7q;RryH+{Qgy^_JpJ6V(_#lwb%9LcoZf(GGc3O ztf%G-4n=!Mi~b#Wb5VAd?jWrq0p}+To!I{XIjtj@(wD@JN|;)Z*`6BKjV~|_%z4_i z>DM0wo)r6Llc||ecnTvK$8*-S`u!KPG4?oxt&c4>vj*GcvF8J5>-4Ws(>xVun)G&p zDGMyk8!tushX*u$dY!H))10Ns+2?vshjndI`YT9nBvS0Fxs-r2(>|5zP+MIlw3asO z98Ds|e6?SgGPXI#x38rV#rwJ%DsYVK+bU@P01T|`VvqYm61NgYS&F_uAo4R_k8Pp_ zoEcj?cMvv=jMpTwPr2TqPC8i4(=^3}yIR6nhF`RdbVV@< zU%Ycx{Fcu(o2*N&Rr0gQ6>(wWvvrJRSgI|sGgmx;S^HxbSg0WOtDaD(bxdVcspQ~f zRjq+eDm|f$s+EjTBLVTG`!*mTCUH|b6Z9z^dMOKM>x$@E_1=HBNL({ zucBL(+!y8_%91%qI5ncs*WG3ov0@n;0<|?ObtvC29jfCi8PtkA$Hdmc2Pb7}c(YFq z?S-wQQ1a`0yBti83FPLbmd|9&gjG47e5zTIDiSvi->njlEwUQ3bqr-#j#WVU$6imp zGE(o*W~161@~&rUN#)GI$+@Z8%s_3B4!l)Hp~G6SOb|{5Mhz)Q+5uS6lnXllI&QI zMz+(QO>9dh=_Z6mRWih6joW&C(Sh$>2C;8-9kdffOE%P5m`0(>^VkD{_}4GCZ$q|T z?yJbF4*4U5X`*ehO5eVjL1}s2&Uy|`D#Z6PNT|sf#^q;ir9*mFE~6$>*p68xlXJ`& za>wN-wMRShS3N)db)DIisu3|&;YCDP=M-}@FK9>`o|M4DJW}Q*)Fn*jh}dU}iBvOn z8EW0f-4z^NbDGLhGxmn9q5lACnP%#64Pz-4?G0-+E_kUl<=6JdO=o#9Z1nj#tFq7B^7cUf)R@ZeQHT z<`q@PImdIF>t5KDAwrY>(Big^Gnc4-?nleMEzlhnNn*8-ubSVy+Ccql+x%_dL3!p% zJjoVj!zf;yb^2GKM>31t^XpQ#L*)%`PFPu`o;GA3-8jvA7m7X}M-8)mqTP2ZeZ*cr zI_`!#oU}a3khbXg?@~y_<>HHCoP55VSD;p)b2RFzpOL3NF0J*8Rc2^IDf0^iIU|nWm+M};K9voeLh98AoT@^$KT7i| zSCxGk^%y(^aFXUk_Ys30%BL08(M;Undsa#;^y0}tSjNcE0ac`!Hzd`UbWB(;MXKu} zo#!Cre}y$^W#2-6yE zL<4@qkLOl^d!nr47#*nfHjOkww!7bQFU#7r?X5xQ6mwYKG{|jiJ*!sU*C(Y*k*sNv z+Sv@}6{&4%0O?W8YN?SyXYE>c_MW1l$ksH-ZS4K4Ue?67AXaW@+BC}6);`s_X{Ry! zsrpuKX0f8mmfCslwb0pU>`obRh0A4nR&uC~FL(+nHxVO#idniU>m zgPwRf$E|jDIv14}_I0|)8{7rj+s@={;IFW(-D9R0JvK5l{Q%n8g1%JD2h2Z-dH(Bb)<@9Y$1e(TikSU60rg*~&(%9tc%(a7rAlLH5>`X{CzcK4~{D z^*eEn*yE0z)cenKSh&Yxtd9((V-rHjBP)6Za=1TS`_*G~u}3AmGbrA2&$xb=^sBLt zH*sf?Jmr}pUy)bmX2u8@toy6XsEM1*VtVxAtwhRI7Ub7W7>8(tHr3nL8NsaC?q@<- zq*|_1DO4MObaS*5_qfA*RSTKRo?E}AR8fSg5MEp{7$U1(FmCmtMiP-i_Iz_t-ySPO zj(JGTzMSssP~H|SYgn9GX|YSa;ARxGrK zDtpw+4;2Q4eoalVfk&5rc8rz37FIWuVT_A!1Y_y<7oe}$!JB91G&Z{AzYx40j4 z`w{*%)L7~8yoAU%1K66F)pX@_%AYN;fW*~>sYAF@n@9IjJ4F@bUg*6jL7h~8;JY4uIEqES5A%Mw~_q8xP9Il zqE&CPr92vr=1!5Ih+$buvrHd_R_%_4w(MH&2%JkV%tkh-^zT`@NZu5pkoy=G%HB6m z-M1V!-Z<^W10i=v+n9Gfs!gM&h_WwLgCj@BZ0$s+7Ah|F+=8`j>DKT8r(@sdF(ogRzo}jLDRtIRs7Q7((R}6-v zXh-ucGTpf5vouVwI2fao-hqV}6%TT`gE;FRhEM-#hzQ1wvoHi0X`yMvi>IHV5G4MvEr0WkKmg8)MA=}sRuR=J8RE^U- z+PHbsm8?_Ibck(&+-(_dHm_>6Z3Nci%Nfe^xc96lDNCt|G^}G~Mi}OpH$f-jz4m-9}GSO6X%+-X%q1dCeO)@LQFjV=hs= zp@jR#6>1x4XSj~pa9T#f(4}oh7~R<#J_Yba?}+ty?iR*ox3^_ykrS!U1M{zP_&KCl z>7E=|OemKTu~~|DIX~n2*Pn>TN-vft&}I2tWR&VXdv-5)W5POSm8Px4x@!HQPWO?y zV%4<{uVp>|0NA5{x;}1t*9)mpyR+yi)29s(Lwql7{M7kz+NtYWwVs+80l{v73f>lb zBd4A*TC*3%TJg5Bkj}tkwR!&l#NQP8%+SXt0=ntbk>_HuiYmzBJZGwj?_`xFZcnXq z`mO1?orZhYbYoUXFQLzJI&oYK)Q;m$dr?m8V@l*_9Mh@u0Ui%r zRFrc7&7_Re=;i@|PI(md(FVv85a$Q7H|-Uj82gB;a( z9Ia;2yjigejOMCCbTP@PG*UHSxiHAG#@J=5Nj^_n4HS;APrv(VS3%S73dhoK8roHr ze;Uox>~Bt|bF|a0m^U1IRSSE?Sr%kD3@bMit}-`mu8BTpdZM>3eq=PcO?jEQrcM%4 z&izeiTHP>iX>ykt9b^{}h4Un=n>&Fn722ne*-4u6>Gl_KNXcr4%v>^&_o=qCh5M^h zst#Da&jt9$@PARY@g2soqF93*zr8l_#&UV&kA6oSXX{?o;_1A&$d5G)12px zElk)vH@VC!24+@J%b%13+>>2&5$QIz(=FGMlSk#2`Mk~UcvF+t{{XL9`$-zCJbIk0 zz6`km=el)=7~0OmX~SUS*1aa@LrXnkEhAFC^44!SScba-?wpVMWUR$hp3o^;NWEda2AP+&3G7qjr z4z#)sICxzqwK;ub!#Zz;=le@5NY0D5%8zh-FU8CLRMjAkOaK{S}auLZoeGtCvSc-*iaV#pVFJmhnX)uh}aSxSXj2x6)*bMI5k zT3u0HETA_nc(83|a`J4GYPLoQ^*Es<08=9FjFl0UnVSqQTcIi|#T=AnUdHVVUzDUr9!$*h9q)Ra17 zH3Uo)R5S#SB8CLFwMJ2L9H00NATL|Wu@#mb!1r%zsrI%b%U`?Rmn#dMc7d$J5l^-DT7PEq+Dg*;N_vw9sfX?7D@M+4g_NZT>(?ap!Z^&Q1lhhDRS z7{%m@%F3f4bzMFBvQ<(Wi)%Rqt{t;b~UV$ITl5 z0E4fsZxijpMva)XY_1uKllgI8)$t?1XHv6esYbRV{h`RQsxlZF40Jhn{uz-_orLw(aj$5BW@!k?WOL=Mm<61^9q>Ta$|x$ zXpy6}g~JW2(Q(FTUP2?gcffe`J*vgU z&5B)q?VE64n1t^12bW-GO~3YgQBzQ_|xG}jO1 zdF;N8SQ^iZt?Vtyn}Ww6FIw6ZDof!++`r;m>$t5vfg-<_y#XB8DBdB9P=B?AJ zW-*JaS06F?vD&ufZak&^y;-~|NT-{EnMMI-BY;5P#wO=CEMN4^u znVMHJuvS5Wo%5e=)rxLf3&{0rWs$b1-R4M3e9Ow`)6>w@^0tj5QZbeKf0@wOXFdM8- zY9V5|NPg){sTG2J!0pa4&re$A>~*VqPdZhZo!Upr@y<;i&$22wj_kduUdg9gl!t7t zxkg#{HuMd~+>9O%Q`))RQ(n29qxp+`t&q}W1N7<`4UFKU4~3?kLlNpisqFcBhsafQr(`zABoX5sPvhkR`Vm@ z9vdvAb|V~pLH__6!_fRwZ>W6gzr2lrDp!%u^T)k&%AJlEnY2Gf-zq20l z;b9Uo?v7#0D;yRq32dLQ^{oRf<3qO6-ZyNI_3~|A{O}3L!0bM?D(Y87%A98#NnG+T zik}a(She4^MDc-jZjB^!NxNi&<;VbkKDqXQmrWH*};jxLZrEp{{Vt~zv6EX&8F%S+Yg({Y&XkZh4Bx;Q`%WaaRuzxO9Lm` z9aVYV$UeO*zMWg11}6h3YM1;2$qawNn!Bi28*7I`KI>t%aN8`I!cImrsrz06PN8$ddCX?bwZXvhx8*;DT+Q4U$J!)!Fl&RSEGTL#c zh*D?Ks<%lh2wUXunyYK7%RRJik^STcKZSYfi|T!}C`H+$Ms`_ZXq^4!#Zfm6)s0%B zbp2lIVoSSoabVVhY<##=>BU6SBgVnHZKv${bri7P?T--g&XXpMdn9)ELD`!xB9YJI z>q+B%O50J^8Y?)8Lam>h?=kf?*%->&pCgQ+PoB{^*dj6YUTW-+qjW!oM3U-xGQ;wb z?cAG4=B8NJZ^~<)S{(AGKp_eP_o@7e6*(1^&Ur?|QZ;T^RFEM(Y8f1)h>8~~Y1k!j z7N+1JO~b7@RH&!SF*bUdbx;ji8BYvp8-}0+cXB$@T;O7yMmj5}gyb5Dx?-$+(nX_o zvZfik=BY{Y=M)DsFWcV>ar?81%x5Yynk{mDqei-FZyIJc{Oc56I*v_ODN3_9ZS})1 z%6?X?IPb9e#T=+=w7Z>No#IQVrC8AS``NBxH3@{7j!bh)kuu|nlwRkvcuQWgk_has zPncMN^Bm{ixDN>UnJx7Q(n)f|io$fdo}L>Vv`qKQCy!#JISc$g^@XKsR~o&nBGO)* zGkOndinmj5KS9 zx=*vtv6B_T4pF-wetUXXp-USVWh3TsnGI;(RGNNA%5^=}qgh=`X(7u;BO&7%!LI$! zoN2|`kwGVwGRd=c)(37+KGdOcK#ji-_?axv*{;!+GT$pl(SHiYT<0KGH7L`T;Cij6 zjP&(_F!y3eLg#jRan`)7mMx5$Dbq{FK^ahb}9p$pgZTrC@_ZZ;!uQT{_;zqNN z?2_t*7)(64&UYO8W3T@JUcAgs0(7OLxuj}y9;{&0w6lq1{lgruy-RJYHld+m-+1gK zA2;D%YvMYjtHjEq8dIGXDS% zV@ESjR2;V`=(04kGfMvecz+d1Ji2_TwkXODyO+IOlb=fmD8!6McrIq>TeEbkk2^7V1@&R{{ZXLwD|r%trnf zp5^?@c+&-P%vdgczO?@U7u?NhZwa>f*OE4#m2_2FnnjoFY|QOK+4SQab6crh#Qo}o zLwR{_u`&4-dbW7YbjF;M_l;vk$m%qmYx^?IMWjG0E@br;n_+8f6{}f^)ukgUohun( z;VEmW)lUy2X79&$w-*qxo%XDNsxR`cVsyQ?xs!Ub?c;8FuBtdXYC0r#(xXv3o`t3A z){{oU<^KST{EFXuJl7kf&vG$5laRgYo(?_FQk*3v?;Y%SHu0lI6e_nTj8`!hvpzP4 z>H5(e8$BvQFuo{D$7HT4OcNPQ7E)I>sHJd7^B)5%5f+(80aeLw>jxc z+ZjrAW{56}zd7P8PnAaA09V<>tCdb{V`q9Tz z5_6Y!q;rbby3=G~kd(f)=5W-+9G%=dMhLA4^0cg9vm}j(JBj=#kMD44 za*b0hz%X#6@y#Se=QRx!qF%8cUBgHMjmwX_OKRS=4H`x#L#OJJPiyu&g5FtmeZRs8 zJfFs?*hn*j>sU%U-06g+Yc_V8W!w`$uWvI$x;$rb54bjd_wbIjkELo8#V|#e85rqU zxE=JXbZ2j+=}^tCF0Tfq8wnz4=3cB=bUDxIipbF~fYmY|C0jp#8?rIe9uD9WI&6AU_SBBwmo}OZJyRb$sWk$avyechv}cM_*XQf&bY|b z5THXG`(!LJw`lvmnDnHun9FFAO)|4>!!TYCIIKPByBfva3vDASeVHu^#~8x4?`}A$ zhC^d-<5MSb{h^{q53nb@GaP?P5WX3wO{%T({M}a_O($S6d}pH#b3>ZS8+P-se7P0d zYB2n|iqO7^9Td0kwy4^kV*%HKas25JBfW{Zw^ z!1U=}i{g(B%XeWkvgz_k<-YJ%6Og@5&`&t^uG$!d9rZqc8I`J$y6OE~@GJc?WMy}? zW>fcguSW3?geF@ynpn&&o$7XhkPOBocTmy{pfmh&;>i+;wyu6K-W0_H+IB~mZ z+mXl_&#h(6syjWJl{rakZoS0t{k--Tt9LESG?GTd#uRc?ae{kb`gN!2!s_PQZ9)*t zRMExit?8lWlK58k!CF}gw$idB(f;jM40%4= zdW!VhpAJ|^e#>s9)v{(TIP}k_YTg;7wC303ZA!JDy|4MFzS5KP-#@_f4;lD% ze#~0V-C5OC#~+pyC^^Z-dwN%*Yx+z}16%2~5yn;#=6>&=bDqDBE29mL<(K)H`#N=# zTW#mB=zQs~Xp>pVC*CUf!7-KjyVr5zT^jyWoZMPLYQ9RQ_GgvbX~1mbrF-;o9MMej zaXD;d7USjR`JP{KYSAw8YpA;LF0O6nlx#7_&zR1mcN~y2n&?=Hce7~mYT;_r-5iZc zHM_*vD_fkTbO1@fpa&;Pa*Pa6LkcJmQ9uPMsWbsb4+!c~Tgi1blQesjN9Ey3&s_7< z*1ac6(QVD%j!lFA2qEb2934!{n;s zGa}=b;Ck?TS8@LU2>g;>O)JSfa6Qt-w*FvNU|8+istEvnMrm`G8VWB&bJ|2AEm~a{ zShAT{%qwou!X4StJd@LaMRj_1ofJM~GF-}{DH$Fp?ou%fh%#N7$wVj40&>Hss`~?e(VRXL4!6E;jjCzoK|n8*-^Gxo>rA9h?bo9lD*!9r6!9 zd!~6f>sEBjyC@>j=brf{o@Hxu=3-5=Mot%KP;s|B=lp6N&Eps=d5^P-^HcFVUrA{; z=yt~<`G}~AlF2s&=Pk$3QfnGki>A$ed1(U_5-VHuxK3-!xqiC>8 z5I7^>nk{JuHR7NA64W}a!<<~RLp9`LTXl^~$C%l_b~fWYcOI3AtN5OK%_bdnZdn!y zp*FJ%t;90E*XjZ3*kB%LwEtIU!l9F+NHjUaj0urHN-Hil0IRPm7_VyMpK0# z9)$YVezmM=cDHvIhVd>fqe}6(TZq~!~QDp=DT5X#?I8P{{YuqMb4ms^KBBT^#iB3(zT5>-C| znHjiQ7a=3T$Ok--K>B;vG2v}$`b{ERzYyz??fYO)v&FVJq6Y+W06cmFf_SX`osRfR zpHoijP1GAuk5I9hp>H{&xQ^*WhG@yhEDk`&Dh3A}`c>P=ZzT}MmlB3D6C|)I#yap$ z?30g9`KpR$-p8p+#QN0wa=~+>+s8Cba#rD$hS7$DO$|nd|lxiFB4t0=9#C=(amESj%lLUsv9l9<2(V{yD7!3 z#-kmKf;KUyo3?41Nf4dfU>su|IX&xm-YYSWft5nS*h+!bM`43u_R8#?W{Ityp^s9Mp?-tt0cQZ9;cy~tg zztZE7#&>Pqj+GK?W1@{0Qd;bGUuKHJ-9T@ZV+x}f{A#|bBAC?+=WTN+>#6BA%B+gF zP6_+fR%glLlZnqUOA=}@PjgvLCoM>l7R@vqjw_aE;i!elrjzp5ERn-dYq=F1@_@ND zl#WRS~HlkGg4Cr6X$E^^oK>WaBC*V zQ^o_Do>Na~ZAUI@yi%-#a+;n}lP^au4<@RtthDS^(Weysvs9v-XM^}su|}dx?^R-) z5lX;Z^Eo{I;ZUn?9co-jaZHxd&Ko$J$%qziPrWUhGVo19ftRt5LqEh`9Gg|O^P^p) zE?zwS?mAY}NA{@vmV7N7t|oHB#$6Abd~e}f{{Xhhai`ce<%>OIKs%gw!RrpALjFH_WZU1Xs9xOZXE9h{W2Rp6D(W zi$@?#hFk-TcO071H7Uz;g0@wNj@p=i4{vmhVkj0Xz}FG;CzejuI3B&lao!G}QShgU zq|kL6*zIJBZLG`>-X5HE`qvgK3i)}W&o-tWRL^qLba%LhNhMYLzcXU8JTK#OIBh*| zQco=5mm`YtDp9W!E<((fOJO6-#}O}1D)sE|C7hGX6n<9Iu&+C)i<8lhl*N}>x4O96 zCuMKasx6JAl6|S%t~>Uwl}-s*N)kG~9`ZJUEseI^bZ+O~t6A!HV@r=>d5kz`Rq6Gv zX;PDx#<8Yr$hJ{O=31bVcl)3pdc#d-7MSh2ZQT|%S{5FAml|x|mUXv*Qb!y4J6F=M zt@ZgK+Z;o8%ZC$nHERu1b7<3%yQSZfHU&R7Dtj8s)Ad-wvpfq3W%;(ZLt1+ob~`CT zM*JF@D{Ybc{#D9FtH*NejUz6``F;7WxZ!)AjTjwlx|~e=Ji%PD-rke27Z;i28pEGdK)K&tl(5IEMv5<7-6?KQy<*L%i4NsIt$H-@r=v=VV)Eo1?mf88 zX3cc6<$m`a1$I-Qj_6WIhVtrG<~%nz+xchqfep4{>Jl4rRjB|>vV<~d{ zjBBkJ#_SdPH}`s1S*Q3?_UkQd(mJr?XvWi?KMI#wBPmAvBaHsYyp~@o2wDDI*RW{b z5w+9pyt{iu+}Yi`o_@8@EK){pjrDBeye073fB6YsrtQdlm69?r-%ncaZAP&7@Y@SB zkaEmd3cPb%wJ}nCOuusvQip^5D0IzANiET~v#aJ#xGRDOrFQmOZrL{ur>$_+#e2H4 zd7}q(Rfk8px^_vVQwt1j$4cIU*-!;OwdPjFb~$R|2<+?@BoV0KRidGITJxn{oHN7= z8YD~difc9oYnD|G8km74mlX`ob6B~Ybuk2Y6Q0JQmnO63IVD;|6UxjmDJ0-v)N>s2 zsLHb(4AW)|?V5KvN}DY^3?fBA-tFokyT!2mQ9Mets@>?N+gQuO7ebTQArq$K1Ao~ zRIJCUEen(@g=)`@B`uuy?N`c*QZM<$w%Ud^0IHMu(jPHuHs`HZSs7b3MHaVnjMPae zf0!Dyiis^WKJJxPFO-o;=qN*jOO&|8bs#&A0ji8k8w;aB8)rpqx{5 z&ZyC5!%o3B1<0!L%E5M)teUpP`zBgdGaz9mDmZ2eFa={LHL((>B0XP0wbpEWn}$2n zn4kNtR+4bsWAUsXKISzj#%j$TX{h*i=1omvzK8d5$^h&0d)ITW*sa{Ly287=J7409u5dA0c5ueft4?>3QDdXnE>&TTZT+RCGyt?sDr4zZ zSOD2hDkB+Q=CP-xnak^*5=i_vCY|Q2jpeXbZa!+*)@;*Iw=l@ZgPuFrT{%kkFW5p< z`D}Qex2Ig__ibq^@{RKP8ti<1p$Y81+P3ZHL;kUcMqGdOtJ0%UOGzGmTpzRdqp^#m zc%JIze$NH2**F`8V_MwL1jb8ovAU~QL#G>PZA!GZlRHaG-w?-ZB3+%{W^uW>70py36sbVR`Zq1E8&f#Vk7frQ?y=B>WjV>c(xRVEVD3n=IsY`Uun#TIp zJwc|9(4RY|wr^f9hcN?2&$Iae{7@9{BtM_Xw2gL6tg^|t z=dDYKM->ybT~BZaIIe9qDJ~cNW;p3np?_OCC^dN`I|O|8tX(%(jU@X%{&V@z#V8{|D(71LemkxLl!6gCcdt)Y$SaXO2pjN@UpzDd0MnKy16Z5(2^wL3%r5rDmG zqBx&ujGab|hl`)PR%MGFY5PJYRHx+}QVNnfpdU5l3o}C>^SOp*;R$HgD}x zRPzwzMq&$2Y@P)i%${O76cJ3gm17-fyEBxCE~Hrc3e44Sz{-PEmCR*PA{|Qoa6+2M zxwvT?=Jl&c!c}fISxkp>8m`iEMtaqvRErTdUYl$4ky^!_6y$5!3?L?*YM@31T9N3| zm5E#Cr*VqXGCLzwiTZOxl|Ac4P}x>OD|XE^92$PmJ-RI{OLG%Ke~a#)N-ZShb5QCN z^@MT$D6@E_XylI!I*RB#d8LVLzd;knEdr6?0#+3G=ge ztM;dlTCJIfGa-G1epK6t_x$KRv+Gjo98#>v)-*B=hl*=kO6!2zPj1w?%w1Mx>(i@G z_IQ)-^=e7&ZZ2<{DI32#xUC~AE1b0@DZ3)It+baC2;*Ov@m*Ji{3~%hxCl1q9RC0j z{Awpz1SrZvcwfS|as`+`+gXO~$~YP473lsN&@HX4QqE`*m1YHH^Rbj81aaI~9P4U! z(Za^smb^FNn5^P&Hf44DI|P_0B|-G;Ij*Zr)9y5M!bq}4*6L&2xhv03dm81HOP-ZF zafuvSYuj1HYWHjq%7bf7(L(W@4_di-3<5tcMqJC!-5Cel`PO{bW|}REqFamzW{J2~ zMt{4SCAeleCqLdhyYW$}n~_wj2o+H6UwK_tN$f{rthOH&z3OAM8tJBw6Io| zM$EZU`cWE&k*R&o7sfgaH+BZ%+@LYx%I)K?>0N!snFO|yTMm+EaNC^cwRA%e;Ug-P zV^TV9eC6XU66VtJk{Et$q+Iem&}iT zHnMZmiuF}UN=m?C&_M?TR^Sv+J20REdQd)40|zuwV6anyk~2VZjitaHO;w8I1zpCT zqmBg}rE-F(&H$+(Ot>3!&uV<7do~~h4h2~I4BlqVo|wmc)8#2qlOc{dC2fc@YW|sN zu$h~7cVT#;s{^E0OF3C{<|xNw+O&jQ*p*MMNj}W261o5Z%~^)V;^yIPZ6arp+X))3 zNi>{#lkD5k8eR|Zt;dTsb+NY%v|!Bt0NokK^Zx)I)$AVx{t#;x+8SMIFD0*<%w~ze z%l+IQKAdF#06O5rSBx}F^>BG)>U+~p$3gI7!%@(**{n^b)masM&78L$DA{QYMWev$!es9&RUYC+wBL@P4NQfZd)7WHCPoT;$M`{TgP#%>bPeVZL#6`_I zJ`Dq~^jr*@ci})-RqL8n1e~=4Q68W-dRWF60)dt-xS|t+D>hV3tsj?Bnr@Q&Tvl>j zj))$E;dDk&O-JELgCg_wt{RbdJED^?Cnc&ircf$WP(^(<8LjF-Py)ZuhO!WL!vZgri2z+d1c-azwesr zbS)GaR?}osNXkm`Sz8?s@~ov$>ZgZt(4(g4b4XRh4ios8rFZ&Ag$|=~wvBIb^QxaP zsoNi37<9%(bIQ5hPX#GEBMU~*A)SYo9hmZ{tN{8G+PjN?58G+C9&eSp)8uX994fGE zFgfY%Sjx9!uAUE-+D0yw;qAp|d%JkzZ0<&oZa?JLZENA10`IAPnm;Xp|5R6DzR z=CPGyt{6LO_?eboAD7OZ?e2`s z@Q-tvo^N=l)4Y2$P=`&qp4G1&-C7AZ4XweAw`EQTJXHJAOCrrXeVvg;Bl!^-efTFm zDc#&TW6S+mqj(cf7Z;WnpXkyRm647x`N3Vso=$%X&+$&ApJY-XQmw-xwo~sDlgBl2 zk2A9|t5PtH*HRrvQdlMu?uJ{1k%M_{@`Wcj&vS~%y1#-H3v7zNFgr#L53Oq$oU*Of z<=d@dIZTOf8i>rF-S(_oo7ODDJrA+O@G8!EGO@^PE))HpX zk!fS?P7b?snvP>ZjxaGqjp%3-D@!08({3CJXokpSn1fYrCFYr*IeH7+91~efa#gAF zl^WJJlIWD$4P`}o2;kDx=#6si;S4x_^;kN{zpoXwIdblA8kaIPoh@#6D$V=R7w*TG z_po`bSC4aZ>0Obl)dZm#?sGa{nQL&-v}bT{m{#1jF^jJ_BIJ&KTGN?H3N+khprN-W z;Z6XKD>F+lT;rNhtb0;rBuFGH9^xorwmrC{Q376>4i-P+sI4Srn4VgiMRbcDW&OQr_T_Yj{*=4N7q`PuHWtm@d@0j=Xq;i-s38pfzH zKx*f;JMzSx)zcbh4NO4}si_vuTCs2L_clvb@qx=Kqi*iY5_42$oN{YkTO87;EVmdR zdaFBbJQ@sKhdkKlbwJINnhE9~=JD2}SKM=o1YKq~O<1L`{rBTLBX7@Bhfg_=!mAe(pF6Q;5qRgSe z&w6bj90IY;FtA>xtKI@odBsU1W z^=%|&wy*InGv2Xu-Bd*)l6p6-FM2v7vW_E`O6C6m8TeB}zS6$eVGNTrld?x4x6WCH z0SBfAD`qWD%Hv7fwix8|k?q_5nhtYLoTnLXckucx%y>u_T$v_?5O-@y5lo-4LEsK?@G4Q#iXJkdO7>})6G^%=_7W#XR& zOQj@Y8&+mu%O|2R>IH8a@t(}{>R{?qwaz^}#B3DKdYZj0jFDVDys_;nakseo)|}C1 z9?DS|c5KW401vNfV=Ru$(*V7ND+sGJe?OTSJes+sX?L2ws}`4Q12J|d3Vj7WZdl!f zVJed4OHl)GzJB=ob6k4&J<4&q+Qv-A zOKYFB!2;m7-szK8yh(X!rr9ya$~mp0?>iaFJesz0zAV)wgUq^@3-XYwpVqkVh(03| zs|e)dHQPp;>TqH)Dmyca@s6s~&gXSwYO|T=&g|m77{u`_R&!+rL%$?cq-UtAxz0l4 z2Z2s#{%ne%BO^Q-C^Q@8`_rfayAQ29k;=R)HINMO8;8dCuiHh{7Hx@aj7c{LV zEzMQ5l!l~SWONoU^5&t_<;bY9(H3+%P0)@(6o=(*p2n(Lw?mpvCrl*K(!(Ie(Nrw% z&V08&Ls80fMn<%A5PH>EDBT`iLOv0`nomFWg$h=eF8MO6| z+HE_{RfI~Hix>;JK>0w=s5$GwuU)&*lIqz-w9S+}bDV+Nw2mTOPD+`4B)!whZ*FGs zEykazSX|r3AKDQXGDw&(Bw%nh41Rg8t6cbeTJ`m9GD8bHMfQtvAw+UGEs@AL^x)(1 zs*OlnO$@4G>vJw`ZP)$>{5gxM+h|w5Ayt~qrYUV0G7N~>OST6;c!SP!Q|nez+i7iU zsc74Ux`S?>cHrt8IbNLliX+(*IP1*U;ALtOTv*TcSR)O(Fg&)~wFXXj6%MO6m8XMc zrFl$pHl#(0WcNO}tz+26PTHY}^2B5l`I}@@w;#g5bozQ#X`z%(_WoNdZBmjnhn2@% zcdD@$XrK3qwpIC&o95lraZFj!cH5@VydB58W3?*)*W_>7Hva&3Kdo1qMV2k)kI_#` zs}syScHiBDp4@s>IWGd8%6oUJJN+%ujxl1PAb=l?BPHZr&MiB*x~+&q{~OL)89Mfl9|= zqw6uYljU49GVlV&oZ~;Gb2?_G){<;f!5D9wwPh+dmClNF++)gmcA0-2wW7@ud25hZ zu0C#g=e=_J4!sWMMYCU&oE&FAO6I9XN2Ny=rJ?BhZmDqSvdIqC>#~AB{LHfPoDeX0{Qm%zX6g5{C?-h*7C$J-;Cg4h zX&Tij$Cl@HJWRTl?kwe!51J*8W`_+T^Rc}>NYCerw*#f>HM=(qycKL8{C3x5PmN+qpZwYV(~-M%6S6oFYpf zZUu3 zpCz=iKE;iix(hf>*1-V_yM}GO{V97(Zd7A(u9v1tRbgacjUZBS>(aVS6H0~0mv^T~ zWK_vq;I`g#QSA=eRC$MK+9T7Iv{*3)b@*MchJ5e}-n)YbrxQHq97jsD&jlYEd z04Dzc>()BR>0Gqzkq)hS8%rDm%-!Y3C9`S$76zW7poTM8VW2Yp@l7m)PeR6`LfloRiI0DIU<4`su;t z$KEG}sy7m|4Am%^%49Q6K;VzcpqY+wRbw7uk15@fX@@71OrB!ypQ%l0H=4P}vtp_z zObR)9ij11o9)aQC6A4)@h1$m(uE1A2fj*>vjdEHw`&qbnaICGJ#MW}79*1=tM7o~k z;H_iKne^#rn6ec+js`&J+3%clTyKM~AeG(anb*vZZ0z?3fsBGU;MX-uC$)vD?t2!Q zC8P`Xd)tMRdnt*fkQQ=D$IIA)dw)u+;elmiVAHkB$+!lRNu=G=r&{Ke4{D4Xjm>A( zEp4DtZEY;rlge1(jFJfBzd^@S#Y1g>E15&9GOUAP^2&mzzddo@r`ek*H?foAtsY%Z zPPn(dvsQ*^Syt9G%N!C_iRY2WPAg(rwQ8TH9jYzc5 z0QigGpR($6eUj=Gfk-kV0vSmes^nEydSAWEVman(d||%y;}hLiu5VU0R2D$zbA=P z0a81ogVBi>>IvKPf00sLTeLS@!2D~g*{MXzod*dUuNV<-M(NE(rq3Lax?>m|^F(P_ z^(fKiM@8`7&f4R|w&wA2zF-6t&UxeM^{0F`o>uV;amGSt_|I-?s#AQ2x0hk#?UskS zhmHu=D8Nt`10AZWOnjBhn~vYT>s+y>eWf}o#O*OWW~(%ZJ!?;7ZS0Wy+nHgqk)m)I zDIt$FpRT~ydR)mHHt#Hz+Stj(CrugFhb=c`c-`B}cXZb?4DMoc_|u~@O1)3DZz$Ox z7g7pZunGVOywjqNQ7&8V*Cj}veOSbv-q0`1^)yHrWE$eAaMX-Qq{{q+RL^g^MFdwo zjw+EWqVtfr6=1?+IQ|;W`W)P(Y6fwP)reyrWmVi z@x6uhx}jy?j-HjpI&ZP>QN+SaNgbruDu56=)@-_@Oq+v!D?U@B+Ig3r^U&5j_oV&a zm0YCzLs(uPTFG1QLq{mRp|H1WAMZ0+iFO}?X>yO+8nZ?E5ncDO$Bz#ZpE)-RsR538GzmRclNJZ)wF#hQ?QcDRUTwF3$jS$ z>ZcO*M0xs~8evoYPBz#Tt`g>dcHC7^^ABBegWJ z10tBLbh>xMT}~Z0>=*ONBS(R6F7LQI=ilDBkPC86VJtNnO8lmanDl=Ec-=bYB?j@=5vVqYzKn$j|tW1<*VL!#VFEm|A769o)ar&6mGuouV}P=eo_>`Z+08u4vaZmpmfYQ|rkxnAPKe=IV%B+t@v}Z-Z}xpF zKKD})x{Dccf>mXxn3|6j7j;az6t|Z^E?paYsa8Xhl4$#{U3pR8f+TzZuOOr$lrw z#Oy{~^Gu0JT;iugXw*Wxl4<^4X>)_9h#fPe{Hp_ zwu92JmMGOO>7H?QqLe>&y9@mpMt)l8h9cy9Bye)+?wkQ#9sZt*I9lk9P*hH5 z?5qdOe+tsLw*j!V(HC;PiJRnY?V7aEj8=*!k)TynJxHmU2T@u^29d*%?LNPiNLLkn zhRY5#C=}qH)cu)XR~;WcsnLK>N|yp%5@?ULEMtt~vvD)_C97g`4J-qmm5icKA%4|} zITV(}R!$>PHEgbM*fj;Y!33Jg#I>Qlr)pE%&*nr|pS)`}IlQs*)Hs^PqmHLt;jK~a zw_IOdESXYwD8}A+>-9Cq%t1zFZiTn&grK_k9tvVT4voVVY)8v*u_3rM3)$x-m~ENTZrx(9%f%KYUlR(qf-G0>1>$@ zpY{Gk+Sbcwdzd9(opwkSiz_hd4^DZ-WVPGF6~(RZ&*nB+R!%e5HF1m3=BtQ|lY27d zv_ENewt>qP<~ZVyw@iEEHKE`QCg$emJA^T9nYU-I-K>8iNUSjxqeX6V`)NwbCia1) z#irY>j4L*76L-z>?LX4HZ4*kfSe9K!b2Q6^eVmMTuL8C@^4C}S6rlT&X&O!6*}mI) zb|}s^wQR?H(jl@$8+Pp(9Q|v8RccCGSsEzC8Mn)Mv05f=tJmeNeI6+E_S<_R$gF#c zmsgWzaOHB`O9q!vw%HaA9G8jS(9?nh_^<+ISY@yp1)3=s+x^Bl^$w!E}5L( z5{p`qUgF)BIU6!A@4PYmtE3lJ@LcU!6;?G0IHTLux4WUgGoQOXP6x!l4)onR&+K{} z3%hn+HqIFjzt^>HUdwZ-Kl(Y3bWS#wLx$%hS5+$YqVFkv=P%XcD7Kc{^#1^dK6df1 zg!Mfh{l3*}wl;5Dkl>)F01=(d`!l*<%rB+R=`P7M$kRj$WTDB&%6;%^7&YrnDVpNS;^H$U zyGJ~YYId?P`9@nfE7+c+t$CWCt3}gIw_{^MwXyObk4t4Y(8#dQEO`Cv0m(S|x_0-X z2qM(%ZFT7c(A`_y#(c-h?p>QnVbcd4x#?1E4U=E+NcBxN7dHtmmn1h=OE88A?bNcD zBj+avaqaDzqo{b7M$j~-lKxAEzLA(Olew_FxsP}7jN_@!1v@^3%22i6{1TekTwEgE z=y&m2!*y*7`7@v1yCVd3$4(7NYpOzZMzXb+?5mM8JbOxq1a3~4`MKz7jMpvfU(xO? zCfD^nFI&`^zF6+Om}5W!^lm`MJCYeDORt z1*BG70nRb&&{f7QlPa-}r$F8%mr#P@(&s>1sl3ODVq1gce96Jb1pAZtS0{brY2dYM zD^^9fAq-M9e>{W^GC}G;l^le+%G$rk*3xxtKGoy9njJl6^4*>|Rs5_5!3~b58O3q3 zc%n;rWW9jKuOn`eKqR+Olb`8V$k~dnqp8zsTEq<{=9wk5GDea~kl}R#bu1t>2*LErze5j6Qz>-c)2RP!W zK~3Mq06Llj9%up7+%Yr&;(H2jPFT{pN+I(fy-3VW8kC?JElJHX`9P2kC>b=(6*0+> zcV>>K0WG|ep!Si94%qq((|BSyfk?wJSDs76Yj4Og?d)lM=;uJ|*=mX}gm#jMX9 z*AH`v1;aZ>IhI8vt=7_T?cwKHh=+}^)0T=q133!ar3+Sfju(KQV@ufETDdmPN` z8p9lsq|9sW#Ce+q5YPSB!Jdp{(UW#P#S(GM0y_ zYH>wz9&TV=f;ayFNGcehZZI>*IPZ*BCZB(21)NZ77i{+S_N7X@7H7fez;z&FpzqBQ zrqSCJnje0U$#*+KzD%lOxP`74Vk$4ndv@gWo}!wX^^TznYIaugNYPBm6G$-c({RBV z1L^>(QL#!fdX3Z)TN`NZZ}kP*mzil50m_q)dcA)XAK9`;b0M3}`AcmaE=eDkN_?h{ zo|+gQD)9E78Z?%|W}BuJdiU%wIIB97T`r!JYEz_Q9(K(p-O2|90rkaKD5p*mj>iY9 z+O$*VDA&u7pD$}<*1X9BG|#0km{xw0E<&z4kItGorA92}C0AaF^7{JKjZPMpR#m~v zaLPLK{xz&w&ni8NZtWyoFG{(j=~p)s`BFk~IAX)4K4lW4Morj{M$v9{n~?-tes4q4 zx}6h5mq64OX(i#8ACIjmRqS(_A7PPB7JtI&18?v*3%|&|xt;0^O%N*45^J>n> z#xPb$uX{0KaB4YDTCbEIq-T-3ns_+P4kj{)cFjAe#dFFhJmLs>#TmyYx#~pXsS&aq z0xCJ=+O^9lo_$!@r>MxvtOwy#bq!BsyBLpJ$CaLSLcFfG3$?gq8K`BJDIWlR?mm?^ zIOIim>W~Hm=h~JVRSv>p5BGCZq)6tmR@olnliW0gnB4OD>1yPm$3>{4c} zjLNU`{Y61%6w`gt!uO$~qHIMcNdTrORg2|s!n5V*XiC=^?N#?Ms*FG~+re2l4} z37N1nQ2CkbOb29|Yd>K?4&DLlP?yI_U|Nn}LseE!S_-+N6~P^9q;j5ykX+Wcy4&8U zMo1IeS5 zyApkhCc67kP|Zi02NZH#e$72>UbeWB;e4C51Lnf*^s0jK;r-(Fs`h=0RN3c$9sV0O zv#MF@S`E6xdAW|&8r_b_(NU0 z(L6~drm1S)bdnX3w{oXGoyXF)jhlSc!t3{|we-_3S5yD2Ts?nZd&_|{{}WPmcFuOBzPcE<_O?5Be|G?nL{T^=su5Nd%9ze)rxv z-S|~|%_~*ZwJo;ayG7u$ab48;R83(iY>?IRrh@|KE763L5sdf6Y4~qOjyWAKV+FFq zc0DSkQZX(vzU3`1N{=e=M)PgQK4JND-yQMkU4ETqr!1SI3LAscv6dj7Xs)JaiQ!nS z=M&BhjLosK_fMslkNky_dq*;i=Ww;M%kT3InrU3soq;!%vT zBv4r$`}10`*>TNrRK_mn9ZXRK7H6nh(ux&9z^*!&&c_{0VH6Mq;}vCNInFDFrXo@} z=Zj-N+t5^jJ!_U#jyYl(5&BcvJ!=_Mxyvfekgzo&OdJ}`$mW$ote}I^oiW248lGbr zOsh8niANbH=~Hti%CfIH^`}li6g|wYQ=g?pcQ9V{NX|^JJex*Is+X5)Gm}+gDM*I$ z<+IkauP+Nmb_4iUk%^S5AujH=wgIf0%}GOrfBWXCM9cks>5~$E87SHN4jQ9rri#skbOavZb?4=Z7HetC89($%SljSIrw5M3V5L z+vS*4S2p|N2*#9oZfSA|Cx>?4z3RTh1mJq~u8vh9puD|k+#plWr5;xKJjpY~X&6MV zQp8g%hy$MAoi&~~qc5>k0o2s;>!K||fV~h&<>Im0=4Y9vbB)cAzJj`=L*3N4#hZ~{ z0(#a!yxK9EzhZ3|8|ieX_^Tq;>Esw4Y5Nm+(>B&+$IDsKOEDx9ouaK#I-x|-YlTsa z)frkwz+cw2jVPTFpjdrHpp{-H!zs%1(y6>e$^){M$IXh`G~#U<4DY-j;z6vdMJWk1 ze|bl7>s&px{F-#)YY8?w^kwT)?60yrsNOnBT=pAhNRxqBUJ~&%dhVF7Aqz4t*_Yqf z=~&8>zNe*5oGM1>=@#G~b5umY_o((Jp2X8jkbBigCKZgS+o6o9nsCZU$m><%mj`xh zmQ>DZQ!cB9;i@El`KWQw$;5lSi8fGtr>!|%eJc|lQCdujLV%svqupDAbe}gL->bJU22a1zM%Ml^j9YS!#RNC-Tj6mfEYvK_t{T zn=DD%Ti&+yD&F;lW32(VCbN>zrC9AOH8xYrRwbUIvM%K{graDx9j%tAtiLh(S33rz z(SU0SQx~;6SSLvb%4?s~b!KJc;;@xDbq7109QMm`7RGOs^TDdNnwrYHSo2wONjr<; zA=I>JrHg5H!u0v8M50d)0nKSnq@f~O?sHdBM{YiI^sOydN^6*Q#yYUhYq~WfB4vJt zE2w1M7|m%up0JIJRm>|$$CZ*L1&=iby=ik3d9V$v2P)m^txRPpM0;E=E11-LNNgqY zE)LfIm1-@R%Mlf$IvMYg7niOdQSp)-h~&*urz0t1pl@oL(yl;i;%C?7xHv6ZDrPdo z+}OL+yvEMz!#Aw`4OcCUU0avtx;;fu^PRiVu{`C!H+5EyQ=Bzb#~B*BdxF5#Yiodq zIiTJ(EOb!H0)d*%iujR$XgZ@<)q9l#t!FH({O+peHdunw+-~DFTXTBT<}2H>%FF)M zRo{cj{b_Rt))}X1DBaen+T3kn%}bF!-00%9i&e3b!ejEtxX-5@YAqJy=32^9dzwb4 zGP69p#@bZ+P2Adj;{4IJGCC31*JJU6!*@4RL$603Ve*7>GOyiWNd*0KkHWR5SDSOo z#!-|d?(EMlwbR3u`M&dhRnmBS!wEIYi3tk1XDq*T0i5ElRT0A)a*>kkP8DlGB{2 zqXQlK)^d|&MMfm@Pa%bgJ-$^7(SHuLQfr2dS{TbOeazJ*bMzZ@(Zt?rr_KHD=ZdFw zCgfq?8PB~2QjpnaB$B@<&q}E*q>q}Y%2F0dm5*M&wN^<^Hy+(6Gi;c)I@LCviOy;%o4~;f~%Aq z5IWZsq`Dokj8tx!b4ppRBW0aN?btg(t6Dr)(@7etlDoW-Wqn?#NmJcF;<^hnnQ9*og2elv%C3=MI_qNo_<+OZ9xk&l9bmEo8%_MT# z<%G9T%wl4>P}tyi^V73HfZt>8O^81sRT2s%_L+2 zj(&&Mx(^iiF4I_=JxLGE413oL-}=|3N~JzqGtb0B-q`bfZ^O~s!}fx!`@!2hS4FOA za!X>s22HBnMn4+pr&3(jY~|!UTgNspZ2ti9E)Z?=7YexC$31=PSI0Xv=ux6onC>TP zr?K|0YYQnqFy%a^{{YPUWS(qgTX)Q-)}+)OC%I{sFf;eD-1^tG82hND5~u|96($(; z6*&} z;^!4yrm>^U>_QWcYtXzo@TkeCSlsGEY!gZID-Yo#EBVy((}~#(1z9w$xyNZ%(mH>t zINS#8abCINFAVAS@qc6K8fwPQpl*&m$0NRdYd>nG(CYrpaNXUWVz$!9nP!*E+Mt2! z&MUj{kHNie{{UR_Z*7Xg(YNm<91p^WQk+(-bnq2rE>#wA)^os@MO|BNr006$tCT3ok5{hwYnd0MgOt7kJvvD-$)nRAR+vRe3a$nh<% zm^8T78-<$Lzjct9#Mb)E&|=;>0F`!(m1QTt zw{h!Ut`BHu-Wws&=kEW$*geEo?-m8y(nus+}5&PjholksjPELjxG7;4)iC zVpzt`yQ|KWdY+fVqbl6mt(C-=M+bLGtF7PR_Jc|>Z0DCObwyjtvdnp`>x+Z9wrf=r z2}qROWaBkW=h`d*PE^=y;A=J1^<+%o?Zr2sQv^{0g`Kv;>;deq?n=71tZ-M|$v80|ppL*=kMikh9r$~8gHBArNE z1r!K$XSE`n8Va{!c#lqL5m*{Qp{b_62sx-Mp98H!MzLpk;Y*+n39P>j-UMalx#~dg zqa)ERZUG8fvuy6kjaVAvln%I@&+Q4N9Z$p7`iyqzn^}Qr6@G1}f-~vR{uQ<3Yj)MV zFLP|jTlZ{Asq4Y5aPszZw{y4d45E;o*#zeOpIG;@Uii71 zm`Bi$o2N?C(;HQ@+9Xdu{Tw*A4UphDJDJZz&r0W%rF)~YG~vr;y!JJ;%?Mjr+rE=x zV~#*#VrC5O^8vvf599?+pz8YCc!eT+O}6Z=*65JuC!Byr268*r66Uqe%2A@^psv0~ z_Kj@qAQIU~yIGfV%orS#!3P<^&jO^=rPVDO7g!N(jGMges>Eli^WS%;tzjdwot3YD zxR%F5wt^M9yAIK^k|UOGOoaC5<@Kp=^&@$uJ+!SFM>oi`N~nz8)qouJ;-lVgQ%h5f zE|#Hp2C^A#nrJaJ*l6P=n;p46^!t5U-8AbJ|h53Wc zq}*ChsIh4F?Uq#oVK~7bjbh*5tct?&S!8m)TgM>mPh1a9)N<=`rB*zx6KgYGKn2*o z+|i%jMywB*ykz@VH+69xy`ImtKICjJ?Bi~KU(U3Q4q4XH{{X2h+Vp6R9?U|)yrgfv zl5?I-VqI!s3!g1RGZUZl(zQ@IrCqM1nx?MPDv22V+-+*dp5VyYtyB(a)|7>7hG_QZ zwm$7alU2%N%*U5^ZPbbw_ohhUp7a5Z^lC7u*|F5n1EgV!t8+d$2AV{<47r!ysa;&{ z8LCk+l!)&x0*)&_`t!bPNW{WZE8krK#%nhI@2@qqVspx%*{^XY%4;U-^sD3=)7hNz zsBc@`!bS+s*0Z#$sIJG$oy+&Do}@WUx$bYpBn~!=2JKbiw<{l*=l$B}X%oz7TTWD9 zj`d33cPEok%hb5kHe;LQ#ZpN~IR>MY*;Fn(gB%*D^L)K%v0UMB{e@P!pN_RwGL(wf zQh~;5t>oCvX&9JFWHQ|CZnZ}4a;G5GsGRPljRd_p;j11y;*vI6pD9qpYIN3@EZtk0 z%+qf}W1h4f)Ug*g;swTcQdqLL%nx3)l}l)MQ>k(OL1Gy0-Tm#ot3uu%FaW?)Rgu*f za*x?F$Tg(){9_fQYI8dlk(woG4}+=JG#=Do{fYoavH3YD2x zR@51Z`KudJygfm#h``~URzav`V!W`B8) zdXr6v%QEpv)xYf-T-^+|wnOa4oN)-TcPC8&NTH# z(u^fe+j{>1!~Un3Yr0fUe%zNx$lFAPAv;<2_4?O9+C8F4aVcXne7koOwMYk$qq!fI zdJ)7%$DY(`Uu{3g;EtXqc1aiJAb$=ku7kn`@->bdCG$2G%9EUab$?ib>TvrxOIYe! z_-~+HX|D{@*yd}DvbNqMMPz~NkWOzfr8 zCAqa^Wl`qF2g{I06>{6{o=E#a=D1ffJ;=p4>SS3Z-j2Uw5*LL>EZuWeyjQBNpl}Eu zFIw6h(jm$;b~)c4>xlNRZ|4t~R|n%gN<_J5^G?_5JuA?oOR45!F^^_*ek9bxJ4fbj z$E{@Q4dz@k1DcQhgqpGusj1_-6h1!qd81(6+`H^_7 z%WD@%fNXJ7?G0m2=54=*gvhcP3i}aS(h|4|xx z0P9vRpQye(w|b64c+|PLw{k4F1Lds$0JPxlQ%jVtV}9On;{~{^Yb{4?-!bb@;98$X zbb5S@!H}-dt@71NOZLvi9eJp6Wkk@H808yfP1&Zs$c=XnYBd{)g|BGH;6*fS@twoW z2j*O!nXQfMIuiAwl%i!SDoFDUYs1Z=+p^ov*9B!~{pZVtWAg)!wcKj{9<;udT2wnv zr>=8bMz3>*rVpe~9>3JCZSL24Y!Rpdq>O^Y@$|1r@jrv?FYUh1Hl8NkxTwd>IO;ts zXx5KZa@4`pTQkb%*H_H*i?{C^D!Y1n)xA&QX1{l+y_T54b}AfBPs_OafNNzcea;zE z#B*6h$(vmze|axnFtyBh+eq<`gRi8r)^w>CX5u7-Z;Yt^ERKU5^MhMPoM-T}lBH^t zw3=(w(!cQ{M!54U&hK^k=I4EMMvrru;|`lp@jyBK=j&Wlm$Es@HKL-7Wr>qE?|eee zenzf+rFQRDsl^$((`D<8Qb{_sXXdMw8S_b#Np{S5sA-dSERs8Onm}{Xk8}rHPEoQ= zLUN|1#15B8zXKmNVp-liPs3Idqj8>%qu(p28Ln?d)<|Xfzgps{L5}C6X_6^j%+-&g z>Ve1v@#$PODafOy`cyWzQO=-5-8$yET4)PY0mgGl01mw=;dtpwm<6Jw2PWKRg=dq49`!OVEydj( zR*9^iFUk(AS(Qm_p8Oi4rlQ-8#BKiocDbb(opkF?Iy1Pj)I7kk7WtKOO0GxYSo&_P z(S=r%0N|c0nowx&r-;7iU#Ds=&a$HqFK@nUGSciuqvrW{b={oTJfU-{H7>O}NVNue z)H*Y69Ji%r+uWA`tgJqmtho)NQ)?Q`zq<2A<~vDWdWPEKM_e%mo$5nVqBCbd;*SX1 z#iGe?Y87KHzFcxCkb+w+)RCWh>86f5lCkG1K5dLRHPKHUQaZ6qmQl5joBk(!JrGZE zI%xN68Iei2ak)VCuXfk`J0_xKkI#_9H{OOe`Lcdf*NkBP73yL0Sw`15Yha^Mzw$mb z@dtvhtm8NEt2BF#?~n|8*U{cG_+z7sIN)d`UnNh>k>y($<8bfIdQ@|W%3ADs74R~r zsq(Z8_Os=~3hKOl;OmVyTbcz{*&M_u+x#b?_u{>(b?MfpbB0u97qQA@HO4~i-Rs({ z>lRIF%loInU%tzLYe>mTIvHBTCsCDTRzNVL8%V z6XZWLewCZ29)%Z~5R)J(xH#nVR8l!6V4ZVMm&`XcjmO#{`y?l5{&c!EoyeFYTQ1nu znoPC{AN^{MRUJ`Y&Qj2QhMfV0k*3<)zUuO8tkblc4L?mcYh~xmmk1gd-{m2P%EX?a z^{Mukk0RxHe0&3PGBl;yM2o=NLd?{1AbqqAmOYC5ELal<)crbcy{S8C%2 zkIt%VIUNTOBOYPv*p7a2I#) zM;$T#IQ;6A6V74H)N!nw?pWV&9P!QvZ)%@nZR~lqEqPXrJ4v-mlbHtm=Zp-GrB#mU zU7jp1RPwulI6eKS_95&Q_BpSJeihL#ZDGH;U8@?ZvPQ>lMoxL)fBLI?Qu`dw9Cw>` zvatD>bCJ^>&+^4>PBMv&Yy~=&R!7eMD)6|D;hN3~JfR-t@1IeTUY&p8Deg2y7Xsm= zhGulz5j&&o0PWY(y()6$(DJ2|^GBI4>$&54bZ-__)A)ZX=`TDbs%i3;ys~Ka$Z(_h zhp*S`U6JLHojeTb^fbN_*x21_lMBfHX!bOGcjxk@@GY$IYHu8KG;1P)*vB|M4LXs$ zPiHTq?CNT+dTp%I24u&|ybft#Ran<(?Ogn)(o=&aE=@E7Pf9F}2-bFVmN_H&LiIiB zroDGPq!J5t|~ByOk3Gm%&1L0!l2igS+i#ng{r^`}rW-kULvxTqjvtwB+fiQ0H?S!f+tIjlW0 zdzhldgqlR)TNAeJt*p8Roo47mU`0>%T|1c zO2pjhf3$)e87mBG9%mwsQTt=0w$!qI^>$>Ak%ZA;L-Tb?U zq2Ooy^XZzlpQm3~+-bU!E8E;c$s)Hxq;p$QttxU)p~H^Lsp6=$v*^!`6$lxve;fFE zKMHuJ^Fe}Vk~?`Z6p|#f72KYB z@$$$=%kNy(jm)+)eWC|-Zrd9f`ulrUHL#Jb8zgTUEcZP&@+;dmfJ6S^TH`(*d_|r( zR?gwor)I-$UP$%nUOjBOtvOvIs+}HVtGHQUjiR=csc*cwtoxmQJFCwoHpHDy-t|=Q zwJmmzsNqQ>yq?|snU}p!r&&X&Nt>x!Jo3Kgw)Syf5<2PN?nz~@$!#x{_muTk?MT{n zqTga=WWwh?jaRUxDBYvBo(-Fj>g=#A=@-flFgjKp{;JkUwifO3_4?IE2hFn3?2Z=2 z&0A2pyJsO+<^B=gvhDRSUwrHbviGit;eDN~jpK(Rw+nGAMJjD<u~&)z0EawwqB782(L~TPH^}D(n`ouecdbOF6icj) z2t2X!grw8skeo98D+x_UsXpBoVvP1RVhAuXT=J|B5H>hBbgPj-4^dc45MwM+3R{8H zRoLxu(y^8x=awj}mgM%W1h>a(!dQczSfZlZfI3y-1`TB_LpkM%Wkt8+rC#!|y(=eK zm`b}Ut+4c~ii4n9&DJrMVyK7?2&)ALP%A%Z%(>YQlY!EtqnOW{L`4U2PJg{YBRsK+ zR$?lB;#whiRQ9E3=cQ7(xmjLFLG4bNvs9ukLXFkBpSmhZ$Q86xE7_QOg{E?GS1y1f zn(3#^HALlgYcYexX==~{I2GMS<*ElCb8Uy|SFfNMHR#hdjvU3B8nJO7wRJ`&@xz(# zAGJ*)cCLuT-Z*lvms1tT1Xi4-`xHhHXB8k!@lxVTr4g#NBB!lHjAcx8OM_BID;XT~ zibRl(^!WPL5;^4(%m)-gdBtNRBHT}kVzvhA&O*M0#dFjefn?&Oo0CZ$i8Kvz<4wDcMR^x#AL{=AiwC_!YN2HLhHE)SBvX}2QoLE| z-W~B;n6~-s#|&FCbj@-)GyR;YPBUCpD8-(&9A#CbJ!02XhUHd5>cMbUxg9T3lq#Lg zh4-#GP~~T(PZ!O(-3eMr71A}^!7N*m_+qlGHAJ0NS-to@YX=EM9Z{;JYml-gdmMXI zerp)B8!CbPO_PCG^GMU1-67O%!s*N#cgx29ryjLtNt5nJChg1fVTZ~+YGWtNWhEI$ zl^n*gr8_s8=*+G|FZHY1&Xlr3F0JmR+aCqX0vHpI(zTB_bAu6wzNs8OrKdr0JZM7< zed5FbaC?f<)vPABg`)BT?NgJp?~iKgr&9VReEuq$g0!!vPxC2FJ-V{_Rt+M@kKPO} zIqg)nNrTyl;Q0nQZNYFm*0F~(IOkeCtH1T!H9Mg@7q<(wf!y1V%Y#`n>Sb+zvtS3x zkMA+#KDDfA@|epNE?+Yj#L-HtBAGH(x9wxW2e|jCwVPNqB~v}g`B&w`bgsHJ6n8ml zR;kNm&OS+5(VUZ>p4F*wpv00ZDdguOyH!XWkDIBb@c#hCP}*wn>Eln9Sla=d{YSfK!lu+X8!u$bJ@iTV!tXzHD#hQAWe_~Bgt%^c6C_lXPs?V+sHH%xw8b|xN z{#BnXPqDdIk5g7X8r}mOOLNJ<=~T2|5PhMR-t8l4H~hUv`R1~mD@Rs1$}eL}T80=c zjm$Cp(VhYCReVKpEU2+Nd1b$cx7L*i%bQ(?Cu26!Ras287i<}^wMpnbDY6YUtr>6R z^CU&+yl3&Q?tN@bXDGX)uhFHnh6yeq95C9_d50^~xm_z*xxI!+{{VLlw0nPce^O0j zQjDb~c63I+HpgadD;85?sA+n96d_|{I9s7rY}M{{>UZf5uS7#in>?)7+caTF?{ zvZ}o2kG=G+jWruvl0NK?6c9H7$FI_=IEvJr>=JU(N!@R6_+!9)ec&6xdehCPv}(L& zAG^o#W2Z{?e--K4R;Ogismr;D`Bbmo$mlEB!RFN=?#UT_UY$)Oukt=n)HLFV&Z=?i zpL*`RYvDUxF2+l%jXp$;Kh((^WH8Tgcm}?rjv_TJW6H&4a)lphxAo|Gp#*lT_f}z} zY0(&{Y%61}btxmol_^DEp`V&0g@Mgck1zwClnw?c70s#5nrg)*ypl^@Lf$ESxg`;x za5muba=mlYwR!#4wkDabN~<#}?ZV(G9@WFh?0%H-G3L4G(Rh|CZF9@GXyo!#L*)5~ z5ugBW9=P=*HRh6QcZ937qjCQLSiyO3udN=;KDlXJ?e9ENwwi0e+KTzh8*WvT%=1Y& z$v;lswdel;Z+KH|O@JFeTBS^nt!ZPSo5WJi7E8%v^8B_~m2$YtWO|TtE0+62fM7TA zX0O?q{b8LA--<{LB10SUsEow19CKXbNbS|B`!Zf4MughDip7!Dc*5;o-j$k3#}!

@H~%Nh`4B>8l}L0x#uELr(6bR+e=MG_{6XSp2ZZY=wCr zjZZeE@_V;4YiiTOZ>ZUM@U&Z%6rY=(xTVgzjZu?VMlEYgZ)VUnsI^}@IoWq9>M{Nz zj&Sx*xszR2hIC&JYT8_u+K=w;V}+e$&lm@(G@V3?jviBu(>Yq|{6*n^4_nzuE|StS ztjHDDBw&w96-cqm4=Cz#TMcMMp-XXT_L%NeWmxTD=~d0C9?DN!6b2Mvn%%niZ{k?3 z{?~0BcM;`r<;jNRb;0S+6t5oT`wEMpfXq!u_E(X}(LJo2qusrBAD10}DtdGmDHciV zMNkDfK>~u~5v6@;`NLxsNgGBYDwEAQa5=3KHH<(n@Y9rMn$j^kAplT2REY^AgIdNX zR4IgPRkA7DcAVn1j82Ha)Y0{6EXKu`VzUCrcU)FtF;Q2_j;O9v*8DZ&RWe6Bv&Rap zzRj&MJ0Cd6UilsW0K&Y}Ow>#lD?3T^s^fJ_qZ6u~W{-NZ*QC|1ZY`}YV}F#ZNXzpw za6c2rHRW1IjjnBV3tOku6nRmY-p9)qWT>X#4DcBZ#|{d%N3JDC!HuiG>lb% z8E!BDIqWN&(zV;&Q%2hb%Cp9cnJw7-g!f;1!d~mK(Hg4PH5%vpR@?1S!*34RHnei7 zA0}`CByfAu+`$C4vAjN8O(+4RbGW+>{>G=72RCw^^{lsAf;1PBNU^vDS$2mVy^j>P zcQ0qU_UlsGH><2H2+IM;_vus4XYC`qGxZxOH0kzv;%(nDt16Z}@;^*f%gaf%VGaKP z+01Z|cKY?r9P6lab|$*eWP36h+Q;C%h zlO&6=`2<#+2{R8d6OL**wKGwQ*sEcr$X{!+^!%#WNf9%gH(G7nw2-jrEfeon-AiqC zzba1CM=XnqD*pgwqTPL>QMI?^udg*E^3L+?Wi_t6rEFP*#k=JL)v1XYF)OM0syvEB zvOH0)X^Iv2dUhy}aXiyyB^N9zkQDBpe660{DjDVh*e^M);(%^jcQnHyj@7Mzk)Lbr zCZWqY&T~X=JCl~~4MXO0wAO`Oo6aa|Cv(<;mR5X@YM_z3RdSVb@Q@MKsw~Gm(aIdf z&BNB9S#w7ya}(5R!#NakkC>Sb4_acdG_@IFBqM`SD`SI53uz@l9Ah*E%hAkwgH_{` zv7jz#+g~!AF{&viy#;d}4X&fdCb40;DZw_p%Q89`*kln|#_zUkNa4-nh9{28OpK58NY2*Wxn76Xsx{Fa>s5y4+}1ca z_Bj6ljXoFB^*eayvWP=;tjw}6N8_Qcmsh&9p4FnbfnWXMTT#RNJ&~Pkww+b6QOe>oqhce zwJ+?qBY5CBdLEfJqi1((kgM0Ju0O-xB9i=h6C&O zX!%!-u?PpN0bLQY=xC|M6dj#ka2WbmMW=XT-gH};e~5MT{{R|2q$8s@jTuPAFL8G= z!y59uvv#fPeIstH@!K!UkD5=yg(b^$TxiRiQJN-^I-J}MyyNM`ZrJHEMR3xz%-fYl z)6o}*0Xh^9f*}k#aR?>w20A$$iDMsiTYOU zwT~Q%=bkFvPHEyIjN4rX(Jp?|v*sfmdRFzVf~n3cil#Cvsl_~0cOka1{{UvSA-CfI zR}D;ZIVxiaVYS*iRp{UYoL3a_k~r#P84Pe>X03>Fa%+}Yhuq_qB!yz*fmVE=JJv3> z%q3Z}0TCRUv9x0VR&uCf>JS*dUMfc+PZggroTNg^0LY?1deL(yCPN|awAt7y;814D zvT>S@=IJ6CV?h#s<>~Ow2WDlsziP5*g$!#8{JdRQ}fj*_c4`dl3waV z<~hw`UdbZopZFGf)`}?QsaXc6cJ97r^NPs4xVhX}9Q?gTI@Xbi&+Vlm{k`glwub?^ z`_<3Kb9W`i(r^!a)jEAlr71Gg*nOh(&FAoVz!e%@%#5)+ZO437d)BfdGVWb%E;yHK zFl^IWcX-u<{MDM~HjI)f&uKgplLKucuZZN5FF6AGoYiwnW@*fbYy_phc{6mw3Wi+6 zagKfYr|kKSVzn(?G`n`8$NN;sre-5>tBpA$rZ8nw6v9%@bB^_9_{N9jIpg?iXvR`C zRGA6fS7U#7HC}B%#6l{3+-~}MR`H`QhVi04=*#wEe}s@KE3HG#j7EV~cJ#$>PL#Q| zM?`StWwVxZ`?c%RuG!w3ci9|#9=vm19FpB5qBv7NeKPtFzZQSp?ORf1qrw2VKu5p- z02N$0`khh281_?0l6gihzpZLR0E`l;&#o(eRoLjKg&AsHSYf)3aZ}qWkC=*H%<6^| zdjkDhpDN-#)lsH&M-EqK1Z^gyw6=Sx1X0Jizn8sh?9w)k0-+^O0=j)4!xlt?a}krD zz3=T+?wiL6DH(nrgHtm3)>6oXe{|z_wRP6kmbz?>9lReaZDk#C#xYsTQ+VMyUaY;N z&v`AX%Y3_J{w2*xZyP$SjCTJ3vsp<*=;g9BAd@^3O@(rET+`(-l11nxJt?-!&2iLG zIVy6Opll9lv0x07T(vE^$x_9r_#7H+Y�)kGmBjgcJ|gH>SOojwWZP^@|Vw-4bBu$s@p>u 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

-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 z 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%0DEW8?E7wwIgUKwW5(G_Dd&#k68aO^M{*@r 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%0D6G6x)y_Die}-QRDiiO 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 - - - - - - - - - - - - - diff --git a/Moonlight/defaultstorage/resources/public/images/logolong.png b/Moonlight/defaultstorage/resources/public/images/logolong.png deleted file mode 100644 index 1494f265b2016cf05d3c58cfe0f77c72be0ef78b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12410 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 U*aKCyJ{bUVQeP$O#f^ji2N?sR&;S4c From c0872d0d027c2393f9a42634d930f5da7f403076 Mon Sep 17 00:00:00 2001 From: Marcel Baumgartner Date: Mon, 28 Aug 2023 17:41:29 +0200 Subject: [PATCH 08/12] Fixed build errors caused by the removal of defaultstorage --- Moonlight/Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Moonlight/Dockerfile b/Moonlight/Dockerfile index caf1ab0b..a0ccd337 100644 --- a/Moonlight/Dockerfile +++ b/Moonlight/Dockerfile @@ -22,5 +22,4 @@ COPY --from=publish /app/publish . RUN mkdir -p /app/storage RUN touch /app/storage/donttriggeranyerrors RUN rm -r /app/storage/* -COPY "Moonlight/defaultstorage" "/app/defaultstorage" ENTRYPOINT ["dotnet", "Moonlight.dll"] \ No newline at end of file From 5d91077d42580df1c180139719e066784816dd76 Mon Sep 17 00:00:00 2001 From: Marcel Baumgartner Date: Tue, 29 Aug 2023 11:55:45 +0200 Subject: [PATCH 09/12] Updated MinerScan --- Moonlight/App/MalwareScans/MinerScan.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Moonlight/App/MalwareScans/MinerScan.cs b/Moonlight/App/MalwareScans/MinerScan.cs index fb3e67ef..65ea6c4d 100644 --- a/Moonlight/App/MalwareScans/MinerScan.cs +++ b/Moonlight/App/MalwareScans/MinerScan.cs @@ -15,7 +15,7 @@ public class MinerScan : MalwareScan var access = await serverService.CreateFileAccess(server, null!); var files = await access.Ls(); - foreach (var file in files.Where(x => x.IsFile && x.Name.EndsWith(".sh"))) + foreach (var file in files.Where(x => x.IsFile && (x.Name.EndsWith(".sh") || x.Name.EndsWith(".yml")) || x.Name == "bed")) { var content = await access.Read(file); From 18b7c82613eef954f8d06305b22bfc18fd445307 Mon Sep 17 00:00:00 2001 From: Marcel Baumgartner Date: Tue, 29 Aug 2023 15:03:07 +0200 Subject: [PATCH 10/12] Implemented ip filtering to detect datacenter and vpn ips --- Moonlight/App/Configuration/ConfigV1.cs | 8 ++ .../App/Services/Files/StorageService.cs | 105 ++++++++++-------- .../App/Services/IpVerificationService.cs | 91 +++++++++++++++ Moonlight/Moonlight.csproj | 1 + Moonlight/Program.cs | 1 + Moonlight/Shared/Layouts/MainLayout.razor | 58 ++++++---- 6 files changed, 194 insertions(+), 70 deletions(-) create mode 100644 Moonlight/App/Services/IpVerificationService.cs diff --git a/Moonlight/App/Configuration/ConfigV1.cs b/Moonlight/App/Configuration/ConfigV1.cs index 5f9b1b32..4964bbc4 100644 --- a/Moonlight/App/Configuration/ConfigV1.cs +++ b/Moonlight/App/Configuration/ConfigV1.cs @@ -304,6 +304,14 @@ public class ConfigV1 public int BlockIpDuration { get; set; } = 15; [JsonProperty("ReCaptcha")] public ReCaptchaData ReCaptcha { get; set; } = new(); + + [JsonProperty("BlockDatacenterIps")] + [Description("If this option is enabled, users with an ip from datacenters will not be able to access the panel")] + public bool BlockDatacenterIps { get; set; } = true; + + [JsonProperty("AllowCloudflareIps")] + [Description("Allow cloudflare ips to bypass the datacenter ip check")] + public bool AllowCloudflareIps { get; set; } = false; } public class ReCaptchaData diff --git a/Moonlight/App/Services/Files/StorageService.cs b/Moonlight/App/Services/Files/StorageService.cs index b1a50d9a..49fac176 100644 --- a/Moonlight/App/Services/Files/StorageService.cs +++ b/Moonlight/App/Services/Files/StorageService.cs @@ -15,14 +15,14 @@ public class StorageService Directory.CreateDirectory(PathBuilder.Dir("storage", "plugins")); await UpdateResources(); - + return; - if(IsEmpty(PathBuilder.Dir("storage", "resources"))) + if (IsEmpty(PathBuilder.Dir("storage", "resources"))) { Logger.Info("Default resources not found. Copying default resources"); - + CopyFilesRecursively( - PathBuilder.Dir("defaultstorage", "resources"), + PathBuilder.Dir("defaultstorage", "resources"), PathBuilder.Dir("storage", "resources") ); } @@ -30,9 +30,9 @@ public class StorageService if (IsEmpty(PathBuilder.Dir("storage", "configs"))) { Logger.Info("Default configs not found. Copying default configs"); - + CopyFilesRecursively( - PathBuilder.Dir("defaultstorage", "configs"), + PathBuilder.Dir("defaultstorage", "configs"), PathBuilder.Dir("storage", "configs") ); } @@ -40,64 +40,73 @@ public class StorageService private async Task UpdateResources() { - Logger.Info("Checking resources"); - - var client = new GitHubClient( - new ProductHeaderValue("Moonlight-Panel")); - - string user = "Moonlight-Panel"; - string repo = "Resources"; - string branch = "main"; - string resourcesDir = PathBuilder.Dir("storage", "resources"); - - async Task CopyDirectory(string dirPath, string localDir) + try { - IReadOnlyList contents; - - if(string.IsNullOrEmpty(dirPath)) - contents = await client.Repository.Content.GetAllContents(user, repo); - else - contents = await client.Repository.Content.GetAllContents(user, repo, dirPath); + Logger.Info("Checking resources"); - foreach (var content in contents) + var client = new GitHubClient( + new ProductHeaderValue("Moonlight-Panel")); + + var user = "Moonlight-Panel"; + var repo = "Resources"; + var resourcesDir = PathBuilder.Dir("storage", "resources"); + + async Task CopyDirectory(string dirPath, string localDir) { - string localPath = Path.Combine(localDir, content.Name); + IReadOnlyList contents; - if (content.Type == ContentType.File) + if (string.IsNullOrEmpty(dirPath)) + contents = await client.Repository.Content.GetAllContents(user, repo); + else + contents = await client.Repository.Content.GetAllContents(user, repo, dirPath); + + foreach (var content in contents) { - if(content.Name.EndsWith(".gitattributes")) - continue; - - if(File.Exists(localPath) && !content.Name.EndsWith(".lang")) - continue; + string localPath = Path.Combine(localDir, content.Name); - if (content.Name.EndsWith(".lang") && File.Exists(localPath) && - new FileInfo(localPath).Length == content.Size) + if (content.Type == ContentType.File) { - Logger.Info($"Skipped language file '{content.Name}'"); - continue; - } - - var fileContent = await client.Repository.Content.GetRawContent(user, repo, content.Path); - Directory.CreateDirectory(localDir); // Ensure the directory exists - await File.WriteAllBytesAsync(localPath, fileContent); + if (content.Name.EndsWith(".gitattributes")) + continue; - Logger.Debug($"Synced file '{content.Path}'"); - } - else if (content.Type == ContentType.Dir) - { - await CopyDirectory(content.Path, localPath); + if (File.Exists(localPath) && !content.Name.EndsWith(".lang")) + continue; + + if (content.Name.EndsWith(".lang") && File.Exists(localPath) && + new FileInfo(localPath).Length == content.Size) + continue; + + var fileContent = await client.Repository.Content.GetRawContent(user, repo, content.Path); + Directory.CreateDirectory(localDir); // Ensure the directory exists + await File.WriteAllBytesAsync(localPath, fileContent); + + Logger.Debug($"Synced file '{content.Path}'"); + } + else if (content.Type == ContentType.Dir) + { + await CopyDirectory(content.Path, localPath); + } } } + + await CopyDirectory("", resourcesDir); + } + catch (RateLimitExceededException) + { + Logger.Warn("Unable to sync resources due to your ip being rate-limited by github"); + } + catch (Exception e) + { + Logger.Warn("Unable to sync resources"); + Logger.Warn(e); } - - await CopyDirectory("", resourcesDir); } private bool IsEmpty(string path) { return !Directory.EnumerateFileSystemEntries(path).Any(); } + private static void CopyFilesRecursively(string sourcePath, string targetPath) { //Now Create all of the directories @@ -107,7 +116,7 @@ public class StorageService } //Copy all the files & Replaces any files with the same name - foreach (string newPath in Directory.GetFiles(sourcePath, "*.*",SearchOption.AllDirectories)) + foreach (string newPath in Directory.GetFiles(sourcePath, "*.*", SearchOption.AllDirectories)) { File.Copy(newPath, newPath.Replace(sourcePath, targetPath), true); } diff --git a/Moonlight/App/Services/IpVerificationService.cs b/Moonlight/App/Services/IpVerificationService.cs new file mode 100644 index 00000000..af67b523 --- /dev/null +++ b/Moonlight/App/Services/IpVerificationService.cs @@ -0,0 +1,91 @@ +using Moonlight.App.Helpers; +using Whois.NET; + +namespace Moonlight.App.Services; + +public class IpVerificationService +{ + private readonly ConfigService ConfigService; + + public IpVerificationService(ConfigService configService) + { + ConfigService = configService; + } + + public async Task IsDatacenterOrVpn(string ip) + { + if (!ConfigService.Get().Moonlight.Security.BlockDatacenterIps) + return false; + + if (string.IsNullOrEmpty(ip)) + return false; + + var datacenterNames = new List() + { + "amazon", + "aws", + "microsoft", + "azure", + "google", + "google cloud", + "gcp", + "digitalocean", + "linode", + "vultr", + "ovh", + "ovhcloud", + "alibaba", + "oracle", + "ibm cloud", + "bluehost", + "godaddy", + "rackpace", + "hetzner", + "tencent", + "scaleway", + "softlayer", + "dreamhost", + "a2 hosting", + "inmotion hosting", + "red hat openstack", + "kamatera", + "hostgator", + "siteground", + "greengeeks", + "liquidweb", + "joyent", + "aruba", + "interoute", + "fastcomet", + "rosehosting", + "lunarpages", + "fatcow", + "jelastic", + "datacamp" + }; + + if(!ConfigService.Get().Moonlight.Security.AllowCloudflareIps) + datacenterNames.Add("cloudflare"); + + try + { + var response = await WhoisClient.QueryAsync(ip); + var responseText = response.Raw.ToLower(); + + foreach (var name in datacenterNames) + { + if (responseText.Contains(name)) + { + Logger.Debug(name); + return true; + } + } + } + catch (Exception) + { + return false; + } + + return false; + } +} \ No newline at end of file diff --git a/Moonlight/Moonlight.csproj b/Moonlight/Moonlight.csproj index 7055763d..d5d61207 100644 --- a/Moonlight/Moonlight.csproj +++ b/Moonlight/Moonlight.csproj @@ -55,6 +55,7 @@ + diff --git a/Moonlight/Program.cs b/Moonlight/Program.cs index e866b418..e0b769d4 100644 --- a/Moonlight/Program.cs +++ b/Moonlight/Program.cs @@ -220,6 +220,7 @@ namespace Moonlight builder.Services.AddScoped(); builder.Services.AddScoped(); builder.Services.AddScoped(); + builder.Services.AddSingleton(); builder.Services.AddScoped(); builder.Services.AddSingleton(); diff --git a/Moonlight/Shared/Layouts/MainLayout.razor b/Moonlight/Shared/Layouts/MainLayout.razor index 0a75b787..5178124e 100644 --- a/Moonlight/Shared/Layouts/MainLayout.razor +++ b/Moonlight/Shared/Layouts/MainLayout.razor @@ -22,6 +22,7 @@ @inject DynamicBackgroundService DynamicBackgroundService @inject KeyListenerService KeyListenerService @inject ConfigService ConfigService +@inject IpVerificationService IpVerificationService @{ var uri = new Uri(NavigationManager.Uri); @@ -46,9 +47,35 @@ - @if (!IsIpBanned) + @if (UserProcessed) { - if (UserProcessed) + if (IsIpBanned) + { + + } + else if (IsIpSuspicious) + { + + } + else { if (uri.LocalPath != "/login" && uri.LocalPath != "/passwordreset" && @@ -102,19 +129,6 @@ } } } - else - { - - } } else { @@ -122,8 +136,8 @@ @@ -137,6 +151,7 @@ { private bool UserProcessed = false; private bool IsIpBanned = false; + private bool IsIpSuspicious = false; protected override async Task OnAfterRenderAsync(bool firstRender) { @@ -146,11 +161,6 @@ { DynamicBackgroundService.OnBackgroundImageChanged += async (_, _) => { await InvokeAsync(StateHasChanged); }; - IsIpBanned = await IpBanService.IsBanned(); - - if (IsIpBanned) - await InvokeAsync(StateHasChanged); - await Event.On("ipBan.update", this, async _ => { IsIpBanned = await IpBanService.IsBanned(); @@ -158,6 +168,10 @@ }); await IdentityService.Load(); + + IsIpBanned = await IpBanService.IsBanned(); + IsIpSuspicious = await IpVerificationService.IsDatacenterOrVpn(IdentityService.Ip); + UserProcessed = true; await InvokeAsync(StateHasChanged); From ea1910500624b4dc849a73de037371895a8c7559 Mon Sep 17 00:00:00 2001 From: Marcel Baumgartner Date: Tue, 29 Aug 2023 15:11:42 +0200 Subject: [PATCH 11/12] Fixed null server handling for the malware result event --- Moonlight/Shared/Views/Admin/Security/Malware.razor | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Moonlight/Shared/Views/Admin/Security/Malware.razor b/Moonlight/Shared/Views/Admin/Security/Malware.razor index 75effd28..a5f81d84 100644 --- a/Moonlight/Shared/Views/Admin/Security/Malware.razor +++ b/Moonlight/Shared/Views/Admin/Security/Malware.razor @@ -110,10 +110,13 @@ { await Event.On("malwareScan.status", this, async o => { await InvokeAsync(StateHasChanged); }); - await Event.On("malwareScan.result", this, async server => + await Event.On("malwareScan.result", this, async server => { lock (MalwareBackgroundScanService.ScanResults) { + if (server == null) + return; + ScanResults.Add(server, MalwareBackgroundScanService.ScanResults[server]); } From 762d3cc1a1a49a6c196e29880f3894b5f119f438 Mon Sep 17 00:00:00 2001 From: Marcel Baumgartner Date: Tue, 29 Aug 2023 15:54:37 +0200 Subject: [PATCH 12/12] Added new admin domain navigation --- .../Navigations/AdminDomainsNavigation.razor | 22 +++++ Moonlight/Shared/Layouts/DefaultLayout.razor | 29 +----- .../Shared/Views/Admin/Domains/Index.razor | 95 ++++++++++--------- .../Views/Admin/Domains/Shared/Index.razor | 73 +++++++------- 4 files changed, 113 insertions(+), 106 deletions(-) create mode 100644 Moonlight/Shared/Components/Navigations/AdminDomainsNavigation.razor diff --git a/Moonlight/Shared/Components/Navigations/AdminDomainsNavigation.razor b/Moonlight/Shared/Components/Navigations/AdminDomainsNavigation.razor new file mode 100644 index 00000000..a84dfa60 --- /dev/null +++ b/Moonlight/Shared/Components/Navigations/AdminDomainsNavigation.razor @@ -0,0 +1,22 @@ + + +@code +{ + [Parameter] + public int Index { get; set; } = 0; +} \ No newline at end of file diff --git a/Moonlight/Shared/Layouts/DefaultLayout.razor b/Moonlight/Shared/Layouts/DefaultLayout.razor index 34903537..8be2076c 100644 --- a/Moonlight/Shared/Layouts/DefaultLayout.razor +++ b/Moonlight/Shared/Layouts/DefaultLayout.razor @@ -187,38 +187,15 @@ else -