diff --git a/docs/images/10users-secA.png b/docs/images/10users-secA.png new file mode 100644 index 0000000..0060368 Binary files /dev/null and b/docs/images/10users-secA.png differ diff --git a/docs/images/10users-secB.png b/docs/images/10users-secB.png new file mode 100644 index 0000000..256e68e Binary files /dev/null and b/docs/images/10users-secB.png differ diff --git a/docs/images/2-10users-secA.png b/docs/images/2-10users-secA.png new file mode 100644 index 0000000..9fb1a46 Binary files /dev/null and b/docs/images/2-10users-secA.png differ diff --git a/docs/images/2-10users-secB.png b/docs/images/2-10users-secB.png new file mode 100644 index 0000000..cbf3bbf Binary files /dev/null and b/docs/images/2-10users-secB.png differ diff --git a/docs/images/2-25users-secA.png b/docs/images/2-25users-secA.png new file mode 100644 index 0000000..3a7c073 Binary files /dev/null and b/docs/images/2-25users-secA.png differ diff --git a/docs/images/2-25users-secB.png b/docs/images/2-25users-secB.png new file mode 100644 index 0000000..fd2921e Binary files /dev/null and b/docs/images/2-25users-secB.png differ diff --git a/docs/images/2-2users-secA.png b/docs/images/2-2users-secA.png new file mode 100644 index 0000000..73a477e Binary files /dev/null and b/docs/images/2-2users-secA.png differ diff --git a/docs/images/2-2users-secB.png b/docs/images/2-2users-secB.png new file mode 100644 index 0000000..769377c Binary files /dev/null and b/docs/images/2-2users-secB.png differ diff --git a/docs/images/2-5users-secA.png b/docs/images/2-5users-secA.png new file mode 100644 index 0000000..590f82d Binary files /dev/null and b/docs/images/2-5users-secA.png differ diff --git a/docs/images/2-5users-secB.png b/docs/images/2-5users-secB.png new file mode 100644 index 0000000..2934d90 Binary files /dev/null and b/docs/images/2-5users-secB.png differ diff --git a/docs/images/2users-secA.png b/docs/images/2users-secA.png new file mode 100644 index 0000000..50d9af9 Binary files /dev/null and b/docs/images/2users-secA.png differ diff --git a/docs/images/2users-secB.png b/docs/images/2users-secB.png new file mode 100644 index 0000000..dde2b7e Binary files /dev/null and b/docs/images/2users-secB.png differ diff --git a/docs/images/5users-secA.png b/docs/images/5users-secA.png new file mode 100644 index 0000000..f03313c Binary files /dev/null and b/docs/images/5users-secA.png differ diff --git a/docs/images/5users-secB.png b/docs/images/5users-secB.png new file mode 100644 index 0000000..6cbb607 Binary files /dev/null and b/docs/images/5users-secB.png differ diff --git a/docs/src/01_introduction_and_goals.adoc b/docs/src/01_introduction_and_goals.adoc index c179f5b..5a1d871 100644 --- a/docs/src/01_introduction_and_goals.adoc +++ b/docs/src/01_introduction_and_goals.adoc @@ -64,6 +64,10 @@ See https://docs.arc42.org/section-1/[Introduction and Goals] in the arc42 docum | Reliability | Ensure consistent and accurate question generation and user data management. | Performance | Optimize system response times and capacity to handle multiple user interactions simultaneously. | Security | Implement robust security measures to protect user data and prevent unauthorized access. +| Usability | Provide an intuitive and user-friendly interface to enhance user experience. +| Portability | Enable seamless deployment and operation across different environments and platforms. +| Testability | Facilitate comprehensive testing to ensure software correctness and identify potential issues early. +| Availability | Ensure system uptime and accessibility to meet user demands and minimize downtime. |=== @@ -109,15 +113,15 @@ These stakeholders determine the extent and the level of detail of your work and Table with role names, person names, and their expectations with respect to the architecture and its documentation. **** -[options="header",cols="1,2,2"] +[options="header",cols="1,3,2"] |=== | Role/Name | Contact | Expectations | Users | N/A | Intuitive and enjoyable quiz experience -| Professors | Pablo Gonzalez, Jose Labra | The well-designed web application that fulfills the requirements -| RTVE | Project Manager | Reliable and engaging platform for users -| HappySw Team | Development Team | Clear documentation and reliable system performance +| Professors | Pablo González (gonzalezgpablo@uniovi.es), Jose Emilio Labra (labra@uniovi.es) | The well-designed web application that fulfills the requirements +| RTVE | www.rtve.es | Reliable and engaging platform for users +| Development | Sergio Truébano Robles (uo289930@uniovi.es), Pedro Limeres Granado (uo282763@uniovi.es), Alberto Guerra Rodas (uo282421@uniovi.es), Ángel Macías Rodríguez (uo289362@uniovi.es), Rita Fernández-Catuxo Ortiz (uo284185@uniovi.es), Vira Terletska (uo305097@uniovi.es), Sergio Llenderrozos Piñera (uo283367@uniovi.es) | Clear documentation and reliable, performant and available system |=== diff --git a/docs/src/02_architecture_constraints.adoc b/docs/src/02_architecture_constraints.adoc index 7ba8dea..c55f5a9 100644 --- a/docs/src/02_architecture_constraints.adoc +++ b/docs/src/02_architecture_constraints.adoc @@ -6,6 +6,8 @@ ifndef::imagesdir[:imagesdir: ../images] When designing the WIQ application, there are several constraints that must be taken into consideration, as they will have a significant impact on the overall design of the application and the architectural decisions. These constraints must be considered in order to ensure that the final product meets the needs and expectations of the users and stakeholders. The following table summarizes these constraints and provides a brief explanation for each one divided into technical, organizational and political constraints. === Technical constraints + +[options="header"] |=== |Constraint|Explanation | WikiData | Our application must generate questions automatically getting data from WikiData @@ -15,6 +17,8 @@ When designing the WIQ application, there are several constraints that must be t |=== === Organizational constraints + +[options="header"] |=== |Constraint|Explanation | Team | The project will be done in a team composed of 7 students, so work must be assigned accordingly. @@ -24,6 +28,8 @@ When designing the WIQ application, there are several constraints that must be t |=== === Political constraints + +[options="header"] |=== |Constraint|Explanation | Documentation | We are going to use AsciiDoc and follow the Arc42 template. diff --git a/docs/src/03_system_scope_and_context.adoc b/docs/src/03_system_scope_and_context.adoc index b583855..27c6ea7 100644 --- a/docs/src/03_system_scope_and_context.adoc +++ b/docs/src/03_system_scope_and_context.adoc @@ -50,7 +50,7 @@ The title of the table is the name of your system, the three columns contain the image::03_business_context.png["Business Context Diagram"] -[cols="1,1,1" options="header"] +[cols="1,1,1", options="header"] |=== | **Partner** | **Input** | **Output** | User | The user interacts with the WIQ web application using the front-end of the application. | The display of a page of the application with the questions and statistics. @@ -77,7 +77,7 @@ together with a mapping table showing the relationships between channels and inp **** .Table of the Technical Context -[cols="2,2"] +[cols="2,2", options="header"] |=== | **Component** | **Technologies Used** | Front-end | HTML, CSS (Tailwind), JavaScript (React) @@ -93,7 +93,7 @@ image::3_2-Technical-Context-Diagram-EN.png["Technical Context"] .Mapping Input/Output to Channels -[cols="2,2"] +[cols="2,2", options="header"] |=== | **Component** | **Functionality** | Front-end | User interaction and results display. diff --git a/docs/src/04_solution_strategy.adoc b/docs/src/04_solution_strategy.adoc index e5c9319..054485f 100644 --- a/docs/src/04_solution_strategy.adoc +++ b/docs/src/04_solution_strategy.adoc @@ -42,6 +42,9 @@ See https://docs.arc42.org/section-4/[Solution Strategy] in the arc42 documentat * *npm*: default package manager for Node.js, providing a command-line interface to install, manage, and publish JavaScript packages. With over a million packages available in its registry, npm simplifies adding functionality to Node.js projects by handling dependencies and providing tools for versioning and publishing packages. * *Docker*: platform that will be used for deploying our services inside containers. Containers are lightweight, portable, and self-sufficient units that contain everything needed to run an application, including the code, runtime, system tools, libraries, and settings. Docker enables developers to package their applications along with all dependencies into containers, ensuring consistency across different environments, such as development, testing, and production. * *GitHub Actions*: built-in automation tool on GitHub that allows us to automate some workflows that are triggered after some specific github branches actions at development. It provides as continuous integration of the game functionality. +* *Gatling*: Load test tool that allows us to record some user interaction from our application and simulate it as if various differnet users were accessing the application. +* *Prometheus*: monitoring and alerting toolkit designed for reliability and scalability. It collects metrics from configured targets at specified intervals, stores them efficiently, and provides a powerful query language for analyzing and alerting on these metrics. It's particularly well-suited for dynamic environments like cloud-native applications and microservices architectures. +* *Grafana*: open-source platform for monitoring and observability, providing customizable dashboards and visualization tools for analyzing metrics, logs, and other data sources. It allows users to create dynamic, interactive dashboards to monitor the health and performance of their systems and applications. === Technological decisions @@ -54,7 +57,9 @@ As a conclusion, it was worth spending time making the migration for reducing th * *Microservices*: is an architectural style that structures an application as a collection of loosely coupled services. Each service is independently deployable, scalable, and can be developed using different programming languages, frameworks, or databases. In a microservices architecture, each service typically represents a specific business function or capability and communicates with other services through well-defined APIs. This enables teams to work independently on different parts of the application, allowing us to divide the work into different teams avoiding bottlenecks during production. -* *APIs*: using microservices architecture enforces us to isolate each of the microservices and create well-defined interfaces for accesing those microservices from common gateway, reducing dependencies between services and allowing them to evolve independently. Well-defined interfaces imply not only services independance, but also team members independecance since nobody will need to wait for others for starting working themselves. +* *API Gateway*: centralized service that acts as an intermediary between clients and microservices. It serves as a single entry point for all client requests, providing various functionalities by means of routing and redirecting to the specific service in charge of that request They play a crucial role in building scalable and efficient distributed systems by abstracting away complexities and providing a unified interface for clients to interact with all available services. +* *API*: using microservices architecture enforces us to isolate each of the microservices and create well-defined interfaces for accesing those microservices from common gateway, reducing dependencies between services and allowing them to evolve independently. Well-defined interfaces imply not only services' independance, but also team members independecance since nobody will need to wait for others for starting working themselves. + === Team Organization diff --git a/docs/src/06_runtime_view.adoc b/docs/src/06_runtime_view.adoc index c595a83..3ac1997 100644 --- a/docs/src/06_runtime_view.adoc +++ b/docs/src/06_runtime_view.adoc @@ -55,11 +55,12 @@ collections FrontEnd collections WikidataService database Wikidata -User -> FrontEnd: Start Game -FrontEnd -> WikidataService: "/GetQuestions" + WikidataService-> Wikidata: Sparql query Wikidata-> WikidataService : entitites data WikidataService-> WikidataService: createQuestions() +User -> FrontEnd: Start Game +FrontEnd -> WikidataService: "/GetQuestions" WikidataService-> FrontEnd: Send 10 questions FrontEnd -> User: Question 1 User-> FrontEnd: Answer 1 diff --git a/docs/src/07_deployment_view.adoc b/docs/src/07_deployment_view.adoc index eb5b547..6b0de86 100644 --- a/docs/src/07_deployment_view.adoc +++ b/docs/src/07_deployment_view.adoc @@ -5,6 +5,44 @@ ifndef::imagesdir[:imagesdir: ../images] == Deployment View +[role="arc42help"] +**** +.Content +The deployment view describes: + + 1. technical infrastructure used to execute your system, with infrastructure elements like geographical locations, environments, computers, processors, channels and net topologies as well as other infrastructure elements and + +2. mapping of (software) building blocks to that infrastructure elements. + +Often systems are executed in different environments, e.g. development environment, test environment, production environment. In such cases you should document all relevant environments. + +Especially document a deployment view if your software is executed as distributed system with more than one computer, processor, server or container or when you design and construct your own hardware processors and chips. + +From a software perspective it is sufficient to capture only those elements of an infrastructure that are needed to show a deployment of your building blocks. Hardware architects can go beyond that and describe an infrastructure to any level of detail they need to capture. + +.Motivation +Software does not run without hardware. +This underlying infrastructure can and will influence a system and/or some +cross-cutting concepts. Therefore, there is a need to know the infrastructure. + +.Form + +Maybe a highest level deployment diagram is already contained in section 3.2. as +technical context with your own infrastructure as ONE black box. In this section one can +zoom into this black box using additional deployment diagrams: + +* UML offers deployment diagrams to express that view. Use it, probably with nested diagrams, +when your infrastructure is more complex. +* When your (hardware) stakeholders prefer other kinds of diagrams rather than a deployment diagram, let them use any kind that is able to show nodes and channels of the infrastructure. + + +.Further Information + +See https://docs.arc42.org/section-7/[Deployment View] in the arc42 documentation. + +**** + + Our project is configurated using GitHub actions in such a way that every release that is made will trigger some unitary and end to end test, and an attempt to deploy the application over a server. This will allow our team to achieve continuous deployment and delivery. @@ -24,9 +62,9 @@ Using your Azure account: ** `DEPLOY_USER` does not need to be changed * Once the virtual machine is created and the repository is configured, go to Network Settings and add extra rules: -** Open port number 3000 for user services -** Open port number 8000 for accessing the web application -*** More services will be available in the future, so discussions will be made for additional ports supporting our services. +** Open port number 80 for accesing the web application, or 443 in case HTTPS is used +** Open port number 8000 for giving access to the API gateway +** Open port number 9091 for giving access to monitoring the application checking some Grafana data * Configure the virtual machine connecting through SSH for using Docker: ** Use some tool for connecting to the server using SSH (PuTTY, MobaXterm...) @@ -130,6 +168,10 @@ frame Azure { } } +cloud WikidataDB{ + +} + frame GitHub{ frame GitHubActions{ @@ -145,7 +187,8 @@ frame GitHub{ WebAPP -- APIGateway : port 8000 Wikidata -- WikidataAPI: port 8001 -Users -- UsersAPI : port 8002 +WikidataAPI -- WikidataDB: query.wikidata.org/sparql +Users -- UsersAPI : port 8003 UsersAPI -- UsersDatabase : MongoDB (port 27017) client -- WebAPP : Web Browser (port 3000) @@ -156,72 +199,6 @@ Docker -- wiq_en3a === Infrastructure Level 1 - Azure Ubuntu Server -The Ubuntu server allows us to have a isolated machine with the minimal required configuration and installations for running our services. -Having our server on Azure, allows us to minimize the costs of having that machine running, as well as to avoid taking care of some responsabilities such as security, availability or maintainance. - - -=== Infrastructure Level 2 - Docker - -Instead of having a virtual machine for running the whole application by itself, the application is splitted into different services that can be completely isolated. -Docker allows us to create containers with the minimum amount of resources needed for running that specific service, such that resources are not wasted and services that could be more used do not collapse others. Each container contains the specific docker image for running the specific service. -Each implemented service will be isolated at deploy time, so there is no need of making the services at the same programming language or following the same architectural patterns, and responses will be responded through different independent endpoints. - -The virtual machine will contain as many containers as services in the application. - -For now, the project contains: -** Web application service running on port 3000 -** Gateway (middleware) service running on port 8000 -** Wikidata API running on port 8001 -** Users API running on port 8002 -** Mongo DB server running on port 27017 -** Prometheus running on port 9090 for monitoring -** Grafana running on port 9091 for analytics and monitoring - - -=== Infrastructure Level 3 - GitHub actions - -GitHub actions will provide us with continuous automatic delivery and integration, automating the deployment phase at each release. - - -[role="arc42help"] -**** -.Content -The deployment view describes: - - 1. technical infrastructure used to execute your system, with infrastructure elements like geographical locations, environments, computers, processors, channels and net topologies as well as other infrastructure elements and - -2. mapping of (software) building blocks to that infrastructure elements. - -Often systems are executed in different environments, e.g. development environment, test environment, production environment. In such cases you should document all relevant environments. - -Especially document a deployment view if your software is executed as distributed system with more than one computer, processor, server or container or when you design and construct your own hardware processors and chips. - -From a software perspective it is sufficient to capture only those elements of an infrastructure that are needed to show a deployment of your building blocks. Hardware architects can go beyond that and describe an infrastructure to any level of detail they need to capture. - -.Motivation -Software does not run without hardware. -This underlying infrastructure can and will influence a system and/or some -cross-cutting concepts. Therefore, there is a need to know the infrastructure. - -.Form - -Maybe a highest level deployment diagram is already contained in section 3.2. as -technical context with your own infrastructure as ONE black box. In this section one can -zoom into this black box using additional deployment diagrams: - -* UML offers deployment diagrams to express that view. Use it, probably with nested diagrams, -when your infrastructure is more complex. -* When your (hardware) stakeholders prefer other kinds of diagrams rather than a deployment diagram, let them use any kind that is able to show nodes and channels of the infrastructure. - - -.Further Information - -See https://docs.arc42.org/section-7/[Deployment View] in the arc42 documentation. - -**** - -=== Infrastructure Level 1 - [role="arc42help"] **** Describe (usually in a combination of diagrams, tables, and text): @@ -232,7 +209,6 @@ Describe (usually in a combination of diagrams, tables, and text): * mapping of software artifacts to elements of this infrastructure For multiple environments or alternative deployments please copy and adapt this section of arc42 for all relevant environments. -**** _****_ @@ -246,16 +222,20 @@ __ Mapping of Building Blocks to Infrastructure:: __ +**** + +The Ubuntu server allows us to have a isolated machine with the minimal required configuration and installations for running our services. +Having our server on Azure, allows us to minimize the costs of having that machine running, as well as to avoid taking care of some responsabilities such as security, availability or maintainance. -=== Infrastructure Level 2 +=== Infrastructure Level 2 - Docker [role="arc42help"] **** Here you can include the internal structure of (some) infrastructure elements from level 1. Please copy the structure from level 1 for each selected element. -**** + ==== __ @@ -270,5 +250,45 @@ __ ==== __ __ +**** + +Instead of having a virtual machine for running the whole application by itself, the application is splitted into different services that can be completely isolated. +Docker allows us to create containers with the minimum amount of resources needed for running that specific service, such that resources are not wasted and services that could be more used do not collapse others. Each container contains the specific docker image for running the specific service. +Each implemented service will be isolated at deploy time, so there is no need of making the services at the same programming language or following the same architectural patterns, and responses will be responded through different independent endpoints. + +The virtual machine will contain as many containers as services in the application. + +For now, the project contains: +** Web application service running on port 3000 +** Gateway (middleware) service running on port 8000 +** Wikidata API running on port 8001 +** Users API running on port 8003 +** Mongo DB server running on port 27017 +** Prometheus running on port 9090 for monitoring +** Grafana running on port 9091 for analytics and monitoring +=== Infrastructure Level 3 - GitHub actions + +GitHub actions will provide us with continuous automatic delivery and integration, automating the deployment phase at each release. + +=== Motivation + +In the deployment view of our software architecture, we delineate the physical deployment of our system components across various environments. +At the core of our deployment strategy is the utilization of cloud-based infrastructure, specifically leveraging Azure for its robustness and scalability. +Our server components, including web applications, gateway, user services, and MongoDB servers, are encapsulated within Docker containers to ensure portability and consistency across deployments. +Additionally, we employ Azure's built-in services for auto-scaling, and traffic management to optimize performance and reliability. +Continuous integration and deployment pipelines are established using tools like Jenkins or Azure DevOps, facilitating seamless updates and releases of our system components. +Monitoring and logging solutions, such as Prometheus and Grafana, are integrated to provide insights into system health and performance. +Overall, our deployment view showcases a resilient, scalable, and automated deployment architecture tailored to meet the demands of our system's evolving requirements. + +=== Mapping of Building Blocks into Infrastructure + +[cols="1,2" options="header"] +|=== +| **Name** | **Responsibility** +| Frontend | Web App container opened in port 3000. +| User Management | User service container. +| Wikidata Service | Wikidata service container. +| Gateway | API Gateway service opened in port 8000. +|=== \ No newline at end of file diff --git a/docs/src/08_concepts.adoc b/docs/src/08_concepts.adoc index 6794bf4..adc35d3 100644 --- a/docs/src/08_concepts.adoc +++ b/docs/src/08_concepts.adoc @@ -86,7 +86,7 @@ In our app, the question is always represent as a data structure with the next f We decided to use a color palette of 4 colors: -[cols="1,1"] +[cols="1,1", options="header"] |=== | Name | Color | Background | +++#191919+++ @@ -110,19 +110,74 @@ The chosen color palette strikes a balance between functionality, aesthetics, an === Development concepts -==== Testing -We test the application with these different tests: +==== Testing and Monitoring - Unit Testing: We employed the SonarCloud tool to monitor the code covered by these tests, while Continuous Integration practices were implemented using GitHub Actions. - - Load Testing: We used Gattling for measuring the performance of the application when many users are using it. + - Load Testing and Monitoring: We used Gattling for recording user simulations that consist on login into the application, playing the existing game modes and checking the statistics and leaderboards. Then, Gatling allowed us to also measure the performance of the application and the average response times when creating 2, 5, 10 and 25 users per second during 60 seconds performing the previously mentioned simulations, using 2 different Azure machines. + Particularly, load testing has been performed using a 1-cpu machine with almost 1GB of RAM memory and also, using a 2-cpu machine with 8GB of RAM memory. + + ** 1-cpu machine + + With this machine all requests were answered quickly when 2 users per second where created (120 users in total) with almost all requests responding in less than 1 second with a minimum response time of just 24 milliseconds and a maximum reponse time of 1.6 seconds. + +image::2users-secA.png["2 users per second in 60 seconds user-simulation overall results with 1-cpu machine"] +image::2users-secB.png["2 users per second in 60 seconds user-simulation specific graph results with 1-cpu machine"] + + When creating 5 users per second (350 users in total), the responses took almost all of them (around 80%) less than a second with a minimum response time of 24 milliseconds, but with a maximum response time of 10 seconds which is a huge amount of time for a web application. + +image::5users-secA.png["5 users per second in 60 seconds user-simulation overall results with 1-cpu machine"] +image::5users-secB.png["5 users per second in 60 seconds user-simulation specific graph results with 1-cpu machine"] + + Unfortunately, when creating a load of 10 user per second (600 users in total) 41% of the responses were failling and around 70% of the responses where failing or taking more than a second to be answered. For sure, when creating even more load, almost all response were going to fail. + +image::10users-secA.png["10 users per second in 60 seconds user-simulation overall results with 1-cpu machine"] +image::10users-secB.png["10 users per second in 60 seconds user-simulation specific graph results with 1-cpu machine"] + + With this 1-cpu and 1GB of RAM azure machine we could afford around 200 hundred users making constant resquests without having a denial of service and providing reasonable requests' response times. + + ** 2-cpu machine + + With this machine all requests were answered quickly when 2 users per second where created (120 users in total) with almost all requests responding in less than 1 second with a minimum response time of just 24 milliseconds and a maximum reponse time of 1.8 seconds. + +image::2-2users-secA.png["2 users per second in 60 seconds user-simulation overall results"] +image::2-2users-secB.png["2 users per second in 60 seconds user-simulation specific graph results"] + + When creating 5 users per second (350 users in total), the responses took almost all of them (around 80%) less than a second with a minimum response time of 24 milliseconds, but with a maximum response time of 10 seconds which is exactly the same time we obtained with the other machine and a similar mean response time. + +image::2-5users-secA.png["5 users per second in 60 seconds user-simulation overall results with 2-cpu machine"] +image::2-5users-secB.png["5 users per second in 60 seconds user-simulation specific graph results with 2-cpu machine"] + + When creating a load of 10 user per second (600 users in total), no response failed although the maximum response time was 58 seconds with a mean response time of 2 seconds, which meant that almost every respone took less than a second. + +image::2-10users-secA.png["10 users per second in 60 seconds user-simulation overall results with 2-cpu machine"] +image::2-10users-secB.png["10 users per second in 60 seconds user-simulation specific graph results with 2-cpu machine"] + + Finally, when creating a load of 25 user per second (1500 users in total), just a 7% of the total amount of response failed and the maximum response time was 60 seconds with a mean response time of 5 seconds. + +image::2-10users-secA.png["25 users per second in 60 seconds user-simulation overall results with 2-cpu machine"] +image::2-10users-secB.png["25 users per second in 60 seconds user-simulation specific graph results with 2-cpu machine"] + + Using this 2-cpu and 8GB machine, response times are not enhaced when using more powerfull hardware and most of the work should be done programatically by improving our software. + But better hardware allows us to support much more load on the application, which means more users playing at the same time. This time, we could support more 400, but less than 800 simultaneous users. + Taking a look at the specific graph results of each of thesimulations performed, most of load is always provoked at the beggining of the simulation when the users have to login. + Then, when users are playing some games the amount of response is reduced a lot since all the information for playing the game is asked at the beggining. + + As a general conclusion, following the azure payment plan for virtual machines: With low load requirements and just paying around 35$ each month we could afford a 1-cpu and 1GB RAM memory web server supporting around 200 simultaneous users using the application at the same time. + On the contrary, if higher load requirements are needed and paying around 100$ for a 2-cpu and 8GB of RAM memory server, the amount of supported users is more than duplicated supporting more than 400 simultaneous users. + + - E2e Testing: We used behavior-driven development scenarios written in the Gherking language as a basis for our end-to-end tests. ==== Deployment The application is deployed using Docker. ==== Configurability -The application will not have configurable features. An early idea was to include a "dark mode". -Through the development we decided to postpone these ideas in order to focus on a better application in general. - - -... +The application has simple configurable game features for selecting between two game modes (normal/usual and trivia game mode) and two difficulty levels (easy and hard difficulties). + - Normal mode game consists of 10 random questions with an amount of time to answer the question before losing the possibility to answer. Easy and hard modes differ on the amount of time that the user has to answer the question. + - Trivia mode game consists of 10 questions, which are generated based on the resulting category of rolling a dice. There are 6 possible categories: sports, science, history, geography and entertainment. +Additionally, there is an option at the main application view where random music can be played. + +==== Data access +The development team has followed two different approaches for supporting data access from the running application for development and production. +While developing the application, teh development team decided to create a shared database located in the cloud which allowed us to work locally with the same data by means of a key string. +In order to move our application into production by means of deploying it into an Azure virtual machine running with Docker containers, the development team created a mongodb container with an associated volumen for making the data persistent. diff --git a/docs/src/09_architecture_decisions.adoc b/docs/src/09_architecture_decisions.adoc index 77c6a0a..97dcabf 100644 --- a/docs/src/09_architecture_decisions.adoc +++ b/docs/src/09_architecture_decisions.adoc @@ -9,6 +9,7 @@ If you want a description about each of the technologies we have chosen, go to t The following table contains the most interesting the design decisions that we have taken with their advantages and disadvantages: .Architectural Records +[cols="1,1,2,2", options="header"] |=== |Code|Decision|Advantages|Disadvantages |ADR1| React.js | Quite easy to learn in comparison to other front-end libraries. Increasingly popular in the web.| Not all of us know about its usage diff --git a/docs/src/10_quality_requirements.adoc b/docs/src/10_quality_requirements.adoc index f6a48cd..9cb6f46 100644 --- a/docs/src/10_quality_requirements.adoc +++ b/docs/src/10_quality_requirements.adoc @@ -76,7 +76,7 @@ Tabular or free form text. *Usage scenarios* -[options="header", cols="1,1,1,1"] +[options="header", cols="1,2,2,2"] |=== | Quality goal | Motivation | Usage scenario | Priority @@ -120,7 +120,7 @@ Tabular or free form text. *Change scenarios* -[options="header", cols="1,1,1,1"] +[options="header", cols="1,2,2,2"] |=== | Quality goal | Motivation | Change scenario | Priority | *Maintainability* @@ -128,9 +128,4 @@ Tabular or free form text. | When developers must introduce a new feature to the web, they should be able to do it without changing the software architecture. | High -| *Maintainability* -| An application should be maintainable to remain usable over the years and to be able to improve functionalities and to fix misfunctionalities. -| When fixing errors and bugs on the system, developers should be able to do it without major consequences on the system. -| High - |=== \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/index.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/index.html new file mode 100644 index 0000000..d89eeaa --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/index.html @@ -0,0 +1,1159 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - Global Information + + + +
+
+
+
+ + + Documentation +
+ + Try + Gatling Enterprise + Gatling Enterprise + + +
+
+ +
+
+
+
+ RecordedSimulation +
+
+
+ + +
+
+
+
+
+
+ + +
+ +
+
+ +
+
+
+
+
+ Gatling Version + + Version: + 3.10.5 + + + Released: + 2024-03-22 + +
+
+ Run Information +
+ + Date: + 2024-04-25 17:09:28 GMT + + + Duration: + 10m 1s + + + Description: + Load testing (10 users/sec in 60sec - machine 1 cpu) + + +
+
+
+
+ +
+ +
+ +
+
+
+
+
+ + + +
+
+
+ +
+
+
+ +
+
+
+ +
+
+
+ +
+
+
+ +
+
+
+
+
+
+ +
+ + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/all_sessions.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/all_sessions.js new file mode 100644 index 0000000..3796ac9 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/all_sessions.js @@ -0,0 +1,11 @@ +allUsersData = { + +color: '#FFA900', +name: 'Active Users', +data: [ + [1714064968000,11],[1714064969000,22],[1714064970000,33],[1714064971000,41],[1714064972000,51],[1714064973000,59],[1714064974000,64],[1714064975000,75],[1714064976000,89],[1714064977000,97],[1714064978000,106],[1714064979000,114],[1714064980000,125],[1714064981000,136],[1714064982000,148],[1714064983000,157],[1714064984000,172],[1714064985000,186],[1714064986000,194],[1714064987000,199],[1714064988000,206],[1714064989000,213],[1714064990000,225],[1714064991000,236],[1714064992000,242],[1714064993000,251],[1714064994000,262],[1714064995000,273],[1714064996000,283],[1714064997000,287],[1714064998000,297],[1714064999000,314],[1714065000000,319],[1714065001000,329],[1714065002000,334],[1714065003000,351],[1714065004000,366],[1714065005000,381],[1714065006000,386],[1714065007000,394],[1714065008000,403],[1714065009000,420],[1714065010000,426],[1714065011000,436],[1714065012000,444],[1714065013000,453],[1714065014000,464],[1714065015000,476],[1714065016000,481],[1714065017000,492],[1714065018000,498],[1714065019000,508],[1714065020000,525],[1714065021000,532],[1714065022000,547],[1714065023000,556],[1714065024000,569],[1714065025000,575],[1714065026000,582],[1714065027000,593],[1714065028000,593],[1714065029000,593],[1714065030000,593],[1714065031000,593],[1714065032000,593],[1714065033000,593],[1714065034000,593],[1714065035000,593],[1714065036000,593],[1714065037000,593],[1714065038000,593],[1714065039000,593],[1714065040000,593],[1714065041000,593],[1714065042000,593],[1714065043000,593],[1714065044000,593],[1714065045000,593],[1714065046000,593],[1714065047000,593],[1714065048000,593],[1714065049000,593],[1714065050000,593],[1714065051000,593],[1714065052000,593],[1714065053000,593],[1714065054000,593],[1714065055000,593],[1714065056000,593],[1714065057000,593],[1714065058000,593],[1714065059000,593],[1714065060000,593],[1714065061000,593],[1714065062000,593],[1714065063000,593],[1714065064000,593],[1714065065000,593],[1714065066000,593],[1714065067000,593],[1714065068000,593],[1714065069000,593],[1714065070000,593],[1714065071000,593],[1714065072000,593],[1714065073000,593],[1714065074000,593],[1714065075000,593],[1714065076000,593],[1714065077000,593],[1714065078000,593],[1714065079000,593],[1714065080000,593],[1714065081000,593],[1714065082000,593],[1714065083000,593],[1714065084000,593],[1714065085000,593],[1714065086000,593],[1714065087000,593],[1714065088000,593],[1714065089000,593],[1714065090000,593],[1714065091000,593],[1714065092000,593],[1714065093000,593],[1714065094000,593],[1714065095000,593],[1714065096000,593],[1714065097000,593],[1714065098000,593],[1714065099000,593],[1714065100000,593],[1714065101000,593],[1714065102000,593],[1714065103000,593],[1714065104000,593],[1714065105000,593],[1714065106000,593],[1714065107000,593],[1714065108000,593],[1714065109000,593],[1714065110000,593],[1714065111000,593],[1714065112000,593],[1714065113000,593],[1714065114000,593],[1714065115000,593],[1714065116000,593],[1714065117000,593],[1714065118000,593],[1714065119000,593],[1714065120000,593],[1714065121000,593],[1714065122000,593],[1714065123000,593],[1714065124000,593],[1714065125000,593],[1714065126000,593],[1714065127000,593],[1714065128000,593],[1714065129000,593],[1714065130000,593],[1714065131000,593],[1714065132000,593],[1714065133000,593],[1714065134000,593],[1714065135000,593],[1714065136000,593],[1714065137000,593],[1714065138000,593],[1714065139000,593],[1714065140000,593],[1714065141000,593],[1714065142000,593],[1714065143000,593],[1714065144000,593],[1714065145000,593],[1714065146000,593],[1714065147000,593],[1714065148000,593],[1714065149000,593],[1714065150000,593],[1714065151000,593],[1714065152000,593],[1714065153000,593],[1714065154000,593],[1714065155000,593],[1714065156000,593],[1714065157000,593],[1714065158000,593],[1714065159000,593],[1714065160000,593],[1714065161000,593],[1714065162000,593],[1714065163000,593],[1714065164000,593],[1714065165000,593],[1714065166000,593],[1714065167000,593],[1714065168000,593],[1714065169000,593],[1714065170000,593],[1714065171000,593],[1714065172000,593],[1714065173000,593],[1714065174000,593],[1714065175000,593],[1714065176000,593],[1714065177000,593],[1714065178000,593],[1714065179000,593],[1714065180000,593],[1714065181000,593],[1714065182000,593],[1714065183000,593],[1714065184000,593],[1714065185000,593],[1714065186000,593],[1714065187000,593],[1714065188000,593],[1714065189000,593],[1714065190000,593],[1714065191000,593],[1714065192000,593],[1714065193000,593],[1714065194000,593],[1714065195000,593],[1714065196000,593],[1714065197000,588],[1714065198000,588],[1714065199000,588],[1714065200000,588],[1714065201000,584],[1714065202000,579],[1714065203000,579],[1714065204000,578],[1714065205000,578],[1714065206000,575],[1714065207000,574],[1714065208000,574],[1714065209000,574],[1714065210000,569],[1714065211000,566],[1714065212000,566],[1714065213000,563],[1714065214000,562],[1714065215000,562],[1714065216000,562],[1714065217000,551],[1714065218000,518],[1714065219000,518],[1714065220000,514],[1714065221000,513],[1714065222000,511],[1714065223000,507],[1714065224000,507],[1714065225000,506],[1714065226000,494],[1714065227000,492],[1714065228000,490],[1714065229000,489],[1714065230000,472],[1714065231000,458],[1714065232000,457],[1714065233000,452],[1714065234000,418],[1714065235000,406],[1714065236000,396],[1714065237000,394],[1714065238000,394],[1714065239000,391],[1714065240000,387],[1714065241000,382],[1714065242000,378],[1714065243000,377],[1714065244000,377],[1714065245000,371],[1714065246000,363],[1714065247000,345],[1714065248000,334],[1714065249000,318],[1714065250000,313],[1714065251000,313],[1714065252000,313],[1714065253000,310],[1714065254000,310],[1714065255000,310],[1714065256000,305],[1714065257000,304],[1714065258000,303],[1714065259000,301],[1714065260000,301],[1714065261000,300],[1714065262000,299],[1714065263000,282],[1714065264000,271],[1714065265000,271],[1714065266000,271],[1714065267000,271],[1714065268000,266],[1714065269000,265],[1714065270000,265],[1714065271000,262],[1714065272000,260],[1714065273000,253],[1714065274000,248],[1714065275000,248],[1714065276000,246],[1714065277000,246],[1714065278000,245],[1714065279000,243],[1714065280000,238],[1714065281000,238],[1714065282000,238],[1714065283000,238],[1714065284000,237],[1714065285000,237],[1714065286000,236],[1714065287000,236],[1714065288000,236],[1714065289000,236],[1714065290000,236],[1714065291000,236],[1714065292000,236],[1714065293000,235],[1714065294000,235],[1714065295000,234],[1714065296000,232],[1714065297000,231],[1714065298000,231],[1714065299000,228],[1714065300000,228],[1714065301000,228],[1714065302000,228],[1714065303000,228],[1714065304000,228],[1714065305000,226],[1714065306000,223],[1714065307000,223],[1714065308000,210],[1714065309000,210],[1714065310000,205],[1714065311000,196],[1714065312000,195],[1714065313000,192],[1714065314000,191],[1714065315000,191],[1714065316000,190],[1714065317000,190],[1714065318000,190],[1714065319000,187],[1714065320000,186],[1714065321000,186],[1714065322000,186],[1714065323000,184],[1714065324000,184],[1714065325000,184],[1714065326000,184],[1714065327000,184],[1714065328000,184],[1714065329000,184],[1714065330000,184],[1714065331000,184],[1714065332000,184],[1714065333000,184],[1714065334000,184],[1714065335000,184],[1714065336000,184],[1714065337000,184],[1714065338000,184],[1714065339000,184],[1714065340000,184],[1714065341000,184],[1714065342000,184],[1714065343000,184],[1714065344000,184],[1714065345000,184],[1714065346000,184],[1714065347000,184],[1714065348000,183],[1714065349000,183],[1714065350000,183],[1714065351000,183],[1714065352000,182],[1714065353000,181],[1714065354000,181],[1714065355000,181],[1714065356000,180],[1714065357000,178],[1714065358000,177],[1714065359000,177],[1714065360000,177],[1714065361000,177],[1714065362000,177],[1714065363000,177],[1714065364000,173],[1714065365000,155],[1714065366000,142],[1714065367000,141],[1714065368000,141],[1714065369000,141],[1714065370000,141],[1714065371000,141],[1714065372000,141],[1714065373000,141],[1714065374000,141],[1714065375000,141],[1714065376000,141],[1714065377000,141],[1714065378000,140],[1714065379000,140],[1714065380000,140],[1714065381000,140],[1714065382000,140],[1714065383000,140],[1714065384000,140],[1714065385000,140],[1714065386000,140],[1714065387000,140],[1714065388000,140],[1714065389000,140],[1714065390000,140],[1714065391000,140],[1714065392000,140],[1714065393000,140],[1714065394000,140],[1714065395000,139],[1714065396000,139],[1714065397000,139],[1714065398000,139],[1714065399000,139],[1714065400000,139],[1714065401000,139],[1714065402000,139],[1714065403000,139],[1714065404000,139],[1714065405000,139],[1714065406000,139],[1714065407000,139],[1714065408000,137],[1714065409000,137],[1714065410000,137],[1714065411000,137],[1714065412000,136],[1714065413000,136],[1714065414000,135],[1714065415000,120],[1714065416000,120],[1714065417000,120],[1714065418000,120],[1714065419000,120],[1714065420000,103],[1714065421000,99],[1714065422000,99],[1714065423000,99],[1714065424000,99],[1714065425000,99],[1714065426000,99],[1714065427000,99],[1714065428000,85],[1714065429000,85],[1714065430000,84],[1714065431000,84],[1714065432000,82],[1714065433000,82],[1714065434000,82],[1714065435000,82],[1714065436000,82],[1714065437000,82],[1714065438000,82],[1714065439000,82],[1714065440000,82],[1714065441000,82],[1714065442000,82],[1714065443000,82],[1714065444000,82],[1714065445000,82],[1714065446000,82],[1714065447000,82],[1714065448000,80],[1714065449000,80],[1714065450000,80],[1714065451000,80],[1714065452000,79],[1714065453000,79],[1714065454000,72],[1714065455000,63],[1714065456000,63],[1714065457000,63],[1714065458000,63],[1714065459000,63],[1714065460000,63],[1714065461000,63],[1714065462000,63],[1714065463000,63],[1714065464000,59],[1714065465000,58],[1714065466000,58],[1714065468000,58],[1714065469000,58],[1714065470000,58],[1714065471000,58],[1714065472000,58],[1714065473000,58],[1714065474000,58],[1714065475000,58],[1714065476000,58],[1714065477000,58],[1714065478000,58],[1714065479000,56],[1714065480000,56],[1714065481000,55],[1714065482000,55],[1714065483000,54],[1714065484000,54],[1714065485000,50],[1714065486000,50],[1714065487000,50],[1714065488000,50],[1714065489000,50],[1714065490000,50],[1714065491000,50],[1714065492000,50],[1714065493000,50],[1714065494000,50],[1714065495000,50],[1714065496000,49],[1714065497000,48],[1714065498000,48],[1714065499000,48],[1714065500000,48],[1714065501000,48],[1714065502000,48],[1714065503000,47],[1714065504000,47],[1714065505000,39],[1714065506000,39],[1714065507000,39],[1714065508000,39],[1714065509000,39],[1714065510000,39],[1714065511000,39],[1714065512000,39],[1714065513000,39],[1714065514000,39],[1714065515000,39],[1714065516000,39],[1714065517000,39],[1714065518000,36],[1714065519000,26],[1714065520000,26],[1714065521000,25],[1714065522000,24],[1714065523000,24],[1714065524000,24],[1714065525000,24],[1714065526000,24],[1714065527000,24],[1714065528000,24],[1714065529000,22],[1714065530000,22],[1714065531000,21],[1714065532000,21],[1714065533000,21],[1714065534000,21],[1714065535000,21],[1714065536000,21],[1714065537000,21],[1714065538000,21],[1714065539000,21],[1714065540000,21],[1714065541000,21],[1714065542000,21],[1714065543000,20],[1714065544000,20],[1714065545000,19],[1714065546000,18],[1714065547000,17],[1714065548000,16],[1714065549000,15],[1714065550000,15],[1714065551000,14],[1714065552000,14],[1714065553000,13],[1714065554000,12],[1714065555000,12],[1714065556000,11],[1714065557000,10],[1714065558000,10],[1714065559000,9],[1714065560000,8],[1714065561000,7],[1714065562000,6],[1714065563000,6],[1714065564000,5],[1714065565000,5],[1714065566000,2],[1714065567000,2],[1714065568000,2],[1714065569000,1] +], +tooltip: { yDecimals: 0, ySuffix: '', valueDecimals: 0 } + , zIndex: 20 + , yAxis: 1 +}; \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/assertions.xml b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/assertions.xml new file mode 100644 index 0000000..c562e00 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/assertions.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/bootstrap.min.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/bootstrap.min.js new file mode 100644 index 0000000..ea41042 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/bootstrap.min.js @@ -0,0 +1,7 @@ +/** +* Bootstrap.js by @fat & @mdo +* plugins: bootstrap-tooltip.js, bootstrap-popover.js +* Copyright 2012 Twitter, Inc. +* http://www.apache.org/licenses/LICENSE-2.0.txt +*/ +!function(a){var b=function(a,b){this.init("tooltip",a,b)};b.prototype={constructor:b,init:function(b,c,d){var e,f;this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.enabled=!0,this.options.trigger=="click"?this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this)):this.options.trigger!="manual"&&(e=this.options.trigger=="hover"?"mouseenter":"focus",f=this.options.trigger=="hover"?"mouseleave":"blur",this.$element.on(e+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(f+"."+this.type,this.options.selector,a.proxy(this.leave,this))),this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(b){return b=a.extend({},a.fn[this.type].defaults,b,this.$element.data()),b.delay&&typeof b.delay=="number"&&(b.delay={show:b.delay,hide:b.delay}),b},enter:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);if(!c.options.delay||!c.options.delay.show)return c.show();clearTimeout(this.timeout),c.hoverState="in",this.timeout=setTimeout(function(){c.hoverState=="in"&&c.show()},c.options.delay.show)},leave:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);this.timeout&&clearTimeout(this.timeout);if(!c.options.delay||!c.options.delay.hide)return c.hide();c.hoverState="out",this.timeout=setTimeout(function(){c.hoverState=="out"&&c.hide()},c.options.delay.hide)},show:function(){var a,b,c,d,e,f,g;if(this.hasContent()&&this.enabled){a=this.tip(),this.setContent(),this.options.animation&&a.addClass("fade"),f=typeof this.options.placement=="function"?this.options.placement.call(this,a[0],this.$element[0]):this.options.placement,b=/in/.test(f),a.detach().css({top:0,left:0,display:"block"}).insertAfter(this.$element),c=this.getPosition(b),d=a[0].offsetWidth,e=a[0].offsetHeight;switch(b?f.split(" ")[1]:f){case"bottom":g={top:c.top+c.height,left:c.left+c.width/2-d/2};break;case"top":g={top:c.top-e,left:c.left+c.width/2-d/2};break;case"left":g={top:c.top+c.height/2-e/2,left:c.left-d};break;case"right":g={top:c.top+c.height/2-e/2,left:c.left+c.width}}a.offset(g).addClass(f).addClass("in")}},setContent:function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},hide:function(){function d(){var b=setTimeout(function(){c.off(a.support.transition.end).detach()},500);c.one(a.support.transition.end,function(){clearTimeout(b),c.detach()})}var b=this,c=this.tip();return c.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d():c.detach(),this},fixTitle:function(){var a=this.$element;(a.attr("title")||typeof a.attr("data-original-title")!="string")&&a.attr("data-original-title",a.attr("title")||"").removeAttr("title")},hasContent:function(){return this.getTitle()},getPosition:function(b){return a.extend({},b?{top:0,left:0}:this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight})},getTitle:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||(typeof c.title=="function"?c.title.call(b[0]):c.title),a},tip:function(){return this.$tip=this.$tip||a(this.options.template)},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);c[c.tip().hasClass("in")?"hide":"show"]()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}},a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("tooltip"),f=typeof c=="object"&&c;e||d.data("tooltip",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.tooltip.Constructor=b,a.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'
',trigger:"hover",title:"",delay:0,html:!1}}(window.jQuery),!function(a){var b=function(a,b){this.init("popover",a,b)};b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype,{constructor:b,setContent:function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content > *")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-content")||(typeof c.content=="function"?c.content.call(b[0]):c.content),a},tip:function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}}),a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("popover"),f=typeof c=="object"&&c;e||d.data("popover",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.defaults=a.extend({},a.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'

'})}(window.jQuery) \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/ellipsis.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/ellipsis.js new file mode 100644 index 0000000..781d0de --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/ellipsis.js @@ -0,0 +1,26 @@ +function parentId(name) { + return "parent-" + name; +} + +function isEllipsed(name) { + const child = document.getElementById(name); + const parent = document.getElementById(parentId(name)); + const emptyData = parent.getAttribute("data-content") === ""; + const hasOverflow = child.clientWidth < child.scrollWidth; + + if (hasOverflow) { + if (emptyData) { + parent.setAttribute("data-content", name); + } + } else { + if (!emptyData) { + parent.setAttribute("data-content", ""); + } + } +} + +function ellipsedLabel ({ name, parentClass = "", childClass = "" }) { + const child = "" + name + ""; + + return "" + child + ""; +} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/gatling.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/gatling.js new file mode 100644 index 0000000..5b9e992 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/gatling.js @@ -0,0 +1,137 @@ +/* + * Copyright 2011-2024 GatlingCorp (https://gatling.io) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +(function ($) { + $.fn.expandable = function () { + var scope = this; + + this.find('.expand-button:not([class*=hidden])').addClass('collapse').on('click', function () { + var $this = $(this); + + if ($this.hasClass('expand')) + $this.expand(scope); + else + $this.collapse(scope); + }); + + this.find('.expand-all-button').on('click', function () { + $(this).expandAll(scope); + }); + + this.find('.collapse-all-button').on('click', function () { + $(this).collapseAll(scope); + }); + + this.collapseAll(this); + + return this; + }; + + $.fn.expand = function (scope, recursive) { + return this.each(function () { + var $this = $(this); + + if (recursive) { + scope.find('*[data-parent=' + $this.attr('id') + ']').find('.expand-button.expand').expand(scope, true); + scope.find('*[data-parent=' + $this.attr('id') + ']').find('.expand-button.expand').expand(scope, true); + } + + if ($this.hasClass('expand')) { + $('*[data-parent=' + $this.attr('id') + ']').toggle(true); + $this.toggleClass('expand').toggleClass('collapse'); + } + }); + }; + + $.fn.expandAll = function (scope) { + $('*[data-parent=ROOT]').find('.expand-button.expand').expand(scope, true); + $('*[data-parent=ROOT]').find('.expand-button.collapse').expand(scope, true); + }; + + $.fn.collapse = function (scope) { + return this.each(function () { + var $this = $(this); + + scope.find('*[data-parent=' + $this.attr('id') + '] .expand-button.collapse').collapse(scope); + scope.find('*[data-parent=' + $this.attr('id') + ']').toggle(false); + $this.toggleClass('expand').toggleClass('collapse'); + }); + }; + + $.fn.collapseAll = function (scope) { + $('*[data-parent=ROOT]').find('.expand-button.collapse').collapse(scope); + }; + + $.fn.sortable = function (target) { + var table = this; + + this.find('thead .sortable').on('click', function () { + var $this = $(this); + + if ($this.hasClass('sorted-down')) { + var desc = false; + var style = 'sorted-up'; + } + else { + var desc = true; + var style = 'sorted-down'; + } + + $(target).sortTable($this.attr('id'), desc); + + table.find('thead .sortable').removeClass('sorted-up sorted-down'); + $this.addClass(style); + + return false; + }); + + return this; + }; + + $.fn.sortTable = function (col, desc) { + function getValue(line) { + var cell = $(line).find('.' + col); + + if (cell.hasClass('value')) + var value = cell.text(); + else + var value = cell.find('.value').text(); + + return parseFloat(value); + } + + function sortLines (lines, group) { + var notErrorTable = col.search("error") == -1; + var linesToSort = notErrorTable ? lines.filter('*[data-parent=' + group + ']') : lines; + + var sortedLines = linesToSort.sort(function (a, b) { + return desc ? getValue(b) - getValue(a): getValue(a) - getValue(b); + }).toArray(); + + var result = []; + $.each(sortedLines, function (i, line) { + result.push(line); + if (notErrorTable) + result = result.concat(sortLines(lines, $(line).attr('id'))); + }); + + return result; + } + + this.find('tbody').append(sortLines(this.find('tbody tr').detach(), 'ROOT')); + + return this; + }; +})(jQuery); diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/global_stats.json b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/global_stats.json new file mode 100644 index 0000000..5a60611 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/global_stats.json @@ -0,0 +1,77 @@ +{ + "name": "All Requests", + "numberOfRequests": { + "total": 8733, + "ok": 5128, + "ko": 3605 + }, + "minResponseTime": { + "total": 24, + "ok": 24, + "ko": 2846 + }, + "maxResponseTime": { + "total": 65148, + "ok": 59883, + "ko": 65148 + }, + "meanResponseTime": { + "total": 19071, + "ok": 9281, + "ko": 32996 + }, + "standardDeviation": { + "total": 22892, + "ok": 15556, + "ko": 24394 + }, + "percentiles1": { + "total": 10006, + "ok": 1130, + "ko": 16323 + }, + "percentiles2": { + "total": 37958, + "ok": 8171, + "ko": 60007 + }, + "percentiles3": { + "total": 60013, + "ok": 45464, + "ko": 60015 + }, + "percentiles4": { + "total": 60016, + "ok": 56869, + "ko": 62024 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 2244, + "percentage": 26 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
t < 1200 ms", + "count": 400, + "percentage": 5 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 2484, + "percentage": 28 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 3605, + "percentage": 41 +}, + "meanNumberOfRequestsPerSecond": { + "total": 14.506644518272426, + "ok": 8.518272425249169, + "ko": 5.988372093023256 + } +} \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/highcharts-more.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/highcharts-more.js new file mode 100644 index 0000000..2d78893 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/highcharts-more.js @@ -0,0 +1,60 @@ +/* + Highcharts JS v5.0.3 (2016-11-18) + + (c) 2009-2016 Torstein Honsi + + License: www.highcharts.com/license +*/ +(function(x){"object"===typeof module&&module.exports?module.exports=x:x(Highcharts)})(function(x){(function(b){function r(b,a,d){this.init(b,a,d)}var t=b.each,w=b.extend,m=b.merge,q=b.splat;w(r.prototype,{init:function(b,a,d){var f=this,h=f.defaultOptions;f.chart=a;f.options=b=m(h,a.angular?{background:{}}:void 0,b);(b=b.background)&&t([].concat(q(b)).reverse(),function(a){var c,h=d.userOptions;c=m(f.defaultBackgroundOptions,a);a.backgroundColor&&(c.backgroundColor=a.backgroundColor);c.color=c.backgroundColor; +d.options.plotBands.unshift(c);h.plotBands=h.plotBands||[];h.plotBands!==d.options.plotBands&&h.plotBands.unshift(c)})},defaultOptions:{center:["50%","50%"],size:"85%",startAngle:0},defaultBackgroundOptions:{className:"highcharts-pane",shape:"circle",borderWidth:1,borderColor:"#cccccc",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#ffffff"],[1,"#e6e6e6"]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"}});b.Pane=r})(x);(function(b){var r=b.CenteredSeriesMixin, +t=b.each,w=b.extend,m=b.map,q=b.merge,e=b.noop,a=b.Pane,d=b.pick,f=b.pInt,h=b.splat,u=b.wrap,c,l,k=b.Axis.prototype;b=b.Tick.prototype;c={getOffset:e,redraw:function(){this.isDirty=!1},render:function(){this.isDirty=!1},setScale:e,setCategories:e,setTitle:e};l={defaultRadialGaugeOptions:{labels:{align:"center",x:0,y:null},minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,tickLength:10,tickPosition:"inside",tickWidth:2,title:{rotation:0},zIndex:2}, +defaultRadialXOptions:{gridLineWidth:1,labels:{align:null,distance:15,x:0,y:null},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},defaultRadialYOptions:{gridLineInterpolation:"circle",labels:{align:"right",x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}},setOptions:function(a){a=this.options=q(this.defaultOptions,this.defaultRadialOptions,a);a.plotBands||(a.plotBands=[])},getOffset:function(){k.getOffset.call(this);this.chart.axisOffset[this.side]=0;this.center=this.pane.center= +r.getCenter.call(this.pane)},getLinePath:function(a,g){a=this.center;var c=this.chart,f=d(g,a[2]/2-this.offset);this.isCircular||void 0!==g?g=this.chart.renderer.symbols.arc(this.left+a[0],this.top+a[1],f,f,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0}):(g=this.postTranslate(this.angleRad,f),g=["M",a[0]+c.plotLeft,a[1]+c.plotTop,"L",g.x,g.y]);return g},setAxisTranslation:function(){k.setAxisTranslation.call(this);this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/ +(this.max-this.min||1):this.center[2]/2/(this.max-this.min||1),this.minPixelPadding=this.isXAxis?this.transA*this.minPointOffset:0)},beforeSetTickPositions:function(){if(this.autoConnect=this.isCircular&&void 0===d(this.userMax,this.options.max)&&this.endAngleRad-this.startAngleRad===2*Math.PI)this.max+=this.categories&&1||this.pointRange||this.closestPointRange||0},setAxisSize:function(){k.setAxisSize.call(this);this.isRadial&&(this.center=this.pane.center=r.getCenter.call(this.pane),this.isCircular&& +(this.sector=this.endAngleRad-this.startAngleRad),this.len=this.width=this.height=this.center[2]*d(this.sector,1)/2)},getPosition:function(a,g){return this.postTranslate(this.isCircular?this.translate(a):this.angleRad,d(this.isCircular?g:this.translate(a),this.center[2]/2)-this.offset)},postTranslate:function(a,g){var d=this.chart,c=this.center;a=this.startAngleRad+a;return{x:d.plotLeft+c[0]+Math.cos(a)*g,y:d.plotTop+c[1]+Math.sin(a)*g}},getPlotBandPath:function(a,g,c){var h=this.center,p=this.startAngleRad, +k=h[2]/2,n=[d(c.outerRadius,"100%"),c.innerRadius,d(c.thickness,10)],b=Math.min(this.offset,0),l=/%$/,u,e=this.isCircular;"polygon"===this.options.gridLineInterpolation?h=this.getPlotLinePath(a).concat(this.getPlotLinePath(g,!0)):(a=Math.max(a,this.min),g=Math.min(g,this.max),e||(n[0]=this.translate(a),n[1]=this.translate(g)),n=m(n,function(a){l.test(a)&&(a=f(a,10)*k/100);return a}),"circle"!==c.shape&&e?(a=p+this.translate(a),g=p+this.translate(g)):(a=-Math.PI/2,g=1.5*Math.PI,u=!0),n[0]-=b,n[2]-= +b,h=this.chart.renderer.symbols.arc(this.left+h[0],this.top+h[1],n[0],n[0],{start:Math.min(a,g),end:Math.max(a,g),innerR:d(n[1],n[0]-n[2]),open:u}));return h},getPlotLinePath:function(a,g){var d=this,c=d.center,f=d.chart,h=d.getPosition(a),k,b,p;d.isCircular?p=["M",c[0]+f.plotLeft,c[1]+f.plotTop,"L",h.x,h.y]:"circle"===d.options.gridLineInterpolation?(a=d.translate(a))&&(p=d.getLinePath(0,a)):(t(f.xAxis,function(a){a.pane===d.pane&&(k=a)}),p=[],a=d.translate(a),c=k.tickPositions,k.autoConnect&&(c= +c.concat([c[0]])),g&&(c=[].concat(c).reverse()),t(c,function(g,d){b=k.getPosition(g,a);p.push(d?"L":"M",b.x,b.y)}));return p},getTitlePosition:function(){var a=this.center,g=this.chart,d=this.options.title;return{x:g.plotLeft+a[0]+(d.x||0),y:g.plotTop+a[1]-{high:.5,middle:.25,low:0}[d.align]*a[2]+(d.y||0)}}};u(k,"init",function(f,g,k){var b=g.angular,p=g.polar,n=k.isX,u=b&&n,e,A=g.options,m=k.pane||0;if(b){if(w(this,u?c:l),e=!n)this.defaultRadialOptions=this.defaultRadialGaugeOptions}else p&&(w(this, +l),this.defaultRadialOptions=(e=n)?this.defaultRadialXOptions:q(this.defaultYAxisOptions,this.defaultRadialYOptions));b||p?(this.isRadial=!0,g.inverted=!1,A.chart.zoomType=null):this.isRadial=!1;f.call(this,g,k);u||!b&&!p||(f=this.options,g.panes||(g.panes=[]),this.pane=g=g.panes[m]=g.panes[m]||new a(h(A.pane)[m],g,this),g=g.options,this.angleRad=(f.angle||0)*Math.PI/180,this.startAngleRad=(g.startAngle-90)*Math.PI/180,this.endAngleRad=(d(g.endAngle,g.startAngle+360)-90)*Math.PI/180,this.offset=f.offset|| +0,this.isCircular=e)});u(k,"autoLabelAlign",function(a){if(!this.isRadial)return a.apply(this,[].slice.call(arguments,1))});u(b,"getPosition",function(a,d,c,f,h){var g=this.axis;return g.getPosition?g.getPosition(c):a.call(this,d,c,f,h)});u(b,"getLabelPosition",function(a,g,c,f,h,k,b,l,u){var n=this.axis,p=k.y,e=20,y=k.align,v=(n.translate(this.pos)+n.startAngleRad+Math.PI/2)/Math.PI*180%360;n.isRadial?(a=n.getPosition(this.pos,n.center[2]/2+d(k.distance,-25)),"auto"===k.rotation?f.attr({rotation:v}): +null===p&&(p=n.chart.renderer.fontMetrics(f.styles.fontSize).b-f.getBBox().height/2),null===y&&(n.isCircular?(this.label.getBBox().width>n.len*n.tickInterval/(n.max-n.min)&&(e=0),y=v>e&&v<180-e?"left":v>180+e&&v<360-e?"right":"center"):y="center",f.attr({align:y})),a.x+=k.x,a.y+=p):a=a.call(this,g,c,f,h,k,b,l,u);return a});u(b,"getMarkPath",function(a,d,c,f,h,k,b){var g=this.axis;g.isRadial?(a=g.getPosition(this.pos,g.center[2]/2+f),d=["M",d,c,"L",a.x,a.y]):d=a.call(this,d,c,f,h,k,b);return d})})(x); +(function(b){var r=b.each,t=b.noop,w=b.pick,m=b.Series,q=b.seriesType,e=b.seriesTypes;q("arearange","area",{lineWidth:1,marker:null,threshold:null,tooltip:{pointFormat:'\x3cspan style\x3d"color:{series.color}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cb\x3e{point.low}\x3c/b\x3e - \x3cb\x3e{point.high}\x3c/b\x3e\x3cbr/\x3e'},trackByArea:!0,dataLabels:{align:null,verticalAlign:null,xLow:0,xHigh:0,yLow:0,yHigh:0},states:{hover:{halo:!1}}},{pointArrayMap:["low","high"],dataLabelCollections:["dataLabel", +"dataLabelUpper"],toYData:function(a){return[a.low,a.high]},pointValKey:"low",deferTranslatePolar:!0,highToXY:function(a){var d=this.chart,f=this.xAxis.postTranslate(a.rectPlotX,this.yAxis.len-a.plotHigh);a.plotHighX=f.x-d.plotLeft;a.plotHigh=f.y-d.plotTop},translate:function(){var a=this,d=a.yAxis,f=!!a.modifyValue;e.area.prototype.translate.apply(a);r(a.points,function(h){var b=h.low,c=h.high,l=h.plotY;null===c||null===b?h.isNull=!0:(h.plotLow=l,h.plotHigh=d.translate(f?a.modifyValue(c,h):c,0,1, +0,1),f&&(h.yBottom=h.plotHigh))});this.chart.polar&&r(this.points,function(d){a.highToXY(d)})},getGraphPath:function(a){var d=[],f=[],h,b=e.area.prototype.getGraphPath,c,l,k;k=this.options;var p=k.step;a=a||this.points;for(h=a.length;h--;)c=a[h],c.isNull||k.connectEnds||a[h+1]&&!a[h+1].isNull||f.push({plotX:c.plotX,plotY:c.plotY,doCurve:!1}),l={polarPlotY:c.polarPlotY,rectPlotX:c.rectPlotX,yBottom:c.yBottom,plotX:w(c.plotHighX,c.plotX),plotY:c.plotHigh,isNull:c.isNull},f.push(l),d.push(l),c.isNull|| +k.connectEnds||a[h-1]&&!a[h-1].isNull||f.push({plotX:c.plotX,plotY:c.plotY,doCurve:!1});a=b.call(this,a);p&&(!0===p&&(p="left"),k.step={left:"right",center:"center",right:"left"}[p]);d=b.call(this,d);f=b.call(this,f);k.step=p;k=[].concat(a,d);this.chart.polar||"M"!==f[0]||(f[0]="L");this.graphPath=k;this.areaPath=this.areaPath.concat(a,f);k.isArea=!0;k.xMap=a.xMap;this.areaPath.xMap=a.xMap;return k},drawDataLabels:function(){var a=this.data,d=a.length,f,h=[],b=m.prototype,c=this.options.dataLabels, +l=c.align,k=c.verticalAlign,p=c.inside,g,n,e=this.chart.inverted;if(c.enabled||this._hasPointLabels){for(f=d;f--;)if(g=a[f])n=p?g.plotHighg.plotLow,g.y=g.high,g._plotY=g.plotY,g.plotY=g.plotHigh,h[f]=g.dataLabel,g.dataLabel=g.dataLabelUpper,g.below=n,e?l||(c.align=n?"right":"left"):k||(c.verticalAlign=n?"top":"bottom"),c.x=c.xHigh,c.y=c.yHigh;b.drawDataLabels&&b.drawDataLabels.apply(this,arguments);for(f=d;f--;)if(g=a[f])n=p?g.plotHighg.plotLow,g.dataLabelUpper= +g.dataLabel,g.dataLabel=h[f],g.y=g.low,g.plotY=g._plotY,g.below=!n,e?l||(c.align=n?"left":"right"):k||(c.verticalAlign=n?"bottom":"top"),c.x=c.xLow,c.y=c.yLow;b.drawDataLabels&&b.drawDataLabels.apply(this,arguments)}c.align=l;c.verticalAlign=k},alignDataLabel:function(){e.column.prototype.alignDataLabel.apply(this,arguments)},setStackedPoints:t,getSymbol:t,drawPoints:t})})(x);(function(b){var r=b.seriesType;r("areasplinerange","arearange",null,{getPointSpline:b.seriesTypes.spline.prototype.getPointSpline})})(x); +(function(b){var r=b.defaultPlotOptions,t=b.each,w=b.merge,m=b.noop,q=b.pick,e=b.seriesType,a=b.seriesTypes.column.prototype;e("columnrange","arearange",w(r.column,r.arearange,{lineWidth:1,pointRange:null}),{translate:function(){var d=this,f=d.yAxis,b=d.xAxis,u=b.startAngleRad,c,l=d.chart,k=d.xAxis.isRadial,p;a.translate.apply(d);t(d.points,function(a){var g=a.shapeArgs,h=d.options.minPointLength,e,v;a.plotHigh=p=f.translate(a.high,0,1,0,1);a.plotLow=a.plotY;v=p;e=q(a.rectPlotY,a.plotY)-p;Math.abs(e)< +h?(h-=e,e+=h,v-=h/2):0>e&&(e*=-1,v-=e);k?(c=a.barX+u,a.shapeType="path",a.shapeArgs={d:d.polarArc(v+e,v,c,c+a.pointWidth)}):(g.height=e,g.y=v,a.tooltipPos=l.inverted?[f.len+f.pos-l.plotLeft-v-e/2,b.len+b.pos-l.plotTop-g.x-g.width/2,e]:[b.left-l.plotLeft+g.x+g.width/2,f.pos-l.plotTop+v+e/2,e])})},directTouch:!0,trackerGroups:["group","dataLabelsGroup"],drawGraph:m,crispCol:a.crispCol,drawPoints:a.drawPoints,drawTracker:a.drawTracker,getColumnMetrics:a.getColumnMetrics,animate:function(){return a.animate.apply(this, +arguments)},polarArc:function(){return a.polarArc.apply(this,arguments)},pointAttribs:a.pointAttribs})})(x);(function(b){var r=b.each,t=b.isNumber,w=b.merge,m=b.pick,q=b.pInt,e=b.Series,a=b.seriesType,d=b.TrackerMixin;a("gauge","line",{dataLabels:{enabled:!0,defer:!1,y:15,borderRadius:3,crop:!1,verticalAlign:"top",zIndex:2,borderWidth:1,borderColor:"#cccccc"},dial:{},pivot:{},tooltip:{headerFormat:""},showInLegend:!1},{angular:!0,directTouch:!0,drawGraph:b.noop,fixedBox:!0,forceDL:!0,noSharedTooltip:!0, +trackerGroups:["group","dataLabelsGroup"],translate:function(){var a=this.yAxis,d=this.options,b=a.center;this.generatePoints();r(this.points,function(c){var f=w(d.dial,c.dial),k=q(m(f.radius,80))*b[2]/200,h=q(m(f.baseLength,70))*k/100,g=q(m(f.rearLength,10))*k/100,n=f.baseWidth||3,u=f.topWidth||1,e=d.overshoot,v=a.startAngleRad+a.translate(c.y,null,null,null,!0);t(e)?(e=e/180*Math.PI,v=Math.max(a.startAngleRad-e,Math.min(a.endAngleRad+e,v))):!1===d.wrap&&(v=Math.max(a.startAngleRad,Math.min(a.endAngleRad, +v)));v=180*v/Math.PI;c.shapeType="path";c.shapeArgs={d:f.path||["M",-g,-n/2,"L",h,-n/2,k,-u/2,k,u/2,h,n/2,-g,n/2,"z"],translateX:b[0],translateY:b[1],rotation:v};c.plotX=b[0];c.plotY=b[1]})},drawPoints:function(){var a=this,d=a.yAxis.center,b=a.pivot,c=a.options,l=c.pivot,k=a.chart.renderer;r(a.points,function(d){var g=d.graphic,b=d.shapeArgs,f=b.d,h=w(c.dial,d.dial);g?(g.animate(b),b.d=f):(d.graphic=k[d.shapeType](b).attr({rotation:b.rotation,zIndex:1}).addClass("highcharts-dial").add(a.group),d.graphic.attr({stroke:h.borderColor|| +"none","stroke-width":h.borderWidth||0,fill:h.backgroundColor||"#000000"}))});b?b.animate({translateX:d[0],translateY:d[1]}):(a.pivot=k.circle(0,0,m(l.radius,5)).attr({zIndex:2}).addClass("highcharts-pivot").translate(d[0],d[1]).add(a.group),a.pivot.attr({"stroke-width":l.borderWidth||0,stroke:l.borderColor||"#cccccc",fill:l.backgroundColor||"#000000"}))},animate:function(a){var d=this;a||(r(d.points,function(a){var c=a.graphic;c&&(c.attr({rotation:180*d.yAxis.startAngleRad/Math.PI}),c.animate({rotation:a.shapeArgs.rotation}, +d.options.animation))}),d.animate=null)},render:function(){this.group=this.plotGroup("group","series",this.visible?"visible":"hidden",this.options.zIndex,this.chart.seriesGroup);e.prototype.render.call(this);this.group.clip(this.chart.clipRect)},setData:function(a,d){e.prototype.setData.call(this,a,!1);this.processData();this.generatePoints();m(d,!0)&&this.chart.redraw()},drawTracker:d&&d.drawTrackerPoint},{setState:function(a){this.state=a}})})(x);(function(b){var r=b.each,t=b.noop,w=b.pick,m=b.seriesType, +q=b.seriesTypes;m("boxplot","column",{threshold:null,tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eMaximum: {point.high}\x3cbr/\x3eUpper quartile: {point.q3}\x3cbr/\x3eMedian: {point.median}\x3cbr/\x3eLower quartile: {point.q1}\x3cbr/\x3eMinimum: {point.low}\x3cbr/\x3e'},whiskerLength:"50%",fillColor:"#ffffff",lineWidth:1,medianWidth:2,states:{hover:{brightness:-.3}},whiskerWidth:2},{pointArrayMap:["low","q1","median", +"q3","high"],toYData:function(b){return[b.low,b.q1,b.median,b.q3,b.high]},pointValKey:"high",pointAttribs:function(b){var a=this.options,d=b&&b.color||this.color;return{fill:b.fillColor||a.fillColor||d,stroke:a.lineColor||d,"stroke-width":a.lineWidth||0}},drawDataLabels:t,translate:function(){var b=this.yAxis,a=this.pointArrayMap;q.column.prototype.translate.apply(this);r(this.points,function(d){r(a,function(a){null!==d[a]&&(d[a+"Plot"]=b.translate(d[a],0,1,0,1))})})},drawPoints:function(){var b= +this,a=b.options,d=b.chart.renderer,f,h,u,c,l,k,p=0,g,n,m,q,v=!1!==b.doQuartiles,t,x=b.options.whiskerLength;r(b.points,function(e){var r=e.graphic,y=r?"animate":"attr",I=e.shapeArgs,z={},B={},G={},H=e.color||b.color;void 0!==e.plotY&&(g=I.width,n=Math.floor(I.x),m=n+g,q=Math.round(g/2),f=Math.floor(v?e.q1Plot:e.lowPlot),h=Math.floor(v?e.q3Plot:e.lowPlot),u=Math.floor(e.highPlot),c=Math.floor(e.lowPlot),r||(e.graphic=r=d.g("point").add(b.group),e.stem=d.path().addClass("highcharts-boxplot-stem").add(r), +x&&(e.whiskers=d.path().addClass("highcharts-boxplot-whisker").add(r)),v&&(e.box=d.path(void 0).addClass("highcharts-boxplot-box").add(r)),e.medianShape=d.path(void 0).addClass("highcharts-boxplot-median").add(r),z.stroke=e.stemColor||a.stemColor||H,z["stroke-width"]=w(e.stemWidth,a.stemWidth,a.lineWidth),z.dashstyle=e.stemDashStyle||a.stemDashStyle,e.stem.attr(z),x&&(B.stroke=e.whiskerColor||a.whiskerColor||H,B["stroke-width"]=w(e.whiskerWidth,a.whiskerWidth,a.lineWidth),e.whiskers.attr(B)),v&&(r= +b.pointAttribs(e),e.box.attr(r)),G.stroke=e.medianColor||a.medianColor||H,G["stroke-width"]=w(e.medianWidth,a.medianWidth,a.lineWidth),e.medianShape.attr(G)),k=e.stem.strokeWidth()%2/2,p=n+q+k,e.stem[y]({d:["M",p,h,"L",p,u,"M",p,f,"L",p,c]}),v&&(k=e.box.strokeWidth()%2/2,f=Math.floor(f)+k,h=Math.floor(h)+k,n+=k,m+=k,e.box[y]({d:["M",n,h,"L",n,f,"L",m,f,"L",m,h,"L",n,h,"z"]})),x&&(k=e.whiskers.strokeWidth()%2/2,u+=k,c+=k,t=/%$/.test(x)?q*parseFloat(x)/100:x/2,e.whiskers[y]({d:["M",p-t,u,"L",p+t,u, +"M",p-t,c,"L",p+t,c]})),l=Math.round(e.medianPlot),k=e.medianShape.strokeWidth()%2/2,l+=k,e.medianShape[y]({d:["M",n,l,"L",m,l]}))})},setStackedPoints:t})})(x);(function(b){var r=b.each,t=b.noop,w=b.seriesType,m=b.seriesTypes;w("errorbar","boxplot",{color:"#000000",grouping:!1,linkedTo:":previous",tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cb\x3e{point.low}\x3c/b\x3e - \x3cb\x3e{point.high}\x3c/b\x3e\x3cbr/\x3e'},whiskerWidth:null},{type:"errorbar", +pointArrayMap:["low","high"],toYData:function(b){return[b.low,b.high]},pointValKey:"high",doQuartiles:!1,drawDataLabels:m.arearange?function(){var b=this.pointValKey;m.arearange.prototype.drawDataLabels.call(this);r(this.data,function(e){e.y=e[b]})}:t,getColumnMetrics:function(){return this.linkedParent&&this.linkedParent.columnMetrics||m.column.prototype.getColumnMetrics.call(this)}})})(x);(function(b){var r=b.correctFloat,t=b.isNumber,w=b.pick,m=b.Point,q=b.Series,e=b.seriesType,a=b.seriesTypes; +e("waterfall","column",{dataLabels:{inside:!0},lineWidth:1,lineColor:"#333333",dashStyle:"dot",borderColor:"#333333",states:{hover:{lineWidthPlus:0}}},{pointValKey:"y",translate:function(){var d=this.options,b=this.yAxis,h,e,c,l,k,p,g,n,m,q=w(d.minPointLength,5),v=d.threshold,t=d.stacking;a.column.prototype.translate.apply(this);this.minPointLengthOffset=0;g=n=v;e=this.points;h=0;for(d=e.length;hl.height&&(l.y+=l.height,l.height*=-1),c.plotY=l.y=Math.round(l.y)- +this.borderWidth%2/2,l.height=Math.max(Math.round(l.height),.001),c.yBottom=l.y+l.height,l.height<=q&&(l.height=q,this.minPointLengthOffset+=q),l.y-=this.minPointLengthOffset,l=c.plotY+(c.negative?l.height:0)-this.minPointLengthOffset,this.chart.inverted?c.tooltipPos[0]=b.len-l:c.tooltipPos[1]=l},processData:function(a){var b=this.yData,d=this.options.data,e,c=b.length,l,k,p,g,n,m;k=l=p=g=this.options.threshold||0;for(m=0;ma[k-1].y&&(l[2]+=c.height,l[5]+=c.height),e=e.concat(l);return e},drawGraph:function(){q.prototype.drawGraph.call(this);this.graph.attr({d:this.getCrispPath()})},getExtremes:b.noop},{getClassName:function(){var a=m.prototype.getClassName.call(this);this.isSum?a+=" highcharts-sum":this.isIntermediateSum&&(a+=" highcharts-intermediate-sum"); +return a},isValid:function(){return t(this.y,!0)||this.isSum||this.isIntermediateSum}})})(x);(function(b){var r=b.Series,t=b.seriesType,w=b.seriesTypes;t("polygon","scatter",{marker:{enabled:!1,states:{hover:{enabled:!1}}},stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:""},trackByArea:!0},{type:"polygon",getGraphPath:function(){for(var b=r.prototype.getGraphPath.call(this),q=b.length+1;q--;)(q===b.length||"M"===b[q])&&0=this.minPxSize/2?(d.shapeType="circle",d.shapeArgs={x:d.plotX,y:d.plotY,r:c},d.dlBox={x:d.plotX-c,y:d.plotY-c,width:2*c,height:2*c}):d.shapeArgs=d.plotY=d.dlBox=void 0},drawLegendSymbol:function(a,b){var d=this.chart.renderer,c=d.fontMetrics(a.itemStyle.fontSize).f/2;b.legendSymbol=d.circle(c,a.baseline-c,c).attr({zIndex:3}).add(b.legendGroup);b.legendSymbol.isMarker= +!0},drawPoints:l.column.prototype.drawPoints,alignDataLabel:l.column.prototype.alignDataLabel,buildKDTree:a,applyZones:a},{haloPath:function(a){return h.prototype.haloPath.call(this,this.shapeArgs.r+a)},ttBelow:!1});w.prototype.beforePadding=function(){var a=this,b=this.len,c=this.chart,h=0,l=b,u=this.isXAxis,m=u?"xData":"yData",w=this.min,x={},A=Math.min(c.plotWidth,c.plotHeight),C=Number.MAX_VALUE,D=-Number.MAX_VALUE,E=this.max-w,z=b/E,F=[];q(this.series,function(b){var g=b.options;!b.bubblePadding|| +!b.visible&&c.options.chart.ignoreHiddenSeries||(a.allowZoomOutside=!0,F.push(b),u&&(q(["minSize","maxSize"],function(a){var b=g[a],d=/%$/.test(b),b=f(b);x[a]=d?A*b/100:b}),b.minPxSize=x.minSize,b.maxPxSize=Math.max(x.maxSize,x.minSize),b=b.zData,b.length&&(C=d(g.zMin,Math.min(C,Math.max(t(b),!1===g.displayNegative?g.zThreshold:-Number.MAX_VALUE))),D=d(g.zMax,Math.max(D,r(b))))))});q(F,function(b){var d=b[m],c=d.length,f;u&&b.getRadii(C,D,b.minPxSize,b.maxPxSize);if(0f&&(f+=360),a.clientX=f):a.clientX=a.plotX};m.spline&&q(m.spline.prototype,"getPointSpline",function(a,b,f,h){var d,c,e,k,p,g,n;this.chart.polar?(d=f.plotX, +c=f.plotY,a=b[h-1],e=b[h+1],this.connectEnds&&(a||(a=b[b.length-2]),e||(e=b[1])),a&&e&&(k=a.plotX,p=a.plotY,b=e.plotX,g=e.plotY,k=(1.5*d+k)/2.5,p=(1.5*c+p)/2.5,e=(1.5*d+b)/2.5,n=(1.5*c+g)/2.5,b=Math.sqrt(Math.pow(k-d,2)+Math.pow(p-c,2)),g=Math.sqrt(Math.pow(e-d,2)+Math.pow(n-c,2)),k=Math.atan2(p-c,k-d),p=Math.atan2(n-c,e-d),n=Math.PI/2+(k+p)/2,Math.abs(k-n)>Math.PI/2&&(n-=Math.PI),k=d+Math.cos(n)*b,p=c+Math.sin(n)*b,e=d+Math.cos(Math.PI+n)*g,n=c+Math.sin(Math.PI+n)*g,f.rightContX=e,f.rightContY=n), +h?(f=["C",a.rightContX||a.plotX,a.rightContY||a.plotY,k||d,p||c,d,c],a.rightContX=a.rightContY=null):f=["M",d,c]):f=a.call(this,b,f,h);return f});q(e,"translate",function(a){var b=this.chart;a.call(this);if(b.polar&&(this.kdByAngle=b.tooltip&&b.tooltip.shared,!this.preventPostTranslate))for(a=this.points,b=a.length;b--;)this.toXY(a[b])});q(e,"getGraphPath",function(a,b){var d=this,e,m;if(this.chart.polar){b=b||this.points;for(e=0;eb.center[1]}),q(m,"alignDataLabel",function(a,b,f,h,m,c){this.chart.polar?(a=b.rectPlotX/Math.PI*180,null===h.align&&(h.align=20a?"left":200a?"right":"center"),null===h.verticalAlign&&(h.verticalAlign=45>a||315a?"top":"middle"),e.alignDataLabel.call(this,b,f,h,m,c)):a.call(this, +b,f,h,m,c)}));q(b,"getCoordinates",function(a,b){var d=this.chart,e={xAxis:[],yAxis:[]};d.polar?t(d.axes,function(a){var c=a.isXAxis,f=a.center,h=b.chartX-f[0]-d.plotLeft,f=b.chartY-f[1]-d.plotTop;e[c?"xAxis":"yAxis"].push({axis:a,value:a.translate(c?Math.PI-Math.atan2(h,f):Math.sqrt(Math.pow(h,2)+Math.pow(f,2)),!0)})}):e=a.call(this,b);return e})})(x)}); diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/highstock.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/highstock.js new file mode 100644 index 0000000..34a3f91 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/highstock.js @@ -0,0 +1,496 @@ +/* + Highstock JS v5.0.3 (2016-11-18) + + (c) 2009-2016 Torstein Honsi + + License: www.highcharts.com/license +*/ +(function(N,a){"object"===typeof module&&module.exports?module.exports=N.document?a(N):a:N.Highcharts=a(N)})("undefined"!==typeof window?window:this,function(N){N=function(){var a=window,D=a.document,B=a.navigator&&a.navigator.userAgent||"",G=D&&D.createElementNS&&!!D.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,H=/(edge|msie|trident)/i.test(B)&&!window.opera,p=!G,l=/Firefox/.test(B),r=l&&4>parseInt(B.split("Firefox/")[1],10);return a.Highcharts?a.Highcharts.error(16,!0):{product:"Highstock", +version:"5.0.3",deg2rad:2*Math.PI/360,doc:D,hasBidiBug:r,hasTouch:D&&void 0!==D.documentElement.ontouchstart,isMS:H,isWebKit:/AppleWebKit/.test(B),isFirefox:l,isTouchDevice:/(Mobile|Android|Windows Phone)/.test(B),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:G,vml:p,win:a,charts:[],marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){}}}();(function(a){var D=[],B=a.charts,G=a.doc,H=a.win;a.error=function(a,l){a="Highcharts error #"+ +a+": www.highcharts.com/errors/"+a;if(l)throw Error(a);H.console&&console.log(a)};a.Fx=function(a,l,r){this.options=l;this.elem=a;this.prop=r};a.Fx.prototype={dSetter:function(){var a=this.paths[0],l=this.paths[1],r=[],w=this.now,t=a.length,k;if(1===w)r=this.toD;else if(t===l.length&&1>w)for(;t--;)k=parseFloat(a[t]),r[t]=isNaN(k)?a[t]:w*parseFloat(l[t]-k)+k;else r=l;this.elem.attr("d",r)},update:function(){var a=this.elem,l=this.prop,r=this.now,w=this.options.step;if(this[l+"Setter"])this[l+"Setter"](); +else a.attr?a.element&&a.attr(l,r):a.style[l]=r+this.unit;w&&w.call(a,r,this)},run:function(a,l,r){var p=this,t=function(a){return t.stopped?!1:p.step(a)},k;this.startTime=+new Date;this.start=a;this.end=l;this.unit=r;this.now=this.start;this.pos=0;t.elem=this.elem;t()&&1===D.push(t)&&(t.timerId=setInterval(function(){for(k=0;k=k+this.startTime){this.now=this.end;this.pos=1;this.update();a=m[this.prop]=!0;for(e in m)!0!==m[e]&&(a=!1);a&&t&&t.call(p);p=!1}else this.pos=w.easing((l-this.startTime)/k),this.now=this.start+(this.end-this.start)*this.pos,this.update(),p=!0;return p},initPath:function(p,l,r){function w(a){for(b=a.length;b--;)"M"!==a[b]&&"L"!==a[b]||a.splice(b+1,0,a[b+1],a[b+2],a[b+1],a[b+2])}function t(a,c){for(;a.lengthm?"AM":"PM",P:12>m?"am":"pm",S:q(t.getSeconds()),L:q(Math.round(l%1E3),3)},a.dateFormats);for(k in w)for(;-1!==p.indexOf("%"+k);)p= +p.replace("%"+k,"function"===typeof w[k]?w[k](l):w[k]);return r?p.substr(0,1).toUpperCase()+p.substr(1):p};a.formatSingle=function(p,l){var r=/\.([0-9])/,w=a.defaultOptions.lang;/f$/.test(p)?(r=(r=p.match(r))?r[1]:-1,null!==l&&(l=a.numberFormat(l,r,w.decimalPoint,-1=r&&(l=[1/r])));for(w=0;w=p||!t&&k<=(l[w]+(l[w+1]||l[w]))/ +2);w++);return m*r};a.stableSort=function(a,l){var r=a.length,p,t;for(t=0;tr&&(r=a[l]);return r};a.destroyObjectProperties=function(a,l){for(var r in a)a[r]&&a[r]!==l&&a[r].destroy&&a[r].destroy(),delete a[r]};a.discardElement=function(p){var l= +a.garbageBin;l||(l=a.createElement("div"));p&&l.appendChild(p);l.innerHTML=""};a.correctFloat=function(a,l){return parseFloat(a.toPrecision(l||14))};a.setAnimation=function(p,l){l.renderer.globalAnimation=a.pick(p,l.options.chart.animation,!0)};a.animObject=function(p){return a.isObject(p)?a.merge(p):{duration:p?500:0}};a.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5};a.numberFormat=function(p,l,r,w){p=+p||0;l=+l;var t=a.defaultOptions.lang, +k=(p.toString().split(".")[1]||"").length,m,e,g=Math.abs(p);-1===l?l=Math.min(k,20):a.isNumber(l)||(l=2);m=String(a.pInt(g.toFixed(l)));e=3p?"-":"")+(e?m.substr(0,e)+w:"");p+=m.substr(e).replace(/(\d{3})(?=\d)/g,"$1"+w);l&&(w=Math.abs(g-m+Math.pow(10,-Math.max(l,k)-1)),p+=r+w.toFixed(l).slice(2));return p};Math.easeInOutSine=function(a){return-.5*(Math.cos(Math.PI*a)-1)};a.getStyle=function(p,l){return"width"===l?Math.min(p.offsetWidth, +p.scrollWidth)-a.getStyle(p,"padding-left")-a.getStyle(p,"padding-right"):"height"===l?Math.min(p.offsetHeight,p.scrollHeight)-a.getStyle(p,"padding-top")-a.getStyle(p,"padding-bottom"):(p=H.getComputedStyle(p,void 0))&&a.pInt(p.getPropertyValue(l))};a.inArray=function(a,l){return l.indexOf?l.indexOf(a):[].indexOf.call(l,a)};a.grep=function(a,l){return[].filter.call(a,l)};a.map=function(a,l){for(var r=[],p=0,t=a.length;pl;l++)w[l]+=p(255*a),0>w[l]&&(w[l]=0),255z.width)z={width:0,height:0}}else z=this.htmlGetBBox();b.isSVG&&(a=z.width, +b=z.height,c&&L&&"11px"===L.fontSize&&"16.9"===b.toPrecision(3)&&(z.height=b=14),v&&(z.width=Math.abs(b*Math.sin(d))+Math.abs(a*Math.cos(d)),z.height=Math.abs(b*Math.cos(d))+Math.abs(a*Math.sin(d))));if(g&&0]*>/g,"")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,this.textStr=a,this.added&&this.renderer.buildText(this))},fillSetter:function(a,c,v){"string"===typeof a?v.setAttribute(c, +a):a&&this.colorGradient(a,c,v)},visibilitySetter:function(a,c,v){"inherit"===a?v.removeAttribute(c):v.setAttribute(c,a)},zIndexSetter:function(a,c){var v=this.renderer,z=this.parentGroup,b=(z||v).element||v.box,d,n=this.element,f;d=this.added;var e;k(a)&&(n.zIndex=a,a=+a,this[c]===a&&(d=!1),this[c]=a);if(d){(a=this.zIndex)&&z&&(z.handleZ=!0);c=b.childNodes;for(e=0;ea||!k(a)&&k(d)||0>a&&!k(d)&&b!==v.box)&&(b.insertBefore(n,z),f=!0);f||b.appendChild(n)}return f}, +_defaultSetter:function(a,c,v){v.setAttribute(c,a)}};D.prototype.yGetter=D.prototype.xGetter;D.prototype.translateXSetter=D.prototype.translateYSetter=D.prototype.rotationSetter=D.prototype.verticalAlignSetter=D.prototype.scaleXSetter=D.prototype.scaleYSetter=function(a,c){this[c]=a;this.doTransform=!0};D.prototype["stroke-widthSetter"]=D.prototype.strokeSetter=function(a,c,v){this[c]=a;this.stroke&&this["stroke-width"]?(D.prototype.fillSetter.call(this,this.stroke,"stroke",v),v.setAttribute("stroke-width", +this["stroke-width"]),this.hasStroke=!0):"stroke-width"===c&&0===a&&this.hasStroke&&(v.removeAttribute("stroke"),this.hasStroke=!1)};B=a.SVGRenderer=function(){this.init.apply(this,arguments)};B.prototype={Element:D,SVG_NS:K,init:function(a,c,v,b,d,n){var z;b=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"}).css(this.getStyle(b));z=b.element;a.appendChild(z);-1===a.innerHTML.indexOf("xmlns")&&p(z,"xmlns",this.SVG_NS);this.isSVG=!0;this.box=z;this.boxWrapper=b;this.alignedObjects= +[];this.url=(E||A)&&g.getElementsByTagName("base").length?R.location.href.replace(/#.*?$/,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(g.createTextNode("Created with Highstock 5.0.3"));this.defs=this.createElement("defs").add();this.allowHTML=n;this.forExport=d;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(c,v,!1);var f;E&&a.getBoundingClientRect&&(c=function(){w(a,{left:0,top:0});f=a.getBoundingClientRect(); +w(a,{left:Math.ceil(f.left)-f.left+"px",top:Math.ceil(f.top)-f.top+"px"})},c(),this.unSubPixelFix=G(R,"resize",c))},getStyle:function(a){return this.style=C({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},a)},setStyle:function(a){this.boxWrapper.css(this.getStyle(a))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();e(this.gradients||{});this.gradients= +null;a&&(this.defs=a.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(a){var c=new this.Element;c.init(this,a);return c},draw:J,getRadialAttr:function(a,c){return{cx:a[0]-a[2]/2+c.cx*a[2],cy:a[1]-a[2]/2+c.cy*a[2],r:c.r*a[2]}},buildText:function(a){for(var c=a.element,z=this,b=z.forExport,n=y(a.textStr,"").toString(),f=-1!==n.indexOf("\x3c"),e=c.childNodes,q,F,x,A,I=p(c,"x"),m=a.styles,k=a.textWidth,C=m&&m.lineHeight,M=m&&m.textOutline,J=m&& +"ellipsis"===m.textOverflow,E=e.length,O=k&&!a.added&&this.box,t=function(a){var v;v=/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize:m&&m.fontSize||z.style.fontSize||12;return C?u(C):z.fontMetrics(v,a.getAttribute("style")?a:c).h};E--;)c.removeChild(e[E]);f||M||J||k||-1!==n.indexOf(" ")?(q=/<.*class="([^"]+)".*>/,F=/<.*style="([^"]+)".*>/,x=/<.*href="(http[^"]+)".*>/,O&&O.appendChild(c),n=f?n.replace(/<(b|strong)>/g,'\x3cspan style\x3d"font-weight:bold"\x3e').replace(/<(i|em)>/g,'\x3cspan style\x3d"font-style:italic"\x3e').replace(//g,"\x3c/span\x3e").split(//g):[n],n=d(n,function(a){return""!==a}),h(n,function(d,n){var f,e=0;d=d.replace(/^\s+|\s+$/g,"").replace(//g,"\x3c/span\x3e|||");f=d.split("|||");h(f,function(d){if(""!==d||1===f.length){var u={},y=g.createElementNS(z.SVG_NS,"tspan"),L,h;q.test(d)&&(L=d.match(q)[1],p(y,"class",L));F.test(d)&&(h=d.match(F)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),p(y,"style",h));x.test(d)&&!b&&(p(y, +"onclick",'location.href\x3d"'+d.match(x)[1]+'"'),w(y,{cursor:"pointer"}));d=(d.replace(/<(.|\n)*?>/g,"")||" ").replace(/</g,"\x3c").replace(/>/g,"\x3e");if(" "!==d){y.appendChild(g.createTextNode(d));e?u.dx=0:n&&null!==I&&(u.x=I);p(y,u);c.appendChild(y);!e&&n&&(!v&&b&&w(y,{display:"block"}),p(y,"dy",t(y)));if(k){u=d.replace(/([^\^])-/g,"$1- ").split(" ");L="nowrap"===m.whiteSpace;for(var C=1k,void 0===A&&(A=M),J&&A?(Q/=2,""===l||!M&&.5>Q?u=[]:(l=d.substring(0,l.length+(M?-1:1)*Math.ceil(Q)),u=[l+(3k&&(k=P)),u.length&&y.appendChild(g.createTextNode(u.join(" ").replace(/- /g, +"-")));a.rotation=R}e++}}})}),A&&a.attr("title",a.textStr),O&&O.removeChild(c),M&&a.applyTextOutline&&a.applyTextOutline(M)):c.appendChild(g.createTextNode(n.replace(/</g,"\x3c").replace(/>/g,"\x3e")))},getContrast:function(a){a=r(a).rgba;return 510v?d>c+f&&de?d>c+f&&db&&e>a+f&&ed&&e>a+f&&ea?a+3:Math.round(1.2*a);return{h:c,b:Math.round(.8*c),f:a}},rotCorr:function(a, +c,v){var b=a;c&&v&&(b=Math.max(b*Math.cos(c*m),4));return{x:-a/3*Math.sin(c*m),y:b}},label:function(a,c,v,b,d,n,f,e,K){var q=this,u=q.g("button"!==K&&"label"),y=u.text=q.text("",0,0,f).attr({zIndex:1}),g,F,z=0,A=3,L=0,m,M,J,E,O,t={},l,R,r=/^url\((.*?)\)$/.test(b),p=r,P,w,Q,S;K&&u.addClass("highcharts-"+K);p=r;P=function(){return(l||0)%2/2};w=function(){var a=y.element.style,c={};F=(void 0===m||void 0===M||O)&&k(y.textStr)&&y.getBBox();u.width=(m||F.width||0)+2*A+L;u.height=(M||F.height||0)+2*A;R= +A+q.fontMetrics(a&&a.fontSize,y).b;p&&(g||(u.box=g=q.symbols[b]||r?q.symbol(b):q.rect(),g.addClass(("button"===K?"":"highcharts-label-box")+(K?" highcharts-"+K+"-box":"")),g.add(u),a=P(),c.x=a,c.y=(e?-R:0)+a),c.width=Math.round(u.width),c.height=Math.round(u.height),g.attr(C(c,t)),t={})};Q=function(){var a=L+A,c;c=e?0:R;k(m)&&F&&("center"===O||"right"===O)&&(a+={center:.5,right:1}[O]*(m-F.width));if(a!==y.x||c!==y.y)y.attr("x",a),void 0!==c&&y.attr("y",c);y.x=a;y.y=c};S=function(a,c){g?g.attr(a,c): +t[a]=c};u.onAdd=function(){y.add(u);u.attr({text:a||0===a?a:"",x:c,y:v});g&&k(d)&&u.attr({anchorX:d,anchorY:n})};u.widthSetter=function(a){m=a};u.heightSetter=function(a){M=a};u["text-alignSetter"]=function(a){O=a};u.paddingSetter=function(a){k(a)&&a!==A&&(A=u.padding=a,Q())};u.paddingLeftSetter=function(a){k(a)&&a!==L&&(L=a,Q())};u.alignSetter=function(a){a={left:0,center:.5,right:1}[a];a!==z&&(z=a,F&&u.attr({x:J}))};u.textSetter=function(a){void 0!==a&&y.textSetter(a);w();Q()};u["stroke-widthSetter"]= +function(a,c){a&&(p=!0);l=this["stroke-width"]=a;S(c,a)};u.strokeSetter=u.fillSetter=u.rSetter=function(a,c){"fill"===c&&a&&(p=!0);S(c,a)};u.anchorXSetter=function(a,c){d=a;S(c,Math.round(a)-P()-J)};u.anchorYSetter=function(a,c){n=a;S(c,a-E)};u.xSetter=function(a){u.x=a;z&&(a-=z*((m||F.width)+2*A));J=Math.round(a);u.attr("translateX",J)};u.ySetter=function(a){E=u.y=Math.round(a);u.attr("translateY",E)};var T=u.css;return C(u,{css:function(a){if(a){var c={};a=x(a);h(u.textProps,function(v){void 0!== +a[v]&&(c[v]=a[v],delete a[v])});y.css(c)}return T.call(u,a)},getBBox:function(){return{width:F.width+2*A,height:F.height+2*A,x:F.x-A,y:F.y-A}},shadow:function(a){a&&(w(),g&&g.shadow(a));return u},destroy:function(){I(u.element,"mouseenter");I(u.element,"mouseleave");y&&(y=y.destroy());g&&(g=g.destroy());D.prototype.destroy.call(u);u=q=w=Q=S=null}})}};a.Renderer=B})(N);(function(a){var D=a.attr,B=a.createElement,G=a.css,H=a.defined,p=a.each,l=a.extend,r=a.isFirefox,w=a.isMS,t=a.isWebKit,k=a.pInt,m= +a.SVGRenderer,e=a.win,g=a.wrap;l(a.SVGElement.prototype,{htmlCss:function(a){var e=this.element;if(e=a&&"SPAN"===e.tagName&&a.width)delete a.width,this.textWidth=e,this.updateTransform();a&&"ellipsis"===a.textOverflow&&(a.whiteSpace="nowrap",a.overflow="hidden");this.styles=l(this.styles,a);G(this.element,a);return this},htmlGetBBox:function(){var a=this.element;"text"===a.nodeName&&(a.style.position="absolute");return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var a= +this.renderer,e=this.element,f=this.translateX||0,d=this.translateY||0,b=this.x||0,q=this.y||0,g=this.textAlign||"left",c={left:0,center:.5,right:1}[g],F=this.styles;G(e,{marginLeft:f,marginTop:d});this.shadows&&p(this.shadows,function(a){G(a,{marginLeft:f+1,marginTop:d+1})});this.inverted&&p(e.childNodes,function(c){a.invertChild(c,e)});if("SPAN"===e.tagName){var n=this.rotation,A=k(this.textWidth),x=F&&F.whiteSpace,m=[n,g,e.innerHTML,this.textWidth,this.textAlign].join();m!==this.cTT&&(F=a.fontMetrics(e.style.fontSize).b, +H(n)&&this.setSpanRotation(n,c,F),G(e,{width:"",whiteSpace:x||"nowrap"}),e.offsetWidth>A&&/[ \-]/.test(e.textContent||e.innerText)&&G(e,{width:A+"px",display:"block",whiteSpace:x||"normal"}),this.getSpanCorrection(e.offsetWidth,F,c,n,g));G(e,{left:b+(this.xCorr||0)+"px",top:q+(this.yCorr||0)+"px"});t&&(F=e.offsetHeight);this.cTT=m}}else this.alignOnAdd=!0},setSpanRotation:function(a,g,f){var d={},b=w?"-ms-transform":t?"-webkit-transform":r?"MozTransform":e.opera?"-o-transform":"";d[b]=d.transform= +"rotate("+a+"deg)";d[b+(r?"Origin":"-origin")]=d.transformOrigin=100*g+"% "+f+"px";G(this.element,d)},getSpanCorrection:function(a,e,f){this.xCorr=-a*f;this.yCorr=-e}});l(m.prototype,{html:function(a,e,f){var d=this.createElement("span"),b=d.element,q=d.renderer,h=q.isSVG,c=function(a,c){p(["opacity","visibility"],function(b){g(a,b+"Setter",function(a,b,d,n){a.call(this,b,d,n);c[d]=b})})};d.textSetter=function(a){a!==b.innerHTML&&delete this.bBox;b.innerHTML=this.textStr=a;d.htmlUpdateTransform()}; +h&&c(d,d.element.style);d.xSetter=d.ySetter=d.alignSetter=d.rotationSetter=function(a,c){"align"===c&&(c="textAlign");d[c]=a;d.htmlUpdateTransform()};d.attr({text:a,x:Math.round(e),y:Math.round(f)}).css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize,position:"absolute"});b.style.whiteSpace="nowrap";d.css=d.htmlCss;h&&(d.add=function(a){var n,f=q.box.parentNode,e=[];if(this.parentGroup=a){if(n=a.div,!n){for(;a;)e.push(a),a=a.parentGroup;p(e.reverse(),function(a){var b,d=D(a.element, +"class");d&&(d={className:d});n=a.div=a.div||B("div",d,{position:"absolute",left:(a.translateX||0)+"px",top:(a.translateY||0)+"px",display:a.display,opacity:a.opacity,pointerEvents:a.styles&&a.styles.pointerEvents},n||f);b=n.style;l(a,{translateXSetter:function(c,d){b.left=c+"px";a[d]=c;a.doTransform=!0},translateYSetter:function(c,d){b.top=c+"px";a[d]=c;a.doTransform=!0}});c(a,b)})}}else n=f;n.appendChild(b);d.added=!0;d.alignOnAdd&&d.htmlUpdateTransform();return d});return d}})})(N);(function(a){var D, +B,G=a.createElement,H=a.css,p=a.defined,l=a.deg2rad,r=a.discardElement,w=a.doc,t=a.each,k=a.erase,m=a.extend;D=a.extendClass;var e=a.isArray,g=a.isNumber,h=a.isObject,C=a.merge;B=a.noop;var f=a.pick,d=a.pInt,b=a.SVGElement,q=a.SVGRenderer,E=a.win;a.svg||(B={docMode8:w&&8===w.documentMode,init:function(a,b){var c=["\x3c",b,' filled\x3d"f" stroked\x3d"f"'],d=["position: ","absolute",";"],f="div"===b;("shape"===b||f)&&d.push("left:0;top:0;width:1px;height:1px;");d.push("visibility: ",f?"hidden":"visible"); +c.push(' style\x3d"',d.join(""),'"/\x3e');b&&(c=f||"span"===b||"img"===b?c.join(""):a.prepVML(c),this.element=G(c));this.renderer=a},add:function(a){var c=this.renderer,b=this.element,d=c.box,f=a&&a.inverted,d=a?a.element||a:d;a&&(this.parentGroup=a);f&&c.invertChild(b,d);d.appendChild(b);this.added=!0;this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform();if(this.onAdd)this.onAdd();this.className&&this.attr("class",this.className);return this},updateTransform:b.prototype.htmlUpdateTransform, +setSpanRotation:function(){var a=this.rotation,b=Math.cos(a*l),d=Math.sin(a*l);H(this.element,{filter:a?["progid:DXImageTransform.Microsoft.Matrix(M11\x3d",b,", M12\x3d",-d,", M21\x3d",d,", M22\x3d",b,", sizingMethod\x3d'auto expand')"].join(""):"none"})},getSpanCorrection:function(a,b,d,e,q){var c=e?Math.cos(e*l):1,n=e?Math.sin(e*l):0,u=f(this.elemHeight,this.element.offsetHeight),g;this.xCorr=0>c&&-a;this.yCorr=0>n&&-u;g=0>c*n;this.xCorr+=n*b*(g?1-d:d);this.yCorr-=c*b*(e?g?d:1-d:1);q&&"left"!== +q&&(this.xCorr-=a*d*(0>c?-1:1),e&&(this.yCorr-=u*d*(0>n?-1:1)),H(this.element,{textAlign:q}))},pathToVML:function(a){for(var c=a.length,b=[];c--;)g(a[c])?b[c]=Math.round(10*a[c])-5:"Z"===a[c]?b[c]="x":(b[c]=a[c],!a.isArc||"wa"!==a[c]&&"at"!==a[c]||(b[c+5]===b[c+7]&&(b[c+7]+=a[c+7]>a[c+5]?1:-1),b[c+6]===b[c+8]&&(b[c+8]+=a[c+8]>a[c+6]?1:-1)));return b.join(" ")||"x"},clip:function(a){var c=this,b;a?(b=a.members,k(b,c),b.push(c),c.destroyClip=function(){k(b,c)},a=a.getCSS(c)):(c.destroyClip&&c.destroyClip(), +a={clip:c.docMode8?"inherit":"rect(auto)"});return c.css(a)},css:b.prototype.htmlCss,safeRemoveChild:function(a){a.parentNode&&r(a)},destroy:function(){this.destroyClip&&this.destroyClip();return b.prototype.destroy.apply(this)},on:function(a,b){this.element["on"+a]=function(){var a=E.event;a.target=a.srcElement;b(a)};return this},cutOffPath:function(a,b){var c;a=a.split(/[ ,]/);c=a.length;if(9===c||11===c)a[c-4]=a[c-2]=d(a[c-2])-10*b;return a.join(" ")},shadow:function(a,b,e){var c=[],n,q=this.element, +g=this.renderer,u,I=q.style,F,v=q.path,K,h,m,z;v&&"string"!==typeof v.value&&(v="x");h=v;if(a){m=f(a.width,3);z=(a.opacity||.15)/m;for(n=1;3>=n;n++)K=2*m+1-2*n,e&&(h=this.cutOffPath(v.value,K+.5)),F=['\x3cshape isShadow\x3d"true" strokeweight\x3d"',K,'" filled\x3d"false" path\x3d"',h,'" coordsize\x3d"10 10" style\x3d"',q.style.cssText,'" /\x3e'],u=G(g.prepVML(F),null,{left:d(I.left)+f(a.offsetX,1),top:d(I.top)+f(a.offsetY,1)}),e&&(u.cutOff=K+1),F=['\x3cstroke color\x3d"',a.color||"#000000",'" opacity\x3d"', +z*n,'"/\x3e'],G(g.prepVML(F),null,null,u),b?b.element.appendChild(u):q.parentNode.insertBefore(u,q),c.push(u);this.shadows=c}return this},updateShadows:B,setAttr:function(a,b){this.docMode8?this.element[a]=b:this.element.setAttribute(a,b)},classSetter:function(a){(this.added?this.element:this).className=a},dashstyleSetter:function(a,b,d){(d.getElementsByTagName("stroke")[0]||G(this.renderer.prepVML(["\x3cstroke/\x3e"]),null,null,d))[b]=a||"solid";this[b]=a},dSetter:function(a,b,d){var c=this.shadows; +a=a||[];this.d=a.join&&a.join(" ");d.path=a=this.pathToVML(a);if(c)for(d=c.length;d--;)c[d].path=c[d].cutOff?this.cutOffPath(a,c[d].cutOff):a;this.setAttr(b,a)},fillSetter:function(a,b,d){var c=d.nodeName;"SPAN"===c?d.style.color=a:"IMG"!==c&&(d.filled="none"!==a,this.setAttr("fillcolor",this.renderer.color(a,d,b,this)))},"fill-opacitySetter":function(a,b,d){G(this.renderer.prepVML(["\x3c",b.split("-")[0],' opacity\x3d"',a,'"/\x3e']),null,null,d)},opacitySetter:B,rotationSetter:function(a,b,d){d= +d.style;this[b]=d[b]=a;d.left=-Math.round(Math.sin(a*l)+1)+"px";d.top=Math.round(Math.cos(a*l))+"px"},strokeSetter:function(a,b,d){this.setAttr("strokecolor",this.renderer.color(a,d,b,this))},"stroke-widthSetter":function(a,b,d){d.stroked=!!a;this[b]=a;g(a)&&(a+="px");this.setAttr("strokeweight",a)},titleSetter:function(a,b){this.setAttr(b,a)},visibilitySetter:function(a,b,d){"inherit"===a&&(a="visible");this.shadows&&t(this.shadows,function(c){c.style[b]=a});"DIV"===d.nodeName&&(a="hidden"===a?"-999em": +0,this.docMode8||(d.style[b]=a?"visible":"hidden"),b="top");d.style[b]=a},xSetter:function(a,b,d){this[b]=a;"x"===b?b="left":"y"===b&&(b="top");this.updateClipping?(this[b]=a,this.updateClipping()):d.style[b]=a},zIndexSetter:function(a,b,d){d.style[b]=a}},B["stroke-opacitySetter"]=B["fill-opacitySetter"],a.VMLElement=B=D(b,B),B.prototype.ySetter=B.prototype.widthSetter=B.prototype.heightSetter=B.prototype.xSetter,B={Element:B,isIE8:-1l[0]&&c.push([1,l[1]]);t(c,function(c,b){q.test(c[1])?(n=a.color(c[1]),v=n.get("rgb"),K=n.get("a")):(v=c[1],K=1);r.push(100*c[0]+"% "+v);b?(m=K,k=v):(z=K,E=v)});if("fill"===d)if("gradient"===g)d=A.x1||A[0]||0,c=A.y1||A[1]||0,F=A.x2||A[2]||0,A=A.y2||A[3]||0,C='angle\x3d"'+(90-180*Math.atan((A-c)/(F-d))/Math.PI)+'"',p();else{var h=A.r,w=2*h,B=2*h,D=A.cx,H=A.cy,V=b.radialReference,U,h=function(){V&&(U=f.getBBox(),D+=(V[0]- +U.x)/U.width-.5,H+=(V[1]-U.y)/U.height-.5,w*=V[2]/U.width,B*=V[2]/U.height);C='src\x3d"'+a.getOptions().global.VMLRadialGradientURL+'" size\x3d"'+w+","+B+'" origin\x3d"0.5,0.5" position\x3d"'+D+","+H+'" color2\x3d"'+E+'" ';p()};f.added?h():f.onAdd=h;h=k}else h=v}else q.test(c)&&"IMG"!==b.tagName?(n=a.color(c),f[d+"-opacitySetter"](n.get("a"),d,b),h=n.get("rgb")):(h=b.getElementsByTagName(d),h.length&&(h[0].opacity=1,h[0].type="solid"),h=c);return h},prepVML:function(a){var c=this.isIE8;a=a.join(""); +c?(a=a.replace("/\x3e",' xmlns\x3d"urn:schemas-microsoft-com:vml" /\x3e'),a=-1===a.indexOf('style\x3d"')?a.replace("/\x3e",' style\x3d"display:inline-block;behavior:url(#default#VML);" /\x3e'):a.replace('style\x3d"','style\x3d"display:inline-block;behavior:url(#default#VML);')):a=a.replace("\x3c","\x3chcv:");return a},text:q.prototype.html,path:function(a){var c={coordsize:"10 10"};e(a)?c.d=a:h(a)&&m(c,a);return this.createElement("shape").attr(c)},circle:function(a,b,d){var c=this.symbol("circle"); +h(a)&&(d=a.r,b=a.y,a=a.x);c.isCircle=!0;c.r=d;return c.attr({x:a,y:b})},g:function(a){var c;a&&(c={className:"highcharts-"+a,"class":"highcharts-"+a});return this.createElement("div").attr(c)},image:function(a,b,d,f,e){var c=this.createElement("img").attr({src:a});1f&&m-d*bg&&(F=Math.round((e-m)/Math.cos(f*w)));else if(e=m+(1-d)*b,m-d*bg&&(E=g-a.x+E*d,c=-1),E=Math.min(q, +E),EE||k.autoRotation&&(C.styles||{}).width)F=E;F&&(n.width=F,(k.options.labels.style||{}).textOverflow||(n.textOverflow="ellipsis"),C.css(n))},getPosition:function(a,k,m,e){var g=this.axis,h=g.chart,l=e&&h.oldChartHeight||h.chartHeight;return{x:a?g.translate(k+m,null,null,e)+g.transB:g.left+g.offset+(g.opposite?(e&&h.oldChartWidth||h.chartWidth)-g.right-g.left:0),y:a?l-g.bottom+g.offset-(g.opposite?g.height:0):l-g.translate(k+m,null, +null,e)-g.transB}},getLabelPosition:function(a,k,m,e,g,h,l,f){var d=this.axis,b=d.transA,q=d.reversed,E=d.staggerLines,c=d.tickRotCorr||{x:0,y:0},F=g.y;B(F)||(F=0===d.side?m.rotation?-8:-m.getBBox().height:2===d.side?c.y+8:Math.cos(m.rotation*w)*(c.y-m.getBBox(!1,0).height/2));a=a+g.x+c.x-(h&&e?h*b*(q?-1:1):0);k=k+F-(h&&!e?h*b*(q?1:-1):0);E&&(m=l/(f||1)%E,d.opposite&&(m=E-m-1),k+=d.labelOffset/E*m);return{x:a,y:Math.round(k)}},getMarkPath:function(a,k,m,e,g,h){return h.crispLine(["M",a,k,"L",a+(g? +0:-m),k+(g?m:0)],e)},render:function(a,k,m){var e=this.axis,g=e.options,h=e.chart.renderer,C=e.horiz,f=this.type,d=this.label,b=this.pos,q=g.labels,E=this.gridLine,c=f?f+"Tick":"tick",F=e.tickSize(c),n=this.mark,A=!n,x=q.step,p={},y=!0,u=e.tickmarkOffset,I=this.getPosition(C,b,u,k),M=I.x,I=I.y,v=C&&M===e.pos+e.len||!C&&I===e.pos?-1:1,K=f?f+"Grid":"grid",O=g[K+"LineWidth"],R=g[K+"LineColor"],z=g[K+"LineDashStyle"],K=l(g[c+"Width"],!f&&e.isXAxis?1:0),c=g[c+"Color"];m=l(m,1);this.isActive=!0;E||(p.stroke= +R,p["stroke-width"]=O,z&&(p.dashstyle=z),f||(p.zIndex=1),k&&(p.opacity=0),this.gridLine=E=h.path().attr(p).addClass("highcharts-"+(f?f+"-":"")+"grid-line").add(e.gridGroup));if(!k&&E&&(b=e.getPlotLinePath(b+u,E.strokeWidth()*v,k,!0)))E[this.isNew?"attr":"animate"]({d:b,opacity:m});F&&(e.opposite&&(F[0]=-F[0]),A&&(this.mark=n=h.path().addClass("highcharts-"+(f?f+"-":"")+"tick").add(e.axisGroup),n.attr({stroke:c,"stroke-width":K})),n[A?"attr":"animate"]({d:this.getMarkPath(M,I,F[0],n.strokeWidth()* +v,C,h),opacity:m}));d&&H(M)&&(d.xy=I=this.getLabelPosition(M,I,d,C,q,u,a,x),this.isFirst&&!this.isLast&&!l(g.showFirstLabel,1)||this.isLast&&!this.isFirst&&!l(g.showLastLabel,1)?y=!1:!C||e.isRadial||q.step||q.rotation||k||0===m||this.handleOverflow(I),x&&a%x&&(y=!1),y&&H(I.y)?(I.opacity=m,d[this.isNew?"attr":"animate"](I)):(r(d),d.attr("y",-9999)),this.isNew=!1)},destroy:function(){G(this,this.axis)}}})(N);(function(a){var D=a.addEvent,B=a.animObject,G=a.arrayMax,H=a.arrayMin,p=a.AxisPlotLineOrBandExtension, +l=a.color,r=a.correctFloat,w=a.defaultOptions,t=a.defined,k=a.deg2rad,m=a.destroyObjectProperties,e=a.each,g=a.error,h=a.extend,C=a.fireEvent,f=a.format,d=a.getMagnitude,b=a.grep,q=a.inArray,E=a.isArray,c=a.isNumber,F=a.isString,n=a.merge,A=a.normalizeTickInterval,x=a.pick,J=a.PlotLineOrBand,y=a.removeEvent,u=a.splat,I=a.syncTimeout,M=a.Tick;a.Axis=function(){this.init.apply(this,arguments)};a.Axis.prototype={defaultOptions:{dateTimeLabelFormats:{millisecond:"%H:%M:%S.%L",second:"%H:%M:%S",minute:"%H:%M", +hour:"%H:%M",day:"%e. %b",week:"%e. %b",month:"%b '%y",year:"%Y"},endOnTick:!1,labels:{enabled:!0,style:{color:"#666666",cursor:"default",fontSize:"11px"},x:0},minPadding:.01,maxPadding:.01,minorTickLength:2,minorTickPosition:"outside",startOfWeek:1,startOnTick:!1,tickLength:10,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",title:{align:"middle",style:{color:"#666666"}},type:"linear",minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#ccd6eb", +lineWidth:1,gridLineColor:"#e6e6e6",tickColor:"#ccd6eb"},defaultYAxisOptions:{endOnTick:!0,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},maxPadding:.05,minPadding:.05,startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{enabled:!1,formatter:function(){return a.numberFormat(this.total,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"#000000",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},defaultLeftAxisOptions:{labels:{x:-15},title:{rotation:270}},defaultRightAxisOptions:{labels:{x:15}, +title:{rotation:90}},defaultBottomAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},defaultTopAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},init:function(a,c){var b=c.isX;this.chart=a;this.horiz=a.inverted?!b:b;this.isXAxis=b;this.coll=this.coll||(b?"xAxis":"yAxis");this.opposite=c.opposite;this.side=c.side||(this.horiz?this.opposite?0:2:this.opposite?1:3);this.setOptions(c);var d=this.options,v=d.type;this.labelFormatter=d.labels.formatter||this.defaultLabelFormatter; +this.userOptions=c;this.minPixelPadding=0;this.reversed=d.reversed;this.visible=!1!==d.visible;this.zoomEnabled=!1!==d.zoomEnabled;this.hasNames="category"===v||!0===d.categories;this.categories=d.categories||this.hasNames;this.names=this.names||[];this.isLog="logarithmic"===v;this.isDatetimeAxis="datetime"===v;this.isLinked=t(d.linkedTo);this.ticks={};this.labelEdge=[];this.minorTicks={};this.plotLinesAndBands=[];this.alternateBands={};this.len=0;this.minRange=this.userMinRange=d.minRange||d.maxZoom; +this.range=d.range;this.offset=d.offset||0;this.stacks={};this.oldStacks={};this.stacksTouched=0;this.min=this.max=null;this.crosshair=x(d.crosshair,u(a.options.tooltip.crosshairs)[b?0:1],!1);var f;c=this.options.events;-1===q(this,a.axes)&&(b?a.axes.splice(a.xAxis.length,0,this):a.axes.push(this),a[this.coll].push(this));this.series=this.series||[];a.inverted&&b&&void 0===this.reversed&&(this.reversed=!0);this.removePlotLine=this.removePlotBand=this.removePlotBandOrLine;for(f in c)D(this,f,c[f]); +this.isLog&&(this.val2lin=this.log2lin,this.lin2val=this.lin2log)},setOptions:function(a){this.options=n(this.defaultOptions,"yAxis"===this.coll&&this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],n(w[this.coll],a))},defaultLabelFormatter:function(){var c=this.axis,b=this.value,d=c.categories,e=this.dateTimeLabelFormat,q=w.lang,u=q.numericSymbols,q=q.numericSymbolMagnitude||1E3,n=u&&u.length,g,y=c.options.labels.format, +c=c.isLog?b:c.tickInterval;if(y)g=f(y,this);else if(d)g=b;else if(e)g=a.dateFormat(e,b);else if(n&&1E3<=c)for(;n--&&void 0===g;)d=Math.pow(q,n+1),c>=d&&0===10*b%d&&null!==u[n]&&0!==b&&(g=a.numberFormat(b/d,-1)+u[n]);void 0===g&&(g=1E4<=Math.abs(b)?a.numberFormat(b,-1):a.numberFormat(b,-1,void 0,""));return g},getSeriesExtremes:function(){var a=this,d=a.chart;a.hasVisibleSeries=!1;a.dataMin=a.dataMax=a.threshold=null;a.softThreshold=!a.isXAxis;a.buildStacks&&a.buildStacks();e(a.series,function(v){if(v.visible|| +!d.options.chart.ignoreHiddenSeries){var f=v.options,e=f.threshold,q;a.hasVisibleSeries=!0;a.isLog&&0>=e&&(e=null);if(a.isXAxis)f=v.xData,f.length&&(v=H(f),c(v)||v instanceof Date||(f=b(f,function(a){return c(a)}),v=H(f)),a.dataMin=Math.min(x(a.dataMin,f[0]),v),a.dataMax=Math.max(x(a.dataMax,f[0]),G(f)));else if(v.getExtremes(),q=v.dataMax,v=v.dataMin,t(v)&&t(q)&&(a.dataMin=Math.min(x(a.dataMin,v),v),a.dataMax=Math.max(x(a.dataMax,q),q)),t(e)&&(a.threshold=e),!f.softThreshold||a.isLog)a.softThreshold= +!1}})},translate:function(a,b,d,f,e,q){var v=this.linkedParent||this,u=1,n=0,g=f?v.oldTransA:v.transA;f=f?v.oldMin:v.min;var K=v.minPixelPadding;e=(v.isOrdinal||v.isBroken||v.isLog&&e)&&v.lin2val;g||(g=v.transA);d&&(u*=-1,n=v.len);v.reversed&&(u*=-1,n-=u*(v.sector||v.len));b?(a=(a*u+n-K)/g+f,e&&(a=v.lin2val(a))):(e&&(a=v.val2lin(a)),a=u*(a-f)*g+n+u*K+(c(q)?g*q:0));return a},toPixels:function(a,c){return this.translate(a,!1,!this.horiz,null,!0)+(c?0:this.pos)},toValue:function(a,c){return this.translate(a- +(c?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(a,b,d,f,e){var v=this.chart,q=this.left,u=this.top,n,g,K=d&&v.oldChartHeight||v.chartHeight,y=d&&v.oldChartWidth||v.chartWidth,z;n=this.transB;var h=function(a,c,b){if(ab)f?a=Math.min(Math.max(c,a),b):z=!0;return a};e=x(e,this.translate(a,null,null,d));a=d=Math.round(e+n);n=g=Math.round(K-e-n);c(e)?this.horiz?(n=u,g=K-this.bottom,a=d=h(a,q,q+this.width)):(a=q,d=y-this.right,n=g=h(n,u,u+this.height)):z=!0;return z&&!f?null:v.renderer.crispLine(["M", +a,n,"L",d,g],b||1)},getLinearTickPositions:function(a,b,d){var v,f=r(Math.floor(b/a)*a),e=r(Math.ceil(d/a)*a),q=[];if(b===d&&c(b))return[b];for(b=f;b<=e;){q.push(b);b=r(b+a);if(b===v)break;v=b}return q},getMinorTickPositions:function(){var a=this.options,c=this.tickPositions,b=this.minorTickInterval,d=[],f,e=this.pointRangePadding||0;f=this.min-e;var e=this.max+e,q=e-f;if(q&&q/b=this.minRange,q,u,n,g,y,h;this.isXAxis&&void 0===this.minRange&&!this.isLog&&(t(a.min)||t(a.max)?this.minRange=null:(e(this.series,function(a){g=a.xData;for(u=y=a.xIncrement? +1:g.length-1;0=E?(p=E,m=0):b.dataMax<=E&&(J=E,I=0)),b.min=x(w,p,b.dataMin),b.max=x(B,J,b.dataMax));q&&(!a&&0>=Math.min(b.min, +x(b.dataMin,b.min))&&g(10,1),b.min=r(u(b.min),15),b.max=r(u(b.max),15));b.range&&t(b.max)&&(b.userMin=b.min=w=Math.max(b.min,b.minFromRange()),b.userMax=B=b.max,b.range=null);C(b,"foundExtremes");b.beforePadding&&b.beforePadding();b.adjustForMinRange();!(l||b.axisPointRange||b.usePercentage||h)&&t(b.min)&&t(b.max)&&(u=b.max-b.min)&&(!t(w)&&m&&(b.min-=u*m),!t(B)&&I&&(b.max+=u*I));c(f.floor)?b.min=Math.max(b.min,f.floor):c(f.softMin)&&(b.min=Math.min(b.min,f.softMin));c(f.ceiling)?b.max=Math.min(b.max, +f.ceiling):c(f.softMax)&&(b.max=Math.max(b.max,f.softMax));M&&t(b.dataMin)&&(E=E||0,!t(w)&&b.min=E?b.min=E:!t(B)&&b.max>E&&b.dataMax<=E&&(b.max=E));b.tickInterval=b.min===b.max||void 0===b.min||void 0===b.max?1:h&&!k&&F===b.linkedParent.options.tickPixelInterval?k=b.linkedParent.tickInterval:x(k,this.tickAmount?(b.max-b.min)/Math.max(this.tickAmount-1,1):void 0,l?1:(b.max-b.min)*F/Math.max(b.len,F));y&&!a&&e(b.series,function(a){a.processData(b.min!==b.oldMin||b.max!==b.oldMax)});b.setAxisTranslation(!0); +b.beforeSetTickPositions&&b.beforeSetTickPositions();b.postProcessTickInterval&&(b.tickInterval=b.postProcessTickInterval(b.tickInterval));b.pointRange&&!k&&(b.tickInterval=Math.max(b.pointRange,b.tickInterval));a=x(f.minTickInterval,b.isDatetimeAxis&&b.closestPointRange);!k&&b.tickIntervalb.tickInterval&&1E3b.max)),!!this.tickAmount));this.tickAmount||(b.tickInterval= +b.unsquish());this.setTickPositions()},setTickPositions:function(){var a=this.options,b,c=a.tickPositions,d=a.tickPositioner,f=a.startOnTick,e=a.endOnTick,q;this.tickmarkOffset=this.categories&&"between"===a.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval="auto"===a.minorTickInterval&&this.tickInterval?this.tickInterval/5:a.minorTickInterval;this.tickPositions=b=c&&c.slice();!b&&(b=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,a.units), +this.min,this.max,a.startOfWeek,this.ordinalPositions,this.closestPointRange,!0):this.isLog?this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max),b.length>this.len&&(b=[b[0],b.pop()]),this.tickPositions=b,d&&(d=d.apply(this,[this.min,this.max])))&&(this.tickPositions=b=d);this.isLinked||(this.trimTicks(b,f,e),this.min===this.max&&t(this.min)&&!this.tickAmount&&(q=!0,this.min-=.5,this.max+=.5),this.single=q,c||d||this.adjustTickAmount())}, +trimTicks:function(a,b,c){var d=a[0],f=a[a.length-1],v=this.minPointOffset||0;if(b)this.min=d;else for(;this.min-v>a[0];)a.shift();if(c)this.max=f;else for(;this.max+vb&&(this.finalTickAmt=b,b=5);this.tickAmount=b},adjustTickAmount:function(){var a=this.tickInterval,b=this.tickPositions,c=this.tickAmount,d=this.finalTickAmt,f=b&&b.length;if(fc&&(this.tickInterval*= +2,this.setTickPositions());if(t(d)){for(a=c=b.length;a--;)(3===d&&1===a%2||2>=d&&0=f&&(b=f)),this.displayBtn=void 0!==a||void 0!==b,this.setExtremes(a,b,!1,void 0,{trigger:"zoom"});return!0},setAxisSize:function(){var a=this.chart,b=this.options,c=b.offsetLeft||0,d=this.horiz,f=x(b.width,a.plotWidth-c+(b.offsetRight||0)),e=x(b.height,a.plotHeight),q=x(b.top,a.plotTop),b=x(b.left,a.plotLeft+c),c=/%$/;c.test(e)&&(e=Math.round(parseFloat(e)/ +100*a.plotHeight));c.test(q)&&(q=Math.round(parseFloat(q)/100*a.plotHeight+a.plotTop));this.left=b;this.top=q;this.width=f;this.height=e;this.bottom=a.chartHeight-e-q;this.right=a.chartWidth-f-b;this.len=Math.max(d?f:e,0);this.pos=d?b:q},getExtremes:function(){var a=this.isLog,b=this.lin2log;return{min:a?r(b(this.min)):this.min,max:a?r(b(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var b=this.isLog,c=this.lin2log, +d=b?c(this.min):this.min,b=b?c(this.max):this.max;null===a?a=d:d>a?a=d:ba?"right":195a?"left":"center"},tickSize:function(a){var b=this.options,c=b[a+"Length"],d=x(b[a+"Width"],"tick"===a&&this.isXAxis?1:0);if(d&&c)return"inside"===b[a+"Position"]&&(c=-c),[c,d]},labelMetrics:function(){return this.chart.renderer.fontMetrics(this.options.labels.style&&this.options.labels.style.fontSize, +this.ticks[0]&&this.ticks[0].label)},unsquish:function(){var a=this.options.labels,b=this.horiz,c=this.tickInterval,d=c,f=this.len/(((this.categories?1:0)+this.max-this.min)/c),q,u=a.rotation,n=this.labelMetrics(),g,y=Number.MAX_VALUE,h,I=function(a){a/=f||1;a=1=a)g=I(Math.abs(n.h/Math.sin(k*a))),b=g+Math.abs(a/360),b(c.step||0)&&!c.rotation&&(this.staggerLines||1)*a.plotWidth/d||!b&&(f&&f-a.spacing[3]||.33*a.chartWidth)},renderUnsquish:function(){var a=this.chart,b=a.renderer,c=this.tickPositions,d=this.ticks,f=this.options.labels,q=this.horiz,u=this.getSlotWidth(),g=Math.max(1, +Math.round(u-2*(f.padding||5))),y={},h=this.labelMetrics(),I=f.style&&f.style.textOverflow,A,x=0,m,k;F(f.rotation)||(y.rotation=f.rotation||0);e(c,function(a){(a=d[a])&&a.labelLength>x&&(x=a.labelLength)});this.maxLabelLength=x;if(this.autoRotation)x>g&&x>h.h?y.rotation=this.labelRotation:this.labelRotation=0;else if(u&&(A={width:g+"px"},!I))for(A.textOverflow="clip",m=c.length;!q&&m--;)if(k=c[m],g=d[k].label)g.styles&&"ellipsis"===g.styles.textOverflow?g.css({textOverflow:"clip"}):d[k].labelLength> +u&&g.css({width:u+"px"}),g.getBBox().height>this.len/c.length-(h.h-h.f)&&(g.specCss={textOverflow:"ellipsis"});y.rotation&&(A={width:(x>.5*a.chartHeight?.33*a.chartHeight:a.chartHeight)+"px"},I||(A.textOverflow="ellipsis"));if(this.labelAlign=f.align||this.autoLabelAlign(this.labelRotation))y.align=this.labelAlign;e(c,function(a){var b=(a=d[a])&&a.label;b&&(b.attr(y),A&&b.css(n(A,b.specCss)),delete b.specCss,a.rotation=y.rotation)});this.tickRotCorr=b.rotCorr(h.b,this.labelRotation||0,0!==this.side)}, +hasData:function(){return this.hasVisibleSeries||t(this.min)&&t(this.max)&&!!this.tickPositions},getOffset:function(){var a=this,b=a.chart,c=b.renderer,d=a.options,f=a.tickPositions,q=a.ticks,u=a.horiz,n=a.side,g=b.inverted?[1,0,3,2][n]:n,y,h,I=0,A,m=0,k=d.title,F=d.labels,E=0,l=a.opposite,C=b.axisOffset,b=b.clipOffset,p=[-1,1,1,-1][n],r,J=d.className,w=a.axisParent,B=this.tickSize("tick");y=a.hasData();a.showAxis=h=y||x(d.showEmpty,!0);a.staggerLines=a.horiz&&F.staggerLines;a.axisGroup||(a.gridGroup= +c.g("grid").attr({zIndex:d.gridZIndex||1}).addClass("highcharts-"+this.coll.toLowerCase()+"-grid "+(J||"")).add(w),a.axisGroup=c.g("axis").attr({zIndex:d.zIndex||2}).addClass("highcharts-"+this.coll.toLowerCase()+" "+(J||"")).add(w),a.labelGroup=c.g("axis-labels").attr({zIndex:F.zIndex||7}).addClass("highcharts-"+a.coll.toLowerCase()+"-labels "+(J||"")).add(w));if(y||a.isLinked)e(f,function(b){q[b]?q[b].addLabel():q[b]=new M(a,b)}),a.renderUnsquish(),!1===F.reserveSpace||0!==n&&2!==n&&{1:"left",3:"right"}[n]!== +a.labelAlign&&"center"!==a.labelAlign||e(f,function(a){E=Math.max(q[a].getLabelSize(),E)}),a.staggerLines&&(E*=a.staggerLines,a.labelOffset=E*(a.opposite?-1:1));else for(r in q)q[r].destroy(),delete q[r];k&&k.text&&!1!==k.enabled&&(a.axisTitle||((r=k.textAlign)||(r=(u?{low:"left",middle:"center",high:"right"}:{low:l?"right":"left",middle:"center",high:l?"left":"right"})[k.align]),a.axisTitle=c.text(k.text,0,0,k.useHTML).attr({zIndex:7,rotation:k.rotation||0,align:r}).addClass("highcharts-axis-title").css(k.style).add(a.axisGroup), +a.axisTitle.isNew=!0),h&&(I=a.axisTitle.getBBox()[u?"height":"width"],A=k.offset,m=t(A)?0:x(k.margin,u?5:10)),a.axisTitle[h?"show":"hide"](!0));a.renderLine();a.offset=p*x(d.offset,C[n]);a.tickRotCorr=a.tickRotCorr||{x:0,y:0};c=0===n?-a.labelMetrics().h:2===n?a.tickRotCorr.y:0;m=Math.abs(E)+m;E&&(m=m-c+p*(u?x(F.y,a.tickRotCorr.y+8*p):F.x));a.axisTitleMargin=x(A,m);C[n]=Math.max(C[n],a.axisTitleMargin+I+p*a.offset,m,y&&f.length&&B?B[0]:0);d=d.offset?0:2*Math.floor(a.axisLine.strokeWidth()/2);b[g]= +Math.max(b[g],d)},getLinePath:function(a){var b=this.chart,c=this.opposite,d=this.offset,f=this.horiz,e=this.left+(c?this.width:0)+d,d=b.chartHeight-this.bottom-(c?this.height:0)+d;c&&(a*=-1);return b.renderer.crispLine(["M",f?this.left:e,f?d:this.top,"L",f?b.chartWidth-this.right:e,f?d:b.chartHeight-this.bottom],a)},renderLine:function(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.axisLine.attr({stroke:this.options.lineColor, +"stroke-width":this.options.lineWidth,zIndex:7}))},getTitlePosition:function(){var a=this.horiz,b=this.left,c=this.top,d=this.len,f=this.options.title,e=a?b:c,q=this.opposite,u=this.offset,n=f.x||0,g=f.y||0,y=this.chart.renderer.fontMetrics(f.style&&f.style.fontSize,this.axisTitle).f,d={low:e+(a?0:d),middle:e+d/2,high:e+(a?d:0)}[f.align],b=(a?c+this.height:b)+(a?1:-1)*(q?-1:1)*this.axisTitleMargin+(2===this.side?y:0);return{x:a?d+n:b+(q?this.width:0)+u+n,y:a?b+g-(q?this.height:0)+u:d+g}},render:function(){var a= +this,b=a.chart,d=b.renderer,f=a.options,q=a.isLog,u=a.lin2log,n=a.isLinked,g=a.tickPositions,y=a.axisTitle,h=a.ticks,A=a.minorTicks,x=a.alternateBands,m=f.stackLabels,k=f.alternateGridColor,F=a.tickmarkOffset,E=a.axisLine,l=b.hasRendered&&c(a.oldMin),C=a.showAxis,p=B(d.globalAnimation),r,t;a.labelEdge.length=0;a.overlap=!1;e([h,A,x],function(a){for(var b in a)a[b].isActive=!1});if(a.hasData()||n)a.minorTickInterval&&!a.categories&&e(a.getMinorTickPositions(),function(b){A[b]||(A[b]=new M(a,b,"minor")); +l&&A[b].isNew&&A[b].render(null,!0);A[b].render(null,!1,1)}),g.length&&(e(g,function(b,c){if(!n||b>=a.min&&b<=a.max)h[b]||(h[b]=new M(a,b)),l&&h[b].isNew&&h[b].render(c,!0,.1),h[b].render(c)}),F&&(0===a.min||a.single)&&(h[-1]||(h[-1]=new M(a,-1,null,!0)),h[-1].render(-1))),k&&e(g,function(c,d){t=void 0!==g[d+1]?g[d+1]+F:a.max-F;0===d%2&&c=e.second?0:A*Math.floor(c.getMilliseconds()/A));if(n>=e.second)c[B.hcSetSeconds](n>=e.minute?0:A*Math.floor(c.getSeconds()/ +A));if(n>=e.minute)c[B.hcSetMinutes](n>=e.hour?0:A*Math.floor(c[B.hcGetMinutes]()/A));if(n>=e.hour)c[B.hcSetHours](n>=e.day?0:A*Math.floor(c[B.hcGetHours]()/A));if(n>=e.day)c[B.hcSetDate](n>=e.month?1:A*Math.floor(c[B.hcGetDate]()/A));n>=e.month&&(c[B.hcSetMonth](n>=e.year?0:A*Math.floor(c[B.hcGetMonth]()/A)),g=c[B.hcGetFullYear]());if(n>=e.year)c[B.hcSetFullYear](g-g%A);if(n===e.week)c[B.hcSetDate](c[B.hcGetDate]()-c[B.hcGetDay]()+m(f,1));g=c[B.hcGetFullYear]();f=c[B.hcGetMonth]();var C=c[B.hcGetDate](), +y=c[B.hcGetHours]();if(B.hcTimezoneOffset||B.hcGetTimezoneOffset)x=(!q||!!B.hcGetTimezoneOffset)&&(k-h>4*e.month||t(h)!==t(k)),c=c.getTime(),c=new B(c+t(c));q=c.getTime();for(h=1;qr&&(!t||b<=w)&&void 0!==b&&h.push(b),b>w&&(q=!0),b=d;else r=e(r),w= +e(w),a=k[t?"minorTickInterval":"tickInterval"],a=p("auto"===a?null:a,this._minorAutoInterval,k.tickPixelInterval/(t?5:1)*(w-r)/((t?m/this.tickPositions.length:m)||1)),a=H(a,null,B(a)),h=G(this.getLinearTickPositions(a,r,w),g),t||(this._minorAutoInterval=a/5);t||(this.tickInterval=a);return h};D.prototype.log2lin=function(a){return Math.log(a)/Math.LN10};D.prototype.lin2log=function(a){return Math.pow(10,a)}})(N);(function(a){var D=a.dateFormat,B=a.each,G=a.extend,H=a.format,p=a.isNumber,l=a.map,r= +a.merge,w=a.pick,t=a.splat,k=a.stop,m=a.syncTimeout,e=a.timeUnits;a.Tooltip=function(){this.init.apply(this,arguments)};a.Tooltip.prototype={init:function(a,e){this.chart=a;this.options=e;this.crosshairs=[];this.now={x:0,y:0};this.isHidden=!0;this.split=e.split&&!a.inverted;this.shared=e.shared||this.split},cleanSplit:function(a){B(this.chart.series,function(e){var g=e&&e.tt;g&&(!g.isActive||a?e.tt=g.destroy():g.isActive=!1)})},getLabel:function(){var a=this.chart.renderer,e=this.options;this.label|| +(this.split?this.label=a.g("tooltip"):(this.label=a.label("",0,0,e.shape||"callout",null,null,e.useHTML,null,"tooltip").attr({padding:e.padding,r:e.borderRadius}),this.label.attr({fill:e.backgroundColor,"stroke-width":e.borderWidth}).css(e.style).shadow(e.shadow)),this.label.attr({zIndex:8}).add());return this.label},update:function(a){this.destroy();this.init(this.chart,r(!0,this.options,a))},destroy:function(){this.label&&(this.label=this.label.destroy());this.split&&this.tt&&(this.cleanSplit(this.chart, +!0),this.tt=this.tt.destroy());clearTimeout(this.hideTimer);clearTimeout(this.tooltipTimeout)},move:function(a,e,m,f){var d=this,b=d.now,q=!1!==d.options.animation&&!d.isHidden&&(1h-q?h:h-q);else if(v)b[a]=Math.max(g,e+q+f>c?e:e+q);else return!1},x=function(a,c,f,e){var q;ec-d?q=!1:b[a]=ec-f/2?c-f-2:e-f/2;return q},k=function(a){var b=c;c=h;h=b;g=a},y=function(){!1!==A.apply(0,c)?!1!==x.apply(0,h)||g||(k(!0),y()):g?b.x=b.y=0:(k(!0),y())};(f.inverted||1y&&(q=!1);a=(e.series&&e.series.yAxis&&e.series.yAxis.pos)+(e.plotY||0);a-=d.plotTop;f.push({target:e.isHeader?d.plotHeight+c:a,rank:e.isHeader?1:0,size:n.tt.getBBox().height+1,point:e,x:y,tt:A})});this.cleanSplit(); +a.distribute(f,d.plotHeight+c);B(f,function(a){var b=a.point;a.tt.attr({visibility:void 0===a.pos?"hidden":"inherit",x:q||b.isHeader?a.x:b.plotX+d.plotLeft+w(m.distance,16),y:a.pos+d.plotTop,anchorX:b.plotX+d.plotLeft,anchorY:b.isHeader?a.pos+d.plotTop-15:b.plotY+d.plotTop})})},updatePosition:function(a){var e=this.chart,g=this.getLabel(),g=(this.options.positioner||this.getPosition).call(this,g.width,g.height,a);this.move(Math.round(g.x),Math.round(g.y||0),a.plotX+e.plotLeft,a.plotY+e.plotTop)}, +getXDateFormat:function(a,h,m){var f;h=h.dateTimeLabelFormats;var d=m&&m.closestPointRange,b,q={millisecond:15,second:12,minute:9,hour:6,day:3},g,c="millisecond";if(d){g=D("%m-%d %H:%M:%S.%L",a.x);for(b in e){if(d===e.week&&+D("%w",a.x)===m.options.startOfWeek&&"00:00:00.000"===g.substr(6)){b="week";break}if(e[b]>d){b=c;break}if(q[b]&&g.substr(q[b])!=="01-01 00:00:00.000".substr(q[b]))break;"week"!==b&&(c=b)}b&&(f=h[b])}else f=h.day;return f||h.year},tooltipFooterHeaderFormatter:function(a,e){var g= +e?"footer":"header";e=a.series;var f=e.tooltipOptions,d=f.xDateFormat,b=e.xAxis,q=b&&"datetime"===b.options.type&&p(a.key),g=f[g+"Format"];q&&!d&&(d=this.getXDateFormat(a,f,b));q&&d&&(g=g.replace("{point.key}","{point.key:"+d+"}"));return H(g,{point:a,series:e})},bodyFormatter:function(a){return l(a,function(a){var e=a.series.tooltipOptions;return(e.pointFormatter||a.point.tooltipFormatter).call(a.point,e.pointFormat)})}}})(N);(function(a){var D=a.addEvent,B=a.attr,G=a.charts,H=a.color,p=a.css,l= +a.defined,r=a.doc,w=a.each,t=a.extend,k=a.fireEvent,m=a.offset,e=a.pick,g=a.removeEvent,h=a.splat,C=a.Tooltip,f=a.win;a.Pointer=function(a,b){this.init(a,b)};a.Pointer.prototype={init:function(a,b){this.options=b;this.chart=a;this.runChartClick=b.chart.events&&!!b.chart.events.click;this.pinchDown=[];this.lastValidTouch={};C&&b.tooltip.enabled&&(a.tooltip=new C(a,b.tooltip),this.followTouchMove=e(b.tooltip.followTouchMove,!0));this.setDOMEvents()},zoomOption:function(a){var b=this.chart,d=b.options.chart, +f=d.zoomType||"",b=b.inverted;/touch/.test(a.type)&&(f=e(d.pinchType,f));this.zoomX=a=/x/.test(f);this.zoomY=f=/y/.test(f);this.zoomHor=a&&!b||f&&b;this.zoomVert=f&&!b||a&&b;this.hasZoom=a||f},normalize:function(a,b){var d,e;a=a||f.event;a.target||(a.target=a.srcElement);e=a.touches?a.touches.length?a.touches.item(0):a.changedTouches[0]:a;b||(this.chartPosition=b=m(this.chart.container));void 0===e.pageX?(d=Math.max(a.x,a.clientX-b.left),b=a.y):(d=e.pageX-b.left,b=e.pageY-b.top);return t(a,{chartX:Math.round(d), +chartY:Math.round(b)})},getCoordinates:function(a){var b={xAxis:[],yAxis:[]};w(this.chart.axes,function(d){b[d.isXAxis?"xAxis":"yAxis"].push({axis:d,value:d.toValue(a[d.horiz?"chartX":"chartY"])})});return b},runPointActions:function(d){var b=this.chart,f=b.series,g=b.tooltip,c=g?g.shared:!1,h=!0,n=b.hoverPoint,m=b.hoverSeries,x,k,y,u=[],I;if(!c&&!m)for(x=0;xb.series.index?-1:1}));if(c)for(x=u.length;x--;)(u[x].x!==u[0].x||u[x].series.noSharedTooltip)&&u.splice(x,1);if(u[0]&&(u[0]!==this.prevKDPoint||g&&g.isHidden)){if(c&& +!u[0].series.noSharedTooltip){for(x=0;xh+k&&(f=h+k),cm+y&&(c=m+y),this.hasDragged=Math.sqrt(Math.pow(l-f,2)+Math.pow(v-c,2)),10x.max&&(l=x.max-c,v=!0);v?(u-=.8*(u-g[f][0]),J||(M-=.8*(M-g[f][1])),p()):g[f]=[u,M];A||(e[f]=F-E,e[q]=c);e=A?1/n:n;m[q]=c;m[f]=l;k[A?a?"scaleY":"scaleX":"scale"+d]=n;k["translate"+d]=e* +E+(u-e*y)},pinch:function(a){var r=this,t=r.chart,k=r.pinchDown,m=a.touches,e=m.length,g=r.lastValidTouch,h=r.hasZoom,C=r.selectionMarker,f={},d=1===e&&(r.inClass(a.target,"highcharts-tracker")&&t.runTrackerClick||r.runChartClick),b={};1b-6&&n(u||d.chartWidth- +2*x-v-e.x)&&(this.itemX=v,this.itemY+=p+this.lastLineHeight+I,this.lastLineHeight=0);this.maxItemWidth=Math.max(this.maxItemWidth,c);this.lastItemY=p+this.itemY+I;this.lastLineHeight=Math.max(g,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];f?this.itemX+=c:(this.itemY+=p+g+I,this.lastLineHeight=g);this.offsetWidth=u||Math.max((f?this.itemX-v-l:c)+x,this.offsetWidth)},getAllItems:function(){var a=[];l(this.chart.series,function(d){var b=d&&d.options;d&&m(b.showInLegend,p(b.linkedTo)? +!1:void 0,!0)&&(a=a.concat(d.legendItems||("point"===b.legendType?d.data:d)))});return a},adjustMargins:function(a,d){var b=this.chart,e=this.options,f=e.align.charAt(0)+e.verticalAlign.charAt(0)+e.layout.charAt(0);e.floating||l([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(c,g){c.test(f)&&!p(a[g])&&(b[t[g]]=Math.max(b[t[g]],b.legend[(g+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][g]*e[g%2?"x":"y"]+m(e.margin,12)+d[g]))})},render:function(){var a=this,d=a.chart,b=d.renderer, +e=a.group,h,c,m,n,k=a.box,x=a.options,p=a.padding;a.itemX=a.initialItemX;a.itemY=a.initialItemY;a.offsetWidth=0;a.lastItemY=0;e||(a.group=e=b.g("legend").attr({zIndex:7}).add(),a.contentGroup=b.g().attr({zIndex:1}).add(e),a.scrollGroup=b.g().add(a.contentGroup));a.renderTitle();h=a.getAllItems();g(h,function(a,b){return(a.options&&a.options.legendIndex||0)-(b.options&&b.options.legendIndex||0)});x.reversed&&h.reverse();a.allItems=h;a.display=c=!!h.length;a.lastLineHeight=0;l(h,function(b){a.renderItem(b)}); +m=(x.width||a.offsetWidth)+p;n=a.lastItemY+a.lastLineHeight+a.titleHeight;n=a.handleOverflow(n);n+=p;k||(a.box=k=b.rect().addClass("highcharts-legend-box").attr({r:x.borderRadius}).add(e),k.isNew=!0);k.attr({stroke:x.borderColor,"stroke-width":x.borderWidth||0,fill:x.backgroundColor||"none"}).shadow(x.shadow);0b&&!1!==h.enabled?(this.clipHeight=g=Math.max(b-20-this.titleHeight-I,0),this.currentPage=m(this.currentPage,1),this.fullHeight=a,l(v,function(a,b){var c=a._legendItemPos[1];a=Math.round(a.legendItem.getBBox().height);var d=u.length;if(!d||c-u[d-1]>g&&(r||c)!==u[d-1])u.push(r||c),d++;b===v.length-1&&c+a-u[d-1]>g&&u.push(c);c!==r&&(r=c)}),n||(n=d.clipRect= +e.clipRect(0,I,9999,0),d.contentGroup.clip(n)),t(g),y||(this.nav=y=e.g().attr({zIndex:1}).add(this.group),this.up=e.symbol("triangle",0,0,p,p).on("click",function(){d.scroll(-1,k)}).add(y),this.pager=e.text("",15,10).addClass("highcharts-legend-navigation").css(h.style).add(y),this.down=e.symbol("triangle-down",0,0,p,p).on("click",function(){d.scroll(1,k)}).add(y)),d.scroll(0),a=b):y&&(t(),y.hide(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0);return a},scroll:function(a,d){var b=this.pages, +f=b.length;a=this.currentPage+a;var g=this.clipHeight,c=this.options.navigation,h=this.pager,n=this.padding;a>f&&(a=f);0f&&(g=typeof a[0],"string"===g?e.name=a[0]:"number"===g&&(e.x=a[0]),d++);b=h.value;)h=e[++g];h&&h.color&&!this.options.color&&(this.color=h.color);return h},destroy:function(){var a=this.series.chart,e=a.hoverPoints,g;a.pointCount--;e&&(this.setState(),H(e,this),e.length||(a.hoverPoints=null));if(this===a.hoverPoint)this.onMouseOut();if(this.graphic||this.dataLabel)k(this), +this.destroyElements();this.legendItem&&a.legend.destroyItem(this);for(g in this)this[g]=null},destroyElements:function(){for(var a=["graphic","dataLabel","dataLabelUpper","connector","shadowGroup"],e,g=6;g--;)e=a[g],this[e]&&(this[e]=this[e].destroy())},getLabelConfig:function(){return{x:this.category,y:this.y,color:this.color,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},tooltipFormatter:function(a){var e=this.series,g= +e.tooltipOptions,h=t(g.valueDecimals,""),k=g.valuePrefix||"",f=g.valueSuffix||"";B(e.pointArrayMap||["y"],function(d){d="{point."+d;if(k||f)a=a.replace(d+"}",k+d+"}"+f);a=a.replace(d+"}",d+":,."+h+"f}")});return l(a,{point:this,series:this.series})},firePointEvent:function(a,e,g){var h=this,k=this.series.options;(k.point.events[a]||h.options&&h.options.events&&h.options.events[a])&&this.importEvents();"click"===a&&k.allowPointSelect&&(g=function(a){h.select&&h.select(null,a.ctrlKey||a.metaKey||a.shiftKey)}); +p(this,a,e,g)},visible:!0}})(N);(function(a){var D=a.addEvent,B=a.animObject,G=a.arrayMax,H=a.arrayMin,p=a.correctFloat,l=a.Date,r=a.defaultOptions,w=a.defaultPlotOptions,t=a.defined,k=a.each,m=a.erase,e=a.error,g=a.extend,h=a.fireEvent,C=a.grep,f=a.isArray,d=a.isNumber,b=a.isString,q=a.merge,E=a.pick,c=a.removeEvent,F=a.splat,n=a.stableSort,A=a.SVGElement,x=a.syncTimeout,J=a.win;a.Series=a.seriesType("line",null,{lineWidth:2,allowPointSelect:!1,showCheckbox:!1,animation:{duration:1E3},events:{}, +marker:{lineWidth:0,lineColor:"#ffffff",radius:4,states:{hover:{animation:{duration:50},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{align:"center",formatter:function(){return null===this.y?"":a.numberFormat(this.y,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0,padding:5},cropThreshold:300,pointRange:0,softThreshold:!0,states:{hover:{lineWidthPlus:1, +marker:{},halo:{size:10,opacity:.25}},select:{marker:{}}},stickyTracking:!0,turboThreshold:1E3},{isCartesian:!0,pointClass:a.Point,sorted:!0,requireSorting:!0,directTouch:!1,axisTypes:["xAxis","yAxis"],colorCounter:0,parallelArrays:["x","y"],coll:"series",init:function(a,b){var c=this,d,e,f=a.series,u,y=function(a,b){return E(a.options.index,a._i)-E(b.options.index,b._i)};c.chart=a;c.options=b=c.setOptions(b);c.linkedSeries=[];c.bindAxes();g(c,{name:b.name,state:"",visible:!1!==b.visible,selected:!0=== +b.selected});e=b.events;for(d in e)D(c,d,e[d]);if(e&&e.click||b.point&&b.point.events&&b.point.events.click||b.allowPointSelect)a.runTrackerClick=!0;c.getColor();c.getSymbol();k(c.parallelArrays,function(a){c[a+"Data"]=[]});c.setData(b.data,!1);c.isCartesian&&(a.hasCartesianSeries=!0);f.length&&(u=f[f.length-1]);c._i=E(u&&u._i,-1)+1;f.push(c);n(f,y);this.yAxis&&n(this.yAxis.series,y);k(f,function(a,b){a.index=b;a.name=a.name||"Series "+(b+1)})},bindAxes:function(){var a=this,b=a.options,c=a.chart, +d;k(a.axisTypes||[],function(f){k(c[f],function(c){d=c.options;if(b[f]===d.index||void 0!==b[f]&&b[f]===d.id||void 0===b[f]&&0===d.index)c.series.push(a),a[f]=c,c.isDirty=!0});a[f]||a.optionalAxis===f||e(18,!0)})},updateParallelArrays:function(a,b){var c=a.series,e=arguments,f=d(b)?function(d){var e="y"===d&&c.toYData?c.toYData(a):a[d];c[d+"Data"][b]=e}:function(a){Array.prototype[b].apply(c[a+"Data"],Array.prototype.slice.call(e,2))};k(c.parallelArrays,f)},autoIncrement:function(){var a=this.options, +b=this.xIncrement,c,d=a.pointIntervalUnit,b=E(b,a.pointStart,0);this.pointInterval=c=E(this.pointInterval,a.pointInterval,1);d&&(a=new l(b),"day"===d?a=+a[l.hcSetDate](a[l.hcGetDate]()+c):"month"===d?a=+a[l.hcSetMonth](a[l.hcGetMonth]()+c):"year"===d&&(a=+a[l.hcSetFullYear](a[l.hcGetFullYear]()+c)),c=a-b);this.xIncrement=b+c;return b},setOptions:function(a){var b=this.chart,c=b.options.plotOptions,b=b.userOptions||{},d=b.plotOptions||{},e=c[this.type];this.userOptions=a;c=q(e,c.series,a);this.tooltipOptions= +q(r.tooltip,r.plotOptions[this.type].tooltip,b.tooltip,d.series&&d.series.tooltip,d[this.type]&&d[this.type].tooltip,a.tooltip);null===e.marker&&delete c.marker;this.zoneAxis=c.zoneAxis;a=this.zones=(c.zones||[]).slice();!c.negativeColor&&!c.negativeFillColor||c.zones||a.push({value:c[this.zoneAxis+"Threshold"]||c.threshold||0,className:"highcharts-negative",color:c.negativeColor,fillColor:c.negativeFillColor});a.length&&t(a[a.length-1].value)&&a.push({color:this.color,fillColor:this.fillColor}); +return c},getCyclic:function(a,b,c){var d,e=this.userOptions,f=a+"Index",g=a+"Counter",u=c?c.length:E(this.chart.options.chart[a+"Count"],this.chart[a+"Count"]);b||(d=E(e[f],e["_"+f]),t(d)||(e["_"+f]=d=this.chart[g]%u,this.chart[g]+=1),c&&(b=c[d]));void 0!==d&&(this[f]=d);this[a]=b},getColor:function(){this.options.colorByPoint?this.options.color=null:this.getCyclic("color",this.options.color||w[this.type].color,this.chart.options.colors)},getSymbol:function(){this.getCyclic("symbol",this.options.marker.symbol, +this.chart.options.symbols)},drawLegendSymbol:a.LegendSymbolMixin.drawLineMarker,setData:function(a,c,g,n){var u=this,q=u.points,h=q&&q.length||0,y,m=u.options,x=u.chart,A=null,I=u.xAxis,l=m.turboThreshold,p=this.xData,r=this.yData,F=(y=u.pointArrayMap)&&y.length;a=a||[];y=a.length;c=E(c,!0);if(!1!==n&&y&&h===y&&!u.cropped&&!u.hasGroupedData&&u.visible)k(a,function(a,b){q[b].update&&a!==m.data[b]&&q[b].update(a,!1,null,!1)});else{u.xIncrement=null;u.colorCounter=0;k(this.parallelArrays,function(a){u[a+ +"Data"].length=0});if(l&&y>l){for(g=0;null===A&&gh||this.forceCrop))if(b[d-1]l)b=[],c=[];else if(b[0]l)f=this.cropData(this.xData,this.yData,A,l),b=f.xData,c=f.yData,f=f.start,g=!0;for(h=b.length||1;--h;)d=x?y(b[h])-y(b[h-1]):b[h]-b[h-1],0d&&this.requireSorting&&e(15);this.cropped=g;this.cropStart=f;this.processedXData=b;this.processedYData=c;this.closestPointRange=n},cropData:function(a,b,c,d){var e=a.length,f=0,g=e,n=E(this.cropShoulder,1),u;for(u=0;u=c){f=Math.max(0,u- +n);break}for(c=u;cd){g=c+n;break}return{xData:a.slice(f,g),yData:b.slice(f,g),start:f,end:g}},generatePoints:function(){var a=this.options.data,b=this.data,c,d=this.processedXData,e=this.processedYData,f=this.pointClass,g=d.length,n=this.cropStart||0,q,h=this.hasGroupedData,k,m=[],x;b||h||(b=[],b.length=a.length,b=this.data=b);for(x=0;x=q&&(c[x-1]||k)<=h,y&&k)if(y=m.length)for(;y--;)null!==m[y]&&(g[n++]=m[y]);else g[n++]=m;this.dataMin=H(g);this.dataMax=G(g)},translate:function(){this.processedXData||this.processData();this.generatePoints();var a=this.options,b=a.stacking,c=this.xAxis,e=c.categories,f=this.yAxis,g=this.points,n=g.length,q=!!this.modifyValue,h=a.pointPlacement,k="between"===h||d(h),m=a.threshold,x=a.startFromThreshold?m:0,A,l,r,F,J=Number.MAX_VALUE;"between"===h&&(h=.5);d(h)&&(h*=E(a.pointRange||c.pointRange)); +for(a=0;a=B&&(C.isNull=!0);C.plotX=A=p(Math.min(Math.max(-1E5,c.translate(w,0,0,0,1,h,"flags"===this.type)),1E5));b&&this.visible&&!C.isNull&&D&&D[w]&&(F=this.getStackIndicator(F,w,this.index),G=D[w],B=G.points[F.key],l=B[0],B=B[1],l===x&&F.key===D[w].base&&(l=E(m,f.min)),f.isLog&&0>=l&&(l=null),C.total=C.stackTotal=G.total,C.percentage=G.total&&C.y/G.total*100,C.stackY= +B,G.setOffset(this.pointXOffset||0,this.barW||0));C.yBottom=t(l)?f.translate(l,0,1,0,1):null;q&&(B=this.modifyValue(B,C));C.plotY=l="number"===typeof B&&Infinity!==B?Math.min(Math.max(-1E5,f.translate(B,0,1,0,1)),1E5):void 0;C.isInside=void 0!==l&&0<=l&&l<=f.len&&0<=A&&A<=c.len;C.clientX=k?p(c.translate(w,0,0,0,1,h)):A;C.negative=C.y<(m||0);C.category=e&&void 0!==e[C.x]?e[C.x]:C.x;C.isNull||(void 0!==r&&(J=Math.min(J,Math.abs(A-r))),r=A)}this.closestPointRangePx=J},getValidPoints:function(a,b){var c= +this.chart;return C(a||this.points||[],function(a){return b&&!c.isInsidePlot(a.plotX,a.plotY,c.inverted)?!1:!a.isNull})},setClip:function(a){var b=this.chart,c=this.options,d=b.renderer,e=b.inverted,f=this.clipBox,g=f||b.clipBox,n=this.sharedClipKey||["_sharedClip",a&&a.duration,a&&a.easing,g.height,c.xAxis,c.yAxis].join(),q=b[n],h=b[n+"m"];q||(a&&(g.width=0,b[n+"m"]=h=d.clipRect(-99,e?-b.plotLeft:-b.plotTop,99,e?b.chartWidth:b.chartHeight)),b[n]=q=d.clipRect(g),q.count={length:0});a&&!q.count[this.index]&& +(q.count[this.index]=!0,q.count.length+=1);!1!==c.clip&&(this.group.clip(a||f?q:b.clipRect),this.markerGroup.clip(h),this.sharedClipKey=n);a||(q.count[this.index]&&(delete q.count[this.index],--q.count.length),0===q.count.length&&n&&b[n]&&(f||(b[n]=b[n].destroy()),b[n+"m"]&&(b[n+"m"]=b[n+"m"].destroy())))},animate:function(a){var b=this.chart,c=B(this.options.animation),d;a?this.setClip(c):(d=this.sharedClipKey,(a=b[d])&&a.animate({width:b.plotSizeX},c),b[d+"m"]&&b[d+"m"].animate({width:b.plotSizeX+ +99},c),this.animate=null)},afterAnimate:function(){this.setClip();h(this,"afterAnimate")},drawPoints:function(){var a=this.points,b=this.chart,c,e,f,g,n=this.options.marker,q,h,k,m,x=this.markerGroup,A=E(n.enabled,this.xAxis.isRadial?!0:null,this.closestPointRangePx>2*n.radius);if(!1!==n.enabled||this._hasPointMarkers)for(e=a.length;e--;)f=a[e],c=f.plotY,g=f.graphic,q=f.marker||{},h=!!f.marker,k=A&&void 0===q.enabled||q.enabled,m=f.isInside,k&&d(c)&&null!==f.y?(c=E(q.symbol,this.symbol),f.hasImage= +0===c.indexOf("url"),k=this.markerAttribs(f,f.selected&&"select"),g?g[m?"show":"hide"](!0).animate(k):m&&(0e&&b.shadow));g&&(g.startX=c.xMap, +g.isArea=c.isArea)})},applyZones:function(){var a=this,b=this.chart,c=b.renderer,d=this.zones,e,f,g=this.clips||[],n,q=this.graph,h=this.area,m=Math.max(b.chartWidth,b.chartHeight),x=this[(this.zoneAxis||"y")+"Axis"],A,l,p=b.inverted,r,F,C,t,J=!1;d.length&&(q||h)&&x&&void 0!==x.min&&(l=x.reversed,r=x.horiz,q&&q.hide(),h&&h.hide(),A=x.getExtremes(),k(d,function(d,u){e=l?r?b.plotWidth:0:r?0:x.toPixels(A.min);e=Math.min(Math.max(E(f,e),0),m);f=Math.min(Math.max(Math.round(x.toPixels(E(d.value,A.max), +!0)),0),m);J&&(e=f=x.toPixels(A.max));F=Math.abs(e-f);C=Math.min(e,f);t=Math.max(e,f);x.isXAxis?(n={x:p?t:C,y:0,width:F,height:m},r||(n.x=b.plotHeight-n.x)):(n={x:0,y:p?t:C,width:m,height:F},r&&(n.y=b.plotWidth-n.y));p&&c.isVML&&(n=x.isXAxis?{x:0,y:l?C:t,height:n.width,width:b.chartWidth}:{x:n.y-b.plotLeft-b.spacingBox.x,y:0,width:n.height,height:b.chartHeight});g[u]?g[u].animate(n):(g[u]=c.clipRect(n),q&&a["zone-graph-"+u].clip(g[u]),h&&a["zone-area-"+u].clip(g[u]));J=d.value>A.max}),this.clips= +g)},invertGroups:function(a){function b(){var b={width:c.yAxis.len,height:c.xAxis.len};k(["group","markerGroup"],function(d){c[d]&&c[d].attr(b).invert(a)})}var c=this,d;c.xAxis&&(d=D(c.chart,"resize",b),D(c,"destroy",d),b(a),c.invertGroups=b)},plotGroup:function(a,b,c,d,e){var f=this[a],g=!f;g&&(this[a]=f=this.chart.renderer.g(b).attr({zIndex:d||.1}).add(e),f.addClass("highcharts-series-"+this.index+" highcharts-"+this.type+"-series highcharts-color-"+this.colorIndex+" "+(this.options.className|| +"")));f.attr({visibility:c})[g?"attr":"animate"](this.getPlotBox());return f},getPlotBox:function(){var a=this.chart,b=this.xAxis,c=this.yAxis;a.inverted&&(b=c,c=this.xAxis);return{translateX:b?b.left:a.plotLeft,translateY:c?c.top:a.plotTop,scaleX:1,scaleY:1}},render:function(){var a=this,b=a.chart,c,d=a.options,e=!!a.animate&&b.renderer.isSVG&&B(d.animation).duration,f=a.visible?"inherit":"hidden",g=d.zIndex,n=a.hasRendered,q=b.seriesGroup,h=b.inverted;c=a.plotGroup("group","series",f,g,q);a.markerGroup= +a.plotGroup("markerGroup","markers",f,g,q);e&&a.animate(!0);c.inverted=a.isCartesian?h:!1;a.drawGraph&&(a.drawGraph(),a.applyZones());a.drawDataLabels&&a.drawDataLabels();a.visible&&a.drawPoints();a.drawTracker&&!1!==a.options.enableMouseTracking&&a.drawTracker();a.invertGroups(h);!1===d.clip||a.sharedClipKey||n||c.clip(b.clipRect);e&&a.animate();n||(a.animationTimeout=x(function(){a.afterAnimate()},e));a.isDirty=a.isDirtyData=!1;a.hasRendered=!0},redraw:function(){var a=this.chart,b=this.isDirty|| +this.isDirtyData,c=this.group,d=this.xAxis,e=this.yAxis;c&&(a.inverted&&c.attr({width:a.plotWidth,height:a.plotHeight}),c.animate({translateX:E(d&&d.left,a.plotLeft),translateY:E(e&&e.top,a.plotTop)}));this.translate();this.render();b&&delete this.kdTree},kdDimensions:1,kdAxisArray:["clientX","plotY"],searchPoint:function(a,b){var c=this.xAxis,d=this.yAxis,e=this.chart.inverted;return this.searchKDTree({clientX:e?c.len-a.chartY+c.pos:a.chartX-c.pos,plotY:e?d.len-a.chartX+d.pos:a.chartY-d.pos},b)}, +buildKDTree:function(){function a(c,d,e){var f,g;if(g=c&&c.length)return f=b.kdAxisArray[d%e],c.sort(function(a,b){return a[f]-b[f]}),g=Math.floor(g/2),{point:c[g],left:a(c.slice(0,g),d+1,e),right:a(c.slice(g+1),d+1,e)}}var b=this,c=b.kdDimensions;delete b.kdTree;x(function(){b.kdTree=a(b.getValidPoints(null,!b.directTouch),c,c)},b.options.kdNow?0:1)},searchKDTree:function(a,b){function c(a,b,n,q){var h=b.point,u=d.kdAxisArray[n%q],k,m,x=h;m=t(a[e])&&t(h[e])?Math.pow(a[e]-h[e],2):null;k=t(a[f])&& +t(h[f])?Math.pow(a[f]-h[f],2):null;k=(m||0)+(k||0);h.dist=t(k)?Math.sqrt(k):Number.MAX_VALUE;h.distX=t(m)?Math.sqrt(m):Number.MAX_VALUE;u=a[u]-h[u];k=0>u?"left":"right";m=0>u?"right":"left";b[k]&&(k=c(a,b[k],n+1,q),x=k[g]A;)l--;this.updateParallelArrays(h,"splice",l,0,0);this.updateParallelArrays(h,l);n&&h.name&&(n[A]=h.name);q.splice(l,0,a);m&&(this.data.splice(l,0,null),this.processData());"point"===c.legendType&&this.generatePoints();d&&(f[0]&&f[0].remove?f[0].remove(!1):(f.shift(),this.updateParallelArrays(h,"shift"),q.shift()));this.isDirtyData=this.isDirty=!0;b&&g.redraw(e)},removePoint:function(a, +b,d){var c=this,e=c.data,f=e[a],g=c.points,n=c.chart,h=function(){g&&g.length===e.length&&g.splice(a,1);e.splice(a,1);c.options.data.splice(a,1);c.updateParallelArrays(f||{series:c},"splice",a,1);f&&f.destroy();c.isDirty=!0;c.isDirtyData=!0;b&&n.redraw()};q(d,n);b=C(b,!0);f?f.firePointEvent("remove",null,h):h()},remove:function(a,b,d){function c(){e.destroy();f.isDirtyLegend=f.isDirtyBox=!0;f.linkSeries();C(a,!0)&&f.redraw(b)}var e=this,f=e.chart;!1!==d?k(e,"remove",null,c):c()},update:function(a, +d){var c=this,e=this.chart,f=this.userOptions,g=this.type,q=a.type||f.type||e.options.chart.type,u=b[g].prototype,m=["group","markerGroup","dataLabelsGroup"],k;if(q&&q!==g||void 0!==a.zIndex)m.length=0;r(m,function(a){m[a]=c[a];delete c[a]});a=h(f,{animation:!1,index:this.index,pointStart:this.xData[0]},{data:this.options.data},a);this.remove(!1,null,!1);for(k in u)this[k]=void 0;t(this,b[q||g].prototype);r(m,function(a){c[a]=m[a]});this.init(e,a);e.linkSeries();C(d,!0)&&e.redraw(!1)}});t(G.prototype, +{update:function(a,b){var c=this.chart;a=c.options[this.coll][this.options.index]=h(this.userOptions,a);this.destroy(!0);this.init(c,t(a,{events:void 0}));c.isDirtyBox=!0;C(b,!0)&&c.redraw()},remove:function(a){for(var b=this.chart,c=this.coll,d=this.series,e=d.length;e--;)d[e]&&d[e].remove(!1);w(b.axes,this);w(b[c],this);b.options[c].splice(this.options.index,1);r(b[c],function(a,b){a.options.index=b});this.destroy();b.isDirtyBox=!0;C(a,!0)&&b.redraw()},setTitle:function(a,b){this.update({title:a}, +b)},setCategories:function(a,b){this.update({categories:a},b)}})})(N);(function(a){var D=a.color,B=a.each,G=a.map,H=a.pick,p=a.Series,l=a.seriesType;l("area","line",{softThreshold:!1,threshold:0},{singleStacks:!1,getStackPoints:function(){var a=[],l=[],p=this.xAxis,k=this.yAxis,m=k.stacks[this.stackKey],e={},g=this.points,h=this.index,C=k.series,f=C.length,d,b=H(k.options.reversedStacks,!0)?1:-1,q,E;if(this.options.stacking){for(q=0;qa&&t>l?(t=Math.max(a,l),m=2*l-t):tH&& +m>l?(m=Math.max(H,l),t=2*l-m):m=Math.abs(g)&&.5a.closestPointRange*a.xAxis.transA,k=a.borderWidth=r(h.borderWidth,k?0:1),f=a.yAxis,d=a.translatedThreshold=f.getThreshold(h.threshold),b=r(h.minPointLength,5),q=a.getColumnMetrics(),m=q.width,c=a.barW=Math.max(m,1+2*k),l=a.pointXOffset= +q.offset;g.inverted&&(d-=.5);h.pointPadding&&(c=Math.ceil(c));w.prototype.translate.apply(a);G(a.points,function(e){var n=r(e.yBottom,d),q=999+Math.abs(n),q=Math.min(Math.max(-q,e.plotY),f.len+q),h=e.plotX+l,k=c,u=Math.min(q,n),p,t=Math.max(q,n)-u;Math.abs(t)b?n-b:d-(p?b:0));e.barX=h;e.pointWidth=m;e.tooltipPos=g.inverted?[f.len+f.pos-g.plotLeft-q,a.xAxis.len-h-k/2,t]:[h+k/2,q+f.pos-g.plotTop,t];e.shapeType="rect";e.shapeArgs= +a.crispCol.apply(a,e.isNull?[e.plotX,f.len/2,0,0]:[h,u,k,t])})},getSymbol:a.noop,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,drawGraph:function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},pointAttribs:function(a,g){var e=this.options,k=this.pointAttrToOptions||{},f=k.stroke||"borderColor",d=k["stroke-width"]||"borderWidth",b=a&&a.color||this.color,q=a[f]||e[f]||this.color||b,k=e.dashStyle,m;a&&this.zones.length&&(b=(b=a.getZone())&&b.color||a.options.color|| +this.color);g&&(g=e.states[g],m=g.brightness,b=g.color||void 0!==m&&B(b).brighten(g.brightness).get()||b,q=g[f]||q,k=g.dashStyle||k);a={fill:b,stroke:q,"stroke-width":a[d]||e[d]||this[d]||0};e.borderRadius&&(a.r=e.borderRadius);k&&(a.dashstyle=k);return a},drawPoints:function(){var a=this,g=this.chart,h=a.options,m=g.renderer,f=h.animationLimit||250,d;G(a.points,function(b){var e=b.graphic;p(b.plotY)&&null!==b.y?(d=b.shapeArgs,e?(k(e),e[g.pointCountt;++t)k=r[t],a=2>t||2===t&&/%$/.test(k),r[t]=B(k,[l,H,w,r[2]][t])+(a?p:0);r[3]>r[2]&&(r[3]=r[2]);return r}}})(N);(function(a){var D=a.addEvent,B=a.defined,G=a.each,H=a.extend,p=a.inArray,l=a.noop,r=a.pick,w=a.Point,t=a.Series,k=a.seriesType,m=a.setAnimation;k("pie","line",{center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){return null===this.y? +void 0:this.point.name},x:0},ignoreHiddenPoint:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,states:{hover:{brightness:.1,shadow:!1}}},{isCartesian:!1,requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],axisTypes:[],pointAttribs:a.seriesTypes.column.prototype.pointAttribs,animate:function(a){var e=this,h=e.points,k=e.startAngleRad;a||(G(h,function(a){var d= +a.graphic,b=a.shapeArgs;d&&(d.attr({r:a.startR||e.center[3]/2,start:k,end:k}),d.animate({r:b.r,start:b.start,end:b.end},e.options.animation))}),e.animate=null)},updateTotals:function(){var a,g=0,h=this.points,k=h.length,f,d=this.options.ignoreHiddenPoint;for(a=0;af.y&&(f.y=null),g+=d&&!f.visible?0:f.y;this.total=g;for(a=0;a1.5*Math.PI?q-=2*Math.PI:q<-Math.PI/2&&(q+=2*Math.PI);t.slicedTranslation={translateX:Math.round(Math.cos(q)*k),translateY:Math.round(Math.sin(q)*k)};d=Math.cos(q)*a[2]/2;b=Math.sin(q)*a[2]/2;t.tooltipPos=[a[0]+.7*d,a[1]+.7*b];t.half=q<-Math.PI/2||q>Math.PI/2?1:0;t.angle=q;f=Math.min(f,n/5);t.labelPos=[a[0]+d+Math.cos(q)*n,a[1]+b+Math.sin(q)*n,a[0]+d+Math.cos(q)*f,a[1]+b+Math.sin(q)* +f,a[0]+d,a[1]+b,0>n?"center":t.half?"right":"left",q]}},drawGraph:null,drawPoints:function(){var a=this,g=a.chart.renderer,h,k,f,d,b=a.options.shadow;b&&!a.shadowGroup&&(a.shadowGroup=g.g("shadow").add(a.group));G(a.points,function(e){if(null!==e.y){k=e.graphic;d=e.shapeArgs;h=e.sliced?e.slicedTranslation:{};var q=e.shadowGroup;b&&!q&&(q=e.shadowGroup=g.g("shadow").add(a.shadowGroup));q&&q.attr(h);f=a.pointAttribs(e,e.selected&&"select");k?k.setRadialReference(a.center).attr(f).animate(H(d,h)):(e.graphic= +k=g[e.shapeType](d).addClass(e.getClassName()).setRadialReference(a.center).attr(h).add(a.group),e.visible||k.attr({visibility:"hidden"}),k.attr(f).attr({"stroke-linejoin":"round"}).shadow(b,q))}})},searchPoint:l,sortByAngle:function(a,g){a.sort(function(a,e){return void 0!==a.angle&&(e.angle-a.angle)*g})},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,getCenter:a.CenteredSeriesMixin.getCenter,getSymbol:l},{init:function(){w.prototype.init.apply(this,arguments);var a=this,g;a.name=r(a.name,"Slice"); +g=function(e){a.slice("select"===e.type)};D(a,"select",g);D(a,"unselect",g);return a},setVisible:function(a,g){var e=this,k=e.series,f=k.chart,d=k.options.ignoreHiddenPoint;g=r(g,d);a!==e.visible&&(e.visible=e.options.visible=a=void 0===a?!e.visible:a,k.options.data[p(e,k.data)]=e.options,G(["graphic","dataLabel","connector","shadowGroup"],function(b){if(e[b])e[b][a?"show":"hide"](!0)}),e.legendItem&&f.legend.colorizeItem(e,a),a||"hover"!==e.state||e.setState(""),d&&(k.isDirty=!0),g&&f.redraw())}, +slice:function(a,g,h){var e=this.series;m(h,e.chart);r(g,!0);this.sliced=this.options.sliced=a=B(a)?a:!this.sliced;e.options.data[p(this,e.data)]=this.options;a=a?this.slicedTranslation:{translateX:0,translateY:0};this.graphic.animate(a);this.shadowGroup&&this.shadowGroup.animate(a)},haloPath:function(a){var e=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(e.x,e.y,e.r+a,e.r+a,{innerR:this.shapeArgs.r,start:e.start,end:e.end})}})})(N);(function(a){var D= +a.addEvent,B=a.arrayMax,G=a.defined,H=a.each,p=a.extend,l=a.format,r=a.map,w=a.merge,t=a.noop,k=a.pick,m=a.relativeLength,e=a.Series,g=a.seriesTypes,h=a.stableSort,C=a.stop;a.distribute=function(a,d){function b(a,b){return a.target-b.target}var e,f=!0,c=a,g=[],n;n=0;for(e=a.length;e--;)n+=a[e].size;if(n>d){h(a,function(a,b){return(b.rank||0)-(a.rank||0)});for(n=e=0;n<=d;)n+=a[e].size,e++;g=a.splice(e-1,a.length)}h(a,b);for(a=r(a,function(a){return{size:a.size,targets:[a.target]}});f;){for(e=a.length;e--;)f= +a[e],n=(Math.min.apply(0,f.targets)+Math.max.apply(0,f.targets))/2,f.pos=Math.min(Math.max(0,n-f.size/2),d-f.size);e=a.length;for(f=!1;e--;)0a[e].pos&&(a[e-1].size+=a[e].size,a[e-1].targets=a[e-1].targets.concat(a[e].targets),a[e-1].pos+a[e-1].size>d&&(a[e-1].pos=d-a[e-1].size),a.splice(e,1),f=!0)}e=0;H(a,function(a){var b=0;H(a.targets,function(){c[e].pos=a.pos+b;b+=c[e].size;e++})});c.push.apply(c,g);h(c,b)};e.prototype.drawDataLabels=function(){var a=this,d=a.options, +b=d.dataLabels,e=a.points,g,c,h=a.hasRendered||0,n,m,x=k(b.defer,!0),r=a.chart.renderer;if(b.enabled||a._hasPointLabels)a.dlProcessOptions&&a.dlProcessOptions(b),m=a.plotGroup("dataLabelsGroup","data-labels",x&&!h?"hidden":"visible",b.zIndex||6),x&&(m.attr({opacity:+h}),h||D(a,"afterAnimate",function(){a.visible&&m.show(!0);m[d.animation?"animate":"attr"]({opacity:1},{duration:200})})),c=b,H(e,function(e){var f,q=e.dataLabel,h,x,A=e.connector,y=!0,t,z={};g=e.dlOptions||e.options&&e.options.dataLabels; +f=k(g&&g.enabled,c.enabled)&&null!==e.y;if(q&&!f)e.dataLabel=q.destroy();else if(f){b=w(c,g);t=b.style;f=b.rotation;h=e.getLabelConfig();n=b.format?l(b.format,h):b.formatter.call(h,b);t.color=k(b.color,t.color,a.color,"#000000");if(q)G(n)?(q.attr({text:n}),y=!1):(e.dataLabel=q=q.destroy(),A&&(e.connector=A.destroy()));else if(G(n)){q={fill:b.backgroundColor,stroke:b.borderColor,"stroke-width":b.borderWidth,r:b.borderRadius||0,rotation:f,padding:b.padding,zIndex:1};"contrast"===t.color&&(z.color=b.inside|| +0>b.distance||d.stacking?r.getContrast(e.color||a.color):"#000000");d.cursor&&(z.cursor=d.cursor);for(x in q)void 0===q[x]&&delete q[x];q=e.dataLabel=r[f?"text":"label"](n,0,-9999,b.shape,null,null,b.useHTML,null,"data-label").attr(q);q.addClass("highcharts-data-label-color-"+e.colorIndex+" "+(b.className||""));q.css(p(t,z));q.add(m);q.shadow(b.shadow)}q&&a.alignDataLabel(e,q,b,null,y)}})};e.prototype.alignDataLabel=function(a,d,b,e,g){var c=this.chart,f=c.inverted,n=k(a.plotX,-9999),q=k(a.plotY, +-9999),h=d.getBBox(),m,l=b.rotation,u=b.align,r=this.visible&&(a.series.forceDL||c.isInsidePlot(n,Math.round(q),f)||e&&c.isInsidePlot(n,f?e.x+1:e.y+e.height-1,f)),t="justify"===k(b.overflow,"justify");r&&(m=b.style.fontSize,m=c.renderer.fontMetrics(m,d).b,e=p({x:f?c.plotWidth-q:n,y:Math.round(f?c.plotHeight-n:q),width:0,height:0},e),p(b,{width:h.width,height:h.height}),l?(t=!1,f=c.renderer.rotCorr(m,l),f={x:e.x+b.x+e.width/2+f.x,y:e.y+b.y+{top:0,middle:.5,bottom:1}[b.verticalAlign]*e.height},d[g? +"attr":"animate"](f).attr({align:u}),n=(l+720)%360,n=180n,"left"===u?f.y-=n?h.height:0:"center"===u?(f.x-=h.width/2,f.y-=h.height/2):"right"===u&&(f.x-=h.width,f.y-=n?0:h.height)):(d.align(b,null,e),f=d.alignAttr),t?this.justifyDataLabel(d,b,f,h,e,g):k(b.crop,!0)&&(r=c.isInsidePlot(f.x,f.y)&&c.isInsidePlot(f.x+h.width,f.y+h.height)),b.shape&&!l&&d.attr({anchorX:a.plotX,anchorY:a.plotY}));r||(C(d),d.attr({y:-9999}),d.placed=!1)};e.prototype.justifyDataLabel=function(a,d,b,e,g,c){var f=this.chart, +n=d.align,h=d.verticalAlign,q,k,m=a.box?0:a.padding||0;q=b.x+m;0>q&&("right"===n?d.align="left":d.x=-q,k=!0);q=b.x+e.width-m;q>f.plotWidth&&("left"===n?d.align="right":d.x=f.plotWidth-q,k=!0);q=b.y+m;0>q&&("bottom"===h?d.verticalAlign="top":d.y=-q,k=!0);q=b.y+e.height-m;q>f.plotHeight&&("top"===h?d.verticalAlign="bottom":d.y=f.plotHeight-q,k=!0);k&&(a.placed=!c,a.align(d,null,g))};g.pie&&(g.pie.prototype.drawDataLabels=function(){var f=this,d=f.data,b,g=f.chart,h=f.options.dataLabels,c=k(h.connectorPadding, +10),m=k(h.connectorWidth,1),n=g.plotWidth,l=g.plotHeight,x,p=h.distance,y=f.center,u=y[2]/2,t=y[1],w=0k-2?A:P,e),v._attr={visibility:S,align:D[6]},v._pos={x:L+h.x+({left:c,right:-c}[D[6]]||0),y:P+h.y-10},D.x=L,D.y=P,null===f.options.size&&(C=v.width,L-Cn-c&&(T[1]=Math.max(Math.round(L+ +C-n+c),T[1])),0>P-G/2?T[0]=Math.max(Math.round(-P+G/2),T[0]):P+G/2>l&&(T[2]=Math.max(Math.round(P+G/2-l),T[2])))}),0===B(T)||this.verifyDataLabelOverflow(T))&&(this.placeDataLabels(),w&&m&&H(this.points,function(a){var b;x=a.connector;if((v=a.dataLabel)&&v._pos&&a.visible){S=v._attr.visibility;if(b=!x)a.connector=x=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+a.colorIndex).add(f.dataLabelsGroup),x.attr({"stroke-width":m,stroke:h.connectorColor||a.color||"#666666"}); +x[b?"attr":"animate"]({d:f.connectorPath(a.labelPos)});x.attr("visibility",S)}else x&&(a.connector=x.destroy())}))},g.pie.prototype.connectorPath=function(a){var d=a.x,b=a.y;return k(this.options.dataLabels.softConnector,!0)?["M",d+("left"===a[6]?5:-5),b,"C",d,b,2*a[2]-a[4],2*a[3]-a[5],a[2],a[3],"L",a[4],a[5]]:["M",d+("left"===a[6]?5:-5),b,"L",a[2],a[3],"L",a[4],a[5]]},g.pie.prototype.placeDataLabels=function(){H(this.points,function(a){var d=a.dataLabel;d&&a.visible&&((a=d._pos)?(d.attr(d._attr), +d[d.moved?"animate":"attr"](a),d.moved=!0):d&&d.attr({y:-9999}))})},g.pie.prototype.alignDataLabel=t,g.pie.prototype.verifyDataLabelOverflow=function(a){var d=this.center,b=this.options,e=b.center,f=b.minSize||80,c,g;null!==e[0]?c=Math.max(d[2]-Math.max(a[1],a[3]),f):(c=Math.max(d[2]-a[1]-a[3],f),d[0]+=(a[3]-a[1])/2);null!==e[1]?c=Math.max(Math.min(c,d[2]-Math.max(a[0],a[2])),f):(c=Math.max(Math.min(c,d[2]-a[0]-a[2]),f),d[1]+=(a[0]-a[2])/2);ck(this.translatedThreshold,f.yAxis.len)),m=k(b.inside,!!this.options.stacking);n&&(g=w(n),0>g.y&&(g.height+=g.y,g.y=0),n=g.y+g.height-f.yAxis.len,0a+e||c+nb+f||g+hthis.pointCount))},pan:function(a,b){var c=this,d=c.hoverPoints, +e;d&&r(d,function(a){a.setState()});r("xy"===b?[1,0]:[1],function(b){b=c[b?"xAxis":"yAxis"][0];var d=b.horiz,f=a[d?"chartX":"chartY"],d=d?"mouseDownX":"mouseDownY",g=c[d],n=(b.pointRange||0)/2,h=b.getExtremes(),q=b.toValue(g-f,!0)+n,n=b.toValue(g+b.len-f,!0)-n,g=g>f;b.series.length&&(g||q>Math.min(h.dataMin,h.min))&&(!g||n=p(k.minWidth,0)&&this.chartHeight>=p(k.minHeight,0)};void 0===l._id&&(l._id=a.uniqueKey());m=m.call(this);!r[l._id]&&m?l.chartOptions&&(r[l._id]=this.currentOptions(l.chartOptions),this.update(l.chartOptions,w)):r[l._id]&&!m&&(this.update(r[l._id],w),delete r[l._id])};D.prototype.currentOptions=function(a){function p(a,m,e){var g,h;for(g in a)if(-1< +G(g,["series","xAxis","yAxis"]))for(a[g]=l(a[g]),e[g]=[],h=0;hd.length||void 0===h)return a.call(this,g,h,k,f);x=d.length;for(c=0;ck;d[c]5*b||w){if(d[c]>u){for(r=a.call(this,g,d[e],d[c],f);r.length&&r[0]<=u;)r.shift();r.length&&(u=r[r.length-1]);y=y.concat(r)}e=c+1}if(w)break}a= +r.info;if(q&&a.unitRange<=m.hour){c=y.length-1;for(e=1;ek?a-1:a;for(M=void 0;q--;)e=c[q],k=M-e,M&&k<.8*C&&(null===t||k<.8*t)?(n[y[q]]&&!n[y[q+1]]?(k=q+1,M=e):k=q,y.splice(k,1)):M=e}return y});w(B.prototype,{beforeSetTickPositions:function(){var a, +g=[],h=!1,k,f=this.getExtremes(),d=f.min,b=f.max,q,m=this.isXAxis&&!!this.options.breaks,f=this.options.ordinal,c=this.chart.options.chart.ignoreHiddenSeries;if(f||m){r(this.series,function(b,d){if(!(c&&!1===b.visible||!1===b.takeOrdinalPosition&&!m)&&(g=g.concat(b.processedXData),a=g.length,g.sort(function(a,b){return a-b}),a))for(d=a-1;d--;)g[d]===g[d+1]&&g.splice(d,1)});a=g.length;if(2k||b-g[g.length- +1]>k)&&(h=!0)}h?(this.ordinalPositions=g,k=this.val2lin(Math.max(d,g[0]),!0),q=Math.max(this.val2lin(Math.min(b,g[g.length-1]),!0),1),this.ordinalSlope=b=(b-d)/(q-k),this.ordinalOffset=d-k*b):this.ordinalPositions=this.ordinalSlope=this.ordinalOffset=void 0}this.isOrdinal=f&&h;this.groupIntervalFactor=null},val2lin:function(a,g){var e=this.ordinalPositions;if(e){var k=e.length,f,d;for(f=k;f--;)if(e[f]===a){d=f;break}for(f=k-1;f--;)if(a>e[f]||0===f){a=(a-e[f])/(e[f+1]-e[f]);d=f+a;break}g=g?d:this.ordinalSlope* +(d||0)+this.ordinalOffset}else g=a;return g},lin2val:function(a,g){var e=this.ordinalPositions;if(e){var k=this.ordinalSlope,f=this.ordinalOffset,d=e.length-1,b;if(g)0>a?a=e[0]:a>d?a=e[d]:(d=Math.floor(a),b=a-d);else for(;d--;)if(g=k*d+f,a>=g){k=k*(d+1)+f;b=(a-g)/(k-g);break}return void 0!==b&&void 0!==e[d]?e[d]+(b?b*(e[d+1]-e[d]):0):a}return a},getExtendedPositions:function(){var a=this.chart,g=this.series[0].currentDataGrouping,h=this.ordinalIndex,k=g?g.count+g.unitName:"raw",f=this.getExtremes(), +d,b;h||(h=this.ordinalIndex={});h[k]||(d={series:[],chart:a,getExtremes:function(){return{min:f.dataMin,max:f.dataMax}},options:{ordinal:!0},val2lin:B.prototype.val2lin},r(this.series,function(e){b={xAxis:d,xData:e.xData,chart:a,destroyGroupedData:t};b.options={dataGrouping:g?{enabled:!0,forced:!0,approximation:"open",units:[[g.unitName,[g.count]]]}:{enabled:!1}};e.processData.apply(b);d.series.push(b)}),this.beforeSetTickPositions.apply(d),h[k]=d.ordinalPositions);return h[k]},getGroupIntervalFactor:function(a, +g,h){var e;h=h.processedXData;var f=h.length,d=[];e=this.groupIntervalFactor;if(!e){for(e=0;ed?(l=p,t=e.ordinalPositions?e:p):(l=e.ordinalPositions?e:p,t=p),p=t.ordinalPositions,q>p[p.length-1]&&p.push(q),this.fixedRange=c-m,d=e.toFixedRange(null,null,n.apply(l,[x.apply(l,[m,!0])+d,!0]),n.apply(t,[x.apply(t, +[c,!0])+d,!0])),d.min>=Math.min(b.dataMin,m)&&d.max<=Math.max(q,c)&&e.setExtremes(d.min,d.max,!0,!1,{trigger:"pan"}),this.mouseDownX=k,H(this.container,{cursor:"move"})):f=!0}else f=!0;f&&a.apply(this,Array.prototype.slice.call(arguments,1))});k.prototype.gappedPath=function(){var a=this.options.gapSize,g=this.points.slice(),h=g.length-1;if(a&&0this.closestPointRange*a&&g.splice(h+1,0,{isNull:!0});return this.getGraphPath(g)}})(N);(function(a){function D(){return Array.prototype.slice.call(arguments, +1)}function B(a){a.apply(this);this.drawBreaks(this.xAxis,["x"]);this.drawBreaks(this.yAxis,G(this.pointArrayMap,["y"]))}var G=a.pick,H=a.wrap,p=a.each,l=a.extend,r=a.fireEvent,w=a.Axis,t=a.Series;l(w.prototype,{isInBreak:function(a,m){var e=a.repeat||Infinity,g=a.from,h=a.to-a.from;m=m>=g?(m-g)%e:e-(g-m)%e;return a.inclusive?m<=h:m=a)break;else if(g.isInBreak(f,a)){e-=a-f.from;break}return e};this.lin2val=function(a){var e,f;for(f=0;f=a);f++)e.toh;)m-=b;for(;mb.to||l>b.from&&db.from&&db.from&&d>b.to&&d=c[0]);A++);for(A;A<=q;A++){for(;(void 0!==c[w+1]&&a[A]>=c[w+1]||A===q)&&(l=c[w],this.dataGroupInfo={start:p,length:t[0].length},p=d.apply(this,t),void 0!==p&&(g.push(l),h.push(p),m.push(this.dataGroupInfo)),p=A,t[0]=[],t[1]=[],t[2]=[],t[3]=[],w+=1,A!==q););if(A===q)break;if(x){l=this.cropStart+A;l=e&&e[l]|| +this.pointClass.prototype.applyOptions.apply({series:this},[f[l]]);var E,C;for(E=0;Ethis.chart.plotSizeX/d||b&&f.forced)&&(e=!0);return e?d:0};G.prototype.setDataGrouping=function(a,b){var c;b=e(b,!0);a||(a={forced:!1,units:null});if(this instanceof G)for(c=this.series.length;c--;)this.series[c].update({dataGrouping:a},!1);else l(this.chart.options.series,function(b){b.dataGrouping=a},!1);b&&this.chart.redraw()}})(N);(function(a){var D=a.each,B=a.Point,G=a.seriesType,H=a.seriesTypes;G("ohlc","column",{lineWidth:1,tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eOpen: {point.open}\x3cbr/\x3eHigh: {point.high}\x3cbr/\x3eLow: {point.low}\x3cbr/\x3eClose: {point.close}\x3cbr/\x3e'}, +threshold:null,states:{hover:{lineWidth:3}}},{pointArrayMap:["open","high","low","close"],toYData:function(a){return[a.open,a.high,a.low,a.close]},pointValKey:"high",pointAttribs:function(a,l){l=H.column.prototype.pointAttribs.call(this,a,l);var p=this.options;delete l.fill;l["stroke-width"]=p.lineWidth;l.stroke=a.options.color||(a.openk)););B(g,function(a,b){var d;void 0===a.plotY&&(a.x>=c.min&&a.x<=c.max?a.plotY=e.chartHeight-p.bottom-(p.opposite?p.height:0)+p.offset-e.plotTop:a.shapeArgs={});a.plotX+=t;(f=g[b-1])&&f.plotX===a.plotX&&(void 0===f.stackIndex&&(f.stackIndex=0),d=f.stackIndex+1);a.stackIndex=d})},drawPoints:function(){var a=this.points,e=this.chart,g=e.renderer,k,l,f=this.options,d=f.y,b,q,p,c,r,n,t,x=this.yAxis;for(q=a.length;q--;)p=a[q],t=p.plotX>this.xAxis.len,k=p.plotX,c=p.stackIndex,b= +p.options.shape||f.shape,l=p.plotY,void 0!==l&&(l=p.plotY+d-(void 0!==c&&c*f.stackDistance)),r=c?void 0:p.plotX,n=c?void 0:p.plotY,c=p.graphic,void 0!==l&&0<=k&&!t?(c||(c=p.graphic=g.label("",null,null,b,null,null,f.useHTML).attr(this.pointAttribs(p)).css(G(f.style,p.style)).attr({align:"flag"===b?"left":"center",width:f.width,height:f.height,"text-align":f.textAlign}).addClass("highcharts-point").add(this.markerGroup),c.shadow(f.shadow)),0h&&(e-=Math.round((l-h)/2),h=l);e=k[a](e,g,h,l);d&&f&&e.push("M",d,g>f?g:g+l,"L",d,f);return e}});p===t&&B(["flag","circlepin","squarepin"],function(a){t.prototype.symbols[a]=k[a]})})(N);(function(a){function D(a,d,e){this.init(a,d,e)}var B=a.addEvent,G=a.Axis,H=a.correctFloat,p=a.defaultOptions, +l=a.defined,r=a.destroyObjectProperties,w=a.doc,t=a.each,k=a.fireEvent,m=a.hasTouch,e=a.isTouchDevice,g=a.merge,h=a.pick,C=a.removeEvent,f=a.wrap,d={height:e?20:14,barBorderRadius:0,buttonBorderRadius:0,liveRedraw:a.svg&&!e,margin:10,minWidth:6,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:1,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"#333333",trackBackgroundColor:"#f2f2f2",trackBorderColor:"#f2f2f2", +trackBorderWidth:1};p.scrollbar=g(!0,d,p.scrollbar);D.prototype={init:function(a,e,f){this.scrollbarButtons=[];this.renderer=a;this.userOptions=e;this.options=g(d,e);this.chart=f;this.size=h(this.options.size,this.options.height);e.enabled&&(this.render(),this.initEvents(),this.addEvents())},render:function(){var a=this.renderer,d=this.options,e=this.size,c;this.group=c=a.g("scrollbar").attr({zIndex:d.zIndex,translateY:-99999}).add();this.track=a.rect().addClass("highcharts-scrollbar-track").attr({x:0, +r:d.trackBorderRadius||0,height:e,width:e}).add(c);this.track.attr({fill:d.trackBackgroundColor,stroke:d.trackBorderColor,"stroke-width":d.trackBorderWidth});this.trackBorderWidth=this.track.strokeWidth();this.track.attr({y:-this.trackBorderWidth%2/2});this.scrollbarGroup=a.g().add(c);this.scrollbar=a.rect().addClass("highcharts-scrollbar-thumb").attr({height:e,width:e,r:d.barBorderRadius||0}).add(this.scrollbarGroup);this.scrollbarRifles=a.path(this.swapXY(["M",-3,e/4,"L",-3,2*e/3,"M",0,e/4,"L", +0,2*e/3,"M",3,e/4,"L",3,2*e/3],d.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup);this.scrollbar.attr({fill:d.barBackgroundColor,stroke:d.barBorderColor,"stroke-width":d.barBorderWidth});this.scrollbarRifles.attr({stroke:d.rifleColor,"stroke-width":1});this.scrollbarStrokeWidth=this.scrollbar.strokeWidth();this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2);this.drawScrollbarButton(0);this.drawScrollbarButton(1)},position:function(a, +d,e,c){var b=this.options.vertical,f=0,g=this.rendered?"animate":"attr";this.x=a;this.y=d+this.trackBorderWidth;this.width=e;this.xOffset=this.height=c;this.yOffset=f;b?(this.width=this.yOffset=e=f=this.size,this.xOffset=d=0,this.barWidth=c-2*e,this.x=a+=this.options.margin):(this.height=this.xOffset=c=d=this.size,this.barWidth=e-2*c,this.y+=this.options.margin);this.group[g]({translateX:a,translateY:this.y});this.track[g]({width:e,height:c});this.scrollbarButtons[1].attr({translateX:b?0:e-d,translateY:b? +c-f:0})},drawScrollbarButton:function(a){var b=this.renderer,d=this.scrollbarButtons,c=this.options,e=this.size,f;f=b.g().add(this.group);d.push(f);f=b.rect().addClass("highcharts-scrollbar-button").add(f);f.attr({stroke:c.buttonBorderColor,"stroke-width":c.buttonBorderWidth,fill:c.buttonBackgroundColor});f.attr(f.crisp({x:-.5,y:-.5,width:e+1,height:e+1,r:c.buttonBorderRadius},f.strokeWidth()));f=b.path(this.swapXY(["M",e/2+(a?-1:1),e/2-3,"L",e/2+(a?-1:1),e/2+3,"L",e/2+(a?2:-2),e/2],c.vertical)).addClass("highcharts-scrollbar-arrow").add(d[a]); +f.attr({fill:c.buttonArrowColor})},swapXY:function(a,d){var b=a.length,c;if(d)for(d=0;d=k?this.scrollbarRifles.hide():this.scrollbarRifles.show(!0),!1===b.showFull&&(0>=a&&1<=d?this.group.hide():this.group.show()),this.rendered=!0)},initEvents:function(){var a=this;a.mouseMoveHandler=function(b){var d=a.chart.pointer.normalize(b),c=a.options.vertical? +"chartY":"chartX",e=a.initPositions;!a.grabbedCenter||b.touches&&0===b.touches[0][c]||(d=a.cursorToScrollbarPosition(d)[c],c=a[c],c=d-c,a.hasDragged=!0,a.updatePosition(e[0]+c,e[1]+c),a.hasDragged&&k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMType:b.type,DOMEvent:b}))};a.mouseUpHandler=function(b){a.hasDragged&&k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMType:b.type,DOMEvent:b});a.grabbedCenter=a.hasDragged=a.chartX=a.chartY=null};a.mouseDownHandler=function(b){b=a.chart.pointer.normalize(b); +b=a.cursorToScrollbarPosition(b);a.chartX=b.chartX;a.chartY=b.chartY;a.initPositions=[a.from,a.to];a.grabbedCenter=!0};a.buttonToMinClick=function(b){var d=H(a.to-a.from)*a.options.step;a.updatePosition(H(a.from-d),H(a.to-d));k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})};a.buttonToMaxClick=function(b){var d=(a.to-a.from)*a.options.step;a.updatePosition(a.from+d,a.to+d);k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})};a.trackClick=function(b){var d=a.chart.pointer.normalize(b), +c=a.to-a.from,e=a.y+a.scrollbarTop,f=a.x+a.scrollbarLeft;a.options.vertical&&d.chartY>e||!a.options.vertical&&d.chartX>f?a.updatePosition(a.from+c,a.to+c):a.updatePosition(a.from-c,a.to-c);k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})}},cursorToScrollbarPosition:function(a){var b=this.options,b=b.minWidth>this.calculatedWidth?b.minWidth:0;return{chartX:(a.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(a.chartY-this.y-this.yOffset)/(this.barWidth-b)}},updatePosition:function(a, +d){1a&&(d=H(d-a),a=0);this.from=a;this.to=d},update:function(a){this.destroy();this.init(this.chart.renderer,g(!0,this.options,a),this.chart)},addEvents:function(){var a=this.options.inverted?[1,0]:[0,1],d=this.scrollbarButtons,e=this.scrollbarGroup.element,c=this.mouseDownHandler,f=this.mouseMoveHandler,g=this.mouseUpHandler,a=[[d[a[0]].element,"click",this.buttonToMinClick],[d[a[1]].element,"click",this.buttonToMaxClick],[this.track.element,"click",this.trackClick],[e, +"mousedown",c],[w,"mousemove",f],[w,"mouseup",g]];m&&a.push([e,"touchstart",c],[w,"touchmove",f],[w,"touchend",g]);t(a,function(a){B.apply(null,a)});this._events=a},removeEvents:function(){t(this._events,function(a){C.apply(null,a)});this._events=void 0},destroy:function(){var a=this.chart.scroller;this.removeEvents();t(["track","scrollbarRifles","scrollbar","scrollbarGroup","group"],function(a){this[a]&&this[a].destroy&&(this[a]=this[a].destroy())},this);a&&(a.scrollbar=null,r(a.scrollbarButtons))}}; +f(G.prototype,"init",function(a){var b=this;a.apply(b,[].slice.call(arguments,1));b.options.scrollbar&&b.options.scrollbar.enabled&&(b.options.scrollbar.vertical=!b.horiz,b.options.startOnTick=b.options.endOnTick=!1,b.scrollbar=new D(b.chart.renderer,b.options.scrollbar,b.chart),B(b.scrollbar,"changed",function(a){var c=Math.min(h(b.options.min,b.min),b.min,b.dataMin),d=Math.max(h(b.options.max,b.max),b.max,b.dataMax)-c,e;b.horiz&&!b.reversed||!b.horiz&&b.reversed?(e=c+d*this.to,c+=d*this.from):(e= +c+d*(1-this.from),c+=d*(1-this.to));b.setExtremes(c,e,!0,!1,a)}))});f(G.prototype,"render",function(a){var b=Math.min(h(this.options.min,this.min),this.min,this.dataMin),d=Math.max(h(this.options.max,this.max),this.max,this.dataMax),c=this.scrollbar,e;a.apply(this,[].slice.call(arguments,1));c&&(this.horiz?c.position(this.left,this.top+this.height+this.offset+2+(this.opposite?0:this.axisTitleMargin),this.width,this.height):c.position(this.left+this.width+2+this.offset+(this.opposite?this.axisTitleMargin: +0),this.top,this.width,this.height),isNaN(b)||isNaN(d)||!l(this.min)||!l(this.max)?c.setRange(0,0):(e=(this.min-b)/(d-b),b=(this.max-b)/(d-b),this.horiz&&!this.reversed||!this.horiz&&this.reversed?c.setRange(e,b):c.setRange(1-b,1-e)))});f(G.prototype,"getOffset",function(a){var b=this.horiz?2:1,d=this.scrollbar;a.apply(this,[].slice.call(arguments,1));d&&(this.chart.axisOffset[b]+=d.size+d.options.margin)});f(G.prototype,"destroy",function(a){this.scrollbar&&(this.scrollbar=this.scrollbar.destroy()); +a.apply(this,[].slice.call(arguments,1))});a.Scrollbar=D})(N);(function(a){function D(a){this.init(a)}var B=a.addEvent,G=a.Axis,H=a.Chart,p=a.color,l=a.defaultOptions,r=a.defined,w=a.destroyObjectProperties,t=a.doc,k=a.each,m=a.erase,e=a.error,g=a.extend,h=a.grep,C=a.hasTouch,f=a.isNumber,d=a.isObject,b=a.isTouchDevice,q=a.merge,E=a.pick,c=a.removeEvent,F=a.Scrollbar,n=a.Series,A=a.seriesTypes,x=a.wrap,J=[].concat(a.defaultDataGroupingUnits),y=function(a){var b=h(arguments,f);if(b.length)return Math[a].apply(0, +b)};J[4]=["day",[1,2,3,4]];J[5]=["week",[1,2,3]];A=void 0===A.areaspline?"line":"areaspline";g(l,{navigator:{height:40,margin:25,maskInside:!0,handles:{backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:p("#6685c2").setOpacity(.3).get(),outlineColor:"#cccccc",outlineWidth:1,series:{type:A,color:"#335cad",fillOpacity:.05,lineWidth:1,compare:null,dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,smoothed:!0,units:J},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series", +className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},pointRange:0,shadow:!1,threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#999999"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}); +D.prototype={drawHandle:function(a,b){var c=this.chart.renderer,d=this.handles;this.rendered||(d[b]=c.path(["M",-4.5,.5,"L",3.5,.5,3.5,15.5,-4.5,15.5,-4.5,.5,"M",-1.5,4,"L",-1.5,12,"M",.5,4,"L",.5,12]).attr({zIndex:10-b}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][b]).add(),c=this.navigatorOptions.handles,d[b].attr({fill:c.backgroundColor,stroke:c.borderColor,"stroke-width":1}).css({cursor:"ew-resize"}));d[b][this.rendered&&!this.hasDragged?"animate":"attr"]({translateX:Math.round(this.scrollerLeft+ +this.scrollbarHeight+parseInt(a,10)),translateY:Math.round(this.top+this.height/2-8)})},update:function(a){this.destroy();q(!0,this.chart.options.navigator,this.options,a);this.init(this.chart)},render:function(a,b,c,d){var e=this.chart,g=e.renderer,k,h,l,n;n=this.scrollbarHeight;var m=this.xAxis,p=this.navigatorOptions,u=p.maskInside,q=this.height,v=this.top,t=this.navigatorEnabled,x=this.outlineHeight,y;y=this.rendered;if(f(a)&&f(b)&&(!this.hasDragged||r(c))&&(this.navigatorLeft=k=E(m.left,e.plotLeft+ +n),this.navigatorWidth=h=E(m.len,e.plotWidth-2*n),this.scrollerLeft=l=k-n,this.scrollerWidth=n=n=h+2*n,c=E(c,m.translate(a)),d=E(d,m.translate(b)),f(c)&&Infinity!==Math.abs(c)||(c=0,d=n),!(m.translate(d,!0)-m.translate(c,!0)f&&tp+d-u&&rk&&re?e=0:e+v>=q&&(e=q-v,x=h.getUnionExtremes().dataMax),e!==d&&(h.fixedWidth=v,d=l.toFixedRange(e, +e+v,null,x),c.setExtremes(d.min,d.max,!0,null,{trigger:"navigator"}))))};h.mouseMoveHandler=function(b){var c=h.scrollbarHeight,d=h.navigatorLeft,e=h.navigatorWidth,f=h.scrollerLeft,g=h.scrollerWidth,k=h.range,l;b.touches&&0===b.touches[0].pageX||(b=a.pointer.normalize(b),l=b.chartX,lf+g-c&&(l=f+g-c),h.grabbedLeft?(h.hasDragged=!0,h.render(0,0,l-d,h.otherHandlePos)):h.grabbedRight?(h.hasDragged=!0,h.render(0,0,h.otherHandlePos,l-d)):h.grabbedCenter&&(h.hasDragged=!0,le+n-k&&(l=e+ +n-k),h.render(0,0,l-n,l-n+k)),h.hasDragged&&h.scrollbar&&h.scrollbar.options.liveRedraw&&(b.DOMType=b.type,setTimeout(function(){h.mouseUpHandler(b)},0)))};h.mouseUpHandler=function(b){var c,d,e=b.DOMEvent||b;if(h.hasDragged||"scrollbar"===b.trigger)h.zoomedMin===h.otherHandlePos?c=h.fixedExtreme:h.zoomedMax===h.otherHandlePos&&(d=h.fixedExtreme),h.zoomedMax===h.navigatorWidth&&(d=h.getUnionExtremes().dataMax),c=l.toFixedRange(h.zoomedMin,h.zoomedMax,c,d),r(c.min)&&a.xAxis[0].setExtremes(c.min,c.max, +!0,h.hasDragged?!1:null,{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:e});"mousemove"!==b.DOMType&&(h.grabbedLeft=h.grabbedRight=h.grabbedCenter=h.fixedWidth=h.fixedExtreme=h.otherHandlePos=h.hasDragged=n=null)};var c=a.xAxis.length,f=a.yAxis.length,m=e&&e[0]&&e[0].xAxis||a.xAxis[0];a.extraBottomMargin=h.outlineHeight+d.margin;a.isDirtyBox=!0;h.navigatorEnabled?(h.xAxis=l=new G(a,q({breaks:m.options.breaks,ordinal:m.options.ordinal},d.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis", +isX:!0,type:"datetime",index:c,height:g,offset:0,offsetLeft:k,offsetRight:-k,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1})),h.yAxis=new G(a,q(d.yAxis,{id:"navigator-y-axis",alignTicks:!1,height:g,offset:0,index:f,zoomEnabled:!1})),e||d.series.data?h.addBaseSeries():0===a.series.length&&x(a,"redraw",function(b,c){0=Math.round(a.navigatorWidth);b&&!a.hasNavigatorData&&(b.options.pointStart=this.xData[0],b.setData(this.options.data,!1,null,!1))},destroy:function(){this.removeEvents();this.xAxis&&(m(this.chart.xAxis,this.xAxis),m(this.chart.axes,this.xAxis));this.yAxis&&(m(this.chart.yAxis,this.yAxis),m(this.chart.axes,this.yAxis));k(this.series||[],function(a){a.destroy&&a.destroy()});k("series xAxis yAxis leftShade rightShade outline scrollbarTrack scrollbarRifles scrollbarGroup scrollbar navigatorGroup rendered".split(" "), +function(a){this[a]&&this[a].destroy&&this[a].destroy();this[a]=null},this);k([this.handles,this.elementsToDestroy],function(a){w(a)},this)}};a.Navigator=D;x(G.prototype,"zoom",function(a,b,c){var d=this.chart,e=d.options,f=e.chart.zoomType,g=e.navigator,e=e.rangeSelector,h;this.isXAxis&&(g&&g.enabled||e&&e.enabled)&&("x"===f?d.resetZoomButton="blocked":"y"===f?h=!1:"xy"===f&&(d=this.previousZoom,r(b)?this.previousZoom=[this.min,this.max]:d&&(b=d[0],c=d[1],delete this.previousZoom)));return void 0!== +h?h:a.call(this,b,c)});x(H.prototype,"init",function(a,b,c){B(this,"beforeRender",function(){var a=this.options;if(a.navigator.enabled||a.scrollbar.enabled)this.scroller=this.navigator=new D(this)});a.call(this,b,c)});x(H.prototype,"getMargins",function(a){var b=this.legend,c=b.options,d=this.scroller,e,f;a.apply(this,[].slice.call(arguments,1));d&&(e=d.xAxis,f=d.yAxis,d.top=d.navigatorOptions.top||this.chartHeight-d.height-d.scrollbarHeight-this.spacing[2]-("bottom"===c.verticalAlign&&c.enabled&& +!c.floating?b.legendHeight+E(c.margin,10):0),e&&f&&(e.options.top=f.options.top=d.top,e.setAxisSize(),f.setAxisSize()))});x(n.prototype,"addPoint",function(a,b,c,f,g){var h=this.options.turboThreshold;h&&this.xData.length>h&&d(b,!0)&&this.chart.scroller&&e(20,!0);a.call(this,b,c,f,g)});x(H.prototype,"addSeries",function(a,b,c,d){a=a.call(this,b,!1,d);this.scroller&&this.scroller.setBaseSeries();E(c,!0)&&this.redraw();return a});x(n.prototype,"update",function(a,b,c){a.call(this,b,!1);this.chart.scroller&& +this.chart.scroller.setBaseSeries();E(c,!0)&&this.chart.redraw()})})(N);(function(a){function D(a){this.init(a)}var B=a.addEvent,G=a.Axis,H=a.Chart,p=a.css,l=a.createElement,r=a.dateFormat,w=a.defaultOptions,t=w.global.useUTC,k=a.defined,m=a.destroyObjectProperties,e=a.discardElement,g=a.each,h=a.extend,C=a.fireEvent,f=a.Date,d=a.isNumber,b=a.merge,q=a.pick,E=a.pInt,c=a.splat,F=a.wrap;h(w,{rangeSelector:{buttonTheme:{"stroke-width":0,width:28,height:18,padding:2,zIndex:7},height:35,inputPosition:{align:"right"}, +labelStyle:{color:"#666666"}}});w.lang=b(w.lang,{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"From",rangeSelectorTo:"To"});D.prototype={clickButton:function(a,b){var e=this,f=e.chart,h=e.buttonOptions[a],k=f.xAxis[0],l=f.scroller&&f.scroller.getUnionExtremes()||k||{},n=l.dataMin,m=l.dataMax,p,r=k&&Math.round(Math.min(k.max,q(m,k.max))),w=h.type,z,l=h._range,A,C,D,E=h.dataGrouping;if(null!==n&&null!==m){f.fixedRange=l;E&&(this.forcedDataGrouping=!0,G.prototype.setDataGrouping.call(k||{chart:this.chart}, +E,!1));if("month"===w||"year"===w)k?(w={range:h,max:r,dataMin:n,dataMax:m},p=k.minFromRange.call(w),d(w.newMax)&&(r=w.newMax)):l=h;else if(l)p=Math.max(r-l,n),r=Math.min(p+l,m);else if("ytd"===w)if(k)void 0===m&&(n=Number.MAX_VALUE,m=Number.MIN_VALUE,g(f.series,function(a){a=a.xData;n=Math.min(a[0],n);m=Math.max(a[a.length-1],m)}),b=!1),r=e.getYTDExtremes(m,n,t),p=A=r.min,r=r.max;else{B(f,"beforeRender",function(){e.clickButton(a)});return}else"all"===w&&k&&(p=n,r=m);e.setSelected(a);k?k.setExtremes(p, +r,q(b,1),null,{trigger:"rangeSelectorButton",rangeSelectorButton:h}):(z=c(f.options.xAxis)[0],D=z.range,z.range=l,C=z.min,z.min=A,B(f,"load",function(){z.range=D;z.min=C}))}},setSelected:function(a){this.selected=this.options.selected=a},defaultButtons:[{type:"month",count:1,text:"1m"},{type:"month",count:3,text:"3m"},{type:"month",count:6,text:"6m"},{type:"ytd",text:"YTD"},{type:"year",count:1,text:"1y"},{type:"all",text:"All"}],init:function(a){var b=this,c=a.options.rangeSelector,d=c.buttons|| +[].concat(b.defaultButtons),e=c.selected,f=function(){var a=b.minInput,c=b.maxInput;a&&a.blur&&C(a,"blur");c&&c.blur&&C(c,"blur")};b.chart=a;b.options=c;b.buttons=[];a.extraTopMargin=c.height;b.buttonOptions=d;this.unMouseDown=B(a.container,"mousedown",f);this.unResize=B(a,"resize",f);g(d,b.computeButtonRange);void 0!==e&&d[e]&&this.clickButton(e,!1);B(a,"load",function(){B(a.xAxis[0],"setExtremes",function(c){this.max-this.min!==a.fixedRange&&"rangeSelectorButton"!==c.trigger&&"updatedData"!==c.trigger&& +b.forcedDataGrouping&&this.setDataGrouping(!1,!1)})})},updateButtonStates:function(){var a=this.chart,b=a.xAxis[0],c=Math.round(b.max-b.min),e=!b.hasVisibleSeries,a=a.scroller&&a.scroller.getUnionExtremes()||b,f=a.dataMin,h=a.dataMax,a=this.getYTDExtremes(h,f,t),k=a.min,l=a.max,m=this.selected,p=d(m),q=this.options.allButtonsEnabled,r=this.buttons;g(this.buttonOptions,function(a,d){var g=a._range,n=a.type,u=a.count||1;a=r[d];var t=0;d=d===m;var v=g>h-f,x=g=864E5*{month:28,year:365}[n]*u&&c<=864E5*{month:31,year:366}[n]*u?g=!0:"ytd"===n?(g=l-k===c,y=!d):"all"===n&&(g=b.max-b.min>=h-f,w=!d&&p&&g);n=!q&&(v||x||w||e);g=d&&g||g&&!p&&!y;n?t=3:g&&(p=!0,t=2);a.state!==t&&a.setState(t)})},computeButtonRange:function(a){var b=a.type,c=a.count||1,d={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5};if(d[b])a._range=d[b]*c;else if("month"===b||"year"===b)a._range=864E5*{month:30,year:365}[b]*c},setInputValue:function(a,b){var c= +this.chart.options.rangeSelector,d=this[a+"Input"];k(b)&&(d.previousValue=d.HCTime,d.HCTime=b);d.value=r(c.inputEditDateFormat||"%Y-%m-%d",d.HCTime);this[a+"DateBox"].attr({text:r(c.inputDateFormat||"%b %e, %Y",d.HCTime)})},showInput:function(a){var b=this.inputGroup,c=this[a+"DateBox"];p(this[a+"Input"],{left:b.translateX+c.x+"px",top:b.translateY+"px",width:c.width-2+"px",height:c.height-2+"px",border:"2px solid silver"})},hideInput:function(a){p(this[a+"Input"],{border:0,width:"1px",height:"1px"}); +this.setInputValue(a)},drawInput:function(a){function c(){var a=r.value,b=(m.inputDateParser||Date.parse)(a),c=f.xAxis[0],g=f.scroller&&f.scroller.xAxis?f.scroller.xAxis:c,h=g.dataMin,g=g.dataMax;b!==r.previousValue&&(r.previousValue=b,d(b)||(b=a.split("-"),b=Date.UTC(E(b[0]),E(b[1])-1,E(b[2]))),d(b)&&(t||(b+=6E4*(new Date).getTimezoneOffset()),q?b>e.maxInput.HCTime?b=void 0:bg&&(b=g),void 0!==b&&c.setExtremes(q?b:c.min,q?c.max:b,void 0,void 0,{trigger:"rangeSelectorInput"})))} +var e=this,f=e.chart,g=f.renderer.style||{},k=f.renderer,m=f.options.rangeSelector,n=e.div,q="min"===a,r,B,C=this.inputGroup;this[a+"Label"]=B=k.label(w.lang[q?"rangeSelectorFrom":"rangeSelectorTo"],this.inputGroup.offset).addClass("highcharts-range-label").attr({padding:2}).add(C);C.offset+=B.width+5;this[a+"DateBox"]=k=k.label("",C.offset).addClass("highcharts-range-input").attr({padding:2,width:m.inputBoxWidth||90,height:m.inputBoxHeight||17,stroke:m.inputBoxBorderColor||"#cccccc","stroke-width":1, +"text-align":"center"}).on("click",function(){e.showInput(a);e[a+"Input"].focus()}).add(C);C.offset+=k.width+(q?10:0);this[a+"Input"]=r=l("input",{name:a,className:"highcharts-range-selector",type:"text"},{top:f.plotTop+"px"},n);B.css(b(g,m.labelStyle));k.css(b({color:"#333333"},g,m.inputStyle));p(r,h({position:"absolute",border:0,width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:g.fontSize,fontFamily:g.fontFamily,left:"-9em"},m.inputStyle));r.onfocus=function(){e.showInput(a)};r.onblur= +function(){e.hideInput(a)};r.onchange=c;r.onkeypress=function(a){13===a.keyCode&&c()}},getPosition:function(){var a=this.chart,b=a.options.rangeSelector,a=q((b.buttonPosition||{}).y,a.plotTop-a.axisOffset[0]-b.height);return{buttonTop:a,inputTop:a-10}},getYTDExtremes:function(a,b,c){var d=new f(a),e=d[f.hcGetFullYear]();c=c?f.UTC(e,0,1):+new f(e,0,1);b=Math.max(b||0,c);d=d.getTime();return{max:Math.min(a||d,d),min:b}},render:function(a,b){var c=this,d=c.chart,e=d.renderer,f=d.container,m=d.options, +n=m.exporting&&!1!==m.exporting.enabled&&m.navigation&&m.navigation.buttonOptions,p=m.rangeSelector,r=c.buttons,m=w.lang,t=c.div,t=c.inputGroup,A=p.buttonTheme,z=p.buttonPosition||{},B=p.inputEnabled,C=A&&A.states,D=d.plotLeft,E,G=this.getPosition(),F=c.group,H=c.rendered;!1!==p.enabled&&(H||(c.group=F=e.g("range-selector-buttons").add(),c.zoomText=e.text(m.rangeSelectorZoom,q(z.x,D),15).css(p.labelStyle).add(F),E=q(z.x,D)+c.zoomText.getBBox().width+5,g(c.buttonOptions,function(a,b){r[b]=e.button(a.text, +E,0,function(){c.clickButton(b);c.isActive=!0},A,C&&C.hover,C&&C.select,C&&C.disabled).attr({"text-align":"center"}).add(F);E+=r[b].width+q(p.buttonSpacing,5)}),!1!==B&&(c.div=t=l("div",null,{position:"relative",height:0,zIndex:1}),f.parentNode.insertBefore(t,f),c.inputGroup=t=e.g("input-group").add(),t.offset=0,c.drawInput("min"),c.drawInput("max"))),c.updateButtonStates(),F[H?"animate":"attr"]({translateY:G.buttonTop}),!1!==B&&(t.align(h({y:G.inputTop,width:t.offset,x:n&&G.inputTop<(n.y||0)+n.height- +d.spacing[0]?-40:0},p.inputPosition),!0,d.spacingBox),k(B)||(d=F.getBBox(),t[t.alignAttr.translateXc&&(e?a=b-f:b=a+f);d(a)||(a=b=void 0);return{min:a,max:b}};G.prototype.minFromRange=function(){var a=this.range,b={month:"Month",year:"FullYear"}[a.type],c,e=this.max,f,g,h=function(a,c){var d=new Date(a);d["set"+b](d["get"+ +b]()+c);return d.getTime()-a};d(a)?(c=e-a,g=a):(c=e+h(e,-a.count),this.chart&&(this.chart.fixedRange=e-c));f=q(this.dataMin,Number.MIN_VALUE);d(c)||(c=f);c<=f&&(c=f,void 0===g&&(g=h(c,a.count)),this.newMax=Math.min(c+g,this.dataMax));d(e)||(c=void 0);return c};F(H.prototype,"init",function(a,b,c){B(this,"init",function(){this.options.rangeSelector.enabled&&(this.rangeSelector=new D(this))});a.call(this,b,c)});a.RangeSelector=D})(N);(function(a){var D=a.addEvent,B=a.isNumber;a.Chart.prototype.callbacks.push(function(a){function G(){p= +a.xAxis[0].getExtremes();B(p.min)&&r.render(p.min,p.max)}var p,l=a.scroller,r=a.rangeSelector,w,t;l&&(p=a.xAxis[0].getExtremes(),l.render(p.min,p.max));r&&(t=D(a.xAxis[0],"afterSetExtremes",function(a){r.render(a.min,a.max)}),w=D(a,"redraw",G),G());D(a,"destroy",function(){r&&(w(),t())})})})(N);(function(a){var D=a.arrayMax,B=a.arrayMin,G=a.Axis,H=a.Chart,p=a.defined,l=a.each,r=a.extend,w=a.format,t=a.inArray,k=a.isNumber,m=a.isString,e=a.map,g=a.merge,h=a.pick,C=a.Point,f=a.Renderer,d=a.Series,b= +a.splat,q=a.stop,E=a.SVGRenderer,c=a.VMLRenderer,F=a.wrap,n=d.prototype,A=n.init,x=n.processData,J=C.prototype.tooltipFormatter;a.StockChart=a.stockChart=function(c,d,f){var k=m(c)||c.nodeName,l=arguments[k?1:0],n=l.series,p=a.getOptions(),q,r=h(l.navigator&&l.navigator.enabled,!0)?{startOnTick:!1,endOnTick:!1}:null,t={marker:{enabled:!1,radius:2}},u={shadow:!1,borderWidth:0};l.xAxis=e(b(l.xAxis||{}),function(a){return g({minPadding:0,maxPadding:0,ordinal:!0,title:{text:null},labels:{overflow:"justify"}, +showLastLabel:!0},p.xAxis,a,{type:"datetime",categories:null},r)});l.yAxis=e(b(l.yAxis||{}),function(a){q=h(a.opposite,!0);return g({labels:{y:-2},opposite:q,showLastLabel:!1,title:{text:null}},p.yAxis,a)});l.series=null;l=g({chart:{panning:!0,pinchType:"x"},navigator:{enabled:!0},scrollbar:{enabled:!0},rangeSelector:{enabled:!0},title:{text:null,style:{fontSize:"16px"}},tooltip:{shared:!0,crosshairs:!0},legend:{enabled:!1},plotOptions:{line:t,spline:t,area:t,areaspline:t,arearange:t,areasplinerange:t, +column:u,columnrange:u,candlestick:u,ohlc:u}},l,{_stock:!0,chart:{inverted:!1}});l.series=n;return k?new H(c,l,f):new H(l,d)};F(G.prototype,"autoLabelAlign",function(a){var b=this.chart,c=this.options,b=b._labelPanes=b._labelPanes||{},d=this.options.labels;return this.chart.options._stock&&"yAxis"===this.coll&&(c=c.top+","+c.height,!b[c]&&d.enabled)?(15===d.x&&(d.x=0),void 0===d.align&&(d.align="right"),b[c]=1,"right"):a.call(this,[].slice.call(arguments,1))});F(G.prototype,"getPlotLinePath",function(a, +b,c,d,f,g){var n=this,q=this.isLinked&&!this.series?this.linkedParent.series:this.series,r=n.chart,u=r.renderer,v=n.left,w=n.top,y,x,A,B,C=[],D=[],E,F;if("colorAxis"===n.coll)return a.apply(this,[].slice.call(arguments,1));D=function(a){var b="xAxis"===a?"yAxis":"xAxis";a=n.options[b];return k(a)?[r[b][a]]:m(a)?[r.get(a)]:e(q,function(a){return a[b]})}(n.coll);l(n.isXAxis?r.yAxis:r.xAxis,function(a){if(p(a.options.id)?-1===a.options.id.indexOf("navigator"):1){var b=a.isXAxis?"yAxis":"xAxis",b=p(a.options[b])? +r[b][a.options[b]]:r[b][0];n===b&&D.push(a)}});E=D.length?[]:[n.isXAxis?r.yAxis[0]:r.xAxis[0]];l(D,function(a){-1===t(a,E)&&E.push(a)});F=h(g,n.translate(b,null,null,d));k(F)&&(n.horiz?l(E,function(a){var b;x=a.pos;B=x+a.len;y=A=Math.round(F+n.transB);if(yv+n.width)f?y=A=Math.min(Math.max(v,y),v+n.width):b=!0;b||C.push("M",y,x,"L",A,B)}):l(E,function(a){var b;y=a.pos;A=y+a.len;x=B=Math.round(w+n.height-F);if(xw+n.height)f?x=B=Math.min(Math.max(w,x),n.top+n.height):b=!0;b||C.push("M",y, +x,"L",A,B)}));return 0=e&&(x=-(l.translateX+b.width-e));l.attr({x:m+x,y:k,anchorX:g?m:this.opposite?0:a.chartWidth,anchorY:g?this.opposite?a.chartHeight:0:k+b.height/2})}});n.init=function(){A.apply(this,arguments);this.setCompare(this.options.compare)};n.setCompare=function(a){this.modifyValue= +"value"===a||"percent"===a?function(b,c){var d=this.compareValue;if(void 0!==b&&void 0!==d)return b="value"===a?b-d:b=b/d*100-100,c&&(c.change=b),b}:null;this.userOptions.compare=a;this.chart.hasRendered&&(this.isDirty=!0)};n.processData=function(){var a,b=-1,c,d,e,f;x.apply(this,arguments);if(this.xAxis&&this.processedYData)for(c=this.processedXData,d=this.processedYData,e=d.length,this.pointArrayMap&&(b=t("close",this.pointArrayMap),-1===b&&(b=t(this.pointValKey||"y",this.pointArrayMap))),a=0;a< +e-1;a++)if(f=-1=this.xAxis.min&&0!==f){this.compareValue=f;break}};F(n,"getExtremes",function(a){var b;a.apply(this,[].slice.call(arguments,1));this.modifyValue&&(b=[this.modifyValue(this.dataMin),this.modifyValue(this.dataMax)],this.dataMin=B(b),this.dataMax=D(b))});G.prototype.setCompare=function(a,b){this.isXAxis||(l(this.series,function(b){b.setCompare(a)}),h(b,!0)&&this.chart.redraw())};C.prototype.tooltipFormatter=function(b){b=b.replace("{point.change}",(0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=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))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(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&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(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&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(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 ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);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&&E){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=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(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(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===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]||se.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]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(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(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(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=se.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 D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.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 S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(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 qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.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)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.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),m(t)&&(t=t.call(e,n,S.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):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.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"===S.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"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(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)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(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?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.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)}}),S.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){S.fn[n]=function(e,t){return 0 '; + else + var expandButton = ''; + + return '' + expandButton + '' + ellipsedLabel({ name: item.name, parentClass: "nav-tooltip", childClass: "nav-label" }) + ''; +} + +function menuItemsForGroup(group, level, parent) { + var items = ''; + + if (level > 0) + items += menuItem(group, level - 1, parent, true); + + $.each(group.contents, function (contentName, content) { + if (content.type == 'GROUP') + items += menuItemsForGroup(content, level + 1, group.pathFormatted); + else if (content.type == 'REQUEST') + items += menuItem(content, level, group.pathFormatted); + }); + + return items; +} + +function setDetailsMenu(){ + $('.nav ul').append(menuItemsForGroup(stats, 0)); + $('.nav').expandable(); + $('.nav-tooltip').popover({trigger:'hover'}); +} + +function setGlobalMenu(){ + $('.nav ul') + .append('
  • Ranges
  • ') + .append('
  • Stats
  • ') + .append('
  • Active Users
  • ') + .append('
  • Requests / sec
  • ') + .append('
  • Responses / sec
  • '); +} + +function getLink(link){ + var a = link.split('/'); + return (a.length<=1)? link : a[a.length-1]; +} + +function expandUp(li) { + const parentId = li.attr("data-parent"); + if (parentId != "ROOT") { + const span = $('#' + parentId); + const parentLi = span.parents('li').first(); + span.expand(parentLi, false); + expandUp(parentLi); + } +} + +function setActiveMenu(){ + $('.nav a').each(function() { + const navA = $(this) + if(!navA.hasClass('expand-button') && navA.attr('href') == getLink(window.location.pathname)) { + const li = $(this).parents('li').first(); + li.addClass('on'); + expandUp(li); + return false; + } + }); +} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/stats.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/stats.js new file mode 100644 index 0000000..80f2e90 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/stats.js @@ -0,0 +1,1523 @@ +var stats = { + type: "GROUP", +name: "All Requests", +path: "", +pathFormatted: "group_missing-name--1146707516", +stats: { + "name": "All Requests", + "numberOfRequests": { + "total": "8733", + "ok": "5128", + "ko": "3605" + }, + "minResponseTime": { + "total": "24", + "ok": "24", + "ko": "2846" + }, + "maxResponseTime": { + "total": "65148", + "ok": "59883", + "ko": "65148" + }, + "meanResponseTime": { + "total": "19071", + "ok": "9281", + "ko": "32996" + }, + "standardDeviation": { + "total": "22892", + "ok": "15556", + "ko": "24394" + }, + "percentiles1": { + "total": "10006", + "ok": "1130", + "ko": "16323" + }, + "percentiles2": { + "total": "37958", + "ok": "8171", + "ko": "60007" + }, + "percentiles3": { + "total": "60013", + "ok": "45464", + "ko": "60015" + }, + "percentiles4": { + "total": "60016", + "ok": "56869", + "ko": "62024" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 2244, + "percentage": 26 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 400, + "percentage": 5 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 2484, + "percentage": 28 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 3605, + "percentage": 41 +}, + "meanNumberOfRequestsPerSecond": { + "total": "14.507", + "ok": "8.518", + "ko": "5.988" + } +}, +contents: { +"req_request-0-693933696": { + type: "REQUEST", + name: "request_0", +path: "request_0", +pathFormatted: "req_request-0-693933696", +stats: { + "name": "request_0", + "numberOfRequests": { + "total": "593", + "ok": "593", + "ko": "0" + }, + "minResponseTime": { + "total": "74", + "ok": "74", + "ko": "-" + }, + "maxResponseTime": { + "total": "44603", + "ok": "44603", + "ko": "-" + }, + "meanResponseTime": { + "total": "10389", + "ok": "10389", + "ko": "-" + }, + "standardDeviation": { + "total": "15544", + "ok": "15544", + "ko": "-" + }, + "percentiles1": { + "total": "1290", + "ok": "1290", + "ko": "-" + }, + "percentiles2": { + "total": "20824", + "ok": "20824", + "ko": "-" + }, + "percentiles3": { + "total": "41878", + "ok": "41878", + "ko": "-" + }, + "percentiles4": { + "total": "43767", + "ok": "43767", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 227, + "percentage": 38 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 59, + "percentage": 10 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 307, + "percentage": 52 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.985", + "ok": "0.985", + "ko": "-" + } +} + },"req_request-1-693933697": { + type: "REQUEST", + name: "request_1", +path: "request_1", +pathFormatted: "req_request-1-693933697", +stats: { + "name": "request_1", + "numberOfRequests": { + "total": "593", + "ok": "593", + "ko": "0" + }, + "minResponseTime": { + "total": "36", + "ok": "36", + "ko": "-" + }, + "maxResponseTime": { + "total": "6870", + "ok": "6870", + "ko": "-" + }, + "meanResponseTime": { + "total": "1651", + "ok": "1651", + "ko": "-" + }, + "standardDeviation": { + "total": "2269", + "ok": "2269", + "ko": "-" + }, + "percentiles1": { + "total": "672", + "ok": "672", + "ko": "-" + }, + "percentiles2": { + "total": "2048", + "ok": "2048", + "ko": "-" + }, + "percentiles3": { + "total": "6843", + "ok": "6843", + "ko": "-" + }, + "percentiles4": { + "total": "6865", + "ok": "6865", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 322, + "percentage": 54 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 76, + "percentage": 13 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 195, + "percentage": 33 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.985", + "ok": "0.985", + "ko": "-" + } +} + },"req_request-2-693933698": { + type: "REQUEST", + name: "request_2", +path: "request_2", +pathFormatted: "req_request-2-693933698", +stats: { + "name": "request_2", + "numberOfRequests": { + "total": "593", + "ok": "593", + "ko": "0" + }, + "minResponseTime": { + "total": "74", + "ok": "74", + "ko": "-" + }, + "maxResponseTime": { + "total": "45701", + "ok": "45701", + "ko": "-" + }, + "meanResponseTime": { + "total": "12012", + "ok": "12012", + "ko": "-" + }, + "standardDeviation": { + "total": "16245", + "ok": "16245", + "ko": "-" + }, + "percentiles1": { + "total": "1758", + "ok": "1758", + "ko": "-" + }, + "percentiles2": { + "total": "28386", + "ok": "28386", + "ko": "-" + }, + "percentiles3": { + "total": "40148", + "ok": "40148", + "ko": "-" + }, + "percentiles4": { + "total": "45086", + "ok": "45086", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 258, + "percentage": 44 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 17, + "percentage": 3 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 318, + "percentage": 54 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.985", + "ok": "0.985", + "ko": "-" + } +} + },"req_request-3-693933699": { + type: "REQUEST", + name: "request_3", +path: "request_3", +pathFormatted: "req_request-3-693933699", +stats: { + "name": "request_3", + "numberOfRequests": { + "total": "593", + "ok": "493", + "ko": "100" + }, + "minResponseTime": { + "total": "73", + "ok": "73", + "ko": "60000" + }, + "maxResponseTime": { + "total": "60016", + "ok": "27742", + "ko": "60016" + }, + "meanResponseTime": { + "total": "11434", + "ok": "1580", + "ko": "60011" + }, + "standardDeviation": { + "total": "22384", + "ok": "5190", + "ko": "6" + }, + "percentiles1": { + "total": "376", + "ok": "209", + "ko": "60014" + }, + "percentiles2": { + "total": "2095", + "ok": "948", + "ko": "60014" + }, + "percentiles3": { + "total": "60014", + "ok": "2922", + "ko": "60015" + }, + "percentiles4": { + "total": "60015", + "ok": "27322", + "ko": "60016" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 338, + "percentage": 57 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 91, + "percentage": 15 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 64, + "percentage": 11 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 100, + "percentage": 17 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.985", + "ok": "0.819", + "ko": "0.166" + } +} + },"req_request-4-693933700": { + type: "REQUEST", + name: "request_4", +path: "request_4", +pathFormatted: "req_request-4-693933700", +stats: { + "name": "request_4", + "numberOfRequests": { + "total": "493", + "ok": "415", + "ko": "78" + }, + "minResponseTime": { + "total": "126", + "ok": "126", + "ko": "60000" + }, + "maxResponseTime": { + "total": "60015", + "ok": "59582", + "ko": "60015" + }, + "meanResponseTime": { + "total": "25789", + "ok": "19358", + "ko": "60009" + }, + "standardDeviation": { + "total": "23234", + "ok": "19489", + "ko": "5" + }, + "percentiles1": { + "total": "11005", + "ok": "9497", + "ko": "60009" + }, + "percentiles2": { + "total": "48267", + "ok": "43735", + "ko": "60014" + }, + "percentiles3": { + "total": "60012", + "ok": "49841", + "ko": "60015" + }, + "percentiles4": { + "total": "60015", + "ok": "57933", + "ko": "60015" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 35, + "percentage": 7 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 33, + "percentage": 7 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 347, + "percentage": 70 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 78, + "percentage": 16 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.819", + "ok": "0.689", + "ko": "0.13" + } +} + },"req_request-5-693933701": { + type: "REQUEST", + name: "request_5", +path: "request_5", +pathFormatted: "req_request-5-693933701", +stats: { + "name": "request_5", + "numberOfRequests": { + "total": "493", + "ok": "412", + "ko": "81" + }, + "minResponseTime": { + "total": "319", + "ok": "319", + "ko": "60000" + }, + "maxResponseTime": { + "total": "60015", + "ok": "59654", + "ko": "60015" + }, + "meanResponseTime": { + "total": "24793", + "ok": "17870", + "ko": "60007" + }, + "standardDeviation": { + "total": "23364", + "ok": "19013", + "ko": "4" + }, + "percentiles1": { + "total": "14925", + "ok": "8440", + "ko": "60006" + }, + "percentiles2": { + "total": "53623", + "ok": "26868", + "ko": "60009" + }, + "percentiles3": { + "total": "60008", + "ok": "57001", + "ko": "60014" + }, + "percentiles4": { + "total": "60014", + "ok": "58507", + "ko": "60015" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 14, + "percentage": 3 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 29, + "percentage": 6 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 369, + "percentage": 75 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 81, + "percentage": 16 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.819", + "ok": "0.684", + "ko": "0.135" + } +} + },"req_request-6-693933702": { + type: "REQUEST", + name: "request_6", +path: "request_6", +pathFormatted: "req_request-6-693933702", +stats: { + "name": "request_6", + "numberOfRequests": { + "total": "493", + "ok": "300", + "ko": "193" + }, + "minResponseTime": { + "total": "515", + "ok": "515", + "ko": "60000" + }, + "maxResponseTime": { + "total": "60061", + "ok": "53377", + "ko": "60061" + }, + "meanResponseTime": { + "total": "40479", + "ok": "27915", + "ko": "60008" + }, + "standardDeviation": { + "total": "20838", + "ok": "17617", + "ko": "6" + }, + "percentiles1": { + "total": "46596", + "ok": "30812", + "ko": "60007" + }, + "percentiles2": { + "total": "60005", + "ok": "44708", + "ko": "60011" + }, + "percentiles3": { + "total": "60014", + "ok": "50933", + "ko": "60015" + }, + "percentiles4": { + "total": "60015", + "ok": "51972", + "ko": "60015" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 2, + "percentage": 0 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 298, + "percentage": 60 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 193, + "percentage": 39 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.819", + "ok": "0.498", + "ko": "0.321" + } +} + },"req_request-7-693933703": { + type: "REQUEST", + name: "request_7", +path: "request_7", +pathFormatted: "req_request-7-693933703", +stats: { + "name": "request_7", + "numberOfRequests": { + "total": "593", + "ok": "413", + "ko": "180" + }, + "minResponseTime": { + "total": "41", + "ok": "41", + "ko": "2846" + }, + "maxResponseTime": { + "total": "60016", + "ok": "27438", + "ko": "60016" + }, + "meanResponseTime": { + "total": "9513", + "ok": "2050", + "ko": "26637" + }, + "standardDeviation": { + "total": "17440", + "ok": "3223", + "ko": "23605" + }, + "percentiles1": { + "total": "2713", + "ok": "628", + "ko": "10014" + }, + "percentiles2": { + "total": "10002", + "ok": "3135", + "ko": "60009" + }, + "percentiles3": { + "total": "60014", + "ok": "6675", + "ko": "60015" + }, + "percentiles4": { + "total": "60015", + "ok": "11779", + "ko": "60015" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 227, + "percentage": 38 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 28, + "percentage": 5 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 158, + "percentage": 27 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 180, + "percentage": 30 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.985", + "ok": "0.686", + "ko": "0.299" + } +} + },"req_request-8-693933704": { + type: "REQUEST", + name: "request_8", +path: "request_8", +pathFormatted: "req_request-8-693933704", +stats: { + "name": "request_8", + "numberOfRequests": { + "total": "593", + "ok": "299", + "ko": "294" + }, + "minResponseTime": { + "total": "75", + "ok": "75", + "ko": "10001" + }, + "maxResponseTime": { + "total": "60016", + "ok": "30552", + "ko": "60016" + }, + "meanResponseTime": { + "total": "16856", + "ok": "3717", + "ko": "30218" + }, + "standardDeviation": { + "total": "21878", + "ok": "5557", + "ko": "24082" + }, + "percentiles1": { + "total": "10009", + "ok": "1134", + "ko": "10015" + }, + "percentiles2": { + "total": "10356", + "ok": "7301", + "ko": "60005" + }, + "percentiles3": { + "total": "60011", + "ok": "10652", + "ko": "60014" + }, + "percentiles4": { + "total": "60015", + "ok": "26793", + "ko": "60015" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 134, + "percentage": 23 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 19, + "percentage": 3 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 146, + "percentage": 25 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 294, + "percentage": 50 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.985", + "ok": "0.497", + "ko": "0.488" + } +} + },"req_request-9-693933705": { + type: "REQUEST", + name: "request_9", +path: "request_9", +pathFormatted: "req_request-9-693933705", +stats: { + "name": "request_9", + "numberOfRequests": { + "total": "593", + "ok": "256", + "ko": "337" + }, + "minResponseTime": { + "total": "76", + "ok": "76", + "ko": "10000" + }, + "maxResponseTime": { + "total": "62405", + "ok": "30466", + "ko": "62405" + }, + "meanResponseTime": { + "total": "13728", + "ok": "4749", + "ko": "20548" + }, + "standardDeviation": { + "total": "18048", + "ok": "8154", + "ko": "20369" + }, + "percentiles1": { + "total": "10008", + "ok": "1214", + "ko": "10013" + }, + "percentiles2": { + "total": "10013", + "ok": "5201", + "ko": "10015" + }, + "percentiles3": { + "total": "62022", + "ok": "29345", + "ko": "62115" + }, + "percentiles4": { + "total": "62313", + "ok": "29460", + "ko": "62327" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 79, + "percentage": 13 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 47, + "percentage": 8 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 130, + "percentage": 22 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 337, + "percentage": 57 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.985", + "ok": "0.425", + "ko": "0.56" + } +} + },"req_request-10-37108175": { + type: "REQUEST", + name: "request_10", +path: "request_10", +pathFormatted: "req_request-10-37108175", +stats: { + "name": "request_10", + "numberOfRequests": { + "total": "593", + "ok": "106", + "ko": "487" + }, + "minResponseTime": { + "total": "6222", + "ok": "6222", + "ko": "10001" + }, + "maxResponseTime": { + "total": "63970", + "ok": "59883", + "ko": "63970" + }, + "meanResponseTime": { + "total": "33391", + "ok": "38909", + "ko": "32190" + }, + "standardDeviation": { + "total": "23006", + "ok": "17099", + "ko": "23933" + }, + "percentiles1": { + "total": "24710", + "ok": "44821", + "ko": "20253" + }, + "percentiles2": { + "total": "60003", + "ok": "52669", + "ko": "60007" + }, + "percentiles3": { + "total": "60051", + "ok": "55291", + "ko": "60559" + }, + "percentiles4": { + "total": "60995", + "ok": "59574", + "ko": "60996" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 0, + "percentage": 0 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 106, + "percentage": 18 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 487, + "percentage": 82 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.985", + "ok": "0.176", + "ko": "0.809" + } +} + },"req_request-11-37108176": { + type: "REQUEST", + name: "request_11", +path: "request_11", +pathFormatted: "req_request-11-37108176", +stats: { + "name": "request_11", + "numberOfRequests": { + "total": "106", + "ok": "30", + "ko": "76" + }, + "minResponseTime": { + "total": "34268", + "ok": "34268", + "ko": "60001" + }, + "maxResponseTime": { + "total": "65148", + "ok": "56123", + "ko": "65148" + }, + "meanResponseTime": { + "total": "55014", + "ok": "41849", + "ko": "60211" + }, + "standardDeviation": { + "total": "9208", + "ok": "7439", + "ko": "997" + }, + "percentiles1": { + "total": "60005", + "ok": "40616", + "ko": "60009" + }, + "percentiles2": { + "total": "60012", + "ok": "45453", + "ko": "60013" + }, + "percentiles3": { + "total": "60016", + "ok": "54750", + "ko": "60016" + }, + "percentiles4": { + "total": "65122", + "ok": "55726", + "ko": "65129" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 0, + "percentage": 0 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 30, + "percentage": 28 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 76, + "percentage": 72 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.176", + "ok": "0.05", + "ko": "0.126" + } +} + },"req_request-12-37108177": { + type: "REQUEST", + name: "request_12", +path: "request_12", +pathFormatted: "req_request-12-37108177", +stats: { + "name": "request_12", + "numberOfRequests": { + "total": "593", + "ok": "593", + "ko": "0" + }, + "minResponseTime": { + "total": "24", + "ok": "24", + "ko": "-" + }, + "maxResponseTime": { + "total": "1256", + "ok": "1256", + "ko": "-" + }, + "meanResponseTime": { + "total": "41", + "ok": "41", + "ko": "-" + }, + "standardDeviation": { + "total": "67", + "ok": "67", + "ko": "-" + }, + "percentiles1": { + "total": "31", + "ok": "31", + "ko": "-" + }, + "percentiles2": { + "total": "33", + "ok": "33", + "ko": "-" + }, + "percentiles3": { + "total": "54", + "ok": "54", + "ko": "-" + }, + "percentiles4": { + "total": "329", + "ok": "329", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 592, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 1, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.985", + "ok": "0.985", + "ko": "-" + } +} + },"req_request-14-37108179": { + type: "REQUEST", + name: "request_14", +path: "request_14", +pathFormatted: "req_request-14-37108179", +stats: { + "name": "request_14", + "numberOfRequests": { + "total": "593", + "ok": "32", + "ko": "561" + }, + "minResponseTime": { + "total": "37", + "ok": "37", + "ko": "10000" + }, + "maxResponseTime": { + "total": "64294", + "ok": "59132", + "ko": "64294" + }, + "meanResponseTime": { + "total": "29502", + "ok": "6302", + "ko": "30825" + }, + "standardDeviation": { + "total": "24167", + "ok": "11728", + "ko": "24022" + }, + "percentiles1": { + "total": "10014", + "ok": "753", + "ko": "10015" + }, + "percentiles2": { + "total": "60006", + "ok": "6194", + "ko": "60007" + }, + "percentiles3": { + "total": "60015", + "ok": "24691", + "ko": "60015" + }, + "percentiles4": { + "total": "60108", + "ok": "48461", + "ko": "60474" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 16, + "percentage": 3 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 1, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 15, + "percentage": 3 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 561, + "percentage": 95 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.985", + "ok": "0.053", + "ko": "0.932" + } +} + },"req_request-15-37108180": { + type: "REQUEST", + name: "request_15", +path: "request_15", +pathFormatted: "req_request-15-37108180", +stats: { + "name": "request_15", + "numberOfRequests": { + "total": "32", + "ok": "0", + "ko": "32" + }, + "minResponseTime": { + "total": "60000", + "ok": "-", + "ko": "60000" + }, + "maxResponseTime": { + "total": "60014", + "ok": "-", + "ko": "60014" + }, + "meanResponseTime": { + "total": "60007", + "ok": "-", + "ko": "60007" + }, + "standardDeviation": { + "total": "4", + "ok": "-", + "ko": "4" + }, + "percentiles1": { + "total": "60007", + "ok": "-", + "ko": "60007" + }, + "percentiles2": { + "total": "60009", + "ok": "-", + "ko": "60009" + }, + "percentiles3": { + "total": "60013", + "ok": "-", + "ko": "60013" + }, + "percentiles4": { + "total": "60014", + "ok": "-", + "ko": "60014" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 0, + "percentage": 0 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 32, + "percentage": 100 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.053", + "ok": "-", + "ko": "0.053" + } +} + },"req_request-16-37108181": { + type: "REQUEST", + name: "request_16", +path: "request_16", +pathFormatted: "req_request-16-37108181", +stats: { + "name": "request_16", + "numberOfRequests": { + "total": "593", + "ok": "0", + "ko": "593" + }, + "minResponseTime": { + "total": "10000", + "ok": "-", + "ko": "10000" + }, + "maxResponseTime": { + "total": "60015", + "ok": "-", + "ko": "60015" + }, + "meanResponseTime": { + "total": "23417", + "ok": "-", + "ko": "23417" + }, + "standardDeviation": { + "total": "21418", + "ok": "-", + "ko": "21418" + }, + "percentiles1": { + "total": "10013", + "ok": "-", + "ko": "10013" + }, + "percentiles2": { + "total": "43152", + "ok": "-", + "ko": "43152" + }, + "percentiles3": { + "total": "60009", + "ok": "-", + "ko": "60009" + }, + "percentiles4": { + "total": "60013", + "ok": "-", + "ko": "60013" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 0, + "percentage": 0 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 593, + "percentage": 100 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.985", + "ok": "-", + "ko": "0.985" + } +} + },"req_request-17-37108182": { + type: "REQUEST", + name: "request_17", +path: "request_17", +pathFormatted: "req_request-17-37108182", +stats: { + "name": "request_17", + "numberOfRequests": { + "total": "593", + "ok": "0", + "ko": "593" + }, + "minResponseTime": { + "total": "10000", + "ok": "-", + "ko": "10000" + }, + "maxResponseTime": { + "total": "60016", + "ok": "-", + "ko": "60016" + }, + "meanResponseTime": { + "total": "30137", + "ok": "-", + "ko": "30137" + }, + "standardDeviation": { + "total": "23459", + "ok": "-", + "ko": "23459" + }, + "percentiles1": { + "total": "10014", + "ok": "-", + "ko": "10014" + }, + "percentiles2": { + "total": "60006", + "ok": "-", + "ko": "60006" + }, + "percentiles3": { + "total": "60014", + "ok": "-", + "ko": "60014" + }, + "percentiles4": { + "total": "60016", + "ok": "-", + "ko": "60016" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 0, + "percentage": 0 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 593, + "percentage": 100 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.985", + "ok": "-", + "ko": "0.985" + } +} + } +} + +} + +function fillStats(stat){ + $("#numberOfRequests").append(stat.numberOfRequests.total); + $("#numberOfRequestsOK").append(stat.numberOfRequests.ok); + $("#numberOfRequestsKO").append(stat.numberOfRequests.ko); + + $("#minResponseTime").append(stat.minResponseTime.total); + $("#minResponseTimeOK").append(stat.minResponseTime.ok); + $("#minResponseTimeKO").append(stat.minResponseTime.ko); + + $("#maxResponseTime").append(stat.maxResponseTime.total); + $("#maxResponseTimeOK").append(stat.maxResponseTime.ok); + $("#maxResponseTimeKO").append(stat.maxResponseTime.ko); + + $("#meanResponseTime").append(stat.meanResponseTime.total); + $("#meanResponseTimeOK").append(stat.meanResponseTime.ok); + $("#meanResponseTimeKO").append(stat.meanResponseTime.ko); + + $("#standardDeviation").append(stat.standardDeviation.total); + $("#standardDeviationOK").append(stat.standardDeviation.ok); + $("#standardDeviationKO").append(stat.standardDeviation.ko); + + $("#percentiles1").append(stat.percentiles1.total); + $("#percentiles1OK").append(stat.percentiles1.ok); + $("#percentiles1KO").append(stat.percentiles1.ko); + + $("#percentiles2").append(stat.percentiles2.total); + $("#percentiles2OK").append(stat.percentiles2.ok); + $("#percentiles2KO").append(stat.percentiles2.ko); + + $("#percentiles3").append(stat.percentiles3.total); + $("#percentiles3OK").append(stat.percentiles3.ok); + $("#percentiles3KO").append(stat.percentiles3.ko); + + $("#percentiles4").append(stat.percentiles4.total); + $("#percentiles4OK").append(stat.percentiles4.ok); + $("#percentiles4KO").append(stat.percentiles4.ko); + + $("#meanNumberOfRequestsPerSecond").append(stat.meanNumberOfRequestsPerSecond.total); + $("#meanNumberOfRequestsPerSecondOK").append(stat.meanNumberOfRequestsPerSecond.ok); + $("#meanNumberOfRequestsPerSecondKO").append(stat.meanNumberOfRequestsPerSecond.ko); +} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/stats.json b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/stats.json new file mode 100644 index 0000000..1ed8083 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/stats.json @@ -0,0 +1,1481 @@ +{ + "type": "GROUP", +"name": "All Requests", +"path": "", +"pathFormatted": "group_missing-name--1146707516", +"stats": { + "name": "All Requests", + "numberOfRequests": { + "total": 8733, + "ok": 5128, + "ko": 3605 + }, + "minResponseTime": { + "total": 24, + "ok": 24, + "ko": 2846 + }, + "maxResponseTime": { + "total": 65148, + "ok": 59883, + "ko": 65148 + }, + "meanResponseTime": { + "total": 19071, + "ok": 9281, + "ko": 32996 + }, + "standardDeviation": { + "total": 22892, + "ok": 15556, + "ko": 24394 + }, + "percentiles1": { + "total": 10006, + "ok": 1130, + "ko": 16323 + }, + "percentiles2": { + "total": 37958, + "ok": 8171, + "ko": 60007 + }, + "percentiles3": { + "total": 60013, + "ok": 45464, + "ko": 60015 + }, + "percentiles4": { + "total": 60016, + "ok": 56869, + "ko": 62024 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 2244, + "percentage": 26 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 400, + "percentage": 5 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 2484, + "percentage": 28 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 3605, + "percentage": 41 +}, + "meanNumberOfRequestsPerSecond": { + "total": 14.506644518272426, + "ok": 8.518272425249169, + "ko": 5.988372093023256 + } +}, +"contents": { +"req_request-0-693933696": { + "type": "REQUEST", + "name": "request_0", +"path": "request_0", +"pathFormatted": "req_request-0-693933696", +"stats": { + "name": "request_0", + "numberOfRequests": { + "total": 593, + "ok": 593, + "ko": 0 + }, + "minResponseTime": { + "total": 74, + "ok": 74, + "ko": 0 + }, + "maxResponseTime": { + "total": 44603, + "ok": 44603, + "ko": 0 + }, + "meanResponseTime": { + "total": 10389, + "ok": 10389, + "ko": 0 + }, + "standardDeviation": { + "total": 15544, + "ok": 15544, + "ko": 0 + }, + "percentiles1": { + "total": 1290, + "ok": 1290, + "ko": 0 + }, + "percentiles2": { + "total": 20824, + "ok": 20824, + "ko": 0 + }, + "percentiles3": { + "total": 41878, + "ok": 41878, + "ko": 0 + }, + "percentiles4": { + "total": 43767, + "ok": 43767, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 227, + "percentage": 38 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 59, + "percentage": 10 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 307, + "percentage": 52 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9850498338870431, + "ok": 0.9850498338870431, + "ko": 0 + } +} + },"req_request-1-693933697": { + "type": "REQUEST", + "name": "request_1", +"path": "request_1", +"pathFormatted": "req_request-1-693933697", +"stats": { + "name": "request_1", + "numberOfRequests": { + "total": 593, + "ok": 593, + "ko": 0 + }, + "minResponseTime": { + "total": 36, + "ok": 36, + "ko": 0 + }, + "maxResponseTime": { + "total": 6870, + "ok": 6870, + "ko": 0 + }, + "meanResponseTime": { + "total": 1651, + "ok": 1651, + "ko": 0 + }, + "standardDeviation": { + "total": 2269, + "ok": 2269, + "ko": 0 + }, + "percentiles1": { + "total": 672, + "ok": 672, + "ko": 0 + }, + "percentiles2": { + "total": 2048, + "ok": 2048, + "ko": 0 + }, + "percentiles3": { + "total": 6843, + "ok": 6843, + "ko": 0 + }, + "percentiles4": { + "total": 6865, + "ok": 6865, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 322, + "percentage": 54 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 76, + "percentage": 13 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 195, + "percentage": 33 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9850498338870431, + "ok": 0.9850498338870431, + "ko": 0 + } +} + },"req_request-2-693933698": { + "type": "REQUEST", + "name": "request_2", +"path": "request_2", +"pathFormatted": "req_request-2-693933698", +"stats": { + "name": "request_2", + "numberOfRequests": { + "total": 593, + "ok": 593, + "ko": 0 + }, + "minResponseTime": { + "total": 74, + "ok": 74, + "ko": 0 + }, + "maxResponseTime": { + "total": 45701, + "ok": 45701, + "ko": 0 + }, + "meanResponseTime": { + "total": 12012, + "ok": 12012, + "ko": 0 + }, + "standardDeviation": { + "total": 16245, + "ok": 16245, + "ko": 0 + }, + "percentiles1": { + "total": 1758, + "ok": 1758, + "ko": 0 + }, + "percentiles2": { + "total": 28386, + "ok": 28386, + "ko": 0 + }, + "percentiles3": { + "total": 40148, + "ok": 40148, + "ko": 0 + }, + "percentiles4": { + "total": 45086, + "ok": 45086, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 258, + "percentage": 44 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 17, + "percentage": 3 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 318, + "percentage": 54 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9850498338870431, + "ok": 0.9850498338870431, + "ko": 0 + } +} + },"req_request-3-693933699": { + "type": "REQUEST", + "name": "request_3", +"path": "request_3", +"pathFormatted": "req_request-3-693933699", +"stats": { + "name": "request_3", + "numberOfRequests": { + "total": 593, + "ok": 493, + "ko": 100 + }, + "minResponseTime": { + "total": 73, + "ok": 73, + "ko": 60000 + }, + "maxResponseTime": { + "total": 60016, + "ok": 27742, + "ko": 60016 + }, + "meanResponseTime": { + "total": 11434, + "ok": 1580, + "ko": 60011 + }, + "standardDeviation": { + "total": 22384, + "ok": 5190, + "ko": 6 + }, + "percentiles1": { + "total": 376, + "ok": 209, + "ko": 60014 + }, + "percentiles2": { + "total": 2095, + "ok": 948, + "ko": 60014 + }, + "percentiles3": { + "total": 60014, + "ok": 2922, + "ko": 60015 + }, + "percentiles4": { + "total": 60015, + "ok": 27322, + "ko": 60016 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 338, + "percentage": 57 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 91, + "percentage": 15 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 64, + "percentage": 11 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 100, + "percentage": 17 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9850498338870431, + "ok": 0.8189368770764119, + "ko": 0.16611295681063123 + } +} + },"req_request-4-693933700": { + "type": "REQUEST", + "name": "request_4", +"path": "request_4", +"pathFormatted": "req_request-4-693933700", +"stats": { + "name": "request_4", + "numberOfRequests": { + "total": 493, + "ok": 415, + "ko": 78 + }, + "minResponseTime": { + "total": 126, + "ok": 126, + "ko": 60000 + }, + "maxResponseTime": { + "total": 60015, + "ok": 59582, + "ko": 60015 + }, + "meanResponseTime": { + "total": 25789, + "ok": 19358, + "ko": 60009 + }, + "standardDeviation": { + "total": 23234, + "ok": 19489, + "ko": 5 + }, + "percentiles1": { + "total": 11005, + "ok": 9497, + "ko": 60009 + }, + "percentiles2": { + "total": 48267, + "ok": 43735, + "ko": 60014 + }, + "percentiles3": { + "total": 60012, + "ok": 49841, + "ko": 60015 + }, + "percentiles4": { + "total": 60015, + "ok": 57933, + "ko": 60015 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 35, + "percentage": 7 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 33, + "percentage": 7 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 347, + "percentage": 70 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 78, + "percentage": 16 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.8189368770764119, + "ok": 0.6893687707641196, + "ko": 0.12956810631229235 + } +} + },"req_request-5-693933701": { + "type": "REQUEST", + "name": "request_5", +"path": "request_5", +"pathFormatted": "req_request-5-693933701", +"stats": { + "name": "request_5", + "numberOfRequests": { + "total": 493, + "ok": 412, + "ko": 81 + }, + "minResponseTime": { + "total": 319, + "ok": 319, + "ko": 60000 + }, + "maxResponseTime": { + "total": 60015, + "ok": 59654, + "ko": 60015 + }, + "meanResponseTime": { + "total": 24793, + "ok": 17870, + "ko": 60007 + }, + "standardDeviation": { + "total": 23364, + "ok": 19013, + "ko": 4 + }, + "percentiles1": { + "total": 14925, + "ok": 8440, + "ko": 60006 + }, + "percentiles2": { + "total": 53623, + "ok": 26868, + "ko": 60009 + }, + "percentiles3": { + "total": 60008, + "ok": 57001, + "ko": 60014 + }, + "percentiles4": { + "total": 60014, + "ok": 58507, + "ko": 60015 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 14, + "percentage": 3 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 29, + "percentage": 6 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 369, + "percentage": 75 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 81, + "percentage": 16 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.8189368770764119, + "ok": 0.6843853820598007, + "ko": 0.1345514950166113 + } +} + },"req_request-6-693933702": { + "type": "REQUEST", + "name": "request_6", +"path": "request_6", +"pathFormatted": "req_request-6-693933702", +"stats": { + "name": "request_6", + "numberOfRequests": { + "total": 493, + "ok": 300, + "ko": 193 + }, + "minResponseTime": { + "total": 515, + "ok": 515, + "ko": 60000 + }, + "maxResponseTime": { + "total": 60061, + "ok": 53377, + "ko": 60061 + }, + "meanResponseTime": { + "total": 40479, + "ok": 27915, + "ko": 60008 + }, + "standardDeviation": { + "total": 20838, + "ok": 17617, + "ko": 6 + }, + "percentiles1": { + "total": 46596, + "ok": 30812, + "ko": 60007 + }, + "percentiles2": { + "total": 60005, + "ok": 44708, + "ko": 60011 + }, + "percentiles3": { + "total": 60014, + "ok": 50933, + "ko": 60015 + }, + "percentiles4": { + "total": 60015, + "ok": 51972, + "ko": 60015 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 2, + "percentage": 0 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 298, + "percentage": 60 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 193, + "percentage": 39 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.8189368770764119, + "ok": 0.4983388704318937, + "ko": 0.32059800664451826 + } +} + },"req_request-7-693933703": { + "type": "REQUEST", + "name": "request_7", +"path": "request_7", +"pathFormatted": "req_request-7-693933703", +"stats": { + "name": "request_7", + "numberOfRequests": { + "total": 593, + "ok": 413, + "ko": 180 + }, + "minResponseTime": { + "total": 41, + "ok": 41, + "ko": 2846 + }, + "maxResponseTime": { + "total": 60016, + "ok": 27438, + "ko": 60016 + }, + "meanResponseTime": { + "total": 9513, + "ok": 2050, + "ko": 26637 + }, + "standardDeviation": { + "total": 17440, + "ok": 3223, + "ko": 23605 + }, + "percentiles1": { + "total": 2713, + "ok": 628, + "ko": 10014 + }, + "percentiles2": { + "total": 10002, + "ok": 3135, + "ko": 60009 + }, + "percentiles3": { + "total": 60014, + "ok": 6675, + "ko": 60015 + }, + "percentiles4": { + "total": 60015, + "ok": 11779, + "ko": 60015 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 227, + "percentage": 38 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 28, + "percentage": 5 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 158, + "percentage": 27 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 180, + "percentage": 30 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9850498338870431, + "ok": 0.686046511627907, + "ko": 0.29900332225913623 + } +} + },"req_request-8-693933704": { + "type": "REQUEST", + "name": "request_8", +"path": "request_8", +"pathFormatted": "req_request-8-693933704", +"stats": { + "name": "request_8", + "numberOfRequests": { + "total": 593, + "ok": 299, + "ko": 294 + }, + "minResponseTime": { + "total": 75, + "ok": 75, + "ko": 10001 + }, + "maxResponseTime": { + "total": 60016, + "ok": 30552, + "ko": 60016 + }, + "meanResponseTime": { + "total": 16856, + "ok": 3717, + "ko": 30218 + }, + "standardDeviation": { + "total": 21878, + "ok": 5557, + "ko": 24082 + }, + "percentiles1": { + "total": 10009, + "ok": 1134, + "ko": 10015 + }, + "percentiles2": { + "total": 10356, + "ok": 7301, + "ko": 60005 + }, + "percentiles3": { + "total": 60011, + "ok": 10652, + "ko": 60014 + }, + "percentiles4": { + "total": 60015, + "ok": 26793, + "ko": 60015 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 134, + "percentage": 23 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 19, + "percentage": 3 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 146, + "percentage": 25 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 294, + "percentage": 50 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9850498338870431, + "ok": 0.49667774086378735, + "ko": 0.4883720930232558 + } +} + },"req_request-9-693933705": { + "type": "REQUEST", + "name": "request_9", +"path": "request_9", +"pathFormatted": "req_request-9-693933705", +"stats": { + "name": "request_9", + "numberOfRequests": { + "total": 593, + "ok": 256, + "ko": 337 + }, + "minResponseTime": { + "total": 76, + "ok": 76, + "ko": 10000 + }, + "maxResponseTime": { + "total": 62405, + "ok": 30466, + "ko": 62405 + }, + "meanResponseTime": { + "total": 13728, + "ok": 4749, + "ko": 20548 + }, + "standardDeviation": { + "total": 18048, + "ok": 8154, + "ko": 20369 + }, + "percentiles1": { + "total": 10008, + "ok": 1214, + "ko": 10013 + }, + "percentiles2": { + "total": 10013, + "ok": 5201, + "ko": 10015 + }, + "percentiles3": { + "total": 62022, + "ok": 29345, + "ko": 62115 + }, + "percentiles4": { + "total": 62313, + "ok": 29460, + "ko": 62327 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 79, + "percentage": 13 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 47, + "percentage": 8 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 130, + "percentage": 22 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 337, + "percentage": 57 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9850498338870431, + "ok": 0.42524916943521596, + "ko": 0.5598006644518272 + } +} + },"req_request-10-37108175": { + "type": "REQUEST", + "name": "request_10", +"path": "request_10", +"pathFormatted": "req_request-10-37108175", +"stats": { + "name": "request_10", + "numberOfRequests": { + "total": 593, + "ok": 106, + "ko": 487 + }, + "minResponseTime": { + "total": 6222, + "ok": 6222, + "ko": 10001 + }, + "maxResponseTime": { + "total": 63970, + "ok": 59883, + "ko": 63970 + }, + "meanResponseTime": { + "total": 33391, + "ok": 38909, + "ko": 32190 + }, + "standardDeviation": { + "total": 23006, + "ok": 17099, + "ko": 23933 + }, + "percentiles1": { + "total": 24710, + "ok": 44821, + "ko": 20253 + }, + "percentiles2": { + "total": 60003, + "ok": 52669, + "ko": 60007 + }, + "percentiles3": { + "total": 60051, + "ok": 55291, + "ko": 60559 + }, + "percentiles4": { + "total": 60995, + "ok": 59574, + "ko": 60996 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 0, + "percentage": 0 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 106, + "percentage": 18 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 487, + "percentage": 82 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9850498338870431, + "ok": 0.1760797342192691, + "ko": 0.8089700996677741 + } +} + },"req_request-11-37108176": { + "type": "REQUEST", + "name": "request_11", +"path": "request_11", +"pathFormatted": "req_request-11-37108176", +"stats": { + "name": "request_11", + "numberOfRequests": { + "total": 106, + "ok": 30, + "ko": 76 + }, + "minResponseTime": { + "total": 34268, + "ok": 34268, + "ko": 60001 + }, + "maxResponseTime": { + "total": 65148, + "ok": 56123, + "ko": 65148 + }, + "meanResponseTime": { + "total": 55014, + "ok": 41849, + "ko": 60211 + }, + "standardDeviation": { + "total": 9208, + "ok": 7439, + "ko": 997 + }, + "percentiles1": { + "total": 60005, + "ok": 40616, + "ko": 60009 + }, + "percentiles2": { + "total": 60012, + "ok": 45453, + "ko": 60013 + }, + "percentiles3": { + "total": 60016, + "ok": 54750, + "ko": 60016 + }, + "percentiles4": { + "total": 65122, + "ok": 55726, + "ko": 65129 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 0, + "percentage": 0 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 30, + "percentage": 28 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 76, + "percentage": 72 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.1760797342192691, + "ok": 0.04983388704318937, + "ko": 0.12624584717607973 + } +} + },"req_request-12-37108177": { + "type": "REQUEST", + "name": "request_12", +"path": "request_12", +"pathFormatted": "req_request-12-37108177", +"stats": { + "name": "request_12", + "numberOfRequests": { + "total": 593, + "ok": 593, + "ko": 0 + }, + "minResponseTime": { + "total": 24, + "ok": 24, + "ko": 0 + }, + "maxResponseTime": { + "total": 1256, + "ok": 1256, + "ko": 0 + }, + "meanResponseTime": { + "total": 41, + "ok": 41, + "ko": 0 + }, + "standardDeviation": { + "total": 67, + "ok": 67, + "ko": 0 + }, + "percentiles1": { + "total": 31, + "ok": 31, + "ko": 0 + }, + "percentiles2": { + "total": 33, + "ok": 33, + "ko": 0 + }, + "percentiles3": { + "total": 54, + "ok": 54, + "ko": 0 + }, + "percentiles4": { + "total": 329, + "ok": 329, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 592, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 1, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9850498338870431, + "ok": 0.9850498338870431, + "ko": 0 + } +} + },"req_request-14-37108179": { + "type": "REQUEST", + "name": "request_14", +"path": "request_14", +"pathFormatted": "req_request-14-37108179", +"stats": { + "name": "request_14", + "numberOfRequests": { + "total": 593, + "ok": 32, + "ko": 561 + }, + "minResponseTime": { + "total": 37, + "ok": 37, + "ko": 10000 + }, + "maxResponseTime": { + "total": 64294, + "ok": 59132, + "ko": 64294 + }, + "meanResponseTime": { + "total": 29502, + "ok": 6302, + "ko": 30825 + }, + "standardDeviation": { + "total": 24167, + "ok": 11728, + "ko": 24022 + }, + "percentiles1": { + "total": 10014, + "ok": 753, + "ko": 10015 + }, + "percentiles2": { + "total": 60006, + "ok": 6194, + "ko": 60007 + }, + "percentiles3": { + "total": 60015, + "ok": 24691, + "ko": 60015 + }, + "percentiles4": { + "total": 60108, + "ok": 48461, + "ko": 60474 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 16, + "percentage": 3 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 1, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 15, + "percentage": 3 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 561, + "percentage": 95 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9850498338870431, + "ok": 0.053156146179401995, + "ko": 0.9318936877076412 + } +} + },"req_request-15-37108180": { + "type": "REQUEST", + "name": "request_15", +"path": "request_15", +"pathFormatted": "req_request-15-37108180", +"stats": { + "name": "request_15", + "numberOfRequests": { + "total": 32, + "ok": 0, + "ko": 32 + }, + "minResponseTime": { + "total": 60000, + "ok": 0, + "ko": 60000 + }, + "maxResponseTime": { + "total": 60014, + "ok": 0, + "ko": 60014 + }, + "meanResponseTime": { + "total": 60007, + "ok": 0, + "ko": 60007 + }, + "standardDeviation": { + "total": 4, + "ok": 0, + "ko": 4 + }, + "percentiles1": { + "total": 60007, + "ok": 0, + "ko": 60007 + }, + "percentiles2": { + "total": 60009, + "ok": 0, + "ko": 60009 + }, + "percentiles3": { + "total": 60013, + "ok": 0, + "ko": 60013 + }, + "percentiles4": { + "total": 60014, + "ok": 0, + "ko": 60014 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 0, + "percentage": 0 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 32, + "percentage": 100 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.053156146179401995, + "ok": 0, + "ko": 0.053156146179401995 + } +} + },"req_request-16-37108181": { + "type": "REQUEST", + "name": "request_16", +"path": "request_16", +"pathFormatted": "req_request-16-37108181", +"stats": { + "name": "request_16", + "numberOfRequests": { + "total": 593, + "ok": 0, + "ko": 593 + }, + "minResponseTime": { + "total": 10000, + "ok": 0, + "ko": 10000 + }, + "maxResponseTime": { + "total": 60015, + "ok": 0, + "ko": 60015 + }, + "meanResponseTime": { + "total": 23417, + "ok": 0, + "ko": 23417 + }, + "standardDeviation": { + "total": 21418, + "ok": 0, + "ko": 21418 + }, + "percentiles1": { + "total": 10013, + "ok": 0, + "ko": 10013 + }, + "percentiles2": { + "total": 43152, + "ok": 0, + "ko": 43152 + }, + "percentiles3": { + "total": 60009, + "ok": 0, + "ko": 60009 + }, + "percentiles4": { + "total": 60013, + "ok": 0, + "ko": 60013 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 0, + "percentage": 0 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 593, + "percentage": 100 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9850498338870431, + "ok": 0, + "ko": 0.9850498338870431 + } +} + },"req_request-17-37108182": { + "type": "REQUEST", + "name": "request_17", +"path": "request_17", +"pathFormatted": "req_request-17-37108182", +"stats": { + "name": "request_17", + "numberOfRequests": { + "total": 593, + "ok": 0, + "ko": 593 + }, + "minResponseTime": { + "total": 10000, + "ok": 0, + "ko": 10000 + }, + "maxResponseTime": { + "total": 60016, + "ok": 0, + "ko": 60016 + }, + "meanResponseTime": { + "total": 30137, + "ok": 0, + "ko": 30137 + }, + "standardDeviation": { + "total": 23459, + "ok": 0, + "ko": 23459 + }, + "percentiles1": { + "total": 10014, + "ok": 0, + "ko": 10014 + }, + "percentiles2": { + "total": 60006, + "ok": 0, + "ko": 60006 + }, + "percentiles3": { + "total": 60014, + "ok": 0, + "ko": 60014 + }, + "percentiles4": { + "total": 60016, + "ok": 0, + "ko": 60016 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 0, + "percentage": 0 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 593, + "percentage": 100 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9850498338870431, + "ok": 0, + "ko": 0.9850498338870431 + } +} + } +} + +} \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/theme.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/theme.js new file mode 100644 index 0000000..b95a7b3 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/theme.js @@ -0,0 +1,127 @@ +/* + * Copyright 2011-2022 Gatling Corp + * + * Licensed under the Gatling Highcharts License + */ +Highcharts.theme = { + chart: { + backgroundColor: '#f7f7f7', + borderWidth: 0, + borderRadius: 8, + plotBackgroundColor: null, + plotShadow: false, + plotBorderWidth: 0 + }, + xAxis: { + gridLineWidth: 0, + lineColor: '#666', + tickColor: '#666', + labels: { + style: { + color: '#666' + } + }, + title: { + style: { + color: '#666' + } + } + }, + yAxis: { + alternateGridColor: null, + minorTickInterval: null, + gridLineColor: '#999', + lineWidth: 0, + tickWidth: 0, + labels: { + style: { + color: '#666', + fontWeight: 'bold' + } + }, + title: { + style: { + color: '#666', + font: 'bold 12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif' + } + } + }, + labels: { + style: { + color: '#CCC' + } + }, + + + rangeSelector: { + buttonTheme: { + fill: '#cfc9c6', + stroke: '#000000', + style: { + color: '#34332e', + fontWeight: 'bold', + borderColor: '#b2b2a9' + }, + states: { + hover: { + fill: '#92918C', + stroke: '#000000', + style: { + color: '#34332e', + fontWeight: 'bold', + borderColor: '#8b897d' + } + }, + select: { + fill: '#E37400', + stroke: '#000000', + style: { + color: '#FFF' + } + } + } + }, + inputStyle: { + backgroundColor: '#333', + color: 'silver' + }, + labelStyle: { + color: '#8b897d' + } + }, + + navigator: { + handles: { + backgroundColor: '#f7f7f7', + borderColor: '#92918C' + }, + outlineColor: '#92918C', + outlineWidth: 1, + maskFill: 'rgba(146, 145, 140, 0.5)', + series: { + color: '#5E7BE2', + lineColor: '#5E7BE2' + } + }, + + scrollbar: { + buttonBackgroundColor: '#f7f7f7', + buttonBorderWidth: 1, + buttonBorderColor: '#92918C', + buttonArrowColor: '#92918C', + buttonBorderRadius: 2, + + barBorderWidth: 1, + barBorderRadius: 0, + barBackgroundColor: '#92918C', + barBorderColor: '#92918C', + + rifleColor: '#92918C', + + trackBackgroundColor: '#b0b0a8', + trackBorderWidth: 1, + trackBorderColor: '#b0b0a8' + } +}; + +Highcharts.setOptions(Highcharts.theme); diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/unpack.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/unpack.js new file mode 100644 index 0000000..883c33e --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/js/unpack.js @@ -0,0 +1,38 @@ +'use strict'; + +var unpack = function (array) { + var findNbSeries = function (array) { + var currentPlotPack; + var length = array.length; + + for (var i = 0; i < length; i++) { + currentPlotPack = array[i][1]; + if(currentPlotPack !== null) { + return currentPlotPack.length; + } + } + return 0; + }; + + var i, j; + var nbPlots = array.length; + var nbSeries = findNbSeries(array); + + // Prepare unpacked array + var unpackedArray = new Array(nbSeries); + + for (i = 0; i < nbSeries; i++) { + unpackedArray[i] = new Array(nbPlots); + } + + // Unpack the array + for (i = 0; i < nbPlots; i++) { + var timestamp = array[i][0]; + var values = array[i][1]; + for (j = 0; j < nbSeries; j++) { + unpackedArray[j][i] = [timestamp * 1000, values === null ? null : values[j]]; + } + } + + return unpackedArray; +}; diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-0-693933696.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-0-693933696.html new file mode 100644 index 0000000..8d87b69 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-0-693933696.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_0 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-1-693933697.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-1-693933697.html new file mode 100644 index 0000000..409e407 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-1-693933697.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_1 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-10-37108175.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-10-37108175.html new file mode 100644 index 0000000..1d125d8 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-10-37108175.html @@ -0,0 +1,935 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_10 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-11-37108176.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-11-37108176.html new file mode 100644 index 0000000..c6bdae6 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-11-37108176.html @@ -0,0 +1,925 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_11 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-12-37108177.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-12-37108177.html new file mode 100644 index 0000000..0c5f10a --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-12-37108177.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_12 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-14-37108179.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-14-37108179.html new file mode 100644 index 0000000..7f738f0 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-14-37108179.html @@ -0,0 +1,935 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_14 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-15-37108180.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-15-37108180.html new file mode 100644 index 0000000..64ada9c --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-15-37108180.html @@ -0,0 +1,925 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_15 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-16-37108181.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-16-37108181.html new file mode 100644 index 0000000..a1b6c6d --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-16-37108181.html @@ -0,0 +1,935 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_16 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-17-37108182.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-17-37108182.html new file mode 100644 index 0000000..5b4573c --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-17-37108182.html @@ -0,0 +1,940 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_17 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-2-693933698.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-2-693933698.html new file mode 100644 index 0000000..18b9ed4 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-2-693933698.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_2 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-3-693933699.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-3-693933699.html new file mode 100644 index 0000000..cc69138 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-3-693933699.html @@ -0,0 +1,925 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_3 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-4-693933700.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-4-693933700.html new file mode 100644 index 0000000..c00a228 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-4-693933700.html @@ -0,0 +1,925 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_4 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-5-693933701.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-5-693933701.html new file mode 100644 index 0000000..61b6f36 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-5-693933701.html @@ -0,0 +1,925 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_5 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-6-693933702.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-6-693933702.html new file mode 100644 index 0000000..12e1531 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-6-693933702.html @@ -0,0 +1,925 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_6 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-7-693933703.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-7-693933703.html new file mode 100644 index 0000000..b4f1b59 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-7-693933703.html @@ -0,0 +1,935 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_7 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-8-693933704.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-8-693933704.html new file mode 100644 index 0000000..6cb4bd1 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-8-693933704.html @@ -0,0 +1,940 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_8 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-9-693933705.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-9-693933705.html new file mode 100644 index 0000000..9169f55 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/req_request-9-693933705.html @@ -0,0 +1,940 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_9 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/bootstrap.min.css b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/bootstrap.min.css new file mode 100644 index 0000000..76a2b9b --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/bootstrap.min.css @@ -0,0 +1,27 @@ +.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;} +.clearfix:after{clear:both;} +.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;} +.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} +.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);} +.tooltip.top{margin-top:-3px;} +.tooltip.right{margin-left:3px;} +.tooltip.bottom{margin-top:3px;} +.tooltip.left{margin-left:-3px;} +.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;} +.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000;} +.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000;} +.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000;} +.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000;} +.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:750px;padding:1px;background-color:#ffffff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);}.popover.top{margin-top:-10px;} +.popover.right{margin-left:10px;} +.popover.bottom{margin-top:10px;} +.popover.left{margin-left:-10px;} +.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;} +.popover-content{padding:9px 14px;}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0;} +.popover .arrow,.popover .arrow:after{position:absolute;display:inline-block;width:0;height:0;border-color:transparent;border-style:solid;} +.popover .arrow:after{content:"";z-index:-1;} +.popover.top .arrow{bottom:-10px;left:50%;margin-left:-10px;border-width:10px 10px 0;border-top-color:#ffffff;}.popover.top .arrow:after{border-width:11px 11px 0;border-top-color:rgba(0, 0, 0, 0.25);bottom:-1px;left:-11px;} +.popover.right .arrow{top:50%;left:-10px;margin-top:-10px;border-width:10px 10px 10px 0;border-right-color:#ffffff;}.popover.right .arrow:after{border-width:11px 11px 11px 0;border-right-color:rgba(0, 0, 0, 0.25);bottom:-11px;left:-1px;} +.popover.bottom .arrow{top:-10px;left:50%;margin-left:-10px;border-width:0 10px 10px;border-bottom-color:#ffffff;}.popover.bottom .arrow:after{border-width:0 11px 11px;border-bottom-color:rgba(0, 0, 0, 0.25);top:-1px;left:-11px;} +.popover.left .arrow{top:50%;right:-10px;margin-top:-10px;border-width:10px 0 10px 10px;border-left-color:#ffffff;}.popover.left .arrow:after{border-width:11px 0 11px 11px;border-left-color:rgba(0, 0, 0, 0.25);bottom:-11px;right:-1px;} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/close.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/close.svg new file mode 100644 index 0000000..c161bb9 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/close.svg @@ -0,0 +1,3 @@ + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/executions.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/executions.svg new file mode 100644 index 0000000..84068cd --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/executions.svg @@ -0,0 +1,3 @@ + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/expand.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/expand.svg new file mode 100644 index 0000000..f6e75e0 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/expand.svg @@ -0,0 +1,38 @@ + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/favicon.ico b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/favicon.ico new file mode 100644 index 0000000..d2d20e1 Binary files /dev/null and b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/favicon.ico differ diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/fullscreen.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/fullscreen.svg new file mode 100644 index 0000000..91f3b27 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/fullscreen.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/logo-dark.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/logo-dark.svg new file mode 100644 index 0000000..7eb4d51 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/logo-dark.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/logo-enterprise-dark.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/logo-enterprise-dark.svg new file mode 100644 index 0000000..1127d75 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/logo-enterprise-dark.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/logo-enterprise-light.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/logo-enterprise-light.svg new file mode 100644 index 0000000..4a6e1de --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/logo-enterprise-light.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/logo-light.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/logo-light.svg new file mode 100644 index 0000000..f519eef --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/logo-light.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/sort-down.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/sort-down.svg new file mode 100644 index 0000000..db58a09 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/sort-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/sort-up.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/sort-up.svg new file mode 100644 index 0000000..bba9d84 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/sort-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/sort.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/sort.svg new file mode 100644 index 0000000..43b658e --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/sort.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/style.css b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/style.css new file mode 100644 index 0000000..edc9626 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-1cpu/style/style.css @@ -0,0 +1,1199 @@ +/* + * Copyright 2011-2024 GatlingCorp (https://gatling.io) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +:root { + --gatling-background-color: #f2f2f2; + --gatling-background-light-color: #f7f7f7; + --gatling-border-color: #dddddd; + --gatling-blue-color: #4a9fe5; + --gatling-dark-blue-color: #24275e; + --gatling-danger-color: #f15b4f; + --gatling-danger-light-color: #f5d1ce; + --gatling-enterprise-color: #6161d6; + --gatling-enterprise-light-color: #c4c4ed; + --gatling-gray-medium-color: #bbb; + --gatling-hover-color: #e6e6e6; + --gatling-hover-background-color: #e6e6e6; + --gatling-light-color: #ffffff; + --gatling-orange-color: #f78557; + --gatling-success-color: #68b65c; + --gatling-text-color: #1f2024; + --gatling-total-color: #ffa900; + + --gatling-border-radius: 2px; + --gatling-spacing-small: 5px; + --gatling-spacing: 10px; + --gatling-spacing-layout: 20px; + + --gatling-font-weight-normal: 400; + --gatling-font-weight-medium: 500; + --gatling-font-weight-bold: 700; + --gatling-font-size-secondary: 12px; + --gatling-font-size-default: 14px; + --gatling-font-size-heading: 16px; + --gatling-font-size-section: 22px; + --gatling-font-size-header: 34px; + + --gatling-media-desktop-large: 1920px; +} + +html[data-theme="dark"] { + --gatling-background-color: #1e2225; + --gatling-background-light-color: #272c30; + --gatling-border-color: #555555; + --gatling-blue-color: #1188ff; + --gatling-dark-blue-color: #17223B; + --gatling-danger-color: #d9534f; + --gatling-danger-light-color: #c9302c; + --gatling-enterprise-color: #b2a2ea; + --gatling-enterprise-light-color: #343479; + --gatling-gray-medium-color: #999; + --gatling-hover-color: #30363b; + --gatling-hover-background-color: #2c2c2c; + --gatling-light-color: #394046; + --gatling-orange-color: #fe8e5f; + --gatling-success-color: #5cb85c; + --gatling-text-color: #dee2e6; + --gatling-total-color: #ffa900; +} + +* { + min-height: 0; + min-width: 0; +} + +html, +body { + height: 100%; + width: 100%; +} + +body { + color: var(--gatling-text-color); + font-family: arial; + font-size: var(--gatling-font-size-secondary); + margin: 0; +} + +.app-container { + display: flex; + flex-direction: column; + + height: 100%; + width: 100%; +} + +.head { + display: flex; + align-items: center; + justify-content: space-between; + flex-direction: row; + + flex: 1; + + background-color: var(--gatling-light-color); + border-bottom: 1px solid var(--gatling-border-color); + min-height: 69px; + padding: 0 var(--gatling-spacing-layout); +} + +.head .spacer { + flex-grow: 1; +} + +.head .theme-toggle { + margin-left: 20px; + background: none; + color: var(--gatling-text-color); + border: none; +} + +.head .theme-toggle:hover { + color: var(--gatling-gray-medium-color); + cursor: pointer; +} + +body .toggle-dark, body .toggle-light { + display: block; +} + +[data-theme="dark"] body .toggle-dark { + display: none; +} + +[data-theme="light"] body .toggle-light { + display: none; +} + +[data-theme="dark"] body .logo-enterprise-light { + display: none; +} + +[data-theme="light"] body .logo-enterprise-dark { + display: none; +} + +.gatling-open-source { + display: flex; + align-items: center; + justify-content: space-between; + flex-direction: row; + gap: var(--gatling-spacing-layout); +} + +.gatling-documentation { + display: flex; + align-items: center; + + background-color: var(--gatling-light-color); + border-radius: var(--gatling-border-radius); + color: var(--gatling-orange-color); + border: 1px solid var(--gatling-orange-color); + text-align: center; + padding: var(--gatling-spacing-small) var(--gatling-spacing); + height: 23px; + + font-size: var(--gatling-font-size-default); +} + +.gatling-documentation:hover { + background-color: var(--gatling-orange-color); + color: var(--gatling-light-color); +} + +.gatling-logo { + height: 35px; +} + +.gatling-logo img { + height: 100%; +} + +[data-theme="dark"] .gatling-logo-light { + display: none; +} + +[data-theme="light"] .gatling-logo-dark { + display: none; +} + +.container { + display: flex; + align-items: stretch; + height: 100%; +} + +.nav { + min-width: 210px; + width: 210px; + max-height: calc(100vh - var(--gatling-spacing-layout) - var(--gatling-spacing-layout)); + background: var(--gatling-light-color); + border-right: 1px solid var(--gatling-border-color); + overflow-y: auto; +} + +@media print { + .nav { + display: none; + } +} + +@media screen and (min-width: 1920px) { + .nav { + min-width: 310px; + width: 310px; + } +} + +.nav ul { + display: flex; + flex-direction: column; + + padding: 0; + margin: 0; +} + +.nav li { + display: flex; + list-style: none; + width: 100%; + padding: 0; +} + +.nav .item { + display: inline-flex; + align-items: center; + margin: 0 auto; + white-space: nowrap; + color: var(--gatling-text-color); + font-size: var(--gatling-font-size-default); + font-weight: var(--gatling-font-weight-bold); + margin: 0; + width: 100%; +} + +.nav .item .nav-label { + padding: var(--gatling-spacing) var(--gatling-spacing-layout); +} + +.nav .item:hover { + background-color: var(--gatling-hover-color); +} + +.nav .on .item { + background-color: var(--gatling-orange-color); +} + +.nav .on .item span { + color: var(--gatling-light-color); +} + +.cadre { + width: 100%; + height: 100%; + overflow-y: scroll; + scroll-behavior: smooth; +} + +@media print { + .cadre { + overflow-y: unset; + } +} + +.frise { + position: absolute; + top: 60px; + z-index: -1; + + background-color: var(--gatling-background-color); + height: 530px; +} + +.global { + height: 650px +} + +a { + text-decoration: none; +} + +a:hover { + color: var(--gatling-hover-color); +} + +img { + border: 0; +} + +h1 { + color: var(--gatling-dark-blue-color); + font-size: var(--gatling-font-size-section); + font-weight: var(--gatling-font-weight-medium); + text-align: center; + margin: 0; +} + +h1 span { + color: var(--gatling-hover-color); +} + +.enterprise { + display: flex; + align-items: center; + justify-content: center; + gap: var(--gatling-spacing-small); + + background-color: var(--gatling-light-color); + border-radius: var(--gatling-border-radius); + border: 1px solid var(--gatling-enterprise-color); + color: var(--gatling-enterprise-color); + text-align: center; + padding: var(--gatling-spacing-small) var(--gatling-spacing); + height: 25px; +} + +.enterprise:hover { + background-color: var(--gatling-hover-color); + color: var(--gatling-enterprise-color); +} + +.enterprise img { + display: block; + width: 160px; +} + +.simulation-card { + display: flex; + flex-direction: column; + align-self: stretch; + flex: 1; + gap: var(--gatling-spacing-layout); + max-height: 375px; +} + +#simulation-information { + flex: 1; +} + +.simulation-version-information { + display: flex; + flex-direction: column; + + gap: var(--gatling-spacing); + font-size: var(--gatling-font-size-default); + + background-color: var(--gatling-background-light-color); + border: 1px solid var(--gatling-border-color); + border-radius: var(--gatling-border-radius); + padding: var(--gatling-spacing); +} + +.simulation-information-container { + display: flex; + flex-direction: column; + gap: var(--gatling-spacing); +} + +.withTooltip .popover-title { + display: none; +} + +.popover-content p { + margin: 0; +} + +html[data-theme="dark"] div.popover { + background-color: var(--gatling-light-color); + border-bottom: none; +} + +html[data-theme="dark"] div.popover.right .arrow { + border-right-color: var(--gatling-light-color); +} + +.ellipsed-name { + display: block; + + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.simulation-information-item { + display: flex; + flex-direction: row; + align-items: flex-start; + gap: var(--gatling-spacing-small); +} + +.simulation-information-item.description { + flex-direction: column; +} + +.simulation-information-label { + display: inline-block; + font-weight: var(--gatling-font-weight-bold); + min-width: fit-content; +} + +.simulation-information-title { + display: block; + text-align: center; + color: var(--gatling-text-color); + font-weight: var(--gatling-font-weight-bold); + font-size: var(--gatling-font-size-heading); + width: 100%; +} + +.simulation-tooltip span { + display: inline-block; + word-wrap: break-word; + overflow: hidden; + text-overflow: ellipsis; +} + +.content { + display: flex; + flex-direction: column; +} + +.content-in { + width: 100%; + height: 100%; + + overflow-x: scroll; +} + +html[data-theme="dark"] .content-in { + background-color: var(--gatling-background-color); +} + +@media print { + .content-in { + overflow-x: unset; + } +} + +.container-article { + display: flex; + flex-direction: column; + gap: var(--gatling-spacing-layout); + + min-width: 1050px; + width: 1050px; + margin: 0 auto; + padding: var(--gatling-spacing-layout); + box-sizing: border-box; +} + +@media screen and (min-width: 1920px) { + .container-article { + min-width: 1350px; + width: 1350px; + } + + #responses * .highcharts-tracker { + transform: translate(400px, 70px); + } +} + +.content-header { + display: flex; + flex-direction: column; + gap: var(--gatling-spacing-layout); + + background-color: var(--gatling-background-light-color); + border-bottom: 1px solid var(--gatling-border-color); + padding: var(--gatling-spacing-layout) var(--gatling-spacing-layout) 0; +} + +.onglet { + font-size: var(--gatling-font-size-header); + font-weight: var(--gatling-font-weight-medium); + text-align: center; +} + +.sous-menu { + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; +} + +.sous-menu-spacer { + display: flex; + align-items: center; + flex-direction: row; +} + +.sous-menu .item { + margin-bottom: -1px; +} + +.sous-menu a { + display: block; + + font-size: var(--gatling-font-size-heading); + font-weight: var(--gatling-font-weight-normal); + padding: var(--gatling-spacing-small) var(--gatling-spacing) var(--gatling-spacing); + border-bottom: 2px solid transparent; + color: var(--gatling-text-color); + text-align: center; + width: 100px; +} + +.sous-menu a:hover { + border-bottom-color: var(--gatling-text-color); +} + +.sous-menu .ouvert a { + border-bottom-color: var(--gatling-orange-color); + font-weight: var(--gatling-font-weight-bold); +} + +.article { + position: relative; + + display: flex; + flex-direction: column; + gap: var(--gatling-spacing-layout); +} + +.infos { + width: 340px; + color: var(--gatling-light-color); +} + +.infos-title { + background-color: var(--gatling-background-light-color); + border: 1px solid var(--gatling-border-color); + border-bottom: 0; + border-top-left-radius: var(--gatling-border-radius); + border-top-right-radius: var(--gatling-border-radius); + color: var(--gatling-text-color); + font-size: var(--gatling-font-size-heading); + font-weight: var(--gatling-font-weight-bold); + text-align: center; + padding: var(--gatling-spacing-small) var(--gatling-spacing); +} + +.info { + background-color: var(--gatling-background-light-color); + border-bottom-left-radius: var(--gatling-border-radius); + border-bottom-right-radius: var(--gatling-border-radius); + border: 1px solid var(--gatling-border-color); + color: var(--gatling-text-color); + height: 100%; + margin: 0; +} + +.info table { + margin: auto; + padding-right: 15px; +} + +.alert-danger { + background-color: var(--gatling-danger-light-color); + border: 1px solid var(--gatling-danger-color); + border-radius: var(--gatling-border-radius); + color: var(--gatling-text-color); + padding: var(--gatling-spacing-layout); + font-weight: var(--gatling-font-weight-bold); +} + +.infos h2 { + color: var(--gatling-text-color); + font-size: var(--gatling-font-size-default); + font-weight: var(--gatling-font-weight-bold); + height: 19px; + margin: 0; + padding: 3.5px 0 0 35px; +} + +.infos .first::before { + content: ''; + display: inline-block; + margin-right: 5px; + margin-bottom: 2px; + vertical-align: middle; + width: 14px; + height: 14px; + background: url('executions.svg'); + background-size: contain; +} + +.infos .second::before { + content: ''; + display: inline-block; + margin-right: 5px; + margin-bottom: 2px; + vertical-align: middle; + width: 16px; + height: 16px; + background: url('time.svg'); + background-size: contain; +} + +html[data-theme="dark"] .infos .first::before, +html[data-theme="dark"] .infos .second::before { + filter: invert(0.9); +} + +.infos th { + text-align: center; +} + +.infos td { + font-weight: var(--gatling-font-weight-bold); + padding: var(--gatling-spacing-small); + -webkit-border-radius: var(--gatling-border-radius); + -moz-border-radius: var(--gatling-border-radius); + -ms-border-radius: var(--gatling-border-radius); + -o-border-radius: var(--gatling-border-radius); + border-radius: var(--gatling-border-radius); + text-align: right; + width: 50px; +} + +.infos .title { + width: 120px; +} + +.infos .ok { + background-color: var(--gatling-success-color); + color: var(--gatling-light-color); +} + +.infos .total { + background-color: var(--gatling-total-color); + color: var(--gatling-light-color); +} + +.infos .ko { + background-color: var(--gatling-danger-color); + -webkit-border-radius: var(--gatling-border-radius); + border-radius: var(--gatling-border-radius); + color: var(--gatling-light-color); +} + +.schema-container { + display: flex; + align-items: center; + justify-content: space-between; + gap: var(--gatling-spacing-layout); +} + +.schema { + background: var(--gatling-background-light-color); + border-radius: var(--gatling-border-radius); + border: 1px solid var(--gatling-border-color); +} + +.ranges { + height: 375px; + width: 500px; +} + +.ranges-large { + height: 375px; + width: 530px; +} + +.geant { + height: 362px; +} + +.extensible-geant { + width: 100%; +} + +.polar { + height: 375px; + width: 230px; +} + +.chart_title { + color: var(--gatling-text-color); + font-weight: var(--gatling-font-weight-bold); + font-size: var(--gatling-font-size-heading); + padding: 2px var(--gatling-spacing); +} + +html[data-theme="dark"] .chart_title { + color: var(--gatling-text-color); + font-weight: var(--gatling-font-weight-bold); + font-size: var(--gatling-font-size-heading); + padding: 2px var(--gatling-spacing); +} + +html[data-theme="dark"] .highcharts-background { + fill: var(--gatling-background-light-color); +} + +html[data-theme="dark"] .highcharts-button-normal rect { + fill: var(--gatling-background-color) !important; +} + +html[data-theme="dark"] .highcharts-button-disabled rect { + fill: var(--gatling-background-light-color) !important; +} + +html[data-theme="dark"] .highcharts-button-pressed rect { + fill: var(--gatling-orange-color) !important; +} + +html[data-theme="dark"] .highcharts-axis text, +html[data-theme="dark"] .highcharts-axis-labels text, +html[data-theme="dark"] .highcharts-button text, +html[data-theme="dark"] .highcharts-legend-item text, +html[data-theme="dark"] .highcharts-range-selector-buttons text { + fill: var(--gatling-text-color) !important; +} + +.statistics { + display: flex; + flex-direction: column; + + background-color: var(--gatling-background-light-color); + border-radius: var(--gatling-border-radius); + border-collapse: collapse; + color: var(--gatling-text-color); + max-height: 100%; +} + +.statistics .title { + display: flex; + text-align: center; + justify-content: space-between; + + min-height: 49.5px; + box-sizing: border-box; + + border: 1px solid var(--gatling-border-color); + color: var(--gatling-text-color); + font-size: var(--gatling-font-size-heading); + font-weight: var(--gatling-font-weight-bold); + padding: var(--gatling-spacing); +} + +.title_base { + display: flex; + align-items: center; + text-align: left; + user-select: none; +} + +.title_base_stats { + color: var(--gatling-text-color); + margin-right: 20px; +} + +.toggle-table { + position: relative; + border: 1px solid var(--gatling-border-color); + background-color: var(--gatling-light-color); + border-radius: 25px; + width: 40px; + height: 20px; + margin: 0 var(--gatling-spacing-small); +} + +.toggle-table::before { + position: absolute; + top: calc(50% - 9px); + left: 1px; + content: ""; + width: 50%; + height: 18px; + border-radius: 50%; + background-color: var(--gatling-text-color); +} + +.toggle-table.off::before { + left: unset; + right: 1px; +} + +.title_expanded { + cursor: pointer; + color: var(--gatling-text-color); +} + +.expand-table, +.collapse-table { + font-size: var(--gatling-font-size-secondary); + font-weight: var(--gatling-font-weight-normal); +} + +.title_expanded span.expand-table { + color: var(--gatling-gray-medium-color); +} + +.title_collapsed { + cursor: pointer; + color: var(--gatling-text-color); +} + +.title_collapsed span.collapse-table { + color: var(--gatling-gray-medium-color); +} + +#container_statistics_head { + position: sticky; + top: -1px; + + background: var(--gatling-background-light-color); + margin-top: -1px; + padding: var(--gatling-spacing-small) var(--gatling-spacing-small) 0px var(--gatling-spacing-small); +} + +#container_statistics_body { + border-bottom-left-radius: var(--gatling-border-radius); + border-bottom-right-radius: var(--gatling-border-radius); + margin-top: -1px; + padding: 0px var(--gatling-spacing-small) var(--gatling-spacing-small) var(--gatling-spacing-small); +} + +#container_errors { + border-bottom-left-radius: var(--gatling-border-radius); + border-bottom-right-radius: var(--gatling-border-radius); + padding: var(--gatling-spacing-small) var(--gatling-spacing-small) 0px var(--gatling-spacing-small); + margin-top: -1px; +} + +#container_assertions { + background-color: var(--gatling-background-light-color); + border-bottom-left-radius: var(--gatling-border-radius); + border-bottom-right-radius: var(--gatling-border-radius); + padding: var(--gatling-spacing-small); + margin-top: -1px; +} + +.statistics-in { + border-spacing: var(--gatling-spacing-small); + border-collapse: collapse; + margin: 0; +} + +.statistics .scrollable { + max-height: 100%; + overflow-y: auto; +} + +#statistics_table_container .statistics .scrollable { + max-height: 785px; +} + +.statistics-in a { + color: var(--gatling-text-color); + font-weight: var(--gatling-font-weight-bold); +} + +.statistics-in .header { + border-radius: var(--gatling-border-radius); + border: 1px solid var(--gatling-border-color); + font-size: var(--gatling-font-size-default); + font-weight: var(--gatling-font-weight-bold); + text-align: center; + padding: var(--gatling-spacing-small); +} + +.sortable { + cursor: pointer; +} + +.sortable span::after { + content: ''; + display: inline-block; + margin-left: 5px; + vertical-align: middle; + width: 12px; + height: 12px; + background: url('sort.svg'); + background-size: contain; +} + +.sorted-up span::after { + background: url('sort-up.svg'); + background-size: contain; +} + +.sorted-down span::after { + background: url('sort-down.svg'); + background-size: contain; +} + +html[data-theme="dark"] .sortable span::after { + filter: invert(0.9); +} + +.executions::before { + content: ''; + display: inline-block; + margin-right: 5px; + margin-bottom: 2px; + vertical-align: middle; + width: 14px; + height: 14px; + background: url('executions.svg'); + background-size: contain; +} + +.response-time::before { + content: ''; + display: inline-block; + margin-right: 5px; + margin-bottom: 2px; + vertical-align: middle; + width: 16px; + height: 16px; + background: url('time.svg'); + background-size: contain; +} + +html[data-theme="dark"] .executions::before, +html[data-theme="dark"] .response-time::before { + filter: invert(0.9); +} + +.statistics-in td { + background-color: var(--gatling-light-color); + border: 1px solid var(--gatling-border-color); + padding: var(--gatling-spacing-small); + min-width: 50px; +} + +.statistics-in .col-1 { + width: 175px; + max-width: 175px; +} +@media screen and (min-width: 1200px) { + .statistics-in .col-1 { + width: 50%; + } +} + +.expandable-container { + display: flex; + flex-direction: row; + box-sizing: border-box; + max-width: 100%; +} + +.statistics-in .value { + text-align: right; + width: 50px; +} + +.statistics-in .total { + color: var(--gatling-text-color); +} + +.statistics-in .col-2 { + background-color: var(--gatling-total-color); + color: var(--gatling-light-color); + font-weight: var(--gatling-font-weight-bold); +} + +.statistics-in .error-col-1 { + background-color: var(--gatling-light-color); + color: var(--gatling-text-color); +} + +.statistics-in .error-col-2 { + text-align: center; +} + +.statistics-in .ok { + background-color: var(--gatling-success-color); + color: var(--gatling-light-color); + font-weight: var(--gatling-font-weight-bold); +} + +.statistics-in .ko { + background-color: var(--gatling-danger-color); + color: var(--gatling-light-color); + font-weight: var(--gatling-font-weight-bold); +} + +.statistics-in .expand-button { + padding-left: var(--gatling-spacing); + cursor: pointer; +} + +.expand-button.hidden { + background: none; + cursor: default; +} + +.statistics-button { + background-color: var(--gatling-light-color); + color: var(--gatling-text-color); + padding: var(--gatling-spacing-small) var(--gatling-spacing); + border: 1px solid var(--gatling-border-color); + border-radius: var(--gatling-border-radius); +} + +#statistics_full_screen{ + padding: var(--gatling-spacing-small); +} + +#statistics_full_screen > img { + width: 14px; + height: 14px; +} + +html[data-theme="dark"] #statistics_full_screen > img { + filter: invert(0.9); +} + +#statistics_full_screen:disabled { + display: none; +} + +.statistics-button:hover:not(:disabled) { + cursor: pointer; + background-color: var(--gatling-hover-color); +} + +.statistics-in .expand-button.expand { + content: ''; + display: inline-block; + vertical-align: middle; + width: 2px; + height: 10px; + background: url('expand.svg'); + background-size: contain; +} + +.statistics-in .expand-button.collapse { + content: ''; + display: inline-block; + vertical-align: middle; + width: 2px; + height: 10px; + background: url('sort-down.svg'); + background-size: contain; +} + +html[data-theme="dark"] .statistics-in .expand-button.collapse, +html[data-theme="dark"] .statistics-in .expand-button.expand { + filter: invert(0.9); +} + +.nav .expand-button { + padding: var(--gatling-spacing-small) var(--gatling-spacing); +} + +.nav .expand-button.expand { + content: ''; + display: inline-block; + vertical-align: middle; + height: 8px; + background: url('expand.svg') no-repeat; + background-size: contain; + cursor: pointer; + margin-top: 6px; +} + +.nav .expand-button.collapse { + content: ''; + display: inline-block; + vertical-align: middle; + height: 8px; + background: url('sort-down.svg') no-repeat; + background-size: contain; + cursor: pointer; + margin-top: 6px; +} + +html[data-theme="dark"] .nav .expand-button.expand, +html[data-theme="dark"] .nav .expand-button.collapse { + filter: invert(0.9); +} + +.right { + display: flex; + align-items: center; + gap: var(--gatling-spacing); + float: right; + font-size: var(--gatling-font-size-default); +} + +.withTooltip { + outline: none; +} + +.withTooltip:hover { + text-decoration: none; +} + +.withTooltip .tooltipContent { + position: absolute; + z-index: 10; + display: none; + + background: var(--gatling-orange-color); + -webkit-box-shadow: 1px 2px 4px 0px rgba(47, 47, 47, 0.2); + -moz-box-shadow: 1px 2px 4px 0px rgba(47, 47, 47, 0.2); + box-shadow: 1px 2px 4px 0px rgba(47, 47, 47, 0.2); + border-radius: var(--gatling-border-radius); + color: var(--gatling-light-color); + margin-top: -5px; + padding: var(--gatling-spacing-small); +} + +.withTooltip:hover .tooltipContent { + display: inline; +} + +.button-modal { + padding: var(--gatling-spacing-small); +} + +.button-modal > img { + width: 14px; + height: 14px; +} + +html[data-theme="dark"] .button-modal > img { + filter: invert(0.9); +} + +.statistics-table-modal { + background-color: var(--gatling-background-color); + height: calc(100% - 60px); + width: calc(100% - 60px); + border-radius: var(--gatling-border-radius); +} + +.statistics-table-modal::backdrop { + position: fixed; + top: 0px; + right: 0px; + bottom: 0px; + left: 0px; + + background-color: rgba(100, 100, 100, 0.9); +} + +.statistics-table-modal-container { + display: flex; + flex-direction: column; + + width: 100%; + height: calc(100% - 35px); + overflow-x: auto; +} + +.button-modal { + cursor: pointer; + + height: 25px; + width: 25px; + + border: 1px solid var(--gatling-border-color); + background-color: var(--gatling-light-color); + border-radius: var(--gatling-border-radius); + color: var(--gatling-text-color); +} + +.button-modal:hover { + background-color: var(--gatling-background-color); +} + +.statistics-table-modal-header { + display: flex; + align-items: flex-end; + justify-content: flex-end; + + padding-bottom: var(--gatling-spacing); +} + +.statistics-table-modal-content { + flex: 1; + overflow-y: auto; + min-width: 1050px; +} + +.statistics-table-modal-footer { + display: flex; + align-items: flex-end; + justify-content: flex-end; + + padding-top: var(--gatling-spacing); +} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/index.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/index.html new file mode 100644 index 0000000..1841abc --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/index.html @@ -0,0 +1,1117 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - Global Information + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    +
    +
    + Gatling Version + + Version: + 3.10.5 + + + Released: + 2024-03-22 + +
    +
    + Run Information +
    + + Date: + 2024-04-25 17:54:56 GMT + + + Duration: + 2m 41s + + + Description: + Load testing (10 users/sec in 60sec - 2 cpu) + + +
    +
    +
    +
    + +
    + +
    + +
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/all_sessions.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/all_sessions.js new file mode 100644 index 0000000..ba56bee --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/all_sessions.js @@ -0,0 +1,11 @@ +allUsersData = { + +color: '#FFA900', +name: 'Active Users', +data: [ + [1714067697000,10],[1714067698000,17],[1714067699000,29],[1714067700000,36],[1714067701000,50],[1714067702000,63],[1714067703000,70],[1714067704000,87],[1714067705000,94],[1714067706000,104],[1714067707000,111],[1714067708000,124],[1714067709000,137],[1714067710000,142],[1714067711000,145],[1714067712000,157],[1714067713000,168],[1714067714000,180],[1714067715000,190],[1714067716000,198],[1714067717000,210],[1714067718000,220],[1714067719000,233],[1714067720000,245],[1714067721000,256],[1714067722000,266],[1714067723000,274],[1714067724000,280],[1714067725000,287],[1714067726000,293],[1714067727000,303],[1714067728000,315],[1714067729000,326],[1714067730000,336],[1714067731000,341],[1714067732000,348],[1714067733000,358],[1714067734000,375],[1714067735000,388],[1714067736000,402],[1714067737000,412],[1714067738000,421],[1714067739000,433],[1714067740000,441],[1714067741000,454],[1714067742000,463],[1714067743000,472],[1714067744000,481],[1714067745000,490],[1714067746000,498],[1714067747000,510],[1714067748000,527],[1714067749000,535],[1714067750000,542],[1714067751000,553],[1714067752000,562],[1714067753000,567],[1714067754000,573],[1714067755000,582],[1714067756000,590],[1714067757000,590],[1714067758000,590],[1714067759000,590],[1714067760000,590],[1714067761000,590],[1714067762000,590],[1714067763000,590],[1714067764000,590],[1714067765000,590],[1714067766000,590],[1714067767000,590],[1714067768000,590],[1714067769000,590],[1714067770000,590],[1714067771000,590],[1714067772000,587],[1714067773000,587],[1714067774000,587],[1714067775000,584],[1714067776000,580],[1714067777000,575],[1714067778000,564],[1714067779000,561],[1714067780000,553],[1714067781000,547],[1714067782000,545],[1714067783000,544],[1714067784000,543],[1714067785000,540],[1714067786000,539],[1714067787000,539],[1714067788000,536],[1714067789000,533],[1714067790000,530],[1714067791000,528],[1714067792000,527],[1714067793000,525],[1714067794000,521],[1714067795000,518],[1714067796000,514],[1714067797000,513],[1714067798000,510],[1714067799000,508],[1714067800000,503],[1714067801000,501],[1714067802000,496],[1714067803000,492],[1714067804000,488],[1714067805000,484],[1714067806000,481],[1714067807000,477],[1714067808000,473],[1714067809000,469],[1714067810000,464],[1714067811000,462],[1714067812000,456],[1714067813000,451],[1714067814000,444],[1714067815000,441],[1714067816000,432],[1714067817000,427],[1714067818000,421],[1714067819000,418],[1714067820000,416],[1714067821000,412],[1714067822000,407],[1714067823000,403],[1714067824000,399],[1714067825000,393],[1714067826000,389],[1714067827000,384],[1714067828000,382],[1714067829000,375],[1714067830000,372],[1714067831000,367],[1714067832000,356],[1714067833000,353],[1714067834000,346],[1714067835000,343],[1714067836000,337],[1714067837000,330],[1714067838000,319],[1714067839000,308],[1714067840000,301],[1714067841000,293],[1714067842000,280],[1714067843000,267],[1714067844000,254],[1714067845000,242],[1714067846000,229],[1714067847000,224],[1714067848000,209],[1714067849000,191],[1714067850000,171],[1714067851000,151],[1714067852000,129],[1714067853000,98],[1714067854000,67],[1714067855000,20],[1714067856000,12],[1714067857000,6],[1714067858000,1] +], +tooltip: { yDecimals: 0, ySuffix: '', valueDecimals: 0 } + , zIndex: 20 + , yAxis: 1 +}; \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/assertions.xml b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/assertions.xml new file mode 100644 index 0000000..c562e00 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/assertions.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/bootstrap.min.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/bootstrap.min.js new file mode 100644 index 0000000..ea41042 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/bootstrap.min.js @@ -0,0 +1,7 @@ +/** +* Bootstrap.js by @fat & @mdo +* plugins: bootstrap-tooltip.js, bootstrap-popover.js +* Copyright 2012 Twitter, Inc. +* http://www.apache.org/licenses/LICENSE-2.0.txt +*/ +!function(a){var b=function(a,b){this.init("tooltip",a,b)};b.prototype={constructor:b,init:function(b,c,d){var e,f;this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.enabled=!0,this.options.trigger=="click"?this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this)):this.options.trigger!="manual"&&(e=this.options.trigger=="hover"?"mouseenter":"focus",f=this.options.trigger=="hover"?"mouseleave":"blur",this.$element.on(e+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(f+"."+this.type,this.options.selector,a.proxy(this.leave,this))),this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(b){return b=a.extend({},a.fn[this.type].defaults,b,this.$element.data()),b.delay&&typeof b.delay=="number"&&(b.delay={show:b.delay,hide:b.delay}),b},enter:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);if(!c.options.delay||!c.options.delay.show)return c.show();clearTimeout(this.timeout),c.hoverState="in",this.timeout=setTimeout(function(){c.hoverState=="in"&&c.show()},c.options.delay.show)},leave:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);this.timeout&&clearTimeout(this.timeout);if(!c.options.delay||!c.options.delay.hide)return c.hide();c.hoverState="out",this.timeout=setTimeout(function(){c.hoverState=="out"&&c.hide()},c.options.delay.hide)},show:function(){var a,b,c,d,e,f,g;if(this.hasContent()&&this.enabled){a=this.tip(),this.setContent(),this.options.animation&&a.addClass("fade"),f=typeof this.options.placement=="function"?this.options.placement.call(this,a[0],this.$element[0]):this.options.placement,b=/in/.test(f),a.detach().css({top:0,left:0,display:"block"}).insertAfter(this.$element),c=this.getPosition(b),d=a[0].offsetWidth,e=a[0].offsetHeight;switch(b?f.split(" ")[1]:f){case"bottom":g={top:c.top+c.height,left:c.left+c.width/2-d/2};break;case"top":g={top:c.top-e,left:c.left+c.width/2-d/2};break;case"left":g={top:c.top+c.height/2-e/2,left:c.left-d};break;case"right":g={top:c.top+c.height/2-e/2,left:c.left+c.width}}a.offset(g).addClass(f).addClass("in")}},setContent:function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},hide:function(){function d(){var b=setTimeout(function(){c.off(a.support.transition.end).detach()},500);c.one(a.support.transition.end,function(){clearTimeout(b),c.detach()})}var b=this,c=this.tip();return c.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d():c.detach(),this},fixTitle:function(){var a=this.$element;(a.attr("title")||typeof a.attr("data-original-title")!="string")&&a.attr("data-original-title",a.attr("title")||"").removeAttr("title")},hasContent:function(){return this.getTitle()},getPosition:function(b){return a.extend({},b?{top:0,left:0}:this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight})},getTitle:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||(typeof c.title=="function"?c.title.call(b[0]):c.title),a},tip:function(){return this.$tip=this.$tip||a(this.options.template)},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);c[c.tip().hasClass("in")?"hide":"show"]()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}},a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("tooltip"),f=typeof c=="object"&&c;e||d.data("tooltip",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.tooltip.Constructor=b,a.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'
    ',trigger:"hover",title:"",delay:0,html:!1}}(window.jQuery),!function(a){var b=function(a,b){this.init("popover",a,b)};b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype,{constructor:b,setContent:function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content > *")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-content")||(typeof c.content=="function"?c.content.call(b[0]):c.content),a},tip:function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}}),a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("popover"),f=typeof c=="object"&&c;e||d.data("popover",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.defaults=a.extend({},a.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'

    '})}(window.jQuery) \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/ellipsis.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/ellipsis.js new file mode 100644 index 0000000..781d0de --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/ellipsis.js @@ -0,0 +1,26 @@ +function parentId(name) { + return "parent-" + name; +} + +function isEllipsed(name) { + const child = document.getElementById(name); + const parent = document.getElementById(parentId(name)); + const emptyData = parent.getAttribute("data-content") === ""; + const hasOverflow = child.clientWidth < child.scrollWidth; + + if (hasOverflow) { + if (emptyData) { + parent.setAttribute("data-content", name); + } + } else { + if (!emptyData) { + parent.setAttribute("data-content", ""); + } + } +} + +function ellipsedLabel ({ name, parentClass = "", childClass = "" }) { + const child = "" + name + ""; + + return "" + child + ""; +} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/gatling.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/gatling.js new file mode 100644 index 0000000..5b9e992 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/gatling.js @@ -0,0 +1,137 @@ +/* + * Copyright 2011-2024 GatlingCorp (https://gatling.io) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +(function ($) { + $.fn.expandable = function () { + var scope = this; + + this.find('.expand-button:not([class*=hidden])').addClass('collapse').on('click', function () { + var $this = $(this); + + if ($this.hasClass('expand')) + $this.expand(scope); + else + $this.collapse(scope); + }); + + this.find('.expand-all-button').on('click', function () { + $(this).expandAll(scope); + }); + + this.find('.collapse-all-button').on('click', function () { + $(this).collapseAll(scope); + }); + + this.collapseAll(this); + + return this; + }; + + $.fn.expand = function (scope, recursive) { + return this.each(function () { + var $this = $(this); + + if (recursive) { + scope.find('*[data-parent=' + $this.attr('id') + ']').find('.expand-button.expand').expand(scope, true); + scope.find('*[data-parent=' + $this.attr('id') + ']').find('.expand-button.expand').expand(scope, true); + } + + if ($this.hasClass('expand')) { + $('*[data-parent=' + $this.attr('id') + ']').toggle(true); + $this.toggleClass('expand').toggleClass('collapse'); + } + }); + }; + + $.fn.expandAll = function (scope) { + $('*[data-parent=ROOT]').find('.expand-button.expand').expand(scope, true); + $('*[data-parent=ROOT]').find('.expand-button.collapse').expand(scope, true); + }; + + $.fn.collapse = function (scope) { + return this.each(function () { + var $this = $(this); + + scope.find('*[data-parent=' + $this.attr('id') + '] .expand-button.collapse').collapse(scope); + scope.find('*[data-parent=' + $this.attr('id') + ']').toggle(false); + $this.toggleClass('expand').toggleClass('collapse'); + }); + }; + + $.fn.collapseAll = function (scope) { + $('*[data-parent=ROOT]').find('.expand-button.collapse').collapse(scope); + }; + + $.fn.sortable = function (target) { + var table = this; + + this.find('thead .sortable').on('click', function () { + var $this = $(this); + + if ($this.hasClass('sorted-down')) { + var desc = false; + var style = 'sorted-up'; + } + else { + var desc = true; + var style = 'sorted-down'; + } + + $(target).sortTable($this.attr('id'), desc); + + table.find('thead .sortable').removeClass('sorted-up sorted-down'); + $this.addClass(style); + + return false; + }); + + return this; + }; + + $.fn.sortTable = function (col, desc) { + function getValue(line) { + var cell = $(line).find('.' + col); + + if (cell.hasClass('value')) + var value = cell.text(); + else + var value = cell.find('.value').text(); + + return parseFloat(value); + } + + function sortLines (lines, group) { + var notErrorTable = col.search("error") == -1; + var linesToSort = notErrorTable ? lines.filter('*[data-parent=' + group + ']') : lines; + + var sortedLines = linesToSort.sort(function (a, b) { + return desc ? getValue(b) - getValue(a): getValue(a) - getValue(b); + }).toArray(); + + var result = []; + $.each(sortedLines, function (i, line) { + result.push(line); + if (notErrorTable) + result = result.concat(sortLines(lines, $(line).attr('id'))); + }); + + return result; + } + + this.find('tbody').append(sortLines(this.find('tbody tr').detach(), 'ROOT')); + + return this; + }; +})(jQuery); diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/global_stats.json b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/global_stats.json new file mode 100644 index 0000000..59e26c9 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/global_stats.json @@ -0,0 +1,77 @@ +{ + "name": "All Requests", + "numberOfRequests": { + "total": 10030, + "ok": 10030, + "ko": 0 + }, + "minResponseTime": { + "total": 23, + "ok": 23, + "ko": 0 + }, + "maxResponseTime": { + "total": 58634, + "ok": 58634, + "ko": 0 + }, + "meanResponseTime": { + "total": 2329, + "ok": 2329, + "ko": 0 + }, + "standardDeviation": { + "total": 7662, + "ok": 7662, + "ko": 0 + }, + "percentiles1": { + "total": 122, + "ok": 122, + "ko": 0 + }, + "percentiles2": { + "total": 424, + "ok": 424, + "ko": 0 + }, + "percentiles3": { + "total": 17978, + "ok": 17978, + "ko": 0 + }, + "percentiles4": { + "total": 43355, + "ok": 43355, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 7679, + "percentage": 77 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 1105, + "percentage": 11 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 1246, + "percentage": 12 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 61.91358024691358, + "ok": 61.91358024691358, + "ko": 0 + } +} \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/highcharts-more.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/highcharts-more.js new file mode 100644 index 0000000..2d78893 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/highcharts-more.js @@ -0,0 +1,60 @@ +/* + Highcharts JS v5.0.3 (2016-11-18) + + (c) 2009-2016 Torstein Honsi + + License: www.highcharts.com/license +*/ +(function(x){"object"===typeof module&&module.exports?module.exports=x:x(Highcharts)})(function(x){(function(b){function r(b,a,d){this.init(b,a,d)}var t=b.each,w=b.extend,m=b.merge,q=b.splat;w(r.prototype,{init:function(b,a,d){var f=this,h=f.defaultOptions;f.chart=a;f.options=b=m(h,a.angular?{background:{}}:void 0,b);(b=b.background)&&t([].concat(q(b)).reverse(),function(a){var c,h=d.userOptions;c=m(f.defaultBackgroundOptions,a);a.backgroundColor&&(c.backgroundColor=a.backgroundColor);c.color=c.backgroundColor; +d.options.plotBands.unshift(c);h.plotBands=h.plotBands||[];h.plotBands!==d.options.plotBands&&h.plotBands.unshift(c)})},defaultOptions:{center:["50%","50%"],size:"85%",startAngle:0},defaultBackgroundOptions:{className:"highcharts-pane",shape:"circle",borderWidth:1,borderColor:"#cccccc",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#ffffff"],[1,"#e6e6e6"]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"}});b.Pane=r})(x);(function(b){var r=b.CenteredSeriesMixin, +t=b.each,w=b.extend,m=b.map,q=b.merge,e=b.noop,a=b.Pane,d=b.pick,f=b.pInt,h=b.splat,u=b.wrap,c,l,k=b.Axis.prototype;b=b.Tick.prototype;c={getOffset:e,redraw:function(){this.isDirty=!1},render:function(){this.isDirty=!1},setScale:e,setCategories:e,setTitle:e};l={defaultRadialGaugeOptions:{labels:{align:"center",x:0,y:null},minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,tickLength:10,tickPosition:"inside",tickWidth:2,title:{rotation:0},zIndex:2}, +defaultRadialXOptions:{gridLineWidth:1,labels:{align:null,distance:15,x:0,y:null},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},defaultRadialYOptions:{gridLineInterpolation:"circle",labels:{align:"right",x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}},setOptions:function(a){a=this.options=q(this.defaultOptions,this.defaultRadialOptions,a);a.plotBands||(a.plotBands=[])},getOffset:function(){k.getOffset.call(this);this.chart.axisOffset[this.side]=0;this.center=this.pane.center= +r.getCenter.call(this.pane)},getLinePath:function(a,g){a=this.center;var c=this.chart,f=d(g,a[2]/2-this.offset);this.isCircular||void 0!==g?g=this.chart.renderer.symbols.arc(this.left+a[0],this.top+a[1],f,f,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0}):(g=this.postTranslate(this.angleRad,f),g=["M",a[0]+c.plotLeft,a[1]+c.plotTop,"L",g.x,g.y]);return g},setAxisTranslation:function(){k.setAxisTranslation.call(this);this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/ +(this.max-this.min||1):this.center[2]/2/(this.max-this.min||1),this.minPixelPadding=this.isXAxis?this.transA*this.minPointOffset:0)},beforeSetTickPositions:function(){if(this.autoConnect=this.isCircular&&void 0===d(this.userMax,this.options.max)&&this.endAngleRad-this.startAngleRad===2*Math.PI)this.max+=this.categories&&1||this.pointRange||this.closestPointRange||0},setAxisSize:function(){k.setAxisSize.call(this);this.isRadial&&(this.center=this.pane.center=r.getCenter.call(this.pane),this.isCircular&& +(this.sector=this.endAngleRad-this.startAngleRad),this.len=this.width=this.height=this.center[2]*d(this.sector,1)/2)},getPosition:function(a,g){return this.postTranslate(this.isCircular?this.translate(a):this.angleRad,d(this.isCircular?g:this.translate(a),this.center[2]/2)-this.offset)},postTranslate:function(a,g){var d=this.chart,c=this.center;a=this.startAngleRad+a;return{x:d.plotLeft+c[0]+Math.cos(a)*g,y:d.plotTop+c[1]+Math.sin(a)*g}},getPlotBandPath:function(a,g,c){var h=this.center,p=this.startAngleRad, +k=h[2]/2,n=[d(c.outerRadius,"100%"),c.innerRadius,d(c.thickness,10)],b=Math.min(this.offset,0),l=/%$/,u,e=this.isCircular;"polygon"===this.options.gridLineInterpolation?h=this.getPlotLinePath(a).concat(this.getPlotLinePath(g,!0)):(a=Math.max(a,this.min),g=Math.min(g,this.max),e||(n[0]=this.translate(a),n[1]=this.translate(g)),n=m(n,function(a){l.test(a)&&(a=f(a,10)*k/100);return a}),"circle"!==c.shape&&e?(a=p+this.translate(a),g=p+this.translate(g)):(a=-Math.PI/2,g=1.5*Math.PI,u=!0),n[0]-=b,n[2]-= +b,h=this.chart.renderer.symbols.arc(this.left+h[0],this.top+h[1],n[0],n[0],{start:Math.min(a,g),end:Math.max(a,g),innerR:d(n[1],n[0]-n[2]),open:u}));return h},getPlotLinePath:function(a,g){var d=this,c=d.center,f=d.chart,h=d.getPosition(a),k,b,p;d.isCircular?p=["M",c[0]+f.plotLeft,c[1]+f.plotTop,"L",h.x,h.y]:"circle"===d.options.gridLineInterpolation?(a=d.translate(a))&&(p=d.getLinePath(0,a)):(t(f.xAxis,function(a){a.pane===d.pane&&(k=a)}),p=[],a=d.translate(a),c=k.tickPositions,k.autoConnect&&(c= +c.concat([c[0]])),g&&(c=[].concat(c).reverse()),t(c,function(g,d){b=k.getPosition(g,a);p.push(d?"L":"M",b.x,b.y)}));return p},getTitlePosition:function(){var a=this.center,g=this.chart,d=this.options.title;return{x:g.plotLeft+a[0]+(d.x||0),y:g.plotTop+a[1]-{high:.5,middle:.25,low:0}[d.align]*a[2]+(d.y||0)}}};u(k,"init",function(f,g,k){var b=g.angular,p=g.polar,n=k.isX,u=b&&n,e,A=g.options,m=k.pane||0;if(b){if(w(this,u?c:l),e=!n)this.defaultRadialOptions=this.defaultRadialGaugeOptions}else p&&(w(this, +l),this.defaultRadialOptions=(e=n)?this.defaultRadialXOptions:q(this.defaultYAxisOptions,this.defaultRadialYOptions));b||p?(this.isRadial=!0,g.inverted=!1,A.chart.zoomType=null):this.isRadial=!1;f.call(this,g,k);u||!b&&!p||(f=this.options,g.panes||(g.panes=[]),this.pane=g=g.panes[m]=g.panes[m]||new a(h(A.pane)[m],g,this),g=g.options,this.angleRad=(f.angle||0)*Math.PI/180,this.startAngleRad=(g.startAngle-90)*Math.PI/180,this.endAngleRad=(d(g.endAngle,g.startAngle+360)-90)*Math.PI/180,this.offset=f.offset|| +0,this.isCircular=e)});u(k,"autoLabelAlign",function(a){if(!this.isRadial)return a.apply(this,[].slice.call(arguments,1))});u(b,"getPosition",function(a,d,c,f,h){var g=this.axis;return g.getPosition?g.getPosition(c):a.call(this,d,c,f,h)});u(b,"getLabelPosition",function(a,g,c,f,h,k,b,l,u){var n=this.axis,p=k.y,e=20,y=k.align,v=(n.translate(this.pos)+n.startAngleRad+Math.PI/2)/Math.PI*180%360;n.isRadial?(a=n.getPosition(this.pos,n.center[2]/2+d(k.distance,-25)),"auto"===k.rotation?f.attr({rotation:v}): +null===p&&(p=n.chart.renderer.fontMetrics(f.styles.fontSize).b-f.getBBox().height/2),null===y&&(n.isCircular?(this.label.getBBox().width>n.len*n.tickInterval/(n.max-n.min)&&(e=0),y=v>e&&v<180-e?"left":v>180+e&&v<360-e?"right":"center"):y="center",f.attr({align:y})),a.x+=k.x,a.y+=p):a=a.call(this,g,c,f,h,k,b,l,u);return a});u(b,"getMarkPath",function(a,d,c,f,h,k,b){var g=this.axis;g.isRadial?(a=g.getPosition(this.pos,g.center[2]/2+f),d=["M",d,c,"L",a.x,a.y]):d=a.call(this,d,c,f,h,k,b);return d})})(x); +(function(b){var r=b.each,t=b.noop,w=b.pick,m=b.Series,q=b.seriesType,e=b.seriesTypes;q("arearange","area",{lineWidth:1,marker:null,threshold:null,tooltip:{pointFormat:'\x3cspan style\x3d"color:{series.color}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cb\x3e{point.low}\x3c/b\x3e - \x3cb\x3e{point.high}\x3c/b\x3e\x3cbr/\x3e'},trackByArea:!0,dataLabels:{align:null,verticalAlign:null,xLow:0,xHigh:0,yLow:0,yHigh:0},states:{hover:{halo:!1}}},{pointArrayMap:["low","high"],dataLabelCollections:["dataLabel", +"dataLabelUpper"],toYData:function(a){return[a.low,a.high]},pointValKey:"low",deferTranslatePolar:!0,highToXY:function(a){var d=this.chart,f=this.xAxis.postTranslate(a.rectPlotX,this.yAxis.len-a.plotHigh);a.plotHighX=f.x-d.plotLeft;a.plotHigh=f.y-d.plotTop},translate:function(){var a=this,d=a.yAxis,f=!!a.modifyValue;e.area.prototype.translate.apply(a);r(a.points,function(h){var b=h.low,c=h.high,l=h.plotY;null===c||null===b?h.isNull=!0:(h.plotLow=l,h.plotHigh=d.translate(f?a.modifyValue(c,h):c,0,1, +0,1),f&&(h.yBottom=h.plotHigh))});this.chart.polar&&r(this.points,function(d){a.highToXY(d)})},getGraphPath:function(a){var d=[],f=[],h,b=e.area.prototype.getGraphPath,c,l,k;k=this.options;var p=k.step;a=a||this.points;for(h=a.length;h--;)c=a[h],c.isNull||k.connectEnds||a[h+1]&&!a[h+1].isNull||f.push({plotX:c.plotX,plotY:c.plotY,doCurve:!1}),l={polarPlotY:c.polarPlotY,rectPlotX:c.rectPlotX,yBottom:c.yBottom,plotX:w(c.plotHighX,c.plotX),plotY:c.plotHigh,isNull:c.isNull},f.push(l),d.push(l),c.isNull|| +k.connectEnds||a[h-1]&&!a[h-1].isNull||f.push({plotX:c.plotX,plotY:c.plotY,doCurve:!1});a=b.call(this,a);p&&(!0===p&&(p="left"),k.step={left:"right",center:"center",right:"left"}[p]);d=b.call(this,d);f=b.call(this,f);k.step=p;k=[].concat(a,d);this.chart.polar||"M"!==f[0]||(f[0]="L");this.graphPath=k;this.areaPath=this.areaPath.concat(a,f);k.isArea=!0;k.xMap=a.xMap;this.areaPath.xMap=a.xMap;return k},drawDataLabels:function(){var a=this.data,d=a.length,f,h=[],b=m.prototype,c=this.options.dataLabels, +l=c.align,k=c.verticalAlign,p=c.inside,g,n,e=this.chart.inverted;if(c.enabled||this._hasPointLabels){for(f=d;f--;)if(g=a[f])n=p?g.plotHighg.plotLow,g.y=g.high,g._plotY=g.plotY,g.plotY=g.plotHigh,h[f]=g.dataLabel,g.dataLabel=g.dataLabelUpper,g.below=n,e?l||(c.align=n?"right":"left"):k||(c.verticalAlign=n?"top":"bottom"),c.x=c.xHigh,c.y=c.yHigh;b.drawDataLabels&&b.drawDataLabels.apply(this,arguments);for(f=d;f--;)if(g=a[f])n=p?g.plotHighg.plotLow,g.dataLabelUpper= +g.dataLabel,g.dataLabel=h[f],g.y=g.low,g.plotY=g._plotY,g.below=!n,e?l||(c.align=n?"left":"right"):k||(c.verticalAlign=n?"bottom":"top"),c.x=c.xLow,c.y=c.yLow;b.drawDataLabels&&b.drawDataLabels.apply(this,arguments)}c.align=l;c.verticalAlign=k},alignDataLabel:function(){e.column.prototype.alignDataLabel.apply(this,arguments)},setStackedPoints:t,getSymbol:t,drawPoints:t})})(x);(function(b){var r=b.seriesType;r("areasplinerange","arearange",null,{getPointSpline:b.seriesTypes.spline.prototype.getPointSpline})})(x); +(function(b){var r=b.defaultPlotOptions,t=b.each,w=b.merge,m=b.noop,q=b.pick,e=b.seriesType,a=b.seriesTypes.column.prototype;e("columnrange","arearange",w(r.column,r.arearange,{lineWidth:1,pointRange:null}),{translate:function(){var d=this,f=d.yAxis,b=d.xAxis,u=b.startAngleRad,c,l=d.chart,k=d.xAxis.isRadial,p;a.translate.apply(d);t(d.points,function(a){var g=a.shapeArgs,h=d.options.minPointLength,e,v;a.plotHigh=p=f.translate(a.high,0,1,0,1);a.plotLow=a.plotY;v=p;e=q(a.rectPlotY,a.plotY)-p;Math.abs(e)< +h?(h-=e,e+=h,v-=h/2):0>e&&(e*=-1,v-=e);k?(c=a.barX+u,a.shapeType="path",a.shapeArgs={d:d.polarArc(v+e,v,c,c+a.pointWidth)}):(g.height=e,g.y=v,a.tooltipPos=l.inverted?[f.len+f.pos-l.plotLeft-v-e/2,b.len+b.pos-l.plotTop-g.x-g.width/2,e]:[b.left-l.plotLeft+g.x+g.width/2,f.pos-l.plotTop+v+e/2,e])})},directTouch:!0,trackerGroups:["group","dataLabelsGroup"],drawGraph:m,crispCol:a.crispCol,drawPoints:a.drawPoints,drawTracker:a.drawTracker,getColumnMetrics:a.getColumnMetrics,animate:function(){return a.animate.apply(this, +arguments)},polarArc:function(){return a.polarArc.apply(this,arguments)},pointAttribs:a.pointAttribs})})(x);(function(b){var r=b.each,t=b.isNumber,w=b.merge,m=b.pick,q=b.pInt,e=b.Series,a=b.seriesType,d=b.TrackerMixin;a("gauge","line",{dataLabels:{enabled:!0,defer:!1,y:15,borderRadius:3,crop:!1,verticalAlign:"top",zIndex:2,borderWidth:1,borderColor:"#cccccc"},dial:{},pivot:{},tooltip:{headerFormat:""},showInLegend:!1},{angular:!0,directTouch:!0,drawGraph:b.noop,fixedBox:!0,forceDL:!0,noSharedTooltip:!0, +trackerGroups:["group","dataLabelsGroup"],translate:function(){var a=this.yAxis,d=this.options,b=a.center;this.generatePoints();r(this.points,function(c){var f=w(d.dial,c.dial),k=q(m(f.radius,80))*b[2]/200,h=q(m(f.baseLength,70))*k/100,g=q(m(f.rearLength,10))*k/100,n=f.baseWidth||3,u=f.topWidth||1,e=d.overshoot,v=a.startAngleRad+a.translate(c.y,null,null,null,!0);t(e)?(e=e/180*Math.PI,v=Math.max(a.startAngleRad-e,Math.min(a.endAngleRad+e,v))):!1===d.wrap&&(v=Math.max(a.startAngleRad,Math.min(a.endAngleRad, +v)));v=180*v/Math.PI;c.shapeType="path";c.shapeArgs={d:f.path||["M",-g,-n/2,"L",h,-n/2,k,-u/2,k,u/2,h,n/2,-g,n/2,"z"],translateX:b[0],translateY:b[1],rotation:v};c.plotX=b[0];c.plotY=b[1]})},drawPoints:function(){var a=this,d=a.yAxis.center,b=a.pivot,c=a.options,l=c.pivot,k=a.chart.renderer;r(a.points,function(d){var g=d.graphic,b=d.shapeArgs,f=b.d,h=w(c.dial,d.dial);g?(g.animate(b),b.d=f):(d.graphic=k[d.shapeType](b).attr({rotation:b.rotation,zIndex:1}).addClass("highcharts-dial").add(a.group),d.graphic.attr({stroke:h.borderColor|| +"none","stroke-width":h.borderWidth||0,fill:h.backgroundColor||"#000000"}))});b?b.animate({translateX:d[0],translateY:d[1]}):(a.pivot=k.circle(0,0,m(l.radius,5)).attr({zIndex:2}).addClass("highcharts-pivot").translate(d[0],d[1]).add(a.group),a.pivot.attr({"stroke-width":l.borderWidth||0,stroke:l.borderColor||"#cccccc",fill:l.backgroundColor||"#000000"}))},animate:function(a){var d=this;a||(r(d.points,function(a){var c=a.graphic;c&&(c.attr({rotation:180*d.yAxis.startAngleRad/Math.PI}),c.animate({rotation:a.shapeArgs.rotation}, +d.options.animation))}),d.animate=null)},render:function(){this.group=this.plotGroup("group","series",this.visible?"visible":"hidden",this.options.zIndex,this.chart.seriesGroup);e.prototype.render.call(this);this.group.clip(this.chart.clipRect)},setData:function(a,d){e.prototype.setData.call(this,a,!1);this.processData();this.generatePoints();m(d,!0)&&this.chart.redraw()},drawTracker:d&&d.drawTrackerPoint},{setState:function(a){this.state=a}})})(x);(function(b){var r=b.each,t=b.noop,w=b.pick,m=b.seriesType, +q=b.seriesTypes;m("boxplot","column",{threshold:null,tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eMaximum: {point.high}\x3cbr/\x3eUpper quartile: {point.q3}\x3cbr/\x3eMedian: {point.median}\x3cbr/\x3eLower quartile: {point.q1}\x3cbr/\x3eMinimum: {point.low}\x3cbr/\x3e'},whiskerLength:"50%",fillColor:"#ffffff",lineWidth:1,medianWidth:2,states:{hover:{brightness:-.3}},whiskerWidth:2},{pointArrayMap:["low","q1","median", +"q3","high"],toYData:function(b){return[b.low,b.q1,b.median,b.q3,b.high]},pointValKey:"high",pointAttribs:function(b){var a=this.options,d=b&&b.color||this.color;return{fill:b.fillColor||a.fillColor||d,stroke:a.lineColor||d,"stroke-width":a.lineWidth||0}},drawDataLabels:t,translate:function(){var b=this.yAxis,a=this.pointArrayMap;q.column.prototype.translate.apply(this);r(this.points,function(d){r(a,function(a){null!==d[a]&&(d[a+"Plot"]=b.translate(d[a],0,1,0,1))})})},drawPoints:function(){var b= +this,a=b.options,d=b.chart.renderer,f,h,u,c,l,k,p=0,g,n,m,q,v=!1!==b.doQuartiles,t,x=b.options.whiskerLength;r(b.points,function(e){var r=e.graphic,y=r?"animate":"attr",I=e.shapeArgs,z={},B={},G={},H=e.color||b.color;void 0!==e.plotY&&(g=I.width,n=Math.floor(I.x),m=n+g,q=Math.round(g/2),f=Math.floor(v?e.q1Plot:e.lowPlot),h=Math.floor(v?e.q3Plot:e.lowPlot),u=Math.floor(e.highPlot),c=Math.floor(e.lowPlot),r||(e.graphic=r=d.g("point").add(b.group),e.stem=d.path().addClass("highcharts-boxplot-stem").add(r), +x&&(e.whiskers=d.path().addClass("highcharts-boxplot-whisker").add(r)),v&&(e.box=d.path(void 0).addClass("highcharts-boxplot-box").add(r)),e.medianShape=d.path(void 0).addClass("highcharts-boxplot-median").add(r),z.stroke=e.stemColor||a.stemColor||H,z["stroke-width"]=w(e.stemWidth,a.stemWidth,a.lineWidth),z.dashstyle=e.stemDashStyle||a.stemDashStyle,e.stem.attr(z),x&&(B.stroke=e.whiskerColor||a.whiskerColor||H,B["stroke-width"]=w(e.whiskerWidth,a.whiskerWidth,a.lineWidth),e.whiskers.attr(B)),v&&(r= +b.pointAttribs(e),e.box.attr(r)),G.stroke=e.medianColor||a.medianColor||H,G["stroke-width"]=w(e.medianWidth,a.medianWidth,a.lineWidth),e.medianShape.attr(G)),k=e.stem.strokeWidth()%2/2,p=n+q+k,e.stem[y]({d:["M",p,h,"L",p,u,"M",p,f,"L",p,c]}),v&&(k=e.box.strokeWidth()%2/2,f=Math.floor(f)+k,h=Math.floor(h)+k,n+=k,m+=k,e.box[y]({d:["M",n,h,"L",n,f,"L",m,f,"L",m,h,"L",n,h,"z"]})),x&&(k=e.whiskers.strokeWidth()%2/2,u+=k,c+=k,t=/%$/.test(x)?q*parseFloat(x)/100:x/2,e.whiskers[y]({d:["M",p-t,u,"L",p+t,u, +"M",p-t,c,"L",p+t,c]})),l=Math.round(e.medianPlot),k=e.medianShape.strokeWidth()%2/2,l+=k,e.medianShape[y]({d:["M",n,l,"L",m,l]}))})},setStackedPoints:t})})(x);(function(b){var r=b.each,t=b.noop,w=b.seriesType,m=b.seriesTypes;w("errorbar","boxplot",{color:"#000000",grouping:!1,linkedTo:":previous",tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cb\x3e{point.low}\x3c/b\x3e - \x3cb\x3e{point.high}\x3c/b\x3e\x3cbr/\x3e'},whiskerWidth:null},{type:"errorbar", +pointArrayMap:["low","high"],toYData:function(b){return[b.low,b.high]},pointValKey:"high",doQuartiles:!1,drawDataLabels:m.arearange?function(){var b=this.pointValKey;m.arearange.prototype.drawDataLabels.call(this);r(this.data,function(e){e.y=e[b]})}:t,getColumnMetrics:function(){return this.linkedParent&&this.linkedParent.columnMetrics||m.column.prototype.getColumnMetrics.call(this)}})})(x);(function(b){var r=b.correctFloat,t=b.isNumber,w=b.pick,m=b.Point,q=b.Series,e=b.seriesType,a=b.seriesTypes; +e("waterfall","column",{dataLabels:{inside:!0},lineWidth:1,lineColor:"#333333",dashStyle:"dot",borderColor:"#333333",states:{hover:{lineWidthPlus:0}}},{pointValKey:"y",translate:function(){var d=this.options,b=this.yAxis,h,e,c,l,k,p,g,n,m,q=w(d.minPointLength,5),v=d.threshold,t=d.stacking;a.column.prototype.translate.apply(this);this.minPointLengthOffset=0;g=n=v;e=this.points;h=0;for(d=e.length;hl.height&&(l.y+=l.height,l.height*=-1),c.plotY=l.y=Math.round(l.y)- +this.borderWidth%2/2,l.height=Math.max(Math.round(l.height),.001),c.yBottom=l.y+l.height,l.height<=q&&(l.height=q,this.minPointLengthOffset+=q),l.y-=this.minPointLengthOffset,l=c.plotY+(c.negative?l.height:0)-this.minPointLengthOffset,this.chart.inverted?c.tooltipPos[0]=b.len-l:c.tooltipPos[1]=l},processData:function(a){var b=this.yData,d=this.options.data,e,c=b.length,l,k,p,g,n,m;k=l=p=g=this.options.threshold||0;for(m=0;ma[k-1].y&&(l[2]+=c.height,l[5]+=c.height),e=e.concat(l);return e},drawGraph:function(){q.prototype.drawGraph.call(this);this.graph.attr({d:this.getCrispPath()})},getExtremes:b.noop},{getClassName:function(){var a=m.prototype.getClassName.call(this);this.isSum?a+=" highcharts-sum":this.isIntermediateSum&&(a+=" highcharts-intermediate-sum"); +return a},isValid:function(){return t(this.y,!0)||this.isSum||this.isIntermediateSum}})})(x);(function(b){var r=b.Series,t=b.seriesType,w=b.seriesTypes;t("polygon","scatter",{marker:{enabled:!1,states:{hover:{enabled:!1}}},stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:""},trackByArea:!0},{type:"polygon",getGraphPath:function(){for(var b=r.prototype.getGraphPath.call(this),q=b.length+1;q--;)(q===b.length||"M"===b[q])&&0=this.minPxSize/2?(d.shapeType="circle",d.shapeArgs={x:d.plotX,y:d.plotY,r:c},d.dlBox={x:d.plotX-c,y:d.plotY-c,width:2*c,height:2*c}):d.shapeArgs=d.plotY=d.dlBox=void 0},drawLegendSymbol:function(a,b){var d=this.chart.renderer,c=d.fontMetrics(a.itemStyle.fontSize).f/2;b.legendSymbol=d.circle(c,a.baseline-c,c).attr({zIndex:3}).add(b.legendGroup);b.legendSymbol.isMarker= +!0},drawPoints:l.column.prototype.drawPoints,alignDataLabel:l.column.prototype.alignDataLabel,buildKDTree:a,applyZones:a},{haloPath:function(a){return h.prototype.haloPath.call(this,this.shapeArgs.r+a)},ttBelow:!1});w.prototype.beforePadding=function(){var a=this,b=this.len,c=this.chart,h=0,l=b,u=this.isXAxis,m=u?"xData":"yData",w=this.min,x={},A=Math.min(c.plotWidth,c.plotHeight),C=Number.MAX_VALUE,D=-Number.MAX_VALUE,E=this.max-w,z=b/E,F=[];q(this.series,function(b){var g=b.options;!b.bubblePadding|| +!b.visible&&c.options.chart.ignoreHiddenSeries||(a.allowZoomOutside=!0,F.push(b),u&&(q(["minSize","maxSize"],function(a){var b=g[a],d=/%$/.test(b),b=f(b);x[a]=d?A*b/100:b}),b.minPxSize=x.minSize,b.maxPxSize=Math.max(x.maxSize,x.minSize),b=b.zData,b.length&&(C=d(g.zMin,Math.min(C,Math.max(t(b),!1===g.displayNegative?g.zThreshold:-Number.MAX_VALUE))),D=d(g.zMax,Math.max(D,r(b))))))});q(F,function(b){var d=b[m],c=d.length,f;u&&b.getRadii(C,D,b.minPxSize,b.maxPxSize);if(0f&&(f+=360),a.clientX=f):a.clientX=a.plotX};m.spline&&q(m.spline.prototype,"getPointSpline",function(a,b,f,h){var d,c,e,k,p,g,n;this.chart.polar?(d=f.plotX, +c=f.plotY,a=b[h-1],e=b[h+1],this.connectEnds&&(a||(a=b[b.length-2]),e||(e=b[1])),a&&e&&(k=a.plotX,p=a.plotY,b=e.plotX,g=e.plotY,k=(1.5*d+k)/2.5,p=(1.5*c+p)/2.5,e=(1.5*d+b)/2.5,n=(1.5*c+g)/2.5,b=Math.sqrt(Math.pow(k-d,2)+Math.pow(p-c,2)),g=Math.sqrt(Math.pow(e-d,2)+Math.pow(n-c,2)),k=Math.atan2(p-c,k-d),p=Math.atan2(n-c,e-d),n=Math.PI/2+(k+p)/2,Math.abs(k-n)>Math.PI/2&&(n-=Math.PI),k=d+Math.cos(n)*b,p=c+Math.sin(n)*b,e=d+Math.cos(Math.PI+n)*g,n=c+Math.sin(Math.PI+n)*g,f.rightContX=e,f.rightContY=n), +h?(f=["C",a.rightContX||a.plotX,a.rightContY||a.plotY,k||d,p||c,d,c],a.rightContX=a.rightContY=null):f=["M",d,c]):f=a.call(this,b,f,h);return f});q(e,"translate",function(a){var b=this.chart;a.call(this);if(b.polar&&(this.kdByAngle=b.tooltip&&b.tooltip.shared,!this.preventPostTranslate))for(a=this.points,b=a.length;b--;)this.toXY(a[b])});q(e,"getGraphPath",function(a,b){var d=this,e,m;if(this.chart.polar){b=b||this.points;for(e=0;eb.center[1]}),q(m,"alignDataLabel",function(a,b,f,h,m,c){this.chart.polar?(a=b.rectPlotX/Math.PI*180,null===h.align&&(h.align=20a?"left":200a?"right":"center"),null===h.verticalAlign&&(h.verticalAlign=45>a||315a?"top":"middle"),e.alignDataLabel.call(this,b,f,h,m,c)):a.call(this, +b,f,h,m,c)}));q(b,"getCoordinates",function(a,b){var d=this.chart,e={xAxis:[],yAxis:[]};d.polar?t(d.axes,function(a){var c=a.isXAxis,f=a.center,h=b.chartX-f[0]-d.plotLeft,f=b.chartY-f[1]-d.plotTop;e[c?"xAxis":"yAxis"].push({axis:a,value:a.translate(c?Math.PI-Math.atan2(h,f):Math.sqrt(Math.pow(h,2)+Math.pow(f,2)),!0)})}):e=a.call(this,b);return e})})(x)}); diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/highstock.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/highstock.js new file mode 100644 index 0000000..34a3f91 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/highstock.js @@ -0,0 +1,496 @@ +/* + Highstock JS v5.0.3 (2016-11-18) + + (c) 2009-2016 Torstein Honsi + + License: www.highcharts.com/license +*/ +(function(N,a){"object"===typeof module&&module.exports?module.exports=N.document?a(N):a:N.Highcharts=a(N)})("undefined"!==typeof window?window:this,function(N){N=function(){var a=window,D=a.document,B=a.navigator&&a.navigator.userAgent||"",G=D&&D.createElementNS&&!!D.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,H=/(edge|msie|trident)/i.test(B)&&!window.opera,p=!G,l=/Firefox/.test(B),r=l&&4>parseInt(B.split("Firefox/")[1],10);return a.Highcharts?a.Highcharts.error(16,!0):{product:"Highstock", +version:"5.0.3",deg2rad:2*Math.PI/360,doc:D,hasBidiBug:r,hasTouch:D&&void 0!==D.documentElement.ontouchstart,isMS:H,isWebKit:/AppleWebKit/.test(B),isFirefox:l,isTouchDevice:/(Mobile|Android|Windows Phone)/.test(B),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:G,vml:p,win:a,charts:[],marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){}}}();(function(a){var D=[],B=a.charts,G=a.doc,H=a.win;a.error=function(a,l){a="Highcharts error #"+ +a+": www.highcharts.com/errors/"+a;if(l)throw Error(a);H.console&&console.log(a)};a.Fx=function(a,l,r){this.options=l;this.elem=a;this.prop=r};a.Fx.prototype={dSetter:function(){var a=this.paths[0],l=this.paths[1],r=[],w=this.now,t=a.length,k;if(1===w)r=this.toD;else if(t===l.length&&1>w)for(;t--;)k=parseFloat(a[t]),r[t]=isNaN(k)?a[t]:w*parseFloat(l[t]-k)+k;else r=l;this.elem.attr("d",r)},update:function(){var a=this.elem,l=this.prop,r=this.now,w=this.options.step;if(this[l+"Setter"])this[l+"Setter"](); +else a.attr?a.element&&a.attr(l,r):a.style[l]=r+this.unit;w&&w.call(a,r,this)},run:function(a,l,r){var p=this,t=function(a){return t.stopped?!1:p.step(a)},k;this.startTime=+new Date;this.start=a;this.end=l;this.unit=r;this.now=this.start;this.pos=0;t.elem=this.elem;t()&&1===D.push(t)&&(t.timerId=setInterval(function(){for(k=0;k=k+this.startTime){this.now=this.end;this.pos=1;this.update();a=m[this.prop]=!0;for(e in m)!0!==m[e]&&(a=!1);a&&t&&t.call(p);p=!1}else this.pos=w.easing((l-this.startTime)/k),this.now=this.start+(this.end-this.start)*this.pos,this.update(),p=!0;return p},initPath:function(p,l,r){function w(a){for(b=a.length;b--;)"M"!==a[b]&&"L"!==a[b]||a.splice(b+1,0,a[b+1],a[b+2],a[b+1],a[b+2])}function t(a,c){for(;a.lengthm?"AM":"PM",P:12>m?"am":"pm",S:q(t.getSeconds()),L:q(Math.round(l%1E3),3)},a.dateFormats);for(k in w)for(;-1!==p.indexOf("%"+k);)p= +p.replace("%"+k,"function"===typeof w[k]?w[k](l):w[k]);return r?p.substr(0,1).toUpperCase()+p.substr(1):p};a.formatSingle=function(p,l){var r=/\.([0-9])/,w=a.defaultOptions.lang;/f$/.test(p)?(r=(r=p.match(r))?r[1]:-1,null!==l&&(l=a.numberFormat(l,r,w.decimalPoint,-1=r&&(l=[1/r])));for(w=0;w=p||!t&&k<=(l[w]+(l[w+1]||l[w]))/ +2);w++);return m*r};a.stableSort=function(a,l){var r=a.length,p,t;for(t=0;tr&&(r=a[l]);return r};a.destroyObjectProperties=function(a,l){for(var r in a)a[r]&&a[r]!==l&&a[r].destroy&&a[r].destroy(),delete a[r]};a.discardElement=function(p){var l= +a.garbageBin;l||(l=a.createElement("div"));p&&l.appendChild(p);l.innerHTML=""};a.correctFloat=function(a,l){return parseFloat(a.toPrecision(l||14))};a.setAnimation=function(p,l){l.renderer.globalAnimation=a.pick(p,l.options.chart.animation,!0)};a.animObject=function(p){return a.isObject(p)?a.merge(p):{duration:p?500:0}};a.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5};a.numberFormat=function(p,l,r,w){p=+p||0;l=+l;var t=a.defaultOptions.lang, +k=(p.toString().split(".")[1]||"").length,m,e,g=Math.abs(p);-1===l?l=Math.min(k,20):a.isNumber(l)||(l=2);m=String(a.pInt(g.toFixed(l)));e=3p?"-":"")+(e?m.substr(0,e)+w:"");p+=m.substr(e).replace(/(\d{3})(?=\d)/g,"$1"+w);l&&(w=Math.abs(g-m+Math.pow(10,-Math.max(l,k)-1)),p+=r+w.toFixed(l).slice(2));return p};Math.easeInOutSine=function(a){return-.5*(Math.cos(Math.PI*a)-1)};a.getStyle=function(p,l){return"width"===l?Math.min(p.offsetWidth, +p.scrollWidth)-a.getStyle(p,"padding-left")-a.getStyle(p,"padding-right"):"height"===l?Math.min(p.offsetHeight,p.scrollHeight)-a.getStyle(p,"padding-top")-a.getStyle(p,"padding-bottom"):(p=H.getComputedStyle(p,void 0))&&a.pInt(p.getPropertyValue(l))};a.inArray=function(a,l){return l.indexOf?l.indexOf(a):[].indexOf.call(l,a)};a.grep=function(a,l){return[].filter.call(a,l)};a.map=function(a,l){for(var r=[],p=0,t=a.length;pl;l++)w[l]+=p(255*a),0>w[l]&&(w[l]=0),255z.width)z={width:0,height:0}}else z=this.htmlGetBBox();b.isSVG&&(a=z.width, +b=z.height,c&&L&&"11px"===L.fontSize&&"16.9"===b.toPrecision(3)&&(z.height=b=14),v&&(z.width=Math.abs(b*Math.sin(d))+Math.abs(a*Math.cos(d)),z.height=Math.abs(b*Math.cos(d))+Math.abs(a*Math.sin(d))));if(g&&0]*>/g,"")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,this.textStr=a,this.added&&this.renderer.buildText(this))},fillSetter:function(a,c,v){"string"===typeof a?v.setAttribute(c, +a):a&&this.colorGradient(a,c,v)},visibilitySetter:function(a,c,v){"inherit"===a?v.removeAttribute(c):v.setAttribute(c,a)},zIndexSetter:function(a,c){var v=this.renderer,z=this.parentGroup,b=(z||v).element||v.box,d,n=this.element,f;d=this.added;var e;k(a)&&(n.zIndex=a,a=+a,this[c]===a&&(d=!1),this[c]=a);if(d){(a=this.zIndex)&&z&&(z.handleZ=!0);c=b.childNodes;for(e=0;ea||!k(a)&&k(d)||0>a&&!k(d)&&b!==v.box)&&(b.insertBefore(n,z),f=!0);f||b.appendChild(n)}return f}, +_defaultSetter:function(a,c,v){v.setAttribute(c,a)}};D.prototype.yGetter=D.prototype.xGetter;D.prototype.translateXSetter=D.prototype.translateYSetter=D.prototype.rotationSetter=D.prototype.verticalAlignSetter=D.prototype.scaleXSetter=D.prototype.scaleYSetter=function(a,c){this[c]=a;this.doTransform=!0};D.prototype["stroke-widthSetter"]=D.prototype.strokeSetter=function(a,c,v){this[c]=a;this.stroke&&this["stroke-width"]?(D.prototype.fillSetter.call(this,this.stroke,"stroke",v),v.setAttribute("stroke-width", +this["stroke-width"]),this.hasStroke=!0):"stroke-width"===c&&0===a&&this.hasStroke&&(v.removeAttribute("stroke"),this.hasStroke=!1)};B=a.SVGRenderer=function(){this.init.apply(this,arguments)};B.prototype={Element:D,SVG_NS:K,init:function(a,c,v,b,d,n){var z;b=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"}).css(this.getStyle(b));z=b.element;a.appendChild(z);-1===a.innerHTML.indexOf("xmlns")&&p(z,"xmlns",this.SVG_NS);this.isSVG=!0;this.box=z;this.boxWrapper=b;this.alignedObjects= +[];this.url=(E||A)&&g.getElementsByTagName("base").length?R.location.href.replace(/#.*?$/,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(g.createTextNode("Created with Highstock 5.0.3"));this.defs=this.createElement("defs").add();this.allowHTML=n;this.forExport=d;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(c,v,!1);var f;E&&a.getBoundingClientRect&&(c=function(){w(a,{left:0,top:0});f=a.getBoundingClientRect(); +w(a,{left:Math.ceil(f.left)-f.left+"px",top:Math.ceil(f.top)-f.top+"px"})},c(),this.unSubPixelFix=G(R,"resize",c))},getStyle:function(a){return this.style=C({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},a)},setStyle:function(a){this.boxWrapper.css(this.getStyle(a))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();e(this.gradients||{});this.gradients= +null;a&&(this.defs=a.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(a){var c=new this.Element;c.init(this,a);return c},draw:J,getRadialAttr:function(a,c){return{cx:a[0]-a[2]/2+c.cx*a[2],cy:a[1]-a[2]/2+c.cy*a[2],r:c.r*a[2]}},buildText:function(a){for(var c=a.element,z=this,b=z.forExport,n=y(a.textStr,"").toString(),f=-1!==n.indexOf("\x3c"),e=c.childNodes,q,F,x,A,I=p(c,"x"),m=a.styles,k=a.textWidth,C=m&&m.lineHeight,M=m&&m.textOutline,J=m&& +"ellipsis"===m.textOverflow,E=e.length,O=k&&!a.added&&this.box,t=function(a){var v;v=/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize:m&&m.fontSize||z.style.fontSize||12;return C?u(C):z.fontMetrics(v,a.getAttribute("style")?a:c).h};E--;)c.removeChild(e[E]);f||M||J||k||-1!==n.indexOf(" ")?(q=/<.*class="([^"]+)".*>/,F=/<.*style="([^"]+)".*>/,x=/<.*href="(http[^"]+)".*>/,O&&O.appendChild(c),n=f?n.replace(/<(b|strong)>/g,'\x3cspan style\x3d"font-weight:bold"\x3e').replace(/<(i|em)>/g,'\x3cspan style\x3d"font-style:italic"\x3e').replace(//g,"\x3c/span\x3e").split(//g):[n],n=d(n,function(a){return""!==a}),h(n,function(d,n){var f,e=0;d=d.replace(/^\s+|\s+$/g,"").replace(//g,"\x3c/span\x3e|||");f=d.split("|||");h(f,function(d){if(""!==d||1===f.length){var u={},y=g.createElementNS(z.SVG_NS,"tspan"),L,h;q.test(d)&&(L=d.match(q)[1],p(y,"class",L));F.test(d)&&(h=d.match(F)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),p(y,"style",h));x.test(d)&&!b&&(p(y, +"onclick",'location.href\x3d"'+d.match(x)[1]+'"'),w(y,{cursor:"pointer"}));d=(d.replace(/<(.|\n)*?>/g,"")||" ").replace(/</g,"\x3c").replace(/>/g,"\x3e");if(" "!==d){y.appendChild(g.createTextNode(d));e?u.dx=0:n&&null!==I&&(u.x=I);p(y,u);c.appendChild(y);!e&&n&&(!v&&b&&w(y,{display:"block"}),p(y,"dy",t(y)));if(k){u=d.replace(/([^\^])-/g,"$1- ").split(" ");L="nowrap"===m.whiteSpace;for(var C=1k,void 0===A&&(A=M),J&&A?(Q/=2,""===l||!M&&.5>Q?u=[]:(l=d.substring(0,l.length+(M?-1:1)*Math.ceil(Q)),u=[l+(3k&&(k=P)),u.length&&y.appendChild(g.createTextNode(u.join(" ").replace(/- /g, +"-")));a.rotation=R}e++}}})}),A&&a.attr("title",a.textStr),O&&O.removeChild(c),M&&a.applyTextOutline&&a.applyTextOutline(M)):c.appendChild(g.createTextNode(n.replace(/</g,"\x3c").replace(/>/g,"\x3e")))},getContrast:function(a){a=r(a).rgba;return 510v?d>c+f&&de?d>c+f&&db&&e>a+f&&ed&&e>a+f&&ea?a+3:Math.round(1.2*a);return{h:c,b:Math.round(.8*c),f:a}},rotCorr:function(a, +c,v){var b=a;c&&v&&(b=Math.max(b*Math.cos(c*m),4));return{x:-a/3*Math.sin(c*m),y:b}},label:function(a,c,v,b,d,n,f,e,K){var q=this,u=q.g("button"!==K&&"label"),y=u.text=q.text("",0,0,f).attr({zIndex:1}),g,F,z=0,A=3,L=0,m,M,J,E,O,t={},l,R,r=/^url\((.*?)\)$/.test(b),p=r,P,w,Q,S;K&&u.addClass("highcharts-"+K);p=r;P=function(){return(l||0)%2/2};w=function(){var a=y.element.style,c={};F=(void 0===m||void 0===M||O)&&k(y.textStr)&&y.getBBox();u.width=(m||F.width||0)+2*A+L;u.height=(M||F.height||0)+2*A;R= +A+q.fontMetrics(a&&a.fontSize,y).b;p&&(g||(u.box=g=q.symbols[b]||r?q.symbol(b):q.rect(),g.addClass(("button"===K?"":"highcharts-label-box")+(K?" highcharts-"+K+"-box":"")),g.add(u),a=P(),c.x=a,c.y=(e?-R:0)+a),c.width=Math.round(u.width),c.height=Math.round(u.height),g.attr(C(c,t)),t={})};Q=function(){var a=L+A,c;c=e?0:R;k(m)&&F&&("center"===O||"right"===O)&&(a+={center:.5,right:1}[O]*(m-F.width));if(a!==y.x||c!==y.y)y.attr("x",a),void 0!==c&&y.attr("y",c);y.x=a;y.y=c};S=function(a,c){g?g.attr(a,c): +t[a]=c};u.onAdd=function(){y.add(u);u.attr({text:a||0===a?a:"",x:c,y:v});g&&k(d)&&u.attr({anchorX:d,anchorY:n})};u.widthSetter=function(a){m=a};u.heightSetter=function(a){M=a};u["text-alignSetter"]=function(a){O=a};u.paddingSetter=function(a){k(a)&&a!==A&&(A=u.padding=a,Q())};u.paddingLeftSetter=function(a){k(a)&&a!==L&&(L=a,Q())};u.alignSetter=function(a){a={left:0,center:.5,right:1}[a];a!==z&&(z=a,F&&u.attr({x:J}))};u.textSetter=function(a){void 0!==a&&y.textSetter(a);w();Q()};u["stroke-widthSetter"]= +function(a,c){a&&(p=!0);l=this["stroke-width"]=a;S(c,a)};u.strokeSetter=u.fillSetter=u.rSetter=function(a,c){"fill"===c&&a&&(p=!0);S(c,a)};u.anchorXSetter=function(a,c){d=a;S(c,Math.round(a)-P()-J)};u.anchorYSetter=function(a,c){n=a;S(c,a-E)};u.xSetter=function(a){u.x=a;z&&(a-=z*((m||F.width)+2*A));J=Math.round(a);u.attr("translateX",J)};u.ySetter=function(a){E=u.y=Math.round(a);u.attr("translateY",E)};var T=u.css;return C(u,{css:function(a){if(a){var c={};a=x(a);h(u.textProps,function(v){void 0!== +a[v]&&(c[v]=a[v],delete a[v])});y.css(c)}return T.call(u,a)},getBBox:function(){return{width:F.width+2*A,height:F.height+2*A,x:F.x-A,y:F.y-A}},shadow:function(a){a&&(w(),g&&g.shadow(a));return u},destroy:function(){I(u.element,"mouseenter");I(u.element,"mouseleave");y&&(y=y.destroy());g&&(g=g.destroy());D.prototype.destroy.call(u);u=q=w=Q=S=null}})}};a.Renderer=B})(N);(function(a){var D=a.attr,B=a.createElement,G=a.css,H=a.defined,p=a.each,l=a.extend,r=a.isFirefox,w=a.isMS,t=a.isWebKit,k=a.pInt,m= +a.SVGRenderer,e=a.win,g=a.wrap;l(a.SVGElement.prototype,{htmlCss:function(a){var e=this.element;if(e=a&&"SPAN"===e.tagName&&a.width)delete a.width,this.textWidth=e,this.updateTransform();a&&"ellipsis"===a.textOverflow&&(a.whiteSpace="nowrap",a.overflow="hidden");this.styles=l(this.styles,a);G(this.element,a);return this},htmlGetBBox:function(){var a=this.element;"text"===a.nodeName&&(a.style.position="absolute");return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var a= +this.renderer,e=this.element,f=this.translateX||0,d=this.translateY||0,b=this.x||0,q=this.y||0,g=this.textAlign||"left",c={left:0,center:.5,right:1}[g],F=this.styles;G(e,{marginLeft:f,marginTop:d});this.shadows&&p(this.shadows,function(a){G(a,{marginLeft:f+1,marginTop:d+1})});this.inverted&&p(e.childNodes,function(c){a.invertChild(c,e)});if("SPAN"===e.tagName){var n=this.rotation,A=k(this.textWidth),x=F&&F.whiteSpace,m=[n,g,e.innerHTML,this.textWidth,this.textAlign].join();m!==this.cTT&&(F=a.fontMetrics(e.style.fontSize).b, +H(n)&&this.setSpanRotation(n,c,F),G(e,{width:"",whiteSpace:x||"nowrap"}),e.offsetWidth>A&&/[ \-]/.test(e.textContent||e.innerText)&&G(e,{width:A+"px",display:"block",whiteSpace:x||"normal"}),this.getSpanCorrection(e.offsetWidth,F,c,n,g));G(e,{left:b+(this.xCorr||0)+"px",top:q+(this.yCorr||0)+"px"});t&&(F=e.offsetHeight);this.cTT=m}}else this.alignOnAdd=!0},setSpanRotation:function(a,g,f){var d={},b=w?"-ms-transform":t?"-webkit-transform":r?"MozTransform":e.opera?"-o-transform":"";d[b]=d.transform= +"rotate("+a+"deg)";d[b+(r?"Origin":"-origin")]=d.transformOrigin=100*g+"% "+f+"px";G(this.element,d)},getSpanCorrection:function(a,e,f){this.xCorr=-a*f;this.yCorr=-e}});l(m.prototype,{html:function(a,e,f){var d=this.createElement("span"),b=d.element,q=d.renderer,h=q.isSVG,c=function(a,c){p(["opacity","visibility"],function(b){g(a,b+"Setter",function(a,b,d,n){a.call(this,b,d,n);c[d]=b})})};d.textSetter=function(a){a!==b.innerHTML&&delete this.bBox;b.innerHTML=this.textStr=a;d.htmlUpdateTransform()}; +h&&c(d,d.element.style);d.xSetter=d.ySetter=d.alignSetter=d.rotationSetter=function(a,c){"align"===c&&(c="textAlign");d[c]=a;d.htmlUpdateTransform()};d.attr({text:a,x:Math.round(e),y:Math.round(f)}).css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize,position:"absolute"});b.style.whiteSpace="nowrap";d.css=d.htmlCss;h&&(d.add=function(a){var n,f=q.box.parentNode,e=[];if(this.parentGroup=a){if(n=a.div,!n){for(;a;)e.push(a),a=a.parentGroup;p(e.reverse(),function(a){var b,d=D(a.element, +"class");d&&(d={className:d});n=a.div=a.div||B("div",d,{position:"absolute",left:(a.translateX||0)+"px",top:(a.translateY||0)+"px",display:a.display,opacity:a.opacity,pointerEvents:a.styles&&a.styles.pointerEvents},n||f);b=n.style;l(a,{translateXSetter:function(c,d){b.left=c+"px";a[d]=c;a.doTransform=!0},translateYSetter:function(c,d){b.top=c+"px";a[d]=c;a.doTransform=!0}});c(a,b)})}}else n=f;n.appendChild(b);d.added=!0;d.alignOnAdd&&d.htmlUpdateTransform();return d});return d}})})(N);(function(a){var D, +B,G=a.createElement,H=a.css,p=a.defined,l=a.deg2rad,r=a.discardElement,w=a.doc,t=a.each,k=a.erase,m=a.extend;D=a.extendClass;var e=a.isArray,g=a.isNumber,h=a.isObject,C=a.merge;B=a.noop;var f=a.pick,d=a.pInt,b=a.SVGElement,q=a.SVGRenderer,E=a.win;a.svg||(B={docMode8:w&&8===w.documentMode,init:function(a,b){var c=["\x3c",b,' filled\x3d"f" stroked\x3d"f"'],d=["position: ","absolute",";"],f="div"===b;("shape"===b||f)&&d.push("left:0;top:0;width:1px;height:1px;");d.push("visibility: ",f?"hidden":"visible"); +c.push(' style\x3d"',d.join(""),'"/\x3e');b&&(c=f||"span"===b||"img"===b?c.join(""):a.prepVML(c),this.element=G(c));this.renderer=a},add:function(a){var c=this.renderer,b=this.element,d=c.box,f=a&&a.inverted,d=a?a.element||a:d;a&&(this.parentGroup=a);f&&c.invertChild(b,d);d.appendChild(b);this.added=!0;this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform();if(this.onAdd)this.onAdd();this.className&&this.attr("class",this.className);return this},updateTransform:b.prototype.htmlUpdateTransform, +setSpanRotation:function(){var a=this.rotation,b=Math.cos(a*l),d=Math.sin(a*l);H(this.element,{filter:a?["progid:DXImageTransform.Microsoft.Matrix(M11\x3d",b,", M12\x3d",-d,", M21\x3d",d,", M22\x3d",b,", sizingMethod\x3d'auto expand')"].join(""):"none"})},getSpanCorrection:function(a,b,d,e,q){var c=e?Math.cos(e*l):1,n=e?Math.sin(e*l):0,u=f(this.elemHeight,this.element.offsetHeight),g;this.xCorr=0>c&&-a;this.yCorr=0>n&&-u;g=0>c*n;this.xCorr+=n*b*(g?1-d:d);this.yCorr-=c*b*(e?g?d:1-d:1);q&&"left"!== +q&&(this.xCorr-=a*d*(0>c?-1:1),e&&(this.yCorr-=u*d*(0>n?-1:1)),H(this.element,{textAlign:q}))},pathToVML:function(a){for(var c=a.length,b=[];c--;)g(a[c])?b[c]=Math.round(10*a[c])-5:"Z"===a[c]?b[c]="x":(b[c]=a[c],!a.isArc||"wa"!==a[c]&&"at"!==a[c]||(b[c+5]===b[c+7]&&(b[c+7]+=a[c+7]>a[c+5]?1:-1),b[c+6]===b[c+8]&&(b[c+8]+=a[c+8]>a[c+6]?1:-1)));return b.join(" ")||"x"},clip:function(a){var c=this,b;a?(b=a.members,k(b,c),b.push(c),c.destroyClip=function(){k(b,c)},a=a.getCSS(c)):(c.destroyClip&&c.destroyClip(), +a={clip:c.docMode8?"inherit":"rect(auto)"});return c.css(a)},css:b.prototype.htmlCss,safeRemoveChild:function(a){a.parentNode&&r(a)},destroy:function(){this.destroyClip&&this.destroyClip();return b.prototype.destroy.apply(this)},on:function(a,b){this.element["on"+a]=function(){var a=E.event;a.target=a.srcElement;b(a)};return this},cutOffPath:function(a,b){var c;a=a.split(/[ ,]/);c=a.length;if(9===c||11===c)a[c-4]=a[c-2]=d(a[c-2])-10*b;return a.join(" ")},shadow:function(a,b,e){var c=[],n,q=this.element, +g=this.renderer,u,I=q.style,F,v=q.path,K,h,m,z;v&&"string"!==typeof v.value&&(v="x");h=v;if(a){m=f(a.width,3);z=(a.opacity||.15)/m;for(n=1;3>=n;n++)K=2*m+1-2*n,e&&(h=this.cutOffPath(v.value,K+.5)),F=['\x3cshape isShadow\x3d"true" strokeweight\x3d"',K,'" filled\x3d"false" path\x3d"',h,'" coordsize\x3d"10 10" style\x3d"',q.style.cssText,'" /\x3e'],u=G(g.prepVML(F),null,{left:d(I.left)+f(a.offsetX,1),top:d(I.top)+f(a.offsetY,1)}),e&&(u.cutOff=K+1),F=['\x3cstroke color\x3d"',a.color||"#000000",'" opacity\x3d"', +z*n,'"/\x3e'],G(g.prepVML(F),null,null,u),b?b.element.appendChild(u):q.parentNode.insertBefore(u,q),c.push(u);this.shadows=c}return this},updateShadows:B,setAttr:function(a,b){this.docMode8?this.element[a]=b:this.element.setAttribute(a,b)},classSetter:function(a){(this.added?this.element:this).className=a},dashstyleSetter:function(a,b,d){(d.getElementsByTagName("stroke")[0]||G(this.renderer.prepVML(["\x3cstroke/\x3e"]),null,null,d))[b]=a||"solid";this[b]=a},dSetter:function(a,b,d){var c=this.shadows; +a=a||[];this.d=a.join&&a.join(" ");d.path=a=this.pathToVML(a);if(c)for(d=c.length;d--;)c[d].path=c[d].cutOff?this.cutOffPath(a,c[d].cutOff):a;this.setAttr(b,a)},fillSetter:function(a,b,d){var c=d.nodeName;"SPAN"===c?d.style.color=a:"IMG"!==c&&(d.filled="none"!==a,this.setAttr("fillcolor",this.renderer.color(a,d,b,this)))},"fill-opacitySetter":function(a,b,d){G(this.renderer.prepVML(["\x3c",b.split("-")[0],' opacity\x3d"',a,'"/\x3e']),null,null,d)},opacitySetter:B,rotationSetter:function(a,b,d){d= +d.style;this[b]=d[b]=a;d.left=-Math.round(Math.sin(a*l)+1)+"px";d.top=Math.round(Math.cos(a*l))+"px"},strokeSetter:function(a,b,d){this.setAttr("strokecolor",this.renderer.color(a,d,b,this))},"stroke-widthSetter":function(a,b,d){d.stroked=!!a;this[b]=a;g(a)&&(a+="px");this.setAttr("strokeweight",a)},titleSetter:function(a,b){this.setAttr(b,a)},visibilitySetter:function(a,b,d){"inherit"===a&&(a="visible");this.shadows&&t(this.shadows,function(c){c.style[b]=a});"DIV"===d.nodeName&&(a="hidden"===a?"-999em": +0,this.docMode8||(d.style[b]=a?"visible":"hidden"),b="top");d.style[b]=a},xSetter:function(a,b,d){this[b]=a;"x"===b?b="left":"y"===b&&(b="top");this.updateClipping?(this[b]=a,this.updateClipping()):d.style[b]=a},zIndexSetter:function(a,b,d){d.style[b]=a}},B["stroke-opacitySetter"]=B["fill-opacitySetter"],a.VMLElement=B=D(b,B),B.prototype.ySetter=B.prototype.widthSetter=B.prototype.heightSetter=B.prototype.xSetter,B={Element:B,isIE8:-1l[0]&&c.push([1,l[1]]);t(c,function(c,b){q.test(c[1])?(n=a.color(c[1]),v=n.get("rgb"),K=n.get("a")):(v=c[1],K=1);r.push(100*c[0]+"% "+v);b?(m=K,k=v):(z=K,E=v)});if("fill"===d)if("gradient"===g)d=A.x1||A[0]||0,c=A.y1||A[1]||0,F=A.x2||A[2]||0,A=A.y2||A[3]||0,C='angle\x3d"'+(90-180*Math.atan((A-c)/(F-d))/Math.PI)+'"',p();else{var h=A.r,w=2*h,B=2*h,D=A.cx,H=A.cy,V=b.radialReference,U,h=function(){V&&(U=f.getBBox(),D+=(V[0]- +U.x)/U.width-.5,H+=(V[1]-U.y)/U.height-.5,w*=V[2]/U.width,B*=V[2]/U.height);C='src\x3d"'+a.getOptions().global.VMLRadialGradientURL+'" size\x3d"'+w+","+B+'" origin\x3d"0.5,0.5" position\x3d"'+D+","+H+'" color2\x3d"'+E+'" ';p()};f.added?h():f.onAdd=h;h=k}else h=v}else q.test(c)&&"IMG"!==b.tagName?(n=a.color(c),f[d+"-opacitySetter"](n.get("a"),d,b),h=n.get("rgb")):(h=b.getElementsByTagName(d),h.length&&(h[0].opacity=1,h[0].type="solid"),h=c);return h},prepVML:function(a){var c=this.isIE8;a=a.join(""); +c?(a=a.replace("/\x3e",' xmlns\x3d"urn:schemas-microsoft-com:vml" /\x3e'),a=-1===a.indexOf('style\x3d"')?a.replace("/\x3e",' style\x3d"display:inline-block;behavior:url(#default#VML);" /\x3e'):a.replace('style\x3d"','style\x3d"display:inline-block;behavior:url(#default#VML);')):a=a.replace("\x3c","\x3chcv:");return a},text:q.prototype.html,path:function(a){var c={coordsize:"10 10"};e(a)?c.d=a:h(a)&&m(c,a);return this.createElement("shape").attr(c)},circle:function(a,b,d){var c=this.symbol("circle"); +h(a)&&(d=a.r,b=a.y,a=a.x);c.isCircle=!0;c.r=d;return c.attr({x:a,y:b})},g:function(a){var c;a&&(c={className:"highcharts-"+a,"class":"highcharts-"+a});return this.createElement("div").attr(c)},image:function(a,b,d,f,e){var c=this.createElement("img").attr({src:a});1f&&m-d*bg&&(F=Math.round((e-m)/Math.cos(f*w)));else if(e=m+(1-d)*b,m-d*bg&&(E=g-a.x+E*d,c=-1),E=Math.min(q, +E),EE||k.autoRotation&&(C.styles||{}).width)F=E;F&&(n.width=F,(k.options.labels.style||{}).textOverflow||(n.textOverflow="ellipsis"),C.css(n))},getPosition:function(a,k,m,e){var g=this.axis,h=g.chart,l=e&&h.oldChartHeight||h.chartHeight;return{x:a?g.translate(k+m,null,null,e)+g.transB:g.left+g.offset+(g.opposite?(e&&h.oldChartWidth||h.chartWidth)-g.right-g.left:0),y:a?l-g.bottom+g.offset-(g.opposite?g.height:0):l-g.translate(k+m,null, +null,e)-g.transB}},getLabelPosition:function(a,k,m,e,g,h,l,f){var d=this.axis,b=d.transA,q=d.reversed,E=d.staggerLines,c=d.tickRotCorr||{x:0,y:0},F=g.y;B(F)||(F=0===d.side?m.rotation?-8:-m.getBBox().height:2===d.side?c.y+8:Math.cos(m.rotation*w)*(c.y-m.getBBox(!1,0).height/2));a=a+g.x+c.x-(h&&e?h*b*(q?-1:1):0);k=k+F-(h&&!e?h*b*(q?1:-1):0);E&&(m=l/(f||1)%E,d.opposite&&(m=E-m-1),k+=d.labelOffset/E*m);return{x:a,y:Math.round(k)}},getMarkPath:function(a,k,m,e,g,h){return h.crispLine(["M",a,k,"L",a+(g? +0:-m),k+(g?m:0)],e)},render:function(a,k,m){var e=this.axis,g=e.options,h=e.chart.renderer,C=e.horiz,f=this.type,d=this.label,b=this.pos,q=g.labels,E=this.gridLine,c=f?f+"Tick":"tick",F=e.tickSize(c),n=this.mark,A=!n,x=q.step,p={},y=!0,u=e.tickmarkOffset,I=this.getPosition(C,b,u,k),M=I.x,I=I.y,v=C&&M===e.pos+e.len||!C&&I===e.pos?-1:1,K=f?f+"Grid":"grid",O=g[K+"LineWidth"],R=g[K+"LineColor"],z=g[K+"LineDashStyle"],K=l(g[c+"Width"],!f&&e.isXAxis?1:0),c=g[c+"Color"];m=l(m,1);this.isActive=!0;E||(p.stroke= +R,p["stroke-width"]=O,z&&(p.dashstyle=z),f||(p.zIndex=1),k&&(p.opacity=0),this.gridLine=E=h.path().attr(p).addClass("highcharts-"+(f?f+"-":"")+"grid-line").add(e.gridGroup));if(!k&&E&&(b=e.getPlotLinePath(b+u,E.strokeWidth()*v,k,!0)))E[this.isNew?"attr":"animate"]({d:b,opacity:m});F&&(e.opposite&&(F[0]=-F[0]),A&&(this.mark=n=h.path().addClass("highcharts-"+(f?f+"-":"")+"tick").add(e.axisGroup),n.attr({stroke:c,"stroke-width":K})),n[A?"attr":"animate"]({d:this.getMarkPath(M,I,F[0],n.strokeWidth()* +v,C,h),opacity:m}));d&&H(M)&&(d.xy=I=this.getLabelPosition(M,I,d,C,q,u,a,x),this.isFirst&&!this.isLast&&!l(g.showFirstLabel,1)||this.isLast&&!this.isFirst&&!l(g.showLastLabel,1)?y=!1:!C||e.isRadial||q.step||q.rotation||k||0===m||this.handleOverflow(I),x&&a%x&&(y=!1),y&&H(I.y)?(I.opacity=m,d[this.isNew?"attr":"animate"](I)):(r(d),d.attr("y",-9999)),this.isNew=!1)},destroy:function(){G(this,this.axis)}}})(N);(function(a){var D=a.addEvent,B=a.animObject,G=a.arrayMax,H=a.arrayMin,p=a.AxisPlotLineOrBandExtension, +l=a.color,r=a.correctFloat,w=a.defaultOptions,t=a.defined,k=a.deg2rad,m=a.destroyObjectProperties,e=a.each,g=a.error,h=a.extend,C=a.fireEvent,f=a.format,d=a.getMagnitude,b=a.grep,q=a.inArray,E=a.isArray,c=a.isNumber,F=a.isString,n=a.merge,A=a.normalizeTickInterval,x=a.pick,J=a.PlotLineOrBand,y=a.removeEvent,u=a.splat,I=a.syncTimeout,M=a.Tick;a.Axis=function(){this.init.apply(this,arguments)};a.Axis.prototype={defaultOptions:{dateTimeLabelFormats:{millisecond:"%H:%M:%S.%L",second:"%H:%M:%S",minute:"%H:%M", +hour:"%H:%M",day:"%e. %b",week:"%e. %b",month:"%b '%y",year:"%Y"},endOnTick:!1,labels:{enabled:!0,style:{color:"#666666",cursor:"default",fontSize:"11px"},x:0},minPadding:.01,maxPadding:.01,minorTickLength:2,minorTickPosition:"outside",startOfWeek:1,startOnTick:!1,tickLength:10,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",title:{align:"middle",style:{color:"#666666"}},type:"linear",minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#ccd6eb", +lineWidth:1,gridLineColor:"#e6e6e6",tickColor:"#ccd6eb"},defaultYAxisOptions:{endOnTick:!0,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},maxPadding:.05,minPadding:.05,startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{enabled:!1,formatter:function(){return a.numberFormat(this.total,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"#000000",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},defaultLeftAxisOptions:{labels:{x:-15},title:{rotation:270}},defaultRightAxisOptions:{labels:{x:15}, +title:{rotation:90}},defaultBottomAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},defaultTopAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},init:function(a,c){var b=c.isX;this.chart=a;this.horiz=a.inverted?!b:b;this.isXAxis=b;this.coll=this.coll||(b?"xAxis":"yAxis");this.opposite=c.opposite;this.side=c.side||(this.horiz?this.opposite?0:2:this.opposite?1:3);this.setOptions(c);var d=this.options,v=d.type;this.labelFormatter=d.labels.formatter||this.defaultLabelFormatter; +this.userOptions=c;this.minPixelPadding=0;this.reversed=d.reversed;this.visible=!1!==d.visible;this.zoomEnabled=!1!==d.zoomEnabled;this.hasNames="category"===v||!0===d.categories;this.categories=d.categories||this.hasNames;this.names=this.names||[];this.isLog="logarithmic"===v;this.isDatetimeAxis="datetime"===v;this.isLinked=t(d.linkedTo);this.ticks={};this.labelEdge=[];this.minorTicks={};this.plotLinesAndBands=[];this.alternateBands={};this.len=0;this.minRange=this.userMinRange=d.minRange||d.maxZoom; +this.range=d.range;this.offset=d.offset||0;this.stacks={};this.oldStacks={};this.stacksTouched=0;this.min=this.max=null;this.crosshair=x(d.crosshair,u(a.options.tooltip.crosshairs)[b?0:1],!1);var f;c=this.options.events;-1===q(this,a.axes)&&(b?a.axes.splice(a.xAxis.length,0,this):a.axes.push(this),a[this.coll].push(this));this.series=this.series||[];a.inverted&&b&&void 0===this.reversed&&(this.reversed=!0);this.removePlotLine=this.removePlotBand=this.removePlotBandOrLine;for(f in c)D(this,f,c[f]); +this.isLog&&(this.val2lin=this.log2lin,this.lin2val=this.lin2log)},setOptions:function(a){this.options=n(this.defaultOptions,"yAxis"===this.coll&&this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],n(w[this.coll],a))},defaultLabelFormatter:function(){var c=this.axis,b=this.value,d=c.categories,e=this.dateTimeLabelFormat,q=w.lang,u=q.numericSymbols,q=q.numericSymbolMagnitude||1E3,n=u&&u.length,g,y=c.options.labels.format, +c=c.isLog?b:c.tickInterval;if(y)g=f(y,this);else if(d)g=b;else if(e)g=a.dateFormat(e,b);else if(n&&1E3<=c)for(;n--&&void 0===g;)d=Math.pow(q,n+1),c>=d&&0===10*b%d&&null!==u[n]&&0!==b&&(g=a.numberFormat(b/d,-1)+u[n]);void 0===g&&(g=1E4<=Math.abs(b)?a.numberFormat(b,-1):a.numberFormat(b,-1,void 0,""));return g},getSeriesExtremes:function(){var a=this,d=a.chart;a.hasVisibleSeries=!1;a.dataMin=a.dataMax=a.threshold=null;a.softThreshold=!a.isXAxis;a.buildStacks&&a.buildStacks();e(a.series,function(v){if(v.visible|| +!d.options.chart.ignoreHiddenSeries){var f=v.options,e=f.threshold,q;a.hasVisibleSeries=!0;a.isLog&&0>=e&&(e=null);if(a.isXAxis)f=v.xData,f.length&&(v=H(f),c(v)||v instanceof Date||(f=b(f,function(a){return c(a)}),v=H(f)),a.dataMin=Math.min(x(a.dataMin,f[0]),v),a.dataMax=Math.max(x(a.dataMax,f[0]),G(f)));else if(v.getExtremes(),q=v.dataMax,v=v.dataMin,t(v)&&t(q)&&(a.dataMin=Math.min(x(a.dataMin,v),v),a.dataMax=Math.max(x(a.dataMax,q),q)),t(e)&&(a.threshold=e),!f.softThreshold||a.isLog)a.softThreshold= +!1}})},translate:function(a,b,d,f,e,q){var v=this.linkedParent||this,u=1,n=0,g=f?v.oldTransA:v.transA;f=f?v.oldMin:v.min;var K=v.minPixelPadding;e=(v.isOrdinal||v.isBroken||v.isLog&&e)&&v.lin2val;g||(g=v.transA);d&&(u*=-1,n=v.len);v.reversed&&(u*=-1,n-=u*(v.sector||v.len));b?(a=(a*u+n-K)/g+f,e&&(a=v.lin2val(a))):(e&&(a=v.val2lin(a)),a=u*(a-f)*g+n+u*K+(c(q)?g*q:0));return a},toPixels:function(a,c){return this.translate(a,!1,!this.horiz,null,!0)+(c?0:this.pos)},toValue:function(a,c){return this.translate(a- +(c?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(a,b,d,f,e){var v=this.chart,q=this.left,u=this.top,n,g,K=d&&v.oldChartHeight||v.chartHeight,y=d&&v.oldChartWidth||v.chartWidth,z;n=this.transB;var h=function(a,c,b){if(ab)f?a=Math.min(Math.max(c,a),b):z=!0;return a};e=x(e,this.translate(a,null,null,d));a=d=Math.round(e+n);n=g=Math.round(K-e-n);c(e)?this.horiz?(n=u,g=K-this.bottom,a=d=h(a,q,q+this.width)):(a=q,d=y-this.right,n=g=h(n,u,u+this.height)):z=!0;return z&&!f?null:v.renderer.crispLine(["M", +a,n,"L",d,g],b||1)},getLinearTickPositions:function(a,b,d){var v,f=r(Math.floor(b/a)*a),e=r(Math.ceil(d/a)*a),q=[];if(b===d&&c(b))return[b];for(b=f;b<=e;){q.push(b);b=r(b+a);if(b===v)break;v=b}return q},getMinorTickPositions:function(){var a=this.options,c=this.tickPositions,b=this.minorTickInterval,d=[],f,e=this.pointRangePadding||0;f=this.min-e;var e=this.max+e,q=e-f;if(q&&q/b=this.minRange,q,u,n,g,y,h;this.isXAxis&&void 0===this.minRange&&!this.isLog&&(t(a.min)||t(a.max)?this.minRange=null:(e(this.series,function(a){g=a.xData;for(u=y=a.xIncrement? +1:g.length-1;0=E?(p=E,m=0):b.dataMax<=E&&(J=E,I=0)),b.min=x(w,p,b.dataMin),b.max=x(B,J,b.dataMax));q&&(!a&&0>=Math.min(b.min, +x(b.dataMin,b.min))&&g(10,1),b.min=r(u(b.min),15),b.max=r(u(b.max),15));b.range&&t(b.max)&&(b.userMin=b.min=w=Math.max(b.min,b.minFromRange()),b.userMax=B=b.max,b.range=null);C(b,"foundExtremes");b.beforePadding&&b.beforePadding();b.adjustForMinRange();!(l||b.axisPointRange||b.usePercentage||h)&&t(b.min)&&t(b.max)&&(u=b.max-b.min)&&(!t(w)&&m&&(b.min-=u*m),!t(B)&&I&&(b.max+=u*I));c(f.floor)?b.min=Math.max(b.min,f.floor):c(f.softMin)&&(b.min=Math.min(b.min,f.softMin));c(f.ceiling)?b.max=Math.min(b.max, +f.ceiling):c(f.softMax)&&(b.max=Math.max(b.max,f.softMax));M&&t(b.dataMin)&&(E=E||0,!t(w)&&b.min=E?b.min=E:!t(B)&&b.max>E&&b.dataMax<=E&&(b.max=E));b.tickInterval=b.min===b.max||void 0===b.min||void 0===b.max?1:h&&!k&&F===b.linkedParent.options.tickPixelInterval?k=b.linkedParent.tickInterval:x(k,this.tickAmount?(b.max-b.min)/Math.max(this.tickAmount-1,1):void 0,l?1:(b.max-b.min)*F/Math.max(b.len,F));y&&!a&&e(b.series,function(a){a.processData(b.min!==b.oldMin||b.max!==b.oldMax)});b.setAxisTranslation(!0); +b.beforeSetTickPositions&&b.beforeSetTickPositions();b.postProcessTickInterval&&(b.tickInterval=b.postProcessTickInterval(b.tickInterval));b.pointRange&&!k&&(b.tickInterval=Math.max(b.pointRange,b.tickInterval));a=x(f.minTickInterval,b.isDatetimeAxis&&b.closestPointRange);!k&&b.tickIntervalb.tickInterval&&1E3b.max)),!!this.tickAmount));this.tickAmount||(b.tickInterval= +b.unsquish());this.setTickPositions()},setTickPositions:function(){var a=this.options,b,c=a.tickPositions,d=a.tickPositioner,f=a.startOnTick,e=a.endOnTick,q;this.tickmarkOffset=this.categories&&"between"===a.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval="auto"===a.minorTickInterval&&this.tickInterval?this.tickInterval/5:a.minorTickInterval;this.tickPositions=b=c&&c.slice();!b&&(b=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,a.units), +this.min,this.max,a.startOfWeek,this.ordinalPositions,this.closestPointRange,!0):this.isLog?this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max),b.length>this.len&&(b=[b[0],b.pop()]),this.tickPositions=b,d&&(d=d.apply(this,[this.min,this.max])))&&(this.tickPositions=b=d);this.isLinked||(this.trimTicks(b,f,e),this.min===this.max&&t(this.min)&&!this.tickAmount&&(q=!0,this.min-=.5,this.max+=.5),this.single=q,c||d||this.adjustTickAmount())}, +trimTicks:function(a,b,c){var d=a[0],f=a[a.length-1],v=this.minPointOffset||0;if(b)this.min=d;else for(;this.min-v>a[0];)a.shift();if(c)this.max=f;else for(;this.max+vb&&(this.finalTickAmt=b,b=5);this.tickAmount=b},adjustTickAmount:function(){var a=this.tickInterval,b=this.tickPositions,c=this.tickAmount,d=this.finalTickAmt,f=b&&b.length;if(fc&&(this.tickInterval*= +2,this.setTickPositions());if(t(d)){for(a=c=b.length;a--;)(3===d&&1===a%2||2>=d&&0=f&&(b=f)),this.displayBtn=void 0!==a||void 0!==b,this.setExtremes(a,b,!1,void 0,{trigger:"zoom"});return!0},setAxisSize:function(){var a=this.chart,b=this.options,c=b.offsetLeft||0,d=this.horiz,f=x(b.width,a.plotWidth-c+(b.offsetRight||0)),e=x(b.height,a.plotHeight),q=x(b.top,a.plotTop),b=x(b.left,a.plotLeft+c),c=/%$/;c.test(e)&&(e=Math.round(parseFloat(e)/ +100*a.plotHeight));c.test(q)&&(q=Math.round(parseFloat(q)/100*a.plotHeight+a.plotTop));this.left=b;this.top=q;this.width=f;this.height=e;this.bottom=a.chartHeight-e-q;this.right=a.chartWidth-f-b;this.len=Math.max(d?f:e,0);this.pos=d?b:q},getExtremes:function(){var a=this.isLog,b=this.lin2log;return{min:a?r(b(this.min)):this.min,max:a?r(b(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var b=this.isLog,c=this.lin2log, +d=b?c(this.min):this.min,b=b?c(this.max):this.max;null===a?a=d:d>a?a=d:ba?"right":195a?"left":"center"},tickSize:function(a){var b=this.options,c=b[a+"Length"],d=x(b[a+"Width"],"tick"===a&&this.isXAxis?1:0);if(d&&c)return"inside"===b[a+"Position"]&&(c=-c),[c,d]},labelMetrics:function(){return this.chart.renderer.fontMetrics(this.options.labels.style&&this.options.labels.style.fontSize, +this.ticks[0]&&this.ticks[0].label)},unsquish:function(){var a=this.options.labels,b=this.horiz,c=this.tickInterval,d=c,f=this.len/(((this.categories?1:0)+this.max-this.min)/c),q,u=a.rotation,n=this.labelMetrics(),g,y=Number.MAX_VALUE,h,I=function(a){a/=f||1;a=1=a)g=I(Math.abs(n.h/Math.sin(k*a))),b=g+Math.abs(a/360),b(c.step||0)&&!c.rotation&&(this.staggerLines||1)*a.plotWidth/d||!b&&(f&&f-a.spacing[3]||.33*a.chartWidth)},renderUnsquish:function(){var a=this.chart,b=a.renderer,c=this.tickPositions,d=this.ticks,f=this.options.labels,q=this.horiz,u=this.getSlotWidth(),g=Math.max(1, +Math.round(u-2*(f.padding||5))),y={},h=this.labelMetrics(),I=f.style&&f.style.textOverflow,A,x=0,m,k;F(f.rotation)||(y.rotation=f.rotation||0);e(c,function(a){(a=d[a])&&a.labelLength>x&&(x=a.labelLength)});this.maxLabelLength=x;if(this.autoRotation)x>g&&x>h.h?y.rotation=this.labelRotation:this.labelRotation=0;else if(u&&(A={width:g+"px"},!I))for(A.textOverflow="clip",m=c.length;!q&&m--;)if(k=c[m],g=d[k].label)g.styles&&"ellipsis"===g.styles.textOverflow?g.css({textOverflow:"clip"}):d[k].labelLength> +u&&g.css({width:u+"px"}),g.getBBox().height>this.len/c.length-(h.h-h.f)&&(g.specCss={textOverflow:"ellipsis"});y.rotation&&(A={width:(x>.5*a.chartHeight?.33*a.chartHeight:a.chartHeight)+"px"},I||(A.textOverflow="ellipsis"));if(this.labelAlign=f.align||this.autoLabelAlign(this.labelRotation))y.align=this.labelAlign;e(c,function(a){var b=(a=d[a])&&a.label;b&&(b.attr(y),A&&b.css(n(A,b.specCss)),delete b.specCss,a.rotation=y.rotation)});this.tickRotCorr=b.rotCorr(h.b,this.labelRotation||0,0!==this.side)}, +hasData:function(){return this.hasVisibleSeries||t(this.min)&&t(this.max)&&!!this.tickPositions},getOffset:function(){var a=this,b=a.chart,c=b.renderer,d=a.options,f=a.tickPositions,q=a.ticks,u=a.horiz,n=a.side,g=b.inverted?[1,0,3,2][n]:n,y,h,I=0,A,m=0,k=d.title,F=d.labels,E=0,l=a.opposite,C=b.axisOffset,b=b.clipOffset,p=[-1,1,1,-1][n],r,J=d.className,w=a.axisParent,B=this.tickSize("tick");y=a.hasData();a.showAxis=h=y||x(d.showEmpty,!0);a.staggerLines=a.horiz&&F.staggerLines;a.axisGroup||(a.gridGroup= +c.g("grid").attr({zIndex:d.gridZIndex||1}).addClass("highcharts-"+this.coll.toLowerCase()+"-grid "+(J||"")).add(w),a.axisGroup=c.g("axis").attr({zIndex:d.zIndex||2}).addClass("highcharts-"+this.coll.toLowerCase()+" "+(J||"")).add(w),a.labelGroup=c.g("axis-labels").attr({zIndex:F.zIndex||7}).addClass("highcharts-"+a.coll.toLowerCase()+"-labels "+(J||"")).add(w));if(y||a.isLinked)e(f,function(b){q[b]?q[b].addLabel():q[b]=new M(a,b)}),a.renderUnsquish(),!1===F.reserveSpace||0!==n&&2!==n&&{1:"left",3:"right"}[n]!== +a.labelAlign&&"center"!==a.labelAlign||e(f,function(a){E=Math.max(q[a].getLabelSize(),E)}),a.staggerLines&&(E*=a.staggerLines,a.labelOffset=E*(a.opposite?-1:1));else for(r in q)q[r].destroy(),delete q[r];k&&k.text&&!1!==k.enabled&&(a.axisTitle||((r=k.textAlign)||(r=(u?{low:"left",middle:"center",high:"right"}:{low:l?"right":"left",middle:"center",high:l?"left":"right"})[k.align]),a.axisTitle=c.text(k.text,0,0,k.useHTML).attr({zIndex:7,rotation:k.rotation||0,align:r}).addClass("highcharts-axis-title").css(k.style).add(a.axisGroup), +a.axisTitle.isNew=!0),h&&(I=a.axisTitle.getBBox()[u?"height":"width"],A=k.offset,m=t(A)?0:x(k.margin,u?5:10)),a.axisTitle[h?"show":"hide"](!0));a.renderLine();a.offset=p*x(d.offset,C[n]);a.tickRotCorr=a.tickRotCorr||{x:0,y:0};c=0===n?-a.labelMetrics().h:2===n?a.tickRotCorr.y:0;m=Math.abs(E)+m;E&&(m=m-c+p*(u?x(F.y,a.tickRotCorr.y+8*p):F.x));a.axisTitleMargin=x(A,m);C[n]=Math.max(C[n],a.axisTitleMargin+I+p*a.offset,m,y&&f.length&&B?B[0]:0);d=d.offset?0:2*Math.floor(a.axisLine.strokeWidth()/2);b[g]= +Math.max(b[g],d)},getLinePath:function(a){var b=this.chart,c=this.opposite,d=this.offset,f=this.horiz,e=this.left+(c?this.width:0)+d,d=b.chartHeight-this.bottom-(c?this.height:0)+d;c&&(a*=-1);return b.renderer.crispLine(["M",f?this.left:e,f?d:this.top,"L",f?b.chartWidth-this.right:e,f?d:b.chartHeight-this.bottom],a)},renderLine:function(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.axisLine.attr({stroke:this.options.lineColor, +"stroke-width":this.options.lineWidth,zIndex:7}))},getTitlePosition:function(){var a=this.horiz,b=this.left,c=this.top,d=this.len,f=this.options.title,e=a?b:c,q=this.opposite,u=this.offset,n=f.x||0,g=f.y||0,y=this.chart.renderer.fontMetrics(f.style&&f.style.fontSize,this.axisTitle).f,d={low:e+(a?0:d),middle:e+d/2,high:e+(a?d:0)}[f.align],b=(a?c+this.height:b)+(a?1:-1)*(q?-1:1)*this.axisTitleMargin+(2===this.side?y:0);return{x:a?d+n:b+(q?this.width:0)+u+n,y:a?b+g-(q?this.height:0)+u:d+g}},render:function(){var a= +this,b=a.chart,d=b.renderer,f=a.options,q=a.isLog,u=a.lin2log,n=a.isLinked,g=a.tickPositions,y=a.axisTitle,h=a.ticks,A=a.minorTicks,x=a.alternateBands,m=f.stackLabels,k=f.alternateGridColor,F=a.tickmarkOffset,E=a.axisLine,l=b.hasRendered&&c(a.oldMin),C=a.showAxis,p=B(d.globalAnimation),r,t;a.labelEdge.length=0;a.overlap=!1;e([h,A,x],function(a){for(var b in a)a[b].isActive=!1});if(a.hasData()||n)a.minorTickInterval&&!a.categories&&e(a.getMinorTickPositions(),function(b){A[b]||(A[b]=new M(a,b,"minor")); +l&&A[b].isNew&&A[b].render(null,!0);A[b].render(null,!1,1)}),g.length&&(e(g,function(b,c){if(!n||b>=a.min&&b<=a.max)h[b]||(h[b]=new M(a,b)),l&&h[b].isNew&&h[b].render(c,!0,.1),h[b].render(c)}),F&&(0===a.min||a.single)&&(h[-1]||(h[-1]=new M(a,-1,null,!0)),h[-1].render(-1))),k&&e(g,function(c,d){t=void 0!==g[d+1]?g[d+1]+F:a.max-F;0===d%2&&c=e.second?0:A*Math.floor(c.getMilliseconds()/A));if(n>=e.second)c[B.hcSetSeconds](n>=e.minute?0:A*Math.floor(c.getSeconds()/ +A));if(n>=e.minute)c[B.hcSetMinutes](n>=e.hour?0:A*Math.floor(c[B.hcGetMinutes]()/A));if(n>=e.hour)c[B.hcSetHours](n>=e.day?0:A*Math.floor(c[B.hcGetHours]()/A));if(n>=e.day)c[B.hcSetDate](n>=e.month?1:A*Math.floor(c[B.hcGetDate]()/A));n>=e.month&&(c[B.hcSetMonth](n>=e.year?0:A*Math.floor(c[B.hcGetMonth]()/A)),g=c[B.hcGetFullYear]());if(n>=e.year)c[B.hcSetFullYear](g-g%A);if(n===e.week)c[B.hcSetDate](c[B.hcGetDate]()-c[B.hcGetDay]()+m(f,1));g=c[B.hcGetFullYear]();f=c[B.hcGetMonth]();var C=c[B.hcGetDate](), +y=c[B.hcGetHours]();if(B.hcTimezoneOffset||B.hcGetTimezoneOffset)x=(!q||!!B.hcGetTimezoneOffset)&&(k-h>4*e.month||t(h)!==t(k)),c=c.getTime(),c=new B(c+t(c));q=c.getTime();for(h=1;qr&&(!t||b<=w)&&void 0!==b&&h.push(b),b>w&&(q=!0),b=d;else r=e(r),w= +e(w),a=k[t?"minorTickInterval":"tickInterval"],a=p("auto"===a?null:a,this._minorAutoInterval,k.tickPixelInterval/(t?5:1)*(w-r)/((t?m/this.tickPositions.length:m)||1)),a=H(a,null,B(a)),h=G(this.getLinearTickPositions(a,r,w),g),t||(this._minorAutoInterval=a/5);t||(this.tickInterval=a);return h};D.prototype.log2lin=function(a){return Math.log(a)/Math.LN10};D.prototype.lin2log=function(a){return Math.pow(10,a)}})(N);(function(a){var D=a.dateFormat,B=a.each,G=a.extend,H=a.format,p=a.isNumber,l=a.map,r= +a.merge,w=a.pick,t=a.splat,k=a.stop,m=a.syncTimeout,e=a.timeUnits;a.Tooltip=function(){this.init.apply(this,arguments)};a.Tooltip.prototype={init:function(a,e){this.chart=a;this.options=e;this.crosshairs=[];this.now={x:0,y:0};this.isHidden=!0;this.split=e.split&&!a.inverted;this.shared=e.shared||this.split},cleanSplit:function(a){B(this.chart.series,function(e){var g=e&&e.tt;g&&(!g.isActive||a?e.tt=g.destroy():g.isActive=!1)})},getLabel:function(){var a=this.chart.renderer,e=this.options;this.label|| +(this.split?this.label=a.g("tooltip"):(this.label=a.label("",0,0,e.shape||"callout",null,null,e.useHTML,null,"tooltip").attr({padding:e.padding,r:e.borderRadius}),this.label.attr({fill:e.backgroundColor,"stroke-width":e.borderWidth}).css(e.style).shadow(e.shadow)),this.label.attr({zIndex:8}).add());return this.label},update:function(a){this.destroy();this.init(this.chart,r(!0,this.options,a))},destroy:function(){this.label&&(this.label=this.label.destroy());this.split&&this.tt&&(this.cleanSplit(this.chart, +!0),this.tt=this.tt.destroy());clearTimeout(this.hideTimer);clearTimeout(this.tooltipTimeout)},move:function(a,e,m,f){var d=this,b=d.now,q=!1!==d.options.animation&&!d.isHidden&&(1h-q?h:h-q);else if(v)b[a]=Math.max(g,e+q+f>c?e:e+q);else return!1},x=function(a,c,f,e){var q;ec-d?q=!1:b[a]=ec-f/2?c-f-2:e-f/2;return q},k=function(a){var b=c;c=h;h=b;g=a},y=function(){!1!==A.apply(0,c)?!1!==x.apply(0,h)||g||(k(!0),y()):g?b.x=b.y=0:(k(!0),y())};(f.inverted||1y&&(q=!1);a=(e.series&&e.series.yAxis&&e.series.yAxis.pos)+(e.plotY||0);a-=d.plotTop;f.push({target:e.isHeader?d.plotHeight+c:a,rank:e.isHeader?1:0,size:n.tt.getBBox().height+1,point:e,x:y,tt:A})});this.cleanSplit(); +a.distribute(f,d.plotHeight+c);B(f,function(a){var b=a.point;a.tt.attr({visibility:void 0===a.pos?"hidden":"inherit",x:q||b.isHeader?a.x:b.plotX+d.plotLeft+w(m.distance,16),y:a.pos+d.plotTop,anchorX:b.plotX+d.plotLeft,anchorY:b.isHeader?a.pos+d.plotTop-15:b.plotY+d.plotTop})})},updatePosition:function(a){var e=this.chart,g=this.getLabel(),g=(this.options.positioner||this.getPosition).call(this,g.width,g.height,a);this.move(Math.round(g.x),Math.round(g.y||0),a.plotX+e.plotLeft,a.plotY+e.plotTop)}, +getXDateFormat:function(a,h,m){var f;h=h.dateTimeLabelFormats;var d=m&&m.closestPointRange,b,q={millisecond:15,second:12,minute:9,hour:6,day:3},g,c="millisecond";if(d){g=D("%m-%d %H:%M:%S.%L",a.x);for(b in e){if(d===e.week&&+D("%w",a.x)===m.options.startOfWeek&&"00:00:00.000"===g.substr(6)){b="week";break}if(e[b]>d){b=c;break}if(q[b]&&g.substr(q[b])!=="01-01 00:00:00.000".substr(q[b]))break;"week"!==b&&(c=b)}b&&(f=h[b])}else f=h.day;return f||h.year},tooltipFooterHeaderFormatter:function(a,e){var g= +e?"footer":"header";e=a.series;var f=e.tooltipOptions,d=f.xDateFormat,b=e.xAxis,q=b&&"datetime"===b.options.type&&p(a.key),g=f[g+"Format"];q&&!d&&(d=this.getXDateFormat(a,f,b));q&&d&&(g=g.replace("{point.key}","{point.key:"+d+"}"));return H(g,{point:a,series:e})},bodyFormatter:function(a){return l(a,function(a){var e=a.series.tooltipOptions;return(e.pointFormatter||a.point.tooltipFormatter).call(a.point,e.pointFormat)})}}})(N);(function(a){var D=a.addEvent,B=a.attr,G=a.charts,H=a.color,p=a.css,l= +a.defined,r=a.doc,w=a.each,t=a.extend,k=a.fireEvent,m=a.offset,e=a.pick,g=a.removeEvent,h=a.splat,C=a.Tooltip,f=a.win;a.Pointer=function(a,b){this.init(a,b)};a.Pointer.prototype={init:function(a,b){this.options=b;this.chart=a;this.runChartClick=b.chart.events&&!!b.chart.events.click;this.pinchDown=[];this.lastValidTouch={};C&&b.tooltip.enabled&&(a.tooltip=new C(a,b.tooltip),this.followTouchMove=e(b.tooltip.followTouchMove,!0));this.setDOMEvents()},zoomOption:function(a){var b=this.chart,d=b.options.chart, +f=d.zoomType||"",b=b.inverted;/touch/.test(a.type)&&(f=e(d.pinchType,f));this.zoomX=a=/x/.test(f);this.zoomY=f=/y/.test(f);this.zoomHor=a&&!b||f&&b;this.zoomVert=f&&!b||a&&b;this.hasZoom=a||f},normalize:function(a,b){var d,e;a=a||f.event;a.target||(a.target=a.srcElement);e=a.touches?a.touches.length?a.touches.item(0):a.changedTouches[0]:a;b||(this.chartPosition=b=m(this.chart.container));void 0===e.pageX?(d=Math.max(a.x,a.clientX-b.left),b=a.y):(d=e.pageX-b.left,b=e.pageY-b.top);return t(a,{chartX:Math.round(d), +chartY:Math.round(b)})},getCoordinates:function(a){var b={xAxis:[],yAxis:[]};w(this.chart.axes,function(d){b[d.isXAxis?"xAxis":"yAxis"].push({axis:d,value:d.toValue(a[d.horiz?"chartX":"chartY"])})});return b},runPointActions:function(d){var b=this.chart,f=b.series,g=b.tooltip,c=g?g.shared:!1,h=!0,n=b.hoverPoint,m=b.hoverSeries,x,k,y,u=[],I;if(!c&&!m)for(x=0;xb.series.index?-1:1}));if(c)for(x=u.length;x--;)(u[x].x!==u[0].x||u[x].series.noSharedTooltip)&&u.splice(x,1);if(u[0]&&(u[0]!==this.prevKDPoint||g&&g.isHidden)){if(c&& +!u[0].series.noSharedTooltip){for(x=0;xh+k&&(f=h+k),cm+y&&(c=m+y),this.hasDragged=Math.sqrt(Math.pow(l-f,2)+Math.pow(v-c,2)),10x.max&&(l=x.max-c,v=!0);v?(u-=.8*(u-g[f][0]),J||(M-=.8*(M-g[f][1])),p()):g[f]=[u,M];A||(e[f]=F-E,e[q]=c);e=A?1/n:n;m[q]=c;m[f]=l;k[A?a?"scaleY":"scaleX":"scale"+d]=n;k["translate"+d]=e* +E+(u-e*y)},pinch:function(a){var r=this,t=r.chart,k=r.pinchDown,m=a.touches,e=m.length,g=r.lastValidTouch,h=r.hasZoom,C=r.selectionMarker,f={},d=1===e&&(r.inClass(a.target,"highcharts-tracker")&&t.runTrackerClick||r.runChartClick),b={};1b-6&&n(u||d.chartWidth- +2*x-v-e.x)&&(this.itemX=v,this.itemY+=p+this.lastLineHeight+I,this.lastLineHeight=0);this.maxItemWidth=Math.max(this.maxItemWidth,c);this.lastItemY=p+this.itemY+I;this.lastLineHeight=Math.max(g,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];f?this.itemX+=c:(this.itemY+=p+g+I,this.lastLineHeight=g);this.offsetWidth=u||Math.max((f?this.itemX-v-l:c)+x,this.offsetWidth)},getAllItems:function(){var a=[];l(this.chart.series,function(d){var b=d&&d.options;d&&m(b.showInLegend,p(b.linkedTo)? +!1:void 0,!0)&&(a=a.concat(d.legendItems||("point"===b.legendType?d.data:d)))});return a},adjustMargins:function(a,d){var b=this.chart,e=this.options,f=e.align.charAt(0)+e.verticalAlign.charAt(0)+e.layout.charAt(0);e.floating||l([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(c,g){c.test(f)&&!p(a[g])&&(b[t[g]]=Math.max(b[t[g]],b.legend[(g+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][g]*e[g%2?"x":"y"]+m(e.margin,12)+d[g]))})},render:function(){var a=this,d=a.chart,b=d.renderer, +e=a.group,h,c,m,n,k=a.box,x=a.options,p=a.padding;a.itemX=a.initialItemX;a.itemY=a.initialItemY;a.offsetWidth=0;a.lastItemY=0;e||(a.group=e=b.g("legend").attr({zIndex:7}).add(),a.contentGroup=b.g().attr({zIndex:1}).add(e),a.scrollGroup=b.g().add(a.contentGroup));a.renderTitle();h=a.getAllItems();g(h,function(a,b){return(a.options&&a.options.legendIndex||0)-(b.options&&b.options.legendIndex||0)});x.reversed&&h.reverse();a.allItems=h;a.display=c=!!h.length;a.lastLineHeight=0;l(h,function(b){a.renderItem(b)}); +m=(x.width||a.offsetWidth)+p;n=a.lastItemY+a.lastLineHeight+a.titleHeight;n=a.handleOverflow(n);n+=p;k||(a.box=k=b.rect().addClass("highcharts-legend-box").attr({r:x.borderRadius}).add(e),k.isNew=!0);k.attr({stroke:x.borderColor,"stroke-width":x.borderWidth||0,fill:x.backgroundColor||"none"}).shadow(x.shadow);0b&&!1!==h.enabled?(this.clipHeight=g=Math.max(b-20-this.titleHeight-I,0),this.currentPage=m(this.currentPage,1),this.fullHeight=a,l(v,function(a,b){var c=a._legendItemPos[1];a=Math.round(a.legendItem.getBBox().height);var d=u.length;if(!d||c-u[d-1]>g&&(r||c)!==u[d-1])u.push(r||c),d++;b===v.length-1&&c+a-u[d-1]>g&&u.push(c);c!==r&&(r=c)}),n||(n=d.clipRect= +e.clipRect(0,I,9999,0),d.contentGroup.clip(n)),t(g),y||(this.nav=y=e.g().attr({zIndex:1}).add(this.group),this.up=e.symbol("triangle",0,0,p,p).on("click",function(){d.scroll(-1,k)}).add(y),this.pager=e.text("",15,10).addClass("highcharts-legend-navigation").css(h.style).add(y),this.down=e.symbol("triangle-down",0,0,p,p).on("click",function(){d.scroll(1,k)}).add(y)),d.scroll(0),a=b):y&&(t(),y.hide(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0);return a},scroll:function(a,d){var b=this.pages, +f=b.length;a=this.currentPage+a;var g=this.clipHeight,c=this.options.navigation,h=this.pager,n=this.padding;a>f&&(a=f);0f&&(g=typeof a[0],"string"===g?e.name=a[0]:"number"===g&&(e.x=a[0]),d++);b=h.value;)h=e[++g];h&&h.color&&!this.options.color&&(this.color=h.color);return h},destroy:function(){var a=this.series.chart,e=a.hoverPoints,g;a.pointCount--;e&&(this.setState(),H(e,this),e.length||(a.hoverPoints=null));if(this===a.hoverPoint)this.onMouseOut();if(this.graphic||this.dataLabel)k(this), +this.destroyElements();this.legendItem&&a.legend.destroyItem(this);for(g in this)this[g]=null},destroyElements:function(){for(var a=["graphic","dataLabel","dataLabelUpper","connector","shadowGroup"],e,g=6;g--;)e=a[g],this[e]&&(this[e]=this[e].destroy())},getLabelConfig:function(){return{x:this.category,y:this.y,color:this.color,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},tooltipFormatter:function(a){var e=this.series,g= +e.tooltipOptions,h=t(g.valueDecimals,""),k=g.valuePrefix||"",f=g.valueSuffix||"";B(e.pointArrayMap||["y"],function(d){d="{point."+d;if(k||f)a=a.replace(d+"}",k+d+"}"+f);a=a.replace(d+"}",d+":,."+h+"f}")});return l(a,{point:this,series:this.series})},firePointEvent:function(a,e,g){var h=this,k=this.series.options;(k.point.events[a]||h.options&&h.options.events&&h.options.events[a])&&this.importEvents();"click"===a&&k.allowPointSelect&&(g=function(a){h.select&&h.select(null,a.ctrlKey||a.metaKey||a.shiftKey)}); +p(this,a,e,g)},visible:!0}})(N);(function(a){var D=a.addEvent,B=a.animObject,G=a.arrayMax,H=a.arrayMin,p=a.correctFloat,l=a.Date,r=a.defaultOptions,w=a.defaultPlotOptions,t=a.defined,k=a.each,m=a.erase,e=a.error,g=a.extend,h=a.fireEvent,C=a.grep,f=a.isArray,d=a.isNumber,b=a.isString,q=a.merge,E=a.pick,c=a.removeEvent,F=a.splat,n=a.stableSort,A=a.SVGElement,x=a.syncTimeout,J=a.win;a.Series=a.seriesType("line",null,{lineWidth:2,allowPointSelect:!1,showCheckbox:!1,animation:{duration:1E3},events:{}, +marker:{lineWidth:0,lineColor:"#ffffff",radius:4,states:{hover:{animation:{duration:50},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{align:"center",formatter:function(){return null===this.y?"":a.numberFormat(this.y,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0,padding:5},cropThreshold:300,pointRange:0,softThreshold:!0,states:{hover:{lineWidthPlus:1, +marker:{},halo:{size:10,opacity:.25}},select:{marker:{}}},stickyTracking:!0,turboThreshold:1E3},{isCartesian:!0,pointClass:a.Point,sorted:!0,requireSorting:!0,directTouch:!1,axisTypes:["xAxis","yAxis"],colorCounter:0,parallelArrays:["x","y"],coll:"series",init:function(a,b){var c=this,d,e,f=a.series,u,y=function(a,b){return E(a.options.index,a._i)-E(b.options.index,b._i)};c.chart=a;c.options=b=c.setOptions(b);c.linkedSeries=[];c.bindAxes();g(c,{name:b.name,state:"",visible:!1!==b.visible,selected:!0=== +b.selected});e=b.events;for(d in e)D(c,d,e[d]);if(e&&e.click||b.point&&b.point.events&&b.point.events.click||b.allowPointSelect)a.runTrackerClick=!0;c.getColor();c.getSymbol();k(c.parallelArrays,function(a){c[a+"Data"]=[]});c.setData(b.data,!1);c.isCartesian&&(a.hasCartesianSeries=!0);f.length&&(u=f[f.length-1]);c._i=E(u&&u._i,-1)+1;f.push(c);n(f,y);this.yAxis&&n(this.yAxis.series,y);k(f,function(a,b){a.index=b;a.name=a.name||"Series "+(b+1)})},bindAxes:function(){var a=this,b=a.options,c=a.chart, +d;k(a.axisTypes||[],function(f){k(c[f],function(c){d=c.options;if(b[f]===d.index||void 0!==b[f]&&b[f]===d.id||void 0===b[f]&&0===d.index)c.series.push(a),a[f]=c,c.isDirty=!0});a[f]||a.optionalAxis===f||e(18,!0)})},updateParallelArrays:function(a,b){var c=a.series,e=arguments,f=d(b)?function(d){var e="y"===d&&c.toYData?c.toYData(a):a[d];c[d+"Data"][b]=e}:function(a){Array.prototype[b].apply(c[a+"Data"],Array.prototype.slice.call(e,2))};k(c.parallelArrays,f)},autoIncrement:function(){var a=this.options, +b=this.xIncrement,c,d=a.pointIntervalUnit,b=E(b,a.pointStart,0);this.pointInterval=c=E(this.pointInterval,a.pointInterval,1);d&&(a=new l(b),"day"===d?a=+a[l.hcSetDate](a[l.hcGetDate]()+c):"month"===d?a=+a[l.hcSetMonth](a[l.hcGetMonth]()+c):"year"===d&&(a=+a[l.hcSetFullYear](a[l.hcGetFullYear]()+c)),c=a-b);this.xIncrement=b+c;return b},setOptions:function(a){var b=this.chart,c=b.options.plotOptions,b=b.userOptions||{},d=b.plotOptions||{},e=c[this.type];this.userOptions=a;c=q(e,c.series,a);this.tooltipOptions= +q(r.tooltip,r.plotOptions[this.type].tooltip,b.tooltip,d.series&&d.series.tooltip,d[this.type]&&d[this.type].tooltip,a.tooltip);null===e.marker&&delete c.marker;this.zoneAxis=c.zoneAxis;a=this.zones=(c.zones||[]).slice();!c.negativeColor&&!c.negativeFillColor||c.zones||a.push({value:c[this.zoneAxis+"Threshold"]||c.threshold||0,className:"highcharts-negative",color:c.negativeColor,fillColor:c.negativeFillColor});a.length&&t(a[a.length-1].value)&&a.push({color:this.color,fillColor:this.fillColor}); +return c},getCyclic:function(a,b,c){var d,e=this.userOptions,f=a+"Index",g=a+"Counter",u=c?c.length:E(this.chart.options.chart[a+"Count"],this.chart[a+"Count"]);b||(d=E(e[f],e["_"+f]),t(d)||(e["_"+f]=d=this.chart[g]%u,this.chart[g]+=1),c&&(b=c[d]));void 0!==d&&(this[f]=d);this[a]=b},getColor:function(){this.options.colorByPoint?this.options.color=null:this.getCyclic("color",this.options.color||w[this.type].color,this.chart.options.colors)},getSymbol:function(){this.getCyclic("symbol",this.options.marker.symbol, +this.chart.options.symbols)},drawLegendSymbol:a.LegendSymbolMixin.drawLineMarker,setData:function(a,c,g,n){var u=this,q=u.points,h=q&&q.length||0,y,m=u.options,x=u.chart,A=null,I=u.xAxis,l=m.turboThreshold,p=this.xData,r=this.yData,F=(y=u.pointArrayMap)&&y.length;a=a||[];y=a.length;c=E(c,!0);if(!1!==n&&y&&h===y&&!u.cropped&&!u.hasGroupedData&&u.visible)k(a,function(a,b){q[b].update&&a!==m.data[b]&&q[b].update(a,!1,null,!1)});else{u.xIncrement=null;u.colorCounter=0;k(this.parallelArrays,function(a){u[a+ +"Data"].length=0});if(l&&y>l){for(g=0;null===A&&gh||this.forceCrop))if(b[d-1]l)b=[],c=[];else if(b[0]l)f=this.cropData(this.xData,this.yData,A,l),b=f.xData,c=f.yData,f=f.start,g=!0;for(h=b.length||1;--h;)d=x?y(b[h])-y(b[h-1]):b[h]-b[h-1],0d&&this.requireSorting&&e(15);this.cropped=g;this.cropStart=f;this.processedXData=b;this.processedYData=c;this.closestPointRange=n},cropData:function(a,b,c,d){var e=a.length,f=0,g=e,n=E(this.cropShoulder,1),u;for(u=0;u=c){f=Math.max(0,u- +n);break}for(c=u;cd){g=c+n;break}return{xData:a.slice(f,g),yData:b.slice(f,g),start:f,end:g}},generatePoints:function(){var a=this.options.data,b=this.data,c,d=this.processedXData,e=this.processedYData,f=this.pointClass,g=d.length,n=this.cropStart||0,q,h=this.hasGroupedData,k,m=[],x;b||h||(b=[],b.length=a.length,b=this.data=b);for(x=0;x=q&&(c[x-1]||k)<=h,y&&k)if(y=m.length)for(;y--;)null!==m[y]&&(g[n++]=m[y]);else g[n++]=m;this.dataMin=H(g);this.dataMax=G(g)},translate:function(){this.processedXData||this.processData();this.generatePoints();var a=this.options,b=a.stacking,c=this.xAxis,e=c.categories,f=this.yAxis,g=this.points,n=g.length,q=!!this.modifyValue,h=a.pointPlacement,k="between"===h||d(h),m=a.threshold,x=a.startFromThreshold?m:0,A,l,r,F,J=Number.MAX_VALUE;"between"===h&&(h=.5);d(h)&&(h*=E(a.pointRange||c.pointRange)); +for(a=0;a=B&&(C.isNull=!0);C.plotX=A=p(Math.min(Math.max(-1E5,c.translate(w,0,0,0,1,h,"flags"===this.type)),1E5));b&&this.visible&&!C.isNull&&D&&D[w]&&(F=this.getStackIndicator(F,w,this.index),G=D[w],B=G.points[F.key],l=B[0],B=B[1],l===x&&F.key===D[w].base&&(l=E(m,f.min)),f.isLog&&0>=l&&(l=null),C.total=C.stackTotal=G.total,C.percentage=G.total&&C.y/G.total*100,C.stackY= +B,G.setOffset(this.pointXOffset||0,this.barW||0));C.yBottom=t(l)?f.translate(l,0,1,0,1):null;q&&(B=this.modifyValue(B,C));C.plotY=l="number"===typeof B&&Infinity!==B?Math.min(Math.max(-1E5,f.translate(B,0,1,0,1)),1E5):void 0;C.isInside=void 0!==l&&0<=l&&l<=f.len&&0<=A&&A<=c.len;C.clientX=k?p(c.translate(w,0,0,0,1,h)):A;C.negative=C.y<(m||0);C.category=e&&void 0!==e[C.x]?e[C.x]:C.x;C.isNull||(void 0!==r&&(J=Math.min(J,Math.abs(A-r))),r=A)}this.closestPointRangePx=J},getValidPoints:function(a,b){var c= +this.chart;return C(a||this.points||[],function(a){return b&&!c.isInsidePlot(a.plotX,a.plotY,c.inverted)?!1:!a.isNull})},setClip:function(a){var b=this.chart,c=this.options,d=b.renderer,e=b.inverted,f=this.clipBox,g=f||b.clipBox,n=this.sharedClipKey||["_sharedClip",a&&a.duration,a&&a.easing,g.height,c.xAxis,c.yAxis].join(),q=b[n],h=b[n+"m"];q||(a&&(g.width=0,b[n+"m"]=h=d.clipRect(-99,e?-b.plotLeft:-b.plotTop,99,e?b.chartWidth:b.chartHeight)),b[n]=q=d.clipRect(g),q.count={length:0});a&&!q.count[this.index]&& +(q.count[this.index]=!0,q.count.length+=1);!1!==c.clip&&(this.group.clip(a||f?q:b.clipRect),this.markerGroup.clip(h),this.sharedClipKey=n);a||(q.count[this.index]&&(delete q.count[this.index],--q.count.length),0===q.count.length&&n&&b[n]&&(f||(b[n]=b[n].destroy()),b[n+"m"]&&(b[n+"m"]=b[n+"m"].destroy())))},animate:function(a){var b=this.chart,c=B(this.options.animation),d;a?this.setClip(c):(d=this.sharedClipKey,(a=b[d])&&a.animate({width:b.plotSizeX},c),b[d+"m"]&&b[d+"m"].animate({width:b.plotSizeX+ +99},c),this.animate=null)},afterAnimate:function(){this.setClip();h(this,"afterAnimate")},drawPoints:function(){var a=this.points,b=this.chart,c,e,f,g,n=this.options.marker,q,h,k,m,x=this.markerGroup,A=E(n.enabled,this.xAxis.isRadial?!0:null,this.closestPointRangePx>2*n.radius);if(!1!==n.enabled||this._hasPointMarkers)for(e=a.length;e--;)f=a[e],c=f.plotY,g=f.graphic,q=f.marker||{},h=!!f.marker,k=A&&void 0===q.enabled||q.enabled,m=f.isInside,k&&d(c)&&null!==f.y?(c=E(q.symbol,this.symbol),f.hasImage= +0===c.indexOf("url"),k=this.markerAttribs(f,f.selected&&"select"),g?g[m?"show":"hide"](!0).animate(k):m&&(0e&&b.shadow));g&&(g.startX=c.xMap, +g.isArea=c.isArea)})},applyZones:function(){var a=this,b=this.chart,c=b.renderer,d=this.zones,e,f,g=this.clips||[],n,q=this.graph,h=this.area,m=Math.max(b.chartWidth,b.chartHeight),x=this[(this.zoneAxis||"y")+"Axis"],A,l,p=b.inverted,r,F,C,t,J=!1;d.length&&(q||h)&&x&&void 0!==x.min&&(l=x.reversed,r=x.horiz,q&&q.hide(),h&&h.hide(),A=x.getExtremes(),k(d,function(d,u){e=l?r?b.plotWidth:0:r?0:x.toPixels(A.min);e=Math.min(Math.max(E(f,e),0),m);f=Math.min(Math.max(Math.round(x.toPixels(E(d.value,A.max), +!0)),0),m);J&&(e=f=x.toPixels(A.max));F=Math.abs(e-f);C=Math.min(e,f);t=Math.max(e,f);x.isXAxis?(n={x:p?t:C,y:0,width:F,height:m},r||(n.x=b.plotHeight-n.x)):(n={x:0,y:p?t:C,width:m,height:F},r&&(n.y=b.plotWidth-n.y));p&&c.isVML&&(n=x.isXAxis?{x:0,y:l?C:t,height:n.width,width:b.chartWidth}:{x:n.y-b.plotLeft-b.spacingBox.x,y:0,width:n.height,height:b.chartHeight});g[u]?g[u].animate(n):(g[u]=c.clipRect(n),q&&a["zone-graph-"+u].clip(g[u]),h&&a["zone-area-"+u].clip(g[u]));J=d.value>A.max}),this.clips= +g)},invertGroups:function(a){function b(){var b={width:c.yAxis.len,height:c.xAxis.len};k(["group","markerGroup"],function(d){c[d]&&c[d].attr(b).invert(a)})}var c=this,d;c.xAxis&&(d=D(c.chart,"resize",b),D(c,"destroy",d),b(a),c.invertGroups=b)},plotGroup:function(a,b,c,d,e){var f=this[a],g=!f;g&&(this[a]=f=this.chart.renderer.g(b).attr({zIndex:d||.1}).add(e),f.addClass("highcharts-series-"+this.index+" highcharts-"+this.type+"-series highcharts-color-"+this.colorIndex+" "+(this.options.className|| +"")));f.attr({visibility:c})[g?"attr":"animate"](this.getPlotBox());return f},getPlotBox:function(){var a=this.chart,b=this.xAxis,c=this.yAxis;a.inverted&&(b=c,c=this.xAxis);return{translateX:b?b.left:a.plotLeft,translateY:c?c.top:a.plotTop,scaleX:1,scaleY:1}},render:function(){var a=this,b=a.chart,c,d=a.options,e=!!a.animate&&b.renderer.isSVG&&B(d.animation).duration,f=a.visible?"inherit":"hidden",g=d.zIndex,n=a.hasRendered,q=b.seriesGroup,h=b.inverted;c=a.plotGroup("group","series",f,g,q);a.markerGroup= +a.plotGroup("markerGroup","markers",f,g,q);e&&a.animate(!0);c.inverted=a.isCartesian?h:!1;a.drawGraph&&(a.drawGraph(),a.applyZones());a.drawDataLabels&&a.drawDataLabels();a.visible&&a.drawPoints();a.drawTracker&&!1!==a.options.enableMouseTracking&&a.drawTracker();a.invertGroups(h);!1===d.clip||a.sharedClipKey||n||c.clip(b.clipRect);e&&a.animate();n||(a.animationTimeout=x(function(){a.afterAnimate()},e));a.isDirty=a.isDirtyData=!1;a.hasRendered=!0},redraw:function(){var a=this.chart,b=this.isDirty|| +this.isDirtyData,c=this.group,d=this.xAxis,e=this.yAxis;c&&(a.inverted&&c.attr({width:a.plotWidth,height:a.plotHeight}),c.animate({translateX:E(d&&d.left,a.plotLeft),translateY:E(e&&e.top,a.plotTop)}));this.translate();this.render();b&&delete this.kdTree},kdDimensions:1,kdAxisArray:["clientX","plotY"],searchPoint:function(a,b){var c=this.xAxis,d=this.yAxis,e=this.chart.inverted;return this.searchKDTree({clientX:e?c.len-a.chartY+c.pos:a.chartX-c.pos,plotY:e?d.len-a.chartX+d.pos:a.chartY-d.pos},b)}, +buildKDTree:function(){function a(c,d,e){var f,g;if(g=c&&c.length)return f=b.kdAxisArray[d%e],c.sort(function(a,b){return a[f]-b[f]}),g=Math.floor(g/2),{point:c[g],left:a(c.slice(0,g),d+1,e),right:a(c.slice(g+1),d+1,e)}}var b=this,c=b.kdDimensions;delete b.kdTree;x(function(){b.kdTree=a(b.getValidPoints(null,!b.directTouch),c,c)},b.options.kdNow?0:1)},searchKDTree:function(a,b){function c(a,b,n,q){var h=b.point,u=d.kdAxisArray[n%q],k,m,x=h;m=t(a[e])&&t(h[e])?Math.pow(a[e]-h[e],2):null;k=t(a[f])&& +t(h[f])?Math.pow(a[f]-h[f],2):null;k=(m||0)+(k||0);h.dist=t(k)?Math.sqrt(k):Number.MAX_VALUE;h.distX=t(m)?Math.sqrt(m):Number.MAX_VALUE;u=a[u]-h[u];k=0>u?"left":"right";m=0>u?"right":"left";b[k]&&(k=c(a,b[k],n+1,q),x=k[g]A;)l--;this.updateParallelArrays(h,"splice",l,0,0);this.updateParallelArrays(h,l);n&&h.name&&(n[A]=h.name);q.splice(l,0,a);m&&(this.data.splice(l,0,null),this.processData());"point"===c.legendType&&this.generatePoints();d&&(f[0]&&f[0].remove?f[0].remove(!1):(f.shift(),this.updateParallelArrays(h,"shift"),q.shift()));this.isDirtyData=this.isDirty=!0;b&&g.redraw(e)},removePoint:function(a, +b,d){var c=this,e=c.data,f=e[a],g=c.points,n=c.chart,h=function(){g&&g.length===e.length&&g.splice(a,1);e.splice(a,1);c.options.data.splice(a,1);c.updateParallelArrays(f||{series:c},"splice",a,1);f&&f.destroy();c.isDirty=!0;c.isDirtyData=!0;b&&n.redraw()};q(d,n);b=C(b,!0);f?f.firePointEvent("remove",null,h):h()},remove:function(a,b,d){function c(){e.destroy();f.isDirtyLegend=f.isDirtyBox=!0;f.linkSeries();C(a,!0)&&f.redraw(b)}var e=this,f=e.chart;!1!==d?k(e,"remove",null,c):c()},update:function(a, +d){var c=this,e=this.chart,f=this.userOptions,g=this.type,q=a.type||f.type||e.options.chart.type,u=b[g].prototype,m=["group","markerGroup","dataLabelsGroup"],k;if(q&&q!==g||void 0!==a.zIndex)m.length=0;r(m,function(a){m[a]=c[a];delete c[a]});a=h(f,{animation:!1,index:this.index,pointStart:this.xData[0]},{data:this.options.data},a);this.remove(!1,null,!1);for(k in u)this[k]=void 0;t(this,b[q||g].prototype);r(m,function(a){c[a]=m[a]});this.init(e,a);e.linkSeries();C(d,!0)&&e.redraw(!1)}});t(G.prototype, +{update:function(a,b){var c=this.chart;a=c.options[this.coll][this.options.index]=h(this.userOptions,a);this.destroy(!0);this.init(c,t(a,{events:void 0}));c.isDirtyBox=!0;C(b,!0)&&c.redraw()},remove:function(a){for(var b=this.chart,c=this.coll,d=this.series,e=d.length;e--;)d[e]&&d[e].remove(!1);w(b.axes,this);w(b[c],this);b.options[c].splice(this.options.index,1);r(b[c],function(a,b){a.options.index=b});this.destroy();b.isDirtyBox=!0;C(a,!0)&&b.redraw()},setTitle:function(a,b){this.update({title:a}, +b)},setCategories:function(a,b){this.update({categories:a},b)}})})(N);(function(a){var D=a.color,B=a.each,G=a.map,H=a.pick,p=a.Series,l=a.seriesType;l("area","line",{softThreshold:!1,threshold:0},{singleStacks:!1,getStackPoints:function(){var a=[],l=[],p=this.xAxis,k=this.yAxis,m=k.stacks[this.stackKey],e={},g=this.points,h=this.index,C=k.series,f=C.length,d,b=H(k.options.reversedStacks,!0)?1:-1,q,E;if(this.options.stacking){for(q=0;qa&&t>l?(t=Math.max(a,l),m=2*l-t):tH&& +m>l?(m=Math.max(H,l),t=2*l-m):m=Math.abs(g)&&.5a.closestPointRange*a.xAxis.transA,k=a.borderWidth=r(h.borderWidth,k?0:1),f=a.yAxis,d=a.translatedThreshold=f.getThreshold(h.threshold),b=r(h.minPointLength,5),q=a.getColumnMetrics(),m=q.width,c=a.barW=Math.max(m,1+2*k),l=a.pointXOffset= +q.offset;g.inverted&&(d-=.5);h.pointPadding&&(c=Math.ceil(c));w.prototype.translate.apply(a);G(a.points,function(e){var n=r(e.yBottom,d),q=999+Math.abs(n),q=Math.min(Math.max(-q,e.plotY),f.len+q),h=e.plotX+l,k=c,u=Math.min(q,n),p,t=Math.max(q,n)-u;Math.abs(t)b?n-b:d-(p?b:0));e.barX=h;e.pointWidth=m;e.tooltipPos=g.inverted?[f.len+f.pos-g.plotLeft-q,a.xAxis.len-h-k/2,t]:[h+k/2,q+f.pos-g.plotTop,t];e.shapeType="rect";e.shapeArgs= +a.crispCol.apply(a,e.isNull?[e.plotX,f.len/2,0,0]:[h,u,k,t])})},getSymbol:a.noop,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,drawGraph:function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},pointAttribs:function(a,g){var e=this.options,k=this.pointAttrToOptions||{},f=k.stroke||"borderColor",d=k["stroke-width"]||"borderWidth",b=a&&a.color||this.color,q=a[f]||e[f]||this.color||b,k=e.dashStyle,m;a&&this.zones.length&&(b=(b=a.getZone())&&b.color||a.options.color|| +this.color);g&&(g=e.states[g],m=g.brightness,b=g.color||void 0!==m&&B(b).brighten(g.brightness).get()||b,q=g[f]||q,k=g.dashStyle||k);a={fill:b,stroke:q,"stroke-width":a[d]||e[d]||this[d]||0};e.borderRadius&&(a.r=e.borderRadius);k&&(a.dashstyle=k);return a},drawPoints:function(){var a=this,g=this.chart,h=a.options,m=g.renderer,f=h.animationLimit||250,d;G(a.points,function(b){var e=b.graphic;p(b.plotY)&&null!==b.y?(d=b.shapeArgs,e?(k(e),e[g.pointCountt;++t)k=r[t],a=2>t||2===t&&/%$/.test(k),r[t]=B(k,[l,H,w,r[2]][t])+(a?p:0);r[3]>r[2]&&(r[3]=r[2]);return r}}})(N);(function(a){var D=a.addEvent,B=a.defined,G=a.each,H=a.extend,p=a.inArray,l=a.noop,r=a.pick,w=a.Point,t=a.Series,k=a.seriesType,m=a.setAnimation;k("pie","line",{center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){return null===this.y? +void 0:this.point.name},x:0},ignoreHiddenPoint:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,states:{hover:{brightness:.1,shadow:!1}}},{isCartesian:!1,requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],axisTypes:[],pointAttribs:a.seriesTypes.column.prototype.pointAttribs,animate:function(a){var e=this,h=e.points,k=e.startAngleRad;a||(G(h,function(a){var d= +a.graphic,b=a.shapeArgs;d&&(d.attr({r:a.startR||e.center[3]/2,start:k,end:k}),d.animate({r:b.r,start:b.start,end:b.end},e.options.animation))}),e.animate=null)},updateTotals:function(){var a,g=0,h=this.points,k=h.length,f,d=this.options.ignoreHiddenPoint;for(a=0;af.y&&(f.y=null),g+=d&&!f.visible?0:f.y;this.total=g;for(a=0;a1.5*Math.PI?q-=2*Math.PI:q<-Math.PI/2&&(q+=2*Math.PI);t.slicedTranslation={translateX:Math.round(Math.cos(q)*k),translateY:Math.round(Math.sin(q)*k)};d=Math.cos(q)*a[2]/2;b=Math.sin(q)*a[2]/2;t.tooltipPos=[a[0]+.7*d,a[1]+.7*b];t.half=q<-Math.PI/2||q>Math.PI/2?1:0;t.angle=q;f=Math.min(f,n/5);t.labelPos=[a[0]+d+Math.cos(q)*n,a[1]+b+Math.sin(q)*n,a[0]+d+Math.cos(q)*f,a[1]+b+Math.sin(q)* +f,a[0]+d,a[1]+b,0>n?"center":t.half?"right":"left",q]}},drawGraph:null,drawPoints:function(){var a=this,g=a.chart.renderer,h,k,f,d,b=a.options.shadow;b&&!a.shadowGroup&&(a.shadowGroup=g.g("shadow").add(a.group));G(a.points,function(e){if(null!==e.y){k=e.graphic;d=e.shapeArgs;h=e.sliced?e.slicedTranslation:{};var q=e.shadowGroup;b&&!q&&(q=e.shadowGroup=g.g("shadow").add(a.shadowGroup));q&&q.attr(h);f=a.pointAttribs(e,e.selected&&"select");k?k.setRadialReference(a.center).attr(f).animate(H(d,h)):(e.graphic= +k=g[e.shapeType](d).addClass(e.getClassName()).setRadialReference(a.center).attr(h).add(a.group),e.visible||k.attr({visibility:"hidden"}),k.attr(f).attr({"stroke-linejoin":"round"}).shadow(b,q))}})},searchPoint:l,sortByAngle:function(a,g){a.sort(function(a,e){return void 0!==a.angle&&(e.angle-a.angle)*g})},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,getCenter:a.CenteredSeriesMixin.getCenter,getSymbol:l},{init:function(){w.prototype.init.apply(this,arguments);var a=this,g;a.name=r(a.name,"Slice"); +g=function(e){a.slice("select"===e.type)};D(a,"select",g);D(a,"unselect",g);return a},setVisible:function(a,g){var e=this,k=e.series,f=k.chart,d=k.options.ignoreHiddenPoint;g=r(g,d);a!==e.visible&&(e.visible=e.options.visible=a=void 0===a?!e.visible:a,k.options.data[p(e,k.data)]=e.options,G(["graphic","dataLabel","connector","shadowGroup"],function(b){if(e[b])e[b][a?"show":"hide"](!0)}),e.legendItem&&f.legend.colorizeItem(e,a),a||"hover"!==e.state||e.setState(""),d&&(k.isDirty=!0),g&&f.redraw())}, +slice:function(a,g,h){var e=this.series;m(h,e.chart);r(g,!0);this.sliced=this.options.sliced=a=B(a)?a:!this.sliced;e.options.data[p(this,e.data)]=this.options;a=a?this.slicedTranslation:{translateX:0,translateY:0};this.graphic.animate(a);this.shadowGroup&&this.shadowGroup.animate(a)},haloPath:function(a){var e=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(e.x,e.y,e.r+a,e.r+a,{innerR:this.shapeArgs.r,start:e.start,end:e.end})}})})(N);(function(a){var D= +a.addEvent,B=a.arrayMax,G=a.defined,H=a.each,p=a.extend,l=a.format,r=a.map,w=a.merge,t=a.noop,k=a.pick,m=a.relativeLength,e=a.Series,g=a.seriesTypes,h=a.stableSort,C=a.stop;a.distribute=function(a,d){function b(a,b){return a.target-b.target}var e,f=!0,c=a,g=[],n;n=0;for(e=a.length;e--;)n+=a[e].size;if(n>d){h(a,function(a,b){return(b.rank||0)-(a.rank||0)});for(n=e=0;n<=d;)n+=a[e].size,e++;g=a.splice(e-1,a.length)}h(a,b);for(a=r(a,function(a){return{size:a.size,targets:[a.target]}});f;){for(e=a.length;e--;)f= +a[e],n=(Math.min.apply(0,f.targets)+Math.max.apply(0,f.targets))/2,f.pos=Math.min(Math.max(0,n-f.size/2),d-f.size);e=a.length;for(f=!1;e--;)0a[e].pos&&(a[e-1].size+=a[e].size,a[e-1].targets=a[e-1].targets.concat(a[e].targets),a[e-1].pos+a[e-1].size>d&&(a[e-1].pos=d-a[e-1].size),a.splice(e,1),f=!0)}e=0;H(a,function(a){var b=0;H(a.targets,function(){c[e].pos=a.pos+b;b+=c[e].size;e++})});c.push.apply(c,g);h(c,b)};e.prototype.drawDataLabels=function(){var a=this,d=a.options, +b=d.dataLabels,e=a.points,g,c,h=a.hasRendered||0,n,m,x=k(b.defer,!0),r=a.chart.renderer;if(b.enabled||a._hasPointLabels)a.dlProcessOptions&&a.dlProcessOptions(b),m=a.plotGroup("dataLabelsGroup","data-labels",x&&!h?"hidden":"visible",b.zIndex||6),x&&(m.attr({opacity:+h}),h||D(a,"afterAnimate",function(){a.visible&&m.show(!0);m[d.animation?"animate":"attr"]({opacity:1},{duration:200})})),c=b,H(e,function(e){var f,q=e.dataLabel,h,x,A=e.connector,y=!0,t,z={};g=e.dlOptions||e.options&&e.options.dataLabels; +f=k(g&&g.enabled,c.enabled)&&null!==e.y;if(q&&!f)e.dataLabel=q.destroy();else if(f){b=w(c,g);t=b.style;f=b.rotation;h=e.getLabelConfig();n=b.format?l(b.format,h):b.formatter.call(h,b);t.color=k(b.color,t.color,a.color,"#000000");if(q)G(n)?(q.attr({text:n}),y=!1):(e.dataLabel=q=q.destroy(),A&&(e.connector=A.destroy()));else if(G(n)){q={fill:b.backgroundColor,stroke:b.borderColor,"stroke-width":b.borderWidth,r:b.borderRadius||0,rotation:f,padding:b.padding,zIndex:1};"contrast"===t.color&&(z.color=b.inside|| +0>b.distance||d.stacking?r.getContrast(e.color||a.color):"#000000");d.cursor&&(z.cursor=d.cursor);for(x in q)void 0===q[x]&&delete q[x];q=e.dataLabel=r[f?"text":"label"](n,0,-9999,b.shape,null,null,b.useHTML,null,"data-label").attr(q);q.addClass("highcharts-data-label-color-"+e.colorIndex+" "+(b.className||""));q.css(p(t,z));q.add(m);q.shadow(b.shadow)}q&&a.alignDataLabel(e,q,b,null,y)}})};e.prototype.alignDataLabel=function(a,d,b,e,g){var c=this.chart,f=c.inverted,n=k(a.plotX,-9999),q=k(a.plotY, +-9999),h=d.getBBox(),m,l=b.rotation,u=b.align,r=this.visible&&(a.series.forceDL||c.isInsidePlot(n,Math.round(q),f)||e&&c.isInsidePlot(n,f?e.x+1:e.y+e.height-1,f)),t="justify"===k(b.overflow,"justify");r&&(m=b.style.fontSize,m=c.renderer.fontMetrics(m,d).b,e=p({x:f?c.plotWidth-q:n,y:Math.round(f?c.plotHeight-n:q),width:0,height:0},e),p(b,{width:h.width,height:h.height}),l?(t=!1,f=c.renderer.rotCorr(m,l),f={x:e.x+b.x+e.width/2+f.x,y:e.y+b.y+{top:0,middle:.5,bottom:1}[b.verticalAlign]*e.height},d[g? +"attr":"animate"](f).attr({align:u}),n=(l+720)%360,n=180n,"left"===u?f.y-=n?h.height:0:"center"===u?(f.x-=h.width/2,f.y-=h.height/2):"right"===u&&(f.x-=h.width,f.y-=n?0:h.height)):(d.align(b,null,e),f=d.alignAttr),t?this.justifyDataLabel(d,b,f,h,e,g):k(b.crop,!0)&&(r=c.isInsidePlot(f.x,f.y)&&c.isInsidePlot(f.x+h.width,f.y+h.height)),b.shape&&!l&&d.attr({anchorX:a.plotX,anchorY:a.plotY}));r||(C(d),d.attr({y:-9999}),d.placed=!1)};e.prototype.justifyDataLabel=function(a,d,b,e,g,c){var f=this.chart, +n=d.align,h=d.verticalAlign,q,k,m=a.box?0:a.padding||0;q=b.x+m;0>q&&("right"===n?d.align="left":d.x=-q,k=!0);q=b.x+e.width-m;q>f.plotWidth&&("left"===n?d.align="right":d.x=f.plotWidth-q,k=!0);q=b.y+m;0>q&&("bottom"===h?d.verticalAlign="top":d.y=-q,k=!0);q=b.y+e.height-m;q>f.plotHeight&&("top"===h?d.verticalAlign="bottom":d.y=f.plotHeight-q,k=!0);k&&(a.placed=!c,a.align(d,null,g))};g.pie&&(g.pie.prototype.drawDataLabels=function(){var f=this,d=f.data,b,g=f.chart,h=f.options.dataLabels,c=k(h.connectorPadding, +10),m=k(h.connectorWidth,1),n=g.plotWidth,l=g.plotHeight,x,p=h.distance,y=f.center,u=y[2]/2,t=y[1],w=0k-2?A:P,e),v._attr={visibility:S,align:D[6]},v._pos={x:L+h.x+({left:c,right:-c}[D[6]]||0),y:P+h.y-10},D.x=L,D.y=P,null===f.options.size&&(C=v.width,L-Cn-c&&(T[1]=Math.max(Math.round(L+ +C-n+c),T[1])),0>P-G/2?T[0]=Math.max(Math.round(-P+G/2),T[0]):P+G/2>l&&(T[2]=Math.max(Math.round(P+G/2-l),T[2])))}),0===B(T)||this.verifyDataLabelOverflow(T))&&(this.placeDataLabels(),w&&m&&H(this.points,function(a){var b;x=a.connector;if((v=a.dataLabel)&&v._pos&&a.visible){S=v._attr.visibility;if(b=!x)a.connector=x=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+a.colorIndex).add(f.dataLabelsGroup),x.attr({"stroke-width":m,stroke:h.connectorColor||a.color||"#666666"}); +x[b?"attr":"animate"]({d:f.connectorPath(a.labelPos)});x.attr("visibility",S)}else x&&(a.connector=x.destroy())}))},g.pie.prototype.connectorPath=function(a){var d=a.x,b=a.y;return k(this.options.dataLabels.softConnector,!0)?["M",d+("left"===a[6]?5:-5),b,"C",d,b,2*a[2]-a[4],2*a[3]-a[5],a[2],a[3],"L",a[4],a[5]]:["M",d+("left"===a[6]?5:-5),b,"L",a[2],a[3],"L",a[4],a[5]]},g.pie.prototype.placeDataLabels=function(){H(this.points,function(a){var d=a.dataLabel;d&&a.visible&&((a=d._pos)?(d.attr(d._attr), +d[d.moved?"animate":"attr"](a),d.moved=!0):d&&d.attr({y:-9999}))})},g.pie.prototype.alignDataLabel=t,g.pie.prototype.verifyDataLabelOverflow=function(a){var d=this.center,b=this.options,e=b.center,f=b.minSize||80,c,g;null!==e[0]?c=Math.max(d[2]-Math.max(a[1],a[3]),f):(c=Math.max(d[2]-a[1]-a[3],f),d[0]+=(a[3]-a[1])/2);null!==e[1]?c=Math.max(Math.min(c,d[2]-Math.max(a[0],a[2])),f):(c=Math.max(Math.min(c,d[2]-a[0]-a[2]),f),d[1]+=(a[0]-a[2])/2);ck(this.translatedThreshold,f.yAxis.len)),m=k(b.inside,!!this.options.stacking);n&&(g=w(n),0>g.y&&(g.height+=g.y,g.y=0),n=g.y+g.height-f.yAxis.len,0a+e||c+nb+f||g+hthis.pointCount))},pan:function(a,b){var c=this,d=c.hoverPoints, +e;d&&r(d,function(a){a.setState()});r("xy"===b?[1,0]:[1],function(b){b=c[b?"xAxis":"yAxis"][0];var d=b.horiz,f=a[d?"chartX":"chartY"],d=d?"mouseDownX":"mouseDownY",g=c[d],n=(b.pointRange||0)/2,h=b.getExtremes(),q=b.toValue(g-f,!0)+n,n=b.toValue(g+b.len-f,!0)-n,g=g>f;b.series.length&&(g||q>Math.min(h.dataMin,h.min))&&(!g||n=p(k.minWidth,0)&&this.chartHeight>=p(k.minHeight,0)};void 0===l._id&&(l._id=a.uniqueKey());m=m.call(this);!r[l._id]&&m?l.chartOptions&&(r[l._id]=this.currentOptions(l.chartOptions),this.update(l.chartOptions,w)):r[l._id]&&!m&&(this.update(r[l._id],w),delete r[l._id])};D.prototype.currentOptions=function(a){function p(a,m,e){var g,h;for(g in a)if(-1< +G(g,["series","xAxis","yAxis"]))for(a[g]=l(a[g]),e[g]=[],h=0;hd.length||void 0===h)return a.call(this,g,h,k,f);x=d.length;for(c=0;ck;d[c]5*b||w){if(d[c]>u){for(r=a.call(this,g,d[e],d[c],f);r.length&&r[0]<=u;)r.shift();r.length&&(u=r[r.length-1]);y=y.concat(r)}e=c+1}if(w)break}a= +r.info;if(q&&a.unitRange<=m.hour){c=y.length-1;for(e=1;ek?a-1:a;for(M=void 0;q--;)e=c[q],k=M-e,M&&k<.8*C&&(null===t||k<.8*t)?(n[y[q]]&&!n[y[q+1]]?(k=q+1,M=e):k=q,y.splice(k,1)):M=e}return y});w(B.prototype,{beforeSetTickPositions:function(){var a, +g=[],h=!1,k,f=this.getExtremes(),d=f.min,b=f.max,q,m=this.isXAxis&&!!this.options.breaks,f=this.options.ordinal,c=this.chart.options.chart.ignoreHiddenSeries;if(f||m){r(this.series,function(b,d){if(!(c&&!1===b.visible||!1===b.takeOrdinalPosition&&!m)&&(g=g.concat(b.processedXData),a=g.length,g.sort(function(a,b){return a-b}),a))for(d=a-1;d--;)g[d]===g[d+1]&&g.splice(d,1)});a=g.length;if(2k||b-g[g.length- +1]>k)&&(h=!0)}h?(this.ordinalPositions=g,k=this.val2lin(Math.max(d,g[0]),!0),q=Math.max(this.val2lin(Math.min(b,g[g.length-1]),!0),1),this.ordinalSlope=b=(b-d)/(q-k),this.ordinalOffset=d-k*b):this.ordinalPositions=this.ordinalSlope=this.ordinalOffset=void 0}this.isOrdinal=f&&h;this.groupIntervalFactor=null},val2lin:function(a,g){var e=this.ordinalPositions;if(e){var k=e.length,f,d;for(f=k;f--;)if(e[f]===a){d=f;break}for(f=k-1;f--;)if(a>e[f]||0===f){a=(a-e[f])/(e[f+1]-e[f]);d=f+a;break}g=g?d:this.ordinalSlope* +(d||0)+this.ordinalOffset}else g=a;return g},lin2val:function(a,g){var e=this.ordinalPositions;if(e){var k=this.ordinalSlope,f=this.ordinalOffset,d=e.length-1,b;if(g)0>a?a=e[0]:a>d?a=e[d]:(d=Math.floor(a),b=a-d);else for(;d--;)if(g=k*d+f,a>=g){k=k*(d+1)+f;b=(a-g)/(k-g);break}return void 0!==b&&void 0!==e[d]?e[d]+(b?b*(e[d+1]-e[d]):0):a}return a},getExtendedPositions:function(){var a=this.chart,g=this.series[0].currentDataGrouping,h=this.ordinalIndex,k=g?g.count+g.unitName:"raw",f=this.getExtremes(), +d,b;h||(h=this.ordinalIndex={});h[k]||(d={series:[],chart:a,getExtremes:function(){return{min:f.dataMin,max:f.dataMax}},options:{ordinal:!0},val2lin:B.prototype.val2lin},r(this.series,function(e){b={xAxis:d,xData:e.xData,chart:a,destroyGroupedData:t};b.options={dataGrouping:g?{enabled:!0,forced:!0,approximation:"open",units:[[g.unitName,[g.count]]]}:{enabled:!1}};e.processData.apply(b);d.series.push(b)}),this.beforeSetTickPositions.apply(d),h[k]=d.ordinalPositions);return h[k]},getGroupIntervalFactor:function(a, +g,h){var e;h=h.processedXData;var f=h.length,d=[];e=this.groupIntervalFactor;if(!e){for(e=0;ed?(l=p,t=e.ordinalPositions?e:p):(l=e.ordinalPositions?e:p,t=p),p=t.ordinalPositions,q>p[p.length-1]&&p.push(q),this.fixedRange=c-m,d=e.toFixedRange(null,null,n.apply(l,[x.apply(l,[m,!0])+d,!0]),n.apply(t,[x.apply(t, +[c,!0])+d,!0])),d.min>=Math.min(b.dataMin,m)&&d.max<=Math.max(q,c)&&e.setExtremes(d.min,d.max,!0,!1,{trigger:"pan"}),this.mouseDownX=k,H(this.container,{cursor:"move"})):f=!0}else f=!0;f&&a.apply(this,Array.prototype.slice.call(arguments,1))});k.prototype.gappedPath=function(){var a=this.options.gapSize,g=this.points.slice(),h=g.length-1;if(a&&0this.closestPointRange*a&&g.splice(h+1,0,{isNull:!0});return this.getGraphPath(g)}})(N);(function(a){function D(){return Array.prototype.slice.call(arguments, +1)}function B(a){a.apply(this);this.drawBreaks(this.xAxis,["x"]);this.drawBreaks(this.yAxis,G(this.pointArrayMap,["y"]))}var G=a.pick,H=a.wrap,p=a.each,l=a.extend,r=a.fireEvent,w=a.Axis,t=a.Series;l(w.prototype,{isInBreak:function(a,m){var e=a.repeat||Infinity,g=a.from,h=a.to-a.from;m=m>=g?(m-g)%e:e-(g-m)%e;return a.inclusive?m<=h:m=a)break;else if(g.isInBreak(f,a)){e-=a-f.from;break}return e};this.lin2val=function(a){var e,f;for(f=0;f=a);f++)e.toh;)m-=b;for(;mb.to||l>b.from&&db.from&&db.from&&d>b.to&&d=c[0]);A++);for(A;A<=q;A++){for(;(void 0!==c[w+1]&&a[A]>=c[w+1]||A===q)&&(l=c[w],this.dataGroupInfo={start:p,length:t[0].length},p=d.apply(this,t),void 0!==p&&(g.push(l),h.push(p),m.push(this.dataGroupInfo)),p=A,t[0]=[],t[1]=[],t[2]=[],t[3]=[],w+=1,A!==q););if(A===q)break;if(x){l=this.cropStart+A;l=e&&e[l]|| +this.pointClass.prototype.applyOptions.apply({series:this},[f[l]]);var E,C;for(E=0;Ethis.chart.plotSizeX/d||b&&f.forced)&&(e=!0);return e?d:0};G.prototype.setDataGrouping=function(a,b){var c;b=e(b,!0);a||(a={forced:!1,units:null});if(this instanceof G)for(c=this.series.length;c--;)this.series[c].update({dataGrouping:a},!1);else l(this.chart.options.series,function(b){b.dataGrouping=a},!1);b&&this.chart.redraw()}})(N);(function(a){var D=a.each,B=a.Point,G=a.seriesType,H=a.seriesTypes;G("ohlc","column",{lineWidth:1,tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eOpen: {point.open}\x3cbr/\x3eHigh: {point.high}\x3cbr/\x3eLow: {point.low}\x3cbr/\x3eClose: {point.close}\x3cbr/\x3e'}, +threshold:null,states:{hover:{lineWidth:3}}},{pointArrayMap:["open","high","low","close"],toYData:function(a){return[a.open,a.high,a.low,a.close]},pointValKey:"high",pointAttribs:function(a,l){l=H.column.prototype.pointAttribs.call(this,a,l);var p=this.options;delete l.fill;l["stroke-width"]=p.lineWidth;l.stroke=a.options.color||(a.openk)););B(g,function(a,b){var d;void 0===a.plotY&&(a.x>=c.min&&a.x<=c.max?a.plotY=e.chartHeight-p.bottom-(p.opposite?p.height:0)+p.offset-e.plotTop:a.shapeArgs={});a.plotX+=t;(f=g[b-1])&&f.plotX===a.plotX&&(void 0===f.stackIndex&&(f.stackIndex=0),d=f.stackIndex+1);a.stackIndex=d})},drawPoints:function(){var a=this.points,e=this.chart,g=e.renderer,k,l,f=this.options,d=f.y,b,q,p,c,r,n,t,x=this.yAxis;for(q=a.length;q--;)p=a[q],t=p.plotX>this.xAxis.len,k=p.plotX,c=p.stackIndex,b= +p.options.shape||f.shape,l=p.plotY,void 0!==l&&(l=p.plotY+d-(void 0!==c&&c*f.stackDistance)),r=c?void 0:p.plotX,n=c?void 0:p.plotY,c=p.graphic,void 0!==l&&0<=k&&!t?(c||(c=p.graphic=g.label("",null,null,b,null,null,f.useHTML).attr(this.pointAttribs(p)).css(G(f.style,p.style)).attr({align:"flag"===b?"left":"center",width:f.width,height:f.height,"text-align":f.textAlign}).addClass("highcharts-point").add(this.markerGroup),c.shadow(f.shadow)),0h&&(e-=Math.round((l-h)/2),h=l);e=k[a](e,g,h,l);d&&f&&e.push("M",d,g>f?g:g+l,"L",d,f);return e}});p===t&&B(["flag","circlepin","squarepin"],function(a){t.prototype.symbols[a]=k[a]})})(N);(function(a){function D(a,d,e){this.init(a,d,e)}var B=a.addEvent,G=a.Axis,H=a.correctFloat,p=a.defaultOptions, +l=a.defined,r=a.destroyObjectProperties,w=a.doc,t=a.each,k=a.fireEvent,m=a.hasTouch,e=a.isTouchDevice,g=a.merge,h=a.pick,C=a.removeEvent,f=a.wrap,d={height:e?20:14,barBorderRadius:0,buttonBorderRadius:0,liveRedraw:a.svg&&!e,margin:10,minWidth:6,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:1,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"#333333",trackBackgroundColor:"#f2f2f2",trackBorderColor:"#f2f2f2", +trackBorderWidth:1};p.scrollbar=g(!0,d,p.scrollbar);D.prototype={init:function(a,e,f){this.scrollbarButtons=[];this.renderer=a;this.userOptions=e;this.options=g(d,e);this.chart=f;this.size=h(this.options.size,this.options.height);e.enabled&&(this.render(),this.initEvents(),this.addEvents())},render:function(){var a=this.renderer,d=this.options,e=this.size,c;this.group=c=a.g("scrollbar").attr({zIndex:d.zIndex,translateY:-99999}).add();this.track=a.rect().addClass("highcharts-scrollbar-track").attr({x:0, +r:d.trackBorderRadius||0,height:e,width:e}).add(c);this.track.attr({fill:d.trackBackgroundColor,stroke:d.trackBorderColor,"stroke-width":d.trackBorderWidth});this.trackBorderWidth=this.track.strokeWidth();this.track.attr({y:-this.trackBorderWidth%2/2});this.scrollbarGroup=a.g().add(c);this.scrollbar=a.rect().addClass("highcharts-scrollbar-thumb").attr({height:e,width:e,r:d.barBorderRadius||0}).add(this.scrollbarGroup);this.scrollbarRifles=a.path(this.swapXY(["M",-3,e/4,"L",-3,2*e/3,"M",0,e/4,"L", +0,2*e/3,"M",3,e/4,"L",3,2*e/3],d.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup);this.scrollbar.attr({fill:d.barBackgroundColor,stroke:d.barBorderColor,"stroke-width":d.barBorderWidth});this.scrollbarRifles.attr({stroke:d.rifleColor,"stroke-width":1});this.scrollbarStrokeWidth=this.scrollbar.strokeWidth();this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2);this.drawScrollbarButton(0);this.drawScrollbarButton(1)},position:function(a, +d,e,c){var b=this.options.vertical,f=0,g=this.rendered?"animate":"attr";this.x=a;this.y=d+this.trackBorderWidth;this.width=e;this.xOffset=this.height=c;this.yOffset=f;b?(this.width=this.yOffset=e=f=this.size,this.xOffset=d=0,this.barWidth=c-2*e,this.x=a+=this.options.margin):(this.height=this.xOffset=c=d=this.size,this.barWidth=e-2*c,this.y+=this.options.margin);this.group[g]({translateX:a,translateY:this.y});this.track[g]({width:e,height:c});this.scrollbarButtons[1].attr({translateX:b?0:e-d,translateY:b? +c-f:0})},drawScrollbarButton:function(a){var b=this.renderer,d=this.scrollbarButtons,c=this.options,e=this.size,f;f=b.g().add(this.group);d.push(f);f=b.rect().addClass("highcharts-scrollbar-button").add(f);f.attr({stroke:c.buttonBorderColor,"stroke-width":c.buttonBorderWidth,fill:c.buttonBackgroundColor});f.attr(f.crisp({x:-.5,y:-.5,width:e+1,height:e+1,r:c.buttonBorderRadius},f.strokeWidth()));f=b.path(this.swapXY(["M",e/2+(a?-1:1),e/2-3,"L",e/2+(a?-1:1),e/2+3,"L",e/2+(a?2:-2),e/2],c.vertical)).addClass("highcharts-scrollbar-arrow").add(d[a]); +f.attr({fill:c.buttonArrowColor})},swapXY:function(a,d){var b=a.length,c;if(d)for(d=0;d=k?this.scrollbarRifles.hide():this.scrollbarRifles.show(!0),!1===b.showFull&&(0>=a&&1<=d?this.group.hide():this.group.show()),this.rendered=!0)},initEvents:function(){var a=this;a.mouseMoveHandler=function(b){var d=a.chart.pointer.normalize(b),c=a.options.vertical? +"chartY":"chartX",e=a.initPositions;!a.grabbedCenter||b.touches&&0===b.touches[0][c]||(d=a.cursorToScrollbarPosition(d)[c],c=a[c],c=d-c,a.hasDragged=!0,a.updatePosition(e[0]+c,e[1]+c),a.hasDragged&&k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMType:b.type,DOMEvent:b}))};a.mouseUpHandler=function(b){a.hasDragged&&k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMType:b.type,DOMEvent:b});a.grabbedCenter=a.hasDragged=a.chartX=a.chartY=null};a.mouseDownHandler=function(b){b=a.chart.pointer.normalize(b); +b=a.cursorToScrollbarPosition(b);a.chartX=b.chartX;a.chartY=b.chartY;a.initPositions=[a.from,a.to];a.grabbedCenter=!0};a.buttonToMinClick=function(b){var d=H(a.to-a.from)*a.options.step;a.updatePosition(H(a.from-d),H(a.to-d));k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})};a.buttonToMaxClick=function(b){var d=(a.to-a.from)*a.options.step;a.updatePosition(a.from+d,a.to+d);k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})};a.trackClick=function(b){var d=a.chart.pointer.normalize(b), +c=a.to-a.from,e=a.y+a.scrollbarTop,f=a.x+a.scrollbarLeft;a.options.vertical&&d.chartY>e||!a.options.vertical&&d.chartX>f?a.updatePosition(a.from+c,a.to+c):a.updatePosition(a.from-c,a.to-c);k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})}},cursorToScrollbarPosition:function(a){var b=this.options,b=b.minWidth>this.calculatedWidth?b.minWidth:0;return{chartX:(a.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(a.chartY-this.y-this.yOffset)/(this.barWidth-b)}},updatePosition:function(a, +d){1a&&(d=H(d-a),a=0);this.from=a;this.to=d},update:function(a){this.destroy();this.init(this.chart.renderer,g(!0,this.options,a),this.chart)},addEvents:function(){var a=this.options.inverted?[1,0]:[0,1],d=this.scrollbarButtons,e=this.scrollbarGroup.element,c=this.mouseDownHandler,f=this.mouseMoveHandler,g=this.mouseUpHandler,a=[[d[a[0]].element,"click",this.buttonToMinClick],[d[a[1]].element,"click",this.buttonToMaxClick],[this.track.element,"click",this.trackClick],[e, +"mousedown",c],[w,"mousemove",f],[w,"mouseup",g]];m&&a.push([e,"touchstart",c],[w,"touchmove",f],[w,"touchend",g]);t(a,function(a){B.apply(null,a)});this._events=a},removeEvents:function(){t(this._events,function(a){C.apply(null,a)});this._events=void 0},destroy:function(){var a=this.chart.scroller;this.removeEvents();t(["track","scrollbarRifles","scrollbar","scrollbarGroup","group"],function(a){this[a]&&this[a].destroy&&(this[a]=this[a].destroy())},this);a&&(a.scrollbar=null,r(a.scrollbarButtons))}}; +f(G.prototype,"init",function(a){var b=this;a.apply(b,[].slice.call(arguments,1));b.options.scrollbar&&b.options.scrollbar.enabled&&(b.options.scrollbar.vertical=!b.horiz,b.options.startOnTick=b.options.endOnTick=!1,b.scrollbar=new D(b.chart.renderer,b.options.scrollbar,b.chart),B(b.scrollbar,"changed",function(a){var c=Math.min(h(b.options.min,b.min),b.min,b.dataMin),d=Math.max(h(b.options.max,b.max),b.max,b.dataMax)-c,e;b.horiz&&!b.reversed||!b.horiz&&b.reversed?(e=c+d*this.to,c+=d*this.from):(e= +c+d*(1-this.from),c+=d*(1-this.to));b.setExtremes(c,e,!0,!1,a)}))});f(G.prototype,"render",function(a){var b=Math.min(h(this.options.min,this.min),this.min,this.dataMin),d=Math.max(h(this.options.max,this.max),this.max,this.dataMax),c=this.scrollbar,e;a.apply(this,[].slice.call(arguments,1));c&&(this.horiz?c.position(this.left,this.top+this.height+this.offset+2+(this.opposite?0:this.axisTitleMargin),this.width,this.height):c.position(this.left+this.width+2+this.offset+(this.opposite?this.axisTitleMargin: +0),this.top,this.width,this.height),isNaN(b)||isNaN(d)||!l(this.min)||!l(this.max)?c.setRange(0,0):(e=(this.min-b)/(d-b),b=(this.max-b)/(d-b),this.horiz&&!this.reversed||!this.horiz&&this.reversed?c.setRange(e,b):c.setRange(1-b,1-e)))});f(G.prototype,"getOffset",function(a){var b=this.horiz?2:1,d=this.scrollbar;a.apply(this,[].slice.call(arguments,1));d&&(this.chart.axisOffset[b]+=d.size+d.options.margin)});f(G.prototype,"destroy",function(a){this.scrollbar&&(this.scrollbar=this.scrollbar.destroy()); +a.apply(this,[].slice.call(arguments,1))});a.Scrollbar=D})(N);(function(a){function D(a){this.init(a)}var B=a.addEvent,G=a.Axis,H=a.Chart,p=a.color,l=a.defaultOptions,r=a.defined,w=a.destroyObjectProperties,t=a.doc,k=a.each,m=a.erase,e=a.error,g=a.extend,h=a.grep,C=a.hasTouch,f=a.isNumber,d=a.isObject,b=a.isTouchDevice,q=a.merge,E=a.pick,c=a.removeEvent,F=a.Scrollbar,n=a.Series,A=a.seriesTypes,x=a.wrap,J=[].concat(a.defaultDataGroupingUnits),y=function(a){var b=h(arguments,f);if(b.length)return Math[a].apply(0, +b)};J[4]=["day",[1,2,3,4]];J[5]=["week",[1,2,3]];A=void 0===A.areaspline?"line":"areaspline";g(l,{navigator:{height:40,margin:25,maskInside:!0,handles:{backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:p("#6685c2").setOpacity(.3).get(),outlineColor:"#cccccc",outlineWidth:1,series:{type:A,color:"#335cad",fillOpacity:.05,lineWidth:1,compare:null,dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,smoothed:!0,units:J},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series", +className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},pointRange:0,shadow:!1,threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#999999"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}); +D.prototype={drawHandle:function(a,b){var c=this.chart.renderer,d=this.handles;this.rendered||(d[b]=c.path(["M",-4.5,.5,"L",3.5,.5,3.5,15.5,-4.5,15.5,-4.5,.5,"M",-1.5,4,"L",-1.5,12,"M",.5,4,"L",.5,12]).attr({zIndex:10-b}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][b]).add(),c=this.navigatorOptions.handles,d[b].attr({fill:c.backgroundColor,stroke:c.borderColor,"stroke-width":1}).css({cursor:"ew-resize"}));d[b][this.rendered&&!this.hasDragged?"animate":"attr"]({translateX:Math.round(this.scrollerLeft+ +this.scrollbarHeight+parseInt(a,10)),translateY:Math.round(this.top+this.height/2-8)})},update:function(a){this.destroy();q(!0,this.chart.options.navigator,this.options,a);this.init(this.chart)},render:function(a,b,c,d){var e=this.chart,g=e.renderer,k,h,l,n;n=this.scrollbarHeight;var m=this.xAxis,p=this.navigatorOptions,u=p.maskInside,q=this.height,v=this.top,t=this.navigatorEnabled,x=this.outlineHeight,y;y=this.rendered;if(f(a)&&f(b)&&(!this.hasDragged||r(c))&&(this.navigatorLeft=k=E(m.left,e.plotLeft+ +n),this.navigatorWidth=h=E(m.len,e.plotWidth-2*n),this.scrollerLeft=l=k-n,this.scrollerWidth=n=n=h+2*n,c=E(c,m.translate(a)),d=E(d,m.translate(b)),f(c)&&Infinity!==Math.abs(c)||(c=0,d=n),!(m.translate(d,!0)-m.translate(c,!0)f&&tp+d-u&&rk&&re?e=0:e+v>=q&&(e=q-v,x=h.getUnionExtremes().dataMax),e!==d&&(h.fixedWidth=v,d=l.toFixedRange(e, +e+v,null,x),c.setExtremes(d.min,d.max,!0,null,{trigger:"navigator"}))))};h.mouseMoveHandler=function(b){var c=h.scrollbarHeight,d=h.navigatorLeft,e=h.navigatorWidth,f=h.scrollerLeft,g=h.scrollerWidth,k=h.range,l;b.touches&&0===b.touches[0].pageX||(b=a.pointer.normalize(b),l=b.chartX,lf+g-c&&(l=f+g-c),h.grabbedLeft?(h.hasDragged=!0,h.render(0,0,l-d,h.otherHandlePos)):h.grabbedRight?(h.hasDragged=!0,h.render(0,0,h.otherHandlePos,l-d)):h.grabbedCenter&&(h.hasDragged=!0,le+n-k&&(l=e+ +n-k),h.render(0,0,l-n,l-n+k)),h.hasDragged&&h.scrollbar&&h.scrollbar.options.liveRedraw&&(b.DOMType=b.type,setTimeout(function(){h.mouseUpHandler(b)},0)))};h.mouseUpHandler=function(b){var c,d,e=b.DOMEvent||b;if(h.hasDragged||"scrollbar"===b.trigger)h.zoomedMin===h.otherHandlePos?c=h.fixedExtreme:h.zoomedMax===h.otherHandlePos&&(d=h.fixedExtreme),h.zoomedMax===h.navigatorWidth&&(d=h.getUnionExtremes().dataMax),c=l.toFixedRange(h.zoomedMin,h.zoomedMax,c,d),r(c.min)&&a.xAxis[0].setExtremes(c.min,c.max, +!0,h.hasDragged?!1:null,{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:e});"mousemove"!==b.DOMType&&(h.grabbedLeft=h.grabbedRight=h.grabbedCenter=h.fixedWidth=h.fixedExtreme=h.otherHandlePos=h.hasDragged=n=null)};var c=a.xAxis.length,f=a.yAxis.length,m=e&&e[0]&&e[0].xAxis||a.xAxis[0];a.extraBottomMargin=h.outlineHeight+d.margin;a.isDirtyBox=!0;h.navigatorEnabled?(h.xAxis=l=new G(a,q({breaks:m.options.breaks,ordinal:m.options.ordinal},d.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis", +isX:!0,type:"datetime",index:c,height:g,offset:0,offsetLeft:k,offsetRight:-k,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1})),h.yAxis=new G(a,q(d.yAxis,{id:"navigator-y-axis",alignTicks:!1,height:g,offset:0,index:f,zoomEnabled:!1})),e||d.series.data?h.addBaseSeries():0===a.series.length&&x(a,"redraw",function(b,c){0=Math.round(a.navigatorWidth);b&&!a.hasNavigatorData&&(b.options.pointStart=this.xData[0],b.setData(this.options.data,!1,null,!1))},destroy:function(){this.removeEvents();this.xAxis&&(m(this.chart.xAxis,this.xAxis),m(this.chart.axes,this.xAxis));this.yAxis&&(m(this.chart.yAxis,this.yAxis),m(this.chart.axes,this.yAxis));k(this.series||[],function(a){a.destroy&&a.destroy()});k("series xAxis yAxis leftShade rightShade outline scrollbarTrack scrollbarRifles scrollbarGroup scrollbar navigatorGroup rendered".split(" "), +function(a){this[a]&&this[a].destroy&&this[a].destroy();this[a]=null},this);k([this.handles,this.elementsToDestroy],function(a){w(a)},this)}};a.Navigator=D;x(G.prototype,"zoom",function(a,b,c){var d=this.chart,e=d.options,f=e.chart.zoomType,g=e.navigator,e=e.rangeSelector,h;this.isXAxis&&(g&&g.enabled||e&&e.enabled)&&("x"===f?d.resetZoomButton="blocked":"y"===f?h=!1:"xy"===f&&(d=this.previousZoom,r(b)?this.previousZoom=[this.min,this.max]:d&&(b=d[0],c=d[1],delete this.previousZoom)));return void 0!== +h?h:a.call(this,b,c)});x(H.prototype,"init",function(a,b,c){B(this,"beforeRender",function(){var a=this.options;if(a.navigator.enabled||a.scrollbar.enabled)this.scroller=this.navigator=new D(this)});a.call(this,b,c)});x(H.prototype,"getMargins",function(a){var b=this.legend,c=b.options,d=this.scroller,e,f;a.apply(this,[].slice.call(arguments,1));d&&(e=d.xAxis,f=d.yAxis,d.top=d.navigatorOptions.top||this.chartHeight-d.height-d.scrollbarHeight-this.spacing[2]-("bottom"===c.verticalAlign&&c.enabled&& +!c.floating?b.legendHeight+E(c.margin,10):0),e&&f&&(e.options.top=f.options.top=d.top,e.setAxisSize(),f.setAxisSize()))});x(n.prototype,"addPoint",function(a,b,c,f,g){var h=this.options.turboThreshold;h&&this.xData.length>h&&d(b,!0)&&this.chart.scroller&&e(20,!0);a.call(this,b,c,f,g)});x(H.prototype,"addSeries",function(a,b,c,d){a=a.call(this,b,!1,d);this.scroller&&this.scroller.setBaseSeries();E(c,!0)&&this.redraw();return a});x(n.prototype,"update",function(a,b,c){a.call(this,b,!1);this.chart.scroller&& +this.chart.scroller.setBaseSeries();E(c,!0)&&this.chart.redraw()})})(N);(function(a){function D(a){this.init(a)}var B=a.addEvent,G=a.Axis,H=a.Chart,p=a.css,l=a.createElement,r=a.dateFormat,w=a.defaultOptions,t=w.global.useUTC,k=a.defined,m=a.destroyObjectProperties,e=a.discardElement,g=a.each,h=a.extend,C=a.fireEvent,f=a.Date,d=a.isNumber,b=a.merge,q=a.pick,E=a.pInt,c=a.splat,F=a.wrap;h(w,{rangeSelector:{buttonTheme:{"stroke-width":0,width:28,height:18,padding:2,zIndex:7},height:35,inputPosition:{align:"right"}, +labelStyle:{color:"#666666"}}});w.lang=b(w.lang,{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"From",rangeSelectorTo:"To"});D.prototype={clickButton:function(a,b){var e=this,f=e.chart,h=e.buttonOptions[a],k=f.xAxis[0],l=f.scroller&&f.scroller.getUnionExtremes()||k||{},n=l.dataMin,m=l.dataMax,p,r=k&&Math.round(Math.min(k.max,q(m,k.max))),w=h.type,z,l=h._range,A,C,D,E=h.dataGrouping;if(null!==n&&null!==m){f.fixedRange=l;E&&(this.forcedDataGrouping=!0,G.prototype.setDataGrouping.call(k||{chart:this.chart}, +E,!1));if("month"===w||"year"===w)k?(w={range:h,max:r,dataMin:n,dataMax:m},p=k.minFromRange.call(w),d(w.newMax)&&(r=w.newMax)):l=h;else if(l)p=Math.max(r-l,n),r=Math.min(p+l,m);else if("ytd"===w)if(k)void 0===m&&(n=Number.MAX_VALUE,m=Number.MIN_VALUE,g(f.series,function(a){a=a.xData;n=Math.min(a[0],n);m=Math.max(a[a.length-1],m)}),b=!1),r=e.getYTDExtremes(m,n,t),p=A=r.min,r=r.max;else{B(f,"beforeRender",function(){e.clickButton(a)});return}else"all"===w&&k&&(p=n,r=m);e.setSelected(a);k?k.setExtremes(p, +r,q(b,1),null,{trigger:"rangeSelectorButton",rangeSelectorButton:h}):(z=c(f.options.xAxis)[0],D=z.range,z.range=l,C=z.min,z.min=A,B(f,"load",function(){z.range=D;z.min=C}))}},setSelected:function(a){this.selected=this.options.selected=a},defaultButtons:[{type:"month",count:1,text:"1m"},{type:"month",count:3,text:"3m"},{type:"month",count:6,text:"6m"},{type:"ytd",text:"YTD"},{type:"year",count:1,text:"1y"},{type:"all",text:"All"}],init:function(a){var b=this,c=a.options.rangeSelector,d=c.buttons|| +[].concat(b.defaultButtons),e=c.selected,f=function(){var a=b.minInput,c=b.maxInput;a&&a.blur&&C(a,"blur");c&&c.blur&&C(c,"blur")};b.chart=a;b.options=c;b.buttons=[];a.extraTopMargin=c.height;b.buttonOptions=d;this.unMouseDown=B(a.container,"mousedown",f);this.unResize=B(a,"resize",f);g(d,b.computeButtonRange);void 0!==e&&d[e]&&this.clickButton(e,!1);B(a,"load",function(){B(a.xAxis[0],"setExtremes",function(c){this.max-this.min!==a.fixedRange&&"rangeSelectorButton"!==c.trigger&&"updatedData"!==c.trigger&& +b.forcedDataGrouping&&this.setDataGrouping(!1,!1)})})},updateButtonStates:function(){var a=this.chart,b=a.xAxis[0],c=Math.round(b.max-b.min),e=!b.hasVisibleSeries,a=a.scroller&&a.scroller.getUnionExtremes()||b,f=a.dataMin,h=a.dataMax,a=this.getYTDExtremes(h,f,t),k=a.min,l=a.max,m=this.selected,p=d(m),q=this.options.allButtonsEnabled,r=this.buttons;g(this.buttonOptions,function(a,d){var g=a._range,n=a.type,u=a.count||1;a=r[d];var t=0;d=d===m;var v=g>h-f,x=g=864E5*{month:28,year:365}[n]*u&&c<=864E5*{month:31,year:366}[n]*u?g=!0:"ytd"===n?(g=l-k===c,y=!d):"all"===n&&(g=b.max-b.min>=h-f,w=!d&&p&&g);n=!q&&(v||x||w||e);g=d&&g||g&&!p&&!y;n?t=3:g&&(p=!0,t=2);a.state!==t&&a.setState(t)})},computeButtonRange:function(a){var b=a.type,c=a.count||1,d={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5};if(d[b])a._range=d[b]*c;else if("month"===b||"year"===b)a._range=864E5*{month:30,year:365}[b]*c},setInputValue:function(a,b){var c= +this.chart.options.rangeSelector,d=this[a+"Input"];k(b)&&(d.previousValue=d.HCTime,d.HCTime=b);d.value=r(c.inputEditDateFormat||"%Y-%m-%d",d.HCTime);this[a+"DateBox"].attr({text:r(c.inputDateFormat||"%b %e, %Y",d.HCTime)})},showInput:function(a){var b=this.inputGroup,c=this[a+"DateBox"];p(this[a+"Input"],{left:b.translateX+c.x+"px",top:b.translateY+"px",width:c.width-2+"px",height:c.height-2+"px",border:"2px solid silver"})},hideInput:function(a){p(this[a+"Input"],{border:0,width:"1px",height:"1px"}); +this.setInputValue(a)},drawInput:function(a){function c(){var a=r.value,b=(m.inputDateParser||Date.parse)(a),c=f.xAxis[0],g=f.scroller&&f.scroller.xAxis?f.scroller.xAxis:c,h=g.dataMin,g=g.dataMax;b!==r.previousValue&&(r.previousValue=b,d(b)||(b=a.split("-"),b=Date.UTC(E(b[0]),E(b[1])-1,E(b[2]))),d(b)&&(t||(b+=6E4*(new Date).getTimezoneOffset()),q?b>e.maxInput.HCTime?b=void 0:bg&&(b=g),void 0!==b&&c.setExtremes(q?b:c.min,q?c.max:b,void 0,void 0,{trigger:"rangeSelectorInput"})))} +var e=this,f=e.chart,g=f.renderer.style||{},k=f.renderer,m=f.options.rangeSelector,n=e.div,q="min"===a,r,B,C=this.inputGroup;this[a+"Label"]=B=k.label(w.lang[q?"rangeSelectorFrom":"rangeSelectorTo"],this.inputGroup.offset).addClass("highcharts-range-label").attr({padding:2}).add(C);C.offset+=B.width+5;this[a+"DateBox"]=k=k.label("",C.offset).addClass("highcharts-range-input").attr({padding:2,width:m.inputBoxWidth||90,height:m.inputBoxHeight||17,stroke:m.inputBoxBorderColor||"#cccccc","stroke-width":1, +"text-align":"center"}).on("click",function(){e.showInput(a);e[a+"Input"].focus()}).add(C);C.offset+=k.width+(q?10:0);this[a+"Input"]=r=l("input",{name:a,className:"highcharts-range-selector",type:"text"},{top:f.plotTop+"px"},n);B.css(b(g,m.labelStyle));k.css(b({color:"#333333"},g,m.inputStyle));p(r,h({position:"absolute",border:0,width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:g.fontSize,fontFamily:g.fontFamily,left:"-9em"},m.inputStyle));r.onfocus=function(){e.showInput(a)};r.onblur= +function(){e.hideInput(a)};r.onchange=c;r.onkeypress=function(a){13===a.keyCode&&c()}},getPosition:function(){var a=this.chart,b=a.options.rangeSelector,a=q((b.buttonPosition||{}).y,a.plotTop-a.axisOffset[0]-b.height);return{buttonTop:a,inputTop:a-10}},getYTDExtremes:function(a,b,c){var d=new f(a),e=d[f.hcGetFullYear]();c=c?f.UTC(e,0,1):+new f(e,0,1);b=Math.max(b||0,c);d=d.getTime();return{max:Math.min(a||d,d),min:b}},render:function(a,b){var c=this,d=c.chart,e=d.renderer,f=d.container,m=d.options, +n=m.exporting&&!1!==m.exporting.enabled&&m.navigation&&m.navigation.buttonOptions,p=m.rangeSelector,r=c.buttons,m=w.lang,t=c.div,t=c.inputGroup,A=p.buttonTheme,z=p.buttonPosition||{},B=p.inputEnabled,C=A&&A.states,D=d.plotLeft,E,G=this.getPosition(),F=c.group,H=c.rendered;!1!==p.enabled&&(H||(c.group=F=e.g("range-selector-buttons").add(),c.zoomText=e.text(m.rangeSelectorZoom,q(z.x,D),15).css(p.labelStyle).add(F),E=q(z.x,D)+c.zoomText.getBBox().width+5,g(c.buttonOptions,function(a,b){r[b]=e.button(a.text, +E,0,function(){c.clickButton(b);c.isActive=!0},A,C&&C.hover,C&&C.select,C&&C.disabled).attr({"text-align":"center"}).add(F);E+=r[b].width+q(p.buttonSpacing,5)}),!1!==B&&(c.div=t=l("div",null,{position:"relative",height:0,zIndex:1}),f.parentNode.insertBefore(t,f),c.inputGroup=t=e.g("input-group").add(),t.offset=0,c.drawInput("min"),c.drawInput("max"))),c.updateButtonStates(),F[H?"animate":"attr"]({translateY:G.buttonTop}),!1!==B&&(t.align(h({y:G.inputTop,width:t.offset,x:n&&G.inputTop<(n.y||0)+n.height- +d.spacing[0]?-40:0},p.inputPosition),!0,d.spacingBox),k(B)||(d=F.getBBox(),t[t.alignAttr.translateXc&&(e?a=b-f:b=a+f);d(a)||(a=b=void 0);return{min:a,max:b}};G.prototype.minFromRange=function(){var a=this.range,b={month:"Month",year:"FullYear"}[a.type],c,e=this.max,f,g,h=function(a,c){var d=new Date(a);d["set"+b](d["get"+ +b]()+c);return d.getTime()-a};d(a)?(c=e-a,g=a):(c=e+h(e,-a.count),this.chart&&(this.chart.fixedRange=e-c));f=q(this.dataMin,Number.MIN_VALUE);d(c)||(c=f);c<=f&&(c=f,void 0===g&&(g=h(c,a.count)),this.newMax=Math.min(c+g,this.dataMax));d(e)||(c=void 0);return c};F(H.prototype,"init",function(a,b,c){B(this,"init",function(){this.options.rangeSelector.enabled&&(this.rangeSelector=new D(this))});a.call(this,b,c)});a.RangeSelector=D})(N);(function(a){var D=a.addEvent,B=a.isNumber;a.Chart.prototype.callbacks.push(function(a){function G(){p= +a.xAxis[0].getExtremes();B(p.min)&&r.render(p.min,p.max)}var p,l=a.scroller,r=a.rangeSelector,w,t;l&&(p=a.xAxis[0].getExtremes(),l.render(p.min,p.max));r&&(t=D(a.xAxis[0],"afterSetExtremes",function(a){r.render(a.min,a.max)}),w=D(a,"redraw",G),G());D(a,"destroy",function(){r&&(w(),t())})})})(N);(function(a){var D=a.arrayMax,B=a.arrayMin,G=a.Axis,H=a.Chart,p=a.defined,l=a.each,r=a.extend,w=a.format,t=a.inArray,k=a.isNumber,m=a.isString,e=a.map,g=a.merge,h=a.pick,C=a.Point,f=a.Renderer,d=a.Series,b= +a.splat,q=a.stop,E=a.SVGRenderer,c=a.VMLRenderer,F=a.wrap,n=d.prototype,A=n.init,x=n.processData,J=C.prototype.tooltipFormatter;a.StockChart=a.stockChart=function(c,d,f){var k=m(c)||c.nodeName,l=arguments[k?1:0],n=l.series,p=a.getOptions(),q,r=h(l.navigator&&l.navigator.enabled,!0)?{startOnTick:!1,endOnTick:!1}:null,t={marker:{enabled:!1,radius:2}},u={shadow:!1,borderWidth:0};l.xAxis=e(b(l.xAxis||{}),function(a){return g({minPadding:0,maxPadding:0,ordinal:!0,title:{text:null},labels:{overflow:"justify"}, +showLastLabel:!0},p.xAxis,a,{type:"datetime",categories:null},r)});l.yAxis=e(b(l.yAxis||{}),function(a){q=h(a.opposite,!0);return g({labels:{y:-2},opposite:q,showLastLabel:!1,title:{text:null}},p.yAxis,a)});l.series=null;l=g({chart:{panning:!0,pinchType:"x"},navigator:{enabled:!0},scrollbar:{enabled:!0},rangeSelector:{enabled:!0},title:{text:null,style:{fontSize:"16px"}},tooltip:{shared:!0,crosshairs:!0},legend:{enabled:!1},plotOptions:{line:t,spline:t,area:t,areaspline:t,arearange:t,areasplinerange:t, +column:u,columnrange:u,candlestick:u,ohlc:u}},l,{_stock:!0,chart:{inverted:!1}});l.series=n;return k?new H(c,l,f):new H(l,d)};F(G.prototype,"autoLabelAlign",function(a){var b=this.chart,c=this.options,b=b._labelPanes=b._labelPanes||{},d=this.options.labels;return this.chart.options._stock&&"yAxis"===this.coll&&(c=c.top+","+c.height,!b[c]&&d.enabled)?(15===d.x&&(d.x=0),void 0===d.align&&(d.align="right"),b[c]=1,"right"):a.call(this,[].slice.call(arguments,1))});F(G.prototype,"getPlotLinePath",function(a, +b,c,d,f,g){var n=this,q=this.isLinked&&!this.series?this.linkedParent.series:this.series,r=n.chart,u=r.renderer,v=n.left,w=n.top,y,x,A,B,C=[],D=[],E,F;if("colorAxis"===n.coll)return a.apply(this,[].slice.call(arguments,1));D=function(a){var b="xAxis"===a?"yAxis":"xAxis";a=n.options[b];return k(a)?[r[b][a]]:m(a)?[r.get(a)]:e(q,function(a){return a[b]})}(n.coll);l(n.isXAxis?r.yAxis:r.xAxis,function(a){if(p(a.options.id)?-1===a.options.id.indexOf("navigator"):1){var b=a.isXAxis?"yAxis":"xAxis",b=p(a.options[b])? +r[b][a.options[b]]:r[b][0];n===b&&D.push(a)}});E=D.length?[]:[n.isXAxis?r.yAxis[0]:r.xAxis[0]];l(D,function(a){-1===t(a,E)&&E.push(a)});F=h(g,n.translate(b,null,null,d));k(F)&&(n.horiz?l(E,function(a){var b;x=a.pos;B=x+a.len;y=A=Math.round(F+n.transB);if(yv+n.width)f?y=A=Math.min(Math.max(v,y),v+n.width):b=!0;b||C.push("M",y,x,"L",A,B)}):l(E,function(a){var b;y=a.pos;A=y+a.len;x=B=Math.round(w+n.height-F);if(xw+n.height)f?x=B=Math.min(Math.max(w,x),n.top+n.height):b=!0;b||C.push("M",y, +x,"L",A,B)}));return 0=e&&(x=-(l.translateX+b.width-e));l.attr({x:m+x,y:k,anchorX:g?m:this.opposite?0:a.chartWidth,anchorY:g?this.opposite?a.chartHeight:0:k+b.height/2})}});n.init=function(){A.apply(this,arguments);this.setCompare(this.options.compare)};n.setCompare=function(a){this.modifyValue= +"value"===a||"percent"===a?function(b,c){var d=this.compareValue;if(void 0!==b&&void 0!==d)return b="value"===a?b-d:b=b/d*100-100,c&&(c.change=b),b}:null;this.userOptions.compare=a;this.chart.hasRendered&&(this.isDirty=!0)};n.processData=function(){var a,b=-1,c,d,e,f;x.apply(this,arguments);if(this.xAxis&&this.processedYData)for(c=this.processedXData,d=this.processedYData,e=d.length,this.pointArrayMap&&(b=t("close",this.pointArrayMap),-1===b&&(b=t(this.pointValKey||"y",this.pointArrayMap))),a=0;a< +e-1;a++)if(f=-1=this.xAxis.min&&0!==f){this.compareValue=f;break}};F(n,"getExtremes",function(a){var b;a.apply(this,[].slice.call(arguments,1));this.modifyValue&&(b=[this.modifyValue(this.dataMin),this.modifyValue(this.dataMax)],this.dataMin=B(b),this.dataMax=D(b))});G.prototype.setCompare=function(a,b){this.isXAxis||(l(this.series,function(b){b.setCompare(a)}),h(b,!0)&&this.chart.redraw())};C.prototype.tooltipFormatter=function(b){b=b.replace("{point.change}",(0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=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))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(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&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(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&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(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 ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);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&&E){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=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(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(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===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]||se.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]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(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(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(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=se.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 D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.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 S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(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 qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.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)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.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),m(t)&&(t=t.call(e,n,S.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):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.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"===S.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"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(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)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(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?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.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)}}),S.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){S.fn[n]=function(e,t){return 0 '; + else + var expandButton = ''; + + return '' + expandButton + '' + ellipsedLabel({ name: item.name, parentClass: "nav-tooltip", childClass: "nav-label" }) + ''; +} + +function menuItemsForGroup(group, level, parent) { + var items = ''; + + if (level > 0) + items += menuItem(group, level - 1, parent, true); + + $.each(group.contents, function (contentName, content) { + if (content.type == 'GROUP') + items += menuItemsForGroup(content, level + 1, group.pathFormatted); + else if (content.type == 'REQUEST') + items += menuItem(content, level, group.pathFormatted); + }); + + return items; +} + +function setDetailsMenu(){ + $('.nav ul').append(menuItemsForGroup(stats, 0)); + $('.nav').expandable(); + $('.nav-tooltip').popover({trigger:'hover'}); +} + +function setGlobalMenu(){ + $('.nav ul') + .append('
  • Ranges
  • ') + .append('
  • Stats
  • ') + .append('
  • Active Users
  • ') + .append('
  • Requests / sec
  • ') + .append('
  • Responses / sec
  • '); +} + +function getLink(link){ + var a = link.split('/'); + return (a.length<=1)? link : a[a.length-1]; +} + +function expandUp(li) { + const parentId = li.attr("data-parent"); + if (parentId != "ROOT") { + const span = $('#' + parentId); + const parentLi = span.parents('li').first(); + span.expand(parentLi, false); + expandUp(parentLi); + } +} + +function setActiveMenu(){ + $('.nav a').each(function() { + const navA = $(this) + if(!navA.hasClass('expand-button') && navA.attr('href') == getLink(window.location.pathname)) { + const li = $(this).parents('li').first(); + li.addClass('on'); + expandUp(li); + return false; + } + }); +} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/stats.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/stats.js new file mode 100644 index 0000000..40c1bff --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/stats.js @@ -0,0 +1,1523 @@ +var stats = { + type: "GROUP", +name: "All Requests", +path: "", +pathFormatted: "group_missing-name--1146707516", +stats: { + "name": "All Requests", + "numberOfRequests": { + "total": "10030", + "ok": "10030", + "ko": "0" + }, + "minResponseTime": { + "total": "23", + "ok": "23", + "ko": "-" + }, + "maxResponseTime": { + "total": "58634", + "ok": "58634", + "ko": "-" + }, + "meanResponseTime": { + "total": "2329", + "ok": "2329", + "ko": "-" + }, + "standardDeviation": { + "total": "7662", + "ok": "7662", + "ko": "-" + }, + "percentiles1": { + "total": "122", + "ok": "122", + "ko": "-" + }, + "percentiles2": { + "total": "424", + "ok": "424", + "ko": "-" + }, + "percentiles3": { + "total": "17978", + "ok": "17978", + "ko": "-" + }, + "percentiles4": { + "total": "43355", + "ok": "43355", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 7679, + "percentage": 77 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 1105, + "percentage": 11 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 1246, + "percentage": 12 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "61.914", + "ok": "61.914", + "ko": "-" + } +}, +contents: { +"req_request-0-693933696": { + type: "REQUEST", + name: "request_0", +path: "request_0", +pathFormatted: "req_request-0-693933696", +stats: { + "name": "request_0", + "numberOfRequests": { + "total": "590", + "ok": "590", + "ko": "0" + }, + "minResponseTime": { + "total": "74", + "ok": "74", + "ko": "-" + }, + "maxResponseTime": { + "total": "5207", + "ok": "5207", + "ko": "-" + }, + "meanResponseTime": { + "total": "343", + "ok": "343", + "ko": "-" + }, + "standardDeviation": { + "total": "502", + "ok": "502", + "ko": "-" + }, + "percentiles1": { + "total": "130", + "ok": "130", + "ko": "-" + }, + "percentiles2": { + "total": "176", + "ok": "176", + "ko": "-" + }, + "percentiles3": { + "total": "1187", + "ok": "1187", + "ko": "-" + }, + "percentiles4": { + "total": "1725", + "ok": "1725", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 488, + "percentage": 83 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 73, + "percentage": 12 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 29, + "percentage": 5 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "3.642", + "ok": "3.642", + "ko": "-" + } +} + },"req_request-1-693933697": { + type: "REQUEST", + name: "request_1", +path: "request_1", +pathFormatted: "req_request-1-693933697", +stats: { + "name": "request_1", + "numberOfRequests": { + "total": "590", + "ok": "590", + "ko": "0" + }, + "minResponseTime": { + "total": "36", + "ok": "36", + "ko": "-" + }, + "maxResponseTime": { + "total": "1435", + "ok": "1435", + "ko": "-" + }, + "meanResponseTime": { + "total": "88", + "ok": "88", + "ko": "-" + }, + "standardDeviation": { + "total": "145", + "ok": "145", + "ko": "-" + }, + "percentiles1": { + "total": "64", + "ok": "64", + "ko": "-" + }, + "percentiles2": { + "total": "67", + "ok": "67", + "ko": "-" + }, + "percentiles3": { + "total": "134", + "ok": "134", + "ko": "-" + }, + "percentiles4": { + "total": "1158", + "ok": "1158", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 583, + "percentage": 99 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 1, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 6, + "percentage": 1 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "3.642", + "ok": "3.642", + "ko": "-" + } +} + },"req_request-2-693933698": { + type: "REQUEST", + name: "request_2", +path: "request_2", +pathFormatted: "req_request-2-693933698", +stats: { + "name": "request_2", + "numberOfRequests": { + "total": "590", + "ok": "590", + "ko": "0" + }, + "minResponseTime": { + "total": "73", + "ok": "73", + "ko": "-" + }, + "maxResponseTime": { + "total": "7166", + "ok": "7166", + "ko": "-" + }, + "meanResponseTime": { + "total": "368", + "ok": "368", + "ko": "-" + }, + "standardDeviation": { + "total": "692", + "ok": "692", + "ko": "-" + }, + "percentiles1": { + "total": "130", + "ok": "130", + "ko": "-" + }, + "percentiles2": { + "total": "187", + "ok": "187", + "ko": "-" + }, + "percentiles3": { + "total": "1162", + "ok": "1162", + "ko": "-" + }, + "percentiles4": { + "total": "2523", + "ok": "2523", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 492, + "percentage": 83 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 74, + "percentage": 13 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 24, + "percentage": 4 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "3.642", + "ok": "3.642", + "ko": "-" + } +} + },"req_request-3-693933699": { + type: "REQUEST", + name: "request_3", +path: "request_3", +pathFormatted: "req_request-3-693933699", +stats: { + "name": "request_3", + "numberOfRequests": { + "total": "590", + "ok": "590", + "ko": "0" + }, + "minResponseTime": { + "total": "75", + "ok": "75", + "ko": "-" + }, + "maxResponseTime": { + "total": "7152", + "ok": "7152", + "ko": "-" + }, + "meanResponseTime": { + "total": "341", + "ok": "341", + "ko": "-" + }, + "standardDeviation": { + "total": "658", + "ok": "658", + "ko": "-" + }, + "percentiles1": { + "total": "129", + "ok": "129", + "ko": "-" + }, + "percentiles2": { + "total": "131", + "ok": "131", + "ko": "-" + }, + "percentiles3": { + "total": "1271", + "ok": "1271", + "ko": "-" + }, + "percentiles4": { + "total": "3139", + "ok": "3139", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 512, + "percentage": 87 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 47, + "percentage": 8 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 31, + "percentage": 5 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "3.642", + "ok": "3.642", + "ko": "-" + } +} + },"req_request-4-693933700": { + type: "REQUEST", + name: "request_4", +path: "request_4", +pathFormatted: "req_request-4-693933700", +stats: { + "name": "request_4", + "numberOfRequests": { + "total": "590", + "ok": "590", + "ko": "0" + }, + "minResponseTime": { + "total": "110", + "ok": "110", + "ko": "-" + }, + "maxResponseTime": { + "total": "2761", + "ok": "2761", + "ko": "-" + }, + "meanResponseTime": { + "total": "299", + "ok": "299", + "ko": "-" + }, + "standardDeviation": { + "total": "214", + "ok": "214", + "ko": "-" + }, + "percentiles1": { + "total": "226", + "ok": "226", + "ko": "-" + }, + "percentiles2": { + "total": "340", + "ok": "340", + "ko": "-" + }, + "percentiles3": { + "total": "704", + "ok": "704", + "ko": "-" + }, + "percentiles4": { + "total": "914", + "ok": "914", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 575, + "percentage": 97 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 10, + "percentage": 2 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 5, + "percentage": 1 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "3.642", + "ok": "3.642", + "ko": "-" + } +} + },"req_request-5-693933701": { + type: "REQUEST", + name: "request_5", +path: "request_5", +pathFormatted: "req_request-5-693933701", +stats: { + "name": "request_5", + "numberOfRequests": { + "total": "590", + "ok": "590", + "ko": "0" + }, + "minResponseTime": { + "total": "329", + "ok": "329", + "ko": "-" + }, + "maxResponseTime": { + "total": "22204", + "ok": "22204", + "ko": "-" + }, + "meanResponseTime": { + "total": "6914", + "ok": "6914", + "ko": "-" + }, + "standardDeviation": { + "total": "4689", + "ok": "4689", + "ko": "-" + }, + "percentiles1": { + "total": "6215", + "ok": "6215", + "ko": "-" + }, + "percentiles2": { + "total": "10065", + "ok": "10065", + "ko": "-" + }, + "percentiles3": { + "total": "15889", + "ok": "15889", + "ko": "-" + }, + "percentiles4": { + "total": "18962", + "ok": "18962", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 16, + "percentage": 3 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 22, + "percentage": 4 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 552, + "percentage": 94 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "3.642", + "ok": "3.642", + "ko": "-" + } +} + },"req_request-6-693933702": { + type: "REQUEST", + name: "request_6", +path: "request_6", +pathFormatted: "req_request-6-693933702", +stats: { + "name": "request_6", + "numberOfRequests": { + "total": "590", + "ok": "590", + "ko": "0" + }, + "minResponseTime": { + "total": "514", + "ok": "514", + "ko": "-" + }, + "maxResponseTime": { + "total": "58634", + "ok": "58634", + "ko": "-" + }, + "meanResponseTime": { + "total": "28962", + "ok": "28962", + "ko": "-" + }, + "standardDeviation": { + "total": "13344", + "ok": "13344", + "ko": "-" + }, + "percentiles1": { + "total": "28884", + "ok": "28884", + "ko": "-" + }, + "percentiles2": { + "total": "38684", + "ok": "38684", + "ko": "-" + }, + "percentiles3": { + "total": "49597", + "ok": "49597", + "ko": "-" + }, + "percentiles4": { + "total": "55863", + "ok": "55863", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 2, + "percentage": 0 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 1, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 587, + "percentage": 99 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "3.642", + "ok": "3.642", + "ko": "-" + } +} + },"req_request-7-693933703": { + type: "REQUEST", + name: "request_7", +path: "request_7", +pathFormatted: "req_request-7-693933703", +stats: { + "name": "request_7", + "numberOfRequests": { + "total": "590", + "ok": "590", + "ko": "0" + }, + "minResponseTime": { + "total": "51", + "ok": "51", + "ko": "-" + }, + "maxResponseTime": { + "total": "3126", + "ok": "3126", + "ko": "-" + }, + "meanResponseTime": { + "total": "278", + "ok": "278", + "ko": "-" + }, + "standardDeviation": { + "total": "410", + "ok": "410", + "ko": "-" + }, + "percentiles1": { + "total": "127", + "ok": "127", + "ko": "-" + }, + "percentiles2": { + "total": "132", + "ok": "132", + "ko": "-" + }, + "percentiles3": { + "total": "1135", + "ok": "1135", + "ko": "-" + }, + "percentiles4": { + "total": "1542", + "ok": "1542", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 506, + "percentage": 86 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 73, + "percentage": 12 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 11, + "percentage": 2 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "3.642", + "ok": "3.642", + "ko": "-" + } +} + },"req_request-8-693933704": { + type: "REQUEST", + name: "request_8", +path: "request_8", +pathFormatted: "req_request-8-693933704", +stats: { + "name": "request_8", + "numberOfRequests": { + "total": "590", + "ok": "590", + "ko": "0" + }, + "minResponseTime": { + "total": "74", + "ok": "74", + "ko": "-" + }, + "maxResponseTime": { + "total": "1146", + "ok": "1146", + "ko": "-" + }, + "meanResponseTime": { + "total": "303", + "ok": "303", + "ko": "-" + }, + "standardDeviation": { + "total": "406", + "ok": "406", + "ko": "-" + }, + "percentiles1": { + "total": "82", + "ok": "83", + "ko": "-" + }, + "percentiles2": { + "total": "132", + "ok": "132", + "ko": "-" + }, + "percentiles3": { + "total": "1094", + "ok": "1094", + "ko": "-" + }, + "percentiles4": { + "total": "1134", + "ok": "1134", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 467, + "percentage": 79 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 123, + "percentage": 21 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "3.642", + "ok": "3.642", + "ko": "-" + } +} + },"req_request-9-693933705": { + type: "REQUEST", + name: "request_9", +path: "request_9", +pathFormatted: "req_request-9-693933705", +stats: { + "name": "request_9", + "numberOfRequests": { + "total": "590", + "ok": "590", + "ko": "0" + }, + "minResponseTime": { + "total": "73", + "ok": "73", + "ko": "-" + }, + "maxResponseTime": { + "total": "1142", + "ok": "1142", + "ko": "-" + }, + "meanResponseTime": { + "total": "336", + "ok": "336", + "ko": "-" + }, + "standardDeviation": { + "total": "430", + "ok": "430", + "ko": "-" + }, + "percentiles1": { + "total": "82", + "ok": "82", + "ko": "-" + }, + "percentiles2": { + "total": "135", + "ok": "135", + "ko": "-" + }, + "percentiles3": { + "total": "1094", + "ok": "1094", + "ko": "-" + }, + "percentiles4": { + "total": "1136", + "ok": "1136", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 446, + "percentage": 76 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 144, + "percentage": 24 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "3.642", + "ok": "3.642", + "ko": "-" + } +} + },"req_request-10-37108175": { + type: "REQUEST", + name: "request_10", +path: "request_10", +pathFormatted: "req_request-10-37108175", +stats: { + "name": "request_10", + "numberOfRequests": { + "total": "590", + "ok": "590", + "ko": "0" + }, + "minResponseTime": { + "total": "75", + "ok": "75", + "ko": "-" + }, + "maxResponseTime": { + "total": "1145", + "ok": "1145", + "ko": "-" + }, + "meanResponseTime": { + "total": "405", + "ok": "405", + "ko": "-" + }, + "standardDeviation": { + "total": "462", + "ok": "462", + "ko": "-" + }, + "percentiles1": { + "total": "85", + "ok": "85", + "ko": "-" + }, + "percentiles2": { + "total": "1082", + "ok": "1082", + "ko": "-" + }, + "percentiles3": { + "total": "1097", + "ok": "1097", + "ko": "-" + }, + "percentiles4": { + "total": "1137", + "ok": "1137", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 408, + "percentage": 69 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 182, + "percentage": 31 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "3.642", + "ok": "3.642", + "ko": "-" + } +} + },"req_request-11-37108176": { + type: "REQUEST", + name: "request_11", +path: "request_11", +pathFormatted: "req_request-11-37108176", +stats: { + "name": "request_11", + "numberOfRequests": { + "total": "590", + "ok": "590", + "ko": "0" + }, + "minResponseTime": { + "total": "37", + "ok": "37", + "ko": "-" + }, + "maxResponseTime": { + "total": "350", + "ok": "350", + "ko": "-" + }, + "meanResponseTime": { + "total": "46", + "ok": "46", + "ko": "-" + }, + "standardDeviation": { + "total": "16", + "ok": "16", + "ko": "-" + }, + "percentiles1": { + "total": "42", + "ok": "42", + "ko": "-" + }, + "percentiles2": { + "total": "43", + "ok": "43", + "ko": "-" + }, + "percentiles3": { + "total": "68", + "ok": "68", + "ko": "-" + }, + "percentiles4": { + "total": "75", + "ok": "75", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 590, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "3.642", + "ok": "3.642", + "ko": "-" + } +} + },"req_request-12-37108177": { + type: "REQUEST", + name: "request_12", +path: "request_12", +pathFormatted: "req_request-12-37108177", +stats: { + "name": "request_12", + "numberOfRequests": { + "total": "590", + "ok": "590", + "ko": "0" + }, + "minResponseTime": { + "total": "23", + "ok": "23", + "ko": "-" + }, + "maxResponseTime": { + "total": "1057", + "ok": "1057", + "ko": "-" + }, + "meanResponseTime": { + "total": "62", + "ok": "62", + "ko": "-" + }, + "standardDeviation": { + "total": "156", + "ok": "156", + "ko": "-" + }, + "percentiles1": { + "total": "30", + "ok": "30", + "ko": "-" + }, + "percentiles2": { + "total": "32", + "ok": "32", + "ko": "-" + }, + "percentiles3": { + "total": "81", + "ok": "81", + "ko": "-" + }, + "percentiles4": { + "total": "1035", + "ok": "1035", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 576, + "percentage": 98 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 14, + "percentage": 2 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "3.642", + "ok": "3.642", + "ko": "-" + } +} + },"req_request-14-37108179": { + type: "REQUEST", + name: "request_14", +path: "request_14", +pathFormatted: "req_request-14-37108179", +stats: { + "name": "request_14", + "numberOfRequests": { + "total": "590", + "ok": "590", + "ko": "0" + }, + "minResponseTime": { + "total": "35", + "ok": "35", + "ko": "-" + }, + "maxResponseTime": { + "total": "1094", + "ok": "1094", + "ko": "-" + }, + "meanResponseTime": { + "total": "51", + "ok": "51", + "ko": "-" + }, + "standardDeviation": { + "total": "89", + "ok": "89", + "ko": "-" + }, + "percentiles1": { + "total": "39", + "ok": "39", + "ko": "-" + }, + "percentiles2": { + "total": "40", + "ok": "40", + "ko": "-" + }, + "percentiles3": { + "total": "65", + "ok": "65", + "ko": "-" + }, + "percentiles4": { + "total": "335", + "ok": "335", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 586, + "percentage": 99 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 4, + "percentage": 1 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "3.642", + "ok": "3.642", + "ko": "-" + } +} + },"req_request-15-37108180": { + type: "REQUEST", + name: "request_15", +path: "request_15", +pathFormatted: "req_request-15-37108180", +stats: { + "name": "request_15", + "numberOfRequests": { + "total": "590", + "ok": "590", + "ko": "0" + }, + "minResponseTime": { + "total": "38", + "ok": "38", + "ko": "-" + }, + "maxResponseTime": { + "total": "362", + "ok": "362", + "ko": "-" + }, + "meanResponseTime": { + "total": "46", + "ok": "46", + "ko": "-" + }, + "standardDeviation": { + "total": "21", + "ok": "21", + "ko": "-" + }, + "percentiles1": { + "total": "41", + "ok": "41", + "ko": "-" + }, + "percentiles2": { + "total": "43", + "ok": "43", + "ko": "-" + }, + "percentiles3": { + "total": "68", + "ok": "68", + "ko": "-" + }, + "percentiles4": { + "total": "71", + "ok": "71", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 590, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "3.642", + "ok": "3.642", + "ko": "-" + } +} + },"req_request-16-37108181": { + type: "REQUEST", + name: "request_16", +path: "request_16", +pathFormatted: "req_request-16-37108181", +stats: { + "name": "request_16", + "numberOfRequests": { + "total": "590", + "ok": "590", + "ko": "0" + }, + "minResponseTime": { + "total": "74", + "ok": "74", + "ko": "-" + }, + "maxResponseTime": { + "total": "2145", + "ok": "2145", + "ko": "-" + }, + "meanResponseTime": { + "total": "378", + "ok": "378", + "ko": "-" + }, + "standardDeviation": { + "total": "459", + "ok": "459", + "ko": "-" + }, + "percentiles1": { + "total": "82", + "ok": "82", + "ko": "-" + }, + "percentiles2": { + "total": "1079", + "ok": "1079", + "ko": "-" + }, + "percentiles3": { + "total": "1095", + "ok": "1095", + "ko": "-" + }, + "percentiles4": { + "total": "1128", + "ok": "1128", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 420, + "percentage": 71 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 169, + "percentage": 29 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 1, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "3.642", + "ok": "3.642", + "ko": "-" + } +} + },"req_request-17-37108182": { + type: "REQUEST", + name: "request_17", +path: "request_17", +pathFormatted: "req_request-17-37108182", +stats: { + "name": "request_17", + "numberOfRequests": { + "total": "590", + "ok": "590", + "ko": "0" + }, + "minResponseTime": { + "total": "73", + "ok": "73", + "ko": "-" + }, + "maxResponseTime": { + "total": "1143", + "ok": "1143", + "ko": "-" + }, + "meanResponseTime": { + "total": "371", + "ok": "371", + "ko": "-" + }, + "standardDeviation": { + "total": "454", + "ok": "454", + "ko": "-" + }, + "percentiles1": { + "total": "82", + "ok": "82", + "ko": "-" + }, + "percentiles2": { + "total": "1079", + "ok": "1079", + "ko": "-" + }, + "percentiles3": { + "total": "1095", + "ok": "1095", + "ko": "-" + }, + "percentiles4": { + "total": "1098", + "ok": "1098", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 422, + "percentage": 72 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 168, + "percentage": 28 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "3.642", + "ok": "3.642", + "ko": "-" + } +} + } +} + +} + +function fillStats(stat){ + $("#numberOfRequests").append(stat.numberOfRequests.total); + $("#numberOfRequestsOK").append(stat.numberOfRequests.ok); + $("#numberOfRequestsKO").append(stat.numberOfRequests.ko); + + $("#minResponseTime").append(stat.minResponseTime.total); + $("#minResponseTimeOK").append(stat.minResponseTime.ok); + $("#minResponseTimeKO").append(stat.minResponseTime.ko); + + $("#maxResponseTime").append(stat.maxResponseTime.total); + $("#maxResponseTimeOK").append(stat.maxResponseTime.ok); + $("#maxResponseTimeKO").append(stat.maxResponseTime.ko); + + $("#meanResponseTime").append(stat.meanResponseTime.total); + $("#meanResponseTimeOK").append(stat.meanResponseTime.ok); + $("#meanResponseTimeKO").append(stat.meanResponseTime.ko); + + $("#standardDeviation").append(stat.standardDeviation.total); + $("#standardDeviationOK").append(stat.standardDeviation.ok); + $("#standardDeviationKO").append(stat.standardDeviation.ko); + + $("#percentiles1").append(stat.percentiles1.total); + $("#percentiles1OK").append(stat.percentiles1.ok); + $("#percentiles1KO").append(stat.percentiles1.ko); + + $("#percentiles2").append(stat.percentiles2.total); + $("#percentiles2OK").append(stat.percentiles2.ok); + $("#percentiles2KO").append(stat.percentiles2.ko); + + $("#percentiles3").append(stat.percentiles3.total); + $("#percentiles3OK").append(stat.percentiles3.ok); + $("#percentiles3KO").append(stat.percentiles3.ko); + + $("#percentiles4").append(stat.percentiles4.total); + $("#percentiles4OK").append(stat.percentiles4.ok); + $("#percentiles4KO").append(stat.percentiles4.ko); + + $("#meanNumberOfRequestsPerSecond").append(stat.meanNumberOfRequestsPerSecond.total); + $("#meanNumberOfRequestsPerSecondOK").append(stat.meanNumberOfRequestsPerSecond.ok); + $("#meanNumberOfRequestsPerSecondKO").append(stat.meanNumberOfRequestsPerSecond.ko); +} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/stats.json b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/stats.json new file mode 100644 index 0000000..ffe3dcf --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/stats.json @@ -0,0 +1,1481 @@ +{ + "type": "GROUP", +"name": "All Requests", +"path": "", +"pathFormatted": "group_missing-name--1146707516", +"stats": { + "name": "All Requests", + "numberOfRequests": { + "total": 10030, + "ok": 10030, + "ko": 0 + }, + "minResponseTime": { + "total": 23, + "ok": 23, + "ko": 0 + }, + "maxResponseTime": { + "total": 58634, + "ok": 58634, + "ko": 0 + }, + "meanResponseTime": { + "total": 2329, + "ok": 2329, + "ko": 0 + }, + "standardDeviation": { + "total": 7662, + "ok": 7662, + "ko": 0 + }, + "percentiles1": { + "total": 122, + "ok": 122, + "ko": 0 + }, + "percentiles2": { + "total": 424, + "ok": 424, + "ko": 0 + }, + "percentiles3": { + "total": 17978, + "ok": 17978, + "ko": 0 + }, + "percentiles4": { + "total": 43355, + "ok": 43355, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 7679, + "percentage": 77 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 1105, + "percentage": 11 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 1246, + "percentage": 12 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 61.91358024691358, + "ok": 61.91358024691358, + "ko": 0 + } +}, +"contents": { +"req_request-0-693933696": { + "type": "REQUEST", + "name": "request_0", +"path": "request_0", +"pathFormatted": "req_request-0-693933696", +"stats": { + "name": "request_0", + "numberOfRequests": { + "total": 590, + "ok": 590, + "ko": 0 + }, + "minResponseTime": { + "total": 74, + "ok": 74, + "ko": 0 + }, + "maxResponseTime": { + "total": 5207, + "ok": 5207, + "ko": 0 + }, + "meanResponseTime": { + "total": 343, + "ok": 343, + "ko": 0 + }, + "standardDeviation": { + "total": 502, + "ok": 502, + "ko": 0 + }, + "percentiles1": { + "total": 130, + "ok": 130, + "ko": 0 + }, + "percentiles2": { + "total": 176, + "ok": 176, + "ko": 0 + }, + "percentiles3": { + "total": 1187, + "ok": 1187, + "ko": 0 + }, + "percentiles4": { + "total": 1725, + "ok": 1725, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 488, + "percentage": 83 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 73, + "percentage": 12 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 29, + "percentage": 5 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 3.6419753086419755, + "ok": 3.6419753086419755, + "ko": 0 + } +} + },"req_request-1-693933697": { + "type": "REQUEST", + "name": "request_1", +"path": "request_1", +"pathFormatted": "req_request-1-693933697", +"stats": { + "name": "request_1", + "numberOfRequests": { + "total": 590, + "ok": 590, + "ko": 0 + }, + "minResponseTime": { + "total": 36, + "ok": 36, + "ko": 0 + }, + "maxResponseTime": { + "total": 1435, + "ok": 1435, + "ko": 0 + }, + "meanResponseTime": { + "total": 88, + "ok": 88, + "ko": 0 + }, + "standardDeviation": { + "total": 145, + "ok": 145, + "ko": 0 + }, + "percentiles1": { + "total": 64, + "ok": 64, + "ko": 0 + }, + "percentiles2": { + "total": 67, + "ok": 67, + "ko": 0 + }, + "percentiles3": { + "total": 134, + "ok": 134, + "ko": 0 + }, + "percentiles4": { + "total": 1158, + "ok": 1158, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 583, + "percentage": 99 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 1, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 6, + "percentage": 1 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 3.6419753086419755, + "ok": 3.6419753086419755, + "ko": 0 + } +} + },"req_request-2-693933698": { + "type": "REQUEST", + "name": "request_2", +"path": "request_2", +"pathFormatted": "req_request-2-693933698", +"stats": { + "name": "request_2", + "numberOfRequests": { + "total": 590, + "ok": 590, + "ko": 0 + }, + "minResponseTime": { + "total": 73, + "ok": 73, + "ko": 0 + }, + "maxResponseTime": { + "total": 7166, + "ok": 7166, + "ko": 0 + }, + "meanResponseTime": { + "total": 368, + "ok": 368, + "ko": 0 + }, + "standardDeviation": { + "total": 692, + "ok": 692, + "ko": 0 + }, + "percentiles1": { + "total": 130, + "ok": 130, + "ko": 0 + }, + "percentiles2": { + "total": 187, + "ok": 187, + "ko": 0 + }, + "percentiles3": { + "total": 1162, + "ok": 1162, + "ko": 0 + }, + "percentiles4": { + "total": 2523, + "ok": 2523, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 492, + "percentage": 83 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 74, + "percentage": 13 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 24, + "percentage": 4 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 3.6419753086419755, + "ok": 3.6419753086419755, + "ko": 0 + } +} + },"req_request-3-693933699": { + "type": "REQUEST", + "name": "request_3", +"path": "request_3", +"pathFormatted": "req_request-3-693933699", +"stats": { + "name": "request_3", + "numberOfRequests": { + "total": 590, + "ok": 590, + "ko": 0 + }, + "minResponseTime": { + "total": 75, + "ok": 75, + "ko": 0 + }, + "maxResponseTime": { + "total": 7152, + "ok": 7152, + "ko": 0 + }, + "meanResponseTime": { + "total": 341, + "ok": 341, + "ko": 0 + }, + "standardDeviation": { + "total": 658, + "ok": 658, + "ko": 0 + }, + "percentiles1": { + "total": 129, + "ok": 129, + "ko": 0 + }, + "percentiles2": { + "total": 131, + "ok": 131, + "ko": 0 + }, + "percentiles3": { + "total": 1271, + "ok": 1271, + "ko": 0 + }, + "percentiles4": { + "total": 3139, + "ok": 3139, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 512, + "percentage": 87 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 47, + "percentage": 8 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 31, + "percentage": 5 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 3.6419753086419755, + "ok": 3.6419753086419755, + "ko": 0 + } +} + },"req_request-4-693933700": { + "type": "REQUEST", + "name": "request_4", +"path": "request_4", +"pathFormatted": "req_request-4-693933700", +"stats": { + "name": "request_4", + "numberOfRequests": { + "total": 590, + "ok": 590, + "ko": 0 + }, + "minResponseTime": { + "total": 110, + "ok": 110, + "ko": 0 + }, + "maxResponseTime": { + "total": 2761, + "ok": 2761, + "ko": 0 + }, + "meanResponseTime": { + "total": 299, + "ok": 299, + "ko": 0 + }, + "standardDeviation": { + "total": 214, + "ok": 214, + "ko": 0 + }, + "percentiles1": { + "total": 226, + "ok": 226, + "ko": 0 + }, + "percentiles2": { + "total": 340, + "ok": 340, + "ko": 0 + }, + "percentiles3": { + "total": 704, + "ok": 704, + "ko": 0 + }, + "percentiles4": { + "total": 914, + "ok": 914, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 575, + "percentage": 97 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 10, + "percentage": 2 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 5, + "percentage": 1 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 3.6419753086419755, + "ok": 3.6419753086419755, + "ko": 0 + } +} + },"req_request-5-693933701": { + "type": "REQUEST", + "name": "request_5", +"path": "request_5", +"pathFormatted": "req_request-5-693933701", +"stats": { + "name": "request_5", + "numberOfRequests": { + "total": 590, + "ok": 590, + "ko": 0 + }, + "minResponseTime": { + "total": 329, + "ok": 329, + "ko": 0 + }, + "maxResponseTime": { + "total": 22204, + "ok": 22204, + "ko": 0 + }, + "meanResponseTime": { + "total": 6914, + "ok": 6914, + "ko": 0 + }, + "standardDeviation": { + "total": 4689, + "ok": 4689, + "ko": 0 + }, + "percentiles1": { + "total": 6215, + "ok": 6215, + "ko": 0 + }, + "percentiles2": { + "total": 10065, + "ok": 10065, + "ko": 0 + }, + "percentiles3": { + "total": 15889, + "ok": 15889, + "ko": 0 + }, + "percentiles4": { + "total": 18962, + "ok": 18962, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 16, + "percentage": 3 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 22, + "percentage": 4 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 552, + "percentage": 94 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 3.6419753086419755, + "ok": 3.6419753086419755, + "ko": 0 + } +} + },"req_request-6-693933702": { + "type": "REQUEST", + "name": "request_6", +"path": "request_6", +"pathFormatted": "req_request-6-693933702", +"stats": { + "name": "request_6", + "numberOfRequests": { + "total": 590, + "ok": 590, + "ko": 0 + }, + "minResponseTime": { + "total": 514, + "ok": 514, + "ko": 0 + }, + "maxResponseTime": { + "total": 58634, + "ok": 58634, + "ko": 0 + }, + "meanResponseTime": { + "total": 28962, + "ok": 28962, + "ko": 0 + }, + "standardDeviation": { + "total": 13344, + "ok": 13344, + "ko": 0 + }, + "percentiles1": { + "total": 28884, + "ok": 28884, + "ko": 0 + }, + "percentiles2": { + "total": 38684, + "ok": 38684, + "ko": 0 + }, + "percentiles3": { + "total": 49597, + "ok": 49597, + "ko": 0 + }, + "percentiles4": { + "total": 55863, + "ok": 55863, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 2, + "percentage": 0 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 1, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 587, + "percentage": 99 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 3.6419753086419755, + "ok": 3.6419753086419755, + "ko": 0 + } +} + },"req_request-7-693933703": { + "type": "REQUEST", + "name": "request_7", +"path": "request_7", +"pathFormatted": "req_request-7-693933703", +"stats": { + "name": "request_7", + "numberOfRequests": { + "total": 590, + "ok": 590, + "ko": 0 + }, + "minResponseTime": { + "total": 51, + "ok": 51, + "ko": 0 + }, + "maxResponseTime": { + "total": 3126, + "ok": 3126, + "ko": 0 + }, + "meanResponseTime": { + "total": 278, + "ok": 278, + "ko": 0 + }, + "standardDeviation": { + "total": 410, + "ok": 410, + "ko": 0 + }, + "percentiles1": { + "total": 127, + "ok": 127, + "ko": 0 + }, + "percentiles2": { + "total": 132, + "ok": 132, + "ko": 0 + }, + "percentiles3": { + "total": 1135, + "ok": 1135, + "ko": 0 + }, + "percentiles4": { + "total": 1542, + "ok": 1542, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 506, + "percentage": 86 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 73, + "percentage": 12 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 11, + "percentage": 2 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 3.6419753086419755, + "ok": 3.6419753086419755, + "ko": 0 + } +} + },"req_request-8-693933704": { + "type": "REQUEST", + "name": "request_8", +"path": "request_8", +"pathFormatted": "req_request-8-693933704", +"stats": { + "name": "request_8", + "numberOfRequests": { + "total": 590, + "ok": 590, + "ko": 0 + }, + "minResponseTime": { + "total": 74, + "ok": 74, + "ko": 0 + }, + "maxResponseTime": { + "total": 1146, + "ok": 1146, + "ko": 0 + }, + "meanResponseTime": { + "total": 303, + "ok": 303, + "ko": 0 + }, + "standardDeviation": { + "total": 406, + "ok": 406, + "ko": 0 + }, + "percentiles1": { + "total": 82, + "ok": 83, + "ko": 0 + }, + "percentiles2": { + "total": 132, + "ok": 132, + "ko": 0 + }, + "percentiles3": { + "total": 1094, + "ok": 1094, + "ko": 0 + }, + "percentiles4": { + "total": 1134, + "ok": 1134, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 467, + "percentage": 79 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 123, + "percentage": 21 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 3.6419753086419755, + "ok": 3.6419753086419755, + "ko": 0 + } +} + },"req_request-9-693933705": { + "type": "REQUEST", + "name": "request_9", +"path": "request_9", +"pathFormatted": "req_request-9-693933705", +"stats": { + "name": "request_9", + "numberOfRequests": { + "total": 590, + "ok": 590, + "ko": 0 + }, + "minResponseTime": { + "total": 73, + "ok": 73, + "ko": 0 + }, + "maxResponseTime": { + "total": 1142, + "ok": 1142, + "ko": 0 + }, + "meanResponseTime": { + "total": 336, + "ok": 336, + "ko": 0 + }, + "standardDeviation": { + "total": 430, + "ok": 430, + "ko": 0 + }, + "percentiles1": { + "total": 82, + "ok": 82, + "ko": 0 + }, + "percentiles2": { + "total": 135, + "ok": 135, + "ko": 0 + }, + "percentiles3": { + "total": 1094, + "ok": 1094, + "ko": 0 + }, + "percentiles4": { + "total": 1136, + "ok": 1136, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 446, + "percentage": 76 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 144, + "percentage": 24 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 3.6419753086419755, + "ok": 3.6419753086419755, + "ko": 0 + } +} + },"req_request-10-37108175": { + "type": "REQUEST", + "name": "request_10", +"path": "request_10", +"pathFormatted": "req_request-10-37108175", +"stats": { + "name": "request_10", + "numberOfRequests": { + "total": 590, + "ok": 590, + "ko": 0 + }, + "minResponseTime": { + "total": 75, + "ok": 75, + "ko": 0 + }, + "maxResponseTime": { + "total": 1145, + "ok": 1145, + "ko": 0 + }, + "meanResponseTime": { + "total": 405, + "ok": 405, + "ko": 0 + }, + "standardDeviation": { + "total": 462, + "ok": 462, + "ko": 0 + }, + "percentiles1": { + "total": 85, + "ok": 85, + "ko": 0 + }, + "percentiles2": { + "total": 1082, + "ok": 1082, + "ko": 0 + }, + "percentiles3": { + "total": 1097, + "ok": 1097, + "ko": 0 + }, + "percentiles4": { + "total": 1137, + "ok": 1137, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 408, + "percentage": 69 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 182, + "percentage": 31 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 3.6419753086419755, + "ok": 3.6419753086419755, + "ko": 0 + } +} + },"req_request-11-37108176": { + "type": "REQUEST", + "name": "request_11", +"path": "request_11", +"pathFormatted": "req_request-11-37108176", +"stats": { + "name": "request_11", + "numberOfRequests": { + "total": 590, + "ok": 590, + "ko": 0 + }, + "minResponseTime": { + "total": 37, + "ok": 37, + "ko": 0 + }, + "maxResponseTime": { + "total": 350, + "ok": 350, + "ko": 0 + }, + "meanResponseTime": { + "total": 46, + "ok": 46, + "ko": 0 + }, + "standardDeviation": { + "total": 16, + "ok": 16, + "ko": 0 + }, + "percentiles1": { + "total": 42, + "ok": 42, + "ko": 0 + }, + "percentiles2": { + "total": 43, + "ok": 43, + "ko": 0 + }, + "percentiles3": { + "total": 68, + "ok": 68, + "ko": 0 + }, + "percentiles4": { + "total": 75, + "ok": 75, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 590, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 3.6419753086419755, + "ok": 3.6419753086419755, + "ko": 0 + } +} + },"req_request-12-37108177": { + "type": "REQUEST", + "name": "request_12", +"path": "request_12", +"pathFormatted": "req_request-12-37108177", +"stats": { + "name": "request_12", + "numberOfRequests": { + "total": 590, + "ok": 590, + "ko": 0 + }, + "minResponseTime": { + "total": 23, + "ok": 23, + "ko": 0 + }, + "maxResponseTime": { + "total": 1057, + "ok": 1057, + "ko": 0 + }, + "meanResponseTime": { + "total": 62, + "ok": 62, + "ko": 0 + }, + "standardDeviation": { + "total": 156, + "ok": 156, + "ko": 0 + }, + "percentiles1": { + "total": 30, + "ok": 30, + "ko": 0 + }, + "percentiles2": { + "total": 32, + "ok": 32, + "ko": 0 + }, + "percentiles3": { + "total": 81, + "ok": 81, + "ko": 0 + }, + "percentiles4": { + "total": 1035, + "ok": 1035, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 576, + "percentage": 98 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 14, + "percentage": 2 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 3.6419753086419755, + "ok": 3.6419753086419755, + "ko": 0 + } +} + },"req_request-14-37108179": { + "type": "REQUEST", + "name": "request_14", +"path": "request_14", +"pathFormatted": "req_request-14-37108179", +"stats": { + "name": "request_14", + "numberOfRequests": { + "total": 590, + "ok": 590, + "ko": 0 + }, + "minResponseTime": { + "total": 35, + "ok": 35, + "ko": 0 + }, + "maxResponseTime": { + "total": 1094, + "ok": 1094, + "ko": 0 + }, + "meanResponseTime": { + "total": 51, + "ok": 51, + "ko": 0 + }, + "standardDeviation": { + "total": 89, + "ok": 89, + "ko": 0 + }, + "percentiles1": { + "total": 39, + "ok": 39, + "ko": 0 + }, + "percentiles2": { + "total": 40, + "ok": 40, + "ko": 0 + }, + "percentiles3": { + "total": 65, + "ok": 65, + "ko": 0 + }, + "percentiles4": { + "total": 335, + "ok": 335, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 586, + "percentage": 99 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 4, + "percentage": 1 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 3.6419753086419755, + "ok": 3.6419753086419755, + "ko": 0 + } +} + },"req_request-15-37108180": { + "type": "REQUEST", + "name": "request_15", +"path": "request_15", +"pathFormatted": "req_request-15-37108180", +"stats": { + "name": "request_15", + "numberOfRequests": { + "total": 590, + "ok": 590, + "ko": 0 + }, + "minResponseTime": { + "total": 38, + "ok": 38, + "ko": 0 + }, + "maxResponseTime": { + "total": 362, + "ok": 362, + "ko": 0 + }, + "meanResponseTime": { + "total": 46, + "ok": 46, + "ko": 0 + }, + "standardDeviation": { + "total": 21, + "ok": 21, + "ko": 0 + }, + "percentiles1": { + "total": 41, + "ok": 41, + "ko": 0 + }, + "percentiles2": { + "total": 43, + "ok": 43, + "ko": 0 + }, + "percentiles3": { + "total": 68, + "ok": 68, + "ko": 0 + }, + "percentiles4": { + "total": 71, + "ok": 71, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 590, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 3.6419753086419755, + "ok": 3.6419753086419755, + "ko": 0 + } +} + },"req_request-16-37108181": { + "type": "REQUEST", + "name": "request_16", +"path": "request_16", +"pathFormatted": "req_request-16-37108181", +"stats": { + "name": "request_16", + "numberOfRequests": { + "total": 590, + "ok": 590, + "ko": 0 + }, + "minResponseTime": { + "total": 74, + "ok": 74, + "ko": 0 + }, + "maxResponseTime": { + "total": 2145, + "ok": 2145, + "ko": 0 + }, + "meanResponseTime": { + "total": 378, + "ok": 378, + "ko": 0 + }, + "standardDeviation": { + "total": 459, + "ok": 459, + "ko": 0 + }, + "percentiles1": { + "total": 82, + "ok": 82, + "ko": 0 + }, + "percentiles2": { + "total": 1079, + "ok": 1079, + "ko": 0 + }, + "percentiles3": { + "total": 1095, + "ok": 1095, + "ko": 0 + }, + "percentiles4": { + "total": 1128, + "ok": 1128, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 420, + "percentage": 71 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 169, + "percentage": 29 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 1, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 3.6419753086419755, + "ok": 3.6419753086419755, + "ko": 0 + } +} + },"req_request-17-37108182": { + "type": "REQUEST", + "name": "request_17", +"path": "request_17", +"pathFormatted": "req_request-17-37108182", +"stats": { + "name": "request_17", + "numberOfRequests": { + "total": 590, + "ok": 590, + "ko": 0 + }, + "minResponseTime": { + "total": 73, + "ok": 73, + "ko": 0 + }, + "maxResponseTime": { + "total": 1143, + "ok": 1143, + "ko": 0 + }, + "meanResponseTime": { + "total": 371, + "ok": 371, + "ko": 0 + }, + "standardDeviation": { + "total": 454, + "ok": 454, + "ko": 0 + }, + "percentiles1": { + "total": 82, + "ok": 82, + "ko": 0 + }, + "percentiles2": { + "total": 1079, + "ok": 1079, + "ko": 0 + }, + "percentiles3": { + "total": 1095, + "ok": 1095, + "ko": 0 + }, + "percentiles4": { + "total": 1098, + "ok": 1098, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 422, + "percentage": 72 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 168, + "percentage": 28 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 3.6419753086419755, + "ok": 3.6419753086419755, + "ko": 0 + } +} + } +} + +} \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/theme.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/theme.js new file mode 100644 index 0000000..b95a7b3 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/theme.js @@ -0,0 +1,127 @@ +/* + * Copyright 2011-2022 Gatling Corp + * + * Licensed under the Gatling Highcharts License + */ +Highcharts.theme = { + chart: { + backgroundColor: '#f7f7f7', + borderWidth: 0, + borderRadius: 8, + plotBackgroundColor: null, + plotShadow: false, + plotBorderWidth: 0 + }, + xAxis: { + gridLineWidth: 0, + lineColor: '#666', + tickColor: '#666', + labels: { + style: { + color: '#666' + } + }, + title: { + style: { + color: '#666' + } + } + }, + yAxis: { + alternateGridColor: null, + minorTickInterval: null, + gridLineColor: '#999', + lineWidth: 0, + tickWidth: 0, + labels: { + style: { + color: '#666', + fontWeight: 'bold' + } + }, + title: { + style: { + color: '#666', + font: 'bold 12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif' + } + } + }, + labels: { + style: { + color: '#CCC' + } + }, + + + rangeSelector: { + buttonTheme: { + fill: '#cfc9c6', + stroke: '#000000', + style: { + color: '#34332e', + fontWeight: 'bold', + borderColor: '#b2b2a9' + }, + states: { + hover: { + fill: '#92918C', + stroke: '#000000', + style: { + color: '#34332e', + fontWeight: 'bold', + borderColor: '#8b897d' + } + }, + select: { + fill: '#E37400', + stroke: '#000000', + style: { + color: '#FFF' + } + } + } + }, + inputStyle: { + backgroundColor: '#333', + color: 'silver' + }, + labelStyle: { + color: '#8b897d' + } + }, + + navigator: { + handles: { + backgroundColor: '#f7f7f7', + borderColor: '#92918C' + }, + outlineColor: '#92918C', + outlineWidth: 1, + maskFill: 'rgba(146, 145, 140, 0.5)', + series: { + color: '#5E7BE2', + lineColor: '#5E7BE2' + } + }, + + scrollbar: { + buttonBackgroundColor: '#f7f7f7', + buttonBorderWidth: 1, + buttonBorderColor: '#92918C', + buttonArrowColor: '#92918C', + buttonBorderRadius: 2, + + barBorderWidth: 1, + barBorderRadius: 0, + barBackgroundColor: '#92918C', + barBorderColor: '#92918C', + + rifleColor: '#92918C', + + trackBackgroundColor: '#b0b0a8', + trackBorderWidth: 1, + trackBorderColor: '#b0b0a8' + } +}; + +Highcharts.setOptions(Highcharts.theme); diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/unpack.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/unpack.js new file mode 100644 index 0000000..883c33e --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/js/unpack.js @@ -0,0 +1,38 @@ +'use strict'; + +var unpack = function (array) { + var findNbSeries = function (array) { + var currentPlotPack; + var length = array.length; + + for (var i = 0; i < length; i++) { + currentPlotPack = array[i][1]; + if(currentPlotPack !== null) { + return currentPlotPack.length; + } + } + return 0; + }; + + var i, j; + var nbPlots = array.length; + var nbSeries = findNbSeries(array); + + // Prepare unpacked array + var unpackedArray = new Array(nbSeries); + + for (i = 0; i < nbSeries; i++) { + unpackedArray[i] = new Array(nbPlots); + } + + // Unpack the array + for (i = 0; i < nbPlots; i++) { + var timestamp = array[i][0]; + var values = array[i][1]; + for (j = 0; j < nbSeries; j++) { + unpackedArray[j][i] = [timestamp * 1000, values === null ? null : values[j]]; + } + } + + return unpackedArray; +}; diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-0-693933696.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-0-693933696.html new file mode 100644 index 0000000..fb769dd --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-0-693933696.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_0 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-1-693933697.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-1-693933697.html new file mode 100644 index 0000000..b9dcd86 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-1-693933697.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_1 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-10-37108175.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-10-37108175.html new file mode 100644 index 0000000..23d1017 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-10-37108175.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_10 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-11-37108176.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-11-37108176.html new file mode 100644 index 0000000..1222bd6 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-11-37108176.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_11 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-12-37108177.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-12-37108177.html new file mode 100644 index 0000000..a8a8313 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-12-37108177.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_12 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-14-37108179.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-14-37108179.html new file mode 100644 index 0000000..e505e82 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-14-37108179.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_14 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-15-37108180.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-15-37108180.html new file mode 100644 index 0000000..735fbd0 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-15-37108180.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_15 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-16-37108181.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-16-37108181.html new file mode 100644 index 0000000..5100c42 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-16-37108181.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_16 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-17-37108182.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-17-37108182.html new file mode 100644 index 0000000..2ef8c04 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-17-37108182.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_17 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-2-693933698.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-2-693933698.html new file mode 100644 index 0000000..ffdf525 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-2-693933698.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_2 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-3-693933699.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-3-693933699.html new file mode 100644 index 0000000..f6ea16b --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-3-693933699.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_3 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-4-693933700.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-4-693933700.html new file mode 100644 index 0000000..29b3f26 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-4-693933700.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_4 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-5-693933701.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-5-693933701.html new file mode 100644 index 0000000..3c5a7fd --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-5-693933701.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_5 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-6-693933702.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-6-693933702.html new file mode 100644 index 0000000..b4741a7 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-6-693933702.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_6 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-7-693933703.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-7-693933703.html new file mode 100644 index 0000000..fedcbab --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-7-693933703.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_7 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-8-693933704.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-8-693933704.html new file mode 100644 index 0000000..141edd1 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-8-693933704.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_8 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-9-693933705.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-9-693933705.html new file mode 100644 index 0000000..e6c584d --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/req_request-9-693933705.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_9 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/bootstrap.min.css b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/bootstrap.min.css new file mode 100644 index 0000000..76a2b9b --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/bootstrap.min.css @@ -0,0 +1,27 @@ +.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;} +.clearfix:after{clear:both;} +.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;} +.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} +.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);} +.tooltip.top{margin-top:-3px;} +.tooltip.right{margin-left:3px;} +.tooltip.bottom{margin-top:3px;} +.tooltip.left{margin-left:-3px;} +.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;} +.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000;} +.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000;} +.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000;} +.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000;} +.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:750px;padding:1px;background-color:#ffffff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);}.popover.top{margin-top:-10px;} +.popover.right{margin-left:10px;} +.popover.bottom{margin-top:10px;} +.popover.left{margin-left:-10px;} +.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;} +.popover-content{padding:9px 14px;}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0;} +.popover .arrow,.popover .arrow:after{position:absolute;display:inline-block;width:0;height:0;border-color:transparent;border-style:solid;} +.popover .arrow:after{content:"";z-index:-1;} +.popover.top .arrow{bottom:-10px;left:50%;margin-left:-10px;border-width:10px 10px 0;border-top-color:#ffffff;}.popover.top .arrow:after{border-width:11px 11px 0;border-top-color:rgba(0, 0, 0, 0.25);bottom:-1px;left:-11px;} +.popover.right .arrow{top:50%;left:-10px;margin-top:-10px;border-width:10px 10px 10px 0;border-right-color:#ffffff;}.popover.right .arrow:after{border-width:11px 11px 11px 0;border-right-color:rgba(0, 0, 0, 0.25);bottom:-11px;left:-1px;} +.popover.bottom .arrow{top:-10px;left:50%;margin-left:-10px;border-width:0 10px 10px;border-bottom-color:#ffffff;}.popover.bottom .arrow:after{border-width:0 11px 11px;border-bottom-color:rgba(0, 0, 0, 0.25);top:-1px;left:-11px;} +.popover.left .arrow{top:50%;right:-10px;margin-top:-10px;border-width:10px 0 10px 10px;border-left-color:#ffffff;}.popover.left .arrow:after{border-width:11px 0 11px 11px;border-left-color:rgba(0, 0, 0, 0.25);bottom:-11px;right:-1px;} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/close.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/close.svg new file mode 100644 index 0000000..c161bb9 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/close.svg @@ -0,0 +1,3 @@ + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/executions.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/executions.svg new file mode 100644 index 0000000..84068cd --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/executions.svg @@ -0,0 +1,3 @@ + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/expand.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/expand.svg new file mode 100644 index 0000000..f6e75e0 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/expand.svg @@ -0,0 +1,38 @@ + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/favicon.ico b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/favicon.ico new file mode 100644 index 0000000..d2d20e1 Binary files /dev/null and b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/favicon.ico differ diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/fullscreen.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/fullscreen.svg new file mode 100644 index 0000000..91f3b27 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/fullscreen.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/logo-dark.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/logo-dark.svg new file mode 100644 index 0000000..7eb4d51 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/logo-dark.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/logo-enterprise-dark.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/logo-enterprise-dark.svg new file mode 100644 index 0000000..1127d75 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/logo-enterprise-dark.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/logo-enterprise-light.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/logo-enterprise-light.svg new file mode 100644 index 0000000..4a6e1de --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/logo-enterprise-light.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/logo-light.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/logo-light.svg new file mode 100644 index 0000000..f519eef --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/logo-light.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/sort-down.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/sort-down.svg new file mode 100644 index 0000000..db58a09 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/sort-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/sort-up.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/sort-up.svg new file mode 100644 index 0000000..bba9d84 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/sort-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/sort.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/sort.svg new file mode 100644 index 0000000..43b658e --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/sort.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/style.css b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/style.css new file mode 100644 index 0000000..edc9626 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/10users-2cpus/style/style.css @@ -0,0 +1,1199 @@ +/* + * Copyright 2011-2024 GatlingCorp (https://gatling.io) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +:root { + --gatling-background-color: #f2f2f2; + --gatling-background-light-color: #f7f7f7; + --gatling-border-color: #dddddd; + --gatling-blue-color: #4a9fe5; + --gatling-dark-blue-color: #24275e; + --gatling-danger-color: #f15b4f; + --gatling-danger-light-color: #f5d1ce; + --gatling-enterprise-color: #6161d6; + --gatling-enterprise-light-color: #c4c4ed; + --gatling-gray-medium-color: #bbb; + --gatling-hover-color: #e6e6e6; + --gatling-hover-background-color: #e6e6e6; + --gatling-light-color: #ffffff; + --gatling-orange-color: #f78557; + --gatling-success-color: #68b65c; + --gatling-text-color: #1f2024; + --gatling-total-color: #ffa900; + + --gatling-border-radius: 2px; + --gatling-spacing-small: 5px; + --gatling-spacing: 10px; + --gatling-spacing-layout: 20px; + + --gatling-font-weight-normal: 400; + --gatling-font-weight-medium: 500; + --gatling-font-weight-bold: 700; + --gatling-font-size-secondary: 12px; + --gatling-font-size-default: 14px; + --gatling-font-size-heading: 16px; + --gatling-font-size-section: 22px; + --gatling-font-size-header: 34px; + + --gatling-media-desktop-large: 1920px; +} + +html[data-theme="dark"] { + --gatling-background-color: #1e2225; + --gatling-background-light-color: #272c30; + --gatling-border-color: #555555; + --gatling-blue-color: #1188ff; + --gatling-dark-blue-color: #17223B; + --gatling-danger-color: #d9534f; + --gatling-danger-light-color: #c9302c; + --gatling-enterprise-color: #b2a2ea; + --gatling-enterprise-light-color: #343479; + --gatling-gray-medium-color: #999; + --gatling-hover-color: #30363b; + --gatling-hover-background-color: #2c2c2c; + --gatling-light-color: #394046; + --gatling-orange-color: #fe8e5f; + --gatling-success-color: #5cb85c; + --gatling-text-color: #dee2e6; + --gatling-total-color: #ffa900; +} + +* { + min-height: 0; + min-width: 0; +} + +html, +body { + height: 100%; + width: 100%; +} + +body { + color: var(--gatling-text-color); + font-family: arial; + font-size: var(--gatling-font-size-secondary); + margin: 0; +} + +.app-container { + display: flex; + flex-direction: column; + + height: 100%; + width: 100%; +} + +.head { + display: flex; + align-items: center; + justify-content: space-between; + flex-direction: row; + + flex: 1; + + background-color: var(--gatling-light-color); + border-bottom: 1px solid var(--gatling-border-color); + min-height: 69px; + padding: 0 var(--gatling-spacing-layout); +} + +.head .spacer { + flex-grow: 1; +} + +.head .theme-toggle { + margin-left: 20px; + background: none; + color: var(--gatling-text-color); + border: none; +} + +.head .theme-toggle:hover { + color: var(--gatling-gray-medium-color); + cursor: pointer; +} + +body .toggle-dark, body .toggle-light { + display: block; +} + +[data-theme="dark"] body .toggle-dark { + display: none; +} + +[data-theme="light"] body .toggle-light { + display: none; +} + +[data-theme="dark"] body .logo-enterprise-light { + display: none; +} + +[data-theme="light"] body .logo-enterprise-dark { + display: none; +} + +.gatling-open-source { + display: flex; + align-items: center; + justify-content: space-between; + flex-direction: row; + gap: var(--gatling-spacing-layout); +} + +.gatling-documentation { + display: flex; + align-items: center; + + background-color: var(--gatling-light-color); + border-radius: var(--gatling-border-radius); + color: var(--gatling-orange-color); + border: 1px solid var(--gatling-orange-color); + text-align: center; + padding: var(--gatling-spacing-small) var(--gatling-spacing); + height: 23px; + + font-size: var(--gatling-font-size-default); +} + +.gatling-documentation:hover { + background-color: var(--gatling-orange-color); + color: var(--gatling-light-color); +} + +.gatling-logo { + height: 35px; +} + +.gatling-logo img { + height: 100%; +} + +[data-theme="dark"] .gatling-logo-light { + display: none; +} + +[data-theme="light"] .gatling-logo-dark { + display: none; +} + +.container { + display: flex; + align-items: stretch; + height: 100%; +} + +.nav { + min-width: 210px; + width: 210px; + max-height: calc(100vh - var(--gatling-spacing-layout) - var(--gatling-spacing-layout)); + background: var(--gatling-light-color); + border-right: 1px solid var(--gatling-border-color); + overflow-y: auto; +} + +@media print { + .nav { + display: none; + } +} + +@media screen and (min-width: 1920px) { + .nav { + min-width: 310px; + width: 310px; + } +} + +.nav ul { + display: flex; + flex-direction: column; + + padding: 0; + margin: 0; +} + +.nav li { + display: flex; + list-style: none; + width: 100%; + padding: 0; +} + +.nav .item { + display: inline-flex; + align-items: center; + margin: 0 auto; + white-space: nowrap; + color: var(--gatling-text-color); + font-size: var(--gatling-font-size-default); + font-weight: var(--gatling-font-weight-bold); + margin: 0; + width: 100%; +} + +.nav .item .nav-label { + padding: var(--gatling-spacing) var(--gatling-spacing-layout); +} + +.nav .item:hover { + background-color: var(--gatling-hover-color); +} + +.nav .on .item { + background-color: var(--gatling-orange-color); +} + +.nav .on .item span { + color: var(--gatling-light-color); +} + +.cadre { + width: 100%; + height: 100%; + overflow-y: scroll; + scroll-behavior: smooth; +} + +@media print { + .cadre { + overflow-y: unset; + } +} + +.frise { + position: absolute; + top: 60px; + z-index: -1; + + background-color: var(--gatling-background-color); + height: 530px; +} + +.global { + height: 650px +} + +a { + text-decoration: none; +} + +a:hover { + color: var(--gatling-hover-color); +} + +img { + border: 0; +} + +h1 { + color: var(--gatling-dark-blue-color); + font-size: var(--gatling-font-size-section); + font-weight: var(--gatling-font-weight-medium); + text-align: center; + margin: 0; +} + +h1 span { + color: var(--gatling-hover-color); +} + +.enterprise { + display: flex; + align-items: center; + justify-content: center; + gap: var(--gatling-spacing-small); + + background-color: var(--gatling-light-color); + border-radius: var(--gatling-border-radius); + border: 1px solid var(--gatling-enterprise-color); + color: var(--gatling-enterprise-color); + text-align: center; + padding: var(--gatling-spacing-small) var(--gatling-spacing); + height: 25px; +} + +.enterprise:hover { + background-color: var(--gatling-hover-color); + color: var(--gatling-enterprise-color); +} + +.enterprise img { + display: block; + width: 160px; +} + +.simulation-card { + display: flex; + flex-direction: column; + align-self: stretch; + flex: 1; + gap: var(--gatling-spacing-layout); + max-height: 375px; +} + +#simulation-information { + flex: 1; +} + +.simulation-version-information { + display: flex; + flex-direction: column; + + gap: var(--gatling-spacing); + font-size: var(--gatling-font-size-default); + + background-color: var(--gatling-background-light-color); + border: 1px solid var(--gatling-border-color); + border-radius: var(--gatling-border-radius); + padding: var(--gatling-spacing); +} + +.simulation-information-container { + display: flex; + flex-direction: column; + gap: var(--gatling-spacing); +} + +.withTooltip .popover-title { + display: none; +} + +.popover-content p { + margin: 0; +} + +html[data-theme="dark"] div.popover { + background-color: var(--gatling-light-color); + border-bottom: none; +} + +html[data-theme="dark"] div.popover.right .arrow { + border-right-color: var(--gatling-light-color); +} + +.ellipsed-name { + display: block; + + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.simulation-information-item { + display: flex; + flex-direction: row; + align-items: flex-start; + gap: var(--gatling-spacing-small); +} + +.simulation-information-item.description { + flex-direction: column; +} + +.simulation-information-label { + display: inline-block; + font-weight: var(--gatling-font-weight-bold); + min-width: fit-content; +} + +.simulation-information-title { + display: block; + text-align: center; + color: var(--gatling-text-color); + font-weight: var(--gatling-font-weight-bold); + font-size: var(--gatling-font-size-heading); + width: 100%; +} + +.simulation-tooltip span { + display: inline-block; + word-wrap: break-word; + overflow: hidden; + text-overflow: ellipsis; +} + +.content { + display: flex; + flex-direction: column; +} + +.content-in { + width: 100%; + height: 100%; + + overflow-x: scroll; +} + +html[data-theme="dark"] .content-in { + background-color: var(--gatling-background-color); +} + +@media print { + .content-in { + overflow-x: unset; + } +} + +.container-article { + display: flex; + flex-direction: column; + gap: var(--gatling-spacing-layout); + + min-width: 1050px; + width: 1050px; + margin: 0 auto; + padding: var(--gatling-spacing-layout); + box-sizing: border-box; +} + +@media screen and (min-width: 1920px) { + .container-article { + min-width: 1350px; + width: 1350px; + } + + #responses * .highcharts-tracker { + transform: translate(400px, 70px); + } +} + +.content-header { + display: flex; + flex-direction: column; + gap: var(--gatling-spacing-layout); + + background-color: var(--gatling-background-light-color); + border-bottom: 1px solid var(--gatling-border-color); + padding: var(--gatling-spacing-layout) var(--gatling-spacing-layout) 0; +} + +.onglet { + font-size: var(--gatling-font-size-header); + font-weight: var(--gatling-font-weight-medium); + text-align: center; +} + +.sous-menu { + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; +} + +.sous-menu-spacer { + display: flex; + align-items: center; + flex-direction: row; +} + +.sous-menu .item { + margin-bottom: -1px; +} + +.sous-menu a { + display: block; + + font-size: var(--gatling-font-size-heading); + font-weight: var(--gatling-font-weight-normal); + padding: var(--gatling-spacing-small) var(--gatling-spacing) var(--gatling-spacing); + border-bottom: 2px solid transparent; + color: var(--gatling-text-color); + text-align: center; + width: 100px; +} + +.sous-menu a:hover { + border-bottom-color: var(--gatling-text-color); +} + +.sous-menu .ouvert a { + border-bottom-color: var(--gatling-orange-color); + font-weight: var(--gatling-font-weight-bold); +} + +.article { + position: relative; + + display: flex; + flex-direction: column; + gap: var(--gatling-spacing-layout); +} + +.infos { + width: 340px; + color: var(--gatling-light-color); +} + +.infos-title { + background-color: var(--gatling-background-light-color); + border: 1px solid var(--gatling-border-color); + border-bottom: 0; + border-top-left-radius: var(--gatling-border-radius); + border-top-right-radius: var(--gatling-border-radius); + color: var(--gatling-text-color); + font-size: var(--gatling-font-size-heading); + font-weight: var(--gatling-font-weight-bold); + text-align: center; + padding: var(--gatling-spacing-small) var(--gatling-spacing); +} + +.info { + background-color: var(--gatling-background-light-color); + border-bottom-left-radius: var(--gatling-border-radius); + border-bottom-right-radius: var(--gatling-border-radius); + border: 1px solid var(--gatling-border-color); + color: var(--gatling-text-color); + height: 100%; + margin: 0; +} + +.info table { + margin: auto; + padding-right: 15px; +} + +.alert-danger { + background-color: var(--gatling-danger-light-color); + border: 1px solid var(--gatling-danger-color); + border-radius: var(--gatling-border-radius); + color: var(--gatling-text-color); + padding: var(--gatling-spacing-layout); + font-weight: var(--gatling-font-weight-bold); +} + +.infos h2 { + color: var(--gatling-text-color); + font-size: var(--gatling-font-size-default); + font-weight: var(--gatling-font-weight-bold); + height: 19px; + margin: 0; + padding: 3.5px 0 0 35px; +} + +.infos .first::before { + content: ''; + display: inline-block; + margin-right: 5px; + margin-bottom: 2px; + vertical-align: middle; + width: 14px; + height: 14px; + background: url('executions.svg'); + background-size: contain; +} + +.infos .second::before { + content: ''; + display: inline-block; + margin-right: 5px; + margin-bottom: 2px; + vertical-align: middle; + width: 16px; + height: 16px; + background: url('time.svg'); + background-size: contain; +} + +html[data-theme="dark"] .infos .first::before, +html[data-theme="dark"] .infos .second::before { + filter: invert(0.9); +} + +.infos th { + text-align: center; +} + +.infos td { + font-weight: var(--gatling-font-weight-bold); + padding: var(--gatling-spacing-small); + -webkit-border-radius: var(--gatling-border-radius); + -moz-border-radius: var(--gatling-border-radius); + -ms-border-radius: var(--gatling-border-radius); + -o-border-radius: var(--gatling-border-radius); + border-radius: var(--gatling-border-radius); + text-align: right; + width: 50px; +} + +.infos .title { + width: 120px; +} + +.infos .ok { + background-color: var(--gatling-success-color); + color: var(--gatling-light-color); +} + +.infos .total { + background-color: var(--gatling-total-color); + color: var(--gatling-light-color); +} + +.infos .ko { + background-color: var(--gatling-danger-color); + -webkit-border-radius: var(--gatling-border-radius); + border-radius: var(--gatling-border-radius); + color: var(--gatling-light-color); +} + +.schema-container { + display: flex; + align-items: center; + justify-content: space-between; + gap: var(--gatling-spacing-layout); +} + +.schema { + background: var(--gatling-background-light-color); + border-radius: var(--gatling-border-radius); + border: 1px solid var(--gatling-border-color); +} + +.ranges { + height: 375px; + width: 500px; +} + +.ranges-large { + height: 375px; + width: 530px; +} + +.geant { + height: 362px; +} + +.extensible-geant { + width: 100%; +} + +.polar { + height: 375px; + width: 230px; +} + +.chart_title { + color: var(--gatling-text-color); + font-weight: var(--gatling-font-weight-bold); + font-size: var(--gatling-font-size-heading); + padding: 2px var(--gatling-spacing); +} + +html[data-theme="dark"] .chart_title { + color: var(--gatling-text-color); + font-weight: var(--gatling-font-weight-bold); + font-size: var(--gatling-font-size-heading); + padding: 2px var(--gatling-spacing); +} + +html[data-theme="dark"] .highcharts-background { + fill: var(--gatling-background-light-color); +} + +html[data-theme="dark"] .highcharts-button-normal rect { + fill: var(--gatling-background-color) !important; +} + +html[data-theme="dark"] .highcharts-button-disabled rect { + fill: var(--gatling-background-light-color) !important; +} + +html[data-theme="dark"] .highcharts-button-pressed rect { + fill: var(--gatling-orange-color) !important; +} + +html[data-theme="dark"] .highcharts-axis text, +html[data-theme="dark"] .highcharts-axis-labels text, +html[data-theme="dark"] .highcharts-button text, +html[data-theme="dark"] .highcharts-legend-item text, +html[data-theme="dark"] .highcharts-range-selector-buttons text { + fill: var(--gatling-text-color) !important; +} + +.statistics { + display: flex; + flex-direction: column; + + background-color: var(--gatling-background-light-color); + border-radius: var(--gatling-border-radius); + border-collapse: collapse; + color: var(--gatling-text-color); + max-height: 100%; +} + +.statistics .title { + display: flex; + text-align: center; + justify-content: space-between; + + min-height: 49.5px; + box-sizing: border-box; + + border: 1px solid var(--gatling-border-color); + color: var(--gatling-text-color); + font-size: var(--gatling-font-size-heading); + font-weight: var(--gatling-font-weight-bold); + padding: var(--gatling-spacing); +} + +.title_base { + display: flex; + align-items: center; + text-align: left; + user-select: none; +} + +.title_base_stats { + color: var(--gatling-text-color); + margin-right: 20px; +} + +.toggle-table { + position: relative; + border: 1px solid var(--gatling-border-color); + background-color: var(--gatling-light-color); + border-radius: 25px; + width: 40px; + height: 20px; + margin: 0 var(--gatling-spacing-small); +} + +.toggle-table::before { + position: absolute; + top: calc(50% - 9px); + left: 1px; + content: ""; + width: 50%; + height: 18px; + border-radius: 50%; + background-color: var(--gatling-text-color); +} + +.toggle-table.off::before { + left: unset; + right: 1px; +} + +.title_expanded { + cursor: pointer; + color: var(--gatling-text-color); +} + +.expand-table, +.collapse-table { + font-size: var(--gatling-font-size-secondary); + font-weight: var(--gatling-font-weight-normal); +} + +.title_expanded span.expand-table { + color: var(--gatling-gray-medium-color); +} + +.title_collapsed { + cursor: pointer; + color: var(--gatling-text-color); +} + +.title_collapsed span.collapse-table { + color: var(--gatling-gray-medium-color); +} + +#container_statistics_head { + position: sticky; + top: -1px; + + background: var(--gatling-background-light-color); + margin-top: -1px; + padding: var(--gatling-spacing-small) var(--gatling-spacing-small) 0px var(--gatling-spacing-small); +} + +#container_statistics_body { + border-bottom-left-radius: var(--gatling-border-radius); + border-bottom-right-radius: var(--gatling-border-radius); + margin-top: -1px; + padding: 0px var(--gatling-spacing-small) var(--gatling-spacing-small) var(--gatling-spacing-small); +} + +#container_errors { + border-bottom-left-radius: var(--gatling-border-radius); + border-bottom-right-radius: var(--gatling-border-radius); + padding: var(--gatling-spacing-small) var(--gatling-spacing-small) 0px var(--gatling-spacing-small); + margin-top: -1px; +} + +#container_assertions { + background-color: var(--gatling-background-light-color); + border-bottom-left-radius: var(--gatling-border-radius); + border-bottom-right-radius: var(--gatling-border-radius); + padding: var(--gatling-spacing-small); + margin-top: -1px; +} + +.statistics-in { + border-spacing: var(--gatling-spacing-small); + border-collapse: collapse; + margin: 0; +} + +.statistics .scrollable { + max-height: 100%; + overflow-y: auto; +} + +#statistics_table_container .statistics .scrollable { + max-height: 785px; +} + +.statistics-in a { + color: var(--gatling-text-color); + font-weight: var(--gatling-font-weight-bold); +} + +.statistics-in .header { + border-radius: var(--gatling-border-radius); + border: 1px solid var(--gatling-border-color); + font-size: var(--gatling-font-size-default); + font-weight: var(--gatling-font-weight-bold); + text-align: center; + padding: var(--gatling-spacing-small); +} + +.sortable { + cursor: pointer; +} + +.sortable span::after { + content: ''; + display: inline-block; + margin-left: 5px; + vertical-align: middle; + width: 12px; + height: 12px; + background: url('sort.svg'); + background-size: contain; +} + +.sorted-up span::after { + background: url('sort-up.svg'); + background-size: contain; +} + +.sorted-down span::after { + background: url('sort-down.svg'); + background-size: contain; +} + +html[data-theme="dark"] .sortable span::after { + filter: invert(0.9); +} + +.executions::before { + content: ''; + display: inline-block; + margin-right: 5px; + margin-bottom: 2px; + vertical-align: middle; + width: 14px; + height: 14px; + background: url('executions.svg'); + background-size: contain; +} + +.response-time::before { + content: ''; + display: inline-block; + margin-right: 5px; + margin-bottom: 2px; + vertical-align: middle; + width: 16px; + height: 16px; + background: url('time.svg'); + background-size: contain; +} + +html[data-theme="dark"] .executions::before, +html[data-theme="dark"] .response-time::before { + filter: invert(0.9); +} + +.statistics-in td { + background-color: var(--gatling-light-color); + border: 1px solid var(--gatling-border-color); + padding: var(--gatling-spacing-small); + min-width: 50px; +} + +.statistics-in .col-1 { + width: 175px; + max-width: 175px; +} +@media screen and (min-width: 1200px) { + .statistics-in .col-1 { + width: 50%; + } +} + +.expandable-container { + display: flex; + flex-direction: row; + box-sizing: border-box; + max-width: 100%; +} + +.statistics-in .value { + text-align: right; + width: 50px; +} + +.statistics-in .total { + color: var(--gatling-text-color); +} + +.statistics-in .col-2 { + background-color: var(--gatling-total-color); + color: var(--gatling-light-color); + font-weight: var(--gatling-font-weight-bold); +} + +.statistics-in .error-col-1 { + background-color: var(--gatling-light-color); + color: var(--gatling-text-color); +} + +.statistics-in .error-col-2 { + text-align: center; +} + +.statistics-in .ok { + background-color: var(--gatling-success-color); + color: var(--gatling-light-color); + font-weight: var(--gatling-font-weight-bold); +} + +.statistics-in .ko { + background-color: var(--gatling-danger-color); + color: var(--gatling-light-color); + font-weight: var(--gatling-font-weight-bold); +} + +.statistics-in .expand-button { + padding-left: var(--gatling-spacing); + cursor: pointer; +} + +.expand-button.hidden { + background: none; + cursor: default; +} + +.statistics-button { + background-color: var(--gatling-light-color); + color: var(--gatling-text-color); + padding: var(--gatling-spacing-small) var(--gatling-spacing); + border: 1px solid var(--gatling-border-color); + border-radius: var(--gatling-border-radius); +} + +#statistics_full_screen{ + padding: var(--gatling-spacing-small); +} + +#statistics_full_screen > img { + width: 14px; + height: 14px; +} + +html[data-theme="dark"] #statistics_full_screen > img { + filter: invert(0.9); +} + +#statistics_full_screen:disabled { + display: none; +} + +.statistics-button:hover:not(:disabled) { + cursor: pointer; + background-color: var(--gatling-hover-color); +} + +.statistics-in .expand-button.expand { + content: ''; + display: inline-block; + vertical-align: middle; + width: 2px; + height: 10px; + background: url('expand.svg'); + background-size: contain; +} + +.statistics-in .expand-button.collapse { + content: ''; + display: inline-block; + vertical-align: middle; + width: 2px; + height: 10px; + background: url('sort-down.svg'); + background-size: contain; +} + +html[data-theme="dark"] .statistics-in .expand-button.collapse, +html[data-theme="dark"] .statistics-in .expand-button.expand { + filter: invert(0.9); +} + +.nav .expand-button { + padding: var(--gatling-spacing-small) var(--gatling-spacing); +} + +.nav .expand-button.expand { + content: ''; + display: inline-block; + vertical-align: middle; + height: 8px; + background: url('expand.svg') no-repeat; + background-size: contain; + cursor: pointer; + margin-top: 6px; +} + +.nav .expand-button.collapse { + content: ''; + display: inline-block; + vertical-align: middle; + height: 8px; + background: url('sort-down.svg') no-repeat; + background-size: contain; + cursor: pointer; + margin-top: 6px; +} + +html[data-theme="dark"] .nav .expand-button.expand, +html[data-theme="dark"] .nav .expand-button.collapse { + filter: invert(0.9); +} + +.right { + display: flex; + align-items: center; + gap: var(--gatling-spacing); + float: right; + font-size: var(--gatling-font-size-default); +} + +.withTooltip { + outline: none; +} + +.withTooltip:hover { + text-decoration: none; +} + +.withTooltip .tooltipContent { + position: absolute; + z-index: 10; + display: none; + + background: var(--gatling-orange-color); + -webkit-box-shadow: 1px 2px 4px 0px rgba(47, 47, 47, 0.2); + -moz-box-shadow: 1px 2px 4px 0px rgba(47, 47, 47, 0.2); + box-shadow: 1px 2px 4px 0px rgba(47, 47, 47, 0.2); + border-radius: var(--gatling-border-radius); + color: var(--gatling-light-color); + margin-top: -5px; + padding: var(--gatling-spacing-small); +} + +.withTooltip:hover .tooltipContent { + display: inline; +} + +.button-modal { + padding: var(--gatling-spacing-small); +} + +.button-modal > img { + width: 14px; + height: 14px; +} + +html[data-theme="dark"] .button-modal > img { + filter: invert(0.9); +} + +.statistics-table-modal { + background-color: var(--gatling-background-color); + height: calc(100% - 60px); + width: calc(100% - 60px); + border-radius: var(--gatling-border-radius); +} + +.statistics-table-modal::backdrop { + position: fixed; + top: 0px; + right: 0px; + bottom: 0px; + left: 0px; + + background-color: rgba(100, 100, 100, 0.9); +} + +.statistics-table-modal-container { + display: flex; + flex-direction: column; + + width: 100%; + height: calc(100% - 35px); + overflow-x: auto; +} + +.button-modal { + cursor: pointer; + + height: 25px; + width: 25px; + + border: 1px solid var(--gatling-border-color); + background-color: var(--gatling-light-color); + border-radius: var(--gatling-border-radius); + color: var(--gatling-text-color); +} + +.button-modal:hover { + background-color: var(--gatling-background-color); +} + +.statistics-table-modal-header { + display: flex; + align-items: flex-end; + justify-content: flex-end; + + padding-bottom: var(--gatling-spacing); +} + +.statistics-table-modal-content { + flex: 1; + overflow-y: auto; + min-width: 1050px; +} + +.statistics-table-modal-footer { + display: flex; + align-items: flex-end; + justify-content: flex-end; + + padding-top: var(--gatling-spacing); +} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/index.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/index.html new file mode 100644 index 0000000..24d2bbc --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/index.html @@ -0,0 +1,1154 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - Global Information + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    +
    +
    + Gatling Version + + Version: + 3.10.5 + + + Released: + 2024-03-22 + +
    +
    + Run Information +
    + + Date: + 2024-04-25 18:15:15 GMT + + + Duration: + 3m 27s + + + Description: + Load testing (25 users/sec in 60sec - machine 2 cpu) + + +
    +
    +
    +
    + +
    + +
    + +
    +
    +
    +
    +
    + + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/all_sessions.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/all_sessions.js new file mode 100644 index 0000000..d62a01d --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/all_sessions.js @@ -0,0 +1,11 @@ +allUsersData = { + +color: '#FFA900', +name: 'Active Users', +data: [ + [1714068916000,26],[1714068917000,52],[1714068918000,71],[1714068919000,97],[1714068920000,121],[1714068921000,146],[1714068922000,169],[1714068923000,200],[1714068924000,217],[1714068925000,236],[1714068926000,256],[1714068927000,281],[1714068928000,306],[1714068929000,334],[1714068930000,358],[1714068931000,373],[1714068932000,392],[1714068933000,410],[1714068934000,430],[1714068935000,451],[1714068936000,480],[1714068937000,504],[1714068938000,529],[1714068939000,551],[1714068940000,574],[1714068941000,602],[1714068942000,634],[1714068943000,661],[1714068944000,689],[1714068945000,712],[1714068946000,729],[1714068947000,750],[1714068948000,768],[1714068949000,790],[1714068950000,810],[1714068951000,838],[1714068952000,860],[1714068953000,884],[1714068954000,908],[1714068955000,933],[1714068956000,955],[1714068957000,977],[1714068958000,1015],[1714068959000,1039],[1714068960000,1065],[1714068961000,1087],[1714068962000,1119],[1714068963000,1149],[1714068964000,1174],[1714068965000,1193],[1714068966000,1213],[1714068967000,1240],[1714068968000,1270],[1714068969000,1291],[1714068970000,1324],[1714068971000,1347],[1714068972000,1366],[1714068973000,1392],[1714068974000,1416],[1714068975000,1440],[1714068976000,1440],[1714068977000,1440],[1714068978000,1440],[1714068979000,1440],[1714068980000,1440],[1714068981000,1440],[1714068982000,1440],[1714068983000,1440],[1714068984000,1440],[1714068985000,1440],[1714068986000,1440],[1714068987000,1440],[1714068988000,1440],[1714068989000,1440],[1714068990000,1440],[1714068991000,1440],[1714068992000,1440],[1714068993000,1440],[1714068994000,1440],[1714068995000,1440],[1714068996000,1440],[1714068997000,1440],[1714068998000,1440],[1714068999000,1440],[1714069000000,1440],[1714069001000,1440],[1714069002000,1440],[1714069003000,1440],[1714069004000,1439],[1714069005000,1439],[1714069006000,1439],[1714069007000,1439],[1714069008000,1439],[1714069009000,1439],[1714069010000,1439],[1714069011000,1438],[1714069012000,1438],[1714069013000,1437],[1714069014000,1437],[1714069015000,1437],[1714069016000,1437],[1714069017000,1437],[1714069018000,1437],[1714069019000,1437],[1714069020000,1435],[1714069021000,1435],[1714069022000,1435],[1714069023000,1435],[1714069024000,1434],[1714069025000,1431],[1714069026000,1431],[1714069027000,1431],[1714069028000,1429],[1714069029000,1426],[1714069030000,1425],[1714069031000,1421],[1714069032000,1414],[1714069033000,1411],[1714069034000,1407],[1714069035000,1402],[1714069036000,1396],[1714069037000,1388],[1714069038000,1381],[1714069039000,1375],[1714069040000,1370],[1714069041000,1364],[1714069042000,1359],[1714069043000,1344],[1714069044000,1339],[1714069045000,1328],[1714069046000,1315],[1714069047000,1305],[1714069048000,1288],[1714069049000,1284],[1714069050000,1277],[1714069051000,1268],[1714069052000,1258],[1714069053000,1241],[1714069054000,1227],[1714069055000,1194],[1714069056000,1173],[1714069057000,1152],[1714069058000,1114],[1714069059000,1090],[1714069060000,1062],[1714069061000,1025],[1714069062000,994],[1714069063000,952],[1714069064000,924],[1714069065000,895],[1714069066000,855],[1714069067000,815],[1714069068000,787],[1714069069000,764],[1714069070000,736],[1714069071000,712],[1714069072000,680],[1714069073000,653],[1714069074000,636],[1714069075000,610],[1714069076000,584],[1714069077000,560],[1714069078000,532],[1714069079000,519],[1714069080000,514],[1714069081000,510],[1714069082000,509],[1714069083000,509],[1714069084000,509],[1714069085000,509],[1714069086000,509],[1714069087000,509],[1714069088000,461],[1714069089000,409],[1714069090000,402],[1714069091000,375],[1714069092000,375],[1714069093000,375],[1714069094000,375],[1714069095000,372],[1714069096000,372],[1714069097000,359],[1714069098000,325],[1714069099000,309],[1714069100000,302],[1714069101000,295],[1714069102000,295],[1714069103000,295],[1714069104000,284],[1714069105000,261],[1714069106000,231],[1714069107000,214],[1714069108000,176],[1714069109000,129],[1714069110000,85],[1714069111000,54],[1714069112000,45],[1714069113000,43],[1714069114000,34],[1714069115000,18],[1714069116000,6],[1714069117000,4],[1714069118000,1],[1714069119000,1],[1714069120000,1],[1714069121000,1],[1714069122000,1],[1714069123000,1] +], +tooltip: { yDecimals: 0, ySuffix: '', valueDecimals: 0 } + , zIndex: 20 + , yAxis: 1 +}; \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/assertions.xml b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/assertions.xml new file mode 100644 index 0000000..c562e00 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/assertions.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/bootstrap.min.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/bootstrap.min.js new file mode 100644 index 0000000..ea41042 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/bootstrap.min.js @@ -0,0 +1,7 @@ +/** +* Bootstrap.js by @fat & @mdo +* plugins: bootstrap-tooltip.js, bootstrap-popover.js +* Copyright 2012 Twitter, Inc. +* http://www.apache.org/licenses/LICENSE-2.0.txt +*/ +!function(a){var b=function(a,b){this.init("tooltip",a,b)};b.prototype={constructor:b,init:function(b,c,d){var e,f;this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.enabled=!0,this.options.trigger=="click"?this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this)):this.options.trigger!="manual"&&(e=this.options.trigger=="hover"?"mouseenter":"focus",f=this.options.trigger=="hover"?"mouseleave":"blur",this.$element.on(e+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(f+"."+this.type,this.options.selector,a.proxy(this.leave,this))),this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(b){return b=a.extend({},a.fn[this.type].defaults,b,this.$element.data()),b.delay&&typeof b.delay=="number"&&(b.delay={show:b.delay,hide:b.delay}),b},enter:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);if(!c.options.delay||!c.options.delay.show)return c.show();clearTimeout(this.timeout),c.hoverState="in",this.timeout=setTimeout(function(){c.hoverState=="in"&&c.show()},c.options.delay.show)},leave:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);this.timeout&&clearTimeout(this.timeout);if(!c.options.delay||!c.options.delay.hide)return c.hide();c.hoverState="out",this.timeout=setTimeout(function(){c.hoverState=="out"&&c.hide()},c.options.delay.hide)},show:function(){var a,b,c,d,e,f,g;if(this.hasContent()&&this.enabled){a=this.tip(),this.setContent(),this.options.animation&&a.addClass("fade"),f=typeof this.options.placement=="function"?this.options.placement.call(this,a[0],this.$element[0]):this.options.placement,b=/in/.test(f),a.detach().css({top:0,left:0,display:"block"}).insertAfter(this.$element),c=this.getPosition(b),d=a[0].offsetWidth,e=a[0].offsetHeight;switch(b?f.split(" ")[1]:f){case"bottom":g={top:c.top+c.height,left:c.left+c.width/2-d/2};break;case"top":g={top:c.top-e,left:c.left+c.width/2-d/2};break;case"left":g={top:c.top+c.height/2-e/2,left:c.left-d};break;case"right":g={top:c.top+c.height/2-e/2,left:c.left+c.width}}a.offset(g).addClass(f).addClass("in")}},setContent:function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},hide:function(){function d(){var b=setTimeout(function(){c.off(a.support.transition.end).detach()},500);c.one(a.support.transition.end,function(){clearTimeout(b),c.detach()})}var b=this,c=this.tip();return c.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d():c.detach(),this},fixTitle:function(){var a=this.$element;(a.attr("title")||typeof a.attr("data-original-title")!="string")&&a.attr("data-original-title",a.attr("title")||"").removeAttr("title")},hasContent:function(){return this.getTitle()},getPosition:function(b){return a.extend({},b?{top:0,left:0}:this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight})},getTitle:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||(typeof c.title=="function"?c.title.call(b[0]):c.title),a},tip:function(){return this.$tip=this.$tip||a(this.options.template)},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);c[c.tip().hasClass("in")?"hide":"show"]()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}},a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("tooltip"),f=typeof c=="object"&&c;e||d.data("tooltip",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.tooltip.Constructor=b,a.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'
    ',trigger:"hover",title:"",delay:0,html:!1}}(window.jQuery),!function(a){var b=function(a,b){this.init("popover",a,b)};b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype,{constructor:b,setContent:function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content > *")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-content")||(typeof c.content=="function"?c.content.call(b[0]):c.content),a},tip:function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}}),a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("popover"),f=typeof c=="object"&&c;e||d.data("popover",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.defaults=a.extend({},a.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'

    '})}(window.jQuery) \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/ellipsis.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/ellipsis.js new file mode 100644 index 0000000..781d0de --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/ellipsis.js @@ -0,0 +1,26 @@ +function parentId(name) { + return "parent-" + name; +} + +function isEllipsed(name) { + const child = document.getElementById(name); + const parent = document.getElementById(parentId(name)); + const emptyData = parent.getAttribute("data-content") === ""; + const hasOverflow = child.clientWidth < child.scrollWidth; + + if (hasOverflow) { + if (emptyData) { + parent.setAttribute("data-content", name); + } + } else { + if (!emptyData) { + parent.setAttribute("data-content", ""); + } + } +} + +function ellipsedLabel ({ name, parentClass = "", childClass = "" }) { + const child = "" + name + ""; + + return "" + child + ""; +} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/gatling.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/gatling.js new file mode 100644 index 0000000..5b9e992 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/gatling.js @@ -0,0 +1,137 @@ +/* + * Copyright 2011-2024 GatlingCorp (https://gatling.io) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +(function ($) { + $.fn.expandable = function () { + var scope = this; + + this.find('.expand-button:not([class*=hidden])').addClass('collapse').on('click', function () { + var $this = $(this); + + if ($this.hasClass('expand')) + $this.expand(scope); + else + $this.collapse(scope); + }); + + this.find('.expand-all-button').on('click', function () { + $(this).expandAll(scope); + }); + + this.find('.collapse-all-button').on('click', function () { + $(this).collapseAll(scope); + }); + + this.collapseAll(this); + + return this; + }; + + $.fn.expand = function (scope, recursive) { + return this.each(function () { + var $this = $(this); + + if (recursive) { + scope.find('*[data-parent=' + $this.attr('id') + ']').find('.expand-button.expand').expand(scope, true); + scope.find('*[data-parent=' + $this.attr('id') + ']').find('.expand-button.expand').expand(scope, true); + } + + if ($this.hasClass('expand')) { + $('*[data-parent=' + $this.attr('id') + ']').toggle(true); + $this.toggleClass('expand').toggleClass('collapse'); + } + }); + }; + + $.fn.expandAll = function (scope) { + $('*[data-parent=ROOT]').find('.expand-button.expand').expand(scope, true); + $('*[data-parent=ROOT]').find('.expand-button.collapse').expand(scope, true); + }; + + $.fn.collapse = function (scope) { + return this.each(function () { + var $this = $(this); + + scope.find('*[data-parent=' + $this.attr('id') + '] .expand-button.collapse').collapse(scope); + scope.find('*[data-parent=' + $this.attr('id') + ']').toggle(false); + $this.toggleClass('expand').toggleClass('collapse'); + }); + }; + + $.fn.collapseAll = function (scope) { + $('*[data-parent=ROOT]').find('.expand-button.collapse').collapse(scope); + }; + + $.fn.sortable = function (target) { + var table = this; + + this.find('thead .sortable').on('click', function () { + var $this = $(this); + + if ($this.hasClass('sorted-down')) { + var desc = false; + var style = 'sorted-up'; + } + else { + var desc = true; + var style = 'sorted-down'; + } + + $(target).sortTable($this.attr('id'), desc); + + table.find('thead .sortable').removeClass('sorted-up sorted-down'); + $this.addClass(style); + + return false; + }); + + return this; + }; + + $.fn.sortTable = function (col, desc) { + function getValue(line) { + var cell = $(line).find('.' + col); + + if (cell.hasClass('value')) + var value = cell.text(); + else + var value = cell.find('.value').text(); + + return parseFloat(value); + } + + function sortLines (lines, group) { + var notErrorTable = col.search("error") == -1; + var linesToSort = notErrorTable ? lines.filter('*[data-parent=' + group + ']') : lines; + + var sortedLines = linesToSort.sort(function (a, b) { + return desc ? getValue(b) - getValue(a): getValue(a) - getValue(b); + }).toArray(); + + var result = []; + $.each(sortedLines, function (i, line) { + result.push(line); + if (notErrorTable) + result = result.concat(sortLines(lines, $(line).attr('id'))); + }); + + return result; + } + + this.find('tbody').append(sortLines(this.find('tbody tr').detach(), 'ROOT')); + + return this; + }; +})(jQuery); diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/global_stats.json b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/global_stats.json new file mode 100644 index 0000000..ecd4c45 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/global_stats.json @@ -0,0 +1,77 @@ +{ + "name": "All Requests", + "numberOfRequests": { + "total": 23655, + "ok": 22047, + "ko": 1608 + }, + "minResponseTime": { + "total": 24, + "ok": 24, + "ko": 7563 + }, + "maxResponseTime": { + "total": 60094, + "ok": 59563, + "ko": 60094 + }, + "meanResponseTime": { + "total": 5157, + "ok": 3073, + "ko": 33726 + }, + "standardDeviation": { + "total": 13172, + "ok": 8765, + "ko": 24969 + }, + "percentiles1": { + "total": 128, + "ok": 125, + "ko": 10008 + }, + "percentiles2": { + "total": 1139, + "ok": 1096, + "ko": 60002 + }, + "percentiles3": { + "total": 40980, + "ok": 17282, + "ko": 60006 + }, + "percentiles4": { + "total": 60003, + "ok": 49342, + "ko": 60010 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 14299, + "percentage": 60 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 4006, + "percentage": 17 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 3742, + "percentage": 16 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 1608, + "percentage": 7 +}, + "meanNumberOfRequestsPerSecond": { + "total": 113.72596153846153, + "ok": 105.9951923076923, + "ko": 7.730769230769231 + } +} \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/highcharts-more.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/highcharts-more.js new file mode 100644 index 0000000..2d78893 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/highcharts-more.js @@ -0,0 +1,60 @@ +/* + Highcharts JS v5.0.3 (2016-11-18) + + (c) 2009-2016 Torstein Honsi + + License: www.highcharts.com/license +*/ +(function(x){"object"===typeof module&&module.exports?module.exports=x:x(Highcharts)})(function(x){(function(b){function r(b,a,d){this.init(b,a,d)}var t=b.each,w=b.extend,m=b.merge,q=b.splat;w(r.prototype,{init:function(b,a,d){var f=this,h=f.defaultOptions;f.chart=a;f.options=b=m(h,a.angular?{background:{}}:void 0,b);(b=b.background)&&t([].concat(q(b)).reverse(),function(a){var c,h=d.userOptions;c=m(f.defaultBackgroundOptions,a);a.backgroundColor&&(c.backgroundColor=a.backgroundColor);c.color=c.backgroundColor; +d.options.plotBands.unshift(c);h.plotBands=h.plotBands||[];h.plotBands!==d.options.plotBands&&h.plotBands.unshift(c)})},defaultOptions:{center:["50%","50%"],size:"85%",startAngle:0},defaultBackgroundOptions:{className:"highcharts-pane",shape:"circle",borderWidth:1,borderColor:"#cccccc",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#ffffff"],[1,"#e6e6e6"]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"}});b.Pane=r})(x);(function(b){var r=b.CenteredSeriesMixin, +t=b.each,w=b.extend,m=b.map,q=b.merge,e=b.noop,a=b.Pane,d=b.pick,f=b.pInt,h=b.splat,u=b.wrap,c,l,k=b.Axis.prototype;b=b.Tick.prototype;c={getOffset:e,redraw:function(){this.isDirty=!1},render:function(){this.isDirty=!1},setScale:e,setCategories:e,setTitle:e};l={defaultRadialGaugeOptions:{labels:{align:"center",x:0,y:null},minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,tickLength:10,tickPosition:"inside",tickWidth:2,title:{rotation:0},zIndex:2}, +defaultRadialXOptions:{gridLineWidth:1,labels:{align:null,distance:15,x:0,y:null},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},defaultRadialYOptions:{gridLineInterpolation:"circle",labels:{align:"right",x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}},setOptions:function(a){a=this.options=q(this.defaultOptions,this.defaultRadialOptions,a);a.plotBands||(a.plotBands=[])},getOffset:function(){k.getOffset.call(this);this.chart.axisOffset[this.side]=0;this.center=this.pane.center= +r.getCenter.call(this.pane)},getLinePath:function(a,g){a=this.center;var c=this.chart,f=d(g,a[2]/2-this.offset);this.isCircular||void 0!==g?g=this.chart.renderer.symbols.arc(this.left+a[0],this.top+a[1],f,f,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0}):(g=this.postTranslate(this.angleRad,f),g=["M",a[0]+c.plotLeft,a[1]+c.plotTop,"L",g.x,g.y]);return g},setAxisTranslation:function(){k.setAxisTranslation.call(this);this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/ +(this.max-this.min||1):this.center[2]/2/(this.max-this.min||1),this.minPixelPadding=this.isXAxis?this.transA*this.minPointOffset:0)},beforeSetTickPositions:function(){if(this.autoConnect=this.isCircular&&void 0===d(this.userMax,this.options.max)&&this.endAngleRad-this.startAngleRad===2*Math.PI)this.max+=this.categories&&1||this.pointRange||this.closestPointRange||0},setAxisSize:function(){k.setAxisSize.call(this);this.isRadial&&(this.center=this.pane.center=r.getCenter.call(this.pane),this.isCircular&& +(this.sector=this.endAngleRad-this.startAngleRad),this.len=this.width=this.height=this.center[2]*d(this.sector,1)/2)},getPosition:function(a,g){return this.postTranslate(this.isCircular?this.translate(a):this.angleRad,d(this.isCircular?g:this.translate(a),this.center[2]/2)-this.offset)},postTranslate:function(a,g){var d=this.chart,c=this.center;a=this.startAngleRad+a;return{x:d.plotLeft+c[0]+Math.cos(a)*g,y:d.plotTop+c[1]+Math.sin(a)*g}},getPlotBandPath:function(a,g,c){var h=this.center,p=this.startAngleRad, +k=h[2]/2,n=[d(c.outerRadius,"100%"),c.innerRadius,d(c.thickness,10)],b=Math.min(this.offset,0),l=/%$/,u,e=this.isCircular;"polygon"===this.options.gridLineInterpolation?h=this.getPlotLinePath(a).concat(this.getPlotLinePath(g,!0)):(a=Math.max(a,this.min),g=Math.min(g,this.max),e||(n[0]=this.translate(a),n[1]=this.translate(g)),n=m(n,function(a){l.test(a)&&(a=f(a,10)*k/100);return a}),"circle"!==c.shape&&e?(a=p+this.translate(a),g=p+this.translate(g)):(a=-Math.PI/2,g=1.5*Math.PI,u=!0),n[0]-=b,n[2]-= +b,h=this.chart.renderer.symbols.arc(this.left+h[0],this.top+h[1],n[0],n[0],{start:Math.min(a,g),end:Math.max(a,g),innerR:d(n[1],n[0]-n[2]),open:u}));return h},getPlotLinePath:function(a,g){var d=this,c=d.center,f=d.chart,h=d.getPosition(a),k,b,p;d.isCircular?p=["M",c[0]+f.plotLeft,c[1]+f.plotTop,"L",h.x,h.y]:"circle"===d.options.gridLineInterpolation?(a=d.translate(a))&&(p=d.getLinePath(0,a)):(t(f.xAxis,function(a){a.pane===d.pane&&(k=a)}),p=[],a=d.translate(a),c=k.tickPositions,k.autoConnect&&(c= +c.concat([c[0]])),g&&(c=[].concat(c).reverse()),t(c,function(g,d){b=k.getPosition(g,a);p.push(d?"L":"M",b.x,b.y)}));return p},getTitlePosition:function(){var a=this.center,g=this.chart,d=this.options.title;return{x:g.plotLeft+a[0]+(d.x||0),y:g.plotTop+a[1]-{high:.5,middle:.25,low:0}[d.align]*a[2]+(d.y||0)}}};u(k,"init",function(f,g,k){var b=g.angular,p=g.polar,n=k.isX,u=b&&n,e,A=g.options,m=k.pane||0;if(b){if(w(this,u?c:l),e=!n)this.defaultRadialOptions=this.defaultRadialGaugeOptions}else p&&(w(this, +l),this.defaultRadialOptions=(e=n)?this.defaultRadialXOptions:q(this.defaultYAxisOptions,this.defaultRadialYOptions));b||p?(this.isRadial=!0,g.inverted=!1,A.chart.zoomType=null):this.isRadial=!1;f.call(this,g,k);u||!b&&!p||(f=this.options,g.panes||(g.panes=[]),this.pane=g=g.panes[m]=g.panes[m]||new a(h(A.pane)[m],g,this),g=g.options,this.angleRad=(f.angle||0)*Math.PI/180,this.startAngleRad=(g.startAngle-90)*Math.PI/180,this.endAngleRad=(d(g.endAngle,g.startAngle+360)-90)*Math.PI/180,this.offset=f.offset|| +0,this.isCircular=e)});u(k,"autoLabelAlign",function(a){if(!this.isRadial)return a.apply(this,[].slice.call(arguments,1))});u(b,"getPosition",function(a,d,c,f,h){var g=this.axis;return g.getPosition?g.getPosition(c):a.call(this,d,c,f,h)});u(b,"getLabelPosition",function(a,g,c,f,h,k,b,l,u){var n=this.axis,p=k.y,e=20,y=k.align,v=(n.translate(this.pos)+n.startAngleRad+Math.PI/2)/Math.PI*180%360;n.isRadial?(a=n.getPosition(this.pos,n.center[2]/2+d(k.distance,-25)),"auto"===k.rotation?f.attr({rotation:v}): +null===p&&(p=n.chart.renderer.fontMetrics(f.styles.fontSize).b-f.getBBox().height/2),null===y&&(n.isCircular?(this.label.getBBox().width>n.len*n.tickInterval/(n.max-n.min)&&(e=0),y=v>e&&v<180-e?"left":v>180+e&&v<360-e?"right":"center"):y="center",f.attr({align:y})),a.x+=k.x,a.y+=p):a=a.call(this,g,c,f,h,k,b,l,u);return a});u(b,"getMarkPath",function(a,d,c,f,h,k,b){var g=this.axis;g.isRadial?(a=g.getPosition(this.pos,g.center[2]/2+f),d=["M",d,c,"L",a.x,a.y]):d=a.call(this,d,c,f,h,k,b);return d})})(x); +(function(b){var r=b.each,t=b.noop,w=b.pick,m=b.Series,q=b.seriesType,e=b.seriesTypes;q("arearange","area",{lineWidth:1,marker:null,threshold:null,tooltip:{pointFormat:'\x3cspan style\x3d"color:{series.color}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cb\x3e{point.low}\x3c/b\x3e - \x3cb\x3e{point.high}\x3c/b\x3e\x3cbr/\x3e'},trackByArea:!0,dataLabels:{align:null,verticalAlign:null,xLow:0,xHigh:0,yLow:0,yHigh:0},states:{hover:{halo:!1}}},{pointArrayMap:["low","high"],dataLabelCollections:["dataLabel", +"dataLabelUpper"],toYData:function(a){return[a.low,a.high]},pointValKey:"low",deferTranslatePolar:!0,highToXY:function(a){var d=this.chart,f=this.xAxis.postTranslate(a.rectPlotX,this.yAxis.len-a.plotHigh);a.plotHighX=f.x-d.plotLeft;a.plotHigh=f.y-d.plotTop},translate:function(){var a=this,d=a.yAxis,f=!!a.modifyValue;e.area.prototype.translate.apply(a);r(a.points,function(h){var b=h.low,c=h.high,l=h.plotY;null===c||null===b?h.isNull=!0:(h.plotLow=l,h.plotHigh=d.translate(f?a.modifyValue(c,h):c,0,1, +0,1),f&&(h.yBottom=h.plotHigh))});this.chart.polar&&r(this.points,function(d){a.highToXY(d)})},getGraphPath:function(a){var d=[],f=[],h,b=e.area.prototype.getGraphPath,c,l,k;k=this.options;var p=k.step;a=a||this.points;for(h=a.length;h--;)c=a[h],c.isNull||k.connectEnds||a[h+1]&&!a[h+1].isNull||f.push({plotX:c.plotX,plotY:c.plotY,doCurve:!1}),l={polarPlotY:c.polarPlotY,rectPlotX:c.rectPlotX,yBottom:c.yBottom,plotX:w(c.plotHighX,c.plotX),plotY:c.plotHigh,isNull:c.isNull},f.push(l),d.push(l),c.isNull|| +k.connectEnds||a[h-1]&&!a[h-1].isNull||f.push({plotX:c.plotX,plotY:c.plotY,doCurve:!1});a=b.call(this,a);p&&(!0===p&&(p="left"),k.step={left:"right",center:"center",right:"left"}[p]);d=b.call(this,d);f=b.call(this,f);k.step=p;k=[].concat(a,d);this.chart.polar||"M"!==f[0]||(f[0]="L");this.graphPath=k;this.areaPath=this.areaPath.concat(a,f);k.isArea=!0;k.xMap=a.xMap;this.areaPath.xMap=a.xMap;return k},drawDataLabels:function(){var a=this.data,d=a.length,f,h=[],b=m.prototype,c=this.options.dataLabels, +l=c.align,k=c.verticalAlign,p=c.inside,g,n,e=this.chart.inverted;if(c.enabled||this._hasPointLabels){for(f=d;f--;)if(g=a[f])n=p?g.plotHighg.plotLow,g.y=g.high,g._plotY=g.plotY,g.plotY=g.plotHigh,h[f]=g.dataLabel,g.dataLabel=g.dataLabelUpper,g.below=n,e?l||(c.align=n?"right":"left"):k||(c.verticalAlign=n?"top":"bottom"),c.x=c.xHigh,c.y=c.yHigh;b.drawDataLabels&&b.drawDataLabels.apply(this,arguments);for(f=d;f--;)if(g=a[f])n=p?g.plotHighg.plotLow,g.dataLabelUpper= +g.dataLabel,g.dataLabel=h[f],g.y=g.low,g.plotY=g._plotY,g.below=!n,e?l||(c.align=n?"left":"right"):k||(c.verticalAlign=n?"bottom":"top"),c.x=c.xLow,c.y=c.yLow;b.drawDataLabels&&b.drawDataLabels.apply(this,arguments)}c.align=l;c.verticalAlign=k},alignDataLabel:function(){e.column.prototype.alignDataLabel.apply(this,arguments)},setStackedPoints:t,getSymbol:t,drawPoints:t})})(x);(function(b){var r=b.seriesType;r("areasplinerange","arearange",null,{getPointSpline:b.seriesTypes.spline.prototype.getPointSpline})})(x); +(function(b){var r=b.defaultPlotOptions,t=b.each,w=b.merge,m=b.noop,q=b.pick,e=b.seriesType,a=b.seriesTypes.column.prototype;e("columnrange","arearange",w(r.column,r.arearange,{lineWidth:1,pointRange:null}),{translate:function(){var d=this,f=d.yAxis,b=d.xAxis,u=b.startAngleRad,c,l=d.chart,k=d.xAxis.isRadial,p;a.translate.apply(d);t(d.points,function(a){var g=a.shapeArgs,h=d.options.minPointLength,e,v;a.plotHigh=p=f.translate(a.high,0,1,0,1);a.plotLow=a.plotY;v=p;e=q(a.rectPlotY,a.plotY)-p;Math.abs(e)< +h?(h-=e,e+=h,v-=h/2):0>e&&(e*=-1,v-=e);k?(c=a.barX+u,a.shapeType="path",a.shapeArgs={d:d.polarArc(v+e,v,c,c+a.pointWidth)}):(g.height=e,g.y=v,a.tooltipPos=l.inverted?[f.len+f.pos-l.plotLeft-v-e/2,b.len+b.pos-l.plotTop-g.x-g.width/2,e]:[b.left-l.plotLeft+g.x+g.width/2,f.pos-l.plotTop+v+e/2,e])})},directTouch:!0,trackerGroups:["group","dataLabelsGroup"],drawGraph:m,crispCol:a.crispCol,drawPoints:a.drawPoints,drawTracker:a.drawTracker,getColumnMetrics:a.getColumnMetrics,animate:function(){return a.animate.apply(this, +arguments)},polarArc:function(){return a.polarArc.apply(this,arguments)},pointAttribs:a.pointAttribs})})(x);(function(b){var r=b.each,t=b.isNumber,w=b.merge,m=b.pick,q=b.pInt,e=b.Series,a=b.seriesType,d=b.TrackerMixin;a("gauge","line",{dataLabels:{enabled:!0,defer:!1,y:15,borderRadius:3,crop:!1,verticalAlign:"top",zIndex:2,borderWidth:1,borderColor:"#cccccc"},dial:{},pivot:{},tooltip:{headerFormat:""},showInLegend:!1},{angular:!0,directTouch:!0,drawGraph:b.noop,fixedBox:!0,forceDL:!0,noSharedTooltip:!0, +trackerGroups:["group","dataLabelsGroup"],translate:function(){var a=this.yAxis,d=this.options,b=a.center;this.generatePoints();r(this.points,function(c){var f=w(d.dial,c.dial),k=q(m(f.radius,80))*b[2]/200,h=q(m(f.baseLength,70))*k/100,g=q(m(f.rearLength,10))*k/100,n=f.baseWidth||3,u=f.topWidth||1,e=d.overshoot,v=a.startAngleRad+a.translate(c.y,null,null,null,!0);t(e)?(e=e/180*Math.PI,v=Math.max(a.startAngleRad-e,Math.min(a.endAngleRad+e,v))):!1===d.wrap&&(v=Math.max(a.startAngleRad,Math.min(a.endAngleRad, +v)));v=180*v/Math.PI;c.shapeType="path";c.shapeArgs={d:f.path||["M",-g,-n/2,"L",h,-n/2,k,-u/2,k,u/2,h,n/2,-g,n/2,"z"],translateX:b[0],translateY:b[1],rotation:v};c.plotX=b[0];c.plotY=b[1]})},drawPoints:function(){var a=this,d=a.yAxis.center,b=a.pivot,c=a.options,l=c.pivot,k=a.chart.renderer;r(a.points,function(d){var g=d.graphic,b=d.shapeArgs,f=b.d,h=w(c.dial,d.dial);g?(g.animate(b),b.d=f):(d.graphic=k[d.shapeType](b).attr({rotation:b.rotation,zIndex:1}).addClass("highcharts-dial").add(a.group),d.graphic.attr({stroke:h.borderColor|| +"none","stroke-width":h.borderWidth||0,fill:h.backgroundColor||"#000000"}))});b?b.animate({translateX:d[0],translateY:d[1]}):(a.pivot=k.circle(0,0,m(l.radius,5)).attr({zIndex:2}).addClass("highcharts-pivot").translate(d[0],d[1]).add(a.group),a.pivot.attr({"stroke-width":l.borderWidth||0,stroke:l.borderColor||"#cccccc",fill:l.backgroundColor||"#000000"}))},animate:function(a){var d=this;a||(r(d.points,function(a){var c=a.graphic;c&&(c.attr({rotation:180*d.yAxis.startAngleRad/Math.PI}),c.animate({rotation:a.shapeArgs.rotation}, +d.options.animation))}),d.animate=null)},render:function(){this.group=this.plotGroup("group","series",this.visible?"visible":"hidden",this.options.zIndex,this.chart.seriesGroup);e.prototype.render.call(this);this.group.clip(this.chart.clipRect)},setData:function(a,d){e.prototype.setData.call(this,a,!1);this.processData();this.generatePoints();m(d,!0)&&this.chart.redraw()},drawTracker:d&&d.drawTrackerPoint},{setState:function(a){this.state=a}})})(x);(function(b){var r=b.each,t=b.noop,w=b.pick,m=b.seriesType, +q=b.seriesTypes;m("boxplot","column",{threshold:null,tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eMaximum: {point.high}\x3cbr/\x3eUpper quartile: {point.q3}\x3cbr/\x3eMedian: {point.median}\x3cbr/\x3eLower quartile: {point.q1}\x3cbr/\x3eMinimum: {point.low}\x3cbr/\x3e'},whiskerLength:"50%",fillColor:"#ffffff",lineWidth:1,medianWidth:2,states:{hover:{brightness:-.3}},whiskerWidth:2},{pointArrayMap:["low","q1","median", +"q3","high"],toYData:function(b){return[b.low,b.q1,b.median,b.q3,b.high]},pointValKey:"high",pointAttribs:function(b){var a=this.options,d=b&&b.color||this.color;return{fill:b.fillColor||a.fillColor||d,stroke:a.lineColor||d,"stroke-width":a.lineWidth||0}},drawDataLabels:t,translate:function(){var b=this.yAxis,a=this.pointArrayMap;q.column.prototype.translate.apply(this);r(this.points,function(d){r(a,function(a){null!==d[a]&&(d[a+"Plot"]=b.translate(d[a],0,1,0,1))})})},drawPoints:function(){var b= +this,a=b.options,d=b.chart.renderer,f,h,u,c,l,k,p=0,g,n,m,q,v=!1!==b.doQuartiles,t,x=b.options.whiskerLength;r(b.points,function(e){var r=e.graphic,y=r?"animate":"attr",I=e.shapeArgs,z={},B={},G={},H=e.color||b.color;void 0!==e.plotY&&(g=I.width,n=Math.floor(I.x),m=n+g,q=Math.round(g/2),f=Math.floor(v?e.q1Plot:e.lowPlot),h=Math.floor(v?e.q3Plot:e.lowPlot),u=Math.floor(e.highPlot),c=Math.floor(e.lowPlot),r||(e.graphic=r=d.g("point").add(b.group),e.stem=d.path().addClass("highcharts-boxplot-stem").add(r), +x&&(e.whiskers=d.path().addClass("highcharts-boxplot-whisker").add(r)),v&&(e.box=d.path(void 0).addClass("highcharts-boxplot-box").add(r)),e.medianShape=d.path(void 0).addClass("highcharts-boxplot-median").add(r),z.stroke=e.stemColor||a.stemColor||H,z["stroke-width"]=w(e.stemWidth,a.stemWidth,a.lineWidth),z.dashstyle=e.stemDashStyle||a.stemDashStyle,e.stem.attr(z),x&&(B.stroke=e.whiskerColor||a.whiskerColor||H,B["stroke-width"]=w(e.whiskerWidth,a.whiskerWidth,a.lineWidth),e.whiskers.attr(B)),v&&(r= +b.pointAttribs(e),e.box.attr(r)),G.stroke=e.medianColor||a.medianColor||H,G["stroke-width"]=w(e.medianWidth,a.medianWidth,a.lineWidth),e.medianShape.attr(G)),k=e.stem.strokeWidth()%2/2,p=n+q+k,e.stem[y]({d:["M",p,h,"L",p,u,"M",p,f,"L",p,c]}),v&&(k=e.box.strokeWidth()%2/2,f=Math.floor(f)+k,h=Math.floor(h)+k,n+=k,m+=k,e.box[y]({d:["M",n,h,"L",n,f,"L",m,f,"L",m,h,"L",n,h,"z"]})),x&&(k=e.whiskers.strokeWidth()%2/2,u+=k,c+=k,t=/%$/.test(x)?q*parseFloat(x)/100:x/2,e.whiskers[y]({d:["M",p-t,u,"L",p+t,u, +"M",p-t,c,"L",p+t,c]})),l=Math.round(e.medianPlot),k=e.medianShape.strokeWidth()%2/2,l+=k,e.medianShape[y]({d:["M",n,l,"L",m,l]}))})},setStackedPoints:t})})(x);(function(b){var r=b.each,t=b.noop,w=b.seriesType,m=b.seriesTypes;w("errorbar","boxplot",{color:"#000000",grouping:!1,linkedTo:":previous",tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cb\x3e{point.low}\x3c/b\x3e - \x3cb\x3e{point.high}\x3c/b\x3e\x3cbr/\x3e'},whiskerWidth:null},{type:"errorbar", +pointArrayMap:["low","high"],toYData:function(b){return[b.low,b.high]},pointValKey:"high",doQuartiles:!1,drawDataLabels:m.arearange?function(){var b=this.pointValKey;m.arearange.prototype.drawDataLabels.call(this);r(this.data,function(e){e.y=e[b]})}:t,getColumnMetrics:function(){return this.linkedParent&&this.linkedParent.columnMetrics||m.column.prototype.getColumnMetrics.call(this)}})})(x);(function(b){var r=b.correctFloat,t=b.isNumber,w=b.pick,m=b.Point,q=b.Series,e=b.seriesType,a=b.seriesTypes; +e("waterfall","column",{dataLabels:{inside:!0},lineWidth:1,lineColor:"#333333",dashStyle:"dot",borderColor:"#333333",states:{hover:{lineWidthPlus:0}}},{pointValKey:"y",translate:function(){var d=this.options,b=this.yAxis,h,e,c,l,k,p,g,n,m,q=w(d.minPointLength,5),v=d.threshold,t=d.stacking;a.column.prototype.translate.apply(this);this.minPointLengthOffset=0;g=n=v;e=this.points;h=0;for(d=e.length;hl.height&&(l.y+=l.height,l.height*=-1),c.plotY=l.y=Math.round(l.y)- +this.borderWidth%2/2,l.height=Math.max(Math.round(l.height),.001),c.yBottom=l.y+l.height,l.height<=q&&(l.height=q,this.minPointLengthOffset+=q),l.y-=this.minPointLengthOffset,l=c.plotY+(c.negative?l.height:0)-this.minPointLengthOffset,this.chart.inverted?c.tooltipPos[0]=b.len-l:c.tooltipPos[1]=l},processData:function(a){var b=this.yData,d=this.options.data,e,c=b.length,l,k,p,g,n,m;k=l=p=g=this.options.threshold||0;for(m=0;ma[k-1].y&&(l[2]+=c.height,l[5]+=c.height),e=e.concat(l);return e},drawGraph:function(){q.prototype.drawGraph.call(this);this.graph.attr({d:this.getCrispPath()})},getExtremes:b.noop},{getClassName:function(){var a=m.prototype.getClassName.call(this);this.isSum?a+=" highcharts-sum":this.isIntermediateSum&&(a+=" highcharts-intermediate-sum"); +return a},isValid:function(){return t(this.y,!0)||this.isSum||this.isIntermediateSum}})})(x);(function(b){var r=b.Series,t=b.seriesType,w=b.seriesTypes;t("polygon","scatter",{marker:{enabled:!1,states:{hover:{enabled:!1}}},stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:""},trackByArea:!0},{type:"polygon",getGraphPath:function(){for(var b=r.prototype.getGraphPath.call(this),q=b.length+1;q--;)(q===b.length||"M"===b[q])&&0=this.minPxSize/2?(d.shapeType="circle",d.shapeArgs={x:d.plotX,y:d.plotY,r:c},d.dlBox={x:d.plotX-c,y:d.plotY-c,width:2*c,height:2*c}):d.shapeArgs=d.plotY=d.dlBox=void 0},drawLegendSymbol:function(a,b){var d=this.chart.renderer,c=d.fontMetrics(a.itemStyle.fontSize).f/2;b.legendSymbol=d.circle(c,a.baseline-c,c).attr({zIndex:3}).add(b.legendGroup);b.legendSymbol.isMarker= +!0},drawPoints:l.column.prototype.drawPoints,alignDataLabel:l.column.prototype.alignDataLabel,buildKDTree:a,applyZones:a},{haloPath:function(a){return h.prototype.haloPath.call(this,this.shapeArgs.r+a)},ttBelow:!1});w.prototype.beforePadding=function(){var a=this,b=this.len,c=this.chart,h=0,l=b,u=this.isXAxis,m=u?"xData":"yData",w=this.min,x={},A=Math.min(c.plotWidth,c.plotHeight),C=Number.MAX_VALUE,D=-Number.MAX_VALUE,E=this.max-w,z=b/E,F=[];q(this.series,function(b){var g=b.options;!b.bubblePadding|| +!b.visible&&c.options.chart.ignoreHiddenSeries||(a.allowZoomOutside=!0,F.push(b),u&&(q(["minSize","maxSize"],function(a){var b=g[a],d=/%$/.test(b),b=f(b);x[a]=d?A*b/100:b}),b.minPxSize=x.minSize,b.maxPxSize=Math.max(x.maxSize,x.minSize),b=b.zData,b.length&&(C=d(g.zMin,Math.min(C,Math.max(t(b),!1===g.displayNegative?g.zThreshold:-Number.MAX_VALUE))),D=d(g.zMax,Math.max(D,r(b))))))});q(F,function(b){var d=b[m],c=d.length,f;u&&b.getRadii(C,D,b.minPxSize,b.maxPxSize);if(0f&&(f+=360),a.clientX=f):a.clientX=a.plotX};m.spline&&q(m.spline.prototype,"getPointSpline",function(a,b,f,h){var d,c,e,k,p,g,n;this.chart.polar?(d=f.plotX, +c=f.plotY,a=b[h-1],e=b[h+1],this.connectEnds&&(a||(a=b[b.length-2]),e||(e=b[1])),a&&e&&(k=a.plotX,p=a.plotY,b=e.plotX,g=e.plotY,k=(1.5*d+k)/2.5,p=(1.5*c+p)/2.5,e=(1.5*d+b)/2.5,n=(1.5*c+g)/2.5,b=Math.sqrt(Math.pow(k-d,2)+Math.pow(p-c,2)),g=Math.sqrt(Math.pow(e-d,2)+Math.pow(n-c,2)),k=Math.atan2(p-c,k-d),p=Math.atan2(n-c,e-d),n=Math.PI/2+(k+p)/2,Math.abs(k-n)>Math.PI/2&&(n-=Math.PI),k=d+Math.cos(n)*b,p=c+Math.sin(n)*b,e=d+Math.cos(Math.PI+n)*g,n=c+Math.sin(Math.PI+n)*g,f.rightContX=e,f.rightContY=n), +h?(f=["C",a.rightContX||a.plotX,a.rightContY||a.plotY,k||d,p||c,d,c],a.rightContX=a.rightContY=null):f=["M",d,c]):f=a.call(this,b,f,h);return f});q(e,"translate",function(a){var b=this.chart;a.call(this);if(b.polar&&(this.kdByAngle=b.tooltip&&b.tooltip.shared,!this.preventPostTranslate))for(a=this.points,b=a.length;b--;)this.toXY(a[b])});q(e,"getGraphPath",function(a,b){var d=this,e,m;if(this.chart.polar){b=b||this.points;for(e=0;eb.center[1]}),q(m,"alignDataLabel",function(a,b,f,h,m,c){this.chart.polar?(a=b.rectPlotX/Math.PI*180,null===h.align&&(h.align=20a?"left":200a?"right":"center"),null===h.verticalAlign&&(h.verticalAlign=45>a||315a?"top":"middle"),e.alignDataLabel.call(this,b,f,h,m,c)):a.call(this, +b,f,h,m,c)}));q(b,"getCoordinates",function(a,b){var d=this.chart,e={xAxis:[],yAxis:[]};d.polar?t(d.axes,function(a){var c=a.isXAxis,f=a.center,h=b.chartX-f[0]-d.plotLeft,f=b.chartY-f[1]-d.plotTop;e[c?"xAxis":"yAxis"].push({axis:a,value:a.translate(c?Math.PI-Math.atan2(h,f):Math.sqrt(Math.pow(h,2)+Math.pow(f,2)),!0)})}):e=a.call(this,b);return e})})(x)}); diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/highstock.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/highstock.js new file mode 100644 index 0000000..34a3f91 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/highstock.js @@ -0,0 +1,496 @@ +/* + Highstock JS v5.0.3 (2016-11-18) + + (c) 2009-2016 Torstein Honsi + + License: www.highcharts.com/license +*/ +(function(N,a){"object"===typeof module&&module.exports?module.exports=N.document?a(N):a:N.Highcharts=a(N)})("undefined"!==typeof window?window:this,function(N){N=function(){var a=window,D=a.document,B=a.navigator&&a.navigator.userAgent||"",G=D&&D.createElementNS&&!!D.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,H=/(edge|msie|trident)/i.test(B)&&!window.opera,p=!G,l=/Firefox/.test(B),r=l&&4>parseInt(B.split("Firefox/")[1],10);return a.Highcharts?a.Highcharts.error(16,!0):{product:"Highstock", +version:"5.0.3",deg2rad:2*Math.PI/360,doc:D,hasBidiBug:r,hasTouch:D&&void 0!==D.documentElement.ontouchstart,isMS:H,isWebKit:/AppleWebKit/.test(B),isFirefox:l,isTouchDevice:/(Mobile|Android|Windows Phone)/.test(B),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:G,vml:p,win:a,charts:[],marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){}}}();(function(a){var D=[],B=a.charts,G=a.doc,H=a.win;a.error=function(a,l){a="Highcharts error #"+ +a+": www.highcharts.com/errors/"+a;if(l)throw Error(a);H.console&&console.log(a)};a.Fx=function(a,l,r){this.options=l;this.elem=a;this.prop=r};a.Fx.prototype={dSetter:function(){var a=this.paths[0],l=this.paths[1],r=[],w=this.now,t=a.length,k;if(1===w)r=this.toD;else if(t===l.length&&1>w)for(;t--;)k=parseFloat(a[t]),r[t]=isNaN(k)?a[t]:w*parseFloat(l[t]-k)+k;else r=l;this.elem.attr("d",r)},update:function(){var a=this.elem,l=this.prop,r=this.now,w=this.options.step;if(this[l+"Setter"])this[l+"Setter"](); +else a.attr?a.element&&a.attr(l,r):a.style[l]=r+this.unit;w&&w.call(a,r,this)},run:function(a,l,r){var p=this,t=function(a){return t.stopped?!1:p.step(a)},k;this.startTime=+new Date;this.start=a;this.end=l;this.unit=r;this.now=this.start;this.pos=0;t.elem=this.elem;t()&&1===D.push(t)&&(t.timerId=setInterval(function(){for(k=0;k=k+this.startTime){this.now=this.end;this.pos=1;this.update();a=m[this.prop]=!0;for(e in m)!0!==m[e]&&(a=!1);a&&t&&t.call(p);p=!1}else this.pos=w.easing((l-this.startTime)/k),this.now=this.start+(this.end-this.start)*this.pos,this.update(),p=!0;return p},initPath:function(p,l,r){function w(a){for(b=a.length;b--;)"M"!==a[b]&&"L"!==a[b]||a.splice(b+1,0,a[b+1],a[b+2],a[b+1],a[b+2])}function t(a,c){for(;a.lengthm?"AM":"PM",P:12>m?"am":"pm",S:q(t.getSeconds()),L:q(Math.round(l%1E3),3)},a.dateFormats);for(k in w)for(;-1!==p.indexOf("%"+k);)p= +p.replace("%"+k,"function"===typeof w[k]?w[k](l):w[k]);return r?p.substr(0,1).toUpperCase()+p.substr(1):p};a.formatSingle=function(p,l){var r=/\.([0-9])/,w=a.defaultOptions.lang;/f$/.test(p)?(r=(r=p.match(r))?r[1]:-1,null!==l&&(l=a.numberFormat(l,r,w.decimalPoint,-1=r&&(l=[1/r])));for(w=0;w=p||!t&&k<=(l[w]+(l[w+1]||l[w]))/ +2);w++);return m*r};a.stableSort=function(a,l){var r=a.length,p,t;for(t=0;tr&&(r=a[l]);return r};a.destroyObjectProperties=function(a,l){for(var r in a)a[r]&&a[r]!==l&&a[r].destroy&&a[r].destroy(),delete a[r]};a.discardElement=function(p){var l= +a.garbageBin;l||(l=a.createElement("div"));p&&l.appendChild(p);l.innerHTML=""};a.correctFloat=function(a,l){return parseFloat(a.toPrecision(l||14))};a.setAnimation=function(p,l){l.renderer.globalAnimation=a.pick(p,l.options.chart.animation,!0)};a.animObject=function(p){return a.isObject(p)?a.merge(p):{duration:p?500:0}};a.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5};a.numberFormat=function(p,l,r,w){p=+p||0;l=+l;var t=a.defaultOptions.lang, +k=(p.toString().split(".")[1]||"").length,m,e,g=Math.abs(p);-1===l?l=Math.min(k,20):a.isNumber(l)||(l=2);m=String(a.pInt(g.toFixed(l)));e=3p?"-":"")+(e?m.substr(0,e)+w:"");p+=m.substr(e).replace(/(\d{3})(?=\d)/g,"$1"+w);l&&(w=Math.abs(g-m+Math.pow(10,-Math.max(l,k)-1)),p+=r+w.toFixed(l).slice(2));return p};Math.easeInOutSine=function(a){return-.5*(Math.cos(Math.PI*a)-1)};a.getStyle=function(p,l){return"width"===l?Math.min(p.offsetWidth, +p.scrollWidth)-a.getStyle(p,"padding-left")-a.getStyle(p,"padding-right"):"height"===l?Math.min(p.offsetHeight,p.scrollHeight)-a.getStyle(p,"padding-top")-a.getStyle(p,"padding-bottom"):(p=H.getComputedStyle(p,void 0))&&a.pInt(p.getPropertyValue(l))};a.inArray=function(a,l){return l.indexOf?l.indexOf(a):[].indexOf.call(l,a)};a.grep=function(a,l){return[].filter.call(a,l)};a.map=function(a,l){for(var r=[],p=0,t=a.length;pl;l++)w[l]+=p(255*a),0>w[l]&&(w[l]=0),255z.width)z={width:0,height:0}}else z=this.htmlGetBBox();b.isSVG&&(a=z.width, +b=z.height,c&&L&&"11px"===L.fontSize&&"16.9"===b.toPrecision(3)&&(z.height=b=14),v&&(z.width=Math.abs(b*Math.sin(d))+Math.abs(a*Math.cos(d)),z.height=Math.abs(b*Math.cos(d))+Math.abs(a*Math.sin(d))));if(g&&0]*>/g,"")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,this.textStr=a,this.added&&this.renderer.buildText(this))},fillSetter:function(a,c,v){"string"===typeof a?v.setAttribute(c, +a):a&&this.colorGradient(a,c,v)},visibilitySetter:function(a,c,v){"inherit"===a?v.removeAttribute(c):v.setAttribute(c,a)},zIndexSetter:function(a,c){var v=this.renderer,z=this.parentGroup,b=(z||v).element||v.box,d,n=this.element,f;d=this.added;var e;k(a)&&(n.zIndex=a,a=+a,this[c]===a&&(d=!1),this[c]=a);if(d){(a=this.zIndex)&&z&&(z.handleZ=!0);c=b.childNodes;for(e=0;ea||!k(a)&&k(d)||0>a&&!k(d)&&b!==v.box)&&(b.insertBefore(n,z),f=!0);f||b.appendChild(n)}return f}, +_defaultSetter:function(a,c,v){v.setAttribute(c,a)}};D.prototype.yGetter=D.prototype.xGetter;D.prototype.translateXSetter=D.prototype.translateYSetter=D.prototype.rotationSetter=D.prototype.verticalAlignSetter=D.prototype.scaleXSetter=D.prototype.scaleYSetter=function(a,c){this[c]=a;this.doTransform=!0};D.prototype["stroke-widthSetter"]=D.prototype.strokeSetter=function(a,c,v){this[c]=a;this.stroke&&this["stroke-width"]?(D.prototype.fillSetter.call(this,this.stroke,"stroke",v),v.setAttribute("stroke-width", +this["stroke-width"]),this.hasStroke=!0):"stroke-width"===c&&0===a&&this.hasStroke&&(v.removeAttribute("stroke"),this.hasStroke=!1)};B=a.SVGRenderer=function(){this.init.apply(this,arguments)};B.prototype={Element:D,SVG_NS:K,init:function(a,c,v,b,d,n){var z;b=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"}).css(this.getStyle(b));z=b.element;a.appendChild(z);-1===a.innerHTML.indexOf("xmlns")&&p(z,"xmlns",this.SVG_NS);this.isSVG=!0;this.box=z;this.boxWrapper=b;this.alignedObjects= +[];this.url=(E||A)&&g.getElementsByTagName("base").length?R.location.href.replace(/#.*?$/,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(g.createTextNode("Created with Highstock 5.0.3"));this.defs=this.createElement("defs").add();this.allowHTML=n;this.forExport=d;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(c,v,!1);var f;E&&a.getBoundingClientRect&&(c=function(){w(a,{left:0,top:0});f=a.getBoundingClientRect(); +w(a,{left:Math.ceil(f.left)-f.left+"px",top:Math.ceil(f.top)-f.top+"px"})},c(),this.unSubPixelFix=G(R,"resize",c))},getStyle:function(a){return this.style=C({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},a)},setStyle:function(a){this.boxWrapper.css(this.getStyle(a))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();e(this.gradients||{});this.gradients= +null;a&&(this.defs=a.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(a){var c=new this.Element;c.init(this,a);return c},draw:J,getRadialAttr:function(a,c){return{cx:a[0]-a[2]/2+c.cx*a[2],cy:a[1]-a[2]/2+c.cy*a[2],r:c.r*a[2]}},buildText:function(a){for(var c=a.element,z=this,b=z.forExport,n=y(a.textStr,"").toString(),f=-1!==n.indexOf("\x3c"),e=c.childNodes,q,F,x,A,I=p(c,"x"),m=a.styles,k=a.textWidth,C=m&&m.lineHeight,M=m&&m.textOutline,J=m&& +"ellipsis"===m.textOverflow,E=e.length,O=k&&!a.added&&this.box,t=function(a){var v;v=/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize:m&&m.fontSize||z.style.fontSize||12;return C?u(C):z.fontMetrics(v,a.getAttribute("style")?a:c).h};E--;)c.removeChild(e[E]);f||M||J||k||-1!==n.indexOf(" ")?(q=/<.*class="([^"]+)".*>/,F=/<.*style="([^"]+)".*>/,x=/<.*href="(http[^"]+)".*>/,O&&O.appendChild(c),n=f?n.replace(/<(b|strong)>/g,'\x3cspan style\x3d"font-weight:bold"\x3e').replace(/<(i|em)>/g,'\x3cspan style\x3d"font-style:italic"\x3e').replace(//g,"\x3c/span\x3e").split(//g):[n],n=d(n,function(a){return""!==a}),h(n,function(d,n){var f,e=0;d=d.replace(/^\s+|\s+$/g,"").replace(//g,"\x3c/span\x3e|||");f=d.split("|||");h(f,function(d){if(""!==d||1===f.length){var u={},y=g.createElementNS(z.SVG_NS,"tspan"),L,h;q.test(d)&&(L=d.match(q)[1],p(y,"class",L));F.test(d)&&(h=d.match(F)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),p(y,"style",h));x.test(d)&&!b&&(p(y, +"onclick",'location.href\x3d"'+d.match(x)[1]+'"'),w(y,{cursor:"pointer"}));d=(d.replace(/<(.|\n)*?>/g,"")||" ").replace(/</g,"\x3c").replace(/>/g,"\x3e");if(" "!==d){y.appendChild(g.createTextNode(d));e?u.dx=0:n&&null!==I&&(u.x=I);p(y,u);c.appendChild(y);!e&&n&&(!v&&b&&w(y,{display:"block"}),p(y,"dy",t(y)));if(k){u=d.replace(/([^\^])-/g,"$1- ").split(" ");L="nowrap"===m.whiteSpace;for(var C=1k,void 0===A&&(A=M),J&&A?(Q/=2,""===l||!M&&.5>Q?u=[]:(l=d.substring(0,l.length+(M?-1:1)*Math.ceil(Q)),u=[l+(3k&&(k=P)),u.length&&y.appendChild(g.createTextNode(u.join(" ").replace(/- /g, +"-")));a.rotation=R}e++}}})}),A&&a.attr("title",a.textStr),O&&O.removeChild(c),M&&a.applyTextOutline&&a.applyTextOutline(M)):c.appendChild(g.createTextNode(n.replace(/</g,"\x3c").replace(/>/g,"\x3e")))},getContrast:function(a){a=r(a).rgba;return 510v?d>c+f&&de?d>c+f&&db&&e>a+f&&ed&&e>a+f&&ea?a+3:Math.round(1.2*a);return{h:c,b:Math.round(.8*c),f:a}},rotCorr:function(a, +c,v){var b=a;c&&v&&(b=Math.max(b*Math.cos(c*m),4));return{x:-a/3*Math.sin(c*m),y:b}},label:function(a,c,v,b,d,n,f,e,K){var q=this,u=q.g("button"!==K&&"label"),y=u.text=q.text("",0,0,f).attr({zIndex:1}),g,F,z=0,A=3,L=0,m,M,J,E,O,t={},l,R,r=/^url\((.*?)\)$/.test(b),p=r,P,w,Q,S;K&&u.addClass("highcharts-"+K);p=r;P=function(){return(l||0)%2/2};w=function(){var a=y.element.style,c={};F=(void 0===m||void 0===M||O)&&k(y.textStr)&&y.getBBox();u.width=(m||F.width||0)+2*A+L;u.height=(M||F.height||0)+2*A;R= +A+q.fontMetrics(a&&a.fontSize,y).b;p&&(g||(u.box=g=q.symbols[b]||r?q.symbol(b):q.rect(),g.addClass(("button"===K?"":"highcharts-label-box")+(K?" highcharts-"+K+"-box":"")),g.add(u),a=P(),c.x=a,c.y=(e?-R:0)+a),c.width=Math.round(u.width),c.height=Math.round(u.height),g.attr(C(c,t)),t={})};Q=function(){var a=L+A,c;c=e?0:R;k(m)&&F&&("center"===O||"right"===O)&&(a+={center:.5,right:1}[O]*(m-F.width));if(a!==y.x||c!==y.y)y.attr("x",a),void 0!==c&&y.attr("y",c);y.x=a;y.y=c};S=function(a,c){g?g.attr(a,c): +t[a]=c};u.onAdd=function(){y.add(u);u.attr({text:a||0===a?a:"",x:c,y:v});g&&k(d)&&u.attr({anchorX:d,anchorY:n})};u.widthSetter=function(a){m=a};u.heightSetter=function(a){M=a};u["text-alignSetter"]=function(a){O=a};u.paddingSetter=function(a){k(a)&&a!==A&&(A=u.padding=a,Q())};u.paddingLeftSetter=function(a){k(a)&&a!==L&&(L=a,Q())};u.alignSetter=function(a){a={left:0,center:.5,right:1}[a];a!==z&&(z=a,F&&u.attr({x:J}))};u.textSetter=function(a){void 0!==a&&y.textSetter(a);w();Q()};u["stroke-widthSetter"]= +function(a,c){a&&(p=!0);l=this["stroke-width"]=a;S(c,a)};u.strokeSetter=u.fillSetter=u.rSetter=function(a,c){"fill"===c&&a&&(p=!0);S(c,a)};u.anchorXSetter=function(a,c){d=a;S(c,Math.round(a)-P()-J)};u.anchorYSetter=function(a,c){n=a;S(c,a-E)};u.xSetter=function(a){u.x=a;z&&(a-=z*((m||F.width)+2*A));J=Math.round(a);u.attr("translateX",J)};u.ySetter=function(a){E=u.y=Math.round(a);u.attr("translateY",E)};var T=u.css;return C(u,{css:function(a){if(a){var c={};a=x(a);h(u.textProps,function(v){void 0!== +a[v]&&(c[v]=a[v],delete a[v])});y.css(c)}return T.call(u,a)},getBBox:function(){return{width:F.width+2*A,height:F.height+2*A,x:F.x-A,y:F.y-A}},shadow:function(a){a&&(w(),g&&g.shadow(a));return u},destroy:function(){I(u.element,"mouseenter");I(u.element,"mouseleave");y&&(y=y.destroy());g&&(g=g.destroy());D.prototype.destroy.call(u);u=q=w=Q=S=null}})}};a.Renderer=B})(N);(function(a){var D=a.attr,B=a.createElement,G=a.css,H=a.defined,p=a.each,l=a.extend,r=a.isFirefox,w=a.isMS,t=a.isWebKit,k=a.pInt,m= +a.SVGRenderer,e=a.win,g=a.wrap;l(a.SVGElement.prototype,{htmlCss:function(a){var e=this.element;if(e=a&&"SPAN"===e.tagName&&a.width)delete a.width,this.textWidth=e,this.updateTransform();a&&"ellipsis"===a.textOverflow&&(a.whiteSpace="nowrap",a.overflow="hidden");this.styles=l(this.styles,a);G(this.element,a);return this},htmlGetBBox:function(){var a=this.element;"text"===a.nodeName&&(a.style.position="absolute");return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var a= +this.renderer,e=this.element,f=this.translateX||0,d=this.translateY||0,b=this.x||0,q=this.y||0,g=this.textAlign||"left",c={left:0,center:.5,right:1}[g],F=this.styles;G(e,{marginLeft:f,marginTop:d});this.shadows&&p(this.shadows,function(a){G(a,{marginLeft:f+1,marginTop:d+1})});this.inverted&&p(e.childNodes,function(c){a.invertChild(c,e)});if("SPAN"===e.tagName){var n=this.rotation,A=k(this.textWidth),x=F&&F.whiteSpace,m=[n,g,e.innerHTML,this.textWidth,this.textAlign].join();m!==this.cTT&&(F=a.fontMetrics(e.style.fontSize).b, +H(n)&&this.setSpanRotation(n,c,F),G(e,{width:"",whiteSpace:x||"nowrap"}),e.offsetWidth>A&&/[ \-]/.test(e.textContent||e.innerText)&&G(e,{width:A+"px",display:"block",whiteSpace:x||"normal"}),this.getSpanCorrection(e.offsetWidth,F,c,n,g));G(e,{left:b+(this.xCorr||0)+"px",top:q+(this.yCorr||0)+"px"});t&&(F=e.offsetHeight);this.cTT=m}}else this.alignOnAdd=!0},setSpanRotation:function(a,g,f){var d={},b=w?"-ms-transform":t?"-webkit-transform":r?"MozTransform":e.opera?"-o-transform":"";d[b]=d.transform= +"rotate("+a+"deg)";d[b+(r?"Origin":"-origin")]=d.transformOrigin=100*g+"% "+f+"px";G(this.element,d)},getSpanCorrection:function(a,e,f){this.xCorr=-a*f;this.yCorr=-e}});l(m.prototype,{html:function(a,e,f){var d=this.createElement("span"),b=d.element,q=d.renderer,h=q.isSVG,c=function(a,c){p(["opacity","visibility"],function(b){g(a,b+"Setter",function(a,b,d,n){a.call(this,b,d,n);c[d]=b})})};d.textSetter=function(a){a!==b.innerHTML&&delete this.bBox;b.innerHTML=this.textStr=a;d.htmlUpdateTransform()}; +h&&c(d,d.element.style);d.xSetter=d.ySetter=d.alignSetter=d.rotationSetter=function(a,c){"align"===c&&(c="textAlign");d[c]=a;d.htmlUpdateTransform()};d.attr({text:a,x:Math.round(e),y:Math.round(f)}).css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize,position:"absolute"});b.style.whiteSpace="nowrap";d.css=d.htmlCss;h&&(d.add=function(a){var n,f=q.box.parentNode,e=[];if(this.parentGroup=a){if(n=a.div,!n){for(;a;)e.push(a),a=a.parentGroup;p(e.reverse(),function(a){var b,d=D(a.element, +"class");d&&(d={className:d});n=a.div=a.div||B("div",d,{position:"absolute",left:(a.translateX||0)+"px",top:(a.translateY||0)+"px",display:a.display,opacity:a.opacity,pointerEvents:a.styles&&a.styles.pointerEvents},n||f);b=n.style;l(a,{translateXSetter:function(c,d){b.left=c+"px";a[d]=c;a.doTransform=!0},translateYSetter:function(c,d){b.top=c+"px";a[d]=c;a.doTransform=!0}});c(a,b)})}}else n=f;n.appendChild(b);d.added=!0;d.alignOnAdd&&d.htmlUpdateTransform();return d});return d}})})(N);(function(a){var D, +B,G=a.createElement,H=a.css,p=a.defined,l=a.deg2rad,r=a.discardElement,w=a.doc,t=a.each,k=a.erase,m=a.extend;D=a.extendClass;var e=a.isArray,g=a.isNumber,h=a.isObject,C=a.merge;B=a.noop;var f=a.pick,d=a.pInt,b=a.SVGElement,q=a.SVGRenderer,E=a.win;a.svg||(B={docMode8:w&&8===w.documentMode,init:function(a,b){var c=["\x3c",b,' filled\x3d"f" stroked\x3d"f"'],d=["position: ","absolute",";"],f="div"===b;("shape"===b||f)&&d.push("left:0;top:0;width:1px;height:1px;");d.push("visibility: ",f?"hidden":"visible"); +c.push(' style\x3d"',d.join(""),'"/\x3e');b&&(c=f||"span"===b||"img"===b?c.join(""):a.prepVML(c),this.element=G(c));this.renderer=a},add:function(a){var c=this.renderer,b=this.element,d=c.box,f=a&&a.inverted,d=a?a.element||a:d;a&&(this.parentGroup=a);f&&c.invertChild(b,d);d.appendChild(b);this.added=!0;this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform();if(this.onAdd)this.onAdd();this.className&&this.attr("class",this.className);return this},updateTransform:b.prototype.htmlUpdateTransform, +setSpanRotation:function(){var a=this.rotation,b=Math.cos(a*l),d=Math.sin(a*l);H(this.element,{filter:a?["progid:DXImageTransform.Microsoft.Matrix(M11\x3d",b,", M12\x3d",-d,", M21\x3d",d,", M22\x3d",b,", sizingMethod\x3d'auto expand')"].join(""):"none"})},getSpanCorrection:function(a,b,d,e,q){var c=e?Math.cos(e*l):1,n=e?Math.sin(e*l):0,u=f(this.elemHeight,this.element.offsetHeight),g;this.xCorr=0>c&&-a;this.yCorr=0>n&&-u;g=0>c*n;this.xCorr+=n*b*(g?1-d:d);this.yCorr-=c*b*(e?g?d:1-d:1);q&&"left"!== +q&&(this.xCorr-=a*d*(0>c?-1:1),e&&(this.yCorr-=u*d*(0>n?-1:1)),H(this.element,{textAlign:q}))},pathToVML:function(a){for(var c=a.length,b=[];c--;)g(a[c])?b[c]=Math.round(10*a[c])-5:"Z"===a[c]?b[c]="x":(b[c]=a[c],!a.isArc||"wa"!==a[c]&&"at"!==a[c]||(b[c+5]===b[c+7]&&(b[c+7]+=a[c+7]>a[c+5]?1:-1),b[c+6]===b[c+8]&&(b[c+8]+=a[c+8]>a[c+6]?1:-1)));return b.join(" ")||"x"},clip:function(a){var c=this,b;a?(b=a.members,k(b,c),b.push(c),c.destroyClip=function(){k(b,c)},a=a.getCSS(c)):(c.destroyClip&&c.destroyClip(), +a={clip:c.docMode8?"inherit":"rect(auto)"});return c.css(a)},css:b.prototype.htmlCss,safeRemoveChild:function(a){a.parentNode&&r(a)},destroy:function(){this.destroyClip&&this.destroyClip();return b.prototype.destroy.apply(this)},on:function(a,b){this.element["on"+a]=function(){var a=E.event;a.target=a.srcElement;b(a)};return this},cutOffPath:function(a,b){var c;a=a.split(/[ ,]/);c=a.length;if(9===c||11===c)a[c-4]=a[c-2]=d(a[c-2])-10*b;return a.join(" ")},shadow:function(a,b,e){var c=[],n,q=this.element, +g=this.renderer,u,I=q.style,F,v=q.path,K,h,m,z;v&&"string"!==typeof v.value&&(v="x");h=v;if(a){m=f(a.width,3);z=(a.opacity||.15)/m;for(n=1;3>=n;n++)K=2*m+1-2*n,e&&(h=this.cutOffPath(v.value,K+.5)),F=['\x3cshape isShadow\x3d"true" strokeweight\x3d"',K,'" filled\x3d"false" path\x3d"',h,'" coordsize\x3d"10 10" style\x3d"',q.style.cssText,'" /\x3e'],u=G(g.prepVML(F),null,{left:d(I.left)+f(a.offsetX,1),top:d(I.top)+f(a.offsetY,1)}),e&&(u.cutOff=K+1),F=['\x3cstroke color\x3d"',a.color||"#000000",'" opacity\x3d"', +z*n,'"/\x3e'],G(g.prepVML(F),null,null,u),b?b.element.appendChild(u):q.parentNode.insertBefore(u,q),c.push(u);this.shadows=c}return this},updateShadows:B,setAttr:function(a,b){this.docMode8?this.element[a]=b:this.element.setAttribute(a,b)},classSetter:function(a){(this.added?this.element:this).className=a},dashstyleSetter:function(a,b,d){(d.getElementsByTagName("stroke")[0]||G(this.renderer.prepVML(["\x3cstroke/\x3e"]),null,null,d))[b]=a||"solid";this[b]=a},dSetter:function(a,b,d){var c=this.shadows; +a=a||[];this.d=a.join&&a.join(" ");d.path=a=this.pathToVML(a);if(c)for(d=c.length;d--;)c[d].path=c[d].cutOff?this.cutOffPath(a,c[d].cutOff):a;this.setAttr(b,a)},fillSetter:function(a,b,d){var c=d.nodeName;"SPAN"===c?d.style.color=a:"IMG"!==c&&(d.filled="none"!==a,this.setAttr("fillcolor",this.renderer.color(a,d,b,this)))},"fill-opacitySetter":function(a,b,d){G(this.renderer.prepVML(["\x3c",b.split("-")[0],' opacity\x3d"',a,'"/\x3e']),null,null,d)},opacitySetter:B,rotationSetter:function(a,b,d){d= +d.style;this[b]=d[b]=a;d.left=-Math.round(Math.sin(a*l)+1)+"px";d.top=Math.round(Math.cos(a*l))+"px"},strokeSetter:function(a,b,d){this.setAttr("strokecolor",this.renderer.color(a,d,b,this))},"stroke-widthSetter":function(a,b,d){d.stroked=!!a;this[b]=a;g(a)&&(a+="px");this.setAttr("strokeweight",a)},titleSetter:function(a,b){this.setAttr(b,a)},visibilitySetter:function(a,b,d){"inherit"===a&&(a="visible");this.shadows&&t(this.shadows,function(c){c.style[b]=a});"DIV"===d.nodeName&&(a="hidden"===a?"-999em": +0,this.docMode8||(d.style[b]=a?"visible":"hidden"),b="top");d.style[b]=a},xSetter:function(a,b,d){this[b]=a;"x"===b?b="left":"y"===b&&(b="top");this.updateClipping?(this[b]=a,this.updateClipping()):d.style[b]=a},zIndexSetter:function(a,b,d){d.style[b]=a}},B["stroke-opacitySetter"]=B["fill-opacitySetter"],a.VMLElement=B=D(b,B),B.prototype.ySetter=B.prototype.widthSetter=B.prototype.heightSetter=B.prototype.xSetter,B={Element:B,isIE8:-1l[0]&&c.push([1,l[1]]);t(c,function(c,b){q.test(c[1])?(n=a.color(c[1]),v=n.get("rgb"),K=n.get("a")):(v=c[1],K=1);r.push(100*c[0]+"% "+v);b?(m=K,k=v):(z=K,E=v)});if("fill"===d)if("gradient"===g)d=A.x1||A[0]||0,c=A.y1||A[1]||0,F=A.x2||A[2]||0,A=A.y2||A[3]||0,C='angle\x3d"'+(90-180*Math.atan((A-c)/(F-d))/Math.PI)+'"',p();else{var h=A.r,w=2*h,B=2*h,D=A.cx,H=A.cy,V=b.radialReference,U,h=function(){V&&(U=f.getBBox(),D+=(V[0]- +U.x)/U.width-.5,H+=(V[1]-U.y)/U.height-.5,w*=V[2]/U.width,B*=V[2]/U.height);C='src\x3d"'+a.getOptions().global.VMLRadialGradientURL+'" size\x3d"'+w+","+B+'" origin\x3d"0.5,0.5" position\x3d"'+D+","+H+'" color2\x3d"'+E+'" ';p()};f.added?h():f.onAdd=h;h=k}else h=v}else q.test(c)&&"IMG"!==b.tagName?(n=a.color(c),f[d+"-opacitySetter"](n.get("a"),d,b),h=n.get("rgb")):(h=b.getElementsByTagName(d),h.length&&(h[0].opacity=1,h[0].type="solid"),h=c);return h},prepVML:function(a){var c=this.isIE8;a=a.join(""); +c?(a=a.replace("/\x3e",' xmlns\x3d"urn:schemas-microsoft-com:vml" /\x3e'),a=-1===a.indexOf('style\x3d"')?a.replace("/\x3e",' style\x3d"display:inline-block;behavior:url(#default#VML);" /\x3e'):a.replace('style\x3d"','style\x3d"display:inline-block;behavior:url(#default#VML);')):a=a.replace("\x3c","\x3chcv:");return a},text:q.prototype.html,path:function(a){var c={coordsize:"10 10"};e(a)?c.d=a:h(a)&&m(c,a);return this.createElement("shape").attr(c)},circle:function(a,b,d){var c=this.symbol("circle"); +h(a)&&(d=a.r,b=a.y,a=a.x);c.isCircle=!0;c.r=d;return c.attr({x:a,y:b})},g:function(a){var c;a&&(c={className:"highcharts-"+a,"class":"highcharts-"+a});return this.createElement("div").attr(c)},image:function(a,b,d,f,e){var c=this.createElement("img").attr({src:a});1f&&m-d*bg&&(F=Math.round((e-m)/Math.cos(f*w)));else if(e=m+(1-d)*b,m-d*bg&&(E=g-a.x+E*d,c=-1),E=Math.min(q, +E),EE||k.autoRotation&&(C.styles||{}).width)F=E;F&&(n.width=F,(k.options.labels.style||{}).textOverflow||(n.textOverflow="ellipsis"),C.css(n))},getPosition:function(a,k,m,e){var g=this.axis,h=g.chart,l=e&&h.oldChartHeight||h.chartHeight;return{x:a?g.translate(k+m,null,null,e)+g.transB:g.left+g.offset+(g.opposite?(e&&h.oldChartWidth||h.chartWidth)-g.right-g.left:0),y:a?l-g.bottom+g.offset-(g.opposite?g.height:0):l-g.translate(k+m,null, +null,e)-g.transB}},getLabelPosition:function(a,k,m,e,g,h,l,f){var d=this.axis,b=d.transA,q=d.reversed,E=d.staggerLines,c=d.tickRotCorr||{x:0,y:0},F=g.y;B(F)||(F=0===d.side?m.rotation?-8:-m.getBBox().height:2===d.side?c.y+8:Math.cos(m.rotation*w)*(c.y-m.getBBox(!1,0).height/2));a=a+g.x+c.x-(h&&e?h*b*(q?-1:1):0);k=k+F-(h&&!e?h*b*(q?1:-1):0);E&&(m=l/(f||1)%E,d.opposite&&(m=E-m-1),k+=d.labelOffset/E*m);return{x:a,y:Math.round(k)}},getMarkPath:function(a,k,m,e,g,h){return h.crispLine(["M",a,k,"L",a+(g? +0:-m),k+(g?m:0)],e)},render:function(a,k,m){var e=this.axis,g=e.options,h=e.chart.renderer,C=e.horiz,f=this.type,d=this.label,b=this.pos,q=g.labels,E=this.gridLine,c=f?f+"Tick":"tick",F=e.tickSize(c),n=this.mark,A=!n,x=q.step,p={},y=!0,u=e.tickmarkOffset,I=this.getPosition(C,b,u,k),M=I.x,I=I.y,v=C&&M===e.pos+e.len||!C&&I===e.pos?-1:1,K=f?f+"Grid":"grid",O=g[K+"LineWidth"],R=g[K+"LineColor"],z=g[K+"LineDashStyle"],K=l(g[c+"Width"],!f&&e.isXAxis?1:0),c=g[c+"Color"];m=l(m,1);this.isActive=!0;E||(p.stroke= +R,p["stroke-width"]=O,z&&(p.dashstyle=z),f||(p.zIndex=1),k&&(p.opacity=0),this.gridLine=E=h.path().attr(p).addClass("highcharts-"+(f?f+"-":"")+"grid-line").add(e.gridGroup));if(!k&&E&&(b=e.getPlotLinePath(b+u,E.strokeWidth()*v,k,!0)))E[this.isNew?"attr":"animate"]({d:b,opacity:m});F&&(e.opposite&&(F[0]=-F[0]),A&&(this.mark=n=h.path().addClass("highcharts-"+(f?f+"-":"")+"tick").add(e.axisGroup),n.attr({stroke:c,"stroke-width":K})),n[A?"attr":"animate"]({d:this.getMarkPath(M,I,F[0],n.strokeWidth()* +v,C,h),opacity:m}));d&&H(M)&&(d.xy=I=this.getLabelPosition(M,I,d,C,q,u,a,x),this.isFirst&&!this.isLast&&!l(g.showFirstLabel,1)||this.isLast&&!this.isFirst&&!l(g.showLastLabel,1)?y=!1:!C||e.isRadial||q.step||q.rotation||k||0===m||this.handleOverflow(I),x&&a%x&&(y=!1),y&&H(I.y)?(I.opacity=m,d[this.isNew?"attr":"animate"](I)):(r(d),d.attr("y",-9999)),this.isNew=!1)},destroy:function(){G(this,this.axis)}}})(N);(function(a){var D=a.addEvent,B=a.animObject,G=a.arrayMax,H=a.arrayMin,p=a.AxisPlotLineOrBandExtension, +l=a.color,r=a.correctFloat,w=a.defaultOptions,t=a.defined,k=a.deg2rad,m=a.destroyObjectProperties,e=a.each,g=a.error,h=a.extend,C=a.fireEvent,f=a.format,d=a.getMagnitude,b=a.grep,q=a.inArray,E=a.isArray,c=a.isNumber,F=a.isString,n=a.merge,A=a.normalizeTickInterval,x=a.pick,J=a.PlotLineOrBand,y=a.removeEvent,u=a.splat,I=a.syncTimeout,M=a.Tick;a.Axis=function(){this.init.apply(this,arguments)};a.Axis.prototype={defaultOptions:{dateTimeLabelFormats:{millisecond:"%H:%M:%S.%L",second:"%H:%M:%S",minute:"%H:%M", +hour:"%H:%M",day:"%e. %b",week:"%e. %b",month:"%b '%y",year:"%Y"},endOnTick:!1,labels:{enabled:!0,style:{color:"#666666",cursor:"default",fontSize:"11px"},x:0},minPadding:.01,maxPadding:.01,minorTickLength:2,minorTickPosition:"outside",startOfWeek:1,startOnTick:!1,tickLength:10,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",title:{align:"middle",style:{color:"#666666"}},type:"linear",minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#ccd6eb", +lineWidth:1,gridLineColor:"#e6e6e6",tickColor:"#ccd6eb"},defaultYAxisOptions:{endOnTick:!0,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},maxPadding:.05,minPadding:.05,startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{enabled:!1,formatter:function(){return a.numberFormat(this.total,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"#000000",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},defaultLeftAxisOptions:{labels:{x:-15},title:{rotation:270}},defaultRightAxisOptions:{labels:{x:15}, +title:{rotation:90}},defaultBottomAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},defaultTopAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},init:function(a,c){var b=c.isX;this.chart=a;this.horiz=a.inverted?!b:b;this.isXAxis=b;this.coll=this.coll||(b?"xAxis":"yAxis");this.opposite=c.opposite;this.side=c.side||(this.horiz?this.opposite?0:2:this.opposite?1:3);this.setOptions(c);var d=this.options,v=d.type;this.labelFormatter=d.labels.formatter||this.defaultLabelFormatter; +this.userOptions=c;this.minPixelPadding=0;this.reversed=d.reversed;this.visible=!1!==d.visible;this.zoomEnabled=!1!==d.zoomEnabled;this.hasNames="category"===v||!0===d.categories;this.categories=d.categories||this.hasNames;this.names=this.names||[];this.isLog="logarithmic"===v;this.isDatetimeAxis="datetime"===v;this.isLinked=t(d.linkedTo);this.ticks={};this.labelEdge=[];this.minorTicks={};this.plotLinesAndBands=[];this.alternateBands={};this.len=0;this.minRange=this.userMinRange=d.minRange||d.maxZoom; +this.range=d.range;this.offset=d.offset||0;this.stacks={};this.oldStacks={};this.stacksTouched=0;this.min=this.max=null;this.crosshair=x(d.crosshair,u(a.options.tooltip.crosshairs)[b?0:1],!1);var f;c=this.options.events;-1===q(this,a.axes)&&(b?a.axes.splice(a.xAxis.length,0,this):a.axes.push(this),a[this.coll].push(this));this.series=this.series||[];a.inverted&&b&&void 0===this.reversed&&(this.reversed=!0);this.removePlotLine=this.removePlotBand=this.removePlotBandOrLine;for(f in c)D(this,f,c[f]); +this.isLog&&(this.val2lin=this.log2lin,this.lin2val=this.lin2log)},setOptions:function(a){this.options=n(this.defaultOptions,"yAxis"===this.coll&&this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],n(w[this.coll],a))},defaultLabelFormatter:function(){var c=this.axis,b=this.value,d=c.categories,e=this.dateTimeLabelFormat,q=w.lang,u=q.numericSymbols,q=q.numericSymbolMagnitude||1E3,n=u&&u.length,g,y=c.options.labels.format, +c=c.isLog?b:c.tickInterval;if(y)g=f(y,this);else if(d)g=b;else if(e)g=a.dateFormat(e,b);else if(n&&1E3<=c)for(;n--&&void 0===g;)d=Math.pow(q,n+1),c>=d&&0===10*b%d&&null!==u[n]&&0!==b&&(g=a.numberFormat(b/d,-1)+u[n]);void 0===g&&(g=1E4<=Math.abs(b)?a.numberFormat(b,-1):a.numberFormat(b,-1,void 0,""));return g},getSeriesExtremes:function(){var a=this,d=a.chart;a.hasVisibleSeries=!1;a.dataMin=a.dataMax=a.threshold=null;a.softThreshold=!a.isXAxis;a.buildStacks&&a.buildStacks();e(a.series,function(v){if(v.visible|| +!d.options.chart.ignoreHiddenSeries){var f=v.options,e=f.threshold,q;a.hasVisibleSeries=!0;a.isLog&&0>=e&&(e=null);if(a.isXAxis)f=v.xData,f.length&&(v=H(f),c(v)||v instanceof Date||(f=b(f,function(a){return c(a)}),v=H(f)),a.dataMin=Math.min(x(a.dataMin,f[0]),v),a.dataMax=Math.max(x(a.dataMax,f[0]),G(f)));else if(v.getExtremes(),q=v.dataMax,v=v.dataMin,t(v)&&t(q)&&(a.dataMin=Math.min(x(a.dataMin,v),v),a.dataMax=Math.max(x(a.dataMax,q),q)),t(e)&&(a.threshold=e),!f.softThreshold||a.isLog)a.softThreshold= +!1}})},translate:function(a,b,d,f,e,q){var v=this.linkedParent||this,u=1,n=0,g=f?v.oldTransA:v.transA;f=f?v.oldMin:v.min;var K=v.minPixelPadding;e=(v.isOrdinal||v.isBroken||v.isLog&&e)&&v.lin2val;g||(g=v.transA);d&&(u*=-1,n=v.len);v.reversed&&(u*=-1,n-=u*(v.sector||v.len));b?(a=(a*u+n-K)/g+f,e&&(a=v.lin2val(a))):(e&&(a=v.val2lin(a)),a=u*(a-f)*g+n+u*K+(c(q)?g*q:0));return a},toPixels:function(a,c){return this.translate(a,!1,!this.horiz,null,!0)+(c?0:this.pos)},toValue:function(a,c){return this.translate(a- +(c?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(a,b,d,f,e){var v=this.chart,q=this.left,u=this.top,n,g,K=d&&v.oldChartHeight||v.chartHeight,y=d&&v.oldChartWidth||v.chartWidth,z;n=this.transB;var h=function(a,c,b){if(ab)f?a=Math.min(Math.max(c,a),b):z=!0;return a};e=x(e,this.translate(a,null,null,d));a=d=Math.round(e+n);n=g=Math.round(K-e-n);c(e)?this.horiz?(n=u,g=K-this.bottom,a=d=h(a,q,q+this.width)):(a=q,d=y-this.right,n=g=h(n,u,u+this.height)):z=!0;return z&&!f?null:v.renderer.crispLine(["M", +a,n,"L",d,g],b||1)},getLinearTickPositions:function(a,b,d){var v,f=r(Math.floor(b/a)*a),e=r(Math.ceil(d/a)*a),q=[];if(b===d&&c(b))return[b];for(b=f;b<=e;){q.push(b);b=r(b+a);if(b===v)break;v=b}return q},getMinorTickPositions:function(){var a=this.options,c=this.tickPositions,b=this.minorTickInterval,d=[],f,e=this.pointRangePadding||0;f=this.min-e;var e=this.max+e,q=e-f;if(q&&q/b=this.minRange,q,u,n,g,y,h;this.isXAxis&&void 0===this.minRange&&!this.isLog&&(t(a.min)||t(a.max)?this.minRange=null:(e(this.series,function(a){g=a.xData;for(u=y=a.xIncrement? +1:g.length-1;0=E?(p=E,m=0):b.dataMax<=E&&(J=E,I=0)),b.min=x(w,p,b.dataMin),b.max=x(B,J,b.dataMax));q&&(!a&&0>=Math.min(b.min, +x(b.dataMin,b.min))&&g(10,1),b.min=r(u(b.min),15),b.max=r(u(b.max),15));b.range&&t(b.max)&&(b.userMin=b.min=w=Math.max(b.min,b.minFromRange()),b.userMax=B=b.max,b.range=null);C(b,"foundExtremes");b.beforePadding&&b.beforePadding();b.adjustForMinRange();!(l||b.axisPointRange||b.usePercentage||h)&&t(b.min)&&t(b.max)&&(u=b.max-b.min)&&(!t(w)&&m&&(b.min-=u*m),!t(B)&&I&&(b.max+=u*I));c(f.floor)?b.min=Math.max(b.min,f.floor):c(f.softMin)&&(b.min=Math.min(b.min,f.softMin));c(f.ceiling)?b.max=Math.min(b.max, +f.ceiling):c(f.softMax)&&(b.max=Math.max(b.max,f.softMax));M&&t(b.dataMin)&&(E=E||0,!t(w)&&b.min=E?b.min=E:!t(B)&&b.max>E&&b.dataMax<=E&&(b.max=E));b.tickInterval=b.min===b.max||void 0===b.min||void 0===b.max?1:h&&!k&&F===b.linkedParent.options.tickPixelInterval?k=b.linkedParent.tickInterval:x(k,this.tickAmount?(b.max-b.min)/Math.max(this.tickAmount-1,1):void 0,l?1:(b.max-b.min)*F/Math.max(b.len,F));y&&!a&&e(b.series,function(a){a.processData(b.min!==b.oldMin||b.max!==b.oldMax)});b.setAxisTranslation(!0); +b.beforeSetTickPositions&&b.beforeSetTickPositions();b.postProcessTickInterval&&(b.tickInterval=b.postProcessTickInterval(b.tickInterval));b.pointRange&&!k&&(b.tickInterval=Math.max(b.pointRange,b.tickInterval));a=x(f.minTickInterval,b.isDatetimeAxis&&b.closestPointRange);!k&&b.tickIntervalb.tickInterval&&1E3b.max)),!!this.tickAmount));this.tickAmount||(b.tickInterval= +b.unsquish());this.setTickPositions()},setTickPositions:function(){var a=this.options,b,c=a.tickPositions,d=a.tickPositioner,f=a.startOnTick,e=a.endOnTick,q;this.tickmarkOffset=this.categories&&"between"===a.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval="auto"===a.minorTickInterval&&this.tickInterval?this.tickInterval/5:a.minorTickInterval;this.tickPositions=b=c&&c.slice();!b&&(b=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,a.units), +this.min,this.max,a.startOfWeek,this.ordinalPositions,this.closestPointRange,!0):this.isLog?this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max),b.length>this.len&&(b=[b[0],b.pop()]),this.tickPositions=b,d&&(d=d.apply(this,[this.min,this.max])))&&(this.tickPositions=b=d);this.isLinked||(this.trimTicks(b,f,e),this.min===this.max&&t(this.min)&&!this.tickAmount&&(q=!0,this.min-=.5,this.max+=.5),this.single=q,c||d||this.adjustTickAmount())}, +trimTicks:function(a,b,c){var d=a[0],f=a[a.length-1],v=this.minPointOffset||0;if(b)this.min=d;else for(;this.min-v>a[0];)a.shift();if(c)this.max=f;else for(;this.max+vb&&(this.finalTickAmt=b,b=5);this.tickAmount=b},adjustTickAmount:function(){var a=this.tickInterval,b=this.tickPositions,c=this.tickAmount,d=this.finalTickAmt,f=b&&b.length;if(fc&&(this.tickInterval*= +2,this.setTickPositions());if(t(d)){for(a=c=b.length;a--;)(3===d&&1===a%2||2>=d&&0=f&&(b=f)),this.displayBtn=void 0!==a||void 0!==b,this.setExtremes(a,b,!1,void 0,{trigger:"zoom"});return!0},setAxisSize:function(){var a=this.chart,b=this.options,c=b.offsetLeft||0,d=this.horiz,f=x(b.width,a.plotWidth-c+(b.offsetRight||0)),e=x(b.height,a.plotHeight),q=x(b.top,a.plotTop),b=x(b.left,a.plotLeft+c),c=/%$/;c.test(e)&&(e=Math.round(parseFloat(e)/ +100*a.plotHeight));c.test(q)&&(q=Math.round(parseFloat(q)/100*a.plotHeight+a.plotTop));this.left=b;this.top=q;this.width=f;this.height=e;this.bottom=a.chartHeight-e-q;this.right=a.chartWidth-f-b;this.len=Math.max(d?f:e,0);this.pos=d?b:q},getExtremes:function(){var a=this.isLog,b=this.lin2log;return{min:a?r(b(this.min)):this.min,max:a?r(b(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var b=this.isLog,c=this.lin2log, +d=b?c(this.min):this.min,b=b?c(this.max):this.max;null===a?a=d:d>a?a=d:ba?"right":195a?"left":"center"},tickSize:function(a){var b=this.options,c=b[a+"Length"],d=x(b[a+"Width"],"tick"===a&&this.isXAxis?1:0);if(d&&c)return"inside"===b[a+"Position"]&&(c=-c),[c,d]},labelMetrics:function(){return this.chart.renderer.fontMetrics(this.options.labels.style&&this.options.labels.style.fontSize, +this.ticks[0]&&this.ticks[0].label)},unsquish:function(){var a=this.options.labels,b=this.horiz,c=this.tickInterval,d=c,f=this.len/(((this.categories?1:0)+this.max-this.min)/c),q,u=a.rotation,n=this.labelMetrics(),g,y=Number.MAX_VALUE,h,I=function(a){a/=f||1;a=1=a)g=I(Math.abs(n.h/Math.sin(k*a))),b=g+Math.abs(a/360),b(c.step||0)&&!c.rotation&&(this.staggerLines||1)*a.plotWidth/d||!b&&(f&&f-a.spacing[3]||.33*a.chartWidth)},renderUnsquish:function(){var a=this.chart,b=a.renderer,c=this.tickPositions,d=this.ticks,f=this.options.labels,q=this.horiz,u=this.getSlotWidth(),g=Math.max(1, +Math.round(u-2*(f.padding||5))),y={},h=this.labelMetrics(),I=f.style&&f.style.textOverflow,A,x=0,m,k;F(f.rotation)||(y.rotation=f.rotation||0);e(c,function(a){(a=d[a])&&a.labelLength>x&&(x=a.labelLength)});this.maxLabelLength=x;if(this.autoRotation)x>g&&x>h.h?y.rotation=this.labelRotation:this.labelRotation=0;else if(u&&(A={width:g+"px"},!I))for(A.textOverflow="clip",m=c.length;!q&&m--;)if(k=c[m],g=d[k].label)g.styles&&"ellipsis"===g.styles.textOverflow?g.css({textOverflow:"clip"}):d[k].labelLength> +u&&g.css({width:u+"px"}),g.getBBox().height>this.len/c.length-(h.h-h.f)&&(g.specCss={textOverflow:"ellipsis"});y.rotation&&(A={width:(x>.5*a.chartHeight?.33*a.chartHeight:a.chartHeight)+"px"},I||(A.textOverflow="ellipsis"));if(this.labelAlign=f.align||this.autoLabelAlign(this.labelRotation))y.align=this.labelAlign;e(c,function(a){var b=(a=d[a])&&a.label;b&&(b.attr(y),A&&b.css(n(A,b.specCss)),delete b.specCss,a.rotation=y.rotation)});this.tickRotCorr=b.rotCorr(h.b,this.labelRotation||0,0!==this.side)}, +hasData:function(){return this.hasVisibleSeries||t(this.min)&&t(this.max)&&!!this.tickPositions},getOffset:function(){var a=this,b=a.chart,c=b.renderer,d=a.options,f=a.tickPositions,q=a.ticks,u=a.horiz,n=a.side,g=b.inverted?[1,0,3,2][n]:n,y,h,I=0,A,m=0,k=d.title,F=d.labels,E=0,l=a.opposite,C=b.axisOffset,b=b.clipOffset,p=[-1,1,1,-1][n],r,J=d.className,w=a.axisParent,B=this.tickSize("tick");y=a.hasData();a.showAxis=h=y||x(d.showEmpty,!0);a.staggerLines=a.horiz&&F.staggerLines;a.axisGroup||(a.gridGroup= +c.g("grid").attr({zIndex:d.gridZIndex||1}).addClass("highcharts-"+this.coll.toLowerCase()+"-grid "+(J||"")).add(w),a.axisGroup=c.g("axis").attr({zIndex:d.zIndex||2}).addClass("highcharts-"+this.coll.toLowerCase()+" "+(J||"")).add(w),a.labelGroup=c.g("axis-labels").attr({zIndex:F.zIndex||7}).addClass("highcharts-"+a.coll.toLowerCase()+"-labels "+(J||"")).add(w));if(y||a.isLinked)e(f,function(b){q[b]?q[b].addLabel():q[b]=new M(a,b)}),a.renderUnsquish(),!1===F.reserveSpace||0!==n&&2!==n&&{1:"left",3:"right"}[n]!== +a.labelAlign&&"center"!==a.labelAlign||e(f,function(a){E=Math.max(q[a].getLabelSize(),E)}),a.staggerLines&&(E*=a.staggerLines,a.labelOffset=E*(a.opposite?-1:1));else for(r in q)q[r].destroy(),delete q[r];k&&k.text&&!1!==k.enabled&&(a.axisTitle||((r=k.textAlign)||(r=(u?{low:"left",middle:"center",high:"right"}:{low:l?"right":"left",middle:"center",high:l?"left":"right"})[k.align]),a.axisTitle=c.text(k.text,0,0,k.useHTML).attr({zIndex:7,rotation:k.rotation||0,align:r}).addClass("highcharts-axis-title").css(k.style).add(a.axisGroup), +a.axisTitle.isNew=!0),h&&(I=a.axisTitle.getBBox()[u?"height":"width"],A=k.offset,m=t(A)?0:x(k.margin,u?5:10)),a.axisTitle[h?"show":"hide"](!0));a.renderLine();a.offset=p*x(d.offset,C[n]);a.tickRotCorr=a.tickRotCorr||{x:0,y:0};c=0===n?-a.labelMetrics().h:2===n?a.tickRotCorr.y:0;m=Math.abs(E)+m;E&&(m=m-c+p*(u?x(F.y,a.tickRotCorr.y+8*p):F.x));a.axisTitleMargin=x(A,m);C[n]=Math.max(C[n],a.axisTitleMargin+I+p*a.offset,m,y&&f.length&&B?B[0]:0);d=d.offset?0:2*Math.floor(a.axisLine.strokeWidth()/2);b[g]= +Math.max(b[g],d)},getLinePath:function(a){var b=this.chart,c=this.opposite,d=this.offset,f=this.horiz,e=this.left+(c?this.width:0)+d,d=b.chartHeight-this.bottom-(c?this.height:0)+d;c&&(a*=-1);return b.renderer.crispLine(["M",f?this.left:e,f?d:this.top,"L",f?b.chartWidth-this.right:e,f?d:b.chartHeight-this.bottom],a)},renderLine:function(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.axisLine.attr({stroke:this.options.lineColor, +"stroke-width":this.options.lineWidth,zIndex:7}))},getTitlePosition:function(){var a=this.horiz,b=this.left,c=this.top,d=this.len,f=this.options.title,e=a?b:c,q=this.opposite,u=this.offset,n=f.x||0,g=f.y||0,y=this.chart.renderer.fontMetrics(f.style&&f.style.fontSize,this.axisTitle).f,d={low:e+(a?0:d),middle:e+d/2,high:e+(a?d:0)}[f.align],b=(a?c+this.height:b)+(a?1:-1)*(q?-1:1)*this.axisTitleMargin+(2===this.side?y:0);return{x:a?d+n:b+(q?this.width:0)+u+n,y:a?b+g-(q?this.height:0)+u:d+g}},render:function(){var a= +this,b=a.chart,d=b.renderer,f=a.options,q=a.isLog,u=a.lin2log,n=a.isLinked,g=a.tickPositions,y=a.axisTitle,h=a.ticks,A=a.minorTicks,x=a.alternateBands,m=f.stackLabels,k=f.alternateGridColor,F=a.tickmarkOffset,E=a.axisLine,l=b.hasRendered&&c(a.oldMin),C=a.showAxis,p=B(d.globalAnimation),r,t;a.labelEdge.length=0;a.overlap=!1;e([h,A,x],function(a){for(var b in a)a[b].isActive=!1});if(a.hasData()||n)a.minorTickInterval&&!a.categories&&e(a.getMinorTickPositions(),function(b){A[b]||(A[b]=new M(a,b,"minor")); +l&&A[b].isNew&&A[b].render(null,!0);A[b].render(null,!1,1)}),g.length&&(e(g,function(b,c){if(!n||b>=a.min&&b<=a.max)h[b]||(h[b]=new M(a,b)),l&&h[b].isNew&&h[b].render(c,!0,.1),h[b].render(c)}),F&&(0===a.min||a.single)&&(h[-1]||(h[-1]=new M(a,-1,null,!0)),h[-1].render(-1))),k&&e(g,function(c,d){t=void 0!==g[d+1]?g[d+1]+F:a.max-F;0===d%2&&c=e.second?0:A*Math.floor(c.getMilliseconds()/A));if(n>=e.second)c[B.hcSetSeconds](n>=e.minute?0:A*Math.floor(c.getSeconds()/ +A));if(n>=e.minute)c[B.hcSetMinutes](n>=e.hour?0:A*Math.floor(c[B.hcGetMinutes]()/A));if(n>=e.hour)c[B.hcSetHours](n>=e.day?0:A*Math.floor(c[B.hcGetHours]()/A));if(n>=e.day)c[B.hcSetDate](n>=e.month?1:A*Math.floor(c[B.hcGetDate]()/A));n>=e.month&&(c[B.hcSetMonth](n>=e.year?0:A*Math.floor(c[B.hcGetMonth]()/A)),g=c[B.hcGetFullYear]());if(n>=e.year)c[B.hcSetFullYear](g-g%A);if(n===e.week)c[B.hcSetDate](c[B.hcGetDate]()-c[B.hcGetDay]()+m(f,1));g=c[B.hcGetFullYear]();f=c[B.hcGetMonth]();var C=c[B.hcGetDate](), +y=c[B.hcGetHours]();if(B.hcTimezoneOffset||B.hcGetTimezoneOffset)x=(!q||!!B.hcGetTimezoneOffset)&&(k-h>4*e.month||t(h)!==t(k)),c=c.getTime(),c=new B(c+t(c));q=c.getTime();for(h=1;qr&&(!t||b<=w)&&void 0!==b&&h.push(b),b>w&&(q=!0),b=d;else r=e(r),w= +e(w),a=k[t?"minorTickInterval":"tickInterval"],a=p("auto"===a?null:a,this._minorAutoInterval,k.tickPixelInterval/(t?5:1)*(w-r)/((t?m/this.tickPositions.length:m)||1)),a=H(a,null,B(a)),h=G(this.getLinearTickPositions(a,r,w),g),t||(this._minorAutoInterval=a/5);t||(this.tickInterval=a);return h};D.prototype.log2lin=function(a){return Math.log(a)/Math.LN10};D.prototype.lin2log=function(a){return Math.pow(10,a)}})(N);(function(a){var D=a.dateFormat,B=a.each,G=a.extend,H=a.format,p=a.isNumber,l=a.map,r= +a.merge,w=a.pick,t=a.splat,k=a.stop,m=a.syncTimeout,e=a.timeUnits;a.Tooltip=function(){this.init.apply(this,arguments)};a.Tooltip.prototype={init:function(a,e){this.chart=a;this.options=e;this.crosshairs=[];this.now={x:0,y:0};this.isHidden=!0;this.split=e.split&&!a.inverted;this.shared=e.shared||this.split},cleanSplit:function(a){B(this.chart.series,function(e){var g=e&&e.tt;g&&(!g.isActive||a?e.tt=g.destroy():g.isActive=!1)})},getLabel:function(){var a=this.chart.renderer,e=this.options;this.label|| +(this.split?this.label=a.g("tooltip"):(this.label=a.label("",0,0,e.shape||"callout",null,null,e.useHTML,null,"tooltip").attr({padding:e.padding,r:e.borderRadius}),this.label.attr({fill:e.backgroundColor,"stroke-width":e.borderWidth}).css(e.style).shadow(e.shadow)),this.label.attr({zIndex:8}).add());return this.label},update:function(a){this.destroy();this.init(this.chart,r(!0,this.options,a))},destroy:function(){this.label&&(this.label=this.label.destroy());this.split&&this.tt&&(this.cleanSplit(this.chart, +!0),this.tt=this.tt.destroy());clearTimeout(this.hideTimer);clearTimeout(this.tooltipTimeout)},move:function(a,e,m,f){var d=this,b=d.now,q=!1!==d.options.animation&&!d.isHidden&&(1h-q?h:h-q);else if(v)b[a]=Math.max(g,e+q+f>c?e:e+q);else return!1},x=function(a,c,f,e){var q;ec-d?q=!1:b[a]=ec-f/2?c-f-2:e-f/2;return q},k=function(a){var b=c;c=h;h=b;g=a},y=function(){!1!==A.apply(0,c)?!1!==x.apply(0,h)||g||(k(!0),y()):g?b.x=b.y=0:(k(!0),y())};(f.inverted||1y&&(q=!1);a=(e.series&&e.series.yAxis&&e.series.yAxis.pos)+(e.plotY||0);a-=d.plotTop;f.push({target:e.isHeader?d.plotHeight+c:a,rank:e.isHeader?1:0,size:n.tt.getBBox().height+1,point:e,x:y,tt:A})});this.cleanSplit(); +a.distribute(f,d.plotHeight+c);B(f,function(a){var b=a.point;a.tt.attr({visibility:void 0===a.pos?"hidden":"inherit",x:q||b.isHeader?a.x:b.plotX+d.plotLeft+w(m.distance,16),y:a.pos+d.plotTop,anchorX:b.plotX+d.plotLeft,anchorY:b.isHeader?a.pos+d.plotTop-15:b.plotY+d.plotTop})})},updatePosition:function(a){var e=this.chart,g=this.getLabel(),g=(this.options.positioner||this.getPosition).call(this,g.width,g.height,a);this.move(Math.round(g.x),Math.round(g.y||0),a.plotX+e.plotLeft,a.plotY+e.plotTop)}, +getXDateFormat:function(a,h,m){var f;h=h.dateTimeLabelFormats;var d=m&&m.closestPointRange,b,q={millisecond:15,second:12,minute:9,hour:6,day:3},g,c="millisecond";if(d){g=D("%m-%d %H:%M:%S.%L",a.x);for(b in e){if(d===e.week&&+D("%w",a.x)===m.options.startOfWeek&&"00:00:00.000"===g.substr(6)){b="week";break}if(e[b]>d){b=c;break}if(q[b]&&g.substr(q[b])!=="01-01 00:00:00.000".substr(q[b]))break;"week"!==b&&(c=b)}b&&(f=h[b])}else f=h.day;return f||h.year},tooltipFooterHeaderFormatter:function(a,e){var g= +e?"footer":"header";e=a.series;var f=e.tooltipOptions,d=f.xDateFormat,b=e.xAxis,q=b&&"datetime"===b.options.type&&p(a.key),g=f[g+"Format"];q&&!d&&(d=this.getXDateFormat(a,f,b));q&&d&&(g=g.replace("{point.key}","{point.key:"+d+"}"));return H(g,{point:a,series:e})},bodyFormatter:function(a){return l(a,function(a){var e=a.series.tooltipOptions;return(e.pointFormatter||a.point.tooltipFormatter).call(a.point,e.pointFormat)})}}})(N);(function(a){var D=a.addEvent,B=a.attr,G=a.charts,H=a.color,p=a.css,l= +a.defined,r=a.doc,w=a.each,t=a.extend,k=a.fireEvent,m=a.offset,e=a.pick,g=a.removeEvent,h=a.splat,C=a.Tooltip,f=a.win;a.Pointer=function(a,b){this.init(a,b)};a.Pointer.prototype={init:function(a,b){this.options=b;this.chart=a;this.runChartClick=b.chart.events&&!!b.chart.events.click;this.pinchDown=[];this.lastValidTouch={};C&&b.tooltip.enabled&&(a.tooltip=new C(a,b.tooltip),this.followTouchMove=e(b.tooltip.followTouchMove,!0));this.setDOMEvents()},zoomOption:function(a){var b=this.chart,d=b.options.chart, +f=d.zoomType||"",b=b.inverted;/touch/.test(a.type)&&(f=e(d.pinchType,f));this.zoomX=a=/x/.test(f);this.zoomY=f=/y/.test(f);this.zoomHor=a&&!b||f&&b;this.zoomVert=f&&!b||a&&b;this.hasZoom=a||f},normalize:function(a,b){var d,e;a=a||f.event;a.target||(a.target=a.srcElement);e=a.touches?a.touches.length?a.touches.item(0):a.changedTouches[0]:a;b||(this.chartPosition=b=m(this.chart.container));void 0===e.pageX?(d=Math.max(a.x,a.clientX-b.left),b=a.y):(d=e.pageX-b.left,b=e.pageY-b.top);return t(a,{chartX:Math.round(d), +chartY:Math.round(b)})},getCoordinates:function(a){var b={xAxis:[],yAxis:[]};w(this.chart.axes,function(d){b[d.isXAxis?"xAxis":"yAxis"].push({axis:d,value:d.toValue(a[d.horiz?"chartX":"chartY"])})});return b},runPointActions:function(d){var b=this.chart,f=b.series,g=b.tooltip,c=g?g.shared:!1,h=!0,n=b.hoverPoint,m=b.hoverSeries,x,k,y,u=[],I;if(!c&&!m)for(x=0;xb.series.index?-1:1}));if(c)for(x=u.length;x--;)(u[x].x!==u[0].x||u[x].series.noSharedTooltip)&&u.splice(x,1);if(u[0]&&(u[0]!==this.prevKDPoint||g&&g.isHidden)){if(c&& +!u[0].series.noSharedTooltip){for(x=0;xh+k&&(f=h+k),cm+y&&(c=m+y),this.hasDragged=Math.sqrt(Math.pow(l-f,2)+Math.pow(v-c,2)),10x.max&&(l=x.max-c,v=!0);v?(u-=.8*(u-g[f][0]),J||(M-=.8*(M-g[f][1])),p()):g[f]=[u,M];A||(e[f]=F-E,e[q]=c);e=A?1/n:n;m[q]=c;m[f]=l;k[A?a?"scaleY":"scaleX":"scale"+d]=n;k["translate"+d]=e* +E+(u-e*y)},pinch:function(a){var r=this,t=r.chart,k=r.pinchDown,m=a.touches,e=m.length,g=r.lastValidTouch,h=r.hasZoom,C=r.selectionMarker,f={},d=1===e&&(r.inClass(a.target,"highcharts-tracker")&&t.runTrackerClick||r.runChartClick),b={};1b-6&&n(u||d.chartWidth- +2*x-v-e.x)&&(this.itemX=v,this.itemY+=p+this.lastLineHeight+I,this.lastLineHeight=0);this.maxItemWidth=Math.max(this.maxItemWidth,c);this.lastItemY=p+this.itemY+I;this.lastLineHeight=Math.max(g,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];f?this.itemX+=c:(this.itemY+=p+g+I,this.lastLineHeight=g);this.offsetWidth=u||Math.max((f?this.itemX-v-l:c)+x,this.offsetWidth)},getAllItems:function(){var a=[];l(this.chart.series,function(d){var b=d&&d.options;d&&m(b.showInLegend,p(b.linkedTo)? +!1:void 0,!0)&&(a=a.concat(d.legendItems||("point"===b.legendType?d.data:d)))});return a},adjustMargins:function(a,d){var b=this.chart,e=this.options,f=e.align.charAt(0)+e.verticalAlign.charAt(0)+e.layout.charAt(0);e.floating||l([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(c,g){c.test(f)&&!p(a[g])&&(b[t[g]]=Math.max(b[t[g]],b.legend[(g+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][g]*e[g%2?"x":"y"]+m(e.margin,12)+d[g]))})},render:function(){var a=this,d=a.chart,b=d.renderer, +e=a.group,h,c,m,n,k=a.box,x=a.options,p=a.padding;a.itemX=a.initialItemX;a.itemY=a.initialItemY;a.offsetWidth=0;a.lastItemY=0;e||(a.group=e=b.g("legend").attr({zIndex:7}).add(),a.contentGroup=b.g().attr({zIndex:1}).add(e),a.scrollGroup=b.g().add(a.contentGroup));a.renderTitle();h=a.getAllItems();g(h,function(a,b){return(a.options&&a.options.legendIndex||0)-(b.options&&b.options.legendIndex||0)});x.reversed&&h.reverse();a.allItems=h;a.display=c=!!h.length;a.lastLineHeight=0;l(h,function(b){a.renderItem(b)}); +m=(x.width||a.offsetWidth)+p;n=a.lastItemY+a.lastLineHeight+a.titleHeight;n=a.handleOverflow(n);n+=p;k||(a.box=k=b.rect().addClass("highcharts-legend-box").attr({r:x.borderRadius}).add(e),k.isNew=!0);k.attr({stroke:x.borderColor,"stroke-width":x.borderWidth||0,fill:x.backgroundColor||"none"}).shadow(x.shadow);0b&&!1!==h.enabled?(this.clipHeight=g=Math.max(b-20-this.titleHeight-I,0),this.currentPage=m(this.currentPage,1),this.fullHeight=a,l(v,function(a,b){var c=a._legendItemPos[1];a=Math.round(a.legendItem.getBBox().height);var d=u.length;if(!d||c-u[d-1]>g&&(r||c)!==u[d-1])u.push(r||c),d++;b===v.length-1&&c+a-u[d-1]>g&&u.push(c);c!==r&&(r=c)}),n||(n=d.clipRect= +e.clipRect(0,I,9999,0),d.contentGroup.clip(n)),t(g),y||(this.nav=y=e.g().attr({zIndex:1}).add(this.group),this.up=e.symbol("triangle",0,0,p,p).on("click",function(){d.scroll(-1,k)}).add(y),this.pager=e.text("",15,10).addClass("highcharts-legend-navigation").css(h.style).add(y),this.down=e.symbol("triangle-down",0,0,p,p).on("click",function(){d.scroll(1,k)}).add(y)),d.scroll(0),a=b):y&&(t(),y.hide(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0);return a},scroll:function(a,d){var b=this.pages, +f=b.length;a=this.currentPage+a;var g=this.clipHeight,c=this.options.navigation,h=this.pager,n=this.padding;a>f&&(a=f);0f&&(g=typeof a[0],"string"===g?e.name=a[0]:"number"===g&&(e.x=a[0]),d++);b=h.value;)h=e[++g];h&&h.color&&!this.options.color&&(this.color=h.color);return h},destroy:function(){var a=this.series.chart,e=a.hoverPoints,g;a.pointCount--;e&&(this.setState(),H(e,this),e.length||(a.hoverPoints=null));if(this===a.hoverPoint)this.onMouseOut();if(this.graphic||this.dataLabel)k(this), +this.destroyElements();this.legendItem&&a.legend.destroyItem(this);for(g in this)this[g]=null},destroyElements:function(){for(var a=["graphic","dataLabel","dataLabelUpper","connector","shadowGroup"],e,g=6;g--;)e=a[g],this[e]&&(this[e]=this[e].destroy())},getLabelConfig:function(){return{x:this.category,y:this.y,color:this.color,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},tooltipFormatter:function(a){var e=this.series,g= +e.tooltipOptions,h=t(g.valueDecimals,""),k=g.valuePrefix||"",f=g.valueSuffix||"";B(e.pointArrayMap||["y"],function(d){d="{point."+d;if(k||f)a=a.replace(d+"}",k+d+"}"+f);a=a.replace(d+"}",d+":,."+h+"f}")});return l(a,{point:this,series:this.series})},firePointEvent:function(a,e,g){var h=this,k=this.series.options;(k.point.events[a]||h.options&&h.options.events&&h.options.events[a])&&this.importEvents();"click"===a&&k.allowPointSelect&&(g=function(a){h.select&&h.select(null,a.ctrlKey||a.metaKey||a.shiftKey)}); +p(this,a,e,g)},visible:!0}})(N);(function(a){var D=a.addEvent,B=a.animObject,G=a.arrayMax,H=a.arrayMin,p=a.correctFloat,l=a.Date,r=a.defaultOptions,w=a.defaultPlotOptions,t=a.defined,k=a.each,m=a.erase,e=a.error,g=a.extend,h=a.fireEvent,C=a.grep,f=a.isArray,d=a.isNumber,b=a.isString,q=a.merge,E=a.pick,c=a.removeEvent,F=a.splat,n=a.stableSort,A=a.SVGElement,x=a.syncTimeout,J=a.win;a.Series=a.seriesType("line",null,{lineWidth:2,allowPointSelect:!1,showCheckbox:!1,animation:{duration:1E3},events:{}, +marker:{lineWidth:0,lineColor:"#ffffff",radius:4,states:{hover:{animation:{duration:50},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{align:"center",formatter:function(){return null===this.y?"":a.numberFormat(this.y,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0,padding:5},cropThreshold:300,pointRange:0,softThreshold:!0,states:{hover:{lineWidthPlus:1, +marker:{},halo:{size:10,opacity:.25}},select:{marker:{}}},stickyTracking:!0,turboThreshold:1E3},{isCartesian:!0,pointClass:a.Point,sorted:!0,requireSorting:!0,directTouch:!1,axisTypes:["xAxis","yAxis"],colorCounter:0,parallelArrays:["x","y"],coll:"series",init:function(a,b){var c=this,d,e,f=a.series,u,y=function(a,b){return E(a.options.index,a._i)-E(b.options.index,b._i)};c.chart=a;c.options=b=c.setOptions(b);c.linkedSeries=[];c.bindAxes();g(c,{name:b.name,state:"",visible:!1!==b.visible,selected:!0=== +b.selected});e=b.events;for(d in e)D(c,d,e[d]);if(e&&e.click||b.point&&b.point.events&&b.point.events.click||b.allowPointSelect)a.runTrackerClick=!0;c.getColor();c.getSymbol();k(c.parallelArrays,function(a){c[a+"Data"]=[]});c.setData(b.data,!1);c.isCartesian&&(a.hasCartesianSeries=!0);f.length&&(u=f[f.length-1]);c._i=E(u&&u._i,-1)+1;f.push(c);n(f,y);this.yAxis&&n(this.yAxis.series,y);k(f,function(a,b){a.index=b;a.name=a.name||"Series "+(b+1)})},bindAxes:function(){var a=this,b=a.options,c=a.chart, +d;k(a.axisTypes||[],function(f){k(c[f],function(c){d=c.options;if(b[f]===d.index||void 0!==b[f]&&b[f]===d.id||void 0===b[f]&&0===d.index)c.series.push(a),a[f]=c,c.isDirty=!0});a[f]||a.optionalAxis===f||e(18,!0)})},updateParallelArrays:function(a,b){var c=a.series,e=arguments,f=d(b)?function(d){var e="y"===d&&c.toYData?c.toYData(a):a[d];c[d+"Data"][b]=e}:function(a){Array.prototype[b].apply(c[a+"Data"],Array.prototype.slice.call(e,2))};k(c.parallelArrays,f)},autoIncrement:function(){var a=this.options, +b=this.xIncrement,c,d=a.pointIntervalUnit,b=E(b,a.pointStart,0);this.pointInterval=c=E(this.pointInterval,a.pointInterval,1);d&&(a=new l(b),"day"===d?a=+a[l.hcSetDate](a[l.hcGetDate]()+c):"month"===d?a=+a[l.hcSetMonth](a[l.hcGetMonth]()+c):"year"===d&&(a=+a[l.hcSetFullYear](a[l.hcGetFullYear]()+c)),c=a-b);this.xIncrement=b+c;return b},setOptions:function(a){var b=this.chart,c=b.options.plotOptions,b=b.userOptions||{},d=b.plotOptions||{},e=c[this.type];this.userOptions=a;c=q(e,c.series,a);this.tooltipOptions= +q(r.tooltip,r.plotOptions[this.type].tooltip,b.tooltip,d.series&&d.series.tooltip,d[this.type]&&d[this.type].tooltip,a.tooltip);null===e.marker&&delete c.marker;this.zoneAxis=c.zoneAxis;a=this.zones=(c.zones||[]).slice();!c.negativeColor&&!c.negativeFillColor||c.zones||a.push({value:c[this.zoneAxis+"Threshold"]||c.threshold||0,className:"highcharts-negative",color:c.negativeColor,fillColor:c.negativeFillColor});a.length&&t(a[a.length-1].value)&&a.push({color:this.color,fillColor:this.fillColor}); +return c},getCyclic:function(a,b,c){var d,e=this.userOptions,f=a+"Index",g=a+"Counter",u=c?c.length:E(this.chart.options.chart[a+"Count"],this.chart[a+"Count"]);b||(d=E(e[f],e["_"+f]),t(d)||(e["_"+f]=d=this.chart[g]%u,this.chart[g]+=1),c&&(b=c[d]));void 0!==d&&(this[f]=d);this[a]=b},getColor:function(){this.options.colorByPoint?this.options.color=null:this.getCyclic("color",this.options.color||w[this.type].color,this.chart.options.colors)},getSymbol:function(){this.getCyclic("symbol",this.options.marker.symbol, +this.chart.options.symbols)},drawLegendSymbol:a.LegendSymbolMixin.drawLineMarker,setData:function(a,c,g,n){var u=this,q=u.points,h=q&&q.length||0,y,m=u.options,x=u.chart,A=null,I=u.xAxis,l=m.turboThreshold,p=this.xData,r=this.yData,F=(y=u.pointArrayMap)&&y.length;a=a||[];y=a.length;c=E(c,!0);if(!1!==n&&y&&h===y&&!u.cropped&&!u.hasGroupedData&&u.visible)k(a,function(a,b){q[b].update&&a!==m.data[b]&&q[b].update(a,!1,null,!1)});else{u.xIncrement=null;u.colorCounter=0;k(this.parallelArrays,function(a){u[a+ +"Data"].length=0});if(l&&y>l){for(g=0;null===A&&gh||this.forceCrop))if(b[d-1]l)b=[],c=[];else if(b[0]l)f=this.cropData(this.xData,this.yData,A,l),b=f.xData,c=f.yData,f=f.start,g=!0;for(h=b.length||1;--h;)d=x?y(b[h])-y(b[h-1]):b[h]-b[h-1],0d&&this.requireSorting&&e(15);this.cropped=g;this.cropStart=f;this.processedXData=b;this.processedYData=c;this.closestPointRange=n},cropData:function(a,b,c,d){var e=a.length,f=0,g=e,n=E(this.cropShoulder,1),u;for(u=0;u=c){f=Math.max(0,u- +n);break}for(c=u;cd){g=c+n;break}return{xData:a.slice(f,g),yData:b.slice(f,g),start:f,end:g}},generatePoints:function(){var a=this.options.data,b=this.data,c,d=this.processedXData,e=this.processedYData,f=this.pointClass,g=d.length,n=this.cropStart||0,q,h=this.hasGroupedData,k,m=[],x;b||h||(b=[],b.length=a.length,b=this.data=b);for(x=0;x=q&&(c[x-1]||k)<=h,y&&k)if(y=m.length)for(;y--;)null!==m[y]&&(g[n++]=m[y]);else g[n++]=m;this.dataMin=H(g);this.dataMax=G(g)},translate:function(){this.processedXData||this.processData();this.generatePoints();var a=this.options,b=a.stacking,c=this.xAxis,e=c.categories,f=this.yAxis,g=this.points,n=g.length,q=!!this.modifyValue,h=a.pointPlacement,k="between"===h||d(h),m=a.threshold,x=a.startFromThreshold?m:0,A,l,r,F,J=Number.MAX_VALUE;"between"===h&&(h=.5);d(h)&&(h*=E(a.pointRange||c.pointRange)); +for(a=0;a=B&&(C.isNull=!0);C.plotX=A=p(Math.min(Math.max(-1E5,c.translate(w,0,0,0,1,h,"flags"===this.type)),1E5));b&&this.visible&&!C.isNull&&D&&D[w]&&(F=this.getStackIndicator(F,w,this.index),G=D[w],B=G.points[F.key],l=B[0],B=B[1],l===x&&F.key===D[w].base&&(l=E(m,f.min)),f.isLog&&0>=l&&(l=null),C.total=C.stackTotal=G.total,C.percentage=G.total&&C.y/G.total*100,C.stackY= +B,G.setOffset(this.pointXOffset||0,this.barW||0));C.yBottom=t(l)?f.translate(l,0,1,0,1):null;q&&(B=this.modifyValue(B,C));C.plotY=l="number"===typeof B&&Infinity!==B?Math.min(Math.max(-1E5,f.translate(B,0,1,0,1)),1E5):void 0;C.isInside=void 0!==l&&0<=l&&l<=f.len&&0<=A&&A<=c.len;C.clientX=k?p(c.translate(w,0,0,0,1,h)):A;C.negative=C.y<(m||0);C.category=e&&void 0!==e[C.x]?e[C.x]:C.x;C.isNull||(void 0!==r&&(J=Math.min(J,Math.abs(A-r))),r=A)}this.closestPointRangePx=J},getValidPoints:function(a,b){var c= +this.chart;return C(a||this.points||[],function(a){return b&&!c.isInsidePlot(a.plotX,a.plotY,c.inverted)?!1:!a.isNull})},setClip:function(a){var b=this.chart,c=this.options,d=b.renderer,e=b.inverted,f=this.clipBox,g=f||b.clipBox,n=this.sharedClipKey||["_sharedClip",a&&a.duration,a&&a.easing,g.height,c.xAxis,c.yAxis].join(),q=b[n],h=b[n+"m"];q||(a&&(g.width=0,b[n+"m"]=h=d.clipRect(-99,e?-b.plotLeft:-b.plotTop,99,e?b.chartWidth:b.chartHeight)),b[n]=q=d.clipRect(g),q.count={length:0});a&&!q.count[this.index]&& +(q.count[this.index]=!0,q.count.length+=1);!1!==c.clip&&(this.group.clip(a||f?q:b.clipRect),this.markerGroup.clip(h),this.sharedClipKey=n);a||(q.count[this.index]&&(delete q.count[this.index],--q.count.length),0===q.count.length&&n&&b[n]&&(f||(b[n]=b[n].destroy()),b[n+"m"]&&(b[n+"m"]=b[n+"m"].destroy())))},animate:function(a){var b=this.chart,c=B(this.options.animation),d;a?this.setClip(c):(d=this.sharedClipKey,(a=b[d])&&a.animate({width:b.plotSizeX},c),b[d+"m"]&&b[d+"m"].animate({width:b.plotSizeX+ +99},c),this.animate=null)},afterAnimate:function(){this.setClip();h(this,"afterAnimate")},drawPoints:function(){var a=this.points,b=this.chart,c,e,f,g,n=this.options.marker,q,h,k,m,x=this.markerGroup,A=E(n.enabled,this.xAxis.isRadial?!0:null,this.closestPointRangePx>2*n.radius);if(!1!==n.enabled||this._hasPointMarkers)for(e=a.length;e--;)f=a[e],c=f.plotY,g=f.graphic,q=f.marker||{},h=!!f.marker,k=A&&void 0===q.enabled||q.enabled,m=f.isInside,k&&d(c)&&null!==f.y?(c=E(q.symbol,this.symbol),f.hasImage= +0===c.indexOf("url"),k=this.markerAttribs(f,f.selected&&"select"),g?g[m?"show":"hide"](!0).animate(k):m&&(0e&&b.shadow));g&&(g.startX=c.xMap, +g.isArea=c.isArea)})},applyZones:function(){var a=this,b=this.chart,c=b.renderer,d=this.zones,e,f,g=this.clips||[],n,q=this.graph,h=this.area,m=Math.max(b.chartWidth,b.chartHeight),x=this[(this.zoneAxis||"y")+"Axis"],A,l,p=b.inverted,r,F,C,t,J=!1;d.length&&(q||h)&&x&&void 0!==x.min&&(l=x.reversed,r=x.horiz,q&&q.hide(),h&&h.hide(),A=x.getExtremes(),k(d,function(d,u){e=l?r?b.plotWidth:0:r?0:x.toPixels(A.min);e=Math.min(Math.max(E(f,e),0),m);f=Math.min(Math.max(Math.round(x.toPixels(E(d.value,A.max), +!0)),0),m);J&&(e=f=x.toPixels(A.max));F=Math.abs(e-f);C=Math.min(e,f);t=Math.max(e,f);x.isXAxis?(n={x:p?t:C,y:0,width:F,height:m},r||(n.x=b.plotHeight-n.x)):(n={x:0,y:p?t:C,width:m,height:F},r&&(n.y=b.plotWidth-n.y));p&&c.isVML&&(n=x.isXAxis?{x:0,y:l?C:t,height:n.width,width:b.chartWidth}:{x:n.y-b.plotLeft-b.spacingBox.x,y:0,width:n.height,height:b.chartHeight});g[u]?g[u].animate(n):(g[u]=c.clipRect(n),q&&a["zone-graph-"+u].clip(g[u]),h&&a["zone-area-"+u].clip(g[u]));J=d.value>A.max}),this.clips= +g)},invertGroups:function(a){function b(){var b={width:c.yAxis.len,height:c.xAxis.len};k(["group","markerGroup"],function(d){c[d]&&c[d].attr(b).invert(a)})}var c=this,d;c.xAxis&&(d=D(c.chart,"resize",b),D(c,"destroy",d),b(a),c.invertGroups=b)},plotGroup:function(a,b,c,d,e){var f=this[a],g=!f;g&&(this[a]=f=this.chart.renderer.g(b).attr({zIndex:d||.1}).add(e),f.addClass("highcharts-series-"+this.index+" highcharts-"+this.type+"-series highcharts-color-"+this.colorIndex+" "+(this.options.className|| +"")));f.attr({visibility:c})[g?"attr":"animate"](this.getPlotBox());return f},getPlotBox:function(){var a=this.chart,b=this.xAxis,c=this.yAxis;a.inverted&&(b=c,c=this.xAxis);return{translateX:b?b.left:a.plotLeft,translateY:c?c.top:a.plotTop,scaleX:1,scaleY:1}},render:function(){var a=this,b=a.chart,c,d=a.options,e=!!a.animate&&b.renderer.isSVG&&B(d.animation).duration,f=a.visible?"inherit":"hidden",g=d.zIndex,n=a.hasRendered,q=b.seriesGroup,h=b.inverted;c=a.plotGroup("group","series",f,g,q);a.markerGroup= +a.plotGroup("markerGroup","markers",f,g,q);e&&a.animate(!0);c.inverted=a.isCartesian?h:!1;a.drawGraph&&(a.drawGraph(),a.applyZones());a.drawDataLabels&&a.drawDataLabels();a.visible&&a.drawPoints();a.drawTracker&&!1!==a.options.enableMouseTracking&&a.drawTracker();a.invertGroups(h);!1===d.clip||a.sharedClipKey||n||c.clip(b.clipRect);e&&a.animate();n||(a.animationTimeout=x(function(){a.afterAnimate()},e));a.isDirty=a.isDirtyData=!1;a.hasRendered=!0},redraw:function(){var a=this.chart,b=this.isDirty|| +this.isDirtyData,c=this.group,d=this.xAxis,e=this.yAxis;c&&(a.inverted&&c.attr({width:a.plotWidth,height:a.plotHeight}),c.animate({translateX:E(d&&d.left,a.plotLeft),translateY:E(e&&e.top,a.plotTop)}));this.translate();this.render();b&&delete this.kdTree},kdDimensions:1,kdAxisArray:["clientX","plotY"],searchPoint:function(a,b){var c=this.xAxis,d=this.yAxis,e=this.chart.inverted;return this.searchKDTree({clientX:e?c.len-a.chartY+c.pos:a.chartX-c.pos,plotY:e?d.len-a.chartX+d.pos:a.chartY-d.pos},b)}, +buildKDTree:function(){function a(c,d,e){var f,g;if(g=c&&c.length)return f=b.kdAxisArray[d%e],c.sort(function(a,b){return a[f]-b[f]}),g=Math.floor(g/2),{point:c[g],left:a(c.slice(0,g),d+1,e),right:a(c.slice(g+1),d+1,e)}}var b=this,c=b.kdDimensions;delete b.kdTree;x(function(){b.kdTree=a(b.getValidPoints(null,!b.directTouch),c,c)},b.options.kdNow?0:1)},searchKDTree:function(a,b){function c(a,b,n,q){var h=b.point,u=d.kdAxisArray[n%q],k,m,x=h;m=t(a[e])&&t(h[e])?Math.pow(a[e]-h[e],2):null;k=t(a[f])&& +t(h[f])?Math.pow(a[f]-h[f],2):null;k=(m||0)+(k||0);h.dist=t(k)?Math.sqrt(k):Number.MAX_VALUE;h.distX=t(m)?Math.sqrt(m):Number.MAX_VALUE;u=a[u]-h[u];k=0>u?"left":"right";m=0>u?"right":"left";b[k]&&(k=c(a,b[k],n+1,q),x=k[g]A;)l--;this.updateParallelArrays(h,"splice",l,0,0);this.updateParallelArrays(h,l);n&&h.name&&(n[A]=h.name);q.splice(l,0,a);m&&(this.data.splice(l,0,null),this.processData());"point"===c.legendType&&this.generatePoints();d&&(f[0]&&f[0].remove?f[0].remove(!1):(f.shift(),this.updateParallelArrays(h,"shift"),q.shift()));this.isDirtyData=this.isDirty=!0;b&&g.redraw(e)},removePoint:function(a, +b,d){var c=this,e=c.data,f=e[a],g=c.points,n=c.chart,h=function(){g&&g.length===e.length&&g.splice(a,1);e.splice(a,1);c.options.data.splice(a,1);c.updateParallelArrays(f||{series:c},"splice",a,1);f&&f.destroy();c.isDirty=!0;c.isDirtyData=!0;b&&n.redraw()};q(d,n);b=C(b,!0);f?f.firePointEvent("remove",null,h):h()},remove:function(a,b,d){function c(){e.destroy();f.isDirtyLegend=f.isDirtyBox=!0;f.linkSeries();C(a,!0)&&f.redraw(b)}var e=this,f=e.chart;!1!==d?k(e,"remove",null,c):c()},update:function(a, +d){var c=this,e=this.chart,f=this.userOptions,g=this.type,q=a.type||f.type||e.options.chart.type,u=b[g].prototype,m=["group","markerGroup","dataLabelsGroup"],k;if(q&&q!==g||void 0!==a.zIndex)m.length=0;r(m,function(a){m[a]=c[a];delete c[a]});a=h(f,{animation:!1,index:this.index,pointStart:this.xData[0]},{data:this.options.data},a);this.remove(!1,null,!1);for(k in u)this[k]=void 0;t(this,b[q||g].prototype);r(m,function(a){c[a]=m[a]});this.init(e,a);e.linkSeries();C(d,!0)&&e.redraw(!1)}});t(G.prototype, +{update:function(a,b){var c=this.chart;a=c.options[this.coll][this.options.index]=h(this.userOptions,a);this.destroy(!0);this.init(c,t(a,{events:void 0}));c.isDirtyBox=!0;C(b,!0)&&c.redraw()},remove:function(a){for(var b=this.chart,c=this.coll,d=this.series,e=d.length;e--;)d[e]&&d[e].remove(!1);w(b.axes,this);w(b[c],this);b.options[c].splice(this.options.index,1);r(b[c],function(a,b){a.options.index=b});this.destroy();b.isDirtyBox=!0;C(a,!0)&&b.redraw()},setTitle:function(a,b){this.update({title:a}, +b)},setCategories:function(a,b){this.update({categories:a},b)}})})(N);(function(a){var D=a.color,B=a.each,G=a.map,H=a.pick,p=a.Series,l=a.seriesType;l("area","line",{softThreshold:!1,threshold:0},{singleStacks:!1,getStackPoints:function(){var a=[],l=[],p=this.xAxis,k=this.yAxis,m=k.stacks[this.stackKey],e={},g=this.points,h=this.index,C=k.series,f=C.length,d,b=H(k.options.reversedStacks,!0)?1:-1,q,E;if(this.options.stacking){for(q=0;qa&&t>l?(t=Math.max(a,l),m=2*l-t):tH&& +m>l?(m=Math.max(H,l),t=2*l-m):m=Math.abs(g)&&.5a.closestPointRange*a.xAxis.transA,k=a.borderWidth=r(h.borderWidth,k?0:1),f=a.yAxis,d=a.translatedThreshold=f.getThreshold(h.threshold),b=r(h.minPointLength,5),q=a.getColumnMetrics(),m=q.width,c=a.barW=Math.max(m,1+2*k),l=a.pointXOffset= +q.offset;g.inverted&&(d-=.5);h.pointPadding&&(c=Math.ceil(c));w.prototype.translate.apply(a);G(a.points,function(e){var n=r(e.yBottom,d),q=999+Math.abs(n),q=Math.min(Math.max(-q,e.plotY),f.len+q),h=e.plotX+l,k=c,u=Math.min(q,n),p,t=Math.max(q,n)-u;Math.abs(t)b?n-b:d-(p?b:0));e.barX=h;e.pointWidth=m;e.tooltipPos=g.inverted?[f.len+f.pos-g.plotLeft-q,a.xAxis.len-h-k/2,t]:[h+k/2,q+f.pos-g.plotTop,t];e.shapeType="rect";e.shapeArgs= +a.crispCol.apply(a,e.isNull?[e.plotX,f.len/2,0,0]:[h,u,k,t])})},getSymbol:a.noop,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,drawGraph:function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},pointAttribs:function(a,g){var e=this.options,k=this.pointAttrToOptions||{},f=k.stroke||"borderColor",d=k["stroke-width"]||"borderWidth",b=a&&a.color||this.color,q=a[f]||e[f]||this.color||b,k=e.dashStyle,m;a&&this.zones.length&&(b=(b=a.getZone())&&b.color||a.options.color|| +this.color);g&&(g=e.states[g],m=g.brightness,b=g.color||void 0!==m&&B(b).brighten(g.brightness).get()||b,q=g[f]||q,k=g.dashStyle||k);a={fill:b,stroke:q,"stroke-width":a[d]||e[d]||this[d]||0};e.borderRadius&&(a.r=e.borderRadius);k&&(a.dashstyle=k);return a},drawPoints:function(){var a=this,g=this.chart,h=a.options,m=g.renderer,f=h.animationLimit||250,d;G(a.points,function(b){var e=b.graphic;p(b.plotY)&&null!==b.y?(d=b.shapeArgs,e?(k(e),e[g.pointCountt;++t)k=r[t],a=2>t||2===t&&/%$/.test(k),r[t]=B(k,[l,H,w,r[2]][t])+(a?p:0);r[3]>r[2]&&(r[3]=r[2]);return r}}})(N);(function(a){var D=a.addEvent,B=a.defined,G=a.each,H=a.extend,p=a.inArray,l=a.noop,r=a.pick,w=a.Point,t=a.Series,k=a.seriesType,m=a.setAnimation;k("pie","line",{center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){return null===this.y? +void 0:this.point.name},x:0},ignoreHiddenPoint:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,states:{hover:{brightness:.1,shadow:!1}}},{isCartesian:!1,requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],axisTypes:[],pointAttribs:a.seriesTypes.column.prototype.pointAttribs,animate:function(a){var e=this,h=e.points,k=e.startAngleRad;a||(G(h,function(a){var d= +a.graphic,b=a.shapeArgs;d&&(d.attr({r:a.startR||e.center[3]/2,start:k,end:k}),d.animate({r:b.r,start:b.start,end:b.end},e.options.animation))}),e.animate=null)},updateTotals:function(){var a,g=0,h=this.points,k=h.length,f,d=this.options.ignoreHiddenPoint;for(a=0;af.y&&(f.y=null),g+=d&&!f.visible?0:f.y;this.total=g;for(a=0;a1.5*Math.PI?q-=2*Math.PI:q<-Math.PI/2&&(q+=2*Math.PI);t.slicedTranslation={translateX:Math.round(Math.cos(q)*k),translateY:Math.round(Math.sin(q)*k)};d=Math.cos(q)*a[2]/2;b=Math.sin(q)*a[2]/2;t.tooltipPos=[a[0]+.7*d,a[1]+.7*b];t.half=q<-Math.PI/2||q>Math.PI/2?1:0;t.angle=q;f=Math.min(f,n/5);t.labelPos=[a[0]+d+Math.cos(q)*n,a[1]+b+Math.sin(q)*n,a[0]+d+Math.cos(q)*f,a[1]+b+Math.sin(q)* +f,a[0]+d,a[1]+b,0>n?"center":t.half?"right":"left",q]}},drawGraph:null,drawPoints:function(){var a=this,g=a.chart.renderer,h,k,f,d,b=a.options.shadow;b&&!a.shadowGroup&&(a.shadowGroup=g.g("shadow").add(a.group));G(a.points,function(e){if(null!==e.y){k=e.graphic;d=e.shapeArgs;h=e.sliced?e.slicedTranslation:{};var q=e.shadowGroup;b&&!q&&(q=e.shadowGroup=g.g("shadow").add(a.shadowGroup));q&&q.attr(h);f=a.pointAttribs(e,e.selected&&"select");k?k.setRadialReference(a.center).attr(f).animate(H(d,h)):(e.graphic= +k=g[e.shapeType](d).addClass(e.getClassName()).setRadialReference(a.center).attr(h).add(a.group),e.visible||k.attr({visibility:"hidden"}),k.attr(f).attr({"stroke-linejoin":"round"}).shadow(b,q))}})},searchPoint:l,sortByAngle:function(a,g){a.sort(function(a,e){return void 0!==a.angle&&(e.angle-a.angle)*g})},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,getCenter:a.CenteredSeriesMixin.getCenter,getSymbol:l},{init:function(){w.prototype.init.apply(this,arguments);var a=this,g;a.name=r(a.name,"Slice"); +g=function(e){a.slice("select"===e.type)};D(a,"select",g);D(a,"unselect",g);return a},setVisible:function(a,g){var e=this,k=e.series,f=k.chart,d=k.options.ignoreHiddenPoint;g=r(g,d);a!==e.visible&&(e.visible=e.options.visible=a=void 0===a?!e.visible:a,k.options.data[p(e,k.data)]=e.options,G(["graphic","dataLabel","connector","shadowGroup"],function(b){if(e[b])e[b][a?"show":"hide"](!0)}),e.legendItem&&f.legend.colorizeItem(e,a),a||"hover"!==e.state||e.setState(""),d&&(k.isDirty=!0),g&&f.redraw())}, +slice:function(a,g,h){var e=this.series;m(h,e.chart);r(g,!0);this.sliced=this.options.sliced=a=B(a)?a:!this.sliced;e.options.data[p(this,e.data)]=this.options;a=a?this.slicedTranslation:{translateX:0,translateY:0};this.graphic.animate(a);this.shadowGroup&&this.shadowGroup.animate(a)},haloPath:function(a){var e=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(e.x,e.y,e.r+a,e.r+a,{innerR:this.shapeArgs.r,start:e.start,end:e.end})}})})(N);(function(a){var D= +a.addEvent,B=a.arrayMax,G=a.defined,H=a.each,p=a.extend,l=a.format,r=a.map,w=a.merge,t=a.noop,k=a.pick,m=a.relativeLength,e=a.Series,g=a.seriesTypes,h=a.stableSort,C=a.stop;a.distribute=function(a,d){function b(a,b){return a.target-b.target}var e,f=!0,c=a,g=[],n;n=0;for(e=a.length;e--;)n+=a[e].size;if(n>d){h(a,function(a,b){return(b.rank||0)-(a.rank||0)});for(n=e=0;n<=d;)n+=a[e].size,e++;g=a.splice(e-1,a.length)}h(a,b);for(a=r(a,function(a){return{size:a.size,targets:[a.target]}});f;){for(e=a.length;e--;)f= +a[e],n=(Math.min.apply(0,f.targets)+Math.max.apply(0,f.targets))/2,f.pos=Math.min(Math.max(0,n-f.size/2),d-f.size);e=a.length;for(f=!1;e--;)0a[e].pos&&(a[e-1].size+=a[e].size,a[e-1].targets=a[e-1].targets.concat(a[e].targets),a[e-1].pos+a[e-1].size>d&&(a[e-1].pos=d-a[e-1].size),a.splice(e,1),f=!0)}e=0;H(a,function(a){var b=0;H(a.targets,function(){c[e].pos=a.pos+b;b+=c[e].size;e++})});c.push.apply(c,g);h(c,b)};e.prototype.drawDataLabels=function(){var a=this,d=a.options, +b=d.dataLabels,e=a.points,g,c,h=a.hasRendered||0,n,m,x=k(b.defer,!0),r=a.chart.renderer;if(b.enabled||a._hasPointLabels)a.dlProcessOptions&&a.dlProcessOptions(b),m=a.plotGroup("dataLabelsGroup","data-labels",x&&!h?"hidden":"visible",b.zIndex||6),x&&(m.attr({opacity:+h}),h||D(a,"afterAnimate",function(){a.visible&&m.show(!0);m[d.animation?"animate":"attr"]({opacity:1},{duration:200})})),c=b,H(e,function(e){var f,q=e.dataLabel,h,x,A=e.connector,y=!0,t,z={};g=e.dlOptions||e.options&&e.options.dataLabels; +f=k(g&&g.enabled,c.enabled)&&null!==e.y;if(q&&!f)e.dataLabel=q.destroy();else if(f){b=w(c,g);t=b.style;f=b.rotation;h=e.getLabelConfig();n=b.format?l(b.format,h):b.formatter.call(h,b);t.color=k(b.color,t.color,a.color,"#000000");if(q)G(n)?(q.attr({text:n}),y=!1):(e.dataLabel=q=q.destroy(),A&&(e.connector=A.destroy()));else if(G(n)){q={fill:b.backgroundColor,stroke:b.borderColor,"stroke-width":b.borderWidth,r:b.borderRadius||0,rotation:f,padding:b.padding,zIndex:1};"contrast"===t.color&&(z.color=b.inside|| +0>b.distance||d.stacking?r.getContrast(e.color||a.color):"#000000");d.cursor&&(z.cursor=d.cursor);for(x in q)void 0===q[x]&&delete q[x];q=e.dataLabel=r[f?"text":"label"](n,0,-9999,b.shape,null,null,b.useHTML,null,"data-label").attr(q);q.addClass("highcharts-data-label-color-"+e.colorIndex+" "+(b.className||""));q.css(p(t,z));q.add(m);q.shadow(b.shadow)}q&&a.alignDataLabel(e,q,b,null,y)}})};e.prototype.alignDataLabel=function(a,d,b,e,g){var c=this.chart,f=c.inverted,n=k(a.plotX,-9999),q=k(a.plotY, +-9999),h=d.getBBox(),m,l=b.rotation,u=b.align,r=this.visible&&(a.series.forceDL||c.isInsidePlot(n,Math.round(q),f)||e&&c.isInsidePlot(n,f?e.x+1:e.y+e.height-1,f)),t="justify"===k(b.overflow,"justify");r&&(m=b.style.fontSize,m=c.renderer.fontMetrics(m,d).b,e=p({x:f?c.plotWidth-q:n,y:Math.round(f?c.plotHeight-n:q),width:0,height:0},e),p(b,{width:h.width,height:h.height}),l?(t=!1,f=c.renderer.rotCorr(m,l),f={x:e.x+b.x+e.width/2+f.x,y:e.y+b.y+{top:0,middle:.5,bottom:1}[b.verticalAlign]*e.height},d[g? +"attr":"animate"](f).attr({align:u}),n=(l+720)%360,n=180n,"left"===u?f.y-=n?h.height:0:"center"===u?(f.x-=h.width/2,f.y-=h.height/2):"right"===u&&(f.x-=h.width,f.y-=n?0:h.height)):(d.align(b,null,e),f=d.alignAttr),t?this.justifyDataLabel(d,b,f,h,e,g):k(b.crop,!0)&&(r=c.isInsidePlot(f.x,f.y)&&c.isInsidePlot(f.x+h.width,f.y+h.height)),b.shape&&!l&&d.attr({anchorX:a.plotX,anchorY:a.plotY}));r||(C(d),d.attr({y:-9999}),d.placed=!1)};e.prototype.justifyDataLabel=function(a,d,b,e,g,c){var f=this.chart, +n=d.align,h=d.verticalAlign,q,k,m=a.box?0:a.padding||0;q=b.x+m;0>q&&("right"===n?d.align="left":d.x=-q,k=!0);q=b.x+e.width-m;q>f.plotWidth&&("left"===n?d.align="right":d.x=f.plotWidth-q,k=!0);q=b.y+m;0>q&&("bottom"===h?d.verticalAlign="top":d.y=-q,k=!0);q=b.y+e.height-m;q>f.plotHeight&&("top"===h?d.verticalAlign="bottom":d.y=f.plotHeight-q,k=!0);k&&(a.placed=!c,a.align(d,null,g))};g.pie&&(g.pie.prototype.drawDataLabels=function(){var f=this,d=f.data,b,g=f.chart,h=f.options.dataLabels,c=k(h.connectorPadding, +10),m=k(h.connectorWidth,1),n=g.plotWidth,l=g.plotHeight,x,p=h.distance,y=f.center,u=y[2]/2,t=y[1],w=0k-2?A:P,e),v._attr={visibility:S,align:D[6]},v._pos={x:L+h.x+({left:c,right:-c}[D[6]]||0),y:P+h.y-10},D.x=L,D.y=P,null===f.options.size&&(C=v.width,L-Cn-c&&(T[1]=Math.max(Math.round(L+ +C-n+c),T[1])),0>P-G/2?T[0]=Math.max(Math.round(-P+G/2),T[0]):P+G/2>l&&(T[2]=Math.max(Math.round(P+G/2-l),T[2])))}),0===B(T)||this.verifyDataLabelOverflow(T))&&(this.placeDataLabels(),w&&m&&H(this.points,function(a){var b;x=a.connector;if((v=a.dataLabel)&&v._pos&&a.visible){S=v._attr.visibility;if(b=!x)a.connector=x=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+a.colorIndex).add(f.dataLabelsGroup),x.attr({"stroke-width":m,stroke:h.connectorColor||a.color||"#666666"}); +x[b?"attr":"animate"]({d:f.connectorPath(a.labelPos)});x.attr("visibility",S)}else x&&(a.connector=x.destroy())}))},g.pie.prototype.connectorPath=function(a){var d=a.x,b=a.y;return k(this.options.dataLabels.softConnector,!0)?["M",d+("left"===a[6]?5:-5),b,"C",d,b,2*a[2]-a[4],2*a[3]-a[5],a[2],a[3],"L",a[4],a[5]]:["M",d+("left"===a[6]?5:-5),b,"L",a[2],a[3],"L",a[4],a[5]]},g.pie.prototype.placeDataLabels=function(){H(this.points,function(a){var d=a.dataLabel;d&&a.visible&&((a=d._pos)?(d.attr(d._attr), +d[d.moved?"animate":"attr"](a),d.moved=!0):d&&d.attr({y:-9999}))})},g.pie.prototype.alignDataLabel=t,g.pie.prototype.verifyDataLabelOverflow=function(a){var d=this.center,b=this.options,e=b.center,f=b.minSize||80,c,g;null!==e[0]?c=Math.max(d[2]-Math.max(a[1],a[3]),f):(c=Math.max(d[2]-a[1]-a[3],f),d[0]+=(a[3]-a[1])/2);null!==e[1]?c=Math.max(Math.min(c,d[2]-Math.max(a[0],a[2])),f):(c=Math.max(Math.min(c,d[2]-a[0]-a[2]),f),d[1]+=(a[0]-a[2])/2);ck(this.translatedThreshold,f.yAxis.len)),m=k(b.inside,!!this.options.stacking);n&&(g=w(n),0>g.y&&(g.height+=g.y,g.y=0),n=g.y+g.height-f.yAxis.len,0a+e||c+nb+f||g+hthis.pointCount))},pan:function(a,b){var c=this,d=c.hoverPoints, +e;d&&r(d,function(a){a.setState()});r("xy"===b?[1,0]:[1],function(b){b=c[b?"xAxis":"yAxis"][0];var d=b.horiz,f=a[d?"chartX":"chartY"],d=d?"mouseDownX":"mouseDownY",g=c[d],n=(b.pointRange||0)/2,h=b.getExtremes(),q=b.toValue(g-f,!0)+n,n=b.toValue(g+b.len-f,!0)-n,g=g>f;b.series.length&&(g||q>Math.min(h.dataMin,h.min))&&(!g||n=p(k.minWidth,0)&&this.chartHeight>=p(k.minHeight,0)};void 0===l._id&&(l._id=a.uniqueKey());m=m.call(this);!r[l._id]&&m?l.chartOptions&&(r[l._id]=this.currentOptions(l.chartOptions),this.update(l.chartOptions,w)):r[l._id]&&!m&&(this.update(r[l._id],w),delete r[l._id])};D.prototype.currentOptions=function(a){function p(a,m,e){var g,h;for(g in a)if(-1< +G(g,["series","xAxis","yAxis"]))for(a[g]=l(a[g]),e[g]=[],h=0;hd.length||void 0===h)return a.call(this,g,h,k,f);x=d.length;for(c=0;ck;d[c]5*b||w){if(d[c]>u){for(r=a.call(this,g,d[e],d[c],f);r.length&&r[0]<=u;)r.shift();r.length&&(u=r[r.length-1]);y=y.concat(r)}e=c+1}if(w)break}a= +r.info;if(q&&a.unitRange<=m.hour){c=y.length-1;for(e=1;ek?a-1:a;for(M=void 0;q--;)e=c[q],k=M-e,M&&k<.8*C&&(null===t||k<.8*t)?(n[y[q]]&&!n[y[q+1]]?(k=q+1,M=e):k=q,y.splice(k,1)):M=e}return y});w(B.prototype,{beforeSetTickPositions:function(){var a, +g=[],h=!1,k,f=this.getExtremes(),d=f.min,b=f.max,q,m=this.isXAxis&&!!this.options.breaks,f=this.options.ordinal,c=this.chart.options.chart.ignoreHiddenSeries;if(f||m){r(this.series,function(b,d){if(!(c&&!1===b.visible||!1===b.takeOrdinalPosition&&!m)&&(g=g.concat(b.processedXData),a=g.length,g.sort(function(a,b){return a-b}),a))for(d=a-1;d--;)g[d]===g[d+1]&&g.splice(d,1)});a=g.length;if(2k||b-g[g.length- +1]>k)&&(h=!0)}h?(this.ordinalPositions=g,k=this.val2lin(Math.max(d,g[0]),!0),q=Math.max(this.val2lin(Math.min(b,g[g.length-1]),!0),1),this.ordinalSlope=b=(b-d)/(q-k),this.ordinalOffset=d-k*b):this.ordinalPositions=this.ordinalSlope=this.ordinalOffset=void 0}this.isOrdinal=f&&h;this.groupIntervalFactor=null},val2lin:function(a,g){var e=this.ordinalPositions;if(e){var k=e.length,f,d;for(f=k;f--;)if(e[f]===a){d=f;break}for(f=k-1;f--;)if(a>e[f]||0===f){a=(a-e[f])/(e[f+1]-e[f]);d=f+a;break}g=g?d:this.ordinalSlope* +(d||0)+this.ordinalOffset}else g=a;return g},lin2val:function(a,g){var e=this.ordinalPositions;if(e){var k=this.ordinalSlope,f=this.ordinalOffset,d=e.length-1,b;if(g)0>a?a=e[0]:a>d?a=e[d]:(d=Math.floor(a),b=a-d);else for(;d--;)if(g=k*d+f,a>=g){k=k*(d+1)+f;b=(a-g)/(k-g);break}return void 0!==b&&void 0!==e[d]?e[d]+(b?b*(e[d+1]-e[d]):0):a}return a},getExtendedPositions:function(){var a=this.chart,g=this.series[0].currentDataGrouping,h=this.ordinalIndex,k=g?g.count+g.unitName:"raw",f=this.getExtremes(), +d,b;h||(h=this.ordinalIndex={});h[k]||(d={series:[],chart:a,getExtremes:function(){return{min:f.dataMin,max:f.dataMax}},options:{ordinal:!0},val2lin:B.prototype.val2lin},r(this.series,function(e){b={xAxis:d,xData:e.xData,chart:a,destroyGroupedData:t};b.options={dataGrouping:g?{enabled:!0,forced:!0,approximation:"open",units:[[g.unitName,[g.count]]]}:{enabled:!1}};e.processData.apply(b);d.series.push(b)}),this.beforeSetTickPositions.apply(d),h[k]=d.ordinalPositions);return h[k]},getGroupIntervalFactor:function(a, +g,h){var e;h=h.processedXData;var f=h.length,d=[];e=this.groupIntervalFactor;if(!e){for(e=0;ed?(l=p,t=e.ordinalPositions?e:p):(l=e.ordinalPositions?e:p,t=p),p=t.ordinalPositions,q>p[p.length-1]&&p.push(q),this.fixedRange=c-m,d=e.toFixedRange(null,null,n.apply(l,[x.apply(l,[m,!0])+d,!0]),n.apply(t,[x.apply(t, +[c,!0])+d,!0])),d.min>=Math.min(b.dataMin,m)&&d.max<=Math.max(q,c)&&e.setExtremes(d.min,d.max,!0,!1,{trigger:"pan"}),this.mouseDownX=k,H(this.container,{cursor:"move"})):f=!0}else f=!0;f&&a.apply(this,Array.prototype.slice.call(arguments,1))});k.prototype.gappedPath=function(){var a=this.options.gapSize,g=this.points.slice(),h=g.length-1;if(a&&0this.closestPointRange*a&&g.splice(h+1,0,{isNull:!0});return this.getGraphPath(g)}})(N);(function(a){function D(){return Array.prototype.slice.call(arguments, +1)}function B(a){a.apply(this);this.drawBreaks(this.xAxis,["x"]);this.drawBreaks(this.yAxis,G(this.pointArrayMap,["y"]))}var G=a.pick,H=a.wrap,p=a.each,l=a.extend,r=a.fireEvent,w=a.Axis,t=a.Series;l(w.prototype,{isInBreak:function(a,m){var e=a.repeat||Infinity,g=a.from,h=a.to-a.from;m=m>=g?(m-g)%e:e-(g-m)%e;return a.inclusive?m<=h:m=a)break;else if(g.isInBreak(f,a)){e-=a-f.from;break}return e};this.lin2val=function(a){var e,f;for(f=0;f=a);f++)e.toh;)m-=b;for(;mb.to||l>b.from&&db.from&&db.from&&d>b.to&&d=c[0]);A++);for(A;A<=q;A++){for(;(void 0!==c[w+1]&&a[A]>=c[w+1]||A===q)&&(l=c[w],this.dataGroupInfo={start:p,length:t[0].length},p=d.apply(this,t),void 0!==p&&(g.push(l),h.push(p),m.push(this.dataGroupInfo)),p=A,t[0]=[],t[1]=[],t[2]=[],t[3]=[],w+=1,A!==q););if(A===q)break;if(x){l=this.cropStart+A;l=e&&e[l]|| +this.pointClass.prototype.applyOptions.apply({series:this},[f[l]]);var E,C;for(E=0;Ethis.chart.plotSizeX/d||b&&f.forced)&&(e=!0);return e?d:0};G.prototype.setDataGrouping=function(a,b){var c;b=e(b,!0);a||(a={forced:!1,units:null});if(this instanceof G)for(c=this.series.length;c--;)this.series[c].update({dataGrouping:a},!1);else l(this.chart.options.series,function(b){b.dataGrouping=a},!1);b&&this.chart.redraw()}})(N);(function(a){var D=a.each,B=a.Point,G=a.seriesType,H=a.seriesTypes;G("ohlc","column",{lineWidth:1,tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eOpen: {point.open}\x3cbr/\x3eHigh: {point.high}\x3cbr/\x3eLow: {point.low}\x3cbr/\x3eClose: {point.close}\x3cbr/\x3e'}, +threshold:null,states:{hover:{lineWidth:3}}},{pointArrayMap:["open","high","low","close"],toYData:function(a){return[a.open,a.high,a.low,a.close]},pointValKey:"high",pointAttribs:function(a,l){l=H.column.prototype.pointAttribs.call(this,a,l);var p=this.options;delete l.fill;l["stroke-width"]=p.lineWidth;l.stroke=a.options.color||(a.openk)););B(g,function(a,b){var d;void 0===a.plotY&&(a.x>=c.min&&a.x<=c.max?a.plotY=e.chartHeight-p.bottom-(p.opposite?p.height:0)+p.offset-e.plotTop:a.shapeArgs={});a.plotX+=t;(f=g[b-1])&&f.plotX===a.plotX&&(void 0===f.stackIndex&&(f.stackIndex=0),d=f.stackIndex+1);a.stackIndex=d})},drawPoints:function(){var a=this.points,e=this.chart,g=e.renderer,k,l,f=this.options,d=f.y,b,q,p,c,r,n,t,x=this.yAxis;for(q=a.length;q--;)p=a[q],t=p.plotX>this.xAxis.len,k=p.plotX,c=p.stackIndex,b= +p.options.shape||f.shape,l=p.plotY,void 0!==l&&(l=p.plotY+d-(void 0!==c&&c*f.stackDistance)),r=c?void 0:p.plotX,n=c?void 0:p.plotY,c=p.graphic,void 0!==l&&0<=k&&!t?(c||(c=p.graphic=g.label("",null,null,b,null,null,f.useHTML).attr(this.pointAttribs(p)).css(G(f.style,p.style)).attr({align:"flag"===b?"left":"center",width:f.width,height:f.height,"text-align":f.textAlign}).addClass("highcharts-point").add(this.markerGroup),c.shadow(f.shadow)),0h&&(e-=Math.round((l-h)/2),h=l);e=k[a](e,g,h,l);d&&f&&e.push("M",d,g>f?g:g+l,"L",d,f);return e}});p===t&&B(["flag","circlepin","squarepin"],function(a){t.prototype.symbols[a]=k[a]})})(N);(function(a){function D(a,d,e){this.init(a,d,e)}var B=a.addEvent,G=a.Axis,H=a.correctFloat,p=a.defaultOptions, +l=a.defined,r=a.destroyObjectProperties,w=a.doc,t=a.each,k=a.fireEvent,m=a.hasTouch,e=a.isTouchDevice,g=a.merge,h=a.pick,C=a.removeEvent,f=a.wrap,d={height:e?20:14,barBorderRadius:0,buttonBorderRadius:0,liveRedraw:a.svg&&!e,margin:10,minWidth:6,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:1,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"#333333",trackBackgroundColor:"#f2f2f2",trackBorderColor:"#f2f2f2", +trackBorderWidth:1};p.scrollbar=g(!0,d,p.scrollbar);D.prototype={init:function(a,e,f){this.scrollbarButtons=[];this.renderer=a;this.userOptions=e;this.options=g(d,e);this.chart=f;this.size=h(this.options.size,this.options.height);e.enabled&&(this.render(),this.initEvents(),this.addEvents())},render:function(){var a=this.renderer,d=this.options,e=this.size,c;this.group=c=a.g("scrollbar").attr({zIndex:d.zIndex,translateY:-99999}).add();this.track=a.rect().addClass("highcharts-scrollbar-track").attr({x:0, +r:d.trackBorderRadius||0,height:e,width:e}).add(c);this.track.attr({fill:d.trackBackgroundColor,stroke:d.trackBorderColor,"stroke-width":d.trackBorderWidth});this.trackBorderWidth=this.track.strokeWidth();this.track.attr({y:-this.trackBorderWidth%2/2});this.scrollbarGroup=a.g().add(c);this.scrollbar=a.rect().addClass("highcharts-scrollbar-thumb").attr({height:e,width:e,r:d.barBorderRadius||0}).add(this.scrollbarGroup);this.scrollbarRifles=a.path(this.swapXY(["M",-3,e/4,"L",-3,2*e/3,"M",0,e/4,"L", +0,2*e/3,"M",3,e/4,"L",3,2*e/3],d.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup);this.scrollbar.attr({fill:d.barBackgroundColor,stroke:d.barBorderColor,"stroke-width":d.barBorderWidth});this.scrollbarRifles.attr({stroke:d.rifleColor,"stroke-width":1});this.scrollbarStrokeWidth=this.scrollbar.strokeWidth();this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2);this.drawScrollbarButton(0);this.drawScrollbarButton(1)},position:function(a, +d,e,c){var b=this.options.vertical,f=0,g=this.rendered?"animate":"attr";this.x=a;this.y=d+this.trackBorderWidth;this.width=e;this.xOffset=this.height=c;this.yOffset=f;b?(this.width=this.yOffset=e=f=this.size,this.xOffset=d=0,this.barWidth=c-2*e,this.x=a+=this.options.margin):(this.height=this.xOffset=c=d=this.size,this.barWidth=e-2*c,this.y+=this.options.margin);this.group[g]({translateX:a,translateY:this.y});this.track[g]({width:e,height:c});this.scrollbarButtons[1].attr({translateX:b?0:e-d,translateY:b? +c-f:0})},drawScrollbarButton:function(a){var b=this.renderer,d=this.scrollbarButtons,c=this.options,e=this.size,f;f=b.g().add(this.group);d.push(f);f=b.rect().addClass("highcharts-scrollbar-button").add(f);f.attr({stroke:c.buttonBorderColor,"stroke-width":c.buttonBorderWidth,fill:c.buttonBackgroundColor});f.attr(f.crisp({x:-.5,y:-.5,width:e+1,height:e+1,r:c.buttonBorderRadius},f.strokeWidth()));f=b.path(this.swapXY(["M",e/2+(a?-1:1),e/2-3,"L",e/2+(a?-1:1),e/2+3,"L",e/2+(a?2:-2),e/2],c.vertical)).addClass("highcharts-scrollbar-arrow").add(d[a]); +f.attr({fill:c.buttonArrowColor})},swapXY:function(a,d){var b=a.length,c;if(d)for(d=0;d=k?this.scrollbarRifles.hide():this.scrollbarRifles.show(!0),!1===b.showFull&&(0>=a&&1<=d?this.group.hide():this.group.show()),this.rendered=!0)},initEvents:function(){var a=this;a.mouseMoveHandler=function(b){var d=a.chart.pointer.normalize(b),c=a.options.vertical? +"chartY":"chartX",e=a.initPositions;!a.grabbedCenter||b.touches&&0===b.touches[0][c]||(d=a.cursorToScrollbarPosition(d)[c],c=a[c],c=d-c,a.hasDragged=!0,a.updatePosition(e[0]+c,e[1]+c),a.hasDragged&&k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMType:b.type,DOMEvent:b}))};a.mouseUpHandler=function(b){a.hasDragged&&k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMType:b.type,DOMEvent:b});a.grabbedCenter=a.hasDragged=a.chartX=a.chartY=null};a.mouseDownHandler=function(b){b=a.chart.pointer.normalize(b); +b=a.cursorToScrollbarPosition(b);a.chartX=b.chartX;a.chartY=b.chartY;a.initPositions=[a.from,a.to];a.grabbedCenter=!0};a.buttonToMinClick=function(b){var d=H(a.to-a.from)*a.options.step;a.updatePosition(H(a.from-d),H(a.to-d));k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})};a.buttonToMaxClick=function(b){var d=(a.to-a.from)*a.options.step;a.updatePosition(a.from+d,a.to+d);k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})};a.trackClick=function(b){var d=a.chart.pointer.normalize(b), +c=a.to-a.from,e=a.y+a.scrollbarTop,f=a.x+a.scrollbarLeft;a.options.vertical&&d.chartY>e||!a.options.vertical&&d.chartX>f?a.updatePosition(a.from+c,a.to+c):a.updatePosition(a.from-c,a.to-c);k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})}},cursorToScrollbarPosition:function(a){var b=this.options,b=b.minWidth>this.calculatedWidth?b.minWidth:0;return{chartX:(a.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(a.chartY-this.y-this.yOffset)/(this.barWidth-b)}},updatePosition:function(a, +d){1a&&(d=H(d-a),a=0);this.from=a;this.to=d},update:function(a){this.destroy();this.init(this.chart.renderer,g(!0,this.options,a),this.chart)},addEvents:function(){var a=this.options.inverted?[1,0]:[0,1],d=this.scrollbarButtons,e=this.scrollbarGroup.element,c=this.mouseDownHandler,f=this.mouseMoveHandler,g=this.mouseUpHandler,a=[[d[a[0]].element,"click",this.buttonToMinClick],[d[a[1]].element,"click",this.buttonToMaxClick],[this.track.element,"click",this.trackClick],[e, +"mousedown",c],[w,"mousemove",f],[w,"mouseup",g]];m&&a.push([e,"touchstart",c],[w,"touchmove",f],[w,"touchend",g]);t(a,function(a){B.apply(null,a)});this._events=a},removeEvents:function(){t(this._events,function(a){C.apply(null,a)});this._events=void 0},destroy:function(){var a=this.chart.scroller;this.removeEvents();t(["track","scrollbarRifles","scrollbar","scrollbarGroup","group"],function(a){this[a]&&this[a].destroy&&(this[a]=this[a].destroy())},this);a&&(a.scrollbar=null,r(a.scrollbarButtons))}}; +f(G.prototype,"init",function(a){var b=this;a.apply(b,[].slice.call(arguments,1));b.options.scrollbar&&b.options.scrollbar.enabled&&(b.options.scrollbar.vertical=!b.horiz,b.options.startOnTick=b.options.endOnTick=!1,b.scrollbar=new D(b.chart.renderer,b.options.scrollbar,b.chart),B(b.scrollbar,"changed",function(a){var c=Math.min(h(b.options.min,b.min),b.min,b.dataMin),d=Math.max(h(b.options.max,b.max),b.max,b.dataMax)-c,e;b.horiz&&!b.reversed||!b.horiz&&b.reversed?(e=c+d*this.to,c+=d*this.from):(e= +c+d*(1-this.from),c+=d*(1-this.to));b.setExtremes(c,e,!0,!1,a)}))});f(G.prototype,"render",function(a){var b=Math.min(h(this.options.min,this.min),this.min,this.dataMin),d=Math.max(h(this.options.max,this.max),this.max,this.dataMax),c=this.scrollbar,e;a.apply(this,[].slice.call(arguments,1));c&&(this.horiz?c.position(this.left,this.top+this.height+this.offset+2+(this.opposite?0:this.axisTitleMargin),this.width,this.height):c.position(this.left+this.width+2+this.offset+(this.opposite?this.axisTitleMargin: +0),this.top,this.width,this.height),isNaN(b)||isNaN(d)||!l(this.min)||!l(this.max)?c.setRange(0,0):(e=(this.min-b)/(d-b),b=(this.max-b)/(d-b),this.horiz&&!this.reversed||!this.horiz&&this.reversed?c.setRange(e,b):c.setRange(1-b,1-e)))});f(G.prototype,"getOffset",function(a){var b=this.horiz?2:1,d=this.scrollbar;a.apply(this,[].slice.call(arguments,1));d&&(this.chart.axisOffset[b]+=d.size+d.options.margin)});f(G.prototype,"destroy",function(a){this.scrollbar&&(this.scrollbar=this.scrollbar.destroy()); +a.apply(this,[].slice.call(arguments,1))});a.Scrollbar=D})(N);(function(a){function D(a){this.init(a)}var B=a.addEvent,G=a.Axis,H=a.Chart,p=a.color,l=a.defaultOptions,r=a.defined,w=a.destroyObjectProperties,t=a.doc,k=a.each,m=a.erase,e=a.error,g=a.extend,h=a.grep,C=a.hasTouch,f=a.isNumber,d=a.isObject,b=a.isTouchDevice,q=a.merge,E=a.pick,c=a.removeEvent,F=a.Scrollbar,n=a.Series,A=a.seriesTypes,x=a.wrap,J=[].concat(a.defaultDataGroupingUnits),y=function(a){var b=h(arguments,f);if(b.length)return Math[a].apply(0, +b)};J[4]=["day",[1,2,3,4]];J[5]=["week",[1,2,3]];A=void 0===A.areaspline?"line":"areaspline";g(l,{navigator:{height:40,margin:25,maskInside:!0,handles:{backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:p("#6685c2").setOpacity(.3).get(),outlineColor:"#cccccc",outlineWidth:1,series:{type:A,color:"#335cad",fillOpacity:.05,lineWidth:1,compare:null,dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,smoothed:!0,units:J},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series", +className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},pointRange:0,shadow:!1,threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#999999"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}); +D.prototype={drawHandle:function(a,b){var c=this.chart.renderer,d=this.handles;this.rendered||(d[b]=c.path(["M",-4.5,.5,"L",3.5,.5,3.5,15.5,-4.5,15.5,-4.5,.5,"M",-1.5,4,"L",-1.5,12,"M",.5,4,"L",.5,12]).attr({zIndex:10-b}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][b]).add(),c=this.navigatorOptions.handles,d[b].attr({fill:c.backgroundColor,stroke:c.borderColor,"stroke-width":1}).css({cursor:"ew-resize"}));d[b][this.rendered&&!this.hasDragged?"animate":"attr"]({translateX:Math.round(this.scrollerLeft+ +this.scrollbarHeight+parseInt(a,10)),translateY:Math.round(this.top+this.height/2-8)})},update:function(a){this.destroy();q(!0,this.chart.options.navigator,this.options,a);this.init(this.chart)},render:function(a,b,c,d){var e=this.chart,g=e.renderer,k,h,l,n;n=this.scrollbarHeight;var m=this.xAxis,p=this.navigatorOptions,u=p.maskInside,q=this.height,v=this.top,t=this.navigatorEnabled,x=this.outlineHeight,y;y=this.rendered;if(f(a)&&f(b)&&(!this.hasDragged||r(c))&&(this.navigatorLeft=k=E(m.left,e.plotLeft+ +n),this.navigatorWidth=h=E(m.len,e.plotWidth-2*n),this.scrollerLeft=l=k-n,this.scrollerWidth=n=n=h+2*n,c=E(c,m.translate(a)),d=E(d,m.translate(b)),f(c)&&Infinity!==Math.abs(c)||(c=0,d=n),!(m.translate(d,!0)-m.translate(c,!0)f&&tp+d-u&&rk&&re?e=0:e+v>=q&&(e=q-v,x=h.getUnionExtremes().dataMax),e!==d&&(h.fixedWidth=v,d=l.toFixedRange(e, +e+v,null,x),c.setExtremes(d.min,d.max,!0,null,{trigger:"navigator"}))))};h.mouseMoveHandler=function(b){var c=h.scrollbarHeight,d=h.navigatorLeft,e=h.navigatorWidth,f=h.scrollerLeft,g=h.scrollerWidth,k=h.range,l;b.touches&&0===b.touches[0].pageX||(b=a.pointer.normalize(b),l=b.chartX,lf+g-c&&(l=f+g-c),h.grabbedLeft?(h.hasDragged=!0,h.render(0,0,l-d,h.otherHandlePos)):h.grabbedRight?(h.hasDragged=!0,h.render(0,0,h.otherHandlePos,l-d)):h.grabbedCenter&&(h.hasDragged=!0,le+n-k&&(l=e+ +n-k),h.render(0,0,l-n,l-n+k)),h.hasDragged&&h.scrollbar&&h.scrollbar.options.liveRedraw&&(b.DOMType=b.type,setTimeout(function(){h.mouseUpHandler(b)},0)))};h.mouseUpHandler=function(b){var c,d,e=b.DOMEvent||b;if(h.hasDragged||"scrollbar"===b.trigger)h.zoomedMin===h.otherHandlePos?c=h.fixedExtreme:h.zoomedMax===h.otherHandlePos&&(d=h.fixedExtreme),h.zoomedMax===h.navigatorWidth&&(d=h.getUnionExtremes().dataMax),c=l.toFixedRange(h.zoomedMin,h.zoomedMax,c,d),r(c.min)&&a.xAxis[0].setExtremes(c.min,c.max, +!0,h.hasDragged?!1:null,{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:e});"mousemove"!==b.DOMType&&(h.grabbedLeft=h.grabbedRight=h.grabbedCenter=h.fixedWidth=h.fixedExtreme=h.otherHandlePos=h.hasDragged=n=null)};var c=a.xAxis.length,f=a.yAxis.length,m=e&&e[0]&&e[0].xAxis||a.xAxis[0];a.extraBottomMargin=h.outlineHeight+d.margin;a.isDirtyBox=!0;h.navigatorEnabled?(h.xAxis=l=new G(a,q({breaks:m.options.breaks,ordinal:m.options.ordinal},d.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis", +isX:!0,type:"datetime",index:c,height:g,offset:0,offsetLeft:k,offsetRight:-k,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1})),h.yAxis=new G(a,q(d.yAxis,{id:"navigator-y-axis",alignTicks:!1,height:g,offset:0,index:f,zoomEnabled:!1})),e||d.series.data?h.addBaseSeries():0===a.series.length&&x(a,"redraw",function(b,c){0=Math.round(a.navigatorWidth);b&&!a.hasNavigatorData&&(b.options.pointStart=this.xData[0],b.setData(this.options.data,!1,null,!1))},destroy:function(){this.removeEvents();this.xAxis&&(m(this.chart.xAxis,this.xAxis),m(this.chart.axes,this.xAxis));this.yAxis&&(m(this.chart.yAxis,this.yAxis),m(this.chart.axes,this.yAxis));k(this.series||[],function(a){a.destroy&&a.destroy()});k("series xAxis yAxis leftShade rightShade outline scrollbarTrack scrollbarRifles scrollbarGroup scrollbar navigatorGroup rendered".split(" "), +function(a){this[a]&&this[a].destroy&&this[a].destroy();this[a]=null},this);k([this.handles,this.elementsToDestroy],function(a){w(a)},this)}};a.Navigator=D;x(G.prototype,"zoom",function(a,b,c){var d=this.chart,e=d.options,f=e.chart.zoomType,g=e.navigator,e=e.rangeSelector,h;this.isXAxis&&(g&&g.enabled||e&&e.enabled)&&("x"===f?d.resetZoomButton="blocked":"y"===f?h=!1:"xy"===f&&(d=this.previousZoom,r(b)?this.previousZoom=[this.min,this.max]:d&&(b=d[0],c=d[1],delete this.previousZoom)));return void 0!== +h?h:a.call(this,b,c)});x(H.prototype,"init",function(a,b,c){B(this,"beforeRender",function(){var a=this.options;if(a.navigator.enabled||a.scrollbar.enabled)this.scroller=this.navigator=new D(this)});a.call(this,b,c)});x(H.prototype,"getMargins",function(a){var b=this.legend,c=b.options,d=this.scroller,e,f;a.apply(this,[].slice.call(arguments,1));d&&(e=d.xAxis,f=d.yAxis,d.top=d.navigatorOptions.top||this.chartHeight-d.height-d.scrollbarHeight-this.spacing[2]-("bottom"===c.verticalAlign&&c.enabled&& +!c.floating?b.legendHeight+E(c.margin,10):0),e&&f&&(e.options.top=f.options.top=d.top,e.setAxisSize(),f.setAxisSize()))});x(n.prototype,"addPoint",function(a,b,c,f,g){var h=this.options.turboThreshold;h&&this.xData.length>h&&d(b,!0)&&this.chart.scroller&&e(20,!0);a.call(this,b,c,f,g)});x(H.prototype,"addSeries",function(a,b,c,d){a=a.call(this,b,!1,d);this.scroller&&this.scroller.setBaseSeries();E(c,!0)&&this.redraw();return a});x(n.prototype,"update",function(a,b,c){a.call(this,b,!1);this.chart.scroller&& +this.chart.scroller.setBaseSeries();E(c,!0)&&this.chart.redraw()})})(N);(function(a){function D(a){this.init(a)}var B=a.addEvent,G=a.Axis,H=a.Chart,p=a.css,l=a.createElement,r=a.dateFormat,w=a.defaultOptions,t=w.global.useUTC,k=a.defined,m=a.destroyObjectProperties,e=a.discardElement,g=a.each,h=a.extend,C=a.fireEvent,f=a.Date,d=a.isNumber,b=a.merge,q=a.pick,E=a.pInt,c=a.splat,F=a.wrap;h(w,{rangeSelector:{buttonTheme:{"stroke-width":0,width:28,height:18,padding:2,zIndex:7},height:35,inputPosition:{align:"right"}, +labelStyle:{color:"#666666"}}});w.lang=b(w.lang,{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"From",rangeSelectorTo:"To"});D.prototype={clickButton:function(a,b){var e=this,f=e.chart,h=e.buttonOptions[a],k=f.xAxis[0],l=f.scroller&&f.scroller.getUnionExtremes()||k||{},n=l.dataMin,m=l.dataMax,p,r=k&&Math.round(Math.min(k.max,q(m,k.max))),w=h.type,z,l=h._range,A,C,D,E=h.dataGrouping;if(null!==n&&null!==m){f.fixedRange=l;E&&(this.forcedDataGrouping=!0,G.prototype.setDataGrouping.call(k||{chart:this.chart}, +E,!1));if("month"===w||"year"===w)k?(w={range:h,max:r,dataMin:n,dataMax:m},p=k.minFromRange.call(w),d(w.newMax)&&(r=w.newMax)):l=h;else if(l)p=Math.max(r-l,n),r=Math.min(p+l,m);else if("ytd"===w)if(k)void 0===m&&(n=Number.MAX_VALUE,m=Number.MIN_VALUE,g(f.series,function(a){a=a.xData;n=Math.min(a[0],n);m=Math.max(a[a.length-1],m)}),b=!1),r=e.getYTDExtremes(m,n,t),p=A=r.min,r=r.max;else{B(f,"beforeRender",function(){e.clickButton(a)});return}else"all"===w&&k&&(p=n,r=m);e.setSelected(a);k?k.setExtremes(p, +r,q(b,1),null,{trigger:"rangeSelectorButton",rangeSelectorButton:h}):(z=c(f.options.xAxis)[0],D=z.range,z.range=l,C=z.min,z.min=A,B(f,"load",function(){z.range=D;z.min=C}))}},setSelected:function(a){this.selected=this.options.selected=a},defaultButtons:[{type:"month",count:1,text:"1m"},{type:"month",count:3,text:"3m"},{type:"month",count:6,text:"6m"},{type:"ytd",text:"YTD"},{type:"year",count:1,text:"1y"},{type:"all",text:"All"}],init:function(a){var b=this,c=a.options.rangeSelector,d=c.buttons|| +[].concat(b.defaultButtons),e=c.selected,f=function(){var a=b.minInput,c=b.maxInput;a&&a.blur&&C(a,"blur");c&&c.blur&&C(c,"blur")};b.chart=a;b.options=c;b.buttons=[];a.extraTopMargin=c.height;b.buttonOptions=d;this.unMouseDown=B(a.container,"mousedown",f);this.unResize=B(a,"resize",f);g(d,b.computeButtonRange);void 0!==e&&d[e]&&this.clickButton(e,!1);B(a,"load",function(){B(a.xAxis[0],"setExtremes",function(c){this.max-this.min!==a.fixedRange&&"rangeSelectorButton"!==c.trigger&&"updatedData"!==c.trigger&& +b.forcedDataGrouping&&this.setDataGrouping(!1,!1)})})},updateButtonStates:function(){var a=this.chart,b=a.xAxis[0],c=Math.round(b.max-b.min),e=!b.hasVisibleSeries,a=a.scroller&&a.scroller.getUnionExtremes()||b,f=a.dataMin,h=a.dataMax,a=this.getYTDExtremes(h,f,t),k=a.min,l=a.max,m=this.selected,p=d(m),q=this.options.allButtonsEnabled,r=this.buttons;g(this.buttonOptions,function(a,d){var g=a._range,n=a.type,u=a.count||1;a=r[d];var t=0;d=d===m;var v=g>h-f,x=g=864E5*{month:28,year:365}[n]*u&&c<=864E5*{month:31,year:366}[n]*u?g=!0:"ytd"===n?(g=l-k===c,y=!d):"all"===n&&(g=b.max-b.min>=h-f,w=!d&&p&&g);n=!q&&(v||x||w||e);g=d&&g||g&&!p&&!y;n?t=3:g&&(p=!0,t=2);a.state!==t&&a.setState(t)})},computeButtonRange:function(a){var b=a.type,c=a.count||1,d={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5};if(d[b])a._range=d[b]*c;else if("month"===b||"year"===b)a._range=864E5*{month:30,year:365}[b]*c},setInputValue:function(a,b){var c= +this.chart.options.rangeSelector,d=this[a+"Input"];k(b)&&(d.previousValue=d.HCTime,d.HCTime=b);d.value=r(c.inputEditDateFormat||"%Y-%m-%d",d.HCTime);this[a+"DateBox"].attr({text:r(c.inputDateFormat||"%b %e, %Y",d.HCTime)})},showInput:function(a){var b=this.inputGroup,c=this[a+"DateBox"];p(this[a+"Input"],{left:b.translateX+c.x+"px",top:b.translateY+"px",width:c.width-2+"px",height:c.height-2+"px",border:"2px solid silver"})},hideInput:function(a){p(this[a+"Input"],{border:0,width:"1px",height:"1px"}); +this.setInputValue(a)},drawInput:function(a){function c(){var a=r.value,b=(m.inputDateParser||Date.parse)(a),c=f.xAxis[0],g=f.scroller&&f.scroller.xAxis?f.scroller.xAxis:c,h=g.dataMin,g=g.dataMax;b!==r.previousValue&&(r.previousValue=b,d(b)||(b=a.split("-"),b=Date.UTC(E(b[0]),E(b[1])-1,E(b[2]))),d(b)&&(t||(b+=6E4*(new Date).getTimezoneOffset()),q?b>e.maxInput.HCTime?b=void 0:bg&&(b=g),void 0!==b&&c.setExtremes(q?b:c.min,q?c.max:b,void 0,void 0,{trigger:"rangeSelectorInput"})))} +var e=this,f=e.chart,g=f.renderer.style||{},k=f.renderer,m=f.options.rangeSelector,n=e.div,q="min"===a,r,B,C=this.inputGroup;this[a+"Label"]=B=k.label(w.lang[q?"rangeSelectorFrom":"rangeSelectorTo"],this.inputGroup.offset).addClass("highcharts-range-label").attr({padding:2}).add(C);C.offset+=B.width+5;this[a+"DateBox"]=k=k.label("",C.offset).addClass("highcharts-range-input").attr({padding:2,width:m.inputBoxWidth||90,height:m.inputBoxHeight||17,stroke:m.inputBoxBorderColor||"#cccccc","stroke-width":1, +"text-align":"center"}).on("click",function(){e.showInput(a);e[a+"Input"].focus()}).add(C);C.offset+=k.width+(q?10:0);this[a+"Input"]=r=l("input",{name:a,className:"highcharts-range-selector",type:"text"},{top:f.plotTop+"px"},n);B.css(b(g,m.labelStyle));k.css(b({color:"#333333"},g,m.inputStyle));p(r,h({position:"absolute",border:0,width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:g.fontSize,fontFamily:g.fontFamily,left:"-9em"},m.inputStyle));r.onfocus=function(){e.showInput(a)};r.onblur= +function(){e.hideInput(a)};r.onchange=c;r.onkeypress=function(a){13===a.keyCode&&c()}},getPosition:function(){var a=this.chart,b=a.options.rangeSelector,a=q((b.buttonPosition||{}).y,a.plotTop-a.axisOffset[0]-b.height);return{buttonTop:a,inputTop:a-10}},getYTDExtremes:function(a,b,c){var d=new f(a),e=d[f.hcGetFullYear]();c=c?f.UTC(e,0,1):+new f(e,0,1);b=Math.max(b||0,c);d=d.getTime();return{max:Math.min(a||d,d),min:b}},render:function(a,b){var c=this,d=c.chart,e=d.renderer,f=d.container,m=d.options, +n=m.exporting&&!1!==m.exporting.enabled&&m.navigation&&m.navigation.buttonOptions,p=m.rangeSelector,r=c.buttons,m=w.lang,t=c.div,t=c.inputGroup,A=p.buttonTheme,z=p.buttonPosition||{},B=p.inputEnabled,C=A&&A.states,D=d.plotLeft,E,G=this.getPosition(),F=c.group,H=c.rendered;!1!==p.enabled&&(H||(c.group=F=e.g("range-selector-buttons").add(),c.zoomText=e.text(m.rangeSelectorZoom,q(z.x,D),15).css(p.labelStyle).add(F),E=q(z.x,D)+c.zoomText.getBBox().width+5,g(c.buttonOptions,function(a,b){r[b]=e.button(a.text, +E,0,function(){c.clickButton(b);c.isActive=!0},A,C&&C.hover,C&&C.select,C&&C.disabled).attr({"text-align":"center"}).add(F);E+=r[b].width+q(p.buttonSpacing,5)}),!1!==B&&(c.div=t=l("div",null,{position:"relative",height:0,zIndex:1}),f.parentNode.insertBefore(t,f),c.inputGroup=t=e.g("input-group").add(),t.offset=0,c.drawInput("min"),c.drawInput("max"))),c.updateButtonStates(),F[H?"animate":"attr"]({translateY:G.buttonTop}),!1!==B&&(t.align(h({y:G.inputTop,width:t.offset,x:n&&G.inputTop<(n.y||0)+n.height- +d.spacing[0]?-40:0},p.inputPosition),!0,d.spacingBox),k(B)||(d=F.getBBox(),t[t.alignAttr.translateXc&&(e?a=b-f:b=a+f);d(a)||(a=b=void 0);return{min:a,max:b}};G.prototype.minFromRange=function(){var a=this.range,b={month:"Month",year:"FullYear"}[a.type],c,e=this.max,f,g,h=function(a,c){var d=new Date(a);d["set"+b](d["get"+ +b]()+c);return d.getTime()-a};d(a)?(c=e-a,g=a):(c=e+h(e,-a.count),this.chart&&(this.chart.fixedRange=e-c));f=q(this.dataMin,Number.MIN_VALUE);d(c)||(c=f);c<=f&&(c=f,void 0===g&&(g=h(c,a.count)),this.newMax=Math.min(c+g,this.dataMax));d(e)||(c=void 0);return c};F(H.prototype,"init",function(a,b,c){B(this,"init",function(){this.options.rangeSelector.enabled&&(this.rangeSelector=new D(this))});a.call(this,b,c)});a.RangeSelector=D})(N);(function(a){var D=a.addEvent,B=a.isNumber;a.Chart.prototype.callbacks.push(function(a){function G(){p= +a.xAxis[0].getExtremes();B(p.min)&&r.render(p.min,p.max)}var p,l=a.scroller,r=a.rangeSelector,w,t;l&&(p=a.xAxis[0].getExtremes(),l.render(p.min,p.max));r&&(t=D(a.xAxis[0],"afterSetExtremes",function(a){r.render(a.min,a.max)}),w=D(a,"redraw",G),G());D(a,"destroy",function(){r&&(w(),t())})})})(N);(function(a){var D=a.arrayMax,B=a.arrayMin,G=a.Axis,H=a.Chart,p=a.defined,l=a.each,r=a.extend,w=a.format,t=a.inArray,k=a.isNumber,m=a.isString,e=a.map,g=a.merge,h=a.pick,C=a.Point,f=a.Renderer,d=a.Series,b= +a.splat,q=a.stop,E=a.SVGRenderer,c=a.VMLRenderer,F=a.wrap,n=d.prototype,A=n.init,x=n.processData,J=C.prototype.tooltipFormatter;a.StockChart=a.stockChart=function(c,d,f){var k=m(c)||c.nodeName,l=arguments[k?1:0],n=l.series,p=a.getOptions(),q,r=h(l.navigator&&l.navigator.enabled,!0)?{startOnTick:!1,endOnTick:!1}:null,t={marker:{enabled:!1,radius:2}},u={shadow:!1,borderWidth:0};l.xAxis=e(b(l.xAxis||{}),function(a){return g({minPadding:0,maxPadding:0,ordinal:!0,title:{text:null},labels:{overflow:"justify"}, +showLastLabel:!0},p.xAxis,a,{type:"datetime",categories:null},r)});l.yAxis=e(b(l.yAxis||{}),function(a){q=h(a.opposite,!0);return g({labels:{y:-2},opposite:q,showLastLabel:!1,title:{text:null}},p.yAxis,a)});l.series=null;l=g({chart:{panning:!0,pinchType:"x"},navigator:{enabled:!0},scrollbar:{enabled:!0},rangeSelector:{enabled:!0},title:{text:null,style:{fontSize:"16px"}},tooltip:{shared:!0,crosshairs:!0},legend:{enabled:!1},plotOptions:{line:t,spline:t,area:t,areaspline:t,arearange:t,areasplinerange:t, +column:u,columnrange:u,candlestick:u,ohlc:u}},l,{_stock:!0,chart:{inverted:!1}});l.series=n;return k?new H(c,l,f):new H(l,d)};F(G.prototype,"autoLabelAlign",function(a){var b=this.chart,c=this.options,b=b._labelPanes=b._labelPanes||{},d=this.options.labels;return this.chart.options._stock&&"yAxis"===this.coll&&(c=c.top+","+c.height,!b[c]&&d.enabled)?(15===d.x&&(d.x=0),void 0===d.align&&(d.align="right"),b[c]=1,"right"):a.call(this,[].slice.call(arguments,1))});F(G.prototype,"getPlotLinePath",function(a, +b,c,d,f,g){var n=this,q=this.isLinked&&!this.series?this.linkedParent.series:this.series,r=n.chart,u=r.renderer,v=n.left,w=n.top,y,x,A,B,C=[],D=[],E,F;if("colorAxis"===n.coll)return a.apply(this,[].slice.call(arguments,1));D=function(a){var b="xAxis"===a?"yAxis":"xAxis";a=n.options[b];return k(a)?[r[b][a]]:m(a)?[r.get(a)]:e(q,function(a){return a[b]})}(n.coll);l(n.isXAxis?r.yAxis:r.xAxis,function(a){if(p(a.options.id)?-1===a.options.id.indexOf("navigator"):1){var b=a.isXAxis?"yAxis":"xAxis",b=p(a.options[b])? +r[b][a.options[b]]:r[b][0];n===b&&D.push(a)}});E=D.length?[]:[n.isXAxis?r.yAxis[0]:r.xAxis[0]];l(D,function(a){-1===t(a,E)&&E.push(a)});F=h(g,n.translate(b,null,null,d));k(F)&&(n.horiz?l(E,function(a){var b;x=a.pos;B=x+a.len;y=A=Math.round(F+n.transB);if(yv+n.width)f?y=A=Math.min(Math.max(v,y),v+n.width):b=!0;b||C.push("M",y,x,"L",A,B)}):l(E,function(a){var b;y=a.pos;A=y+a.len;x=B=Math.round(w+n.height-F);if(xw+n.height)f?x=B=Math.min(Math.max(w,x),n.top+n.height):b=!0;b||C.push("M",y, +x,"L",A,B)}));return 0=e&&(x=-(l.translateX+b.width-e));l.attr({x:m+x,y:k,anchorX:g?m:this.opposite?0:a.chartWidth,anchorY:g?this.opposite?a.chartHeight:0:k+b.height/2})}});n.init=function(){A.apply(this,arguments);this.setCompare(this.options.compare)};n.setCompare=function(a){this.modifyValue= +"value"===a||"percent"===a?function(b,c){var d=this.compareValue;if(void 0!==b&&void 0!==d)return b="value"===a?b-d:b=b/d*100-100,c&&(c.change=b),b}:null;this.userOptions.compare=a;this.chart.hasRendered&&(this.isDirty=!0)};n.processData=function(){var a,b=-1,c,d,e,f;x.apply(this,arguments);if(this.xAxis&&this.processedYData)for(c=this.processedXData,d=this.processedYData,e=d.length,this.pointArrayMap&&(b=t("close",this.pointArrayMap),-1===b&&(b=t(this.pointValKey||"y",this.pointArrayMap))),a=0;a< +e-1;a++)if(f=-1=this.xAxis.min&&0!==f){this.compareValue=f;break}};F(n,"getExtremes",function(a){var b;a.apply(this,[].slice.call(arguments,1));this.modifyValue&&(b=[this.modifyValue(this.dataMin),this.modifyValue(this.dataMax)],this.dataMin=B(b),this.dataMax=D(b))});G.prototype.setCompare=function(a,b){this.isXAxis||(l(this.series,function(b){b.setCompare(a)}),h(b,!0)&&this.chart.redraw())};C.prototype.tooltipFormatter=function(b){b=b.replace("{point.change}",(0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=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))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(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&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(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&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(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 ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);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&&E){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=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(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(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===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]||se.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]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(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(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(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=se.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 D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.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 S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(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 qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.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)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.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),m(t)&&(t=t.call(e,n,S.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):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.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"===S.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"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(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)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(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?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.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)}}),S.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){S.fn[n]=function(e,t){return 0 '; + else + var expandButton = ''; + + return '' + expandButton + '' + ellipsedLabel({ name: item.name, parentClass: "nav-tooltip", childClass: "nav-label" }) + ''; +} + +function menuItemsForGroup(group, level, parent) { + var items = ''; + + if (level > 0) + items += menuItem(group, level - 1, parent, true); + + $.each(group.contents, function (contentName, content) { + if (content.type == 'GROUP') + items += menuItemsForGroup(content, level + 1, group.pathFormatted); + else if (content.type == 'REQUEST') + items += menuItem(content, level, group.pathFormatted); + }); + + return items; +} + +function setDetailsMenu(){ + $('.nav ul').append(menuItemsForGroup(stats, 0)); + $('.nav').expandable(); + $('.nav-tooltip').popover({trigger:'hover'}); +} + +function setGlobalMenu(){ + $('.nav ul') + .append('
  • Ranges
  • ') + .append('
  • Stats
  • ') + .append('
  • Active Users
  • ') + .append('
  • Requests / sec
  • ') + .append('
  • Responses / sec
  • '); +} + +function getLink(link){ + var a = link.split('/'); + return (a.length<=1)? link : a[a.length-1]; +} + +function expandUp(li) { + const parentId = li.attr("data-parent"); + if (parentId != "ROOT") { + const span = $('#' + parentId); + const parentLi = span.parents('li').first(); + span.expand(parentLi, false); + expandUp(parentLi); + } +} + +function setActiveMenu(){ + $('.nav a').each(function() { + const navA = $(this) + if(!navA.hasClass('expand-button') && navA.attr('href') == getLink(window.location.pathname)) { + const li = $(this).parents('li').first(); + li.addClass('on'); + expandUp(li); + return false; + } + }); +} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/stats.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/stats.js new file mode 100644 index 0000000..eb6c9c4 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/stats.js @@ -0,0 +1,1523 @@ +var stats = { + type: "GROUP", +name: "All Requests", +path: "", +pathFormatted: "group_missing-name--1146707516", +stats: { + "name": "All Requests", + "numberOfRequests": { + "total": "23655", + "ok": "22047", + "ko": "1608" + }, + "minResponseTime": { + "total": "24", + "ok": "24", + "ko": "7563" + }, + "maxResponseTime": { + "total": "60094", + "ok": "59563", + "ko": "60094" + }, + "meanResponseTime": { + "total": "5157", + "ok": "3073", + "ko": "33726" + }, + "standardDeviation": { + "total": "13172", + "ok": "8765", + "ko": "24969" + }, + "percentiles1": { + "total": "128", + "ok": "125", + "ko": "10008" + }, + "percentiles2": { + "total": "1139", + "ok": "1096", + "ko": "60002" + }, + "percentiles3": { + "total": "40980", + "ok": "17282", + "ko": "60006" + }, + "percentiles4": { + "total": "60003", + "ok": "49342", + "ko": "60010" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 14299, + "percentage": 60 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 4006, + "percentage": 17 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 3742, + "percentage": 16 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 1608, + "percentage": 7 +}, + "meanNumberOfRequestsPerSecond": { + "total": "113.726", + "ok": "105.995", + "ko": "7.731" + } +}, +contents: { +"req_request-0-693933696": { + type: "REQUEST", + name: "request_0", +path: "request_0", +pathFormatted: "req_request-0-693933696", +stats: { + "name": "request_0", + "numberOfRequests": { + "total": "1440", + "ok": "1282", + "ko": "158" + }, + "minResponseTime": { + "total": "73", + "ok": "73", + "ko": "10000" + }, + "maxResponseTime": { + "total": "10014", + "ok": "8158", + "ko": "10014" + }, + "meanResponseTime": { + "total": "1949", + "ok": "957", + "ko": "10003" + }, + "standardDeviation": { + "total": "3206", + "ok": "1601", + "ko": "3" + }, + "percentiles1": { + "total": "181", + "ok": "156", + "ko": "10002" + }, + "percentiles2": { + "total": "1178", + "ok": "1139", + "ko": "10004" + }, + "percentiles3": { + "total": "10002", + "ok": "3196", + "ko": "10008" + }, + "percentiles4": { + "total": "10006", + "ok": "7165", + "ko": "10012" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 805, + "percentage": 56 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 290, + "percentage": 20 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 187, + "percentage": 13 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 158, + "percentage": 11 +}, + "meanNumberOfRequestsPerSecond": { + "total": "6.923", + "ok": "6.163", + "ko": "0.76" + } +} + },"req_request-1-693933697": { + type: "REQUEST", + name: "request_1", +path: "request_1", +pathFormatted: "req_request-1-693933697", +stats: { + "name": "request_1", + "numberOfRequests": { + "total": "1282", + "ok": "1282", + "ko": "0" + }, + "minResponseTime": { + "total": "36", + "ok": "36", + "ko": "-" + }, + "maxResponseTime": { + "total": "890", + "ok": "890", + "ko": "-" + }, + "meanResponseTime": { + "total": "68", + "ok": "68", + "ko": "-" + }, + "standardDeviation": { + "total": "41", + "ok": "41", + "ko": "-" + }, + "percentiles1": { + "total": "64", + "ok": "64", + "ko": "-" + }, + "percentiles2": { + "total": "66", + "ok": "66", + "ko": "-" + }, + "percentiles3": { + "total": "101", + "ok": "101", + "ko": "-" + }, + "percentiles4": { + "total": "183", + "ok": "183", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 1281, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 1, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "6.163", + "ok": "6.163", + "ko": "-" + } +} + },"req_request-2-693933698": { + type: "REQUEST", + name: "request_2", +path: "request_2", +pathFormatted: "req_request-2-693933698", +stats: { + "name": "request_2", + "numberOfRequests": { + "total": "1282", + "ok": "1155", + "ko": "127" + }, + "minResponseTime": { + "total": "73", + "ok": "73", + "ko": "10000" + }, + "maxResponseTime": { + "total": "10011", + "ok": "8138", + "ko": "10011" + }, + "meanResponseTime": { + "total": "1721", + "ok": "810", + "ko": "10003" + }, + "standardDeviation": { + "total": "3065", + "ok": "1433", + "ko": "2" + }, + "percentiles1": { + "total": "168", + "ok": "149", + "ko": "10002" + }, + "percentiles2": { + "total": "1145", + "ok": "1135", + "ko": "10004" + }, + "percentiles3": { + "total": "10002", + "ok": "3155", + "ko": "10007" + }, + "percentiles4": { + "total": "10006", + "ok": "7165", + "ko": "10010" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 764, + "percentage": 60 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 268, + "percentage": 21 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 123, + "percentage": 10 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 127, + "percentage": 10 +}, + "meanNumberOfRequestsPerSecond": { + "total": "6.163", + "ok": "5.553", + "ko": "0.611" + } +} + },"req_request-3-693933699": { + type: "REQUEST", + name: "request_3", +path: "request_3", +pathFormatted: "req_request-3-693933699", +stats: { + "name": "request_3", + "numberOfRequests": { + "total": "1440", + "ok": "1271", + "ko": "169" + }, + "minResponseTime": { + "total": "73", + "ok": "73", + "ko": "10000" + }, + "maxResponseTime": { + "total": "10011", + "ok": "7422", + "ko": "10011" + }, + "meanResponseTime": { + "total": "2105", + "ok": "1055", + "ko": "10003" + }, + "standardDeviation": { + "total": "3369", + "ok": "1861", + "ko": "2" + }, + "percentiles1": { + "total": "132", + "ok": "131", + "ko": "10002" + }, + "percentiles2": { + "total": "2150", + "ok": "1134", + "ko": "10004" + }, + "percentiles3": { + "total": "10002", + "ok": "7144", + "ko": "10008" + }, + "percentiles4": { + "total": "10007", + "ok": "7159", + "ko": "10010" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 837, + "percentage": 58 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 235, + "percentage": 16 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 199, + "percentage": 14 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 169, + "percentage": 12 +}, + "meanNumberOfRequestsPerSecond": { + "total": "6.923", + "ok": "6.111", + "ko": "0.812" + } +} + },"req_request-5-693933701": { + type: "REQUEST", + name: "request_5", +path: "request_5", +pathFormatted: "req_request-5-693933701", +stats: { + "name": "request_5", + "numberOfRequests": { + "total": "1271", + "ok": "1064", + "ko": "207" + }, + "minResponseTime": { + "total": "611", + "ok": "611", + "ko": "10000" + }, + "maxResponseTime": { + "total": "60010", + "ok": "59455", + "ko": "60010" + }, + "meanResponseTime": { + "total": "24664", + "ok": "24650", + "ko": "24737" + }, + "standardDeviation": { + "total": "14964", + "ok": "12899", + "ko": "22795" + }, + "percentiles1": { + "total": "22958", + "ok": "24678", + "ko": "10003" + }, + "percentiles2": { + "total": "33894", + "ok": "33524", + "ko": "60000" + }, + "percentiles3": { + "total": "58279", + "ok": "47741", + "ko": "60004" + }, + "percentiles4": { + "total": "60003", + "ok": "56293", + "ko": "60008" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 2, + "percentage": 0 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 6, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 1056, + "percentage": 83 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 207, + "percentage": 16 +}, + "meanNumberOfRequestsPerSecond": { + "total": "6.111", + "ok": "5.115", + "ko": "0.995" + } +} + },"req_request-6-693933702": { + type: "REQUEST", + name: "request_6", +path: "request_6", +pathFormatted: "req_request-6-693933702", +stats: { + "name": "request_6", + "numberOfRequests": { + "total": "1271", + "ok": "393", + "ko": "878" + }, + "minResponseTime": { + "total": "1628", + "ok": "1628", + "ko": "10000" + }, + "maxResponseTime": { + "total": "60094", + "ok": "59563", + "ko": "60094" + }, + "meanResponseTime": { + "total": "49013", + "ok": "46855", + "ko": "49980" + }, + "standardDeviation": { + "total": "17435", + "ok": "9009", + "ko": "20017" + }, + "percentiles1": { + "total": "60000", + "ok": "48191", + "ko": "60001" + }, + "percentiles2": { + "total": "60002", + "ok": "53332", + "ko": "60003" + }, + "percentiles3": { + "total": "60006", + "ok": "58249", + "ko": "60007" + }, + "percentiles4": { + "total": "60010", + "ok": "59169", + "ko": "60011" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 0, + "percentage": 0 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 393, + "percentage": 31 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 878, + "percentage": 69 +}, + "meanNumberOfRequestsPerSecond": { + "total": "6.111", + "ok": "1.889", + "ko": "4.221" + } +} + },"req_request-4-693933700": { + type: "REQUEST", + name: "request_4", +path: "request_4", +pathFormatted: "req_request-4-693933700", +stats: { + "name": "request_4", + "numberOfRequests": { + "total": "1271", + "ok": "1271", + "ko": "0" + }, + "minResponseTime": { + "total": "477", + "ok": "477", + "ko": "-" + }, + "maxResponseTime": { + "total": "15111", + "ok": "15111", + "ko": "-" + }, + "meanResponseTime": { + "total": "10399", + "ok": "10399", + "ko": "-" + }, + "standardDeviation": { + "total": "3665", + "ok": "3665", + "ko": "-" + }, + "percentiles1": { + "total": "11320", + "ok": "11320", + "ko": "-" + }, + "percentiles2": { + "total": "13080", + "ok": "13080", + "ko": "-" + }, + "percentiles3": { + "total": "14687", + "ok": "14687", + "ko": "-" + }, + "percentiles4": { + "total": "14961", + "ok": "14961", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 5, + "percentage": 0 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 18, + "percentage": 1 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 1248, + "percentage": 98 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "6.111", + "ok": "6.111", + "ko": "-" + } +} + },"req_request-7-693933703": { + type: "REQUEST", + name: "request_7", +path: "request_7", +pathFormatted: "req_request-7-693933703", +stats: { + "name": "request_7", + "numberOfRequests": { + "total": "1440", + "ok": "1388", + "ko": "52" + }, + "minResponseTime": { + "total": "57", + "ok": "57", + "ko": "10000" + }, + "maxResponseTime": { + "total": "10010", + "ok": "7568", + "ko": "10010" + }, + "meanResponseTime": { + "total": "1150", + "ok": "818", + "ko": "10003" + }, + "standardDeviation": { + "total": "2170", + "ok": "1356", + "ko": "2" + }, + "percentiles1": { + "total": "135", + "ok": "134", + "ko": "10002" + }, + "percentiles2": { + "total": "1136", + "ok": "1134", + "ko": "10004" + }, + "percentiles3": { + "total": "7157", + "ok": "3148", + "ko": "10007" + }, + "percentiles4": { + "total": "10004", + "ok": "7160", + "ko": "10009" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 855, + "percentage": 59 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 379, + "percentage": 26 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 154, + "percentage": 11 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 52, + "percentage": 4 +}, + "meanNumberOfRequestsPerSecond": { + "total": "6.923", + "ok": "6.673", + "ko": "0.25" + } +} + },"req_request-8-693933704": { + type: "REQUEST", + name: "request_8", +path: "request_8", +pathFormatted: "req_request-8-693933704", +stats: { + "name": "request_8", + "numberOfRequests": { + "total": "1440", + "ok": "1438", + "ko": "2" + }, + "minResponseTime": { + "total": "73", + "ok": "73", + "ko": "10004" + }, + "maxResponseTime": { + "total": "10007", + "ok": "7437", + "ko": "10007" + }, + "meanResponseTime": { + "total": "538", + "ok": "525", + "ko": "10006" + }, + "standardDeviation": { + "total": "734", + "ok": "644", + "ko": "2" + }, + "percentiles1": { + "total": "130", + "ok": "130", + "ko": "10006" + }, + "percentiles2": { + "total": "1087", + "ok": "1087", + "ko": "10006" + }, + "percentiles3": { + "total": "1138", + "ok": "1138", + "ko": "10007" + }, + "percentiles4": { + "total": "3090", + "ok": "2736", + "ko": "10007" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 884, + "percentage": 61 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 534, + "percentage": 37 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 20, + "percentage": 1 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 2, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "6.923", + "ok": "6.913", + "ko": "0.01" + } +} + },"req_request-9-693933705": { + type: "REQUEST", + name: "request_9", +path: "request_9", +pathFormatted: "req_request-9-693933705", +stats: { + "name": "request_9", + "numberOfRequests": { + "total": "1440", + "ok": "1433", + "ko": "7" + }, + "minResponseTime": { + "total": "73", + "ok": "73", + "ko": "10001" + }, + "maxResponseTime": { + "total": "10580", + "ok": "10580", + "ko": "10014" + }, + "meanResponseTime": { + "total": "621", + "ok": "575", + "ko": "10005" + }, + "standardDeviation": { + "total": "1201", + "ok": "1008", + "ko": "4" + }, + "percentiles1": { + "total": "129", + "ok": "129", + "ko": "10003" + }, + "percentiles2": { + "total": "1086", + "ok": "1086", + "ko": "10006" + }, + "percentiles3": { + "total": "1140", + "ok": "1140", + "ko": "10013" + }, + "percentiles4": { + "total": "9390", + "ok": "5834", + "ko": "10014" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 895, + "percentage": 62 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 499, + "percentage": 35 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 39, + "percentage": 3 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 7, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "6.923", + "ok": "6.889", + "ko": "0.034" + } +} + },"req_request-10-37108175": { + type: "REQUEST", + name: "request_10", +path: "request_10", +pathFormatted: "req_request-10-37108175", +stats: { + "name": "request_10", + "numberOfRequests": { + "total": "1440", + "ok": "1440", + "ko": "0" + }, + "minResponseTime": { + "total": "74", + "ok": "74", + "ko": "-" + }, + "maxResponseTime": { + "total": "10923", + "ok": "10923", + "ko": "-" + }, + "meanResponseTime": { + "total": "685", + "ok": "685", + "ko": "-" + }, + "standardDeviation": { + "total": "1031", + "ok": "1031", + "ko": "-" + }, + "percentiles1": { + "total": "133", + "ok": "133", + "ko": "-" + }, + "percentiles2": { + "total": "1089", + "ok": "1089", + "ko": "-" + }, + "percentiles3": { + "total": "1406", + "ok": "1406", + "ko": "-" + }, + "percentiles4": { + "total": "3284", + "ok": "3284", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 814, + "percentage": 57 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 503, + "percentage": 35 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 123, + "percentage": 9 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "6.923", + "ok": "6.923", + "ko": "-" + } +} + },"req_request-11-37108176": { + type: "REQUEST", + name: "request_11", +path: "request_11", +pathFormatted: "req_request-11-37108176", +stats: { + "name": "request_11", + "numberOfRequests": { + "total": "1440", + "ok": "1440", + "ko": "0" + }, + "minResponseTime": { + "total": "37", + "ok": "37", + "ko": "-" + }, + "maxResponseTime": { + "total": "9865", + "ok": "9865", + "ko": "-" + }, + "meanResponseTime": { + "total": "67", + "ok": "67", + "ko": "-" + }, + "standardDeviation": { + "total": "362", + "ok": "362", + "ko": "-" + }, + "percentiles1": { + "total": "41", + "ok": "41", + "ko": "-" + }, + "percentiles2": { + "total": "64", + "ok": "64", + "ko": "-" + }, + "percentiles3": { + "total": "102", + "ok": "102", + "ko": "-" + }, + "percentiles4": { + "total": "130", + "ok": "130", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 1437, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 3, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "6.923", + "ok": "6.923", + "ko": "-" + } +} + },"req_request-12-37108177": { + type: "REQUEST", + name: "request_12", +path: "request_12", +pathFormatted: "req_request-12-37108177", +stats: { + "name": "request_12", + "numberOfRequests": { + "total": "1440", + "ok": "1438", + "ko": "2" + }, + "minResponseTime": { + "total": "24", + "ok": "24", + "ko": "7563" + }, + "maxResponseTime": { + "total": "12361", + "ok": "12361", + "ko": "9067" + }, + "meanResponseTime": { + "total": "349", + "ok": "337", + "ko": "8315" + }, + "standardDeviation": { + "total": "1413", + "ok": "1382", + "ko": "752" + }, + "percentiles1": { + "total": "32", + "ok": "32", + "ko": "8315" + }, + "percentiles2": { + "total": "74", + "ok": "74", + "ko": "8691" + }, + "percentiles3": { + "total": "1040", + "ok": "1039", + "ko": "8992" + }, + "percentiles4": { + "total": "9904", + "ok": "9907", + "ko": "9052" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 1283, + "percentage": 89 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 109, + "percentage": 8 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 46, + "percentage": 3 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 2, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "6.923", + "ok": "6.913", + "ko": "0.01" + } +} + },"req_request-14-37108179": { + type: "REQUEST", + name: "request_14", +path: "request_14", +pathFormatted: "req_request-14-37108179", +stats: { + "name": "request_14", + "numberOfRequests": { + "total": "1440", + "ok": "1438", + "ko": "2" + }, + "minResponseTime": { + "total": "35", + "ok": "35", + "ko": "10005" + }, + "maxResponseTime": { + "total": "10006", + "ok": "8551", + "ko": "10006" + }, + "meanResponseTime": { + "total": "115", + "ok": "101", + "ko": "10006" + }, + "standardDeviation": { + "total": "489", + "ok": "321", + "ko": "1" + }, + "percentiles1": { + "total": "39", + "ok": "39", + "ko": "10006" + }, + "percentiles2": { + "total": "59", + "ok": "59", + "ko": "10006" + }, + "percentiles3": { + "total": "184", + "ok": "166", + "ko": "10006" + }, + "percentiles4": { + "total": "1094", + "ok": "1094", + "ko": "10006" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 1371, + "percentage": 95 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 65, + "percentage": 5 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 2, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 2, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "6.923", + "ok": "6.913", + "ko": "0.01" + } +} + },"req_request-15-37108180": { + type: "REQUEST", + name: "request_15", +path: "request_15", +pathFormatted: "req_request-15-37108180", +stats: { + "name": "request_15", + "numberOfRequests": { + "total": "1438", + "ok": "1438", + "ko": "0" + }, + "minResponseTime": { + "total": "37", + "ok": "37", + "ko": "-" + }, + "maxResponseTime": { + "total": "537", + "ok": "537", + "ko": "-" + }, + "meanResponseTime": { + "total": "46", + "ok": "46", + "ko": "-" + }, + "standardDeviation": { + "total": "23", + "ok": "23", + "ko": "-" + }, + "percentiles1": { + "total": "41", + "ok": "41", + "ko": "-" + }, + "percentiles2": { + "total": "44", + "ok": "44", + "ko": "-" + }, + "percentiles3": { + "total": "67", + "ok": "67", + "ko": "-" + }, + "percentiles4": { + "total": "72", + "ok": "72", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 1438, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "6.913", + "ok": "6.913", + "ko": "-" + } +} + },"req_request-16-37108181": { + type: "REQUEST", + name: "request_16", +path: "request_16", +pathFormatted: "req_request-16-37108181", +stats: { + "name": "request_16", + "numberOfRequests": { + "total": "1440", + "ok": "1440", + "ko": "0" + }, + "minResponseTime": { + "total": "73", + "ok": "73", + "ko": "-" + }, + "maxResponseTime": { + "total": "10020", + "ok": "10020", + "ko": "-" + }, + "meanResponseTime": { + "total": "589", + "ok": "589", + "ko": "-" + }, + "standardDeviation": { + "total": "790", + "ok": "790", + "ko": "-" + }, + "percentiles1": { + "total": "117", + "ok": "117", + "ko": "-" + }, + "percentiles2": { + "total": "1086", + "ok": "1086", + "ko": "-" + }, + "percentiles3": { + "total": "1137", + "ok": "1137", + "ko": "-" + }, + "percentiles4": { + "total": "3141", + "ok": "3141", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 819, + "percentage": 57 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 562, + "percentage": 39 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 59, + "percentage": 4 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "6.923", + "ok": "6.923", + "ko": "-" + } +} + },"req_request-17-37108182": { + type: "REQUEST", + name: "request_17", +path: "request_17", +pathFormatted: "req_request-17-37108182", +stats: { + "name": "request_17", + "numberOfRequests": { + "total": "1440", + "ok": "1436", + "ko": "4" + }, + "minResponseTime": { + "total": "73", + "ok": "73", + "ko": "10004" + }, + "maxResponseTime": { + "total": "10359", + "ok": "10359", + "ko": "10038" + }, + "meanResponseTime": { + "total": "699", + "ok": "673", + "ko": "10023" + }, + "standardDeviation": { + "total": "1198", + "ok": "1094", + "ko": "15" + }, + "percentiles1": { + "total": "89", + "ok": "89", + "ko": "10024" + }, + "percentiles2": { + "total": "1086", + "ok": "1086", + "ko": "10037" + }, + "percentiles3": { + "total": "1371", + "ok": "1349", + "ko": "10038" + }, + "percentiles4": { + "total": "7814", + "ok": "7050", + "ko": "10038" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 809, + "percentage": 56 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 537, + "percentage": 37 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 90, + "percentage": 6 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 4, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "6.923", + "ok": "6.904", + "ko": "0.019" + } +} + } +} + +} + +function fillStats(stat){ + $("#numberOfRequests").append(stat.numberOfRequests.total); + $("#numberOfRequestsOK").append(stat.numberOfRequests.ok); + $("#numberOfRequestsKO").append(stat.numberOfRequests.ko); + + $("#minResponseTime").append(stat.minResponseTime.total); + $("#minResponseTimeOK").append(stat.minResponseTime.ok); + $("#minResponseTimeKO").append(stat.minResponseTime.ko); + + $("#maxResponseTime").append(stat.maxResponseTime.total); + $("#maxResponseTimeOK").append(stat.maxResponseTime.ok); + $("#maxResponseTimeKO").append(stat.maxResponseTime.ko); + + $("#meanResponseTime").append(stat.meanResponseTime.total); + $("#meanResponseTimeOK").append(stat.meanResponseTime.ok); + $("#meanResponseTimeKO").append(stat.meanResponseTime.ko); + + $("#standardDeviation").append(stat.standardDeviation.total); + $("#standardDeviationOK").append(stat.standardDeviation.ok); + $("#standardDeviationKO").append(stat.standardDeviation.ko); + + $("#percentiles1").append(stat.percentiles1.total); + $("#percentiles1OK").append(stat.percentiles1.ok); + $("#percentiles1KO").append(stat.percentiles1.ko); + + $("#percentiles2").append(stat.percentiles2.total); + $("#percentiles2OK").append(stat.percentiles2.ok); + $("#percentiles2KO").append(stat.percentiles2.ko); + + $("#percentiles3").append(stat.percentiles3.total); + $("#percentiles3OK").append(stat.percentiles3.ok); + $("#percentiles3KO").append(stat.percentiles3.ko); + + $("#percentiles4").append(stat.percentiles4.total); + $("#percentiles4OK").append(stat.percentiles4.ok); + $("#percentiles4KO").append(stat.percentiles4.ko); + + $("#meanNumberOfRequestsPerSecond").append(stat.meanNumberOfRequestsPerSecond.total); + $("#meanNumberOfRequestsPerSecondOK").append(stat.meanNumberOfRequestsPerSecond.ok); + $("#meanNumberOfRequestsPerSecondKO").append(stat.meanNumberOfRequestsPerSecond.ko); +} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/stats.json b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/stats.json new file mode 100644 index 0000000..2757d79 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/stats.json @@ -0,0 +1,1481 @@ +{ + "type": "GROUP", +"name": "All Requests", +"path": "", +"pathFormatted": "group_missing-name--1146707516", +"stats": { + "name": "All Requests", + "numberOfRequests": { + "total": 23655, + "ok": 22047, + "ko": 1608 + }, + "minResponseTime": { + "total": 24, + "ok": 24, + "ko": 7563 + }, + "maxResponseTime": { + "total": 60094, + "ok": 59563, + "ko": 60094 + }, + "meanResponseTime": { + "total": 5157, + "ok": 3073, + "ko": 33726 + }, + "standardDeviation": { + "total": 13172, + "ok": 8765, + "ko": 24969 + }, + "percentiles1": { + "total": 128, + "ok": 125, + "ko": 10008 + }, + "percentiles2": { + "total": 1139, + "ok": 1096, + "ko": 60002 + }, + "percentiles3": { + "total": 40980, + "ok": 17282, + "ko": 60006 + }, + "percentiles4": { + "total": 60003, + "ok": 49342, + "ko": 60010 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 14299, + "percentage": 60 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 4006, + "percentage": 17 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 3742, + "percentage": 16 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 1608, + "percentage": 7 +}, + "meanNumberOfRequestsPerSecond": { + "total": 113.72596153846153, + "ok": 105.9951923076923, + "ko": 7.730769230769231 + } +}, +"contents": { +"req_request-0-693933696": { + "type": "REQUEST", + "name": "request_0", +"path": "request_0", +"pathFormatted": "req_request-0-693933696", +"stats": { + "name": "request_0", + "numberOfRequests": { + "total": 1440, + "ok": 1282, + "ko": 158 + }, + "minResponseTime": { + "total": 73, + "ok": 73, + "ko": 10000 + }, + "maxResponseTime": { + "total": 10014, + "ok": 8158, + "ko": 10014 + }, + "meanResponseTime": { + "total": 1949, + "ok": 957, + "ko": 10003 + }, + "standardDeviation": { + "total": 3206, + "ok": 1601, + "ko": 3 + }, + "percentiles1": { + "total": 181, + "ok": 156, + "ko": 10002 + }, + "percentiles2": { + "total": 1178, + "ok": 1139, + "ko": 10004 + }, + "percentiles3": { + "total": 10002, + "ok": 3196, + "ko": 10008 + }, + "percentiles4": { + "total": 10006, + "ok": 7165, + "ko": 10012 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 805, + "percentage": 56 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 290, + "percentage": 20 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 187, + "percentage": 13 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 158, + "percentage": 11 +}, + "meanNumberOfRequestsPerSecond": { + "total": 6.923076923076923, + "ok": 6.163461538461538, + "ko": 0.7596153846153846 + } +} + },"req_request-1-693933697": { + "type": "REQUEST", + "name": "request_1", +"path": "request_1", +"pathFormatted": "req_request-1-693933697", +"stats": { + "name": "request_1", + "numberOfRequests": { + "total": 1282, + "ok": 1282, + "ko": 0 + }, + "minResponseTime": { + "total": 36, + "ok": 36, + "ko": 0 + }, + "maxResponseTime": { + "total": 890, + "ok": 890, + "ko": 0 + }, + "meanResponseTime": { + "total": 68, + "ok": 68, + "ko": 0 + }, + "standardDeviation": { + "total": 41, + "ok": 41, + "ko": 0 + }, + "percentiles1": { + "total": 64, + "ok": 64, + "ko": 0 + }, + "percentiles2": { + "total": 66, + "ok": 66, + "ko": 0 + }, + "percentiles3": { + "total": 101, + "ok": 101, + "ko": 0 + }, + "percentiles4": { + "total": 183, + "ok": 183, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 1281, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 1, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 6.163461538461538, + "ok": 6.163461538461538, + "ko": 0 + } +} + },"req_request-2-693933698": { + "type": "REQUEST", + "name": "request_2", +"path": "request_2", +"pathFormatted": "req_request-2-693933698", +"stats": { + "name": "request_2", + "numberOfRequests": { + "total": 1282, + "ok": 1155, + "ko": 127 + }, + "minResponseTime": { + "total": 73, + "ok": 73, + "ko": 10000 + }, + "maxResponseTime": { + "total": 10011, + "ok": 8138, + "ko": 10011 + }, + "meanResponseTime": { + "total": 1721, + "ok": 810, + "ko": 10003 + }, + "standardDeviation": { + "total": 3065, + "ok": 1433, + "ko": 2 + }, + "percentiles1": { + "total": 168, + "ok": 149, + "ko": 10002 + }, + "percentiles2": { + "total": 1145, + "ok": 1135, + "ko": 10004 + }, + "percentiles3": { + "total": 10002, + "ok": 3155, + "ko": 10007 + }, + "percentiles4": { + "total": 10006, + "ok": 7165, + "ko": 10010 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 764, + "percentage": 60 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 268, + "percentage": 21 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 123, + "percentage": 10 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 127, + "percentage": 10 +}, + "meanNumberOfRequestsPerSecond": { + "total": 6.163461538461538, + "ok": 5.552884615384615, + "ko": 0.6105769230769231 + } +} + },"req_request-3-693933699": { + "type": "REQUEST", + "name": "request_3", +"path": "request_3", +"pathFormatted": "req_request-3-693933699", +"stats": { + "name": "request_3", + "numberOfRequests": { + "total": 1440, + "ok": 1271, + "ko": 169 + }, + "minResponseTime": { + "total": 73, + "ok": 73, + "ko": 10000 + }, + "maxResponseTime": { + "total": 10011, + "ok": 7422, + "ko": 10011 + }, + "meanResponseTime": { + "total": 2105, + "ok": 1055, + "ko": 10003 + }, + "standardDeviation": { + "total": 3369, + "ok": 1861, + "ko": 2 + }, + "percentiles1": { + "total": 132, + "ok": 131, + "ko": 10002 + }, + "percentiles2": { + "total": 2150, + "ok": 1134, + "ko": 10004 + }, + "percentiles3": { + "total": 10002, + "ok": 7144, + "ko": 10008 + }, + "percentiles4": { + "total": 10007, + "ok": 7159, + "ko": 10010 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 837, + "percentage": 58 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 235, + "percentage": 16 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 199, + "percentage": 14 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 169, + "percentage": 12 +}, + "meanNumberOfRequestsPerSecond": { + "total": 6.923076923076923, + "ok": 6.110576923076923, + "ko": 0.8125 + } +} + },"req_request-5-693933701": { + "type": "REQUEST", + "name": "request_5", +"path": "request_5", +"pathFormatted": "req_request-5-693933701", +"stats": { + "name": "request_5", + "numberOfRequests": { + "total": 1271, + "ok": 1064, + "ko": 207 + }, + "minResponseTime": { + "total": 611, + "ok": 611, + "ko": 10000 + }, + "maxResponseTime": { + "total": 60010, + "ok": 59455, + "ko": 60010 + }, + "meanResponseTime": { + "total": 24664, + "ok": 24650, + "ko": 24737 + }, + "standardDeviation": { + "total": 14964, + "ok": 12899, + "ko": 22795 + }, + "percentiles1": { + "total": 22958, + "ok": 24678, + "ko": 10003 + }, + "percentiles2": { + "total": 33894, + "ok": 33524, + "ko": 60000 + }, + "percentiles3": { + "total": 58279, + "ok": 47741, + "ko": 60004 + }, + "percentiles4": { + "total": 60003, + "ok": 56293, + "ko": 60008 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 2, + "percentage": 0 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 6, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 1056, + "percentage": 83 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 207, + "percentage": 16 +}, + "meanNumberOfRequestsPerSecond": { + "total": 6.110576923076923, + "ok": 5.115384615384615, + "ko": 0.9951923076923077 + } +} + },"req_request-6-693933702": { + "type": "REQUEST", + "name": "request_6", +"path": "request_6", +"pathFormatted": "req_request-6-693933702", +"stats": { + "name": "request_6", + "numberOfRequests": { + "total": 1271, + "ok": 393, + "ko": 878 + }, + "minResponseTime": { + "total": 1628, + "ok": 1628, + "ko": 10000 + }, + "maxResponseTime": { + "total": 60094, + "ok": 59563, + "ko": 60094 + }, + "meanResponseTime": { + "total": 49013, + "ok": 46855, + "ko": 49980 + }, + "standardDeviation": { + "total": 17435, + "ok": 9009, + "ko": 20017 + }, + "percentiles1": { + "total": 60000, + "ok": 48191, + "ko": 60001 + }, + "percentiles2": { + "total": 60002, + "ok": 53332, + "ko": 60003 + }, + "percentiles3": { + "total": 60006, + "ok": 58249, + "ko": 60007 + }, + "percentiles4": { + "total": 60010, + "ok": 59169, + "ko": 60011 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 0, + "percentage": 0 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 393, + "percentage": 31 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 878, + "percentage": 69 +}, + "meanNumberOfRequestsPerSecond": { + "total": 6.110576923076923, + "ok": 1.8894230769230769, + "ko": 4.221153846153846 + } +} + },"req_request-4-693933700": { + "type": "REQUEST", + "name": "request_4", +"path": "request_4", +"pathFormatted": "req_request-4-693933700", +"stats": { + "name": "request_4", + "numberOfRequests": { + "total": 1271, + "ok": 1271, + "ko": 0 + }, + "minResponseTime": { + "total": 477, + "ok": 477, + "ko": 0 + }, + "maxResponseTime": { + "total": 15111, + "ok": 15111, + "ko": 0 + }, + "meanResponseTime": { + "total": 10399, + "ok": 10399, + "ko": 0 + }, + "standardDeviation": { + "total": 3665, + "ok": 3665, + "ko": 0 + }, + "percentiles1": { + "total": 11320, + "ok": 11320, + "ko": 0 + }, + "percentiles2": { + "total": 13080, + "ok": 13080, + "ko": 0 + }, + "percentiles3": { + "total": 14687, + "ok": 14687, + "ko": 0 + }, + "percentiles4": { + "total": 14961, + "ok": 14961, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 5, + "percentage": 0 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 18, + "percentage": 1 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 1248, + "percentage": 98 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 6.110576923076923, + "ok": 6.110576923076923, + "ko": 0 + } +} + },"req_request-7-693933703": { + "type": "REQUEST", + "name": "request_7", +"path": "request_7", +"pathFormatted": "req_request-7-693933703", +"stats": { + "name": "request_7", + "numberOfRequests": { + "total": 1440, + "ok": 1388, + "ko": 52 + }, + "minResponseTime": { + "total": 57, + "ok": 57, + "ko": 10000 + }, + "maxResponseTime": { + "total": 10010, + "ok": 7568, + "ko": 10010 + }, + "meanResponseTime": { + "total": 1150, + "ok": 818, + "ko": 10003 + }, + "standardDeviation": { + "total": 2170, + "ok": 1356, + "ko": 2 + }, + "percentiles1": { + "total": 135, + "ok": 134, + "ko": 10002 + }, + "percentiles2": { + "total": 1136, + "ok": 1134, + "ko": 10004 + }, + "percentiles3": { + "total": 7157, + "ok": 3148, + "ko": 10007 + }, + "percentiles4": { + "total": 10004, + "ok": 7160, + "ko": 10009 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 855, + "percentage": 59 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 379, + "percentage": 26 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 154, + "percentage": 11 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 52, + "percentage": 4 +}, + "meanNumberOfRequestsPerSecond": { + "total": 6.923076923076923, + "ok": 6.673076923076923, + "ko": 0.25 + } +} + },"req_request-8-693933704": { + "type": "REQUEST", + "name": "request_8", +"path": "request_8", +"pathFormatted": "req_request-8-693933704", +"stats": { + "name": "request_8", + "numberOfRequests": { + "total": 1440, + "ok": 1438, + "ko": 2 + }, + "minResponseTime": { + "total": 73, + "ok": 73, + "ko": 10004 + }, + "maxResponseTime": { + "total": 10007, + "ok": 7437, + "ko": 10007 + }, + "meanResponseTime": { + "total": 538, + "ok": 525, + "ko": 10006 + }, + "standardDeviation": { + "total": 734, + "ok": 644, + "ko": 2 + }, + "percentiles1": { + "total": 130, + "ok": 130, + "ko": 10006 + }, + "percentiles2": { + "total": 1087, + "ok": 1087, + "ko": 10006 + }, + "percentiles3": { + "total": 1138, + "ok": 1138, + "ko": 10007 + }, + "percentiles4": { + "total": 3090, + "ok": 2736, + "ko": 10007 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 884, + "percentage": 61 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 534, + "percentage": 37 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 20, + "percentage": 1 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 2, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 6.923076923076923, + "ok": 6.913461538461538, + "ko": 0.009615384615384616 + } +} + },"req_request-9-693933705": { + "type": "REQUEST", + "name": "request_9", +"path": "request_9", +"pathFormatted": "req_request-9-693933705", +"stats": { + "name": "request_9", + "numberOfRequests": { + "total": 1440, + "ok": 1433, + "ko": 7 + }, + "minResponseTime": { + "total": 73, + "ok": 73, + "ko": 10001 + }, + "maxResponseTime": { + "total": 10580, + "ok": 10580, + "ko": 10014 + }, + "meanResponseTime": { + "total": 621, + "ok": 575, + "ko": 10005 + }, + "standardDeviation": { + "total": 1201, + "ok": 1008, + "ko": 4 + }, + "percentiles1": { + "total": 129, + "ok": 129, + "ko": 10003 + }, + "percentiles2": { + "total": 1086, + "ok": 1086, + "ko": 10006 + }, + "percentiles3": { + "total": 1140, + "ok": 1140, + "ko": 10013 + }, + "percentiles4": { + "total": 9390, + "ok": 5834, + "ko": 10014 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 895, + "percentage": 62 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 499, + "percentage": 35 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 39, + "percentage": 3 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 7, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 6.923076923076923, + "ok": 6.889423076923077, + "ko": 0.03365384615384615 + } +} + },"req_request-10-37108175": { + "type": "REQUEST", + "name": "request_10", +"path": "request_10", +"pathFormatted": "req_request-10-37108175", +"stats": { + "name": "request_10", + "numberOfRequests": { + "total": 1440, + "ok": 1440, + "ko": 0 + }, + "minResponseTime": { + "total": 74, + "ok": 74, + "ko": 0 + }, + "maxResponseTime": { + "total": 10923, + "ok": 10923, + "ko": 0 + }, + "meanResponseTime": { + "total": 685, + "ok": 685, + "ko": 0 + }, + "standardDeviation": { + "total": 1031, + "ok": 1031, + "ko": 0 + }, + "percentiles1": { + "total": 133, + "ok": 133, + "ko": 0 + }, + "percentiles2": { + "total": 1089, + "ok": 1089, + "ko": 0 + }, + "percentiles3": { + "total": 1406, + "ok": 1406, + "ko": 0 + }, + "percentiles4": { + "total": 3284, + "ok": 3284, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 814, + "percentage": 57 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 503, + "percentage": 35 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 123, + "percentage": 9 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 6.923076923076923, + "ok": 6.923076923076923, + "ko": 0 + } +} + },"req_request-11-37108176": { + "type": "REQUEST", + "name": "request_11", +"path": "request_11", +"pathFormatted": "req_request-11-37108176", +"stats": { + "name": "request_11", + "numberOfRequests": { + "total": 1440, + "ok": 1440, + "ko": 0 + }, + "minResponseTime": { + "total": 37, + "ok": 37, + "ko": 0 + }, + "maxResponseTime": { + "total": 9865, + "ok": 9865, + "ko": 0 + }, + "meanResponseTime": { + "total": 67, + "ok": 67, + "ko": 0 + }, + "standardDeviation": { + "total": 362, + "ok": 362, + "ko": 0 + }, + "percentiles1": { + "total": 41, + "ok": 41, + "ko": 0 + }, + "percentiles2": { + "total": 64, + "ok": 64, + "ko": 0 + }, + "percentiles3": { + "total": 102, + "ok": 102, + "ko": 0 + }, + "percentiles4": { + "total": 130, + "ok": 130, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 1437, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 3, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 6.923076923076923, + "ok": 6.923076923076923, + "ko": 0 + } +} + },"req_request-12-37108177": { + "type": "REQUEST", + "name": "request_12", +"path": "request_12", +"pathFormatted": "req_request-12-37108177", +"stats": { + "name": "request_12", + "numberOfRequests": { + "total": 1440, + "ok": 1438, + "ko": 2 + }, + "minResponseTime": { + "total": 24, + "ok": 24, + "ko": 7563 + }, + "maxResponseTime": { + "total": 12361, + "ok": 12361, + "ko": 9067 + }, + "meanResponseTime": { + "total": 349, + "ok": 337, + "ko": 8315 + }, + "standardDeviation": { + "total": 1413, + "ok": 1382, + "ko": 752 + }, + "percentiles1": { + "total": 32, + "ok": 32, + "ko": 8315 + }, + "percentiles2": { + "total": 74, + "ok": 74, + "ko": 8691 + }, + "percentiles3": { + "total": 1040, + "ok": 1039, + "ko": 8992 + }, + "percentiles4": { + "total": 9904, + "ok": 9907, + "ko": 9052 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 1283, + "percentage": 89 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 109, + "percentage": 8 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 46, + "percentage": 3 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 2, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 6.923076923076923, + "ok": 6.913461538461538, + "ko": 0.009615384615384616 + } +} + },"req_request-14-37108179": { + "type": "REQUEST", + "name": "request_14", +"path": "request_14", +"pathFormatted": "req_request-14-37108179", +"stats": { + "name": "request_14", + "numberOfRequests": { + "total": 1440, + "ok": 1438, + "ko": 2 + }, + "minResponseTime": { + "total": 35, + "ok": 35, + "ko": 10005 + }, + "maxResponseTime": { + "total": 10006, + "ok": 8551, + "ko": 10006 + }, + "meanResponseTime": { + "total": 115, + "ok": 101, + "ko": 10006 + }, + "standardDeviation": { + "total": 489, + "ok": 321, + "ko": 1 + }, + "percentiles1": { + "total": 39, + "ok": 39, + "ko": 10006 + }, + "percentiles2": { + "total": 59, + "ok": 59, + "ko": 10006 + }, + "percentiles3": { + "total": 184, + "ok": 166, + "ko": 10006 + }, + "percentiles4": { + "total": 1094, + "ok": 1094, + "ko": 10006 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 1371, + "percentage": 95 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 65, + "percentage": 5 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 2, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 2, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 6.923076923076923, + "ok": 6.913461538461538, + "ko": 0.009615384615384616 + } +} + },"req_request-15-37108180": { + "type": "REQUEST", + "name": "request_15", +"path": "request_15", +"pathFormatted": "req_request-15-37108180", +"stats": { + "name": "request_15", + "numberOfRequests": { + "total": 1438, + "ok": 1438, + "ko": 0 + }, + "minResponseTime": { + "total": 37, + "ok": 37, + "ko": 0 + }, + "maxResponseTime": { + "total": 537, + "ok": 537, + "ko": 0 + }, + "meanResponseTime": { + "total": 46, + "ok": 46, + "ko": 0 + }, + "standardDeviation": { + "total": 23, + "ok": 23, + "ko": 0 + }, + "percentiles1": { + "total": 41, + "ok": 41, + "ko": 0 + }, + "percentiles2": { + "total": 44, + "ok": 44, + "ko": 0 + }, + "percentiles3": { + "total": 67, + "ok": 67, + "ko": 0 + }, + "percentiles4": { + "total": 72, + "ok": 72, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 1438, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 6.913461538461538, + "ok": 6.913461538461538, + "ko": 0 + } +} + },"req_request-16-37108181": { + "type": "REQUEST", + "name": "request_16", +"path": "request_16", +"pathFormatted": "req_request-16-37108181", +"stats": { + "name": "request_16", + "numberOfRequests": { + "total": 1440, + "ok": 1440, + "ko": 0 + }, + "minResponseTime": { + "total": 73, + "ok": 73, + "ko": 0 + }, + "maxResponseTime": { + "total": 10020, + "ok": 10020, + "ko": 0 + }, + "meanResponseTime": { + "total": 589, + "ok": 589, + "ko": 0 + }, + "standardDeviation": { + "total": 790, + "ok": 790, + "ko": 0 + }, + "percentiles1": { + "total": 117, + "ok": 117, + "ko": 0 + }, + "percentiles2": { + "total": 1086, + "ok": 1086, + "ko": 0 + }, + "percentiles3": { + "total": 1137, + "ok": 1137, + "ko": 0 + }, + "percentiles4": { + "total": 3141, + "ok": 3141, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 819, + "percentage": 57 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 562, + "percentage": 39 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 59, + "percentage": 4 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 6.923076923076923, + "ok": 6.923076923076923, + "ko": 0 + } +} + },"req_request-17-37108182": { + "type": "REQUEST", + "name": "request_17", +"path": "request_17", +"pathFormatted": "req_request-17-37108182", +"stats": { + "name": "request_17", + "numberOfRequests": { + "total": 1440, + "ok": 1436, + "ko": 4 + }, + "minResponseTime": { + "total": 73, + "ok": 73, + "ko": 10004 + }, + "maxResponseTime": { + "total": 10359, + "ok": 10359, + "ko": 10038 + }, + "meanResponseTime": { + "total": 699, + "ok": 673, + "ko": 10023 + }, + "standardDeviation": { + "total": 1198, + "ok": 1094, + "ko": 15 + }, + "percentiles1": { + "total": 89, + "ok": 89, + "ko": 10024 + }, + "percentiles2": { + "total": 1086, + "ok": 1086, + "ko": 10037 + }, + "percentiles3": { + "total": 1371, + "ok": 1349, + "ko": 10038 + }, + "percentiles4": { + "total": 7814, + "ok": 7050, + "ko": 10038 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 809, + "percentage": 56 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 537, + "percentage": 37 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 90, + "percentage": 6 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 4, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 6.923076923076923, + "ok": 6.903846153846154, + "ko": 0.019230769230769232 + } +} + } +} + +} \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/theme.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/theme.js new file mode 100644 index 0000000..b95a7b3 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/theme.js @@ -0,0 +1,127 @@ +/* + * Copyright 2011-2022 Gatling Corp + * + * Licensed under the Gatling Highcharts License + */ +Highcharts.theme = { + chart: { + backgroundColor: '#f7f7f7', + borderWidth: 0, + borderRadius: 8, + plotBackgroundColor: null, + plotShadow: false, + plotBorderWidth: 0 + }, + xAxis: { + gridLineWidth: 0, + lineColor: '#666', + tickColor: '#666', + labels: { + style: { + color: '#666' + } + }, + title: { + style: { + color: '#666' + } + } + }, + yAxis: { + alternateGridColor: null, + minorTickInterval: null, + gridLineColor: '#999', + lineWidth: 0, + tickWidth: 0, + labels: { + style: { + color: '#666', + fontWeight: 'bold' + } + }, + title: { + style: { + color: '#666', + font: 'bold 12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif' + } + } + }, + labels: { + style: { + color: '#CCC' + } + }, + + + rangeSelector: { + buttonTheme: { + fill: '#cfc9c6', + stroke: '#000000', + style: { + color: '#34332e', + fontWeight: 'bold', + borderColor: '#b2b2a9' + }, + states: { + hover: { + fill: '#92918C', + stroke: '#000000', + style: { + color: '#34332e', + fontWeight: 'bold', + borderColor: '#8b897d' + } + }, + select: { + fill: '#E37400', + stroke: '#000000', + style: { + color: '#FFF' + } + } + } + }, + inputStyle: { + backgroundColor: '#333', + color: 'silver' + }, + labelStyle: { + color: '#8b897d' + } + }, + + navigator: { + handles: { + backgroundColor: '#f7f7f7', + borderColor: '#92918C' + }, + outlineColor: '#92918C', + outlineWidth: 1, + maskFill: 'rgba(146, 145, 140, 0.5)', + series: { + color: '#5E7BE2', + lineColor: '#5E7BE2' + } + }, + + scrollbar: { + buttonBackgroundColor: '#f7f7f7', + buttonBorderWidth: 1, + buttonBorderColor: '#92918C', + buttonArrowColor: '#92918C', + buttonBorderRadius: 2, + + barBorderWidth: 1, + barBorderRadius: 0, + barBackgroundColor: '#92918C', + barBorderColor: '#92918C', + + rifleColor: '#92918C', + + trackBackgroundColor: '#b0b0a8', + trackBorderWidth: 1, + trackBorderColor: '#b0b0a8' + } +}; + +Highcharts.setOptions(Highcharts.theme); diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/unpack.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/unpack.js new file mode 100644 index 0000000..883c33e --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/js/unpack.js @@ -0,0 +1,38 @@ +'use strict'; + +var unpack = function (array) { + var findNbSeries = function (array) { + var currentPlotPack; + var length = array.length; + + for (var i = 0; i < length; i++) { + currentPlotPack = array[i][1]; + if(currentPlotPack !== null) { + return currentPlotPack.length; + } + } + return 0; + }; + + var i, j; + var nbPlots = array.length; + var nbSeries = findNbSeries(array); + + // Prepare unpacked array + var unpackedArray = new Array(nbSeries); + + for (i = 0; i < nbSeries; i++) { + unpackedArray[i] = new Array(nbPlots); + } + + // Unpack the array + for (i = 0; i < nbPlots; i++) { + var timestamp = array[i][0]; + var values = array[i][1]; + for (j = 0; j < nbSeries; j++) { + unpackedArray[j][i] = [timestamp * 1000, values === null ? null : values[j]]; + } + } + + return unpackedArray; +}; diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-0-693933696.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-0-693933696.html new file mode 100644 index 0000000..d6a9102 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-0-693933696.html @@ -0,0 +1,925 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_0 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-1-693933697.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-1-693933697.html new file mode 100644 index 0000000..29ef127 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-1-693933697.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_1 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-10-37108175.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-10-37108175.html new file mode 100644 index 0000000..b28bf3e --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-10-37108175.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_10 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-11-37108176.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-11-37108176.html new file mode 100644 index 0000000..9fa127b --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-11-37108176.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_11 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-12-37108177.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-12-37108177.html new file mode 100644 index 0000000..988805e --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-12-37108177.html @@ -0,0 +1,925 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_12 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-14-37108179.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-14-37108179.html new file mode 100644 index 0000000..39d4529 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-14-37108179.html @@ -0,0 +1,925 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_14 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-15-37108180.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-15-37108180.html new file mode 100644 index 0000000..30e093f --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-15-37108180.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_15 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-16-37108181.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-16-37108181.html new file mode 100644 index 0000000..6bdbea8 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-16-37108181.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_16 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-17-37108182.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-17-37108182.html new file mode 100644 index 0000000..05906a9 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-17-37108182.html @@ -0,0 +1,925 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_17 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-2-693933698.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-2-693933698.html new file mode 100644 index 0000000..a8d492a --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-2-693933698.html @@ -0,0 +1,925 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_2 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-3-693933699.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-3-693933699.html new file mode 100644 index 0000000..c51cb22 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-3-693933699.html @@ -0,0 +1,925 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_3 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-4-693933700.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-4-693933700.html new file mode 100644 index 0000000..4d4d7bb --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-4-693933700.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_4 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-5-693933701.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-5-693933701.html new file mode 100644 index 0000000..2d2d0d8 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-5-693933701.html @@ -0,0 +1,930 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_5 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-6-693933702.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-6-693933702.html new file mode 100644 index 0000000..f10f472 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-6-693933702.html @@ -0,0 +1,930 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_6 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-7-693933703.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-7-693933703.html new file mode 100644 index 0000000..da307c2 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-7-693933703.html @@ -0,0 +1,925 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_7 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-8-693933704.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-8-693933704.html new file mode 100644 index 0000000..0dd7270 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-8-693933704.html @@ -0,0 +1,925 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_8 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-9-693933705.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-9-693933705.html new file mode 100644 index 0000000..ad5fd67 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/req_request-9-693933705.html @@ -0,0 +1,925 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_9 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/bootstrap.min.css b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/bootstrap.min.css new file mode 100644 index 0000000..76a2b9b --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/bootstrap.min.css @@ -0,0 +1,27 @@ +.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;} +.clearfix:after{clear:both;} +.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;} +.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} +.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);} +.tooltip.top{margin-top:-3px;} +.tooltip.right{margin-left:3px;} +.tooltip.bottom{margin-top:3px;} +.tooltip.left{margin-left:-3px;} +.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;} +.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000;} +.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000;} +.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000;} +.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000;} +.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:750px;padding:1px;background-color:#ffffff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);}.popover.top{margin-top:-10px;} +.popover.right{margin-left:10px;} +.popover.bottom{margin-top:10px;} +.popover.left{margin-left:-10px;} +.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;} +.popover-content{padding:9px 14px;}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0;} +.popover .arrow,.popover .arrow:after{position:absolute;display:inline-block;width:0;height:0;border-color:transparent;border-style:solid;} +.popover .arrow:after{content:"";z-index:-1;} +.popover.top .arrow{bottom:-10px;left:50%;margin-left:-10px;border-width:10px 10px 0;border-top-color:#ffffff;}.popover.top .arrow:after{border-width:11px 11px 0;border-top-color:rgba(0, 0, 0, 0.25);bottom:-1px;left:-11px;} +.popover.right .arrow{top:50%;left:-10px;margin-top:-10px;border-width:10px 10px 10px 0;border-right-color:#ffffff;}.popover.right .arrow:after{border-width:11px 11px 11px 0;border-right-color:rgba(0, 0, 0, 0.25);bottom:-11px;left:-1px;} +.popover.bottom .arrow{top:-10px;left:50%;margin-left:-10px;border-width:0 10px 10px;border-bottom-color:#ffffff;}.popover.bottom .arrow:after{border-width:0 11px 11px;border-bottom-color:rgba(0, 0, 0, 0.25);top:-1px;left:-11px;} +.popover.left .arrow{top:50%;right:-10px;margin-top:-10px;border-width:10px 0 10px 10px;border-left-color:#ffffff;}.popover.left .arrow:after{border-width:11px 0 11px 11px;border-left-color:rgba(0, 0, 0, 0.25);bottom:-11px;right:-1px;} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/close.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/close.svg new file mode 100644 index 0000000..c161bb9 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/close.svg @@ -0,0 +1,3 @@ + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/executions.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/executions.svg new file mode 100644 index 0000000..84068cd --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/executions.svg @@ -0,0 +1,3 @@ + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/expand.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/expand.svg new file mode 100644 index 0000000..f6e75e0 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/expand.svg @@ -0,0 +1,38 @@ + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/favicon.ico b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/favicon.ico new file mode 100644 index 0000000..d2d20e1 Binary files /dev/null and b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/favicon.ico differ diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/fullscreen.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/fullscreen.svg new file mode 100644 index 0000000..91f3b27 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/fullscreen.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/logo-dark.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/logo-dark.svg new file mode 100644 index 0000000..7eb4d51 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/logo-dark.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/logo-enterprise-dark.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/logo-enterprise-dark.svg new file mode 100644 index 0000000..1127d75 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/logo-enterprise-dark.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/logo-enterprise-light.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/logo-enterprise-light.svg new file mode 100644 index 0000000..4a6e1de --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/logo-enterprise-light.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/logo-light.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/logo-light.svg new file mode 100644 index 0000000..f519eef --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/logo-light.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/sort-down.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/sort-down.svg new file mode 100644 index 0000000..db58a09 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/sort-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/sort-up.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/sort-up.svg new file mode 100644 index 0000000..bba9d84 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/sort-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/sort.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/sort.svg new file mode 100644 index 0000000..43b658e --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/sort.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/style.css b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/style.css new file mode 100644 index 0000000..edc9626 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/25users-2cpus/style/style.css @@ -0,0 +1,1199 @@ +/* + * Copyright 2011-2024 GatlingCorp (https://gatling.io) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +:root { + --gatling-background-color: #f2f2f2; + --gatling-background-light-color: #f7f7f7; + --gatling-border-color: #dddddd; + --gatling-blue-color: #4a9fe5; + --gatling-dark-blue-color: #24275e; + --gatling-danger-color: #f15b4f; + --gatling-danger-light-color: #f5d1ce; + --gatling-enterprise-color: #6161d6; + --gatling-enterprise-light-color: #c4c4ed; + --gatling-gray-medium-color: #bbb; + --gatling-hover-color: #e6e6e6; + --gatling-hover-background-color: #e6e6e6; + --gatling-light-color: #ffffff; + --gatling-orange-color: #f78557; + --gatling-success-color: #68b65c; + --gatling-text-color: #1f2024; + --gatling-total-color: #ffa900; + + --gatling-border-radius: 2px; + --gatling-spacing-small: 5px; + --gatling-spacing: 10px; + --gatling-spacing-layout: 20px; + + --gatling-font-weight-normal: 400; + --gatling-font-weight-medium: 500; + --gatling-font-weight-bold: 700; + --gatling-font-size-secondary: 12px; + --gatling-font-size-default: 14px; + --gatling-font-size-heading: 16px; + --gatling-font-size-section: 22px; + --gatling-font-size-header: 34px; + + --gatling-media-desktop-large: 1920px; +} + +html[data-theme="dark"] { + --gatling-background-color: #1e2225; + --gatling-background-light-color: #272c30; + --gatling-border-color: #555555; + --gatling-blue-color: #1188ff; + --gatling-dark-blue-color: #17223B; + --gatling-danger-color: #d9534f; + --gatling-danger-light-color: #c9302c; + --gatling-enterprise-color: #b2a2ea; + --gatling-enterprise-light-color: #343479; + --gatling-gray-medium-color: #999; + --gatling-hover-color: #30363b; + --gatling-hover-background-color: #2c2c2c; + --gatling-light-color: #394046; + --gatling-orange-color: #fe8e5f; + --gatling-success-color: #5cb85c; + --gatling-text-color: #dee2e6; + --gatling-total-color: #ffa900; +} + +* { + min-height: 0; + min-width: 0; +} + +html, +body { + height: 100%; + width: 100%; +} + +body { + color: var(--gatling-text-color); + font-family: arial; + font-size: var(--gatling-font-size-secondary); + margin: 0; +} + +.app-container { + display: flex; + flex-direction: column; + + height: 100%; + width: 100%; +} + +.head { + display: flex; + align-items: center; + justify-content: space-between; + flex-direction: row; + + flex: 1; + + background-color: var(--gatling-light-color); + border-bottom: 1px solid var(--gatling-border-color); + min-height: 69px; + padding: 0 var(--gatling-spacing-layout); +} + +.head .spacer { + flex-grow: 1; +} + +.head .theme-toggle { + margin-left: 20px; + background: none; + color: var(--gatling-text-color); + border: none; +} + +.head .theme-toggle:hover { + color: var(--gatling-gray-medium-color); + cursor: pointer; +} + +body .toggle-dark, body .toggle-light { + display: block; +} + +[data-theme="dark"] body .toggle-dark { + display: none; +} + +[data-theme="light"] body .toggle-light { + display: none; +} + +[data-theme="dark"] body .logo-enterprise-light { + display: none; +} + +[data-theme="light"] body .logo-enterprise-dark { + display: none; +} + +.gatling-open-source { + display: flex; + align-items: center; + justify-content: space-between; + flex-direction: row; + gap: var(--gatling-spacing-layout); +} + +.gatling-documentation { + display: flex; + align-items: center; + + background-color: var(--gatling-light-color); + border-radius: var(--gatling-border-radius); + color: var(--gatling-orange-color); + border: 1px solid var(--gatling-orange-color); + text-align: center; + padding: var(--gatling-spacing-small) var(--gatling-spacing); + height: 23px; + + font-size: var(--gatling-font-size-default); +} + +.gatling-documentation:hover { + background-color: var(--gatling-orange-color); + color: var(--gatling-light-color); +} + +.gatling-logo { + height: 35px; +} + +.gatling-logo img { + height: 100%; +} + +[data-theme="dark"] .gatling-logo-light { + display: none; +} + +[data-theme="light"] .gatling-logo-dark { + display: none; +} + +.container { + display: flex; + align-items: stretch; + height: 100%; +} + +.nav { + min-width: 210px; + width: 210px; + max-height: calc(100vh - var(--gatling-spacing-layout) - var(--gatling-spacing-layout)); + background: var(--gatling-light-color); + border-right: 1px solid var(--gatling-border-color); + overflow-y: auto; +} + +@media print { + .nav { + display: none; + } +} + +@media screen and (min-width: 1920px) { + .nav { + min-width: 310px; + width: 310px; + } +} + +.nav ul { + display: flex; + flex-direction: column; + + padding: 0; + margin: 0; +} + +.nav li { + display: flex; + list-style: none; + width: 100%; + padding: 0; +} + +.nav .item { + display: inline-flex; + align-items: center; + margin: 0 auto; + white-space: nowrap; + color: var(--gatling-text-color); + font-size: var(--gatling-font-size-default); + font-weight: var(--gatling-font-weight-bold); + margin: 0; + width: 100%; +} + +.nav .item .nav-label { + padding: var(--gatling-spacing) var(--gatling-spacing-layout); +} + +.nav .item:hover { + background-color: var(--gatling-hover-color); +} + +.nav .on .item { + background-color: var(--gatling-orange-color); +} + +.nav .on .item span { + color: var(--gatling-light-color); +} + +.cadre { + width: 100%; + height: 100%; + overflow-y: scroll; + scroll-behavior: smooth; +} + +@media print { + .cadre { + overflow-y: unset; + } +} + +.frise { + position: absolute; + top: 60px; + z-index: -1; + + background-color: var(--gatling-background-color); + height: 530px; +} + +.global { + height: 650px +} + +a { + text-decoration: none; +} + +a:hover { + color: var(--gatling-hover-color); +} + +img { + border: 0; +} + +h1 { + color: var(--gatling-dark-blue-color); + font-size: var(--gatling-font-size-section); + font-weight: var(--gatling-font-weight-medium); + text-align: center; + margin: 0; +} + +h1 span { + color: var(--gatling-hover-color); +} + +.enterprise { + display: flex; + align-items: center; + justify-content: center; + gap: var(--gatling-spacing-small); + + background-color: var(--gatling-light-color); + border-radius: var(--gatling-border-radius); + border: 1px solid var(--gatling-enterprise-color); + color: var(--gatling-enterprise-color); + text-align: center; + padding: var(--gatling-spacing-small) var(--gatling-spacing); + height: 25px; +} + +.enterprise:hover { + background-color: var(--gatling-hover-color); + color: var(--gatling-enterprise-color); +} + +.enterprise img { + display: block; + width: 160px; +} + +.simulation-card { + display: flex; + flex-direction: column; + align-self: stretch; + flex: 1; + gap: var(--gatling-spacing-layout); + max-height: 375px; +} + +#simulation-information { + flex: 1; +} + +.simulation-version-information { + display: flex; + flex-direction: column; + + gap: var(--gatling-spacing); + font-size: var(--gatling-font-size-default); + + background-color: var(--gatling-background-light-color); + border: 1px solid var(--gatling-border-color); + border-radius: var(--gatling-border-radius); + padding: var(--gatling-spacing); +} + +.simulation-information-container { + display: flex; + flex-direction: column; + gap: var(--gatling-spacing); +} + +.withTooltip .popover-title { + display: none; +} + +.popover-content p { + margin: 0; +} + +html[data-theme="dark"] div.popover { + background-color: var(--gatling-light-color); + border-bottom: none; +} + +html[data-theme="dark"] div.popover.right .arrow { + border-right-color: var(--gatling-light-color); +} + +.ellipsed-name { + display: block; + + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.simulation-information-item { + display: flex; + flex-direction: row; + align-items: flex-start; + gap: var(--gatling-spacing-small); +} + +.simulation-information-item.description { + flex-direction: column; +} + +.simulation-information-label { + display: inline-block; + font-weight: var(--gatling-font-weight-bold); + min-width: fit-content; +} + +.simulation-information-title { + display: block; + text-align: center; + color: var(--gatling-text-color); + font-weight: var(--gatling-font-weight-bold); + font-size: var(--gatling-font-size-heading); + width: 100%; +} + +.simulation-tooltip span { + display: inline-block; + word-wrap: break-word; + overflow: hidden; + text-overflow: ellipsis; +} + +.content { + display: flex; + flex-direction: column; +} + +.content-in { + width: 100%; + height: 100%; + + overflow-x: scroll; +} + +html[data-theme="dark"] .content-in { + background-color: var(--gatling-background-color); +} + +@media print { + .content-in { + overflow-x: unset; + } +} + +.container-article { + display: flex; + flex-direction: column; + gap: var(--gatling-spacing-layout); + + min-width: 1050px; + width: 1050px; + margin: 0 auto; + padding: var(--gatling-spacing-layout); + box-sizing: border-box; +} + +@media screen and (min-width: 1920px) { + .container-article { + min-width: 1350px; + width: 1350px; + } + + #responses * .highcharts-tracker { + transform: translate(400px, 70px); + } +} + +.content-header { + display: flex; + flex-direction: column; + gap: var(--gatling-spacing-layout); + + background-color: var(--gatling-background-light-color); + border-bottom: 1px solid var(--gatling-border-color); + padding: var(--gatling-spacing-layout) var(--gatling-spacing-layout) 0; +} + +.onglet { + font-size: var(--gatling-font-size-header); + font-weight: var(--gatling-font-weight-medium); + text-align: center; +} + +.sous-menu { + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; +} + +.sous-menu-spacer { + display: flex; + align-items: center; + flex-direction: row; +} + +.sous-menu .item { + margin-bottom: -1px; +} + +.sous-menu a { + display: block; + + font-size: var(--gatling-font-size-heading); + font-weight: var(--gatling-font-weight-normal); + padding: var(--gatling-spacing-small) var(--gatling-spacing) var(--gatling-spacing); + border-bottom: 2px solid transparent; + color: var(--gatling-text-color); + text-align: center; + width: 100px; +} + +.sous-menu a:hover { + border-bottom-color: var(--gatling-text-color); +} + +.sous-menu .ouvert a { + border-bottom-color: var(--gatling-orange-color); + font-weight: var(--gatling-font-weight-bold); +} + +.article { + position: relative; + + display: flex; + flex-direction: column; + gap: var(--gatling-spacing-layout); +} + +.infos { + width: 340px; + color: var(--gatling-light-color); +} + +.infos-title { + background-color: var(--gatling-background-light-color); + border: 1px solid var(--gatling-border-color); + border-bottom: 0; + border-top-left-radius: var(--gatling-border-radius); + border-top-right-radius: var(--gatling-border-radius); + color: var(--gatling-text-color); + font-size: var(--gatling-font-size-heading); + font-weight: var(--gatling-font-weight-bold); + text-align: center; + padding: var(--gatling-spacing-small) var(--gatling-spacing); +} + +.info { + background-color: var(--gatling-background-light-color); + border-bottom-left-radius: var(--gatling-border-radius); + border-bottom-right-radius: var(--gatling-border-radius); + border: 1px solid var(--gatling-border-color); + color: var(--gatling-text-color); + height: 100%; + margin: 0; +} + +.info table { + margin: auto; + padding-right: 15px; +} + +.alert-danger { + background-color: var(--gatling-danger-light-color); + border: 1px solid var(--gatling-danger-color); + border-radius: var(--gatling-border-radius); + color: var(--gatling-text-color); + padding: var(--gatling-spacing-layout); + font-weight: var(--gatling-font-weight-bold); +} + +.infos h2 { + color: var(--gatling-text-color); + font-size: var(--gatling-font-size-default); + font-weight: var(--gatling-font-weight-bold); + height: 19px; + margin: 0; + padding: 3.5px 0 0 35px; +} + +.infos .first::before { + content: ''; + display: inline-block; + margin-right: 5px; + margin-bottom: 2px; + vertical-align: middle; + width: 14px; + height: 14px; + background: url('executions.svg'); + background-size: contain; +} + +.infos .second::before { + content: ''; + display: inline-block; + margin-right: 5px; + margin-bottom: 2px; + vertical-align: middle; + width: 16px; + height: 16px; + background: url('time.svg'); + background-size: contain; +} + +html[data-theme="dark"] .infos .first::before, +html[data-theme="dark"] .infos .second::before { + filter: invert(0.9); +} + +.infos th { + text-align: center; +} + +.infos td { + font-weight: var(--gatling-font-weight-bold); + padding: var(--gatling-spacing-small); + -webkit-border-radius: var(--gatling-border-radius); + -moz-border-radius: var(--gatling-border-radius); + -ms-border-radius: var(--gatling-border-radius); + -o-border-radius: var(--gatling-border-radius); + border-radius: var(--gatling-border-radius); + text-align: right; + width: 50px; +} + +.infos .title { + width: 120px; +} + +.infos .ok { + background-color: var(--gatling-success-color); + color: var(--gatling-light-color); +} + +.infos .total { + background-color: var(--gatling-total-color); + color: var(--gatling-light-color); +} + +.infos .ko { + background-color: var(--gatling-danger-color); + -webkit-border-radius: var(--gatling-border-radius); + border-radius: var(--gatling-border-radius); + color: var(--gatling-light-color); +} + +.schema-container { + display: flex; + align-items: center; + justify-content: space-between; + gap: var(--gatling-spacing-layout); +} + +.schema { + background: var(--gatling-background-light-color); + border-radius: var(--gatling-border-radius); + border: 1px solid var(--gatling-border-color); +} + +.ranges { + height: 375px; + width: 500px; +} + +.ranges-large { + height: 375px; + width: 530px; +} + +.geant { + height: 362px; +} + +.extensible-geant { + width: 100%; +} + +.polar { + height: 375px; + width: 230px; +} + +.chart_title { + color: var(--gatling-text-color); + font-weight: var(--gatling-font-weight-bold); + font-size: var(--gatling-font-size-heading); + padding: 2px var(--gatling-spacing); +} + +html[data-theme="dark"] .chart_title { + color: var(--gatling-text-color); + font-weight: var(--gatling-font-weight-bold); + font-size: var(--gatling-font-size-heading); + padding: 2px var(--gatling-spacing); +} + +html[data-theme="dark"] .highcharts-background { + fill: var(--gatling-background-light-color); +} + +html[data-theme="dark"] .highcharts-button-normal rect { + fill: var(--gatling-background-color) !important; +} + +html[data-theme="dark"] .highcharts-button-disabled rect { + fill: var(--gatling-background-light-color) !important; +} + +html[data-theme="dark"] .highcharts-button-pressed rect { + fill: var(--gatling-orange-color) !important; +} + +html[data-theme="dark"] .highcharts-axis text, +html[data-theme="dark"] .highcharts-axis-labels text, +html[data-theme="dark"] .highcharts-button text, +html[data-theme="dark"] .highcharts-legend-item text, +html[data-theme="dark"] .highcharts-range-selector-buttons text { + fill: var(--gatling-text-color) !important; +} + +.statistics { + display: flex; + flex-direction: column; + + background-color: var(--gatling-background-light-color); + border-radius: var(--gatling-border-radius); + border-collapse: collapse; + color: var(--gatling-text-color); + max-height: 100%; +} + +.statistics .title { + display: flex; + text-align: center; + justify-content: space-between; + + min-height: 49.5px; + box-sizing: border-box; + + border: 1px solid var(--gatling-border-color); + color: var(--gatling-text-color); + font-size: var(--gatling-font-size-heading); + font-weight: var(--gatling-font-weight-bold); + padding: var(--gatling-spacing); +} + +.title_base { + display: flex; + align-items: center; + text-align: left; + user-select: none; +} + +.title_base_stats { + color: var(--gatling-text-color); + margin-right: 20px; +} + +.toggle-table { + position: relative; + border: 1px solid var(--gatling-border-color); + background-color: var(--gatling-light-color); + border-radius: 25px; + width: 40px; + height: 20px; + margin: 0 var(--gatling-spacing-small); +} + +.toggle-table::before { + position: absolute; + top: calc(50% - 9px); + left: 1px; + content: ""; + width: 50%; + height: 18px; + border-radius: 50%; + background-color: var(--gatling-text-color); +} + +.toggle-table.off::before { + left: unset; + right: 1px; +} + +.title_expanded { + cursor: pointer; + color: var(--gatling-text-color); +} + +.expand-table, +.collapse-table { + font-size: var(--gatling-font-size-secondary); + font-weight: var(--gatling-font-weight-normal); +} + +.title_expanded span.expand-table { + color: var(--gatling-gray-medium-color); +} + +.title_collapsed { + cursor: pointer; + color: var(--gatling-text-color); +} + +.title_collapsed span.collapse-table { + color: var(--gatling-gray-medium-color); +} + +#container_statistics_head { + position: sticky; + top: -1px; + + background: var(--gatling-background-light-color); + margin-top: -1px; + padding: var(--gatling-spacing-small) var(--gatling-spacing-small) 0px var(--gatling-spacing-small); +} + +#container_statistics_body { + border-bottom-left-radius: var(--gatling-border-radius); + border-bottom-right-radius: var(--gatling-border-radius); + margin-top: -1px; + padding: 0px var(--gatling-spacing-small) var(--gatling-spacing-small) var(--gatling-spacing-small); +} + +#container_errors { + border-bottom-left-radius: var(--gatling-border-radius); + border-bottom-right-radius: var(--gatling-border-radius); + padding: var(--gatling-spacing-small) var(--gatling-spacing-small) 0px var(--gatling-spacing-small); + margin-top: -1px; +} + +#container_assertions { + background-color: var(--gatling-background-light-color); + border-bottom-left-radius: var(--gatling-border-radius); + border-bottom-right-radius: var(--gatling-border-radius); + padding: var(--gatling-spacing-small); + margin-top: -1px; +} + +.statistics-in { + border-spacing: var(--gatling-spacing-small); + border-collapse: collapse; + margin: 0; +} + +.statistics .scrollable { + max-height: 100%; + overflow-y: auto; +} + +#statistics_table_container .statistics .scrollable { + max-height: 785px; +} + +.statistics-in a { + color: var(--gatling-text-color); + font-weight: var(--gatling-font-weight-bold); +} + +.statistics-in .header { + border-radius: var(--gatling-border-radius); + border: 1px solid var(--gatling-border-color); + font-size: var(--gatling-font-size-default); + font-weight: var(--gatling-font-weight-bold); + text-align: center; + padding: var(--gatling-spacing-small); +} + +.sortable { + cursor: pointer; +} + +.sortable span::after { + content: ''; + display: inline-block; + margin-left: 5px; + vertical-align: middle; + width: 12px; + height: 12px; + background: url('sort.svg'); + background-size: contain; +} + +.sorted-up span::after { + background: url('sort-up.svg'); + background-size: contain; +} + +.sorted-down span::after { + background: url('sort-down.svg'); + background-size: contain; +} + +html[data-theme="dark"] .sortable span::after { + filter: invert(0.9); +} + +.executions::before { + content: ''; + display: inline-block; + margin-right: 5px; + margin-bottom: 2px; + vertical-align: middle; + width: 14px; + height: 14px; + background: url('executions.svg'); + background-size: contain; +} + +.response-time::before { + content: ''; + display: inline-block; + margin-right: 5px; + margin-bottom: 2px; + vertical-align: middle; + width: 16px; + height: 16px; + background: url('time.svg'); + background-size: contain; +} + +html[data-theme="dark"] .executions::before, +html[data-theme="dark"] .response-time::before { + filter: invert(0.9); +} + +.statistics-in td { + background-color: var(--gatling-light-color); + border: 1px solid var(--gatling-border-color); + padding: var(--gatling-spacing-small); + min-width: 50px; +} + +.statistics-in .col-1 { + width: 175px; + max-width: 175px; +} +@media screen and (min-width: 1200px) { + .statistics-in .col-1 { + width: 50%; + } +} + +.expandable-container { + display: flex; + flex-direction: row; + box-sizing: border-box; + max-width: 100%; +} + +.statistics-in .value { + text-align: right; + width: 50px; +} + +.statistics-in .total { + color: var(--gatling-text-color); +} + +.statistics-in .col-2 { + background-color: var(--gatling-total-color); + color: var(--gatling-light-color); + font-weight: var(--gatling-font-weight-bold); +} + +.statistics-in .error-col-1 { + background-color: var(--gatling-light-color); + color: var(--gatling-text-color); +} + +.statistics-in .error-col-2 { + text-align: center; +} + +.statistics-in .ok { + background-color: var(--gatling-success-color); + color: var(--gatling-light-color); + font-weight: var(--gatling-font-weight-bold); +} + +.statistics-in .ko { + background-color: var(--gatling-danger-color); + color: var(--gatling-light-color); + font-weight: var(--gatling-font-weight-bold); +} + +.statistics-in .expand-button { + padding-left: var(--gatling-spacing); + cursor: pointer; +} + +.expand-button.hidden { + background: none; + cursor: default; +} + +.statistics-button { + background-color: var(--gatling-light-color); + color: var(--gatling-text-color); + padding: var(--gatling-spacing-small) var(--gatling-spacing); + border: 1px solid var(--gatling-border-color); + border-radius: var(--gatling-border-radius); +} + +#statistics_full_screen{ + padding: var(--gatling-spacing-small); +} + +#statistics_full_screen > img { + width: 14px; + height: 14px; +} + +html[data-theme="dark"] #statistics_full_screen > img { + filter: invert(0.9); +} + +#statistics_full_screen:disabled { + display: none; +} + +.statistics-button:hover:not(:disabled) { + cursor: pointer; + background-color: var(--gatling-hover-color); +} + +.statistics-in .expand-button.expand { + content: ''; + display: inline-block; + vertical-align: middle; + width: 2px; + height: 10px; + background: url('expand.svg'); + background-size: contain; +} + +.statistics-in .expand-button.collapse { + content: ''; + display: inline-block; + vertical-align: middle; + width: 2px; + height: 10px; + background: url('sort-down.svg'); + background-size: contain; +} + +html[data-theme="dark"] .statistics-in .expand-button.collapse, +html[data-theme="dark"] .statistics-in .expand-button.expand { + filter: invert(0.9); +} + +.nav .expand-button { + padding: var(--gatling-spacing-small) var(--gatling-spacing); +} + +.nav .expand-button.expand { + content: ''; + display: inline-block; + vertical-align: middle; + height: 8px; + background: url('expand.svg') no-repeat; + background-size: contain; + cursor: pointer; + margin-top: 6px; +} + +.nav .expand-button.collapse { + content: ''; + display: inline-block; + vertical-align: middle; + height: 8px; + background: url('sort-down.svg') no-repeat; + background-size: contain; + cursor: pointer; + margin-top: 6px; +} + +html[data-theme="dark"] .nav .expand-button.expand, +html[data-theme="dark"] .nav .expand-button.collapse { + filter: invert(0.9); +} + +.right { + display: flex; + align-items: center; + gap: var(--gatling-spacing); + float: right; + font-size: var(--gatling-font-size-default); +} + +.withTooltip { + outline: none; +} + +.withTooltip:hover { + text-decoration: none; +} + +.withTooltip .tooltipContent { + position: absolute; + z-index: 10; + display: none; + + background: var(--gatling-orange-color); + -webkit-box-shadow: 1px 2px 4px 0px rgba(47, 47, 47, 0.2); + -moz-box-shadow: 1px 2px 4px 0px rgba(47, 47, 47, 0.2); + box-shadow: 1px 2px 4px 0px rgba(47, 47, 47, 0.2); + border-radius: var(--gatling-border-radius); + color: var(--gatling-light-color); + margin-top: -5px; + padding: var(--gatling-spacing-small); +} + +.withTooltip:hover .tooltipContent { + display: inline; +} + +.button-modal { + padding: var(--gatling-spacing-small); +} + +.button-modal > img { + width: 14px; + height: 14px; +} + +html[data-theme="dark"] .button-modal > img { + filter: invert(0.9); +} + +.statistics-table-modal { + background-color: var(--gatling-background-color); + height: calc(100% - 60px); + width: calc(100% - 60px); + border-radius: var(--gatling-border-radius); +} + +.statistics-table-modal::backdrop { + position: fixed; + top: 0px; + right: 0px; + bottom: 0px; + left: 0px; + + background-color: rgba(100, 100, 100, 0.9); +} + +.statistics-table-modal-container { + display: flex; + flex-direction: column; + + width: 100%; + height: calc(100% - 35px); + overflow-x: auto; +} + +.button-modal { + cursor: pointer; + + height: 25px; + width: 25px; + + border: 1px solid var(--gatling-border-color); + background-color: var(--gatling-light-color); + border-radius: var(--gatling-border-radius); + color: var(--gatling-text-color); +} + +.button-modal:hover { + background-color: var(--gatling-background-color); +} + +.statistics-table-modal-header { + display: flex; + align-items: flex-end; + justify-content: flex-end; + + padding-bottom: var(--gatling-spacing); +} + +.statistics-table-modal-content { + flex: 1; + overflow-y: auto; + min-width: 1050px; +} + +.statistics-table-modal-footer { + display: flex; + align-items: flex-end; + justify-content: flex-end; + + padding-top: var(--gatling-spacing); +} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/index.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/index.html new file mode 100644 index 0000000..08952f2 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/index.html @@ -0,0 +1,1117 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - Global Information + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    +
    +
    + Gatling Version + + Version: + 3.10.5 + + + Released: + 2024-03-22 + +
    +
    + Run Information +
    + + Date: + 2024-04-25 17:01:35 GMT + + + Duration: + 2m 13s + + + Description: + Load testing (2 users/sec in 60sec - machine 1 cpu) + + +
    +
    +
    +
    + +
    + +
    + +
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/all_sessions.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/all_sessions.js new file mode 100644 index 0000000..a1a2f3f --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/all_sessions.js @@ -0,0 +1,11 @@ +allUsersData = { + +color: '#FFA900', +name: 'Active Users', +data: [ + [1714064495000,5],[1714064496000,8],[1714064497000,10],[1714064498000,11],[1714064499000,15],[1714064500000,16],[1714064501000,20],[1714064502000,23],[1714064503000,28],[1714064504000,28],[1714064505000,30],[1714064506000,30],[1714064507000,30],[1714064508000,33],[1714064509000,34],[1714064510000,37],[1714064511000,39],[1714064512000,42],[1714064513000,44],[1714064514000,46],[1714064515000,49],[1714064516000,51],[1714064517000,51],[1714064518000,53],[1714064519000,54],[1714064520000,56],[1714064521000,57],[1714064522000,59],[1714064523000,62],[1714064524000,64],[1714064525000,66],[1714064526000,67],[1714064527000,69],[1714064528000,72],[1714064529000,73],[1714064530000,73],[1714064531000,78],[1714064532000,80],[1714064533000,80],[1714064534000,82],[1714064535000,84],[1714064536000,85],[1714064537000,90],[1714064538000,92],[1714064539000,97],[1714064540000,98],[1714064541000,101],[1714064542000,101],[1714064543000,106],[1714064544000,107],[1714064545000,109],[1714064546000,110],[1714064547000,115],[1714064548000,116],[1714064549000,119],[1714064550000,119],[1714064551000,119],[1714064552000,121],[1714064553000,122],[1714064554000,124],[1714064555000,124],[1714064556000,124],[1714064557000,124],[1714064558000,124],[1714064559000,124],[1714064560000,124],[1714064561000,124],[1714064562000,124],[1714064563000,124],[1714064564000,124],[1714064565000,124],[1714064566000,124],[1714064567000,124],[1714064568000,124],[1714064569000,124],[1714064570000,119],[1714064571000,116],[1714064572000,115],[1714064573000,113],[1714064574000,109],[1714064575000,107],[1714064576000,104],[1714064577000,102],[1714064578000,98],[1714064579000,95],[1714064580000,94],[1714064581000,94],[1714064582000,92],[1714064583000,91],[1714064584000,88],[1714064585000,86],[1714064586000,85],[1714064587000,82],[1714064588000,78],[1714064589000,77],[1714064590000,74],[1714064591000,73],[1714064592000,71],[1714064593000,70],[1714064594000,70],[1714064595000,67],[1714064596000,65],[1714064597000,64],[1714064598000,61],[1714064599000,59],[1714064600000,58],[1714064601000,55],[1714064602000,54],[1714064603000,51],[1714064604000,51],[1714064605000,50],[1714064606000,48],[1714064607000,44],[1714064608000,43],[1714064609000,41],[1714064610000,40],[1714064611000,38],[1714064612000,33],[1714064613000,31],[1714064614000,29],[1714064615000,25],[1714064616000,23],[1714064617000,23],[1714064618000,19],[1714064619000,15],[1714064620000,14],[1714064621000,13],[1714064622000,9],[1714064623000,6],[1714064624000,5],[1714064625000,5],[1714064626000,4],[1714064627000,3],[1714064628000,1] +], +tooltip: { yDecimals: 0, ySuffix: '', valueDecimals: 0 } + , zIndex: 20 + , yAxis: 1 +}; \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/assertions.xml b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/assertions.xml new file mode 100644 index 0000000..c562e00 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/assertions.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/bootstrap.min.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/bootstrap.min.js new file mode 100644 index 0000000..ea41042 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/bootstrap.min.js @@ -0,0 +1,7 @@ +/** +* Bootstrap.js by @fat & @mdo +* plugins: bootstrap-tooltip.js, bootstrap-popover.js +* Copyright 2012 Twitter, Inc. +* http://www.apache.org/licenses/LICENSE-2.0.txt +*/ +!function(a){var b=function(a,b){this.init("tooltip",a,b)};b.prototype={constructor:b,init:function(b,c,d){var e,f;this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.enabled=!0,this.options.trigger=="click"?this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this)):this.options.trigger!="manual"&&(e=this.options.trigger=="hover"?"mouseenter":"focus",f=this.options.trigger=="hover"?"mouseleave":"blur",this.$element.on(e+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(f+"."+this.type,this.options.selector,a.proxy(this.leave,this))),this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(b){return b=a.extend({},a.fn[this.type].defaults,b,this.$element.data()),b.delay&&typeof b.delay=="number"&&(b.delay={show:b.delay,hide:b.delay}),b},enter:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);if(!c.options.delay||!c.options.delay.show)return c.show();clearTimeout(this.timeout),c.hoverState="in",this.timeout=setTimeout(function(){c.hoverState=="in"&&c.show()},c.options.delay.show)},leave:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);this.timeout&&clearTimeout(this.timeout);if(!c.options.delay||!c.options.delay.hide)return c.hide();c.hoverState="out",this.timeout=setTimeout(function(){c.hoverState=="out"&&c.hide()},c.options.delay.hide)},show:function(){var a,b,c,d,e,f,g;if(this.hasContent()&&this.enabled){a=this.tip(),this.setContent(),this.options.animation&&a.addClass("fade"),f=typeof this.options.placement=="function"?this.options.placement.call(this,a[0],this.$element[0]):this.options.placement,b=/in/.test(f),a.detach().css({top:0,left:0,display:"block"}).insertAfter(this.$element),c=this.getPosition(b),d=a[0].offsetWidth,e=a[0].offsetHeight;switch(b?f.split(" ")[1]:f){case"bottom":g={top:c.top+c.height,left:c.left+c.width/2-d/2};break;case"top":g={top:c.top-e,left:c.left+c.width/2-d/2};break;case"left":g={top:c.top+c.height/2-e/2,left:c.left-d};break;case"right":g={top:c.top+c.height/2-e/2,left:c.left+c.width}}a.offset(g).addClass(f).addClass("in")}},setContent:function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},hide:function(){function d(){var b=setTimeout(function(){c.off(a.support.transition.end).detach()},500);c.one(a.support.transition.end,function(){clearTimeout(b),c.detach()})}var b=this,c=this.tip();return c.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d():c.detach(),this},fixTitle:function(){var a=this.$element;(a.attr("title")||typeof a.attr("data-original-title")!="string")&&a.attr("data-original-title",a.attr("title")||"").removeAttr("title")},hasContent:function(){return this.getTitle()},getPosition:function(b){return a.extend({},b?{top:0,left:0}:this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight})},getTitle:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||(typeof c.title=="function"?c.title.call(b[0]):c.title),a},tip:function(){return this.$tip=this.$tip||a(this.options.template)},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);c[c.tip().hasClass("in")?"hide":"show"]()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}},a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("tooltip"),f=typeof c=="object"&&c;e||d.data("tooltip",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.tooltip.Constructor=b,a.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'
    ',trigger:"hover",title:"",delay:0,html:!1}}(window.jQuery),!function(a){var b=function(a,b){this.init("popover",a,b)};b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype,{constructor:b,setContent:function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content > *")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-content")||(typeof c.content=="function"?c.content.call(b[0]):c.content),a},tip:function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}}),a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("popover"),f=typeof c=="object"&&c;e||d.data("popover",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.defaults=a.extend({},a.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'

    '})}(window.jQuery) \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/ellipsis.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/ellipsis.js new file mode 100644 index 0000000..781d0de --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/ellipsis.js @@ -0,0 +1,26 @@ +function parentId(name) { + return "parent-" + name; +} + +function isEllipsed(name) { + const child = document.getElementById(name); + const parent = document.getElementById(parentId(name)); + const emptyData = parent.getAttribute("data-content") === ""; + const hasOverflow = child.clientWidth < child.scrollWidth; + + if (hasOverflow) { + if (emptyData) { + parent.setAttribute("data-content", name); + } + } else { + if (!emptyData) { + parent.setAttribute("data-content", ""); + } + } +} + +function ellipsedLabel ({ name, parentClass = "", childClass = "" }) { + const child = "" + name + ""; + + return "" + child + ""; +} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/gatling.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/gatling.js new file mode 100644 index 0000000..5b9e992 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/gatling.js @@ -0,0 +1,137 @@ +/* + * Copyright 2011-2024 GatlingCorp (https://gatling.io) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +(function ($) { + $.fn.expandable = function () { + var scope = this; + + this.find('.expand-button:not([class*=hidden])').addClass('collapse').on('click', function () { + var $this = $(this); + + if ($this.hasClass('expand')) + $this.expand(scope); + else + $this.collapse(scope); + }); + + this.find('.expand-all-button').on('click', function () { + $(this).expandAll(scope); + }); + + this.find('.collapse-all-button').on('click', function () { + $(this).collapseAll(scope); + }); + + this.collapseAll(this); + + return this; + }; + + $.fn.expand = function (scope, recursive) { + return this.each(function () { + var $this = $(this); + + if (recursive) { + scope.find('*[data-parent=' + $this.attr('id') + ']').find('.expand-button.expand').expand(scope, true); + scope.find('*[data-parent=' + $this.attr('id') + ']').find('.expand-button.expand').expand(scope, true); + } + + if ($this.hasClass('expand')) { + $('*[data-parent=' + $this.attr('id') + ']').toggle(true); + $this.toggleClass('expand').toggleClass('collapse'); + } + }); + }; + + $.fn.expandAll = function (scope) { + $('*[data-parent=ROOT]').find('.expand-button.expand').expand(scope, true); + $('*[data-parent=ROOT]').find('.expand-button.collapse').expand(scope, true); + }; + + $.fn.collapse = function (scope) { + return this.each(function () { + var $this = $(this); + + scope.find('*[data-parent=' + $this.attr('id') + '] .expand-button.collapse').collapse(scope); + scope.find('*[data-parent=' + $this.attr('id') + ']').toggle(false); + $this.toggleClass('expand').toggleClass('collapse'); + }); + }; + + $.fn.collapseAll = function (scope) { + $('*[data-parent=ROOT]').find('.expand-button.collapse').collapse(scope); + }; + + $.fn.sortable = function (target) { + var table = this; + + this.find('thead .sortable').on('click', function () { + var $this = $(this); + + if ($this.hasClass('sorted-down')) { + var desc = false; + var style = 'sorted-up'; + } + else { + var desc = true; + var style = 'sorted-down'; + } + + $(target).sortTable($this.attr('id'), desc); + + table.find('thead .sortable').removeClass('sorted-up sorted-down'); + $this.addClass(style); + + return false; + }); + + return this; + }; + + $.fn.sortTable = function (col, desc) { + function getValue(line) { + var cell = $(line).find('.' + col); + + if (cell.hasClass('value')) + var value = cell.text(); + else + var value = cell.find('.value').text(); + + return parseFloat(value); + } + + function sortLines (lines, group) { + var notErrorTable = col.search("error") == -1; + var linesToSort = notErrorTable ? lines.filter('*[data-parent=' + group + ']') : lines; + + var sortedLines = linesToSort.sort(function (a, b) { + return desc ? getValue(b) - getValue(a): getValue(a) - getValue(b); + }).toArray(); + + var result = []; + $.each(sortedLines, function (i, line) { + result.push(line); + if (notErrorTable) + result = result.concat(sortLines(lines, $(line).attr('id'))); + }); + + return result; + } + + this.find('tbody').append(sortLines(this.find('tbody tr').detach(), 'ROOT')); + + return this; + }; +})(jQuery); diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/global_stats.json b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/global_stats.json new file mode 100644 index 0000000..09432ba --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/global_stats.json @@ -0,0 +1,77 @@ +{ + "name": "All Requests", + "numberOfRequests": { + "total": 2108, + "ok": 2108, + "ko": 0 + }, + "minResponseTime": { + "total": 24, + "ok": 24, + "ko": 0 + }, + "maxResponseTime": { + "total": 1697, + "ok": 1697, + "ko": 0 + }, + "meanResponseTime": { + "total": 136, + "ok": 136, + "ko": 0 + }, + "standardDeviation": { + "total": 198, + "ok": 198, + "ko": 0 + }, + "percentiles1": { + "total": 78, + "ok": 78, + "ko": 0 + }, + "percentiles2": { + "total": 95, + "ok": 95, + "ko": 0 + }, + "percentiles3": { + "total": 522, + "ok": 522, + "ko": 0 + }, + "percentiles4": { + "total": 1124, + "ok": 1124, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 2057, + "percentage": 98 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 35, + "percentage": 2 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 16, + "percentage": 1 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 15.73134328358209, + "ok": 15.73134328358209, + "ko": 0 + } +} \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/highcharts-more.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/highcharts-more.js new file mode 100644 index 0000000..2d78893 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/highcharts-more.js @@ -0,0 +1,60 @@ +/* + Highcharts JS v5.0.3 (2016-11-18) + + (c) 2009-2016 Torstein Honsi + + License: www.highcharts.com/license +*/ +(function(x){"object"===typeof module&&module.exports?module.exports=x:x(Highcharts)})(function(x){(function(b){function r(b,a,d){this.init(b,a,d)}var t=b.each,w=b.extend,m=b.merge,q=b.splat;w(r.prototype,{init:function(b,a,d){var f=this,h=f.defaultOptions;f.chart=a;f.options=b=m(h,a.angular?{background:{}}:void 0,b);(b=b.background)&&t([].concat(q(b)).reverse(),function(a){var c,h=d.userOptions;c=m(f.defaultBackgroundOptions,a);a.backgroundColor&&(c.backgroundColor=a.backgroundColor);c.color=c.backgroundColor; +d.options.plotBands.unshift(c);h.plotBands=h.plotBands||[];h.plotBands!==d.options.plotBands&&h.plotBands.unshift(c)})},defaultOptions:{center:["50%","50%"],size:"85%",startAngle:0},defaultBackgroundOptions:{className:"highcharts-pane",shape:"circle",borderWidth:1,borderColor:"#cccccc",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#ffffff"],[1,"#e6e6e6"]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"}});b.Pane=r})(x);(function(b){var r=b.CenteredSeriesMixin, +t=b.each,w=b.extend,m=b.map,q=b.merge,e=b.noop,a=b.Pane,d=b.pick,f=b.pInt,h=b.splat,u=b.wrap,c,l,k=b.Axis.prototype;b=b.Tick.prototype;c={getOffset:e,redraw:function(){this.isDirty=!1},render:function(){this.isDirty=!1},setScale:e,setCategories:e,setTitle:e};l={defaultRadialGaugeOptions:{labels:{align:"center",x:0,y:null},minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,tickLength:10,tickPosition:"inside",tickWidth:2,title:{rotation:0},zIndex:2}, +defaultRadialXOptions:{gridLineWidth:1,labels:{align:null,distance:15,x:0,y:null},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},defaultRadialYOptions:{gridLineInterpolation:"circle",labels:{align:"right",x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}},setOptions:function(a){a=this.options=q(this.defaultOptions,this.defaultRadialOptions,a);a.plotBands||(a.plotBands=[])},getOffset:function(){k.getOffset.call(this);this.chart.axisOffset[this.side]=0;this.center=this.pane.center= +r.getCenter.call(this.pane)},getLinePath:function(a,g){a=this.center;var c=this.chart,f=d(g,a[2]/2-this.offset);this.isCircular||void 0!==g?g=this.chart.renderer.symbols.arc(this.left+a[0],this.top+a[1],f,f,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0}):(g=this.postTranslate(this.angleRad,f),g=["M",a[0]+c.plotLeft,a[1]+c.plotTop,"L",g.x,g.y]);return g},setAxisTranslation:function(){k.setAxisTranslation.call(this);this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/ +(this.max-this.min||1):this.center[2]/2/(this.max-this.min||1),this.minPixelPadding=this.isXAxis?this.transA*this.minPointOffset:0)},beforeSetTickPositions:function(){if(this.autoConnect=this.isCircular&&void 0===d(this.userMax,this.options.max)&&this.endAngleRad-this.startAngleRad===2*Math.PI)this.max+=this.categories&&1||this.pointRange||this.closestPointRange||0},setAxisSize:function(){k.setAxisSize.call(this);this.isRadial&&(this.center=this.pane.center=r.getCenter.call(this.pane),this.isCircular&& +(this.sector=this.endAngleRad-this.startAngleRad),this.len=this.width=this.height=this.center[2]*d(this.sector,1)/2)},getPosition:function(a,g){return this.postTranslate(this.isCircular?this.translate(a):this.angleRad,d(this.isCircular?g:this.translate(a),this.center[2]/2)-this.offset)},postTranslate:function(a,g){var d=this.chart,c=this.center;a=this.startAngleRad+a;return{x:d.plotLeft+c[0]+Math.cos(a)*g,y:d.plotTop+c[1]+Math.sin(a)*g}},getPlotBandPath:function(a,g,c){var h=this.center,p=this.startAngleRad, +k=h[2]/2,n=[d(c.outerRadius,"100%"),c.innerRadius,d(c.thickness,10)],b=Math.min(this.offset,0),l=/%$/,u,e=this.isCircular;"polygon"===this.options.gridLineInterpolation?h=this.getPlotLinePath(a).concat(this.getPlotLinePath(g,!0)):(a=Math.max(a,this.min),g=Math.min(g,this.max),e||(n[0]=this.translate(a),n[1]=this.translate(g)),n=m(n,function(a){l.test(a)&&(a=f(a,10)*k/100);return a}),"circle"!==c.shape&&e?(a=p+this.translate(a),g=p+this.translate(g)):(a=-Math.PI/2,g=1.5*Math.PI,u=!0),n[0]-=b,n[2]-= +b,h=this.chart.renderer.symbols.arc(this.left+h[0],this.top+h[1],n[0],n[0],{start:Math.min(a,g),end:Math.max(a,g),innerR:d(n[1],n[0]-n[2]),open:u}));return h},getPlotLinePath:function(a,g){var d=this,c=d.center,f=d.chart,h=d.getPosition(a),k,b,p;d.isCircular?p=["M",c[0]+f.plotLeft,c[1]+f.plotTop,"L",h.x,h.y]:"circle"===d.options.gridLineInterpolation?(a=d.translate(a))&&(p=d.getLinePath(0,a)):(t(f.xAxis,function(a){a.pane===d.pane&&(k=a)}),p=[],a=d.translate(a),c=k.tickPositions,k.autoConnect&&(c= +c.concat([c[0]])),g&&(c=[].concat(c).reverse()),t(c,function(g,d){b=k.getPosition(g,a);p.push(d?"L":"M",b.x,b.y)}));return p},getTitlePosition:function(){var a=this.center,g=this.chart,d=this.options.title;return{x:g.plotLeft+a[0]+(d.x||0),y:g.plotTop+a[1]-{high:.5,middle:.25,low:0}[d.align]*a[2]+(d.y||0)}}};u(k,"init",function(f,g,k){var b=g.angular,p=g.polar,n=k.isX,u=b&&n,e,A=g.options,m=k.pane||0;if(b){if(w(this,u?c:l),e=!n)this.defaultRadialOptions=this.defaultRadialGaugeOptions}else p&&(w(this, +l),this.defaultRadialOptions=(e=n)?this.defaultRadialXOptions:q(this.defaultYAxisOptions,this.defaultRadialYOptions));b||p?(this.isRadial=!0,g.inverted=!1,A.chart.zoomType=null):this.isRadial=!1;f.call(this,g,k);u||!b&&!p||(f=this.options,g.panes||(g.panes=[]),this.pane=g=g.panes[m]=g.panes[m]||new a(h(A.pane)[m],g,this),g=g.options,this.angleRad=(f.angle||0)*Math.PI/180,this.startAngleRad=(g.startAngle-90)*Math.PI/180,this.endAngleRad=(d(g.endAngle,g.startAngle+360)-90)*Math.PI/180,this.offset=f.offset|| +0,this.isCircular=e)});u(k,"autoLabelAlign",function(a){if(!this.isRadial)return a.apply(this,[].slice.call(arguments,1))});u(b,"getPosition",function(a,d,c,f,h){var g=this.axis;return g.getPosition?g.getPosition(c):a.call(this,d,c,f,h)});u(b,"getLabelPosition",function(a,g,c,f,h,k,b,l,u){var n=this.axis,p=k.y,e=20,y=k.align,v=(n.translate(this.pos)+n.startAngleRad+Math.PI/2)/Math.PI*180%360;n.isRadial?(a=n.getPosition(this.pos,n.center[2]/2+d(k.distance,-25)),"auto"===k.rotation?f.attr({rotation:v}): +null===p&&(p=n.chart.renderer.fontMetrics(f.styles.fontSize).b-f.getBBox().height/2),null===y&&(n.isCircular?(this.label.getBBox().width>n.len*n.tickInterval/(n.max-n.min)&&(e=0),y=v>e&&v<180-e?"left":v>180+e&&v<360-e?"right":"center"):y="center",f.attr({align:y})),a.x+=k.x,a.y+=p):a=a.call(this,g,c,f,h,k,b,l,u);return a});u(b,"getMarkPath",function(a,d,c,f,h,k,b){var g=this.axis;g.isRadial?(a=g.getPosition(this.pos,g.center[2]/2+f),d=["M",d,c,"L",a.x,a.y]):d=a.call(this,d,c,f,h,k,b);return d})})(x); +(function(b){var r=b.each,t=b.noop,w=b.pick,m=b.Series,q=b.seriesType,e=b.seriesTypes;q("arearange","area",{lineWidth:1,marker:null,threshold:null,tooltip:{pointFormat:'\x3cspan style\x3d"color:{series.color}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cb\x3e{point.low}\x3c/b\x3e - \x3cb\x3e{point.high}\x3c/b\x3e\x3cbr/\x3e'},trackByArea:!0,dataLabels:{align:null,verticalAlign:null,xLow:0,xHigh:0,yLow:0,yHigh:0},states:{hover:{halo:!1}}},{pointArrayMap:["low","high"],dataLabelCollections:["dataLabel", +"dataLabelUpper"],toYData:function(a){return[a.low,a.high]},pointValKey:"low",deferTranslatePolar:!0,highToXY:function(a){var d=this.chart,f=this.xAxis.postTranslate(a.rectPlotX,this.yAxis.len-a.plotHigh);a.plotHighX=f.x-d.plotLeft;a.plotHigh=f.y-d.plotTop},translate:function(){var a=this,d=a.yAxis,f=!!a.modifyValue;e.area.prototype.translate.apply(a);r(a.points,function(h){var b=h.low,c=h.high,l=h.plotY;null===c||null===b?h.isNull=!0:(h.plotLow=l,h.plotHigh=d.translate(f?a.modifyValue(c,h):c,0,1, +0,1),f&&(h.yBottom=h.plotHigh))});this.chart.polar&&r(this.points,function(d){a.highToXY(d)})},getGraphPath:function(a){var d=[],f=[],h,b=e.area.prototype.getGraphPath,c,l,k;k=this.options;var p=k.step;a=a||this.points;for(h=a.length;h--;)c=a[h],c.isNull||k.connectEnds||a[h+1]&&!a[h+1].isNull||f.push({plotX:c.plotX,plotY:c.plotY,doCurve:!1}),l={polarPlotY:c.polarPlotY,rectPlotX:c.rectPlotX,yBottom:c.yBottom,plotX:w(c.plotHighX,c.plotX),plotY:c.plotHigh,isNull:c.isNull},f.push(l),d.push(l),c.isNull|| +k.connectEnds||a[h-1]&&!a[h-1].isNull||f.push({plotX:c.plotX,plotY:c.plotY,doCurve:!1});a=b.call(this,a);p&&(!0===p&&(p="left"),k.step={left:"right",center:"center",right:"left"}[p]);d=b.call(this,d);f=b.call(this,f);k.step=p;k=[].concat(a,d);this.chart.polar||"M"!==f[0]||(f[0]="L");this.graphPath=k;this.areaPath=this.areaPath.concat(a,f);k.isArea=!0;k.xMap=a.xMap;this.areaPath.xMap=a.xMap;return k},drawDataLabels:function(){var a=this.data,d=a.length,f,h=[],b=m.prototype,c=this.options.dataLabels, +l=c.align,k=c.verticalAlign,p=c.inside,g,n,e=this.chart.inverted;if(c.enabled||this._hasPointLabels){for(f=d;f--;)if(g=a[f])n=p?g.plotHighg.plotLow,g.y=g.high,g._plotY=g.plotY,g.plotY=g.plotHigh,h[f]=g.dataLabel,g.dataLabel=g.dataLabelUpper,g.below=n,e?l||(c.align=n?"right":"left"):k||(c.verticalAlign=n?"top":"bottom"),c.x=c.xHigh,c.y=c.yHigh;b.drawDataLabels&&b.drawDataLabels.apply(this,arguments);for(f=d;f--;)if(g=a[f])n=p?g.plotHighg.plotLow,g.dataLabelUpper= +g.dataLabel,g.dataLabel=h[f],g.y=g.low,g.plotY=g._plotY,g.below=!n,e?l||(c.align=n?"left":"right"):k||(c.verticalAlign=n?"bottom":"top"),c.x=c.xLow,c.y=c.yLow;b.drawDataLabels&&b.drawDataLabels.apply(this,arguments)}c.align=l;c.verticalAlign=k},alignDataLabel:function(){e.column.prototype.alignDataLabel.apply(this,arguments)},setStackedPoints:t,getSymbol:t,drawPoints:t})})(x);(function(b){var r=b.seriesType;r("areasplinerange","arearange",null,{getPointSpline:b.seriesTypes.spline.prototype.getPointSpline})})(x); +(function(b){var r=b.defaultPlotOptions,t=b.each,w=b.merge,m=b.noop,q=b.pick,e=b.seriesType,a=b.seriesTypes.column.prototype;e("columnrange","arearange",w(r.column,r.arearange,{lineWidth:1,pointRange:null}),{translate:function(){var d=this,f=d.yAxis,b=d.xAxis,u=b.startAngleRad,c,l=d.chart,k=d.xAxis.isRadial,p;a.translate.apply(d);t(d.points,function(a){var g=a.shapeArgs,h=d.options.minPointLength,e,v;a.plotHigh=p=f.translate(a.high,0,1,0,1);a.plotLow=a.plotY;v=p;e=q(a.rectPlotY,a.plotY)-p;Math.abs(e)< +h?(h-=e,e+=h,v-=h/2):0>e&&(e*=-1,v-=e);k?(c=a.barX+u,a.shapeType="path",a.shapeArgs={d:d.polarArc(v+e,v,c,c+a.pointWidth)}):(g.height=e,g.y=v,a.tooltipPos=l.inverted?[f.len+f.pos-l.plotLeft-v-e/2,b.len+b.pos-l.plotTop-g.x-g.width/2,e]:[b.left-l.plotLeft+g.x+g.width/2,f.pos-l.plotTop+v+e/2,e])})},directTouch:!0,trackerGroups:["group","dataLabelsGroup"],drawGraph:m,crispCol:a.crispCol,drawPoints:a.drawPoints,drawTracker:a.drawTracker,getColumnMetrics:a.getColumnMetrics,animate:function(){return a.animate.apply(this, +arguments)},polarArc:function(){return a.polarArc.apply(this,arguments)},pointAttribs:a.pointAttribs})})(x);(function(b){var r=b.each,t=b.isNumber,w=b.merge,m=b.pick,q=b.pInt,e=b.Series,a=b.seriesType,d=b.TrackerMixin;a("gauge","line",{dataLabels:{enabled:!0,defer:!1,y:15,borderRadius:3,crop:!1,verticalAlign:"top",zIndex:2,borderWidth:1,borderColor:"#cccccc"},dial:{},pivot:{},tooltip:{headerFormat:""},showInLegend:!1},{angular:!0,directTouch:!0,drawGraph:b.noop,fixedBox:!0,forceDL:!0,noSharedTooltip:!0, +trackerGroups:["group","dataLabelsGroup"],translate:function(){var a=this.yAxis,d=this.options,b=a.center;this.generatePoints();r(this.points,function(c){var f=w(d.dial,c.dial),k=q(m(f.radius,80))*b[2]/200,h=q(m(f.baseLength,70))*k/100,g=q(m(f.rearLength,10))*k/100,n=f.baseWidth||3,u=f.topWidth||1,e=d.overshoot,v=a.startAngleRad+a.translate(c.y,null,null,null,!0);t(e)?(e=e/180*Math.PI,v=Math.max(a.startAngleRad-e,Math.min(a.endAngleRad+e,v))):!1===d.wrap&&(v=Math.max(a.startAngleRad,Math.min(a.endAngleRad, +v)));v=180*v/Math.PI;c.shapeType="path";c.shapeArgs={d:f.path||["M",-g,-n/2,"L",h,-n/2,k,-u/2,k,u/2,h,n/2,-g,n/2,"z"],translateX:b[0],translateY:b[1],rotation:v};c.plotX=b[0];c.plotY=b[1]})},drawPoints:function(){var a=this,d=a.yAxis.center,b=a.pivot,c=a.options,l=c.pivot,k=a.chart.renderer;r(a.points,function(d){var g=d.graphic,b=d.shapeArgs,f=b.d,h=w(c.dial,d.dial);g?(g.animate(b),b.d=f):(d.graphic=k[d.shapeType](b).attr({rotation:b.rotation,zIndex:1}).addClass("highcharts-dial").add(a.group),d.graphic.attr({stroke:h.borderColor|| +"none","stroke-width":h.borderWidth||0,fill:h.backgroundColor||"#000000"}))});b?b.animate({translateX:d[0],translateY:d[1]}):(a.pivot=k.circle(0,0,m(l.radius,5)).attr({zIndex:2}).addClass("highcharts-pivot").translate(d[0],d[1]).add(a.group),a.pivot.attr({"stroke-width":l.borderWidth||0,stroke:l.borderColor||"#cccccc",fill:l.backgroundColor||"#000000"}))},animate:function(a){var d=this;a||(r(d.points,function(a){var c=a.graphic;c&&(c.attr({rotation:180*d.yAxis.startAngleRad/Math.PI}),c.animate({rotation:a.shapeArgs.rotation}, +d.options.animation))}),d.animate=null)},render:function(){this.group=this.plotGroup("group","series",this.visible?"visible":"hidden",this.options.zIndex,this.chart.seriesGroup);e.prototype.render.call(this);this.group.clip(this.chart.clipRect)},setData:function(a,d){e.prototype.setData.call(this,a,!1);this.processData();this.generatePoints();m(d,!0)&&this.chart.redraw()},drawTracker:d&&d.drawTrackerPoint},{setState:function(a){this.state=a}})})(x);(function(b){var r=b.each,t=b.noop,w=b.pick,m=b.seriesType, +q=b.seriesTypes;m("boxplot","column",{threshold:null,tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eMaximum: {point.high}\x3cbr/\x3eUpper quartile: {point.q3}\x3cbr/\x3eMedian: {point.median}\x3cbr/\x3eLower quartile: {point.q1}\x3cbr/\x3eMinimum: {point.low}\x3cbr/\x3e'},whiskerLength:"50%",fillColor:"#ffffff",lineWidth:1,medianWidth:2,states:{hover:{brightness:-.3}},whiskerWidth:2},{pointArrayMap:["low","q1","median", +"q3","high"],toYData:function(b){return[b.low,b.q1,b.median,b.q3,b.high]},pointValKey:"high",pointAttribs:function(b){var a=this.options,d=b&&b.color||this.color;return{fill:b.fillColor||a.fillColor||d,stroke:a.lineColor||d,"stroke-width":a.lineWidth||0}},drawDataLabels:t,translate:function(){var b=this.yAxis,a=this.pointArrayMap;q.column.prototype.translate.apply(this);r(this.points,function(d){r(a,function(a){null!==d[a]&&(d[a+"Plot"]=b.translate(d[a],0,1,0,1))})})},drawPoints:function(){var b= +this,a=b.options,d=b.chart.renderer,f,h,u,c,l,k,p=0,g,n,m,q,v=!1!==b.doQuartiles,t,x=b.options.whiskerLength;r(b.points,function(e){var r=e.graphic,y=r?"animate":"attr",I=e.shapeArgs,z={},B={},G={},H=e.color||b.color;void 0!==e.plotY&&(g=I.width,n=Math.floor(I.x),m=n+g,q=Math.round(g/2),f=Math.floor(v?e.q1Plot:e.lowPlot),h=Math.floor(v?e.q3Plot:e.lowPlot),u=Math.floor(e.highPlot),c=Math.floor(e.lowPlot),r||(e.graphic=r=d.g("point").add(b.group),e.stem=d.path().addClass("highcharts-boxplot-stem").add(r), +x&&(e.whiskers=d.path().addClass("highcharts-boxplot-whisker").add(r)),v&&(e.box=d.path(void 0).addClass("highcharts-boxplot-box").add(r)),e.medianShape=d.path(void 0).addClass("highcharts-boxplot-median").add(r),z.stroke=e.stemColor||a.stemColor||H,z["stroke-width"]=w(e.stemWidth,a.stemWidth,a.lineWidth),z.dashstyle=e.stemDashStyle||a.stemDashStyle,e.stem.attr(z),x&&(B.stroke=e.whiskerColor||a.whiskerColor||H,B["stroke-width"]=w(e.whiskerWidth,a.whiskerWidth,a.lineWidth),e.whiskers.attr(B)),v&&(r= +b.pointAttribs(e),e.box.attr(r)),G.stroke=e.medianColor||a.medianColor||H,G["stroke-width"]=w(e.medianWidth,a.medianWidth,a.lineWidth),e.medianShape.attr(G)),k=e.stem.strokeWidth()%2/2,p=n+q+k,e.stem[y]({d:["M",p,h,"L",p,u,"M",p,f,"L",p,c]}),v&&(k=e.box.strokeWidth()%2/2,f=Math.floor(f)+k,h=Math.floor(h)+k,n+=k,m+=k,e.box[y]({d:["M",n,h,"L",n,f,"L",m,f,"L",m,h,"L",n,h,"z"]})),x&&(k=e.whiskers.strokeWidth()%2/2,u+=k,c+=k,t=/%$/.test(x)?q*parseFloat(x)/100:x/2,e.whiskers[y]({d:["M",p-t,u,"L",p+t,u, +"M",p-t,c,"L",p+t,c]})),l=Math.round(e.medianPlot),k=e.medianShape.strokeWidth()%2/2,l+=k,e.medianShape[y]({d:["M",n,l,"L",m,l]}))})},setStackedPoints:t})})(x);(function(b){var r=b.each,t=b.noop,w=b.seriesType,m=b.seriesTypes;w("errorbar","boxplot",{color:"#000000",grouping:!1,linkedTo:":previous",tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cb\x3e{point.low}\x3c/b\x3e - \x3cb\x3e{point.high}\x3c/b\x3e\x3cbr/\x3e'},whiskerWidth:null},{type:"errorbar", +pointArrayMap:["low","high"],toYData:function(b){return[b.low,b.high]},pointValKey:"high",doQuartiles:!1,drawDataLabels:m.arearange?function(){var b=this.pointValKey;m.arearange.prototype.drawDataLabels.call(this);r(this.data,function(e){e.y=e[b]})}:t,getColumnMetrics:function(){return this.linkedParent&&this.linkedParent.columnMetrics||m.column.prototype.getColumnMetrics.call(this)}})})(x);(function(b){var r=b.correctFloat,t=b.isNumber,w=b.pick,m=b.Point,q=b.Series,e=b.seriesType,a=b.seriesTypes; +e("waterfall","column",{dataLabels:{inside:!0},lineWidth:1,lineColor:"#333333",dashStyle:"dot",borderColor:"#333333",states:{hover:{lineWidthPlus:0}}},{pointValKey:"y",translate:function(){var d=this.options,b=this.yAxis,h,e,c,l,k,p,g,n,m,q=w(d.minPointLength,5),v=d.threshold,t=d.stacking;a.column.prototype.translate.apply(this);this.minPointLengthOffset=0;g=n=v;e=this.points;h=0;for(d=e.length;hl.height&&(l.y+=l.height,l.height*=-1),c.plotY=l.y=Math.round(l.y)- +this.borderWidth%2/2,l.height=Math.max(Math.round(l.height),.001),c.yBottom=l.y+l.height,l.height<=q&&(l.height=q,this.minPointLengthOffset+=q),l.y-=this.minPointLengthOffset,l=c.plotY+(c.negative?l.height:0)-this.minPointLengthOffset,this.chart.inverted?c.tooltipPos[0]=b.len-l:c.tooltipPos[1]=l},processData:function(a){var b=this.yData,d=this.options.data,e,c=b.length,l,k,p,g,n,m;k=l=p=g=this.options.threshold||0;for(m=0;ma[k-1].y&&(l[2]+=c.height,l[5]+=c.height),e=e.concat(l);return e},drawGraph:function(){q.prototype.drawGraph.call(this);this.graph.attr({d:this.getCrispPath()})},getExtremes:b.noop},{getClassName:function(){var a=m.prototype.getClassName.call(this);this.isSum?a+=" highcharts-sum":this.isIntermediateSum&&(a+=" highcharts-intermediate-sum"); +return a},isValid:function(){return t(this.y,!0)||this.isSum||this.isIntermediateSum}})})(x);(function(b){var r=b.Series,t=b.seriesType,w=b.seriesTypes;t("polygon","scatter",{marker:{enabled:!1,states:{hover:{enabled:!1}}},stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:""},trackByArea:!0},{type:"polygon",getGraphPath:function(){for(var b=r.prototype.getGraphPath.call(this),q=b.length+1;q--;)(q===b.length||"M"===b[q])&&0=this.minPxSize/2?(d.shapeType="circle",d.shapeArgs={x:d.plotX,y:d.plotY,r:c},d.dlBox={x:d.plotX-c,y:d.plotY-c,width:2*c,height:2*c}):d.shapeArgs=d.plotY=d.dlBox=void 0},drawLegendSymbol:function(a,b){var d=this.chart.renderer,c=d.fontMetrics(a.itemStyle.fontSize).f/2;b.legendSymbol=d.circle(c,a.baseline-c,c).attr({zIndex:3}).add(b.legendGroup);b.legendSymbol.isMarker= +!0},drawPoints:l.column.prototype.drawPoints,alignDataLabel:l.column.prototype.alignDataLabel,buildKDTree:a,applyZones:a},{haloPath:function(a){return h.prototype.haloPath.call(this,this.shapeArgs.r+a)},ttBelow:!1});w.prototype.beforePadding=function(){var a=this,b=this.len,c=this.chart,h=0,l=b,u=this.isXAxis,m=u?"xData":"yData",w=this.min,x={},A=Math.min(c.plotWidth,c.plotHeight),C=Number.MAX_VALUE,D=-Number.MAX_VALUE,E=this.max-w,z=b/E,F=[];q(this.series,function(b){var g=b.options;!b.bubblePadding|| +!b.visible&&c.options.chart.ignoreHiddenSeries||(a.allowZoomOutside=!0,F.push(b),u&&(q(["minSize","maxSize"],function(a){var b=g[a],d=/%$/.test(b),b=f(b);x[a]=d?A*b/100:b}),b.minPxSize=x.minSize,b.maxPxSize=Math.max(x.maxSize,x.minSize),b=b.zData,b.length&&(C=d(g.zMin,Math.min(C,Math.max(t(b),!1===g.displayNegative?g.zThreshold:-Number.MAX_VALUE))),D=d(g.zMax,Math.max(D,r(b))))))});q(F,function(b){var d=b[m],c=d.length,f;u&&b.getRadii(C,D,b.minPxSize,b.maxPxSize);if(0f&&(f+=360),a.clientX=f):a.clientX=a.plotX};m.spline&&q(m.spline.prototype,"getPointSpline",function(a,b,f,h){var d,c,e,k,p,g,n;this.chart.polar?(d=f.plotX, +c=f.plotY,a=b[h-1],e=b[h+1],this.connectEnds&&(a||(a=b[b.length-2]),e||(e=b[1])),a&&e&&(k=a.plotX,p=a.plotY,b=e.plotX,g=e.plotY,k=(1.5*d+k)/2.5,p=(1.5*c+p)/2.5,e=(1.5*d+b)/2.5,n=(1.5*c+g)/2.5,b=Math.sqrt(Math.pow(k-d,2)+Math.pow(p-c,2)),g=Math.sqrt(Math.pow(e-d,2)+Math.pow(n-c,2)),k=Math.atan2(p-c,k-d),p=Math.atan2(n-c,e-d),n=Math.PI/2+(k+p)/2,Math.abs(k-n)>Math.PI/2&&(n-=Math.PI),k=d+Math.cos(n)*b,p=c+Math.sin(n)*b,e=d+Math.cos(Math.PI+n)*g,n=c+Math.sin(Math.PI+n)*g,f.rightContX=e,f.rightContY=n), +h?(f=["C",a.rightContX||a.plotX,a.rightContY||a.plotY,k||d,p||c,d,c],a.rightContX=a.rightContY=null):f=["M",d,c]):f=a.call(this,b,f,h);return f});q(e,"translate",function(a){var b=this.chart;a.call(this);if(b.polar&&(this.kdByAngle=b.tooltip&&b.tooltip.shared,!this.preventPostTranslate))for(a=this.points,b=a.length;b--;)this.toXY(a[b])});q(e,"getGraphPath",function(a,b){var d=this,e,m;if(this.chart.polar){b=b||this.points;for(e=0;eb.center[1]}),q(m,"alignDataLabel",function(a,b,f,h,m,c){this.chart.polar?(a=b.rectPlotX/Math.PI*180,null===h.align&&(h.align=20a?"left":200a?"right":"center"),null===h.verticalAlign&&(h.verticalAlign=45>a||315a?"top":"middle"),e.alignDataLabel.call(this,b,f,h,m,c)):a.call(this, +b,f,h,m,c)}));q(b,"getCoordinates",function(a,b){var d=this.chart,e={xAxis:[],yAxis:[]};d.polar?t(d.axes,function(a){var c=a.isXAxis,f=a.center,h=b.chartX-f[0]-d.plotLeft,f=b.chartY-f[1]-d.plotTop;e[c?"xAxis":"yAxis"].push({axis:a,value:a.translate(c?Math.PI-Math.atan2(h,f):Math.sqrt(Math.pow(h,2)+Math.pow(f,2)),!0)})}):e=a.call(this,b);return e})})(x)}); diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/highstock.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/highstock.js new file mode 100644 index 0000000..34a3f91 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/highstock.js @@ -0,0 +1,496 @@ +/* + Highstock JS v5.0.3 (2016-11-18) + + (c) 2009-2016 Torstein Honsi + + License: www.highcharts.com/license +*/ +(function(N,a){"object"===typeof module&&module.exports?module.exports=N.document?a(N):a:N.Highcharts=a(N)})("undefined"!==typeof window?window:this,function(N){N=function(){var a=window,D=a.document,B=a.navigator&&a.navigator.userAgent||"",G=D&&D.createElementNS&&!!D.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,H=/(edge|msie|trident)/i.test(B)&&!window.opera,p=!G,l=/Firefox/.test(B),r=l&&4>parseInt(B.split("Firefox/")[1],10);return a.Highcharts?a.Highcharts.error(16,!0):{product:"Highstock", +version:"5.0.3",deg2rad:2*Math.PI/360,doc:D,hasBidiBug:r,hasTouch:D&&void 0!==D.documentElement.ontouchstart,isMS:H,isWebKit:/AppleWebKit/.test(B),isFirefox:l,isTouchDevice:/(Mobile|Android|Windows Phone)/.test(B),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:G,vml:p,win:a,charts:[],marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){}}}();(function(a){var D=[],B=a.charts,G=a.doc,H=a.win;a.error=function(a,l){a="Highcharts error #"+ +a+": www.highcharts.com/errors/"+a;if(l)throw Error(a);H.console&&console.log(a)};a.Fx=function(a,l,r){this.options=l;this.elem=a;this.prop=r};a.Fx.prototype={dSetter:function(){var a=this.paths[0],l=this.paths[1],r=[],w=this.now,t=a.length,k;if(1===w)r=this.toD;else if(t===l.length&&1>w)for(;t--;)k=parseFloat(a[t]),r[t]=isNaN(k)?a[t]:w*parseFloat(l[t]-k)+k;else r=l;this.elem.attr("d",r)},update:function(){var a=this.elem,l=this.prop,r=this.now,w=this.options.step;if(this[l+"Setter"])this[l+"Setter"](); +else a.attr?a.element&&a.attr(l,r):a.style[l]=r+this.unit;w&&w.call(a,r,this)},run:function(a,l,r){var p=this,t=function(a){return t.stopped?!1:p.step(a)},k;this.startTime=+new Date;this.start=a;this.end=l;this.unit=r;this.now=this.start;this.pos=0;t.elem=this.elem;t()&&1===D.push(t)&&(t.timerId=setInterval(function(){for(k=0;k=k+this.startTime){this.now=this.end;this.pos=1;this.update();a=m[this.prop]=!0;for(e in m)!0!==m[e]&&(a=!1);a&&t&&t.call(p);p=!1}else this.pos=w.easing((l-this.startTime)/k),this.now=this.start+(this.end-this.start)*this.pos,this.update(),p=!0;return p},initPath:function(p,l,r){function w(a){for(b=a.length;b--;)"M"!==a[b]&&"L"!==a[b]||a.splice(b+1,0,a[b+1],a[b+2],a[b+1],a[b+2])}function t(a,c){for(;a.lengthm?"AM":"PM",P:12>m?"am":"pm",S:q(t.getSeconds()),L:q(Math.round(l%1E3),3)},a.dateFormats);for(k in w)for(;-1!==p.indexOf("%"+k);)p= +p.replace("%"+k,"function"===typeof w[k]?w[k](l):w[k]);return r?p.substr(0,1).toUpperCase()+p.substr(1):p};a.formatSingle=function(p,l){var r=/\.([0-9])/,w=a.defaultOptions.lang;/f$/.test(p)?(r=(r=p.match(r))?r[1]:-1,null!==l&&(l=a.numberFormat(l,r,w.decimalPoint,-1=r&&(l=[1/r])));for(w=0;w=p||!t&&k<=(l[w]+(l[w+1]||l[w]))/ +2);w++);return m*r};a.stableSort=function(a,l){var r=a.length,p,t;for(t=0;tr&&(r=a[l]);return r};a.destroyObjectProperties=function(a,l){for(var r in a)a[r]&&a[r]!==l&&a[r].destroy&&a[r].destroy(),delete a[r]};a.discardElement=function(p){var l= +a.garbageBin;l||(l=a.createElement("div"));p&&l.appendChild(p);l.innerHTML=""};a.correctFloat=function(a,l){return parseFloat(a.toPrecision(l||14))};a.setAnimation=function(p,l){l.renderer.globalAnimation=a.pick(p,l.options.chart.animation,!0)};a.animObject=function(p){return a.isObject(p)?a.merge(p):{duration:p?500:0}};a.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5};a.numberFormat=function(p,l,r,w){p=+p||0;l=+l;var t=a.defaultOptions.lang, +k=(p.toString().split(".")[1]||"").length,m,e,g=Math.abs(p);-1===l?l=Math.min(k,20):a.isNumber(l)||(l=2);m=String(a.pInt(g.toFixed(l)));e=3p?"-":"")+(e?m.substr(0,e)+w:"");p+=m.substr(e).replace(/(\d{3})(?=\d)/g,"$1"+w);l&&(w=Math.abs(g-m+Math.pow(10,-Math.max(l,k)-1)),p+=r+w.toFixed(l).slice(2));return p};Math.easeInOutSine=function(a){return-.5*(Math.cos(Math.PI*a)-1)};a.getStyle=function(p,l){return"width"===l?Math.min(p.offsetWidth, +p.scrollWidth)-a.getStyle(p,"padding-left")-a.getStyle(p,"padding-right"):"height"===l?Math.min(p.offsetHeight,p.scrollHeight)-a.getStyle(p,"padding-top")-a.getStyle(p,"padding-bottom"):(p=H.getComputedStyle(p,void 0))&&a.pInt(p.getPropertyValue(l))};a.inArray=function(a,l){return l.indexOf?l.indexOf(a):[].indexOf.call(l,a)};a.grep=function(a,l){return[].filter.call(a,l)};a.map=function(a,l){for(var r=[],p=0,t=a.length;pl;l++)w[l]+=p(255*a),0>w[l]&&(w[l]=0),255z.width)z={width:0,height:0}}else z=this.htmlGetBBox();b.isSVG&&(a=z.width, +b=z.height,c&&L&&"11px"===L.fontSize&&"16.9"===b.toPrecision(3)&&(z.height=b=14),v&&(z.width=Math.abs(b*Math.sin(d))+Math.abs(a*Math.cos(d)),z.height=Math.abs(b*Math.cos(d))+Math.abs(a*Math.sin(d))));if(g&&0]*>/g,"")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,this.textStr=a,this.added&&this.renderer.buildText(this))},fillSetter:function(a,c,v){"string"===typeof a?v.setAttribute(c, +a):a&&this.colorGradient(a,c,v)},visibilitySetter:function(a,c,v){"inherit"===a?v.removeAttribute(c):v.setAttribute(c,a)},zIndexSetter:function(a,c){var v=this.renderer,z=this.parentGroup,b=(z||v).element||v.box,d,n=this.element,f;d=this.added;var e;k(a)&&(n.zIndex=a,a=+a,this[c]===a&&(d=!1),this[c]=a);if(d){(a=this.zIndex)&&z&&(z.handleZ=!0);c=b.childNodes;for(e=0;ea||!k(a)&&k(d)||0>a&&!k(d)&&b!==v.box)&&(b.insertBefore(n,z),f=!0);f||b.appendChild(n)}return f}, +_defaultSetter:function(a,c,v){v.setAttribute(c,a)}};D.prototype.yGetter=D.prototype.xGetter;D.prototype.translateXSetter=D.prototype.translateYSetter=D.prototype.rotationSetter=D.prototype.verticalAlignSetter=D.prototype.scaleXSetter=D.prototype.scaleYSetter=function(a,c){this[c]=a;this.doTransform=!0};D.prototype["stroke-widthSetter"]=D.prototype.strokeSetter=function(a,c,v){this[c]=a;this.stroke&&this["stroke-width"]?(D.prototype.fillSetter.call(this,this.stroke,"stroke",v),v.setAttribute("stroke-width", +this["stroke-width"]),this.hasStroke=!0):"stroke-width"===c&&0===a&&this.hasStroke&&(v.removeAttribute("stroke"),this.hasStroke=!1)};B=a.SVGRenderer=function(){this.init.apply(this,arguments)};B.prototype={Element:D,SVG_NS:K,init:function(a,c,v,b,d,n){var z;b=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"}).css(this.getStyle(b));z=b.element;a.appendChild(z);-1===a.innerHTML.indexOf("xmlns")&&p(z,"xmlns",this.SVG_NS);this.isSVG=!0;this.box=z;this.boxWrapper=b;this.alignedObjects= +[];this.url=(E||A)&&g.getElementsByTagName("base").length?R.location.href.replace(/#.*?$/,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(g.createTextNode("Created with Highstock 5.0.3"));this.defs=this.createElement("defs").add();this.allowHTML=n;this.forExport=d;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(c,v,!1);var f;E&&a.getBoundingClientRect&&(c=function(){w(a,{left:0,top:0});f=a.getBoundingClientRect(); +w(a,{left:Math.ceil(f.left)-f.left+"px",top:Math.ceil(f.top)-f.top+"px"})},c(),this.unSubPixelFix=G(R,"resize",c))},getStyle:function(a){return this.style=C({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},a)},setStyle:function(a){this.boxWrapper.css(this.getStyle(a))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();e(this.gradients||{});this.gradients= +null;a&&(this.defs=a.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(a){var c=new this.Element;c.init(this,a);return c},draw:J,getRadialAttr:function(a,c){return{cx:a[0]-a[2]/2+c.cx*a[2],cy:a[1]-a[2]/2+c.cy*a[2],r:c.r*a[2]}},buildText:function(a){for(var c=a.element,z=this,b=z.forExport,n=y(a.textStr,"").toString(),f=-1!==n.indexOf("\x3c"),e=c.childNodes,q,F,x,A,I=p(c,"x"),m=a.styles,k=a.textWidth,C=m&&m.lineHeight,M=m&&m.textOutline,J=m&& +"ellipsis"===m.textOverflow,E=e.length,O=k&&!a.added&&this.box,t=function(a){var v;v=/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize:m&&m.fontSize||z.style.fontSize||12;return C?u(C):z.fontMetrics(v,a.getAttribute("style")?a:c).h};E--;)c.removeChild(e[E]);f||M||J||k||-1!==n.indexOf(" ")?(q=/<.*class="([^"]+)".*>/,F=/<.*style="([^"]+)".*>/,x=/<.*href="(http[^"]+)".*>/,O&&O.appendChild(c),n=f?n.replace(/<(b|strong)>/g,'\x3cspan style\x3d"font-weight:bold"\x3e').replace(/<(i|em)>/g,'\x3cspan style\x3d"font-style:italic"\x3e').replace(//g,"\x3c/span\x3e").split(//g):[n],n=d(n,function(a){return""!==a}),h(n,function(d,n){var f,e=0;d=d.replace(/^\s+|\s+$/g,"").replace(//g,"\x3c/span\x3e|||");f=d.split("|||");h(f,function(d){if(""!==d||1===f.length){var u={},y=g.createElementNS(z.SVG_NS,"tspan"),L,h;q.test(d)&&(L=d.match(q)[1],p(y,"class",L));F.test(d)&&(h=d.match(F)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),p(y,"style",h));x.test(d)&&!b&&(p(y, +"onclick",'location.href\x3d"'+d.match(x)[1]+'"'),w(y,{cursor:"pointer"}));d=(d.replace(/<(.|\n)*?>/g,"")||" ").replace(/</g,"\x3c").replace(/>/g,"\x3e");if(" "!==d){y.appendChild(g.createTextNode(d));e?u.dx=0:n&&null!==I&&(u.x=I);p(y,u);c.appendChild(y);!e&&n&&(!v&&b&&w(y,{display:"block"}),p(y,"dy",t(y)));if(k){u=d.replace(/([^\^])-/g,"$1- ").split(" ");L="nowrap"===m.whiteSpace;for(var C=1k,void 0===A&&(A=M),J&&A?(Q/=2,""===l||!M&&.5>Q?u=[]:(l=d.substring(0,l.length+(M?-1:1)*Math.ceil(Q)),u=[l+(3k&&(k=P)),u.length&&y.appendChild(g.createTextNode(u.join(" ").replace(/- /g, +"-")));a.rotation=R}e++}}})}),A&&a.attr("title",a.textStr),O&&O.removeChild(c),M&&a.applyTextOutline&&a.applyTextOutline(M)):c.appendChild(g.createTextNode(n.replace(/</g,"\x3c").replace(/>/g,"\x3e")))},getContrast:function(a){a=r(a).rgba;return 510v?d>c+f&&de?d>c+f&&db&&e>a+f&&ed&&e>a+f&&ea?a+3:Math.round(1.2*a);return{h:c,b:Math.round(.8*c),f:a}},rotCorr:function(a, +c,v){var b=a;c&&v&&(b=Math.max(b*Math.cos(c*m),4));return{x:-a/3*Math.sin(c*m),y:b}},label:function(a,c,v,b,d,n,f,e,K){var q=this,u=q.g("button"!==K&&"label"),y=u.text=q.text("",0,0,f).attr({zIndex:1}),g,F,z=0,A=3,L=0,m,M,J,E,O,t={},l,R,r=/^url\((.*?)\)$/.test(b),p=r,P,w,Q,S;K&&u.addClass("highcharts-"+K);p=r;P=function(){return(l||0)%2/2};w=function(){var a=y.element.style,c={};F=(void 0===m||void 0===M||O)&&k(y.textStr)&&y.getBBox();u.width=(m||F.width||0)+2*A+L;u.height=(M||F.height||0)+2*A;R= +A+q.fontMetrics(a&&a.fontSize,y).b;p&&(g||(u.box=g=q.symbols[b]||r?q.symbol(b):q.rect(),g.addClass(("button"===K?"":"highcharts-label-box")+(K?" highcharts-"+K+"-box":"")),g.add(u),a=P(),c.x=a,c.y=(e?-R:0)+a),c.width=Math.round(u.width),c.height=Math.round(u.height),g.attr(C(c,t)),t={})};Q=function(){var a=L+A,c;c=e?0:R;k(m)&&F&&("center"===O||"right"===O)&&(a+={center:.5,right:1}[O]*(m-F.width));if(a!==y.x||c!==y.y)y.attr("x",a),void 0!==c&&y.attr("y",c);y.x=a;y.y=c};S=function(a,c){g?g.attr(a,c): +t[a]=c};u.onAdd=function(){y.add(u);u.attr({text:a||0===a?a:"",x:c,y:v});g&&k(d)&&u.attr({anchorX:d,anchorY:n})};u.widthSetter=function(a){m=a};u.heightSetter=function(a){M=a};u["text-alignSetter"]=function(a){O=a};u.paddingSetter=function(a){k(a)&&a!==A&&(A=u.padding=a,Q())};u.paddingLeftSetter=function(a){k(a)&&a!==L&&(L=a,Q())};u.alignSetter=function(a){a={left:0,center:.5,right:1}[a];a!==z&&(z=a,F&&u.attr({x:J}))};u.textSetter=function(a){void 0!==a&&y.textSetter(a);w();Q()};u["stroke-widthSetter"]= +function(a,c){a&&(p=!0);l=this["stroke-width"]=a;S(c,a)};u.strokeSetter=u.fillSetter=u.rSetter=function(a,c){"fill"===c&&a&&(p=!0);S(c,a)};u.anchorXSetter=function(a,c){d=a;S(c,Math.round(a)-P()-J)};u.anchorYSetter=function(a,c){n=a;S(c,a-E)};u.xSetter=function(a){u.x=a;z&&(a-=z*((m||F.width)+2*A));J=Math.round(a);u.attr("translateX",J)};u.ySetter=function(a){E=u.y=Math.round(a);u.attr("translateY",E)};var T=u.css;return C(u,{css:function(a){if(a){var c={};a=x(a);h(u.textProps,function(v){void 0!== +a[v]&&(c[v]=a[v],delete a[v])});y.css(c)}return T.call(u,a)},getBBox:function(){return{width:F.width+2*A,height:F.height+2*A,x:F.x-A,y:F.y-A}},shadow:function(a){a&&(w(),g&&g.shadow(a));return u},destroy:function(){I(u.element,"mouseenter");I(u.element,"mouseleave");y&&(y=y.destroy());g&&(g=g.destroy());D.prototype.destroy.call(u);u=q=w=Q=S=null}})}};a.Renderer=B})(N);(function(a){var D=a.attr,B=a.createElement,G=a.css,H=a.defined,p=a.each,l=a.extend,r=a.isFirefox,w=a.isMS,t=a.isWebKit,k=a.pInt,m= +a.SVGRenderer,e=a.win,g=a.wrap;l(a.SVGElement.prototype,{htmlCss:function(a){var e=this.element;if(e=a&&"SPAN"===e.tagName&&a.width)delete a.width,this.textWidth=e,this.updateTransform();a&&"ellipsis"===a.textOverflow&&(a.whiteSpace="nowrap",a.overflow="hidden");this.styles=l(this.styles,a);G(this.element,a);return this},htmlGetBBox:function(){var a=this.element;"text"===a.nodeName&&(a.style.position="absolute");return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var a= +this.renderer,e=this.element,f=this.translateX||0,d=this.translateY||0,b=this.x||0,q=this.y||0,g=this.textAlign||"left",c={left:0,center:.5,right:1}[g],F=this.styles;G(e,{marginLeft:f,marginTop:d});this.shadows&&p(this.shadows,function(a){G(a,{marginLeft:f+1,marginTop:d+1})});this.inverted&&p(e.childNodes,function(c){a.invertChild(c,e)});if("SPAN"===e.tagName){var n=this.rotation,A=k(this.textWidth),x=F&&F.whiteSpace,m=[n,g,e.innerHTML,this.textWidth,this.textAlign].join();m!==this.cTT&&(F=a.fontMetrics(e.style.fontSize).b, +H(n)&&this.setSpanRotation(n,c,F),G(e,{width:"",whiteSpace:x||"nowrap"}),e.offsetWidth>A&&/[ \-]/.test(e.textContent||e.innerText)&&G(e,{width:A+"px",display:"block",whiteSpace:x||"normal"}),this.getSpanCorrection(e.offsetWidth,F,c,n,g));G(e,{left:b+(this.xCorr||0)+"px",top:q+(this.yCorr||0)+"px"});t&&(F=e.offsetHeight);this.cTT=m}}else this.alignOnAdd=!0},setSpanRotation:function(a,g,f){var d={},b=w?"-ms-transform":t?"-webkit-transform":r?"MozTransform":e.opera?"-o-transform":"";d[b]=d.transform= +"rotate("+a+"deg)";d[b+(r?"Origin":"-origin")]=d.transformOrigin=100*g+"% "+f+"px";G(this.element,d)},getSpanCorrection:function(a,e,f){this.xCorr=-a*f;this.yCorr=-e}});l(m.prototype,{html:function(a,e,f){var d=this.createElement("span"),b=d.element,q=d.renderer,h=q.isSVG,c=function(a,c){p(["opacity","visibility"],function(b){g(a,b+"Setter",function(a,b,d,n){a.call(this,b,d,n);c[d]=b})})};d.textSetter=function(a){a!==b.innerHTML&&delete this.bBox;b.innerHTML=this.textStr=a;d.htmlUpdateTransform()}; +h&&c(d,d.element.style);d.xSetter=d.ySetter=d.alignSetter=d.rotationSetter=function(a,c){"align"===c&&(c="textAlign");d[c]=a;d.htmlUpdateTransform()};d.attr({text:a,x:Math.round(e),y:Math.round(f)}).css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize,position:"absolute"});b.style.whiteSpace="nowrap";d.css=d.htmlCss;h&&(d.add=function(a){var n,f=q.box.parentNode,e=[];if(this.parentGroup=a){if(n=a.div,!n){for(;a;)e.push(a),a=a.parentGroup;p(e.reverse(),function(a){var b,d=D(a.element, +"class");d&&(d={className:d});n=a.div=a.div||B("div",d,{position:"absolute",left:(a.translateX||0)+"px",top:(a.translateY||0)+"px",display:a.display,opacity:a.opacity,pointerEvents:a.styles&&a.styles.pointerEvents},n||f);b=n.style;l(a,{translateXSetter:function(c,d){b.left=c+"px";a[d]=c;a.doTransform=!0},translateYSetter:function(c,d){b.top=c+"px";a[d]=c;a.doTransform=!0}});c(a,b)})}}else n=f;n.appendChild(b);d.added=!0;d.alignOnAdd&&d.htmlUpdateTransform();return d});return d}})})(N);(function(a){var D, +B,G=a.createElement,H=a.css,p=a.defined,l=a.deg2rad,r=a.discardElement,w=a.doc,t=a.each,k=a.erase,m=a.extend;D=a.extendClass;var e=a.isArray,g=a.isNumber,h=a.isObject,C=a.merge;B=a.noop;var f=a.pick,d=a.pInt,b=a.SVGElement,q=a.SVGRenderer,E=a.win;a.svg||(B={docMode8:w&&8===w.documentMode,init:function(a,b){var c=["\x3c",b,' filled\x3d"f" stroked\x3d"f"'],d=["position: ","absolute",";"],f="div"===b;("shape"===b||f)&&d.push("left:0;top:0;width:1px;height:1px;");d.push("visibility: ",f?"hidden":"visible"); +c.push(' style\x3d"',d.join(""),'"/\x3e');b&&(c=f||"span"===b||"img"===b?c.join(""):a.prepVML(c),this.element=G(c));this.renderer=a},add:function(a){var c=this.renderer,b=this.element,d=c.box,f=a&&a.inverted,d=a?a.element||a:d;a&&(this.parentGroup=a);f&&c.invertChild(b,d);d.appendChild(b);this.added=!0;this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform();if(this.onAdd)this.onAdd();this.className&&this.attr("class",this.className);return this},updateTransform:b.prototype.htmlUpdateTransform, +setSpanRotation:function(){var a=this.rotation,b=Math.cos(a*l),d=Math.sin(a*l);H(this.element,{filter:a?["progid:DXImageTransform.Microsoft.Matrix(M11\x3d",b,", M12\x3d",-d,", M21\x3d",d,", M22\x3d",b,", sizingMethod\x3d'auto expand')"].join(""):"none"})},getSpanCorrection:function(a,b,d,e,q){var c=e?Math.cos(e*l):1,n=e?Math.sin(e*l):0,u=f(this.elemHeight,this.element.offsetHeight),g;this.xCorr=0>c&&-a;this.yCorr=0>n&&-u;g=0>c*n;this.xCorr+=n*b*(g?1-d:d);this.yCorr-=c*b*(e?g?d:1-d:1);q&&"left"!== +q&&(this.xCorr-=a*d*(0>c?-1:1),e&&(this.yCorr-=u*d*(0>n?-1:1)),H(this.element,{textAlign:q}))},pathToVML:function(a){for(var c=a.length,b=[];c--;)g(a[c])?b[c]=Math.round(10*a[c])-5:"Z"===a[c]?b[c]="x":(b[c]=a[c],!a.isArc||"wa"!==a[c]&&"at"!==a[c]||(b[c+5]===b[c+7]&&(b[c+7]+=a[c+7]>a[c+5]?1:-1),b[c+6]===b[c+8]&&(b[c+8]+=a[c+8]>a[c+6]?1:-1)));return b.join(" ")||"x"},clip:function(a){var c=this,b;a?(b=a.members,k(b,c),b.push(c),c.destroyClip=function(){k(b,c)},a=a.getCSS(c)):(c.destroyClip&&c.destroyClip(), +a={clip:c.docMode8?"inherit":"rect(auto)"});return c.css(a)},css:b.prototype.htmlCss,safeRemoveChild:function(a){a.parentNode&&r(a)},destroy:function(){this.destroyClip&&this.destroyClip();return b.prototype.destroy.apply(this)},on:function(a,b){this.element["on"+a]=function(){var a=E.event;a.target=a.srcElement;b(a)};return this},cutOffPath:function(a,b){var c;a=a.split(/[ ,]/);c=a.length;if(9===c||11===c)a[c-4]=a[c-2]=d(a[c-2])-10*b;return a.join(" ")},shadow:function(a,b,e){var c=[],n,q=this.element, +g=this.renderer,u,I=q.style,F,v=q.path,K,h,m,z;v&&"string"!==typeof v.value&&(v="x");h=v;if(a){m=f(a.width,3);z=(a.opacity||.15)/m;for(n=1;3>=n;n++)K=2*m+1-2*n,e&&(h=this.cutOffPath(v.value,K+.5)),F=['\x3cshape isShadow\x3d"true" strokeweight\x3d"',K,'" filled\x3d"false" path\x3d"',h,'" coordsize\x3d"10 10" style\x3d"',q.style.cssText,'" /\x3e'],u=G(g.prepVML(F),null,{left:d(I.left)+f(a.offsetX,1),top:d(I.top)+f(a.offsetY,1)}),e&&(u.cutOff=K+1),F=['\x3cstroke color\x3d"',a.color||"#000000",'" opacity\x3d"', +z*n,'"/\x3e'],G(g.prepVML(F),null,null,u),b?b.element.appendChild(u):q.parentNode.insertBefore(u,q),c.push(u);this.shadows=c}return this},updateShadows:B,setAttr:function(a,b){this.docMode8?this.element[a]=b:this.element.setAttribute(a,b)},classSetter:function(a){(this.added?this.element:this).className=a},dashstyleSetter:function(a,b,d){(d.getElementsByTagName("stroke")[0]||G(this.renderer.prepVML(["\x3cstroke/\x3e"]),null,null,d))[b]=a||"solid";this[b]=a},dSetter:function(a,b,d){var c=this.shadows; +a=a||[];this.d=a.join&&a.join(" ");d.path=a=this.pathToVML(a);if(c)for(d=c.length;d--;)c[d].path=c[d].cutOff?this.cutOffPath(a,c[d].cutOff):a;this.setAttr(b,a)},fillSetter:function(a,b,d){var c=d.nodeName;"SPAN"===c?d.style.color=a:"IMG"!==c&&(d.filled="none"!==a,this.setAttr("fillcolor",this.renderer.color(a,d,b,this)))},"fill-opacitySetter":function(a,b,d){G(this.renderer.prepVML(["\x3c",b.split("-")[0],' opacity\x3d"',a,'"/\x3e']),null,null,d)},opacitySetter:B,rotationSetter:function(a,b,d){d= +d.style;this[b]=d[b]=a;d.left=-Math.round(Math.sin(a*l)+1)+"px";d.top=Math.round(Math.cos(a*l))+"px"},strokeSetter:function(a,b,d){this.setAttr("strokecolor",this.renderer.color(a,d,b,this))},"stroke-widthSetter":function(a,b,d){d.stroked=!!a;this[b]=a;g(a)&&(a+="px");this.setAttr("strokeweight",a)},titleSetter:function(a,b){this.setAttr(b,a)},visibilitySetter:function(a,b,d){"inherit"===a&&(a="visible");this.shadows&&t(this.shadows,function(c){c.style[b]=a});"DIV"===d.nodeName&&(a="hidden"===a?"-999em": +0,this.docMode8||(d.style[b]=a?"visible":"hidden"),b="top");d.style[b]=a},xSetter:function(a,b,d){this[b]=a;"x"===b?b="left":"y"===b&&(b="top");this.updateClipping?(this[b]=a,this.updateClipping()):d.style[b]=a},zIndexSetter:function(a,b,d){d.style[b]=a}},B["stroke-opacitySetter"]=B["fill-opacitySetter"],a.VMLElement=B=D(b,B),B.prototype.ySetter=B.prototype.widthSetter=B.prototype.heightSetter=B.prototype.xSetter,B={Element:B,isIE8:-1l[0]&&c.push([1,l[1]]);t(c,function(c,b){q.test(c[1])?(n=a.color(c[1]),v=n.get("rgb"),K=n.get("a")):(v=c[1],K=1);r.push(100*c[0]+"% "+v);b?(m=K,k=v):(z=K,E=v)});if("fill"===d)if("gradient"===g)d=A.x1||A[0]||0,c=A.y1||A[1]||0,F=A.x2||A[2]||0,A=A.y2||A[3]||0,C='angle\x3d"'+(90-180*Math.atan((A-c)/(F-d))/Math.PI)+'"',p();else{var h=A.r,w=2*h,B=2*h,D=A.cx,H=A.cy,V=b.radialReference,U,h=function(){V&&(U=f.getBBox(),D+=(V[0]- +U.x)/U.width-.5,H+=(V[1]-U.y)/U.height-.5,w*=V[2]/U.width,B*=V[2]/U.height);C='src\x3d"'+a.getOptions().global.VMLRadialGradientURL+'" size\x3d"'+w+","+B+'" origin\x3d"0.5,0.5" position\x3d"'+D+","+H+'" color2\x3d"'+E+'" ';p()};f.added?h():f.onAdd=h;h=k}else h=v}else q.test(c)&&"IMG"!==b.tagName?(n=a.color(c),f[d+"-opacitySetter"](n.get("a"),d,b),h=n.get("rgb")):(h=b.getElementsByTagName(d),h.length&&(h[0].opacity=1,h[0].type="solid"),h=c);return h},prepVML:function(a){var c=this.isIE8;a=a.join(""); +c?(a=a.replace("/\x3e",' xmlns\x3d"urn:schemas-microsoft-com:vml" /\x3e'),a=-1===a.indexOf('style\x3d"')?a.replace("/\x3e",' style\x3d"display:inline-block;behavior:url(#default#VML);" /\x3e'):a.replace('style\x3d"','style\x3d"display:inline-block;behavior:url(#default#VML);')):a=a.replace("\x3c","\x3chcv:");return a},text:q.prototype.html,path:function(a){var c={coordsize:"10 10"};e(a)?c.d=a:h(a)&&m(c,a);return this.createElement("shape").attr(c)},circle:function(a,b,d){var c=this.symbol("circle"); +h(a)&&(d=a.r,b=a.y,a=a.x);c.isCircle=!0;c.r=d;return c.attr({x:a,y:b})},g:function(a){var c;a&&(c={className:"highcharts-"+a,"class":"highcharts-"+a});return this.createElement("div").attr(c)},image:function(a,b,d,f,e){var c=this.createElement("img").attr({src:a});1f&&m-d*bg&&(F=Math.round((e-m)/Math.cos(f*w)));else if(e=m+(1-d)*b,m-d*bg&&(E=g-a.x+E*d,c=-1),E=Math.min(q, +E),EE||k.autoRotation&&(C.styles||{}).width)F=E;F&&(n.width=F,(k.options.labels.style||{}).textOverflow||(n.textOverflow="ellipsis"),C.css(n))},getPosition:function(a,k,m,e){var g=this.axis,h=g.chart,l=e&&h.oldChartHeight||h.chartHeight;return{x:a?g.translate(k+m,null,null,e)+g.transB:g.left+g.offset+(g.opposite?(e&&h.oldChartWidth||h.chartWidth)-g.right-g.left:0),y:a?l-g.bottom+g.offset-(g.opposite?g.height:0):l-g.translate(k+m,null, +null,e)-g.transB}},getLabelPosition:function(a,k,m,e,g,h,l,f){var d=this.axis,b=d.transA,q=d.reversed,E=d.staggerLines,c=d.tickRotCorr||{x:0,y:0},F=g.y;B(F)||(F=0===d.side?m.rotation?-8:-m.getBBox().height:2===d.side?c.y+8:Math.cos(m.rotation*w)*(c.y-m.getBBox(!1,0).height/2));a=a+g.x+c.x-(h&&e?h*b*(q?-1:1):0);k=k+F-(h&&!e?h*b*(q?1:-1):0);E&&(m=l/(f||1)%E,d.opposite&&(m=E-m-1),k+=d.labelOffset/E*m);return{x:a,y:Math.round(k)}},getMarkPath:function(a,k,m,e,g,h){return h.crispLine(["M",a,k,"L",a+(g? +0:-m),k+(g?m:0)],e)},render:function(a,k,m){var e=this.axis,g=e.options,h=e.chart.renderer,C=e.horiz,f=this.type,d=this.label,b=this.pos,q=g.labels,E=this.gridLine,c=f?f+"Tick":"tick",F=e.tickSize(c),n=this.mark,A=!n,x=q.step,p={},y=!0,u=e.tickmarkOffset,I=this.getPosition(C,b,u,k),M=I.x,I=I.y,v=C&&M===e.pos+e.len||!C&&I===e.pos?-1:1,K=f?f+"Grid":"grid",O=g[K+"LineWidth"],R=g[K+"LineColor"],z=g[K+"LineDashStyle"],K=l(g[c+"Width"],!f&&e.isXAxis?1:0),c=g[c+"Color"];m=l(m,1);this.isActive=!0;E||(p.stroke= +R,p["stroke-width"]=O,z&&(p.dashstyle=z),f||(p.zIndex=1),k&&(p.opacity=0),this.gridLine=E=h.path().attr(p).addClass("highcharts-"+(f?f+"-":"")+"grid-line").add(e.gridGroup));if(!k&&E&&(b=e.getPlotLinePath(b+u,E.strokeWidth()*v,k,!0)))E[this.isNew?"attr":"animate"]({d:b,opacity:m});F&&(e.opposite&&(F[0]=-F[0]),A&&(this.mark=n=h.path().addClass("highcharts-"+(f?f+"-":"")+"tick").add(e.axisGroup),n.attr({stroke:c,"stroke-width":K})),n[A?"attr":"animate"]({d:this.getMarkPath(M,I,F[0],n.strokeWidth()* +v,C,h),opacity:m}));d&&H(M)&&(d.xy=I=this.getLabelPosition(M,I,d,C,q,u,a,x),this.isFirst&&!this.isLast&&!l(g.showFirstLabel,1)||this.isLast&&!this.isFirst&&!l(g.showLastLabel,1)?y=!1:!C||e.isRadial||q.step||q.rotation||k||0===m||this.handleOverflow(I),x&&a%x&&(y=!1),y&&H(I.y)?(I.opacity=m,d[this.isNew?"attr":"animate"](I)):(r(d),d.attr("y",-9999)),this.isNew=!1)},destroy:function(){G(this,this.axis)}}})(N);(function(a){var D=a.addEvent,B=a.animObject,G=a.arrayMax,H=a.arrayMin,p=a.AxisPlotLineOrBandExtension, +l=a.color,r=a.correctFloat,w=a.defaultOptions,t=a.defined,k=a.deg2rad,m=a.destroyObjectProperties,e=a.each,g=a.error,h=a.extend,C=a.fireEvent,f=a.format,d=a.getMagnitude,b=a.grep,q=a.inArray,E=a.isArray,c=a.isNumber,F=a.isString,n=a.merge,A=a.normalizeTickInterval,x=a.pick,J=a.PlotLineOrBand,y=a.removeEvent,u=a.splat,I=a.syncTimeout,M=a.Tick;a.Axis=function(){this.init.apply(this,arguments)};a.Axis.prototype={defaultOptions:{dateTimeLabelFormats:{millisecond:"%H:%M:%S.%L",second:"%H:%M:%S",minute:"%H:%M", +hour:"%H:%M",day:"%e. %b",week:"%e. %b",month:"%b '%y",year:"%Y"},endOnTick:!1,labels:{enabled:!0,style:{color:"#666666",cursor:"default",fontSize:"11px"},x:0},minPadding:.01,maxPadding:.01,minorTickLength:2,minorTickPosition:"outside",startOfWeek:1,startOnTick:!1,tickLength:10,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",title:{align:"middle",style:{color:"#666666"}},type:"linear",minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#ccd6eb", +lineWidth:1,gridLineColor:"#e6e6e6",tickColor:"#ccd6eb"},defaultYAxisOptions:{endOnTick:!0,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},maxPadding:.05,minPadding:.05,startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{enabled:!1,formatter:function(){return a.numberFormat(this.total,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"#000000",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},defaultLeftAxisOptions:{labels:{x:-15},title:{rotation:270}},defaultRightAxisOptions:{labels:{x:15}, +title:{rotation:90}},defaultBottomAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},defaultTopAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},init:function(a,c){var b=c.isX;this.chart=a;this.horiz=a.inverted?!b:b;this.isXAxis=b;this.coll=this.coll||(b?"xAxis":"yAxis");this.opposite=c.opposite;this.side=c.side||(this.horiz?this.opposite?0:2:this.opposite?1:3);this.setOptions(c);var d=this.options,v=d.type;this.labelFormatter=d.labels.formatter||this.defaultLabelFormatter; +this.userOptions=c;this.minPixelPadding=0;this.reversed=d.reversed;this.visible=!1!==d.visible;this.zoomEnabled=!1!==d.zoomEnabled;this.hasNames="category"===v||!0===d.categories;this.categories=d.categories||this.hasNames;this.names=this.names||[];this.isLog="logarithmic"===v;this.isDatetimeAxis="datetime"===v;this.isLinked=t(d.linkedTo);this.ticks={};this.labelEdge=[];this.minorTicks={};this.plotLinesAndBands=[];this.alternateBands={};this.len=0;this.minRange=this.userMinRange=d.minRange||d.maxZoom; +this.range=d.range;this.offset=d.offset||0;this.stacks={};this.oldStacks={};this.stacksTouched=0;this.min=this.max=null;this.crosshair=x(d.crosshair,u(a.options.tooltip.crosshairs)[b?0:1],!1);var f;c=this.options.events;-1===q(this,a.axes)&&(b?a.axes.splice(a.xAxis.length,0,this):a.axes.push(this),a[this.coll].push(this));this.series=this.series||[];a.inverted&&b&&void 0===this.reversed&&(this.reversed=!0);this.removePlotLine=this.removePlotBand=this.removePlotBandOrLine;for(f in c)D(this,f,c[f]); +this.isLog&&(this.val2lin=this.log2lin,this.lin2val=this.lin2log)},setOptions:function(a){this.options=n(this.defaultOptions,"yAxis"===this.coll&&this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],n(w[this.coll],a))},defaultLabelFormatter:function(){var c=this.axis,b=this.value,d=c.categories,e=this.dateTimeLabelFormat,q=w.lang,u=q.numericSymbols,q=q.numericSymbolMagnitude||1E3,n=u&&u.length,g,y=c.options.labels.format, +c=c.isLog?b:c.tickInterval;if(y)g=f(y,this);else if(d)g=b;else if(e)g=a.dateFormat(e,b);else if(n&&1E3<=c)for(;n--&&void 0===g;)d=Math.pow(q,n+1),c>=d&&0===10*b%d&&null!==u[n]&&0!==b&&(g=a.numberFormat(b/d,-1)+u[n]);void 0===g&&(g=1E4<=Math.abs(b)?a.numberFormat(b,-1):a.numberFormat(b,-1,void 0,""));return g},getSeriesExtremes:function(){var a=this,d=a.chart;a.hasVisibleSeries=!1;a.dataMin=a.dataMax=a.threshold=null;a.softThreshold=!a.isXAxis;a.buildStacks&&a.buildStacks();e(a.series,function(v){if(v.visible|| +!d.options.chart.ignoreHiddenSeries){var f=v.options,e=f.threshold,q;a.hasVisibleSeries=!0;a.isLog&&0>=e&&(e=null);if(a.isXAxis)f=v.xData,f.length&&(v=H(f),c(v)||v instanceof Date||(f=b(f,function(a){return c(a)}),v=H(f)),a.dataMin=Math.min(x(a.dataMin,f[0]),v),a.dataMax=Math.max(x(a.dataMax,f[0]),G(f)));else if(v.getExtremes(),q=v.dataMax,v=v.dataMin,t(v)&&t(q)&&(a.dataMin=Math.min(x(a.dataMin,v),v),a.dataMax=Math.max(x(a.dataMax,q),q)),t(e)&&(a.threshold=e),!f.softThreshold||a.isLog)a.softThreshold= +!1}})},translate:function(a,b,d,f,e,q){var v=this.linkedParent||this,u=1,n=0,g=f?v.oldTransA:v.transA;f=f?v.oldMin:v.min;var K=v.minPixelPadding;e=(v.isOrdinal||v.isBroken||v.isLog&&e)&&v.lin2val;g||(g=v.transA);d&&(u*=-1,n=v.len);v.reversed&&(u*=-1,n-=u*(v.sector||v.len));b?(a=(a*u+n-K)/g+f,e&&(a=v.lin2val(a))):(e&&(a=v.val2lin(a)),a=u*(a-f)*g+n+u*K+(c(q)?g*q:0));return a},toPixels:function(a,c){return this.translate(a,!1,!this.horiz,null,!0)+(c?0:this.pos)},toValue:function(a,c){return this.translate(a- +(c?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(a,b,d,f,e){var v=this.chart,q=this.left,u=this.top,n,g,K=d&&v.oldChartHeight||v.chartHeight,y=d&&v.oldChartWidth||v.chartWidth,z;n=this.transB;var h=function(a,c,b){if(ab)f?a=Math.min(Math.max(c,a),b):z=!0;return a};e=x(e,this.translate(a,null,null,d));a=d=Math.round(e+n);n=g=Math.round(K-e-n);c(e)?this.horiz?(n=u,g=K-this.bottom,a=d=h(a,q,q+this.width)):(a=q,d=y-this.right,n=g=h(n,u,u+this.height)):z=!0;return z&&!f?null:v.renderer.crispLine(["M", +a,n,"L",d,g],b||1)},getLinearTickPositions:function(a,b,d){var v,f=r(Math.floor(b/a)*a),e=r(Math.ceil(d/a)*a),q=[];if(b===d&&c(b))return[b];for(b=f;b<=e;){q.push(b);b=r(b+a);if(b===v)break;v=b}return q},getMinorTickPositions:function(){var a=this.options,c=this.tickPositions,b=this.minorTickInterval,d=[],f,e=this.pointRangePadding||0;f=this.min-e;var e=this.max+e,q=e-f;if(q&&q/b=this.minRange,q,u,n,g,y,h;this.isXAxis&&void 0===this.minRange&&!this.isLog&&(t(a.min)||t(a.max)?this.minRange=null:(e(this.series,function(a){g=a.xData;for(u=y=a.xIncrement? +1:g.length-1;0=E?(p=E,m=0):b.dataMax<=E&&(J=E,I=0)),b.min=x(w,p,b.dataMin),b.max=x(B,J,b.dataMax));q&&(!a&&0>=Math.min(b.min, +x(b.dataMin,b.min))&&g(10,1),b.min=r(u(b.min),15),b.max=r(u(b.max),15));b.range&&t(b.max)&&(b.userMin=b.min=w=Math.max(b.min,b.minFromRange()),b.userMax=B=b.max,b.range=null);C(b,"foundExtremes");b.beforePadding&&b.beforePadding();b.adjustForMinRange();!(l||b.axisPointRange||b.usePercentage||h)&&t(b.min)&&t(b.max)&&(u=b.max-b.min)&&(!t(w)&&m&&(b.min-=u*m),!t(B)&&I&&(b.max+=u*I));c(f.floor)?b.min=Math.max(b.min,f.floor):c(f.softMin)&&(b.min=Math.min(b.min,f.softMin));c(f.ceiling)?b.max=Math.min(b.max, +f.ceiling):c(f.softMax)&&(b.max=Math.max(b.max,f.softMax));M&&t(b.dataMin)&&(E=E||0,!t(w)&&b.min=E?b.min=E:!t(B)&&b.max>E&&b.dataMax<=E&&(b.max=E));b.tickInterval=b.min===b.max||void 0===b.min||void 0===b.max?1:h&&!k&&F===b.linkedParent.options.tickPixelInterval?k=b.linkedParent.tickInterval:x(k,this.tickAmount?(b.max-b.min)/Math.max(this.tickAmount-1,1):void 0,l?1:(b.max-b.min)*F/Math.max(b.len,F));y&&!a&&e(b.series,function(a){a.processData(b.min!==b.oldMin||b.max!==b.oldMax)});b.setAxisTranslation(!0); +b.beforeSetTickPositions&&b.beforeSetTickPositions();b.postProcessTickInterval&&(b.tickInterval=b.postProcessTickInterval(b.tickInterval));b.pointRange&&!k&&(b.tickInterval=Math.max(b.pointRange,b.tickInterval));a=x(f.minTickInterval,b.isDatetimeAxis&&b.closestPointRange);!k&&b.tickIntervalb.tickInterval&&1E3b.max)),!!this.tickAmount));this.tickAmount||(b.tickInterval= +b.unsquish());this.setTickPositions()},setTickPositions:function(){var a=this.options,b,c=a.tickPositions,d=a.tickPositioner,f=a.startOnTick,e=a.endOnTick,q;this.tickmarkOffset=this.categories&&"between"===a.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval="auto"===a.minorTickInterval&&this.tickInterval?this.tickInterval/5:a.minorTickInterval;this.tickPositions=b=c&&c.slice();!b&&(b=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,a.units), +this.min,this.max,a.startOfWeek,this.ordinalPositions,this.closestPointRange,!0):this.isLog?this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max),b.length>this.len&&(b=[b[0],b.pop()]),this.tickPositions=b,d&&(d=d.apply(this,[this.min,this.max])))&&(this.tickPositions=b=d);this.isLinked||(this.trimTicks(b,f,e),this.min===this.max&&t(this.min)&&!this.tickAmount&&(q=!0,this.min-=.5,this.max+=.5),this.single=q,c||d||this.adjustTickAmount())}, +trimTicks:function(a,b,c){var d=a[0],f=a[a.length-1],v=this.minPointOffset||0;if(b)this.min=d;else for(;this.min-v>a[0];)a.shift();if(c)this.max=f;else for(;this.max+vb&&(this.finalTickAmt=b,b=5);this.tickAmount=b},adjustTickAmount:function(){var a=this.tickInterval,b=this.tickPositions,c=this.tickAmount,d=this.finalTickAmt,f=b&&b.length;if(fc&&(this.tickInterval*= +2,this.setTickPositions());if(t(d)){for(a=c=b.length;a--;)(3===d&&1===a%2||2>=d&&0=f&&(b=f)),this.displayBtn=void 0!==a||void 0!==b,this.setExtremes(a,b,!1,void 0,{trigger:"zoom"});return!0},setAxisSize:function(){var a=this.chart,b=this.options,c=b.offsetLeft||0,d=this.horiz,f=x(b.width,a.plotWidth-c+(b.offsetRight||0)),e=x(b.height,a.plotHeight),q=x(b.top,a.plotTop),b=x(b.left,a.plotLeft+c),c=/%$/;c.test(e)&&(e=Math.round(parseFloat(e)/ +100*a.plotHeight));c.test(q)&&(q=Math.round(parseFloat(q)/100*a.plotHeight+a.plotTop));this.left=b;this.top=q;this.width=f;this.height=e;this.bottom=a.chartHeight-e-q;this.right=a.chartWidth-f-b;this.len=Math.max(d?f:e,0);this.pos=d?b:q},getExtremes:function(){var a=this.isLog,b=this.lin2log;return{min:a?r(b(this.min)):this.min,max:a?r(b(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var b=this.isLog,c=this.lin2log, +d=b?c(this.min):this.min,b=b?c(this.max):this.max;null===a?a=d:d>a?a=d:ba?"right":195a?"left":"center"},tickSize:function(a){var b=this.options,c=b[a+"Length"],d=x(b[a+"Width"],"tick"===a&&this.isXAxis?1:0);if(d&&c)return"inside"===b[a+"Position"]&&(c=-c),[c,d]},labelMetrics:function(){return this.chart.renderer.fontMetrics(this.options.labels.style&&this.options.labels.style.fontSize, +this.ticks[0]&&this.ticks[0].label)},unsquish:function(){var a=this.options.labels,b=this.horiz,c=this.tickInterval,d=c,f=this.len/(((this.categories?1:0)+this.max-this.min)/c),q,u=a.rotation,n=this.labelMetrics(),g,y=Number.MAX_VALUE,h,I=function(a){a/=f||1;a=1=a)g=I(Math.abs(n.h/Math.sin(k*a))),b=g+Math.abs(a/360),b(c.step||0)&&!c.rotation&&(this.staggerLines||1)*a.plotWidth/d||!b&&(f&&f-a.spacing[3]||.33*a.chartWidth)},renderUnsquish:function(){var a=this.chart,b=a.renderer,c=this.tickPositions,d=this.ticks,f=this.options.labels,q=this.horiz,u=this.getSlotWidth(),g=Math.max(1, +Math.round(u-2*(f.padding||5))),y={},h=this.labelMetrics(),I=f.style&&f.style.textOverflow,A,x=0,m,k;F(f.rotation)||(y.rotation=f.rotation||0);e(c,function(a){(a=d[a])&&a.labelLength>x&&(x=a.labelLength)});this.maxLabelLength=x;if(this.autoRotation)x>g&&x>h.h?y.rotation=this.labelRotation:this.labelRotation=0;else if(u&&(A={width:g+"px"},!I))for(A.textOverflow="clip",m=c.length;!q&&m--;)if(k=c[m],g=d[k].label)g.styles&&"ellipsis"===g.styles.textOverflow?g.css({textOverflow:"clip"}):d[k].labelLength> +u&&g.css({width:u+"px"}),g.getBBox().height>this.len/c.length-(h.h-h.f)&&(g.specCss={textOverflow:"ellipsis"});y.rotation&&(A={width:(x>.5*a.chartHeight?.33*a.chartHeight:a.chartHeight)+"px"},I||(A.textOverflow="ellipsis"));if(this.labelAlign=f.align||this.autoLabelAlign(this.labelRotation))y.align=this.labelAlign;e(c,function(a){var b=(a=d[a])&&a.label;b&&(b.attr(y),A&&b.css(n(A,b.specCss)),delete b.specCss,a.rotation=y.rotation)});this.tickRotCorr=b.rotCorr(h.b,this.labelRotation||0,0!==this.side)}, +hasData:function(){return this.hasVisibleSeries||t(this.min)&&t(this.max)&&!!this.tickPositions},getOffset:function(){var a=this,b=a.chart,c=b.renderer,d=a.options,f=a.tickPositions,q=a.ticks,u=a.horiz,n=a.side,g=b.inverted?[1,0,3,2][n]:n,y,h,I=0,A,m=0,k=d.title,F=d.labels,E=0,l=a.opposite,C=b.axisOffset,b=b.clipOffset,p=[-1,1,1,-1][n],r,J=d.className,w=a.axisParent,B=this.tickSize("tick");y=a.hasData();a.showAxis=h=y||x(d.showEmpty,!0);a.staggerLines=a.horiz&&F.staggerLines;a.axisGroup||(a.gridGroup= +c.g("grid").attr({zIndex:d.gridZIndex||1}).addClass("highcharts-"+this.coll.toLowerCase()+"-grid "+(J||"")).add(w),a.axisGroup=c.g("axis").attr({zIndex:d.zIndex||2}).addClass("highcharts-"+this.coll.toLowerCase()+" "+(J||"")).add(w),a.labelGroup=c.g("axis-labels").attr({zIndex:F.zIndex||7}).addClass("highcharts-"+a.coll.toLowerCase()+"-labels "+(J||"")).add(w));if(y||a.isLinked)e(f,function(b){q[b]?q[b].addLabel():q[b]=new M(a,b)}),a.renderUnsquish(),!1===F.reserveSpace||0!==n&&2!==n&&{1:"left",3:"right"}[n]!== +a.labelAlign&&"center"!==a.labelAlign||e(f,function(a){E=Math.max(q[a].getLabelSize(),E)}),a.staggerLines&&(E*=a.staggerLines,a.labelOffset=E*(a.opposite?-1:1));else for(r in q)q[r].destroy(),delete q[r];k&&k.text&&!1!==k.enabled&&(a.axisTitle||((r=k.textAlign)||(r=(u?{low:"left",middle:"center",high:"right"}:{low:l?"right":"left",middle:"center",high:l?"left":"right"})[k.align]),a.axisTitle=c.text(k.text,0,0,k.useHTML).attr({zIndex:7,rotation:k.rotation||0,align:r}).addClass("highcharts-axis-title").css(k.style).add(a.axisGroup), +a.axisTitle.isNew=!0),h&&(I=a.axisTitle.getBBox()[u?"height":"width"],A=k.offset,m=t(A)?0:x(k.margin,u?5:10)),a.axisTitle[h?"show":"hide"](!0));a.renderLine();a.offset=p*x(d.offset,C[n]);a.tickRotCorr=a.tickRotCorr||{x:0,y:0};c=0===n?-a.labelMetrics().h:2===n?a.tickRotCorr.y:0;m=Math.abs(E)+m;E&&(m=m-c+p*(u?x(F.y,a.tickRotCorr.y+8*p):F.x));a.axisTitleMargin=x(A,m);C[n]=Math.max(C[n],a.axisTitleMargin+I+p*a.offset,m,y&&f.length&&B?B[0]:0);d=d.offset?0:2*Math.floor(a.axisLine.strokeWidth()/2);b[g]= +Math.max(b[g],d)},getLinePath:function(a){var b=this.chart,c=this.opposite,d=this.offset,f=this.horiz,e=this.left+(c?this.width:0)+d,d=b.chartHeight-this.bottom-(c?this.height:0)+d;c&&(a*=-1);return b.renderer.crispLine(["M",f?this.left:e,f?d:this.top,"L",f?b.chartWidth-this.right:e,f?d:b.chartHeight-this.bottom],a)},renderLine:function(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.axisLine.attr({stroke:this.options.lineColor, +"stroke-width":this.options.lineWidth,zIndex:7}))},getTitlePosition:function(){var a=this.horiz,b=this.left,c=this.top,d=this.len,f=this.options.title,e=a?b:c,q=this.opposite,u=this.offset,n=f.x||0,g=f.y||0,y=this.chart.renderer.fontMetrics(f.style&&f.style.fontSize,this.axisTitle).f,d={low:e+(a?0:d),middle:e+d/2,high:e+(a?d:0)}[f.align],b=(a?c+this.height:b)+(a?1:-1)*(q?-1:1)*this.axisTitleMargin+(2===this.side?y:0);return{x:a?d+n:b+(q?this.width:0)+u+n,y:a?b+g-(q?this.height:0)+u:d+g}},render:function(){var a= +this,b=a.chart,d=b.renderer,f=a.options,q=a.isLog,u=a.lin2log,n=a.isLinked,g=a.tickPositions,y=a.axisTitle,h=a.ticks,A=a.minorTicks,x=a.alternateBands,m=f.stackLabels,k=f.alternateGridColor,F=a.tickmarkOffset,E=a.axisLine,l=b.hasRendered&&c(a.oldMin),C=a.showAxis,p=B(d.globalAnimation),r,t;a.labelEdge.length=0;a.overlap=!1;e([h,A,x],function(a){for(var b in a)a[b].isActive=!1});if(a.hasData()||n)a.minorTickInterval&&!a.categories&&e(a.getMinorTickPositions(),function(b){A[b]||(A[b]=new M(a,b,"minor")); +l&&A[b].isNew&&A[b].render(null,!0);A[b].render(null,!1,1)}),g.length&&(e(g,function(b,c){if(!n||b>=a.min&&b<=a.max)h[b]||(h[b]=new M(a,b)),l&&h[b].isNew&&h[b].render(c,!0,.1),h[b].render(c)}),F&&(0===a.min||a.single)&&(h[-1]||(h[-1]=new M(a,-1,null,!0)),h[-1].render(-1))),k&&e(g,function(c,d){t=void 0!==g[d+1]?g[d+1]+F:a.max-F;0===d%2&&c=e.second?0:A*Math.floor(c.getMilliseconds()/A));if(n>=e.second)c[B.hcSetSeconds](n>=e.minute?0:A*Math.floor(c.getSeconds()/ +A));if(n>=e.minute)c[B.hcSetMinutes](n>=e.hour?0:A*Math.floor(c[B.hcGetMinutes]()/A));if(n>=e.hour)c[B.hcSetHours](n>=e.day?0:A*Math.floor(c[B.hcGetHours]()/A));if(n>=e.day)c[B.hcSetDate](n>=e.month?1:A*Math.floor(c[B.hcGetDate]()/A));n>=e.month&&(c[B.hcSetMonth](n>=e.year?0:A*Math.floor(c[B.hcGetMonth]()/A)),g=c[B.hcGetFullYear]());if(n>=e.year)c[B.hcSetFullYear](g-g%A);if(n===e.week)c[B.hcSetDate](c[B.hcGetDate]()-c[B.hcGetDay]()+m(f,1));g=c[B.hcGetFullYear]();f=c[B.hcGetMonth]();var C=c[B.hcGetDate](), +y=c[B.hcGetHours]();if(B.hcTimezoneOffset||B.hcGetTimezoneOffset)x=(!q||!!B.hcGetTimezoneOffset)&&(k-h>4*e.month||t(h)!==t(k)),c=c.getTime(),c=new B(c+t(c));q=c.getTime();for(h=1;qr&&(!t||b<=w)&&void 0!==b&&h.push(b),b>w&&(q=!0),b=d;else r=e(r),w= +e(w),a=k[t?"minorTickInterval":"tickInterval"],a=p("auto"===a?null:a,this._minorAutoInterval,k.tickPixelInterval/(t?5:1)*(w-r)/((t?m/this.tickPositions.length:m)||1)),a=H(a,null,B(a)),h=G(this.getLinearTickPositions(a,r,w),g),t||(this._minorAutoInterval=a/5);t||(this.tickInterval=a);return h};D.prototype.log2lin=function(a){return Math.log(a)/Math.LN10};D.prototype.lin2log=function(a){return Math.pow(10,a)}})(N);(function(a){var D=a.dateFormat,B=a.each,G=a.extend,H=a.format,p=a.isNumber,l=a.map,r= +a.merge,w=a.pick,t=a.splat,k=a.stop,m=a.syncTimeout,e=a.timeUnits;a.Tooltip=function(){this.init.apply(this,arguments)};a.Tooltip.prototype={init:function(a,e){this.chart=a;this.options=e;this.crosshairs=[];this.now={x:0,y:0};this.isHidden=!0;this.split=e.split&&!a.inverted;this.shared=e.shared||this.split},cleanSplit:function(a){B(this.chart.series,function(e){var g=e&&e.tt;g&&(!g.isActive||a?e.tt=g.destroy():g.isActive=!1)})},getLabel:function(){var a=this.chart.renderer,e=this.options;this.label|| +(this.split?this.label=a.g("tooltip"):(this.label=a.label("",0,0,e.shape||"callout",null,null,e.useHTML,null,"tooltip").attr({padding:e.padding,r:e.borderRadius}),this.label.attr({fill:e.backgroundColor,"stroke-width":e.borderWidth}).css(e.style).shadow(e.shadow)),this.label.attr({zIndex:8}).add());return this.label},update:function(a){this.destroy();this.init(this.chart,r(!0,this.options,a))},destroy:function(){this.label&&(this.label=this.label.destroy());this.split&&this.tt&&(this.cleanSplit(this.chart, +!0),this.tt=this.tt.destroy());clearTimeout(this.hideTimer);clearTimeout(this.tooltipTimeout)},move:function(a,e,m,f){var d=this,b=d.now,q=!1!==d.options.animation&&!d.isHidden&&(1h-q?h:h-q);else if(v)b[a]=Math.max(g,e+q+f>c?e:e+q);else return!1},x=function(a,c,f,e){var q;ec-d?q=!1:b[a]=ec-f/2?c-f-2:e-f/2;return q},k=function(a){var b=c;c=h;h=b;g=a},y=function(){!1!==A.apply(0,c)?!1!==x.apply(0,h)||g||(k(!0),y()):g?b.x=b.y=0:(k(!0),y())};(f.inverted||1y&&(q=!1);a=(e.series&&e.series.yAxis&&e.series.yAxis.pos)+(e.plotY||0);a-=d.plotTop;f.push({target:e.isHeader?d.plotHeight+c:a,rank:e.isHeader?1:0,size:n.tt.getBBox().height+1,point:e,x:y,tt:A})});this.cleanSplit(); +a.distribute(f,d.plotHeight+c);B(f,function(a){var b=a.point;a.tt.attr({visibility:void 0===a.pos?"hidden":"inherit",x:q||b.isHeader?a.x:b.plotX+d.plotLeft+w(m.distance,16),y:a.pos+d.plotTop,anchorX:b.plotX+d.plotLeft,anchorY:b.isHeader?a.pos+d.plotTop-15:b.plotY+d.plotTop})})},updatePosition:function(a){var e=this.chart,g=this.getLabel(),g=(this.options.positioner||this.getPosition).call(this,g.width,g.height,a);this.move(Math.round(g.x),Math.round(g.y||0),a.plotX+e.plotLeft,a.plotY+e.plotTop)}, +getXDateFormat:function(a,h,m){var f;h=h.dateTimeLabelFormats;var d=m&&m.closestPointRange,b,q={millisecond:15,second:12,minute:9,hour:6,day:3},g,c="millisecond";if(d){g=D("%m-%d %H:%M:%S.%L",a.x);for(b in e){if(d===e.week&&+D("%w",a.x)===m.options.startOfWeek&&"00:00:00.000"===g.substr(6)){b="week";break}if(e[b]>d){b=c;break}if(q[b]&&g.substr(q[b])!=="01-01 00:00:00.000".substr(q[b]))break;"week"!==b&&(c=b)}b&&(f=h[b])}else f=h.day;return f||h.year},tooltipFooterHeaderFormatter:function(a,e){var g= +e?"footer":"header";e=a.series;var f=e.tooltipOptions,d=f.xDateFormat,b=e.xAxis,q=b&&"datetime"===b.options.type&&p(a.key),g=f[g+"Format"];q&&!d&&(d=this.getXDateFormat(a,f,b));q&&d&&(g=g.replace("{point.key}","{point.key:"+d+"}"));return H(g,{point:a,series:e})},bodyFormatter:function(a){return l(a,function(a){var e=a.series.tooltipOptions;return(e.pointFormatter||a.point.tooltipFormatter).call(a.point,e.pointFormat)})}}})(N);(function(a){var D=a.addEvent,B=a.attr,G=a.charts,H=a.color,p=a.css,l= +a.defined,r=a.doc,w=a.each,t=a.extend,k=a.fireEvent,m=a.offset,e=a.pick,g=a.removeEvent,h=a.splat,C=a.Tooltip,f=a.win;a.Pointer=function(a,b){this.init(a,b)};a.Pointer.prototype={init:function(a,b){this.options=b;this.chart=a;this.runChartClick=b.chart.events&&!!b.chart.events.click;this.pinchDown=[];this.lastValidTouch={};C&&b.tooltip.enabled&&(a.tooltip=new C(a,b.tooltip),this.followTouchMove=e(b.tooltip.followTouchMove,!0));this.setDOMEvents()},zoomOption:function(a){var b=this.chart,d=b.options.chart, +f=d.zoomType||"",b=b.inverted;/touch/.test(a.type)&&(f=e(d.pinchType,f));this.zoomX=a=/x/.test(f);this.zoomY=f=/y/.test(f);this.zoomHor=a&&!b||f&&b;this.zoomVert=f&&!b||a&&b;this.hasZoom=a||f},normalize:function(a,b){var d,e;a=a||f.event;a.target||(a.target=a.srcElement);e=a.touches?a.touches.length?a.touches.item(0):a.changedTouches[0]:a;b||(this.chartPosition=b=m(this.chart.container));void 0===e.pageX?(d=Math.max(a.x,a.clientX-b.left),b=a.y):(d=e.pageX-b.left,b=e.pageY-b.top);return t(a,{chartX:Math.round(d), +chartY:Math.round(b)})},getCoordinates:function(a){var b={xAxis:[],yAxis:[]};w(this.chart.axes,function(d){b[d.isXAxis?"xAxis":"yAxis"].push({axis:d,value:d.toValue(a[d.horiz?"chartX":"chartY"])})});return b},runPointActions:function(d){var b=this.chart,f=b.series,g=b.tooltip,c=g?g.shared:!1,h=!0,n=b.hoverPoint,m=b.hoverSeries,x,k,y,u=[],I;if(!c&&!m)for(x=0;xb.series.index?-1:1}));if(c)for(x=u.length;x--;)(u[x].x!==u[0].x||u[x].series.noSharedTooltip)&&u.splice(x,1);if(u[0]&&(u[0]!==this.prevKDPoint||g&&g.isHidden)){if(c&& +!u[0].series.noSharedTooltip){for(x=0;xh+k&&(f=h+k),cm+y&&(c=m+y),this.hasDragged=Math.sqrt(Math.pow(l-f,2)+Math.pow(v-c,2)),10x.max&&(l=x.max-c,v=!0);v?(u-=.8*(u-g[f][0]),J||(M-=.8*(M-g[f][1])),p()):g[f]=[u,M];A||(e[f]=F-E,e[q]=c);e=A?1/n:n;m[q]=c;m[f]=l;k[A?a?"scaleY":"scaleX":"scale"+d]=n;k["translate"+d]=e* +E+(u-e*y)},pinch:function(a){var r=this,t=r.chart,k=r.pinchDown,m=a.touches,e=m.length,g=r.lastValidTouch,h=r.hasZoom,C=r.selectionMarker,f={},d=1===e&&(r.inClass(a.target,"highcharts-tracker")&&t.runTrackerClick||r.runChartClick),b={};1b-6&&n(u||d.chartWidth- +2*x-v-e.x)&&(this.itemX=v,this.itemY+=p+this.lastLineHeight+I,this.lastLineHeight=0);this.maxItemWidth=Math.max(this.maxItemWidth,c);this.lastItemY=p+this.itemY+I;this.lastLineHeight=Math.max(g,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];f?this.itemX+=c:(this.itemY+=p+g+I,this.lastLineHeight=g);this.offsetWidth=u||Math.max((f?this.itemX-v-l:c)+x,this.offsetWidth)},getAllItems:function(){var a=[];l(this.chart.series,function(d){var b=d&&d.options;d&&m(b.showInLegend,p(b.linkedTo)? +!1:void 0,!0)&&(a=a.concat(d.legendItems||("point"===b.legendType?d.data:d)))});return a},adjustMargins:function(a,d){var b=this.chart,e=this.options,f=e.align.charAt(0)+e.verticalAlign.charAt(0)+e.layout.charAt(0);e.floating||l([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(c,g){c.test(f)&&!p(a[g])&&(b[t[g]]=Math.max(b[t[g]],b.legend[(g+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][g]*e[g%2?"x":"y"]+m(e.margin,12)+d[g]))})},render:function(){var a=this,d=a.chart,b=d.renderer, +e=a.group,h,c,m,n,k=a.box,x=a.options,p=a.padding;a.itemX=a.initialItemX;a.itemY=a.initialItemY;a.offsetWidth=0;a.lastItemY=0;e||(a.group=e=b.g("legend").attr({zIndex:7}).add(),a.contentGroup=b.g().attr({zIndex:1}).add(e),a.scrollGroup=b.g().add(a.contentGroup));a.renderTitle();h=a.getAllItems();g(h,function(a,b){return(a.options&&a.options.legendIndex||0)-(b.options&&b.options.legendIndex||0)});x.reversed&&h.reverse();a.allItems=h;a.display=c=!!h.length;a.lastLineHeight=0;l(h,function(b){a.renderItem(b)}); +m=(x.width||a.offsetWidth)+p;n=a.lastItemY+a.lastLineHeight+a.titleHeight;n=a.handleOverflow(n);n+=p;k||(a.box=k=b.rect().addClass("highcharts-legend-box").attr({r:x.borderRadius}).add(e),k.isNew=!0);k.attr({stroke:x.borderColor,"stroke-width":x.borderWidth||0,fill:x.backgroundColor||"none"}).shadow(x.shadow);0b&&!1!==h.enabled?(this.clipHeight=g=Math.max(b-20-this.titleHeight-I,0),this.currentPage=m(this.currentPage,1),this.fullHeight=a,l(v,function(a,b){var c=a._legendItemPos[1];a=Math.round(a.legendItem.getBBox().height);var d=u.length;if(!d||c-u[d-1]>g&&(r||c)!==u[d-1])u.push(r||c),d++;b===v.length-1&&c+a-u[d-1]>g&&u.push(c);c!==r&&(r=c)}),n||(n=d.clipRect= +e.clipRect(0,I,9999,0),d.contentGroup.clip(n)),t(g),y||(this.nav=y=e.g().attr({zIndex:1}).add(this.group),this.up=e.symbol("triangle",0,0,p,p).on("click",function(){d.scroll(-1,k)}).add(y),this.pager=e.text("",15,10).addClass("highcharts-legend-navigation").css(h.style).add(y),this.down=e.symbol("triangle-down",0,0,p,p).on("click",function(){d.scroll(1,k)}).add(y)),d.scroll(0),a=b):y&&(t(),y.hide(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0);return a},scroll:function(a,d){var b=this.pages, +f=b.length;a=this.currentPage+a;var g=this.clipHeight,c=this.options.navigation,h=this.pager,n=this.padding;a>f&&(a=f);0f&&(g=typeof a[0],"string"===g?e.name=a[0]:"number"===g&&(e.x=a[0]),d++);b=h.value;)h=e[++g];h&&h.color&&!this.options.color&&(this.color=h.color);return h},destroy:function(){var a=this.series.chart,e=a.hoverPoints,g;a.pointCount--;e&&(this.setState(),H(e,this),e.length||(a.hoverPoints=null));if(this===a.hoverPoint)this.onMouseOut();if(this.graphic||this.dataLabel)k(this), +this.destroyElements();this.legendItem&&a.legend.destroyItem(this);for(g in this)this[g]=null},destroyElements:function(){for(var a=["graphic","dataLabel","dataLabelUpper","connector","shadowGroup"],e,g=6;g--;)e=a[g],this[e]&&(this[e]=this[e].destroy())},getLabelConfig:function(){return{x:this.category,y:this.y,color:this.color,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},tooltipFormatter:function(a){var e=this.series,g= +e.tooltipOptions,h=t(g.valueDecimals,""),k=g.valuePrefix||"",f=g.valueSuffix||"";B(e.pointArrayMap||["y"],function(d){d="{point."+d;if(k||f)a=a.replace(d+"}",k+d+"}"+f);a=a.replace(d+"}",d+":,."+h+"f}")});return l(a,{point:this,series:this.series})},firePointEvent:function(a,e,g){var h=this,k=this.series.options;(k.point.events[a]||h.options&&h.options.events&&h.options.events[a])&&this.importEvents();"click"===a&&k.allowPointSelect&&(g=function(a){h.select&&h.select(null,a.ctrlKey||a.metaKey||a.shiftKey)}); +p(this,a,e,g)},visible:!0}})(N);(function(a){var D=a.addEvent,B=a.animObject,G=a.arrayMax,H=a.arrayMin,p=a.correctFloat,l=a.Date,r=a.defaultOptions,w=a.defaultPlotOptions,t=a.defined,k=a.each,m=a.erase,e=a.error,g=a.extend,h=a.fireEvent,C=a.grep,f=a.isArray,d=a.isNumber,b=a.isString,q=a.merge,E=a.pick,c=a.removeEvent,F=a.splat,n=a.stableSort,A=a.SVGElement,x=a.syncTimeout,J=a.win;a.Series=a.seriesType("line",null,{lineWidth:2,allowPointSelect:!1,showCheckbox:!1,animation:{duration:1E3},events:{}, +marker:{lineWidth:0,lineColor:"#ffffff",radius:4,states:{hover:{animation:{duration:50},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{align:"center",formatter:function(){return null===this.y?"":a.numberFormat(this.y,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0,padding:5},cropThreshold:300,pointRange:0,softThreshold:!0,states:{hover:{lineWidthPlus:1, +marker:{},halo:{size:10,opacity:.25}},select:{marker:{}}},stickyTracking:!0,turboThreshold:1E3},{isCartesian:!0,pointClass:a.Point,sorted:!0,requireSorting:!0,directTouch:!1,axisTypes:["xAxis","yAxis"],colorCounter:0,parallelArrays:["x","y"],coll:"series",init:function(a,b){var c=this,d,e,f=a.series,u,y=function(a,b){return E(a.options.index,a._i)-E(b.options.index,b._i)};c.chart=a;c.options=b=c.setOptions(b);c.linkedSeries=[];c.bindAxes();g(c,{name:b.name,state:"",visible:!1!==b.visible,selected:!0=== +b.selected});e=b.events;for(d in e)D(c,d,e[d]);if(e&&e.click||b.point&&b.point.events&&b.point.events.click||b.allowPointSelect)a.runTrackerClick=!0;c.getColor();c.getSymbol();k(c.parallelArrays,function(a){c[a+"Data"]=[]});c.setData(b.data,!1);c.isCartesian&&(a.hasCartesianSeries=!0);f.length&&(u=f[f.length-1]);c._i=E(u&&u._i,-1)+1;f.push(c);n(f,y);this.yAxis&&n(this.yAxis.series,y);k(f,function(a,b){a.index=b;a.name=a.name||"Series "+(b+1)})},bindAxes:function(){var a=this,b=a.options,c=a.chart, +d;k(a.axisTypes||[],function(f){k(c[f],function(c){d=c.options;if(b[f]===d.index||void 0!==b[f]&&b[f]===d.id||void 0===b[f]&&0===d.index)c.series.push(a),a[f]=c,c.isDirty=!0});a[f]||a.optionalAxis===f||e(18,!0)})},updateParallelArrays:function(a,b){var c=a.series,e=arguments,f=d(b)?function(d){var e="y"===d&&c.toYData?c.toYData(a):a[d];c[d+"Data"][b]=e}:function(a){Array.prototype[b].apply(c[a+"Data"],Array.prototype.slice.call(e,2))};k(c.parallelArrays,f)},autoIncrement:function(){var a=this.options, +b=this.xIncrement,c,d=a.pointIntervalUnit,b=E(b,a.pointStart,0);this.pointInterval=c=E(this.pointInterval,a.pointInterval,1);d&&(a=new l(b),"day"===d?a=+a[l.hcSetDate](a[l.hcGetDate]()+c):"month"===d?a=+a[l.hcSetMonth](a[l.hcGetMonth]()+c):"year"===d&&(a=+a[l.hcSetFullYear](a[l.hcGetFullYear]()+c)),c=a-b);this.xIncrement=b+c;return b},setOptions:function(a){var b=this.chart,c=b.options.plotOptions,b=b.userOptions||{},d=b.plotOptions||{},e=c[this.type];this.userOptions=a;c=q(e,c.series,a);this.tooltipOptions= +q(r.tooltip,r.plotOptions[this.type].tooltip,b.tooltip,d.series&&d.series.tooltip,d[this.type]&&d[this.type].tooltip,a.tooltip);null===e.marker&&delete c.marker;this.zoneAxis=c.zoneAxis;a=this.zones=(c.zones||[]).slice();!c.negativeColor&&!c.negativeFillColor||c.zones||a.push({value:c[this.zoneAxis+"Threshold"]||c.threshold||0,className:"highcharts-negative",color:c.negativeColor,fillColor:c.negativeFillColor});a.length&&t(a[a.length-1].value)&&a.push({color:this.color,fillColor:this.fillColor}); +return c},getCyclic:function(a,b,c){var d,e=this.userOptions,f=a+"Index",g=a+"Counter",u=c?c.length:E(this.chart.options.chart[a+"Count"],this.chart[a+"Count"]);b||(d=E(e[f],e["_"+f]),t(d)||(e["_"+f]=d=this.chart[g]%u,this.chart[g]+=1),c&&(b=c[d]));void 0!==d&&(this[f]=d);this[a]=b},getColor:function(){this.options.colorByPoint?this.options.color=null:this.getCyclic("color",this.options.color||w[this.type].color,this.chart.options.colors)},getSymbol:function(){this.getCyclic("symbol",this.options.marker.symbol, +this.chart.options.symbols)},drawLegendSymbol:a.LegendSymbolMixin.drawLineMarker,setData:function(a,c,g,n){var u=this,q=u.points,h=q&&q.length||0,y,m=u.options,x=u.chart,A=null,I=u.xAxis,l=m.turboThreshold,p=this.xData,r=this.yData,F=(y=u.pointArrayMap)&&y.length;a=a||[];y=a.length;c=E(c,!0);if(!1!==n&&y&&h===y&&!u.cropped&&!u.hasGroupedData&&u.visible)k(a,function(a,b){q[b].update&&a!==m.data[b]&&q[b].update(a,!1,null,!1)});else{u.xIncrement=null;u.colorCounter=0;k(this.parallelArrays,function(a){u[a+ +"Data"].length=0});if(l&&y>l){for(g=0;null===A&&gh||this.forceCrop))if(b[d-1]l)b=[],c=[];else if(b[0]l)f=this.cropData(this.xData,this.yData,A,l),b=f.xData,c=f.yData,f=f.start,g=!0;for(h=b.length||1;--h;)d=x?y(b[h])-y(b[h-1]):b[h]-b[h-1],0d&&this.requireSorting&&e(15);this.cropped=g;this.cropStart=f;this.processedXData=b;this.processedYData=c;this.closestPointRange=n},cropData:function(a,b,c,d){var e=a.length,f=0,g=e,n=E(this.cropShoulder,1),u;for(u=0;u=c){f=Math.max(0,u- +n);break}for(c=u;cd){g=c+n;break}return{xData:a.slice(f,g),yData:b.slice(f,g),start:f,end:g}},generatePoints:function(){var a=this.options.data,b=this.data,c,d=this.processedXData,e=this.processedYData,f=this.pointClass,g=d.length,n=this.cropStart||0,q,h=this.hasGroupedData,k,m=[],x;b||h||(b=[],b.length=a.length,b=this.data=b);for(x=0;x=q&&(c[x-1]||k)<=h,y&&k)if(y=m.length)for(;y--;)null!==m[y]&&(g[n++]=m[y]);else g[n++]=m;this.dataMin=H(g);this.dataMax=G(g)},translate:function(){this.processedXData||this.processData();this.generatePoints();var a=this.options,b=a.stacking,c=this.xAxis,e=c.categories,f=this.yAxis,g=this.points,n=g.length,q=!!this.modifyValue,h=a.pointPlacement,k="between"===h||d(h),m=a.threshold,x=a.startFromThreshold?m:0,A,l,r,F,J=Number.MAX_VALUE;"between"===h&&(h=.5);d(h)&&(h*=E(a.pointRange||c.pointRange)); +for(a=0;a=B&&(C.isNull=!0);C.plotX=A=p(Math.min(Math.max(-1E5,c.translate(w,0,0,0,1,h,"flags"===this.type)),1E5));b&&this.visible&&!C.isNull&&D&&D[w]&&(F=this.getStackIndicator(F,w,this.index),G=D[w],B=G.points[F.key],l=B[0],B=B[1],l===x&&F.key===D[w].base&&(l=E(m,f.min)),f.isLog&&0>=l&&(l=null),C.total=C.stackTotal=G.total,C.percentage=G.total&&C.y/G.total*100,C.stackY= +B,G.setOffset(this.pointXOffset||0,this.barW||0));C.yBottom=t(l)?f.translate(l,0,1,0,1):null;q&&(B=this.modifyValue(B,C));C.plotY=l="number"===typeof B&&Infinity!==B?Math.min(Math.max(-1E5,f.translate(B,0,1,0,1)),1E5):void 0;C.isInside=void 0!==l&&0<=l&&l<=f.len&&0<=A&&A<=c.len;C.clientX=k?p(c.translate(w,0,0,0,1,h)):A;C.negative=C.y<(m||0);C.category=e&&void 0!==e[C.x]?e[C.x]:C.x;C.isNull||(void 0!==r&&(J=Math.min(J,Math.abs(A-r))),r=A)}this.closestPointRangePx=J},getValidPoints:function(a,b){var c= +this.chart;return C(a||this.points||[],function(a){return b&&!c.isInsidePlot(a.plotX,a.plotY,c.inverted)?!1:!a.isNull})},setClip:function(a){var b=this.chart,c=this.options,d=b.renderer,e=b.inverted,f=this.clipBox,g=f||b.clipBox,n=this.sharedClipKey||["_sharedClip",a&&a.duration,a&&a.easing,g.height,c.xAxis,c.yAxis].join(),q=b[n],h=b[n+"m"];q||(a&&(g.width=0,b[n+"m"]=h=d.clipRect(-99,e?-b.plotLeft:-b.plotTop,99,e?b.chartWidth:b.chartHeight)),b[n]=q=d.clipRect(g),q.count={length:0});a&&!q.count[this.index]&& +(q.count[this.index]=!0,q.count.length+=1);!1!==c.clip&&(this.group.clip(a||f?q:b.clipRect),this.markerGroup.clip(h),this.sharedClipKey=n);a||(q.count[this.index]&&(delete q.count[this.index],--q.count.length),0===q.count.length&&n&&b[n]&&(f||(b[n]=b[n].destroy()),b[n+"m"]&&(b[n+"m"]=b[n+"m"].destroy())))},animate:function(a){var b=this.chart,c=B(this.options.animation),d;a?this.setClip(c):(d=this.sharedClipKey,(a=b[d])&&a.animate({width:b.plotSizeX},c),b[d+"m"]&&b[d+"m"].animate({width:b.plotSizeX+ +99},c),this.animate=null)},afterAnimate:function(){this.setClip();h(this,"afterAnimate")},drawPoints:function(){var a=this.points,b=this.chart,c,e,f,g,n=this.options.marker,q,h,k,m,x=this.markerGroup,A=E(n.enabled,this.xAxis.isRadial?!0:null,this.closestPointRangePx>2*n.radius);if(!1!==n.enabled||this._hasPointMarkers)for(e=a.length;e--;)f=a[e],c=f.plotY,g=f.graphic,q=f.marker||{},h=!!f.marker,k=A&&void 0===q.enabled||q.enabled,m=f.isInside,k&&d(c)&&null!==f.y?(c=E(q.symbol,this.symbol),f.hasImage= +0===c.indexOf("url"),k=this.markerAttribs(f,f.selected&&"select"),g?g[m?"show":"hide"](!0).animate(k):m&&(0e&&b.shadow));g&&(g.startX=c.xMap, +g.isArea=c.isArea)})},applyZones:function(){var a=this,b=this.chart,c=b.renderer,d=this.zones,e,f,g=this.clips||[],n,q=this.graph,h=this.area,m=Math.max(b.chartWidth,b.chartHeight),x=this[(this.zoneAxis||"y")+"Axis"],A,l,p=b.inverted,r,F,C,t,J=!1;d.length&&(q||h)&&x&&void 0!==x.min&&(l=x.reversed,r=x.horiz,q&&q.hide(),h&&h.hide(),A=x.getExtremes(),k(d,function(d,u){e=l?r?b.plotWidth:0:r?0:x.toPixels(A.min);e=Math.min(Math.max(E(f,e),0),m);f=Math.min(Math.max(Math.round(x.toPixels(E(d.value,A.max), +!0)),0),m);J&&(e=f=x.toPixels(A.max));F=Math.abs(e-f);C=Math.min(e,f);t=Math.max(e,f);x.isXAxis?(n={x:p?t:C,y:0,width:F,height:m},r||(n.x=b.plotHeight-n.x)):(n={x:0,y:p?t:C,width:m,height:F},r&&(n.y=b.plotWidth-n.y));p&&c.isVML&&(n=x.isXAxis?{x:0,y:l?C:t,height:n.width,width:b.chartWidth}:{x:n.y-b.plotLeft-b.spacingBox.x,y:0,width:n.height,height:b.chartHeight});g[u]?g[u].animate(n):(g[u]=c.clipRect(n),q&&a["zone-graph-"+u].clip(g[u]),h&&a["zone-area-"+u].clip(g[u]));J=d.value>A.max}),this.clips= +g)},invertGroups:function(a){function b(){var b={width:c.yAxis.len,height:c.xAxis.len};k(["group","markerGroup"],function(d){c[d]&&c[d].attr(b).invert(a)})}var c=this,d;c.xAxis&&(d=D(c.chart,"resize",b),D(c,"destroy",d),b(a),c.invertGroups=b)},plotGroup:function(a,b,c,d,e){var f=this[a],g=!f;g&&(this[a]=f=this.chart.renderer.g(b).attr({zIndex:d||.1}).add(e),f.addClass("highcharts-series-"+this.index+" highcharts-"+this.type+"-series highcharts-color-"+this.colorIndex+" "+(this.options.className|| +"")));f.attr({visibility:c})[g?"attr":"animate"](this.getPlotBox());return f},getPlotBox:function(){var a=this.chart,b=this.xAxis,c=this.yAxis;a.inverted&&(b=c,c=this.xAxis);return{translateX:b?b.left:a.plotLeft,translateY:c?c.top:a.plotTop,scaleX:1,scaleY:1}},render:function(){var a=this,b=a.chart,c,d=a.options,e=!!a.animate&&b.renderer.isSVG&&B(d.animation).duration,f=a.visible?"inherit":"hidden",g=d.zIndex,n=a.hasRendered,q=b.seriesGroup,h=b.inverted;c=a.plotGroup("group","series",f,g,q);a.markerGroup= +a.plotGroup("markerGroup","markers",f,g,q);e&&a.animate(!0);c.inverted=a.isCartesian?h:!1;a.drawGraph&&(a.drawGraph(),a.applyZones());a.drawDataLabels&&a.drawDataLabels();a.visible&&a.drawPoints();a.drawTracker&&!1!==a.options.enableMouseTracking&&a.drawTracker();a.invertGroups(h);!1===d.clip||a.sharedClipKey||n||c.clip(b.clipRect);e&&a.animate();n||(a.animationTimeout=x(function(){a.afterAnimate()},e));a.isDirty=a.isDirtyData=!1;a.hasRendered=!0},redraw:function(){var a=this.chart,b=this.isDirty|| +this.isDirtyData,c=this.group,d=this.xAxis,e=this.yAxis;c&&(a.inverted&&c.attr({width:a.plotWidth,height:a.plotHeight}),c.animate({translateX:E(d&&d.left,a.plotLeft),translateY:E(e&&e.top,a.plotTop)}));this.translate();this.render();b&&delete this.kdTree},kdDimensions:1,kdAxisArray:["clientX","plotY"],searchPoint:function(a,b){var c=this.xAxis,d=this.yAxis,e=this.chart.inverted;return this.searchKDTree({clientX:e?c.len-a.chartY+c.pos:a.chartX-c.pos,plotY:e?d.len-a.chartX+d.pos:a.chartY-d.pos},b)}, +buildKDTree:function(){function a(c,d,e){var f,g;if(g=c&&c.length)return f=b.kdAxisArray[d%e],c.sort(function(a,b){return a[f]-b[f]}),g=Math.floor(g/2),{point:c[g],left:a(c.slice(0,g),d+1,e),right:a(c.slice(g+1),d+1,e)}}var b=this,c=b.kdDimensions;delete b.kdTree;x(function(){b.kdTree=a(b.getValidPoints(null,!b.directTouch),c,c)},b.options.kdNow?0:1)},searchKDTree:function(a,b){function c(a,b,n,q){var h=b.point,u=d.kdAxisArray[n%q],k,m,x=h;m=t(a[e])&&t(h[e])?Math.pow(a[e]-h[e],2):null;k=t(a[f])&& +t(h[f])?Math.pow(a[f]-h[f],2):null;k=(m||0)+(k||0);h.dist=t(k)?Math.sqrt(k):Number.MAX_VALUE;h.distX=t(m)?Math.sqrt(m):Number.MAX_VALUE;u=a[u]-h[u];k=0>u?"left":"right";m=0>u?"right":"left";b[k]&&(k=c(a,b[k],n+1,q),x=k[g]A;)l--;this.updateParallelArrays(h,"splice",l,0,0);this.updateParallelArrays(h,l);n&&h.name&&(n[A]=h.name);q.splice(l,0,a);m&&(this.data.splice(l,0,null),this.processData());"point"===c.legendType&&this.generatePoints();d&&(f[0]&&f[0].remove?f[0].remove(!1):(f.shift(),this.updateParallelArrays(h,"shift"),q.shift()));this.isDirtyData=this.isDirty=!0;b&&g.redraw(e)},removePoint:function(a, +b,d){var c=this,e=c.data,f=e[a],g=c.points,n=c.chart,h=function(){g&&g.length===e.length&&g.splice(a,1);e.splice(a,1);c.options.data.splice(a,1);c.updateParallelArrays(f||{series:c},"splice",a,1);f&&f.destroy();c.isDirty=!0;c.isDirtyData=!0;b&&n.redraw()};q(d,n);b=C(b,!0);f?f.firePointEvent("remove",null,h):h()},remove:function(a,b,d){function c(){e.destroy();f.isDirtyLegend=f.isDirtyBox=!0;f.linkSeries();C(a,!0)&&f.redraw(b)}var e=this,f=e.chart;!1!==d?k(e,"remove",null,c):c()},update:function(a, +d){var c=this,e=this.chart,f=this.userOptions,g=this.type,q=a.type||f.type||e.options.chart.type,u=b[g].prototype,m=["group","markerGroup","dataLabelsGroup"],k;if(q&&q!==g||void 0!==a.zIndex)m.length=0;r(m,function(a){m[a]=c[a];delete c[a]});a=h(f,{animation:!1,index:this.index,pointStart:this.xData[0]},{data:this.options.data},a);this.remove(!1,null,!1);for(k in u)this[k]=void 0;t(this,b[q||g].prototype);r(m,function(a){c[a]=m[a]});this.init(e,a);e.linkSeries();C(d,!0)&&e.redraw(!1)}});t(G.prototype, +{update:function(a,b){var c=this.chart;a=c.options[this.coll][this.options.index]=h(this.userOptions,a);this.destroy(!0);this.init(c,t(a,{events:void 0}));c.isDirtyBox=!0;C(b,!0)&&c.redraw()},remove:function(a){for(var b=this.chart,c=this.coll,d=this.series,e=d.length;e--;)d[e]&&d[e].remove(!1);w(b.axes,this);w(b[c],this);b.options[c].splice(this.options.index,1);r(b[c],function(a,b){a.options.index=b});this.destroy();b.isDirtyBox=!0;C(a,!0)&&b.redraw()},setTitle:function(a,b){this.update({title:a}, +b)},setCategories:function(a,b){this.update({categories:a},b)}})})(N);(function(a){var D=a.color,B=a.each,G=a.map,H=a.pick,p=a.Series,l=a.seriesType;l("area","line",{softThreshold:!1,threshold:0},{singleStacks:!1,getStackPoints:function(){var a=[],l=[],p=this.xAxis,k=this.yAxis,m=k.stacks[this.stackKey],e={},g=this.points,h=this.index,C=k.series,f=C.length,d,b=H(k.options.reversedStacks,!0)?1:-1,q,E;if(this.options.stacking){for(q=0;qa&&t>l?(t=Math.max(a,l),m=2*l-t):tH&& +m>l?(m=Math.max(H,l),t=2*l-m):m=Math.abs(g)&&.5a.closestPointRange*a.xAxis.transA,k=a.borderWidth=r(h.borderWidth,k?0:1),f=a.yAxis,d=a.translatedThreshold=f.getThreshold(h.threshold),b=r(h.minPointLength,5),q=a.getColumnMetrics(),m=q.width,c=a.barW=Math.max(m,1+2*k),l=a.pointXOffset= +q.offset;g.inverted&&(d-=.5);h.pointPadding&&(c=Math.ceil(c));w.prototype.translate.apply(a);G(a.points,function(e){var n=r(e.yBottom,d),q=999+Math.abs(n),q=Math.min(Math.max(-q,e.plotY),f.len+q),h=e.plotX+l,k=c,u=Math.min(q,n),p,t=Math.max(q,n)-u;Math.abs(t)b?n-b:d-(p?b:0));e.barX=h;e.pointWidth=m;e.tooltipPos=g.inverted?[f.len+f.pos-g.plotLeft-q,a.xAxis.len-h-k/2,t]:[h+k/2,q+f.pos-g.plotTop,t];e.shapeType="rect";e.shapeArgs= +a.crispCol.apply(a,e.isNull?[e.plotX,f.len/2,0,0]:[h,u,k,t])})},getSymbol:a.noop,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,drawGraph:function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},pointAttribs:function(a,g){var e=this.options,k=this.pointAttrToOptions||{},f=k.stroke||"borderColor",d=k["stroke-width"]||"borderWidth",b=a&&a.color||this.color,q=a[f]||e[f]||this.color||b,k=e.dashStyle,m;a&&this.zones.length&&(b=(b=a.getZone())&&b.color||a.options.color|| +this.color);g&&(g=e.states[g],m=g.brightness,b=g.color||void 0!==m&&B(b).brighten(g.brightness).get()||b,q=g[f]||q,k=g.dashStyle||k);a={fill:b,stroke:q,"stroke-width":a[d]||e[d]||this[d]||0};e.borderRadius&&(a.r=e.borderRadius);k&&(a.dashstyle=k);return a},drawPoints:function(){var a=this,g=this.chart,h=a.options,m=g.renderer,f=h.animationLimit||250,d;G(a.points,function(b){var e=b.graphic;p(b.plotY)&&null!==b.y?(d=b.shapeArgs,e?(k(e),e[g.pointCountt;++t)k=r[t],a=2>t||2===t&&/%$/.test(k),r[t]=B(k,[l,H,w,r[2]][t])+(a?p:0);r[3]>r[2]&&(r[3]=r[2]);return r}}})(N);(function(a){var D=a.addEvent,B=a.defined,G=a.each,H=a.extend,p=a.inArray,l=a.noop,r=a.pick,w=a.Point,t=a.Series,k=a.seriesType,m=a.setAnimation;k("pie","line",{center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){return null===this.y? +void 0:this.point.name},x:0},ignoreHiddenPoint:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,states:{hover:{brightness:.1,shadow:!1}}},{isCartesian:!1,requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],axisTypes:[],pointAttribs:a.seriesTypes.column.prototype.pointAttribs,animate:function(a){var e=this,h=e.points,k=e.startAngleRad;a||(G(h,function(a){var d= +a.graphic,b=a.shapeArgs;d&&(d.attr({r:a.startR||e.center[3]/2,start:k,end:k}),d.animate({r:b.r,start:b.start,end:b.end},e.options.animation))}),e.animate=null)},updateTotals:function(){var a,g=0,h=this.points,k=h.length,f,d=this.options.ignoreHiddenPoint;for(a=0;af.y&&(f.y=null),g+=d&&!f.visible?0:f.y;this.total=g;for(a=0;a1.5*Math.PI?q-=2*Math.PI:q<-Math.PI/2&&(q+=2*Math.PI);t.slicedTranslation={translateX:Math.round(Math.cos(q)*k),translateY:Math.round(Math.sin(q)*k)};d=Math.cos(q)*a[2]/2;b=Math.sin(q)*a[2]/2;t.tooltipPos=[a[0]+.7*d,a[1]+.7*b];t.half=q<-Math.PI/2||q>Math.PI/2?1:0;t.angle=q;f=Math.min(f,n/5);t.labelPos=[a[0]+d+Math.cos(q)*n,a[1]+b+Math.sin(q)*n,a[0]+d+Math.cos(q)*f,a[1]+b+Math.sin(q)* +f,a[0]+d,a[1]+b,0>n?"center":t.half?"right":"left",q]}},drawGraph:null,drawPoints:function(){var a=this,g=a.chart.renderer,h,k,f,d,b=a.options.shadow;b&&!a.shadowGroup&&(a.shadowGroup=g.g("shadow").add(a.group));G(a.points,function(e){if(null!==e.y){k=e.graphic;d=e.shapeArgs;h=e.sliced?e.slicedTranslation:{};var q=e.shadowGroup;b&&!q&&(q=e.shadowGroup=g.g("shadow").add(a.shadowGroup));q&&q.attr(h);f=a.pointAttribs(e,e.selected&&"select");k?k.setRadialReference(a.center).attr(f).animate(H(d,h)):(e.graphic= +k=g[e.shapeType](d).addClass(e.getClassName()).setRadialReference(a.center).attr(h).add(a.group),e.visible||k.attr({visibility:"hidden"}),k.attr(f).attr({"stroke-linejoin":"round"}).shadow(b,q))}})},searchPoint:l,sortByAngle:function(a,g){a.sort(function(a,e){return void 0!==a.angle&&(e.angle-a.angle)*g})},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,getCenter:a.CenteredSeriesMixin.getCenter,getSymbol:l},{init:function(){w.prototype.init.apply(this,arguments);var a=this,g;a.name=r(a.name,"Slice"); +g=function(e){a.slice("select"===e.type)};D(a,"select",g);D(a,"unselect",g);return a},setVisible:function(a,g){var e=this,k=e.series,f=k.chart,d=k.options.ignoreHiddenPoint;g=r(g,d);a!==e.visible&&(e.visible=e.options.visible=a=void 0===a?!e.visible:a,k.options.data[p(e,k.data)]=e.options,G(["graphic","dataLabel","connector","shadowGroup"],function(b){if(e[b])e[b][a?"show":"hide"](!0)}),e.legendItem&&f.legend.colorizeItem(e,a),a||"hover"!==e.state||e.setState(""),d&&(k.isDirty=!0),g&&f.redraw())}, +slice:function(a,g,h){var e=this.series;m(h,e.chart);r(g,!0);this.sliced=this.options.sliced=a=B(a)?a:!this.sliced;e.options.data[p(this,e.data)]=this.options;a=a?this.slicedTranslation:{translateX:0,translateY:0};this.graphic.animate(a);this.shadowGroup&&this.shadowGroup.animate(a)},haloPath:function(a){var e=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(e.x,e.y,e.r+a,e.r+a,{innerR:this.shapeArgs.r,start:e.start,end:e.end})}})})(N);(function(a){var D= +a.addEvent,B=a.arrayMax,G=a.defined,H=a.each,p=a.extend,l=a.format,r=a.map,w=a.merge,t=a.noop,k=a.pick,m=a.relativeLength,e=a.Series,g=a.seriesTypes,h=a.stableSort,C=a.stop;a.distribute=function(a,d){function b(a,b){return a.target-b.target}var e,f=!0,c=a,g=[],n;n=0;for(e=a.length;e--;)n+=a[e].size;if(n>d){h(a,function(a,b){return(b.rank||0)-(a.rank||0)});for(n=e=0;n<=d;)n+=a[e].size,e++;g=a.splice(e-1,a.length)}h(a,b);for(a=r(a,function(a){return{size:a.size,targets:[a.target]}});f;){for(e=a.length;e--;)f= +a[e],n=(Math.min.apply(0,f.targets)+Math.max.apply(0,f.targets))/2,f.pos=Math.min(Math.max(0,n-f.size/2),d-f.size);e=a.length;for(f=!1;e--;)0a[e].pos&&(a[e-1].size+=a[e].size,a[e-1].targets=a[e-1].targets.concat(a[e].targets),a[e-1].pos+a[e-1].size>d&&(a[e-1].pos=d-a[e-1].size),a.splice(e,1),f=!0)}e=0;H(a,function(a){var b=0;H(a.targets,function(){c[e].pos=a.pos+b;b+=c[e].size;e++})});c.push.apply(c,g);h(c,b)};e.prototype.drawDataLabels=function(){var a=this,d=a.options, +b=d.dataLabels,e=a.points,g,c,h=a.hasRendered||0,n,m,x=k(b.defer,!0),r=a.chart.renderer;if(b.enabled||a._hasPointLabels)a.dlProcessOptions&&a.dlProcessOptions(b),m=a.plotGroup("dataLabelsGroup","data-labels",x&&!h?"hidden":"visible",b.zIndex||6),x&&(m.attr({opacity:+h}),h||D(a,"afterAnimate",function(){a.visible&&m.show(!0);m[d.animation?"animate":"attr"]({opacity:1},{duration:200})})),c=b,H(e,function(e){var f,q=e.dataLabel,h,x,A=e.connector,y=!0,t,z={};g=e.dlOptions||e.options&&e.options.dataLabels; +f=k(g&&g.enabled,c.enabled)&&null!==e.y;if(q&&!f)e.dataLabel=q.destroy();else if(f){b=w(c,g);t=b.style;f=b.rotation;h=e.getLabelConfig();n=b.format?l(b.format,h):b.formatter.call(h,b);t.color=k(b.color,t.color,a.color,"#000000");if(q)G(n)?(q.attr({text:n}),y=!1):(e.dataLabel=q=q.destroy(),A&&(e.connector=A.destroy()));else if(G(n)){q={fill:b.backgroundColor,stroke:b.borderColor,"stroke-width":b.borderWidth,r:b.borderRadius||0,rotation:f,padding:b.padding,zIndex:1};"contrast"===t.color&&(z.color=b.inside|| +0>b.distance||d.stacking?r.getContrast(e.color||a.color):"#000000");d.cursor&&(z.cursor=d.cursor);for(x in q)void 0===q[x]&&delete q[x];q=e.dataLabel=r[f?"text":"label"](n,0,-9999,b.shape,null,null,b.useHTML,null,"data-label").attr(q);q.addClass("highcharts-data-label-color-"+e.colorIndex+" "+(b.className||""));q.css(p(t,z));q.add(m);q.shadow(b.shadow)}q&&a.alignDataLabel(e,q,b,null,y)}})};e.prototype.alignDataLabel=function(a,d,b,e,g){var c=this.chart,f=c.inverted,n=k(a.plotX,-9999),q=k(a.plotY, +-9999),h=d.getBBox(),m,l=b.rotation,u=b.align,r=this.visible&&(a.series.forceDL||c.isInsidePlot(n,Math.round(q),f)||e&&c.isInsidePlot(n,f?e.x+1:e.y+e.height-1,f)),t="justify"===k(b.overflow,"justify");r&&(m=b.style.fontSize,m=c.renderer.fontMetrics(m,d).b,e=p({x:f?c.plotWidth-q:n,y:Math.round(f?c.plotHeight-n:q),width:0,height:0},e),p(b,{width:h.width,height:h.height}),l?(t=!1,f=c.renderer.rotCorr(m,l),f={x:e.x+b.x+e.width/2+f.x,y:e.y+b.y+{top:0,middle:.5,bottom:1}[b.verticalAlign]*e.height},d[g? +"attr":"animate"](f).attr({align:u}),n=(l+720)%360,n=180n,"left"===u?f.y-=n?h.height:0:"center"===u?(f.x-=h.width/2,f.y-=h.height/2):"right"===u&&(f.x-=h.width,f.y-=n?0:h.height)):(d.align(b,null,e),f=d.alignAttr),t?this.justifyDataLabel(d,b,f,h,e,g):k(b.crop,!0)&&(r=c.isInsidePlot(f.x,f.y)&&c.isInsidePlot(f.x+h.width,f.y+h.height)),b.shape&&!l&&d.attr({anchorX:a.plotX,anchorY:a.plotY}));r||(C(d),d.attr({y:-9999}),d.placed=!1)};e.prototype.justifyDataLabel=function(a,d,b,e,g,c){var f=this.chart, +n=d.align,h=d.verticalAlign,q,k,m=a.box?0:a.padding||0;q=b.x+m;0>q&&("right"===n?d.align="left":d.x=-q,k=!0);q=b.x+e.width-m;q>f.plotWidth&&("left"===n?d.align="right":d.x=f.plotWidth-q,k=!0);q=b.y+m;0>q&&("bottom"===h?d.verticalAlign="top":d.y=-q,k=!0);q=b.y+e.height-m;q>f.plotHeight&&("top"===h?d.verticalAlign="bottom":d.y=f.plotHeight-q,k=!0);k&&(a.placed=!c,a.align(d,null,g))};g.pie&&(g.pie.prototype.drawDataLabels=function(){var f=this,d=f.data,b,g=f.chart,h=f.options.dataLabels,c=k(h.connectorPadding, +10),m=k(h.connectorWidth,1),n=g.plotWidth,l=g.plotHeight,x,p=h.distance,y=f.center,u=y[2]/2,t=y[1],w=0k-2?A:P,e),v._attr={visibility:S,align:D[6]},v._pos={x:L+h.x+({left:c,right:-c}[D[6]]||0),y:P+h.y-10},D.x=L,D.y=P,null===f.options.size&&(C=v.width,L-Cn-c&&(T[1]=Math.max(Math.round(L+ +C-n+c),T[1])),0>P-G/2?T[0]=Math.max(Math.round(-P+G/2),T[0]):P+G/2>l&&(T[2]=Math.max(Math.round(P+G/2-l),T[2])))}),0===B(T)||this.verifyDataLabelOverflow(T))&&(this.placeDataLabels(),w&&m&&H(this.points,function(a){var b;x=a.connector;if((v=a.dataLabel)&&v._pos&&a.visible){S=v._attr.visibility;if(b=!x)a.connector=x=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+a.colorIndex).add(f.dataLabelsGroup),x.attr({"stroke-width":m,stroke:h.connectorColor||a.color||"#666666"}); +x[b?"attr":"animate"]({d:f.connectorPath(a.labelPos)});x.attr("visibility",S)}else x&&(a.connector=x.destroy())}))},g.pie.prototype.connectorPath=function(a){var d=a.x,b=a.y;return k(this.options.dataLabels.softConnector,!0)?["M",d+("left"===a[6]?5:-5),b,"C",d,b,2*a[2]-a[4],2*a[3]-a[5],a[2],a[3],"L",a[4],a[5]]:["M",d+("left"===a[6]?5:-5),b,"L",a[2],a[3],"L",a[4],a[5]]},g.pie.prototype.placeDataLabels=function(){H(this.points,function(a){var d=a.dataLabel;d&&a.visible&&((a=d._pos)?(d.attr(d._attr), +d[d.moved?"animate":"attr"](a),d.moved=!0):d&&d.attr({y:-9999}))})},g.pie.prototype.alignDataLabel=t,g.pie.prototype.verifyDataLabelOverflow=function(a){var d=this.center,b=this.options,e=b.center,f=b.minSize||80,c,g;null!==e[0]?c=Math.max(d[2]-Math.max(a[1],a[3]),f):(c=Math.max(d[2]-a[1]-a[3],f),d[0]+=(a[3]-a[1])/2);null!==e[1]?c=Math.max(Math.min(c,d[2]-Math.max(a[0],a[2])),f):(c=Math.max(Math.min(c,d[2]-a[0]-a[2]),f),d[1]+=(a[0]-a[2])/2);ck(this.translatedThreshold,f.yAxis.len)),m=k(b.inside,!!this.options.stacking);n&&(g=w(n),0>g.y&&(g.height+=g.y,g.y=0),n=g.y+g.height-f.yAxis.len,0a+e||c+nb+f||g+hthis.pointCount))},pan:function(a,b){var c=this,d=c.hoverPoints, +e;d&&r(d,function(a){a.setState()});r("xy"===b?[1,0]:[1],function(b){b=c[b?"xAxis":"yAxis"][0];var d=b.horiz,f=a[d?"chartX":"chartY"],d=d?"mouseDownX":"mouseDownY",g=c[d],n=(b.pointRange||0)/2,h=b.getExtremes(),q=b.toValue(g-f,!0)+n,n=b.toValue(g+b.len-f,!0)-n,g=g>f;b.series.length&&(g||q>Math.min(h.dataMin,h.min))&&(!g||n=p(k.minWidth,0)&&this.chartHeight>=p(k.minHeight,0)};void 0===l._id&&(l._id=a.uniqueKey());m=m.call(this);!r[l._id]&&m?l.chartOptions&&(r[l._id]=this.currentOptions(l.chartOptions),this.update(l.chartOptions,w)):r[l._id]&&!m&&(this.update(r[l._id],w),delete r[l._id])};D.prototype.currentOptions=function(a){function p(a,m,e){var g,h;for(g in a)if(-1< +G(g,["series","xAxis","yAxis"]))for(a[g]=l(a[g]),e[g]=[],h=0;hd.length||void 0===h)return a.call(this,g,h,k,f);x=d.length;for(c=0;ck;d[c]5*b||w){if(d[c]>u){for(r=a.call(this,g,d[e],d[c],f);r.length&&r[0]<=u;)r.shift();r.length&&(u=r[r.length-1]);y=y.concat(r)}e=c+1}if(w)break}a= +r.info;if(q&&a.unitRange<=m.hour){c=y.length-1;for(e=1;ek?a-1:a;for(M=void 0;q--;)e=c[q],k=M-e,M&&k<.8*C&&(null===t||k<.8*t)?(n[y[q]]&&!n[y[q+1]]?(k=q+1,M=e):k=q,y.splice(k,1)):M=e}return y});w(B.prototype,{beforeSetTickPositions:function(){var a, +g=[],h=!1,k,f=this.getExtremes(),d=f.min,b=f.max,q,m=this.isXAxis&&!!this.options.breaks,f=this.options.ordinal,c=this.chart.options.chart.ignoreHiddenSeries;if(f||m){r(this.series,function(b,d){if(!(c&&!1===b.visible||!1===b.takeOrdinalPosition&&!m)&&(g=g.concat(b.processedXData),a=g.length,g.sort(function(a,b){return a-b}),a))for(d=a-1;d--;)g[d]===g[d+1]&&g.splice(d,1)});a=g.length;if(2k||b-g[g.length- +1]>k)&&(h=!0)}h?(this.ordinalPositions=g,k=this.val2lin(Math.max(d,g[0]),!0),q=Math.max(this.val2lin(Math.min(b,g[g.length-1]),!0),1),this.ordinalSlope=b=(b-d)/(q-k),this.ordinalOffset=d-k*b):this.ordinalPositions=this.ordinalSlope=this.ordinalOffset=void 0}this.isOrdinal=f&&h;this.groupIntervalFactor=null},val2lin:function(a,g){var e=this.ordinalPositions;if(e){var k=e.length,f,d;for(f=k;f--;)if(e[f]===a){d=f;break}for(f=k-1;f--;)if(a>e[f]||0===f){a=(a-e[f])/(e[f+1]-e[f]);d=f+a;break}g=g?d:this.ordinalSlope* +(d||0)+this.ordinalOffset}else g=a;return g},lin2val:function(a,g){var e=this.ordinalPositions;if(e){var k=this.ordinalSlope,f=this.ordinalOffset,d=e.length-1,b;if(g)0>a?a=e[0]:a>d?a=e[d]:(d=Math.floor(a),b=a-d);else for(;d--;)if(g=k*d+f,a>=g){k=k*(d+1)+f;b=(a-g)/(k-g);break}return void 0!==b&&void 0!==e[d]?e[d]+(b?b*(e[d+1]-e[d]):0):a}return a},getExtendedPositions:function(){var a=this.chart,g=this.series[0].currentDataGrouping,h=this.ordinalIndex,k=g?g.count+g.unitName:"raw",f=this.getExtremes(), +d,b;h||(h=this.ordinalIndex={});h[k]||(d={series:[],chart:a,getExtremes:function(){return{min:f.dataMin,max:f.dataMax}},options:{ordinal:!0},val2lin:B.prototype.val2lin},r(this.series,function(e){b={xAxis:d,xData:e.xData,chart:a,destroyGroupedData:t};b.options={dataGrouping:g?{enabled:!0,forced:!0,approximation:"open",units:[[g.unitName,[g.count]]]}:{enabled:!1}};e.processData.apply(b);d.series.push(b)}),this.beforeSetTickPositions.apply(d),h[k]=d.ordinalPositions);return h[k]},getGroupIntervalFactor:function(a, +g,h){var e;h=h.processedXData;var f=h.length,d=[];e=this.groupIntervalFactor;if(!e){for(e=0;ed?(l=p,t=e.ordinalPositions?e:p):(l=e.ordinalPositions?e:p,t=p),p=t.ordinalPositions,q>p[p.length-1]&&p.push(q),this.fixedRange=c-m,d=e.toFixedRange(null,null,n.apply(l,[x.apply(l,[m,!0])+d,!0]),n.apply(t,[x.apply(t, +[c,!0])+d,!0])),d.min>=Math.min(b.dataMin,m)&&d.max<=Math.max(q,c)&&e.setExtremes(d.min,d.max,!0,!1,{trigger:"pan"}),this.mouseDownX=k,H(this.container,{cursor:"move"})):f=!0}else f=!0;f&&a.apply(this,Array.prototype.slice.call(arguments,1))});k.prototype.gappedPath=function(){var a=this.options.gapSize,g=this.points.slice(),h=g.length-1;if(a&&0this.closestPointRange*a&&g.splice(h+1,0,{isNull:!0});return this.getGraphPath(g)}})(N);(function(a){function D(){return Array.prototype.slice.call(arguments, +1)}function B(a){a.apply(this);this.drawBreaks(this.xAxis,["x"]);this.drawBreaks(this.yAxis,G(this.pointArrayMap,["y"]))}var G=a.pick,H=a.wrap,p=a.each,l=a.extend,r=a.fireEvent,w=a.Axis,t=a.Series;l(w.prototype,{isInBreak:function(a,m){var e=a.repeat||Infinity,g=a.from,h=a.to-a.from;m=m>=g?(m-g)%e:e-(g-m)%e;return a.inclusive?m<=h:m=a)break;else if(g.isInBreak(f,a)){e-=a-f.from;break}return e};this.lin2val=function(a){var e,f;for(f=0;f=a);f++)e.toh;)m-=b;for(;mb.to||l>b.from&&db.from&&db.from&&d>b.to&&d=c[0]);A++);for(A;A<=q;A++){for(;(void 0!==c[w+1]&&a[A]>=c[w+1]||A===q)&&(l=c[w],this.dataGroupInfo={start:p,length:t[0].length},p=d.apply(this,t),void 0!==p&&(g.push(l),h.push(p),m.push(this.dataGroupInfo)),p=A,t[0]=[],t[1]=[],t[2]=[],t[3]=[],w+=1,A!==q););if(A===q)break;if(x){l=this.cropStart+A;l=e&&e[l]|| +this.pointClass.prototype.applyOptions.apply({series:this},[f[l]]);var E,C;for(E=0;Ethis.chart.plotSizeX/d||b&&f.forced)&&(e=!0);return e?d:0};G.prototype.setDataGrouping=function(a,b){var c;b=e(b,!0);a||(a={forced:!1,units:null});if(this instanceof G)for(c=this.series.length;c--;)this.series[c].update({dataGrouping:a},!1);else l(this.chart.options.series,function(b){b.dataGrouping=a},!1);b&&this.chart.redraw()}})(N);(function(a){var D=a.each,B=a.Point,G=a.seriesType,H=a.seriesTypes;G("ohlc","column",{lineWidth:1,tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eOpen: {point.open}\x3cbr/\x3eHigh: {point.high}\x3cbr/\x3eLow: {point.low}\x3cbr/\x3eClose: {point.close}\x3cbr/\x3e'}, +threshold:null,states:{hover:{lineWidth:3}}},{pointArrayMap:["open","high","low","close"],toYData:function(a){return[a.open,a.high,a.low,a.close]},pointValKey:"high",pointAttribs:function(a,l){l=H.column.prototype.pointAttribs.call(this,a,l);var p=this.options;delete l.fill;l["stroke-width"]=p.lineWidth;l.stroke=a.options.color||(a.openk)););B(g,function(a,b){var d;void 0===a.plotY&&(a.x>=c.min&&a.x<=c.max?a.plotY=e.chartHeight-p.bottom-(p.opposite?p.height:0)+p.offset-e.plotTop:a.shapeArgs={});a.plotX+=t;(f=g[b-1])&&f.plotX===a.plotX&&(void 0===f.stackIndex&&(f.stackIndex=0),d=f.stackIndex+1);a.stackIndex=d})},drawPoints:function(){var a=this.points,e=this.chart,g=e.renderer,k,l,f=this.options,d=f.y,b,q,p,c,r,n,t,x=this.yAxis;for(q=a.length;q--;)p=a[q],t=p.plotX>this.xAxis.len,k=p.plotX,c=p.stackIndex,b= +p.options.shape||f.shape,l=p.plotY,void 0!==l&&(l=p.plotY+d-(void 0!==c&&c*f.stackDistance)),r=c?void 0:p.plotX,n=c?void 0:p.plotY,c=p.graphic,void 0!==l&&0<=k&&!t?(c||(c=p.graphic=g.label("",null,null,b,null,null,f.useHTML).attr(this.pointAttribs(p)).css(G(f.style,p.style)).attr({align:"flag"===b?"left":"center",width:f.width,height:f.height,"text-align":f.textAlign}).addClass("highcharts-point").add(this.markerGroup),c.shadow(f.shadow)),0h&&(e-=Math.round((l-h)/2),h=l);e=k[a](e,g,h,l);d&&f&&e.push("M",d,g>f?g:g+l,"L",d,f);return e}});p===t&&B(["flag","circlepin","squarepin"],function(a){t.prototype.symbols[a]=k[a]})})(N);(function(a){function D(a,d,e){this.init(a,d,e)}var B=a.addEvent,G=a.Axis,H=a.correctFloat,p=a.defaultOptions, +l=a.defined,r=a.destroyObjectProperties,w=a.doc,t=a.each,k=a.fireEvent,m=a.hasTouch,e=a.isTouchDevice,g=a.merge,h=a.pick,C=a.removeEvent,f=a.wrap,d={height:e?20:14,barBorderRadius:0,buttonBorderRadius:0,liveRedraw:a.svg&&!e,margin:10,minWidth:6,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:1,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"#333333",trackBackgroundColor:"#f2f2f2",trackBorderColor:"#f2f2f2", +trackBorderWidth:1};p.scrollbar=g(!0,d,p.scrollbar);D.prototype={init:function(a,e,f){this.scrollbarButtons=[];this.renderer=a;this.userOptions=e;this.options=g(d,e);this.chart=f;this.size=h(this.options.size,this.options.height);e.enabled&&(this.render(),this.initEvents(),this.addEvents())},render:function(){var a=this.renderer,d=this.options,e=this.size,c;this.group=c=a.g("scrollbar").attr({zIndex:d.zIndex,translateY:-99999}).add();this.track=a.rect().addClass("highcharts-scrollbar-track").attr({x:0, +r:d.trackBorderRadius||0,height:e,width:e}).add(c);this.track.attr({fill:d.trackBackgroundColor,stroke:d.trackBorderColor,"stroke-width":d.trackBorderWidth});this.trackBorderWidth=this.track.strokeWidth();this.track.attr({y:-this.trackBorderWidth%2/2});this.scrollbarGroup=a.g().add(c);this.scrollbar=a.rect().addClass("highcharts-scrollbar-thumb").attr({height:e,width:e,r:d.barBorderRadius||0}).add(this.scrollbarGroup);this.scrollbarRifles=a.path(this.swapXY(["M",-3,e/4,"L",-3,2*e/3,"M",0,e/4,"L", +0,2*e/3,"M",3,e/4,"L",3,2*e/3],d.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup);this.scrollbar.attr({fill:d.barBackgroundColor,stroke:d.barBorderColor,"stroke-width":d.barBorderWidth});this.scrollbarRifles.attr({stroke:d.rifleColor,"stroke-width":1});this.scrollbarStrokeWidth=this.scrollbar.strokeWidth();this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2);this.drawScrollbarButton(0);this.drawScrollbarButton(1)},position:function(a, +d,e,c){var b=this.options.vertical,f=0,g=this.rendered?"animate":"attr";this.x=a;this.y=d+this.trackBorderWidth;this.width=e;this.xOffset=this.height=c;this.yOffset=f;b?(this.width=this.yOffset=e=f=this.size,this.xOffset=d=0,this.barWidth=c-2*e,this.x=a+=this.options.margin):(this.height=this.xOffset=c=d=this.size,this.barWidth=e-2*c,this.y+=this.options.margin);this.group[g]({translateX:a,translateY:this.y});this.track[g]({width:e,height:c});this.scrollbarButtons[1].attr({translateX:b?0:e-d,translateY:b? +c-f:0})},drawScrollbarButton:function(a){var b=this.renderer,d=this.scrollbarButtons,c=this.options,e=this.size,f;f=b.g().add(this.group);d.push(f);f=b.rect().addClass("highcharts-scrollbar-button").add(f);f.attr({stroke:c.buttonBorderColor,"stroke-width":c.buttonBorderWidth,fill:c.buttonBackgroundColor});f.attr(f.crisp({x:-.5,y:-.5,width:e+1,height:e+1,r:c.buttonBorderRadius},f.strokeWidth()));f=b.path(this.swapXY(["M",e/2+(a?-1:1),e/2-3,"L",e/2+(a?-1:1),e/2+3,"L",e/2+(a?2:-2),e/2],c.vertical)).addClass("highcharts-scrollbar-arrow").add(d[a]); +f.attr({fill:c.buttonArrowColor})},swapXY:function(a,d){var b=a.length,c;if(d)for(d=0;d=k?this.scrollbarRifles.hide():this.scrollbarRifles.show(!0),!1===b.showFull&&(0>=a&&1<=d?this.group.hide():this.group.show()),this.rendered=!0)},initEvents:function(){var a=this;a.mouseMoveHandler=function(b){var d=a.chart.pointer.normalize(b),c=a.options.vertical? +"chartY":"chartX",e=a.initPositions;!a.grabbedCenter||b.touches&&0===b.touches[0][c]||(d=a.cursorToScrollbarPosition(d)[c],c=a[c],c=d-c,a.hasDragged=!0,a.updatePosition(e[0]+c,e[1]+c),a.hasDragged&&k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMType:b.type,DOMEvent:b}))};a.mouseUpHandler=function(b){a.hasDragged&&k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMType:b.type,DOMEvent:b});a.grabbedCenter=a.hasDragged=a.chartX=a.chartY=null};a.mouseDownHandler=function(b){b=a.chart.pointer.normalize(b); +b=a.cursorToScrollbarPosition(b);a.chartX=b.chartX;a.chartY=b.chartY;a.initPositions=[a.from,a.to];a.grabbedCenter=!0};a.buttonToMinClick=function(b){var d=H(a.to-a.from)*a.options.step;a.updatePosition(H(a.from-d),H(a.to-d));k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})};a.buttonToMaxClick=function(b){var d=(a.to-a.from)*a.options.step;a.updatePosition(a.from+d,a.to+d);k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})};a.trackClick=function(b){var d=a.chart.pointer.normalize(b), +c=a.to-a.from,e=a.y+a.scrollbarTop,f=a.x+a.scrollbarLeft;a.options.vertical&&d.chartY>e||!a.options.vertical&&d.chartX>f?a.updatePosition(a.from+c,a.to+c):a.updatePosition(a.from-c,a.to-c);k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})}},cursorToScrollbarPosition:function(a){var b=this.options,b=b.minWidth>this.calculatedWidth?b.minWidth:0;return{chartX:(a.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(a.chartY-this.y-this.yOffset)/(this.barWidth-b)}},updatePosition:function(a, +d){1a&&(d=H(d-a),a=0);this.from=a;this.to=d},update:function(a){this.destroy();this.init(this.chart.renderer,g(!0,this.options,a),this.chart)},addEvents:function(){var a=this.options.inverted?[1,0]:[0,1],d=this.scrollbarButtons,e=this.scrollbarGroup.element,c=this.mouseDownHandler,f=this.mouseMoveHandler,g=this.mouseUpHandler,a=[[d[a[0]].element,"click",this.buttonToMinClick],[d[a[1]].element,"click",this.buttonToMaxClick],[this.track.element,"click",this.trackClick],[e, +"mousedown",c],[w,"mousemove",f],[w,"mouseup",g]];m&&a.push([e,"touchstart",c],[w,"touchmove",f],[w,"touchend",g]);t(a,function(a){B.apply(null,a)});this._events=a},removeEvents:function(){t(this._events,function(a){C.apply(null,a)});this._events=void 0},destroy:function(){var a=this.chart.scroller;this.removeEvents();t(["track","scrollbarRifles","scrollbar","scrollbarGroup","group"],function(a){this[a]&&this[a].destroy&&(this[a]=this[a].destroy())},this);a&&(a.scrollbar=null,r(a.scrollbarButtons))}}; +f(G.prototype,"init",function(a){var b=this;a.apply(b,[].slice.call(arguments,1));b.options.scrollbar&&b.options.scrollbar.enabled&&(b.options.scrollbar.vertical=!b.horiz,b.options.startOnTick=b.options.endOnTick=!1,b.scrollbar=new D(b.chart.renderer,b.options.scrollbar,b.chart),B(b.scrollbar,"changed",function(a){var c=Math.min(h(b.options.min,b.min),b.min,b.dataMin),d=Math.max(h(b.options.max,b.max),b.max,b.dataMax)-c,e;b.horiz&&!b.reversed||!b.horiz&&b.reversed?(e=c+d*this.to,c+=d*this.from):(e= +c+d*(1-this.from),c+=d*(1-this.to));b.setExtremes(c,e,!0,!1,a)}))});f(G.prototype,"render",function(a){var b=Math.min(h(this.options.min,this.min),this.min,this.dataMin),d=Math.max(h(this.options.max,this.max),this.max,this.dataMax),c=this.scrollbar,e;a.apply(this,[].slice.call(arguments,1));c&&(this.horiz?c.position(this.left,this.top+this.height+this.offset+2+(this.opposite?0:this.axisTitleMargin),this.width,this.height):c.position(this.left+this.width+2+this.offset+(this.opposite?this.axisTitleMargin: +0),this.top,this.width,this.height),isNaN(b)||isNaN(d)||!l(this.min)||!l(this.max)?c.setRange(0,0):(e=(this.min-b)/(d-b),b=(this.max-b)/(d-b),this.horiz&&!this.reversed||!this.horiz&&this.reversed?c.setRange(e,b):c.setRange(1-b,1-e)))});f(G.prototype,"getOffset",function(a){var b=this.horiz?2:1,d=this.scrollbar;a.apply(this,[].slice.call(arguments,1));d&&(this.chart.axisOffset[b]+=d.size+d.options.margin)});f(G.prototype,"destroy",function(a){this.scrollbar&&(this.scrollbar=this.scrollbar.destroy()); +a.apply(this,[].slice.call(arguments,1))});a.Scrollbar=D})(N);(function(a){function D(a){this.init(a)}var B=a.addEvent,G=a.Axis,H=a.Chart,p=a.color,l=a.defaultOptions,r=a.defined,w=a.destroyObjectProperties,t=a.doc,k=a.each,m=a.erase,e=a.error,g=a.extend,h=a.grep,C=a.hasTouch,f=a.isNumber,d=a.isObject,b=a.isTouchDevice,q=a.merge,E=a.pick,c=a.removeEvent,F=a.Scrollbar,n=a.Series,A=a.seriesTypes,x=a.wrap,J=[].concat(a.defaultDataGroupingUnits),y=function(a){var b=h(arguments,f);if(b.length)return Math[a].apply(0, +b)};J[4]=["day",[1,2,3,4]];J[5]=["week",[1,2,3]];A=void 0===A.areaspline?"line":"areaspline";g(l,{navigator:{height:40,margin:25,maskInside:!0,handles:{backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:p("#6685c2").setOpacity(.3).get(),outlineColor:"#cccccc",outlineWidth:1,series:{type:A,color:"#335cad",fillOpacity:.05,lineWidth:1,compare:null,dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,smoothed:!0,units:J},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series", +className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},pointRange:0,shadow:!1,threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#999999"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}); +D.prototype={drawHandle:function(a,b){var c=this.chart.renderer,d=this.handles;this.rendered||(d[b]=c.path(["M",-4.5,.5,"L",3.5,.5,3.5,15.5,-4.5,15.5,-4.5,.5,"M",-1.5,4,"L",-1.5,12,"M",.5,4,"L",.5,12]).attr({zIndex:10-b}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][b]).add(),c=this.navigatorOptions.handles,d[b].attr({fill:c.backgroundColor,stroke:c.borderColor,"stroke-width":1}).css({cursor:"ew-resize"}));d[b][this.rendered&&!this.hasDragged?"animate":"attr"]({translateX:Math.round(this.scrollerLeft+ +this.scrollbarHeight+parseInt(a,10)),translateY:Math.round(this.top+this.height/2-8)})},update:function(a){this.destroy();q(!0,this.chart.options.navigator,this.options,a);this.init(this.chart)},render:function(a,b,c,d){var e=this.chart,g=e.renderer,k,h,l,n;n=this.scrollbarHeight;var m=this.xAxis,p=this.navigatorOptions,u=p.maskInside,q=this.height,v=this.top,t=this.navigatorEnabled,x=this.outlineHeight,y;y=this.rendered;if(f(a)&&f(b)&&(!this.hasDragged||r(c))&&(this.navigatorLeft=k=E(m.left,e.plotLeft+ +n),this.navigatorWidth=h=E(m.len,e.plotWidth-2*n),this.scrollerLeft=l=k-n,this.scrollerWidth=n=n=h+2*n,c=E(c,m.translate(a)),d=E(d,m.translate(b)),f(c)&&Infinity!==Math.abs(c)||(c=0,d=n),!(m.translate(d,!0)-m.translate(c,!0)f&&tp+d-u&&rk&&re?e=0:e+v>=q&&(e=q-v,x=h.getUnionExtremes().dataMax),e!==d&&(h.fixedWidth=v,d=l.toFixedRange(e, +e+v,null,x),c.setExtremes(d.min,d.max,!0,null,{trigger:"navigator"}))))};h.mouseMoveHandler=function(b){var c=h.scrollbarHeight,d=h.navigatorLeft,e=h.navigatorWidth,f=h.scrollerLeft,g=h.scrollerWidth,k=h.range,l;b.touches&&0===b.touches[0].pageX||(b=a.pointer.normalize(b),l=b.chartX,lf+g-c&&(l=f+g-c),h.grabbedLeft?(h.hasDragged=!0,h.render(0,0,l-d,h.otherHandlePos)):h.grabbedRight?(h.hasDragged=!0,h.render(0,0,h.otherHandlePos,l-d)):h.grabbedCenter&&(h.hasDragged=!0,le+n-k&&(l=e+ +n-k),h.render(0,0,l-n,l-n+k)),h.hasDragged&&h.scrollbar&&h.scrollbar.options.liveRedraw&&(b.DOMType=b.type,setTimeout(function(){h.mouseUpHandler(b)},0)))};h.mouseUpHandler=function(b){var c,d,e=b.DOMEvent||b;if(h.hasDragged||"scrollbar"===b.trigger)h.zoomedMin===h.otherHandlePos?c=h.fixedExtreme:h.zoomedMax===h.otherHandlePos&&(d=h.fixedExtreme),h.zoomedMax===h.navigatorWidth&&(d=h.getUnionExtremes().dataMax),c=l.toFixedRange(h.zoomedMin,h.zoomedMax,c,d),r(c.min)&&a.xAxis[0].setExtremes(c.min,c.max, +!0,h.hasDragged?!1:null,{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:e});"mousemove"!==b.DOMType&&(h.grabbedLeft=h.grabbedRight=h.grabbedCenter=h.fixedWidth=h.fixedExtreme=h.otherHandlePos=h.hasDragged=n=null)};var c=a.xAxis.length,f=a.yAxis.length,m=e&&e[0]&&e[0].xAxis||a.xAxis[0];a.extraBottomMargin=h.outlineHeight+d.margin;a.isDirtyBox=!0;h.navigatorEnabled?(h.xAxis=l=new G(a,q({breaks:m.options.breaks,ordinal:m.options.ordinal},d.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis", +isX:!0,type:"datetime",index:c,height:g,offset:0,offsetLeft:k,offsetRight:-k,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1})),h.yAxis=new G(a,q(d.yAxis,{id:"navigator-y-axis",alignTicks:!1,height:g,offset:0,index:f,zoomEnabled:!1})),e||d.series.data?h.addBaseSeries():0===a.series.length&&x(a,"redraw",function(b,c){0=Math.round(a.navigatorWidth);b&&!a.hasNavigatorData&&(b.options.pointStart=this.xData[0],b.setData(this.options.data,!1,null,!1))},destroy:function(){this.removeEvents();this.xAxis&&(m(this.chart.xAxis,this.xAxis),m(this.chart.axes,this.xAxis));this.yAxis&&(m(this.chart.yAxis,this.yAxis),m(this.chart.axes,this.yAxis));k(this.series||[],function(a){a.destroy&&a.destroy()});k("series xAxis yAxis leftShade rightShade outline scrollbarTrack scrollbarRifles scrollbarGroup scrollbar navigatorGroup rendered".split(" "), +function(a){this[a]&&this[a].destroy&&this[a].destroy();this[a]=null},this);k([this.handles,this.elementsToDestroy],function(a){w(a)},this)}};a.Navigator=D;x(G.prototype,"zoom",function(a,b,c){var d=this.chart,e=d.options,f=e.chart.zoomType,g=e.navigator,e=e.rangeSelector,h;this.isXAxis&&(g&&g.enabled||e&&e.enabled)&&("x"===f?d.resetZoomButton="blocked":"y"===f?h=!1:"xy"===f&&(d=this.previousZoom,r(b)?this.previousZoom=[this.min,this.max]:d&&(b=d[0],c=d[1],delete this.previousZoom)));return void 0!== +h?h:a.call(this,b,c)});x(H.prototype,"init",function(a,b,c){B(this,"beforeRender",function(){var a=this.options;if(a.navigator.enabled||a.scrollbar.enabled)this.scroller=this.navigator=new D(this)});a.call(this,b,c)});x(H.prototype,"getMargins",function(a){var b=this.legend,c=b.options,d=this.scroller,e,f;a.apply(this,[].slice.call(arguments,1));d&&(e=d.xAxis,f=d.yAxis,d.top=d.navigatorOptions.top||this.chartHeight-d.height-d.scrollbarHeight-this.spacing[2]-("bottom"===c.verticalAlign&&c.enabled&& +!c.floating?b.legendHeight+E(c.margin,10):0),e&&f&&(e.options.top=f.options.top=d.top,e.setAxisSize(),f.setAxisSize()))});x(n.prototype,"addPoint",function(a,b,c,f,g){var h=this.options.turboThreshold;h&&this.xData.length>h&&d(b,!0)&&this.chart.scroller&&e(20,!0);a.call(this,b,c,f,g)});x(H.prototype,"addSeries",function(a,b,c,d){a=a.call(this,b,!1,d);this.scroller&&this.scroller.setBaseSeries();E(c,!0)&&this.redraw();return a});x(n.prototype,"update",function(a,b,c){a.call(this,b,!1);this.chart.scroller&& +this.chart.scroller.setBaseSeries();E(c,!0)&&this.chart.redraw()})})(N);(function(a){function D(a){this.init(a)}var B=a.addEvent,G=a.Axis,H=a.Chart,p=a.css,l=a.createElement,r=a.dateFormat,w=a.defaultOptions,t=w.global.useUTC,k=a.defined,m=a.destroyObjectProperties,e=a.discardElement,g=a.each,h=a.extend,C=a.fireEvent,f=a.Date,d=a.isNumber,b=a.merge,q=a.pick,E=a.pInt,c=a.splat,F=a.wrap;h(w,{rangeSelector:{buttonTheme:{"stroke-width":0,width:28,height:18,padding:2,zIndex:7},height:35,inputPosition:{align:"right"}, +labelStyle:{color:"#666666"}}});w.lang=b(w.lang,{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"From",rangeSelectorTo:"To"});D.prototype={clickButton:function(a,b){var e=this,f=e.chart,h=e.buttonOptions[a],k=f.xAxis[0],l=f.scroller&&f.scroller.getUnionExtremes()||k||{},n=l.dataMin,m=l.dataMax,p,r=k&&Math.round(Math.min(k.max,q(m,k.max))),w=h.type,z,l=h._range,A,C,D,E=h.dataGrouping;if(null!==n&&null!==m){f.fixedRange=l;E&&(this.forcedDataGrouping=!0,G.prototype.setDataGrouping.call(k||{chart:this.chart}, +E,!1));if("month"===w||"year"===w)k?(w={range:h,max:r,dataMin:n,dataMax:m},p=k.minFromRange.call(w),d(w.newMax)&&(r=w.newMax)):l=h;else if(l)p=Math.max(r-l,n),r=Math.min(p+l,m);else if("ytd"===w)if(k)void 0===m&&(n=Number.MAX_VALUE,m=Number.MIN_VALUE,g(f.series,function(a){a=a.xData;n=Math.min(a[0],n);m=Math.max(a[a.length-1],m)}),b=!1),r=e.getYTDExtremes(m,n,t),p=A=r.min,r=r.max;else{B(f,"beforeRender",function(){e.clickButton(a)});return}else"all"===w&&k&&(p=n,r=m);e.setSelected(a);k?k.setExtremes(p, +r,q(b,1),null,{trigger:"rangeSelectorButton",rangeSelectorButton:h}):(z=c(f.options.xAxis)[0],D=z.range,z.range=l,C=z.min,z.min=A,B(f,"load",function(){z.range=D;z.min=C}))}},setSelected:function(a){this.selected=this.options.selected=a},defaultButtons:[{type:"month",count:1,text:"1m"},{type:"month",count:3,text:"3m"},{type:"month",count:6,text:"6m"},{type:"ytd",text:"YTD"},{type:"year",count:1,text:"1y"},{type:"all",text:"All"}],init:function(a){var b=this,c=a.options.rangeSelector,d=c.buttons|| +[].concat(b.defaultButtons),e=c.selected,f=function(){var a=b.minInput,c=b.maxInput;a&&a.blur&&C(a,"blur");c&&c.blur&&C(c,"blur")};b.chart=a;b.options=c;b.buttons=[];a.extraTopMargin=c.height;b.buttonOptions=d;this.unMouseDown=B(a.container,"mousedown",f);this.unResize=B(a,"resize",f);g(d,b.computeButtonRange);void 0!==e&&d[e]&&this.clickButton(e,!1);B(a,"load",function(){B(a.xAxis[0],"setExtremes",function(c){this.max-this.min!==a.fixedRange&&"rangeSelectorButton"!==c.trigger&&"updatedData"!==c.trigger&& +b.forcedDataGrouping&&this.setDataGrouping(!1,!1)})})},updateButtonStates:function(){var a=this.chart,b=a.xAxis[0],c=Math.round(b.max-b.min),e=!b.hasVisibleSeries,a=a.scroller&&a.scroller.getUnionExtremes()||b,f=a.dataMin,h=a.dataMax,a=this.getYTDExtremes(h,f,t),k=a.min,l=a.max,m=this.selected,p=d(m),q=this.options.allButtonsEnabled,r=this.buttons;g(this.buttonOptions,function(a,d){var g=a._range,n=a.type,u=a.count||1;a=r[d];var t=0;d=d===m;var v=g>h-f,x=g=864E5*{month:28,year:365}[n]*u&&c<=864E5*{month:31,year:366}[n]*u?g=!0:"ytd"===n?(g=l-k===c,y=!d):"all"===n&&(g=b.max-b.min>=h-f,w=!d&&p&&g);n=!q&&(v||x||w||e);g=d&&g||g&&!p&&!y;n?t=3:g&&(p=!0,t=2);a.state!==t&&a.setState(t)})},computeButtonRange:function(a){var b=a.type,c=a.count||1,d={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5};if(d[b])a._range=d[b]*c;else if("month"===b||"year"===b)a._range=864E5*{month:30,year:365}[b]*c},setInputValue:function(a,b){var c= +this.chart.options.rangeSelector,d=this[a+"Input"];k(b)&&(d.previousValue=d.HCTime,d.HCTime=b);d.value=r(c.inputEditDateFormat||"%Y-%m-%d",d.HCTime);this[a+"DateBox"].attr({text:r(c.inputDateFormat||"%b %e, %Y",d.HCTime)})},showInput:function(a){var b=this.inputGroup,c=this[a+"DateBox"];p(this[a+"Input"],{left:b.translateX+c.x+"px",top:b.translateY+"px",width:c.width-2+"px",height:c.height-2+"px",border:"2px solid silver"})},hideInput:function(a){p(this[a+"Input"],{border:0,width:"1px",height:"1px"}); +this.setInputValue(a)},drawInput:function(a){function c(){var a=r.value,b=(m.inputDateParser||Date.parse)(a),c=f.xAxis[0],g=f.scroller&&f.scroller.xAxis?f.scroller.xAxis:c,h=g.dataMin,g=g.dataMax;b!==r.previousValue&&(r.previousValue=b,d(b)||(b=a.split("-"),b=Date.UTC(E(b[0]),E(b[1])-1,E(b[2]))),d(b)&&(t||(b+=6E4*(new Date).getTimezoneOffset()),q?b>e.maxInput.HCTime?b=void 0:bg&&(b=g),void 0!==b&&c.setExtremes(q?b:c.min,q?c.max:b,void 0,void 0,{trigger:"rangeSelectorInput"})))} +var e=this,f=e.chart,g=f.renderer.style||{},k=f.renderer,m=f.options.rangeSelector,n=e.div,q="min"===a,r,B,C=this.inputGroup;this[a+"Label"]=B=k.label(w.lang[q?"rangeSelectorFrom":"rangeSelectorTo"],this.inputGroup.offset).addClass("highcharts-range-label").attr({padding:2}).add(C);C.offset+=B.width+5;this[a+"DateBox"]=k=k.label("",C.offset).addClass("highcharts-range-input").attr({padding:2,width:m.inputBoxWidth||90,height:m.inputBoxHeight||17,stroke:m.inputBoxBorderColor||"#cccccc","stroke-width":1, +"text-align":"center"}).on("click",function(){e.showInput(a);e[a+"Input"].focus()}).add(C);C.offset+=k.width+(q?10:0);this[a+"Input"]=r=l("input",{name:a,className:"highcharts-range-selector",type:"text"},{top:f.plotTop+"px"},n);B.css(b(g,m.labelStyle));k.css(b({color:"#333333"},g,m.inputStyle));p(r,h({position:"absolute",border:0,width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:g.fontSize,fontFamily:g.fontFamily,left:"-9em"},m.inputStyle));r.onfocus=function(){e.showInput(a)};r.onblur= +function(){e.hideInput(a)};r.onchange=c;r.onkeypress=function(a){13===a.keyCode&&c()}},getPosition:function(){var a=this.chart,b=a.options.rangeSelector,a=q((b.buttonPosition||{}).y,a.plotTop-a.axisOffset[0]-b.height);return{buttonTop:a,inputTop:a-10}},getYTDExtremes:function(a,b,c){var d=new f(a),e=d[f.hcGetFullYear]();c=c?f.UTC(e,0,1):+new f(e,0,1);b=Math.max(b||0,c);d=d.getTime();return{max:Math.min(a||d,d),min:b}},render:function(a,b){var c=this,d=c.chart,e=d.renderer,f=d.container,m=d.options, +n=m.exporting&&!1!==m.exporting.enabled&&m.navigation&&m.navigation.buttonOptions,p=m.rangeSelector,r=c.buttons,m=w.lang,t=c.div,t=c.inputGroup,A=p.buttonTheme,z=p.buttonPosition||{},B=p.inputEnabled,C=A&&A.states,D=d.plotLeft,E,G=this.getPosition(),F=c.group,H=c.rendered;!1!==p.enabled&&(H||(c.group=F=e.g("range-selector-buttons").add(),c.zoomText=e.text(m.rangeSelectorZoom,q(z.x,D),15).css(p.labelStyle).add(F),E=q(z.x,D)+c.zoomText.getBBox().width+5,g(c.buttonOptions,function(a,b){r[b]=e.button(a.text, +E,0,function(){c.clickButton(b);c.isActive=!0},A,C&&C.hover,C&&C.select,C&&C.disabled).attr({"text-align":"center"}).add(F);E+=r[b].width+q(p.buttonSpacing,5)}),!1!==B&&(c.div=t=l("div",null,{position:"relative",height:0,zIndex:1}),f.parentNode.insertBefore(t,f),c.inputGroup=t=e.g("input-group").add(),t.offset=0,c.drawInput("min"),c.drawInput("max"))),c.updateButtonStates(),F[H?"animate":"attr"]({translateY:G.buttonTop}),!1!==B&&(t.align(h({y:G.inputTop,width:t.offset,x:n&&G.inputTop<(n.y||0)+n.height- +d.spacing[0]?-40:0},p.inputPosition),!0,d.spacingBox),k(B)||(d=F.getBBox(),t[t.alignAttr.translateXc&&(e?a=b-f:b=a+f);d(a)||(a=b=void 0);return{min:a,max:b}};G.prototype.minFromRange=function(){var a=this.range,b={month:"Month",year:"FullYear"}[a.type],c,e=this.max,f,g,h=function(a,c){var d=new Date(a);d["set"+b](d["get"+ +b]()+c);return d.getTime()-a};d(a)?(c=e-a,g=a):(c=e+h(e,-a.count),this.chart&&(this.chart.fixedRange=e-c));f=q(this.dataMin,Number.MIN_VALUE);d(c)||(c=f);c<=f&&(c=f,void 0===g&&(g=h(c,a.count)),this.newMax=Math.min(c+g,this.dataMax));d(e)||(c=void 0);return c};F(H.prototype,"init",function(a,b,c){B(this,"init",function(){this.options.rangeSelector.enabled&&(this.rangeSelector=new D(this))});a.call(this,b,c)});a.RangeSelector=D})(N);(function(a){var D=a.addEvent,B=a.isNumber;a.Chart.prototype.callbacks.push(function(a){function G(){p= +a.xAxis[0].getExtremes();B(p.min)&&r.render(p.min,p.max)}var p,l=a.scroller,r=a.rangeSelector,w,t;l&&(p=a.xAxis[0].getExtremes(),l.render(p.min,p.max));r&&(t=D(a.xAxis[0],"afterSetExtremes",function(a){r.render(a.min,a.max)}),w=D(a,"redraw",G),G());D(a,"destroy",function(){r&&(w(),t())})})})(N);(function(a){var D=a.arrayMax,B=a.arrayMin,G=a.Axis,H=a.Chart,p=a.defined,l=a.each,r=a.extend,w=a.format,t=a.inArray,k=a.isNumber,m=a.isString,e=a.map,g=a.merge,h=a.pick,C=a.Point,f=a.Renderer,d=a.Series,b= +a.splat,q=a.stop,E=a.SVGRenderer,c=a.VMLRenderer,F=a.wrap,n=d.prototype,A=n.init,x=n.processData,J=C.prototype.tooltipFormatter;a.StockChart=a.stockChart=function(c,d,f){var k=m(c)||c.nodeName,l=arguments[k?1:0],n=l.series,p=a.getOptions(),q,r=h(l.navigator&&l.navigator.enabled,!0)?{startOnTick:!1,endOnTick:!1}:null,t={marker:{enabled:!1,radius:2}},u={shadow:!1,borderWidth:0};l.xAxis=e(b(l.xAxis||{}),function(a){return g({minPadding:0,maxPadding:0,ordinal:!0,title:{text:null},labels:{overflow:"justify"}, +showLastLabel:!0},p.xAxis,a,{type:"datetime",categories:null},r)});l.yAxis=e(b(l.yAxis||{}),function(a){q=h(a.opposite,!0);return g({labels:{y:-2},opposite:q,showLastLabel:!1,title:{text:null}},p.yAxis,a)});l.series=null;l=g({chart:{panning:!0,pinchType:"x"},navigator:{enabled:!0},scrollbar:{enabled:!0},rangeSelector:{enabled:!0},title:{text:null,style:{fontSize:"16px"}},tooltip:{shared:!0,crosshairs:!0},legend:{enabled:!1},plotOptions:{line:t,spline:t,area:t,areaspline:t,arearange:t,areasplinerange:t, +column:u,columnrange:u,candlestick:u,ohlc:u}},l,{_stock:!0,chart:{inverted:!1}});l.series=n;return k?new H(c,l,f):new H(l,d)};F(G.prototype,"autoLabelAlign",function(a){var b=this.chart,c=this.options,b=b._labelPanes=b._labelPanes||{},d=this.options.labels;return this.chart.options._stock&&"yAxis"===this.coll&&(c=c.top+","+c.height,!b[c]&&d.enabled)?(15===d.x&&(d.x=0),void 0===d.align&&(d.align="right"),b[c]=1,"right"):a.call(this,[].slice.call(arguments,1))});F(G.prototype,"getPlotLinePath",function(a, +b,c,d,f,g){var n=this,q=this.isLinked&&!this.series?this.linkedParent.series:this.series,r=n.chart,u=r.renderer,v=n.left,w=n.top,y,x,A,B,C=[],D=[],E,F;if("colorAxis"===n.coll)return a.apply(this,[].slice.call(arguments,1));D=function(a){var b="xAxis"===a?"yAxis":"xAxis";a=n.options[b];return k(a)?[r[b][a]]:m(a)?[r.get(a)]:e(q,function(a){return a[b]})}(n.coll);l(n.isXAxis?r.yAxis:r.xAxis,function(a){if(p(a.options.id)?-1===a.options.id.indexOf("navigator"):1){var b=a.isXAxis?"yAxis":"xAxis",b=p(a.options[b])? +r[b][a.options[b]]:r[b][0];n===b&&D.push(a)}});E=D.length?[]:[n.isXAxis?r.yAxis[0]:r.xAxis[0]];l(D,function(a){-1===t(a,E)&&E.push(a)});F=h(g,n.translate(b,null,null,d));k(F)&&(n.horiz?l(E,function(a){var b;x=a.pos;B=x+a.len;y=A=Math.round(F+n.transB);if(yv+n.width)f?y=A=Math.min(Math.max(v,y),v+n.width):b=!0;b||C.push("M",y,x,"L",A,B)}):l(E,function(a){var b;y=a.pos;A=y+a.len;x=B=Math.round(w+n.height-F);if(xw+n.height)f?x=B=Math.min(Math.max(w,x),n.top+n.height):b=!0;b||C.push("M",y, +x,"L",A,B)}));return 0=e&&(x=-(l.translateX+b.width-e));l.attr({x:m+x,y:k,anchorX:g?m:this.opposite?0:a.chartWidth,anchorY:g?this.opposite?a.chartHeight:0:k+b.height/2})}});n.init=function(){A.apply(this,arguments);this.setCompare(this.options.compare)};n.setCompare=function(a){this.modifyValue= +"value"===a||"percent"===a?function(b,c){var d=this.compareValue;if(void 0!==b&&void 0!==d)return b="value"===a?b-d:b=b/d*100-100,c&&(c.change=b),b}:null;this.userOptions.compare=a;this.chart.hasRendered&&(this.isDirty=!0)};n.processData=function(){var a,b=-1,c,d,e,f;x.apply(this,arguments);if(this.xAxis&&this.processedYData)for(c=this.processedXData,d=this.processedYData,e=d.length,this.pointArrayMap&&(b=t("close",this.pointArrayMap),-1===b&&(b=t(this.pointValKey||"y",this.pointArrayMap))),a=0;a< +e-1;a++)if(f=-1=this.xAxis.min&&0!==f){this.compareValue=f;break}};F(n,"getExtremes",function(a){var b;a.apply(this,[].slice.call(arguments,1));this.modifyValue&&(b=[this.modifyValue(this.dataMin),this.modifyValue(this.dataMax)],this.dataMin=B(b),this.dataMax=D(b))});G.prototype.setCompare=function(a,b){this.isXAxis||(l(this.series,function(b){b.setCompare(a)}),h(b,!0)&&this.chart.redraw())};C.prototype.tooltipFormatter=function(b){b=b.replace("{point.change}",(0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=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))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(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&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(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&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(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 ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);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&&E){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=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(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(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===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]||se.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]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(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(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(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=se.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 D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.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 S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(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 qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.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)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.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),m(t)&&(t=t.call(e,n,S.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):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.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"===S.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"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(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)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(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?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.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)}}),S.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){S.fn[n]=function(e,t){return 0 '; + else + var expandButton = ''; + + return '' + expandButton + '' + ellipsedLabel({ name: item.name, parentClass: "nav-tooltip", childClass: "nav-label" }) + ''; +} + +function menuItemsForGroup(group, level, parent) { + var items = ''; + + if (level > 0) + items += menuItem(group, level - 1, parent, true); + + $.each(group.contents, function (contentName, content) { + if (content.type == 'GROUP') + items += menuItemsForGroup(content, level + 1, group.pathFormatted); + else if (content.type == 'REQUEST') + items += menuItem(content, level, group.pathFormatted); + }); + + return items; +} + +function setDetailsMenu(){ + $('.nav ul').append(menuItemsForGroup(stats, 0)); + $('.nav').expandable(); + $('.nav-tooltip').popover({trigger:'hover'}); +} + +function setGlobalMenu(){ + $('.nav ul') + .append('
  • Ranges
  • ') + .append('
  • Stats
  • ') + .append('
  • Active Users
  • ') + .append('
  • Requests / sec
  • ') + .append('
  • Responses / sec
  • '); +} + +function getLink(link){ + var a = link.split('/'); + return (a.length<=1)? link : a[a.length-1]; +} + +function expandUp(li) { + const parentId = li.attr("data-parent"); + if (parentId != "ROOT") { + const span = $('#' + parentId); + const parentLi = span.parents('li').first(); + span.expand(parentLi, false); + expandUp(parentLi); + } +} + +function setActiveMenu(){ + $('.nav a').each(function() { + const navA = $(this) + if(!navA.hasClass('expand-button') && navA.attr('href') == getLink(window.location.pathname)) { + const li = $(this).parents('li').first(); + li.addClass('on'); + expandUp(li); + return false; + } + }); +} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/stats.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/stats.js new file mode 100644 index 0000000..44ac3fe --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/stats.js @@ -0,0 +1,1523 @@ +var stats = { + type: "GROUP", +name: "All Requests", +path: "", +pathFormatted: "group_missing-name--1146707516", +stats: { + "name": "All Requests", + "numberOfRequests": { + "total": "2108", + "ok": "2108", + "ko": "0" + }, + "minResponseTime": { + "total": "24", + "ok": "24", + "ko": "-" + }, + "maxResponseTime": { + "total": "1697", + "ok": "1697", + "ko": "-" + }, + "meanResponseTime": { + "total": "136", + "ok": "136", + "ko": "-" + }, + "standardDeviation": { + "total": "198", + "ok": "198", + "ko": "-" + }, + "percentiles1": { + "total": "78", + "ok": "78", + "ko": "-" + }, + "percentiles2": { + "total": "95", + "ok": "95", + "ko": "-" + }, + "percentiles3": { + "total": "522", + "ok": "522", + "ko": "-" + }, + "percentiles4": { + "total": "1124", + "ok": "1124", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 2057, + "percentage": 98 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 35, + "percentage": 2 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 16, + "percentage": 1 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "15.731", + "ok": "15.731", + "ko": "-" + } +}, +contents: { +"req_request-0-693933696": { + type: "REQUEST", + name: "request_0", +path: "request_0", +pathFormatted: "req_request-0-693933696", +stats: { + "name": "request_0", + "numberOfRequests": { + "total": "124", + "ok": "124", + "ko": "0" + }, + "minResponseTime": { + "total": "73", + "ok": "73", + "ko": "-" + }, + "maxResponseTime": { + "total": "1077", + "ok": "1077", + "ko": "-" + }, + "meanResponseTime": { + "total": "112", + "ok": "112", + "ko": "-" + }, + "standardDeviation": { + "total": "101", + "ok": "101", + "ko": "-" + }, + "percentiles1": { + "total": "82", + "ok": "82", + "ko": "-" + }, + "percentiles2": { + "total": "106", + "ok": "106", + "ko": "-" + }, + "percentiles3": { + "total": "223", + "ok": "223", + "ko": "-" + }, + "percentiles4": { + "total": "371", + "ok": "371", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 123, + "percentage": 99 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 1, + "percentage": 1 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.925", + "ok": "0.925", + "ko": "-" + } +} + },"req_request-1-693933697": { + type: "REQUEST", + name: "request_1", +path: "request_1", +pathFormatted: "req_request-1-693933697", +stats: { + "name": "request_1", + "numberOfRequests": { + "total": "124", + "ok": "124", + "ko": "0" + }, + "minResponseTime": { + "total": "36", + "ok": "36", + "ko": "-" + }, + "maxResponseTime": { + "total": "117", + "ok": "117", + "ko": "-" + }, + "meanResponseTime": { + "total": "44", + "ok": "44", + "ko": "-" + }, + "standardDeviation": { + "total": "12", + "ok": "12", + "ko": "-" + }, + "percentiles1": { + "total": "40", + "ok": "40", + "ko": "-" + }, + "percentiles2": { + "total": "44", + "ok": "44", + "ko": "-" + }, + "percentiles3": { + "total": "64", + "ok": "64", + "ko": "-" + }, + "percentiles4": { + "total": "88", + "ok": "88", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 124, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.925", + "ok": "0.925", + "ko": "-" + } +} + },"req_request-2-693933698": { + type: "REQUEST", + name: "request_2", +path: "request_2", +pathFormatted: "req_request-2-693933698", +stats: { + "name": "request_2", + "numberOfRequests": { + "total": "124", + "ok": "124", + "ko": "0" + }, + "minResponseTime": { + "total": "73", + "ok": "73", + "ko": "-" + }, + "maxResponseTime": { + "total": "395", + "ok": "395", + "ko": "-" + }, + "meanResponseTime": { + "total": "100", + "ok": "100", + "ko": "-" + }, + "standardDeviation": { + "total": "50", + "ok": "50", + "ko": "-" + }, + "percentiles1": { + "total": "81", + "ok": "81", + "ko": "-" + }, + "percentiles2": { + "total": "99", + "ok": "99", + "ko": "-" + }, + "percentiles3": { + "total": "194", + "ok": "194", + "ko": "-" + }, + "percentiles4": { + "total": "331", + "ok": "331", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 124, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.925", + "ok": "0.925", + "ko": "-" + } +} + },"req_request-3-693933699": { + type: "REQUEST", + name: "request_3", +path: "request_3", +pathFormatted: "req_request-3-693933699", +stats: { + "name": "request_3", + "numberOfRequests": { + "total": "124", + "ok": "124", + "ko": "0" + }, + "minResponseTime": { + "total": "73", + "ok": "73", + "ko": "-" + }, + "maxResponseTime": { + "total": "361", + "ok": "361", + "ko": "-" + }, + "meanResponseTime": { + "total": "91", + "ok": "91", + "ko": "-" + }, + "standardDeviation": { + "total": "35", + "ok": "35", + "ko": "-" + }, + "percentiles1": { + "total": "81", + "ok": "81", + "ko": "-" + }, + "percentiles2": { + "total": "89", + "ok": "89", + "ko": "-" + }, + "percentiles3": { + "total": "151", + "ok": "151", + "ko": "-" + }, + "percentiles4": { + "total": "211", + "ok": "211", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 124, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.925", + "ok": "0.925", + "ko": "-" + } +} + },"req_request-5-693933701": { + type: "REQUEST", + name: "request_5", +path: "request_5", +pathFormatted: "req_request-5-693933701", +stats: { + "name": "request_5", + "numberOfRequests": { + "total": "124", + "ok": "124", + "ko": "0" + }, + "minResponseTime": { + "total": "293", + "ok": "293", + "ko": "-" + }, + "maxResponseTime": { + "total": "919", + "ok": "919", + "ko": "-" + }, + "meanResponseTime": { + "total": "415", + "ok": "415", + "ko": "-" + }, + "standardDeviation": { + "total": "144", + "ok": "144", + "ko": "-" + }, + "percentiles1": { + "total": "352", + "ok": "352", + "ko": "-" + }, + "percentiles2": { + "total": "466", + "ok": "466", + "ko": "-" + }, + "percentiles3": { + "total": "737", + "ok": "737", + "ko": "-" + }, + "percentiles4": { + "total": "897", + "ok": "897", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 119, + "percentage": 96 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 5, + "percentage": 4 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.925", + "ok": "0.925", + "ko": "-" + } +} + },"req_request-4-693933700": { + type: "REQUEST", + name: "request_4", +path: "request_4", +pathFormatted: "req_request-4-693933700", +stats: { + "name": "request_4", + "numberOfRequests": { + "total": "124", + "ok": "124", + "ko": "0" + }, + "minResponseTime": { + "total": "112", + "ok": "112", + "ko": "-" + }, + "maxResponseTime": { + "total": "333", + "ok": "333", + "ko": "-" + }, + "meanResponseTime": { + "total": "161", + "ok": "161", + "ko": "-" + }, + "standardDeviation": { + "total": "52", + "ok": "52", + "ko": "-" + }, + "percentiles1": { + "total": "136", + "ok": "136", + "ko": "-" + }, + "percentiles2": { + "total": "183", + "ok": "183", + "ko": "-" + }, + "percentiles3": { + "total": "272", + "ok": "272", + "ko": "-" + }, + "percentiles4": { + "total": "319", + "ok": "319", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 124, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.925", + "ok": "0.925", + "ko": "-" + } +} + },"req_request-6-693933702": { + type: "REQUEST", + name: "request_6", +path: "request_6", +pathFormatted: "req_request-6-693933702", +stats: { + "name": "request_6", + "numberOfRequests": { + "total": "124", + "ok": "124", + "ko": "0" + }, + "minResponseTime": { + "total": "386", + "ok": "386", + "ko": "-" + }, + "maxResponseTime": { + "total": "1697", + "ok": "1697", + "ko": "-" + }, + "meanResponseTime": { + "total": "747", + "ok": "747", + "ko": "-" + }, + "standardDeviation": { + "total": "318", + "ok": "318", + "ko": "-" + }, + "percentiles1": { + "total": "658", + "ok": "658", + "ko": "-" + }, + "percentiles2": { + "total": "955", + "ok": "955", + "ko": "-" + }, + "percentiles3": { + "total": "1309", + "ok": "1309", + "ko": "-" + }, + "percentiles4": { + "total": "1448", + "ok": "1448", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 79, + "percentage": 64 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 29, + "percentage": 23 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 16, + "percentage": 13 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.925", + "ok": "0.925", + "ko": "-" + } +} + },"req_request-7-693933703": { + type: "REQUEST", + name: "request_7", +path: "request_7", +pathFormatted: "req_request-7-693933703", +stats: { + "name": "request_7", + "numberOfRequests": { + "total": "124", + "ok": "124", + "ko": "0" + }, + "minResponseTime": { + "total": "37", + "ok": "37", + "ko": "-" + }, + "maxResponseTime": { + "total": "284", + "ok": "284", + "ko": "-" + }, + "meanResponseTime": { + "total": "50", + "ok": "50", + "ko": "-" + }, + "standardDeviation": { + "total": "28", + "ok": "28", + "ko": "-" + }, + "percentiles1": { + "total": "41", + "ok": "41", + "ko": "-" + }, + "percentiles2": { + "total": "45", + "ok": "45", + "ko": "-" + }, + "percentiles3": { + "total": "93", + "ok": "93", + "ko": "-" + }, + "percentiles4": { + "total": "134", + "ok": "134", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 124, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.925", + "ok": "0.925", + "ko": "-" + } +} + },"req_request-8-693933704": { + type: "REQUEST", + name: "request_8", +path: "request_8", +pathFormatted: "req_request-8-693933704", +stats: { + "name": "request_8", + "numberOfRequests": { + "total": "124", + "ok": "124", + "ko": "0" + }, + "minResponseTime": { + "total": "74", + "ok": "74", + "ko": "-" + }, + "maxResponseTime": { + "total": "349", + "ok": "349", + "ko": "-" + }, + "meanResponseTime": { + "total": "91", + "ok": "91", + "ko": "-" + }, + "standardDeviation": { + "total": "37", + "ok": "37", + "ko": "-" + }, + "percentiles1": { + "total": "82", + "ok": "82", + "ko": "-" + }, + "percentiles2": { + "total": "86", + "ok": "86", + "ko": "-" + }, + "percentiles3": { + "total": "134", + "ok": "134", + "ko": "-" + }, + "percentiles4": { + "total": "306", + "ok": "306", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 124, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.925", + "ok": "0.925", + "ko": "-" + } +} + },"req_request-9-693933705": { + type: "REQUEST", + name: "request_9", +path: "request_9", +pathFormatted: "req_request-9-693933705", +stats: { + "name": "request_9", + "numberOfRequests": { + "total": "124", + "ok": "124", + "ko": "0" + }, + "minResponseTime": { + "total": "75", + "ok": "75", + "ko": "-" + }, + "maxResponseTime": { + "total": "234", + "ok": "234", + "ko": "-" + }, + "meanResponseTime": { + "total": "85", + "ok": "85", + "ko": "-" + }, + "standardDeviation": { + "total": "19", + "ok": "19", + "ko": "-" + }, + "percentiles1": { + "total": "81", + "ok": "81", + "ko": "-" + }, + "percentiles2": { + "total": "83", + "ok": "83", + "ko": "-" + }, + "percentiles3": { + "total": "109", + "ok": "109", + "ko": "-" + }, + "percentiles4": { + "total": "166", + "ok": "166", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 124, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.925", + "ok": "0.925", + "ko": "-" + } +} + },"req_request-10-37108175": { + type: "REQUEST", + name: "request_10", +path: "request_10", +pathFormatted: "req_request-10-37108175", +stats: { + "name": "request_10", + "numberOfRequests": { + "total": "124", + "ok": "124", + "ko": "0" + }, + "minResponseTime": { + "total": "76", + "ok": "76", + "ko": "-" + }, + "maxResponseTime": { + "total": "186", + "ok": "186", + "ko": "-" + }, + "meanResponseTime": { + "total": "84", + "ok": "84", + "ko": "-" + }, + "standardDeviation": { + "total": "12", + "ok": "12", + "ko": "-" + }, + "percentiles1": { + "total": "83", + "ok": "83", + "ko": "-" + }, + "percentiles2": { + "total": "84", + "ok": "84", + "ko": "-" + }, + "percentiles3": { + "total": "96", + "ok": "96", + "ko": "-" + }, + "percentiles4": { + "total": "139", + "ok": "139", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 124, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.925", + "ok": "0.925", + "ko": "-" + } +} + },"req_request-11-37108176": { + type: "REQUEST", + name: "request_11", +path: "request_11", +pathFormatted: "req_request-11-37108176", +stats: { + "name": "request_11", + "numberOfRequests": { + "total": "124", + "ok": "124", + "ko": "0" + }, + "minResponseTime": { + "total": "38", + "ok": "38", + "ko": "-" + }, + "maxResponseTime": { + "total": "68", + "ok": "68", + "ko": "-" + }, + "meanResponseTime": { + "total": "43", + "ok": "43", + "ko": "-" + }, + "standardDeviation": { + "total": "5", + "ok": "5", + "ko": "-" + }, + "percentiles1": { + "total": "42", + "ok": "42", + "ko": "-" + }, + "percentiles2": { + "total": "44", + "ok": "44", + "ko": "-" + }, + "percentiles3": { + "total": "50", + "ok": "50", + "ko": "-" + }, + "percentiles4": { + "total": "65", + "ok": "65", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 124, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.925", + "ok": "0.925", + "ko": "-" + } +} + },"req_request-12-37108177": { + type: "REQUEST", + name: "request_12", +path: "request_12", +pathFormatted: "req_request-12-37108177", +stats: { + "name": "request_12", + "numberOfRequests": { + "total": "124", + "ok": "124", + "ko": "0" + }, + "minResponseTime": { + "total": "24", + "ok": "24", + "ko": "-" + }, + "maxResponseTime": { + "total": "629", + "ok": "629", + "ko": "-" + }, + "meanResponseTime": { + "total": "39", + "ok": "39", + "ko": "-" + }, + "standardDeviation": { + "total": "68", + "ok": "68", + "ko": "-" + }, + "percentiles1": { + "total": "31", + "ok": "31", + "ko": "-" + }, + "percentiles2": { + "total": "31", + "ok": "31", + "ko": "-" + }, + "percentiles3": { + "total": "35", + "ok": "35", + "ko": "-" + }, + "percentiles4": { + "total": "377", + "ok": "377", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 124, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.925", + "ok": "0.925", + "ko": "-" + } +} + },"req_request-14-37108179": { + type: "REQUEST", + name: "request_14", +path: "request_14", +pathFormatted: "req_request-14-37108179", +stats: { + "name": "request_14", + "numberOfRequests": { + "total": "124", + "ok": "124", + "ko": "0" + }, + "minResponseTime": { + "total": "36", + "ok": "36", + "ko": "-" + }, + "maxResponseTime": { + "total": "55", + "ok": "55", + "ko": "-" + }, + "meanResponseTime": { + "total": "39", + "ok": "39", + "ko": "-" + }, + "standardDeviation": { + "total": "3", + "ok": "3", + "ko": "-" + }, + "percentiles1": { + "total": "39", + "ok": "39", + "ko": "-" + }, + "percentiles2": { + "total": "40", + "ok": "40", + "ko": "-" + }, + "percentiles3": { + "total": "42", + "ok": "42", + "ko": "-" + }, + "percentiles4": { + "total": "52", + "ok": "52", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 124, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.925", + "ok": "0.925", + "ko": "-" + } +} + },"req_request-15-37108180": { + type: "REQUEST", + name: "request_15", +path: "request_15", +pathFormatted: "req_request-15-37108180", +stats: { + "name": "request_15", + "numberOfRequests": { + "total": "124", + "ok": "124", + "ko": "0" + }, + "minResponseTime": { + "total": "39", + "ok": "39", + "ko": "-" + }, + "maxResponseTime": { + "total": "60", + "ok": "60", + "ko": "-" + }, + "meanResponseTime": { + "total": "43", + "ok": "43", + "ko": "-" + }, + "standardDeviation": { + "total": "3", + "ok": "3", + "ko": "-" + }, + "percentiles1": { + "total": "43", + "ok": "43", + "ko": "-" + }, + "percentiles2": { + "total": "44", + "ok": "44", + "ko": "-" + }, + "percentiles3": { + "total": "48", + "ok": "48", + "ko": "-" + }, + "percentiles4": { + "total": "56", + "ok": "56", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 124, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.925", + "ok": "0.925", + "ko": "-" + } +} + },"req_request-16-37108181": { + type: "REQUEST", + name: "request_16", +path: "request_16", +pathFormatted: "req_request-16-37108181", +stats: { + "name": "request_16", + "numberOfRequests": { + "total": "124", + "ok": "124", + "ko": "0" + }, + "minResponseTime": { + "total": "75", + "ok": "75", + "ko": "-" + }, + "maxResponseTime": { + "total": "125", + "ok": "125", + "ko": "-" + }, + "meanResponseTime": { + "total": "81", + "ok": "81", + "ko": "-" + }, + "standardDeviation": { + "total": "7", + "ok": "7", + "ko": "-" + }, + "percentiles1": { + "total": "81", + "ok": "81", + "ko": "-" + }, + "percentiles2": { + "total": "83", + "ok": "83", + "ko": "-" + }, + "percentiles3": { + "total": "89", + "ok": "89", + "ko": "-" + }, + "percentiles4": { + "total": "116", + "ok": "116", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 124, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.925", + "ok": "0.925", + "ko": "-" + } +} + },"req_request-17-37108182": { + type: "REQUEST", + name: "request_17", +path: "request_17", +pathFormatted: "req_request-17-37108182", +stats: { + "name": "request_17", + "numberOfRequests": { + "total": "124", + "ok": "124", + "ko": "0" + }, + "minResponseTime": { + "total": "75", + "ok": "75", + "ko": "-" + }, + "maxResponseTime": { + "total": "99", + "ok": "99", + "ko": "-" + }, + "meanResponseTime": { + "total": "80", + "ok": "80", + "ko": "-" + }, + "standardDeviation": { + "total": "4", + "ok": "4", + "ko": "-" + }, + "percentiles1": { + "total": "81", + "ok": "81", + "ko": "-" + }, + "percentiles2": { + "total": "82", + "ok": "82", + "ko": "-" + }, + "percentiles3": { + "total": "86", + "ok": "86", + "ko": "-" + }, + "percentiles4": { + "total": "91", + "ok": "91", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 124, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.925", + "ok": "0.925", + "ko": "-" + } +} + } +} + +} + +function fillStats(stat){ + $("#numberOfRequests").append(stat.numberOfRequests.total); + $("#numberOfRequestsOK").append(stat.numberOfRequests.ok); + $("#numberOfRequestsKO").append(stat.numberOfRequests.ko); + + $("#minResponseTime").append(stat.minResponseTime.total); + $("#minResponseTimeOK").append(stat.minResponseTime.ok); + $("#minResponseTimeKO").append(stat.minResponseTime.ko); + + $("#maxResponseTime").append(stat.maxResponseTime.total); + $("#maxResponseTimeOK").append(stat.maxResponseTime.ok); + $("#maxResponseTimeKO").append(stat.maxResponseTime.ko); + + $("#meanResponseTime").append(stat.meanResponseTime.total); + $("#meanResponseTimeOK").append(stat.meanResponseTime.ok); + $("#meanResponseTimeKO").append(stat.meanResponseTime.ko); + + $("#standardDeviation").append(stat.standardDeviation.total); + $("#standardDeviationOK").append(stat.standardDeviation.ok); + $("#standardDeviationKO").append(stat.standardDeviation.ko); + + $("#percentiles1").append(stat.percentiles1.total); + $("#percentiles1OK").append(stat.percentiles1.ok); + $("#percentiles1KO").append(stat.percentiles1.ko); + + $("#percentiles2").append(stat.percentiles2.total); + $("#percentiles2OK").append(stat.percentiles2.ok); + $("#percentiles2KO").append(stat.percentiles2.ko); + + $("#percentiles3").append(stat.percentiles3.total); + $("#percentiles3OK").append(stat.percentiles3.ok); + $("#percentiles3KO").append(stat.percentiles3.ko); + + $("#percentiles4").append(stat.percentiles4.total); + $("#percentiles4OK").append(stat.percentiles4.ok); + $("#percentiles4KO").append(stat.percentiles4.ko); + + $("#meanNumberOfRequestsPerSecond").append(stat.meanNumberOfRequestsPerSecond.total); + $("#meanNumberOfRequestsPerSecondOK").append(stat.meanNumberOfRequestsPerSecond.ok); + $("#meanNumberOfRequestsPerSecondKO").append(stat.meanNumberOfRequestsPerSecond.ko); +} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/stats.json b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/stats.json new file mode 100644 index 0000000..bd6fc7a --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/stats.json @@ -0,0 +1,1481 @@ +{ + "type": "GROUP", +"name": "All Requests", +"path": "", +"pathFormatted": "group_missing-name--1146707516", +"stats": { + "name": "All Requests", + "numberOfRequests": { + "total": 2108, + "ok": 2108, + "ko": 0 + }, + "minResponseTime": { + "total": 24, + "ok": 24, + "ko": 0 + }, + "maxResponseTime": { + "total": 1697, + "ok": 1697, + "ko": 0 + }, + "meanResponseTime": { + "total": 136, + "ok": 136, + "ko": 0 + }, + "standardDeviation": { + "total": 198, + "ok": 198, + "ko": 0 + }, + "percentiles1": { + "total": 78, + "ok": 78, + "ko": 0 + }, + "percentiles2": { + "total": 95, + "ok": 95, + "ko": 0 + }, + "percentiles3": { + "total": 522, + "ok": 522, + "ko": 0 + }, + "percentiles4": { + "total": 1124, + "ok": 1124, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 2057, + "percentage": 98 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 35, + "percentage": 2 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 16, + "percentage": 1 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 15.73134328358209, + "ok": 15.73134328358209, + "ko": 0 + } +}, +"contents": { +"req_request-0-693933696": { + "type": "REQUEST", + "name": "request_0", +"path": "request_0", +"pathFormatted": "req_request-0-693933696", +"stats": { + "name": "request_0", + "numberOfRequests": { + "total": 124, + "ok": 124, + "ko": 0 + }, + "minResponseTime": { + "total": 73, + "ok": 73, + "ko": 0 + }, + "maxResponseTime": { + "total": 1077, + "ok": 1077, + "ko": 0 + }, + "meanResponseTime": { + "total": 112, + "ok": 112, + "ko": 0 + }, + "standardDeviation": { + "total": 101, + "ok": 101, + "ko": 0 + }, + "percentiles1": { + "total": 82, + "ok": 82, + "ko": 0 + }, + "percentiles2": { + "total": 106, + "ok": 106, + "ko": 0 + }, + "percentiles3": { + "total": 223, + "ok": 223, + "ko": 0 + }, + "percentiles4": { + "total": 371, + "ok": 371, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 123, + "percentage": 99 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 1, + "percentage": 1 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9253731343283582, + "ok": 0.9253731343283582, + "ko": 0 + } +} + },"req_request-1-693933697": { + "type": "REQUEST", + "name": "request_1", +"path": "request_1", +"pathFormatted": "req_request-1-693933697", +"stats": { + "name": "request_1", + "numberOfRequests": { + "total": 124, + "ok": 124, + "ko": 0 + }, + "minResponseTime": { + "total": 36, + "ok": 36, + "ko": 0 + }, + "maxResponseTime": { + "total": 117, + "ok": 117, + "ko": 0 + }, + "meanResponseTime": { + "total": 44, + "ok": 44, + "ko": 0 + }, + "standardDeviation": { + "total": 12, + "ok": 12, + "ko": 0 + }, + "percentiles1": { + "total": 40, + "ok": 40, + "ko": 0 + }, + "percentiles2": { + "total": 44, + "ok": 44, + "ko": 0 + }, + "percentiles3": { + "total": 64, + "ok": 64, + "ko": 0 + }, + "percentiles4": { + "total": 88, + "ok": 88, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 124, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9253731343283582, + "ok": 0.9253731343283582, + "ko": 0 + } +} + },"req_request-2-693933698": { + "type": "REQUEST", + "name": "request_2", +"path": "request_2", +"pathFormatted": "req_request-2-693933698", +"stats": { + "name": "request_2", + "numberOfRequests": { + "total": 124, + "ok": 124, + "ko": 0 + }, + "minResponseTime": { + "total": 73, + "ok": 73, + "ko": 0 + }, + "maxResponseTime": { + "total": 395, + "ok": 395, + "ko": 0 + }, + "meanResponseTime": { + "total": 100, + "ok": 100, + "ko": 0 + }, + "standardDeviation": { + "total": 50, + "ok": 50, + "ko": 0 + }, + "percentiles1": { + "total": 81, + "ok": 81, + "ko": 0 + }, + "percentiles2": { + "total": 99, + "ok": 99, + "ko": 0 + }, + "percentiles3": { + "total": 194, + "ok": 194, + "ko": 0 + }, + "percentiles4": { + "total": 331, + "ok": 331, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 124, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9253731343283582, + "ok": 0.9253731343283582, + "ko": 0 + } +} + },"req_request-3-693933699": { + "type": "REQUEST", + "name": "request_3", +"path": "request_3", +"pathFormatted": "req_request-3-693933699", +"stats": { + "name": "request_3", + "numberOfRequests": { + "total": 124, + "ok": 124, + "ko": 0 + }, + "minResponseTime": { + "total": 73, + "ok": 73, + "ko": 0 + }, + "maxResponseTime": { + "total": 361, + "ok": 361, + "ko": 0 + }, + "meanResponseTime": { + "total": 91, + "ok": 91, + "ko": 0 + }, + "standardDeviation": { + "total": 35, + "ok": 35, + "ko": 0 + }, + "percentiles1": { + "total": 81, + "ok": 81, + "ko": 0 + }, + "percentiles2": { + "total": 89, + "ok": 89, + "ko": 0 + }, + "percentiles3": { + "total": 151, + "ok": 151, + "ko": 0 + }, + "percentiles4": { + "total": 211, + "ok": 211, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 124, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9253731343283582, + "ok": 0.9253731343283582, + "ko": 0 + } +} + },"req_request-5-693933701": { + "type": "REQUEST", + "name": "request_5", +"path": "request_5", +"pathFormatted": "req_request-5-693933701", +"stats": { + "name": "request_5", + "numberOfRequests": { + "total": 124, + "ok": 124, + "ko": 0 + }, + "minResponseTime": { + "total": 293, + "ok": 293, + "ko": 0 + }, + "maxResponseTime": { + "total": 919, + "ok": 919, + "ko": 0 + }, + "meanResponseTime": { + "total": 415, + "ok": 415, + "ko": 0 + }, + "standardDeviation": { + "total": 144, + "ok": 144, + "ko": 0 + }, + "percentiles1": { + "total": 352, + "ok": 352, + "ko": 0 + }, + "percentiles2": { + "total": 466, + "ok": 466, + "ko": 0 + }, + "percentiles3": { + "total": 737, + "ok": 737, + "ko": 0 + }, + "percentiles4": { + "total": 897, + "ok": 897, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 119, + "percentage": 96 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 5, + "percentage": 4 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9253731343283582, + "ok": 0.9253731343283582, + "ko": 0 + } +} + },"req_request-4-693933700": { + "type": "REQUEST", + "name": "request_4", +"path": "request_4", +"pathFormatted": "req_request-4-693933700", +"stats": { + "name": "request_4", + "numberOfRequests": { + "total": 124, + "ok": 124, + "ko": 0 + }, + "minResponseTime": { + "total": 112, + "ok": 112, + "ko": 0 + }, + "maxResponseTime": { + "total": 333, + "ok": 333, + "ko": 0 + }, + "meanResponseTime": { + "total": 161, + "ok": 161, + "ko": 0 + }, + "standardDeviation": { + "total": 52, + "ok": 52, + "ko": 0 + }, + "percentiles1": { + "total": 136, + "ok": 136, + "ko": 0 + }, + "percentiles2": { + "total": 183, + "ok": 183, + "ko": 0 + }, + "percentiles3": { + "total": 272, + "ok": 272, + "ko": 0 + }, + "percentiles4": { + "total": 319, + "ok": 319, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 124, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9253731343283582, + "ok": 0.9253731343283582, + "ko": 0 + } +} + },"req_request-6-693933702": { + "type": "REQUEST", + "name": "request_6", +"path": "request_6", +"pathFormatted": "req_request-6-693933702", +"stats": { + "name": "request_6", + "numberOfRequests": { + "total": 124, + "ok": 124, + "ko": 0 + }, + "minResponseTime": { + "total": 386, + "ok": 386, + "ko": 0 + }, + "maxResponseTime": { + "total": 1697, + "ok": 1697, + "ko": 0 + }, + "meanResponseTime": { + "total": 747, + "ok": 747, + "ko": 0 + }, + "standardDeviation": { + "total": 318, + "ok": 318, + "ko": 0 + }, + "percentiles1": { + "total": 658, + "ok": 658, + "ko": 0 + }, + "percentiles2": { + "total": 955, + "ok": 955, + "ko": 0 + }, + "percentiles3": { + "total": 1309, + "ok": 1309, + "ko": 0 + }, + "percentiles4": { + "total": 1448, + "ok": 1448, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 79, + "percentage": 64 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 29, + "percentage": 23 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 16, + "percentage": 13 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9253731343283582, + "ok": 0.9253731343283582, + "ko": 0 + } +} + },"req_request-7-693933703": { + "type": "REQUEST", + "name": "request_7", +"path": "request_7", +"pathFormatted": "req_request-7-693933703", +"stats": { + "name": "request_7", + "numberOfRequests": { + "total": 124, + "ok": 124, + "ko": 0 + }, + "minResponseTime": { + "total": 37, + "ok": 37, + "ko": 0 + }, + "maxResponseTime": { + "total": 284, + "ok": 284, + "ko": 0 + }, + "meanResponseTime": { + "total": 50, + "ok": 50, + "ko": 0 + }, + "standardDeviation": { + "total": 28, + "ok": 28, + "ko": 0 + }, + "percentiles1": { + "total": 41, + "ok": 41, + "ko": 0 + }, + "percentiles2": { + "total": 45, + "ok": 45, + "ko": 0 + }, + "percentiles3": { + "total": 93, + "ok": 93, + "ko": 0 + }, + "percentiles4": { + "total": 134, + "ok": 134, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 124, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9253731343283582, + "ok": 0.9253731343283582, + "ko": 0 + } +} + },"req_request-8-693933704": { + "type": "REQUEST", + "name": "request_8", +"path": "request_8", +"pathFormatted": "req_request-8-693933704", +"stats": { + "name": "request_8", + "numberOfRequests": { + "total": 124, + "ok": 124, + "ko": 0 + }, + "minResponseTime": { + "total": 74, + "ok": 74, + "ko": 0 + }, + "maxResponseTime": { + "total": 349, + "ok": 349, + "ko": 0 + }, + "meanResponseTime": { + "total": 91, + "ok": 91, + "ko": 0 + }, + "standardDeviation": { + "total": 37, + "ok": 37, + "ko": 0 + }, + "percentiles1": { + "total": 82, + "ok": 82, + "ko": 0 + }, + "percentiles2": { + "total": 86, + "ok": 86, + "ko": 0 + }, + "percentiles3": { + "total": 134, + "ok": 134, + "ko": 0 + }, + "percentiles4": { + "total": 306, + "ok": 306, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 124, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9253731343283582, + "ok": 0.9253731343283582, + "ko": 0 + } +} + },"req_request-9-693933705": { + "type": "REQUEST", + "name": "request_9", +"path": "request_9", +"pathFormatted": "req_request-9-693933705", +"stats": { + "name": "request_9", + "numberOfRequests": { + "total": 124, + "ok": 124, + "ko": 0 + }, + "minResponseTime": { + "total": 75, + "ok": 75, + "ko": 0 + }, + "maxResponseTime": { + "total": 234, + "ok": 234, + "ko": 0 + }, + "meanResponseTime": { + "total": 85, + "ok": 85, + "ko": 0 + }, + "standardDeviation": { + "total": 19, + "ok": 19, + "ko": 0 + }, + "percentiles1": { + "total": 81, + "ok": 81, + "ko": 0 + }, + "percentiles2": { + "total": 83, + "ok": 83, + "ko": 0 + }, + "percentiles3": { + "total": 109, + "ok": 109, + "ko": 0 + }, + "percentiles4": { + "total": 166, + "ok": 166, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 124, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9253731343283582, + "ok": 0.9253731343283582, + "ko": 0 + } +} + },"req_request-10-37108175": { + "type": "REQUEST", + "name": "request_10", +"path": "request_10", +"pathFormatted": "req_request-10-37108175", +"stats": { + "name": "request_10", + "numberOfRequests": { + "total": 124, + "ok": 124, + "ko": 0 + }, + "minResponseTime": { + "total": 76, + "ok": 76, + "ko": 0 + }, + "maxResponseTime": { + "total": 186, + "ok": 186, + "ko": 0 + }, + "meanResponseTime": { + "total": 84, + "ok": 84, + "ko": 0 + }, + "standardDeviation": { + "total": 12, + "ok": 12, + "ko": 0 + }, + "percentiles1": { + "total": 83, + "ok": 83, + "ko": 0 + }, + "percentiles2": { + "total": 84, + "ok": 84, + "ko": 0 + }, + "percentiles3": { + "total": 96, + "ok": 96, + "ko": 0 + }, + "percentiles4": { + "total": 139, + "ok": 139, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 124, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9253731343283582, + "ok": 0.9253731343283582, + "ko": 0 + } +} + },"req_request-11-37108176": { + "type": "REQUEST", + "name": "request_11", +"path": "request_11", +"pathFormatted": "req_request-11-37108176", +"stats": { + "name": "request_11", + "numberOfRequests": { + "total": 124, + "ok": 124, + "ko": 0 + }, + "minResponseTime": { + "total": 38, + "ok": 38, + "ko": 0 + }, + "maxResponseTime": { + "total": 68, + "ok": 68, + "ko": 0 + }, + "meanResponseTime": { + "total": 43, + "ok": 43, + "ko": 0 + }, + "standardDeviation": { + "total": 5, + "ok": 5, + "ko": 0 + }, + "percentiles1": { + "total": 42, + "ok": 42, + "ko": 0 + }, + "percentiles2": { + "total": 44, + "ok": 44, + "ko": 0 + }, + "percentiles3": { + "total": 50, + "ok": 50, + "ko": 0 + }, + "percentiles4": { + "total": 65, + "ok": 65, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 124, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9253731343283582, + "ok": 0.9253731343283582, + "ko": 0 + } +} + },"req_request-12-37108177": { + "type": "REQUEST", + "name": "request_12", +"path": "request_12", +"pathFormatted": "req_request-12-37108177", +"stats": { + "name": "request_12", + "numberOfRequests": { + "total": 124, + "ok": 124, + "ko": 0 + }, + "minResponseTime": { + "total": 24, + "ok": 24, + "ko": 0 + }, + "maxResponseTime": { + "total": 629, + "ok": 629, + "ko": 0 + }, + "meanResponseTime": { + "total": 39, + "ok": 39, + "ko": 0 + }, + "standardDeviation": { + "total": 68, + "ok": 68, + "ko": 0 + }, + "percentiles1": { + "total": 31, + "ok": 31, + "ko": 0 + }, + "percentiles2": { + "total": 31, + "ok": 31, + "ko": 0 + }, + "percentiles3": { + "total": 35, + "ok": 35, + "ko": 0 + }, + "percentiles4": { + "total": 377, + "ok": 377, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 124, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9253731343283582, + "ok": 0.9253731343283582, + "ko": 0 + } +} + },"req_request-14-37108179": { + "type": "REQUEST", + "name": "request_14", +"path": "request_14", +"pathFormatted": "req_request-14-37108179", +"stats": { + "name": "request_14", + "numberOfRequests": { + "total": 124, + "ok": 124, + "ko": 0 + }, + "minResponseTime": { + "total": 36, + "ok": 36, + "ko": 0 + }, + "maxResponseTime": { + "total": 55, + "ok": 55, + "ko": 0 + }, + "meanResponseTime": { + "total": 39, + "ok": 39, + "ko": 0 + }, + "standardDeviation": { + "total": 3, + "ok": 3, + "ko": 0 + }, + "percentiles1": { + "total": 39, + "ok": 39, + "ko": 0 + }, + "percentiles2": { + "total": 40, + "ok": 40, + "ko": 0 + }, + "percentiles3": { + "total": 42, + "ok": 42, + "ko": 0 + }, + "percentiles4": { + "total": 52, + "ok": 52, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 124, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9253731343283582, + "ok": 0.9253731343283582, + "ko": 0 + } +} + },"req_request-15-37108180": { + "type": "REQUEST", + "name": "request_15", +"path": "request_15", +"pathFormatted": "req_request-15-37108180", +"stats": { + "name": "request_15", + "numberOfRequests": { + "total": 124, + "ok": 124, + "ko": 0 + }, + "minResponseTime": { + "total": 39, + "ok": 39, + "ko": 0 + }, + "maxResponseTime": { + "total": 60, + "ok": 60, + "ko": 0 + }, + "meanResponseTime": { + "total": 43, + "ok": 43, + "ko": 0 + }, + "standardDeviation": { + "total": 3, + "ok": 3, + "ko": 0 + }, + "percentiles1": { + "total": 43, + "ok": 43, + "ko": 0 + }, + "percentiles2": { + "total": 44, + "ok": 44, + "ko": 0 + }, + "percentiles3": { + "total": 48, + "ok": 48, + "ko": 0 + }, + "percentiles4": { + "total": 56, + "ok": 56, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 124, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9253731343283582, + "ok": 0.9253731343283582, + "ko": 0 + } +} + },"req_request-16-37108181": { + "type": "REQUEST", + "name": "request_16", +"path": "request_16", +"pathFormatted": "req_request-16-37108181", +"stats": { + "name": "request_16", + "numberOfRequests": { + "total": 124, + "ok": 124, + "ko": 0 + }, + "minResponseTime": { + "total": 75, + "ok": 75, + "ko": 0 + }, + "maxResponseTime": { + "total": 125, + "ok": 125, + "ko": 0 + }, + "meanResponseTime": { + "total": 81, + "ok": 81, + "ko": 0 + }, + "standardDeviation": { + "total": 7, + "ok": 7, + "ko": 0 + }, + "percentiles1": { + "total": 81, + "ok": 81, + "ko": 0 + }, + "percentiles2": { + "total": 83, + "ok": 83, + "ko": 0 + }, + "percentiles3": { + "total": 89, + "ok": 89, + "ko": 0 + }, + "percentiles4": { + "total": 116, + "ok": 116, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 124, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9253731343283582, + "ok": 0.9253731343283582, + "ko": 0 + } +} + },"req_request-17-37108182": { + "type": "REQUEST", + "name": "request_17", +"path": "request_17", +"pathFormatted": "req_request-17-37108182", +"stats": { + "name": "request_17", + "numberOfRequests": { + "total": 124, + "ok": 124, + "ko": 0 + }, + "minResponseTime": { + "total": 75, + "ok": 75, + "ko": 0 + }, + "maxResponseTime": { + "total": 99, + "ok": 99, + "ko": 0 + }, + "meanResponseTime": { + "total": 80, + "ok": 80, + "ko": 0 + }, + "standardDeviation": { + "total": 4, + "ok": 4, + "ko": 0 + }, + "percentiles1": { + "total": 81, + "ok": 81, + "ko": 0 + }, + "percentiles2": { + "total": 82, + "ok": 82, + "ko": 0 + }, + "percentiles3": { + "total": 86, + "ok": 86, + "ko": 0 + }, + "percentiles4": { + "total": 91, + "ok": 91, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 124, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9253731343283582, + "ok": 0.9253731343283582, + "ko": 0 + } +} + } +} + +} \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/theme.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/theme.js new file mode 100644 index 0000000..b95a7b3 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/theme.js @@ -0,0 +1,127 @@ +/* + * Copyright 2011-2022 Gatling Corp + * + * Licensed under the Gatling Highcharts License + */ +Highcharts.theme = { + chart: { + backgroundColor: '#f7f7f7', + borderWidth: 0, + borderRadius: 8, + plotBackgroundColor: null, + plotShadow: false, + plotBorderWidth: 0 + }, + xAxis: { + gridLineWidth: 0, + lineColor: '#666', + tickColor: '#666', + labels: { + style: { + color: '#666' + } + }, + title: { + style: { + color: '#666' + } + } + }, + yAxis: { + alternateGridColor: null, + minorTickInterval: null, + gridLineColor: '#999', + lineWidth: 0, + tickWidth: 0, + labels: { + style: { + color: '#666', + fontWeight: 'bold' + } + }, + title: { + style: { + color: '#666', + font: 'bold 12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif' + } + } + }, + labels: { + style: { + color: '#CCC' + } + }, + + + rangeSelector: { + buttonTheme: { + fill: '#cfc9c6', + stroke: '#000000', + style: { + color: '#34332e', + fontWeight: 'bold', + borderColor: '#b2b2a9' + }, + states: { + hover: { + fill: '#92918C', + stroke: '#000000', + style: { + color: '#34332e', + fontWeight: 'bold', + borderColor: '#8b897d' + } + }, + select: { + fill: '#E37400', + stroke: '#000000', + style: { + color: '#FFF' + } + } + } + }, + inputStyle: { + backgroundColor: '#333', + color: 'silver' + }, + labelStyle: { + color: '#8b897d' + } + }, + + navigator: { + handles: { + backgroundColor: '#f7f7f7', + borderColor: '#92918C' + }, + outlineColor: '#92918C', + outlineWidth: 1, + maskFill: 'rgba(146, 145, 140, 0.5)', + series: { + color: '#5E7BE2', + lineColor: '#5E7BE2' + } + }, + + scrollbar: { + buttonBackgroundColor: '#f7f7f7', + buttonBorderWidth: 1, + buttonBorderColor: '#92918C', + buttonArrowColor: '#92918C', + buttonBorderRadius: 2, + + barBorderWidth: 1, + barBorderRadius: 0, + barBackgroundColor: '#92918C', + barBorderColor: '#92918C', + + rifleColor: '#92918C', + + trackBackgroundColor: '#b0b0a8', + trackBorderWidth: 1, + trackBorderColor: '#b0b0a8' + } +}; + +Highcharts.setOptions(Highcharts.theme); diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/unpack.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/unpack.js new file mode 100644 index 0000000..883c33e --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/js/unpack.js @@ -0,0 +1,38 @@ +'use strict'; + +var unpack = function (array) { + var findNbSeries = function (array) { + var currentPlotPack; + var length = array.length; + + for (var i = 0; i < length; i++) { + currentPlotPack = array[i][1]; + if(currentPlotPack !== null) { + return currentPlotPack.length; + } + } + return 0; + }; + + var i, j; + var nbPlots = array.length; + var nbSeries = findNbSeries(array); + + // Prepare unpacked array + var unpackedArray = new Array(nbSeries); + + for (i = 0; i < nbSeries; i++) { + unpackedArray[i] = new Array(nbPlots); + } + + // Unpack the array + for (i = 0; i < nbPlots; i++) { + var timestamp = array[i][0]; + var values = array[i][1]; + for (j = 0; j < nbSeries; j++) { + unpackedArray[j][i] = [timestamp * 1000, values === null ? null : values[j]]; + } + } + + return unpackedArray; +}; diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-0-693933696.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-0-693933696.html new file mode 100644 index 0000000..25013db --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-0-693933696.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_0 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-1-693933697.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-1-693933697.html new file mode 100644 index 0000000..9104c58 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-1-693933697.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_1 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-10-37108175.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-10-37108175.html new file mode 100644 index 0000000..cbbe164 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-10-37108175.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_10 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-11-37108176.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-11-37108176.html new file mode 100644 index 0000000..65e31fc --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-11-37108176.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_11 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-12-37108177.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-12-37108177.html new file mode 100644 index 0000000..8ff1879 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-12-37108177.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_12 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-14-37108179.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-14-37108179.html new file mode 100644 index 0000000..6d6dac0 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-14-37108179.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_14 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-15-37108180.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-15-37108180.html new file mode 100644 index 0000000..7896bd9 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-15-37108180.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_15 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-16-37108181.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-16-37108181.html new file mode 100644 index 0000000..a1dd3fb --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-16-37108181.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_16 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-17-37108182.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-17-37108182.html new file mode 100644 index 0000000..443e4d4 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-17-37108182.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_17 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-2-693933698.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-2-693933698.html new file mode 100644 index 0000000..1af6c7b --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-2-693933698.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_2 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-3-693933699.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-3-693933699.html new file mode 100644 index 0000000..339b015 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-3-693933699.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_3 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-4-693933700.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-4-693933700.html new file mode 100644 index 0000000..ee7559e --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-4-693933700.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_4 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-5-693933701.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-5-693933701.html new file mode 100644 index 0000000..5dc71af --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-5-693933701.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_5 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-6-693933702.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-6-693933702.html new file mode 100644 index 0000000..a255f3a --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-6-693933702.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_6 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-7-693933703.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-7-693933703.html new file mode 100644 index 0000000..983e2df --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-7-693933703.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_7 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-8-693933704.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-8-693933704.html new file mode 100644 index 0000000..0bfc8b2 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-8-693933704.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_8 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-9-693933705.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-9-693933705.html new file mode 100644 index 0000000..f330626 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/req_request-9-693933705.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_9 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/bootstrap.min.css b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/bootstrap.min.css new file mode 100644 index 0000000..76a2b9b --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/bootstrap.min.css @@ -0,0 +1,27 @@ +.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;} +.clearfix:after{clear:both;} +.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;} +.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} +.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);} +.tooltip.top{margin-top:-3px;} +.tooltip.right{margin-left:3px;} +.tooltip.bottom{margin-top:3px;} +.tooltip.left{margin-left:-3px;} +.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;} +.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000;} +.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000;} +.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000;} +.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000;} +.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:750px;padding:1px;background-color:#ffffff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);}.popover.top{margin-top:-10px;} +.popover.right{margin-left:10px;} +.popover.bottom{margin-top:10px;} +.popover.left{margin-left:-10px;} +.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;} +.popover-content{padding:9px 14px;}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0;} +.popover .arrow,.popover .arrow:after{position:absolute;display:inline-block;width:0;height:0;border-color:transparent;border-style:solid;} +.popover .arrow:after{content:"";z-index:-1;} +.popover.top .arrow{bottom:-10px;left:50%;margin-left:-10px;border-width:10px 10px 0;border-top-color:#ffffff;}.popover.top .arrow:after{border-width:11px 11px 0;border-top-color:rgba(0, 0, 0, 0.25);bottom:-1px;left:-11px;} +.popover.right .arrow{top:50%;left:-10px;margin-top:-10px;border-width:10px 10px 10px 0;border-right-color:#ffffff;}.popover.right .arrow:after{border-width:11px 11px 11px 0;border-right-color:rgba(0, 0, 0, 0.25);bottom:-11px;left:-1px;} +.popover.bottom .arrow{top:-10px;left:50%;margin-left:-10px;border-width:0 10px 10px;border-bottom-color:#ffffff;}.popover.bottom .arrow:after{border-width:0 11px 11px;border-bottom-color:rgba(0, 0, 0, 0.25);top:-1px;left:-11px;} +.popover.left .arrow{top:50%;right:-10px;margin-top:-10px;border-width:10px 0 10px 10px;border-left-color:#ffffff;}.popover.left .arrow:after{border-width:11px 0 11px 11px;border-left-color:rgba(0, 0, 0, 0.25);bottom:-11px;right:-1px;} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/close.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/close.svg new file mode 100644 index 0000000..c161bb9 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/close.svg @@ -0,0 +1,3 @@ + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/executions.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/executions.svg new file mode 100644 index 0000000..84068cd --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/executions.svg @@ -0,0 +1,3 @@ + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/expand.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/expand.svg new file mode 100644 index 0000000..f6e75e0 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/expand.svg @@ -0,0 +1,38 @@ + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/favicon.ico b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/favicon.ico new file mode 100644 index 0000000..d2d20e1 Binary files /dev/null and b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/favicon.ico differ diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/fullscreen.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/fullscreen.svg new file mode 100644 index 0000000..91f3b27 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/fullscreen.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/logo-dark.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/logo-dark.svg new file mode 100644 index 0000000..7eb4d51 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/logo-dark.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/logo-enterprise-dark.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/logo-enterprise-dark.svg new file mode 100644 index 0000000..1127d75 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/logo-enterprise-dark.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/logo-enterprise-light.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/logo-enterprise-light.svg new file mode 100644 index 0000000..4a6e1de --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/logo-enterprise-light.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/logo-light.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/logo-light.svg new file mode 100644 index 0000000..f519eef --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/logo-light.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/sort-down.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/sort-down.svg new file mode 100644 index 0000000..db58a09 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/sort-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/sort-up.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/sort-up.svg new file mode 100644 index 0000000..bba9d84 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/sort-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/sort.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/sort.svg new file mode 100644 index 0000000..43b658e --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/sort.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/style.css b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/style.css new file mode 100644 index 0000000..edc9626 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-1cpu/style/style.css @@ -0,0 +1,1199 @@ +/* + * Copyright 2011-2024 GatlingCorp (https://gatling.io) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +:root { + --gatling-background-color: #f2f2f2; + --gatling-background-light-color: #f7f7f7; + --gatling-border-color: #dddddd; + --gatling-blue-color: #4a9fe5; + --gatling-dark-blue-color: #24275e; + --gatling-danger-color: #f15b4f; + --gatling-danger-light-color: #f5d1ce; + --gatling-enterprise-color: #6161d6; + --gatling-enterprise-light-color: #c4c4ed; + --gatling-gray-medium-color: #bbb; + --gatling-hover-color: #e6e6e6; + --gatling-hover-background-color: #e6e6e6; + --gatling-light-color: #ffffff; + --gatling-orange-color: #f78557; + --gatling-success-color: #68b65c; + --gatling-text-color: #1f2024; + --gatling-total-color: #ffa900; + + --gatling-border-radius: 2px; + --gatling-spacing-small: 5px; + --gatling-spacing: 10px; + --gatling-spacing-layout: 20px; + + --gatling-font-weight-normal: 400; + --gatling-font-weight-medium: 500; + --gatling-font-weight-bold: 700; + --gatling-font-size-secondary: 12px; + --gatling-font-size-default: 14px; + --gatling-font-size-heading: 16px; + --gatling-font-size-section: 22px; + --gatling-font-size-header: 34px; + + --gatling-media-desktop-large: 1920px; +} + +html[data-theme="dark"] { + --gatling-background-color: #1e2225; + --gatling-background-light-color: #272c30; + --gatling-border-color: #555555; + --gatling-blue-color: #1188ff; + --gatling-dark-blue-color: #17223B; + --gatling-danger-color: #d9534f; + --gatling-danger-light-color: #c9302c; + --gatling-enterprise-color: #b2a2ea; + --gatling-enterprise-light-color: #343479; + --gatling-gray-medium-color: #999; + --gatling-hover-color: #30363b; + --gatling-hover-background-color: #2c2c2c; + --gatling-light-color: #394046; + --gatling-orange-color: #fe8e5f; + --gatling-success-color: #5cb85c; + --gatling-text-color: #dee2e6; + --gatling-total-color: #ffa900; +} + +* { + min-height: 0; + min-width: 0; +} + +html, +body { + height: 100%; + width: 100%; +} + +body { + color: var(--gatling-text-color); + font-family: arial; + font-size: var(--gatling-font-size-secondary); + margin: 0; +} + +.app-container { + display: flex; + flex-direction: column; + + height: 100%; + width: 100%; +} + +.head { + display: flex; + align-items: center; + justify-content: space-between; + flex-direction: row; + + flex: 1; + + background-color: var(--gatling-light-color); + border-bottom: 1px solid var(--gatling-border-color); + min-height: 69px; + padding: 0 var(--gatling-spacing-layout); +} + +.head .spacer { + flex-grow: 1; +} + +.head .theme-toggle { + margin-left: 20px; + background: none; + color: var(--gatling-text-color); + border: none; +} + +.head .theme-toggle:hover { + color: var(--gatling-gray-medium-color); + cursor: pointer; +} + +body .toggle-dark, body .toggle-light { + display: block; +} + +[data-theme="dark"] body .toggle-dark { + display: none; +} + +[data-theme="light"] body .toggle-light { + display: none; +} + +[data-theme="dark"] body .logo-enterprise-light { + display: none; +} + +[data-theme="light"] body .logo-enterprise-dark { + display: none; +} + +.gatling-open-source { + display: flex; + align-items: center; + justify-content: space-between; + flex-direction: row; + gap: var(--gatling-spacing-layout); +} + +.gatling-documentation { + display: flex; + align-items: center; + + background-color: var(--gatling-light-color); + border-radius: var(--gatling-border-radius); + color: var(--gatling-orange-color); + border: 1px solid var(--gatling-orange-color); + text-align: center; + padding: var(--gatling-spacing-small) var(--gatling-spacing); + height: 23px; + + font-size: var(--gatling-font-size-default); +} + +.gatling-documentation:hover { + background-color: var(--gatling-orange-color); + color: var(--gatling-light-color); +} + +.gatling-logo { + height: 35px; +} + +.gatling-logo img { + height: 100%; +} + +[data-theme="dark"] .gatling-logo-light { + display: none; +} + +[data-theme="light"] .gatling-logo-dark { + display: none; +} + +.container { + display: flex; + align-items: stretch; + height: 100%; +} + +.nav { + min-width: 210px; + width: 210px; + max-height: calc(100vh - var(--gatling-spacing-layout) - var(--gatling-spacing-layout)); + background: var(--gatling-light-color); + border-right: 1px solid var(--gatling-border-color); + overflow-y: auto; +} + +@media print { + .nav { + display: none; + } +} + +@media screen and (min-width: 1920px) { + .nav { + min-width: 310px; + width: 310px; + } +} + +.nav ul { + display: flex; + flex-direction: column; + + padding: 0; + margin: 0; +} + +.nav li { + display: flex; + list-style: none; + width: 100%; + padding: 0; +} + +.nav .item { + display: inline-flex; + align-items: center; + margin: 0 auto; + white-space: nowrap; + color: var(--gatling-text-color); + font-size: var(--gatling-font-size-default); + font-weight: var(--gatling-font-weight-bold); + margin: 0; + width: 100%; +} + +.nav .item .nav-label { + padding: var(--gatling-spacing) var(--gatling-spacing-layout); +} + +.nav .item:hover { + background-color: var(--gatling-hover-color); +} + +.nav .on .item { + background-color: var(--gatling-orange-color); +} + +.nav .on .item span { + color: var(--gatling-light-color); +} + +.cadre { + width: 100%; + height: 100%; + overflow-y: scroll; + scroll-behavior: smooth; +} + +@media print { + .cadre { + overflow-y: unset; + } +} + +.frise { + position: absolute; + top: 60px; + z-index: -1; + + background-color: var(--gatling-background-color); + height: 530px; +} + +.global { + height: 650px +} + +a { + text-decoration: none; +} + +a:hover { + color: var(--gatling-hover-color); +} + +img { + border: 0; +} + +h1 { + color: var(--gatling-dark-blue-color); + font-size: var(--gatling-font-size-section); + font-weight: var(--gatling-font-weight-medium); + text-align: center; + margin: 0; +} + +h1 span { + color: var(--gatling-hover-color); +} + +.enterprise { + display: flex; + align-items: center; + justify-content: center; + gap: var(--gatling-spacing-small); + + background-color: var(--gatling-light-color); + border-radius: var(--gatling-border-radius); + border: 1px solid var(--gatling-enterprise-color); + color: var(--gatling-enterprise-color); + text-align: center; + padding: var(--gatling-spacing-small) var(--gatling-spacing); + height: 25px; +} + +.enterprise:hover { + background-color: var(--gatling-hover-color); + color: var(--gatling-enterprise-color); +} + +.enterprise img { + display: block; + width: 160px; +} + +.simulation-card { + display: flex; + flex-direction: column; + align-self: stretch; + flex: 1; + gap: var(--gatling-spacing-layout); + max-height: 375px; +} + +#simulation-information { + flex: 1; +} + +.simulation-version-information { + display: flex; + flex-direction: column; + + gap: var(--gatling-spacing); + font-size: var(--gatling-font-size-default); + + background-color: var(--gatling-background-light-color); + border: 1px solid var(--gatling-border-color); + border-radius: var(--gatling-border-radius); + padding: var(--gatling-spacing); +} + +.simulation-information-container { + display: flex; + flex-direction: column; + gap: var(--gatling-spacing); +} + +.withTooltip .popover-title { + display: none; +} + +.popover-content p { + margin: 0; +} + +html[data-theme="dark"] div.popover { + background-color: var(--gatling-light-color); + border-bottom: none; +} + +html[data-theme="dark"] div.popover.right .arrow { + border-right-color: var(--gatling-light-color); +} + +.ellipsed-name { + display: block; + + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.simulation-information-item { + display: flex; + flex-direction: row; + align-items: flex-start; + gap: var(--gatling-spacing-small); +} + +.simulation-information-item.description { + flex-direction: column; +} + +.simulation-information-label { + display: inline-block; + font-weight: var(--gatling-font-weight-bold); + min-width: fit-content; +} + +.simulation-information-title { + display: block; + text-align: center; + color: var(--gatling-text-color); + font-weight: var(--gatling-font-weight-bold); + font-size: var(--gatling-font-size-heading); + width: 100%; +} + +.simulation-tooltip span { + display: inline-block; + word-wrap: break-word; + overflow: hidden; + text-overflow: ellipsis; +} + +.content { + display: flex; + flex-direction: column; +} + +.content-in { + width: 100%; + height: 100%; + + overflow-x: scroll; +} + +html[data-theme="dark"] .content-in { + background-color: var(--gatling-background-color); +} + +@media print { + .content-in { + overflow-x: unset; + } +} + +.container-article { + display: flex; + flex-direction: column; + gap: var(--gatling-spacing-layout); + + min-width: 1050px; + width: 1050px; + margin: 0 auto; + padding: var(--gatling-spacing-layout); + box-sizing: border-box; +} + +@media screen and (min-width: 1920px) { + .container-article { + min-width: 1350px; + width: 1350px; + } + + #responses * .highcharts-tracker { + transform: translate(400px, 70px); + } +} + +.content-header { + display: flex; + flex-direction: column; + gap: var(--gatling-spacing-layout); + + background-color: var(--gatling-background-light-color); + border-bottom: 1px solid var(--gatling-border-color); + padding: var(--gatling-spacing-layout) var(--gatling-spacing-layout) 0; +} + +.onglet { + font-size: var(--gatling-font-size-header); + font-weight: var(--gatling-font-weight-medium); + text-align: center; +} + +.sous-menu { + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; +} + +.sous-menu-spacer { + display: flex; + align-items: center; + flex-direction: row; +} + +.sous-menu .item { + margin-bottom: -1px; +} + +.sous-menu a { + display: block; + + font-size: var(--gatling-font-size-heading); + font-weight: var(--gatling-font-weight-normal); + padding: var(--gatling-spacing-small) var(--gatling-spacing) var(--gatling-spacing); + border-bottom: 2px solid transparent; + color: var(--gatling-text-color); + text-align: center; + width: 100px; +} + +.sous-menu a:hover { + border-bottom-color: var(--gatling-text-color); +} + +.sous-menu .ouvert a { + border-bottom-color: var(--gatling-orange-color); + font-weight: var(--gatling-font-weight-bold); +} + +.article { + position: relative; + + display: flex; + flex-direction: column; + gap: var(--gatling-spacing-layout); +} + +.infos { + width: 340px; + color: var(--gatling-light-color); +} + +.infos-title { + background-color: var(--gatling-background-light-color); + border: 1px solid var(--gatling-border-color); + border-bottom: 0; + border-top-left-radius: var(--gatling-border-radius); + border-top-right-radius: var(--gatling-border-radius); + color: var(--gatling-text-color); + font-size: var(--gatling-font-size-heading); + font-weight: var(--gatling-font-weight-bold); + text-align: center; + padding: var(--gatling-spacing-small) var(--gatling-spacing); +} + +.info { + background-color: var(--gatling-background-light-color); + border-bottom-left-radius: var(--gatling-border-radius); + border-bottom-right-radius: var(--gatling-border-radius); + border: 1px solid var(--gatling-border-color); + color: var(--gatling-text-color); + height: 100%; + margin: 0; +} + +.info table { + margin: auto; + padding-right: 15px; +} + +.alert-danger { + background-color: var(--gatling-danger-light-color); + border: 1px solid var(--gatling-danger-color); + border-radius: var(--gatling-border-radius); + color: var(--gatling-text-color); + padding: var(--gatling-spacing-layout); + font-weight: var(--gatling-font-weight-bold); +} + +.infos h2 { + color: var(--gatling-text-color); + font-size: var(--gatling-font-size-default); + font-weight: var(--gatling-font-weight-bold); + height: 19px; + margin: 0; + padding: 3.5px 0 0 35px; +} + +.infos .first::before { + content: ''; + display: inline-block; + margin-right: 5px; + margin-bottom: 2px; + vertical-align: middle; + width: 14px; + height: 14px; + background: url('executions.svg'); + background-size: contain; +} + +.infos .second::before { + content: ''; + display: inline-block; + margin-right: 5px; + margin-bottom: 2px; + vertical-align: middle; + width: 16px; + height: 16px; + background: url('time.svg'); + background-size: contain; +} + +html[data-theme="dark"] .infos .first::before, +html[data-theme="dark"] .infos .second::before { + filter: invert(0.9); +} + +.infos th { + text-align: center; +} + +.infos td { + font-weight: var(--gatling-font-weight-bold); + padding: var(--gatling-spacing-small); + -webkit-border-radius: var(--gatling-border-radius); + -moz-border-radius: var(--gatling-border-radius); + -ms-border-radius: var(--gatling-border-radius); + -o-border-radius: var(--gatling-border-radius); + border-radius: var(--gatling-border-radius); + text-align: right; + width: 50px; +} + +.infos .title { + width: 120px; +} + +.infos .ok { + background-color: var(--gatling-success-color); + color: var(--gatling-light-color); +} + +.infos .total { + background-color: var(--gatling-total-color); + color: var(--gatling-light-color); +} + +.infos .ko { + background-color: var(--gatling-danger-color); + -webkit-border-radius: var(--gatling-border-radius); + border-radius: var(--gatling-border-radius); + color: var(--gatling-light-color); +} + +.schema-container { + display: flex; + align-items: center; + justify-content: space-between; + gap: var(--gatling-spacing-layout); +} + +.schema { + background: var(--gatling-background-light-color); + border-radius: var(--gatling-border-radius); + border: 1px solid var(--gatling-border-color); +} + +.ranges { + height: 375px; + width: 500px; +} + +.ranges-large { + height: 375px; + width: 530px; +} + +.geant { + height: 362px; +} + +.extensible-geant { + width: 100%; +} + +.polar { + height: 375px; + width: 230px; +} + +.chart_title { + color: var(--gatling-text-color); + font-weight: var(--gatling-font-weight-bold); + font-size: var(--gatling-font-size-heading); + padding: 2px var(--gatling-spacing); +} + +html[data-theme="dark"] .chart_title { + color: var(--gatling-text-color); + font-weight: var(--gatling-font-weight-bold); + font-size: var(--gatling-font-size-heading); + padding: 2px var(--gatling-spacing); +} + +html[data-theme="dark"] .highcharts-background { + fill: var(--gatling-background-light-color); +} + +html[data-theme="dark"] .highcharts-button-normal rect { + fill: var(--gatling-background-color) !important; +} + +html[data-theme="dark"] .highcharts-button-disabled rect { + fill: var(--gatling-background-light-color) !important; +} + +html[data-theme="dark"] .highcharts-button-pressed rect { + fill: var(--gatling-orange-color) !important; +} + +html[data-theme="dark"] .highcharts-axis text, +html[data-theme="dark"] .highcharts-axis-labels text, +html[data-theme="dark"] .highcharts-button text, +html[data-theme="dark"] .highcharts-legend-item text, +html[data-theme="dark"] .highcharts-range-selector-buttons text { + fill: var(--gatling-text-color) !important; +} + +.statistics { + display: flex; + flex-direction: column; + + background-color: var(--gatling-background-light-color); + border-radius: var(--gatling-border-radius); + border-collapse: collapse; + color: var(--gatling-text-color); + max-height: 100%; +} + +.statistics .title { + display: flex; + text-align: center; + justify-content: space-between; + + min-height: 49.5px; + box-sizing: border-box; + + border: 1px solid var(--gatling-border-color); + color: var(--gatling-text-color); + font-size: var(--gatling-font-size-heading); + font-weight: var(--gatling-font-weight-bold); + padding: var(--gatling-spacing); +} + +.title_base { + display: flex; + align-items: center; + text-align: left; + user-select: none; +} + +.title_base_stats { + color: var(--gatling-text-color); + margin-right: 20px; +} + +.toggle-table { + position: relative; + border: 1px solid var(--gatling-border-color); + background-color: var(--gatling-light-color); + border-radius: 25px; + width: 40px; + height: 20px; + margin: 0 var(--gatling-spacing-small); +} + +.toggle-table::before { + position: absolute; + top: calc(50% - 9px); + left: 1px; + content: ""; + width: 50%; + height: 18px; + border-radius: 50%; + background-color: var(--gatling-text-color); +} + +.toggle-table.off::before { + left: unset; + right: 1px; +} + +.title_expanded { + cursor: pointer; + color: var(--gatling-text-color); +} + +.expand-table, +.collapse-table { + font-size: var(--gatling-font-size-secondary); + font-weight: var(--gatling-font-weight-normal); +} + +.title_expanded span.expand-table { + color: var(--gatling-gray-medium-color); +} + +.title_collapsed { + cursor: pointer; + color: var(--gatling-text-color); +} + +.title_collapsed span.collapse-table { + color: var(--gatling-gray-medium-color); +} + +#container_statistics_head { + position: sticky; + top: -1px; + + background: var(--gatling-background-light-color); + margin-top: -1px; + padding: var(--gatling-spacing-small) var(--gatling-spacing-small) 0px var(--gatling-spacing-small); +} + +#container_statistics_body { + border-bottom-left-radius: var(--gatling-border-radius); + border-bottom-right-radius: var(--gatling-border-radius); + margin-top: -1px; + padding: 0px var(--gatling-spacing-small) var(--gatling-spacing-small) var(--gatling-spacing-small); +} + +#container_errors { + border-bottom-left-radius: var(--gatling-border-radius); + border-bottom-right-radius: var(--gatling-border-radius); + padding: var(--gatling-spacing-small) var(--gatling-spacing-small) 0px var(--gatling-spacing-small); + margin-top: -1px; +} + +#container_assertions { + background-color: var(--gatling-background-light-color); + border-bottom-left-radius: var(--gatling-border-radius); + border-bottom-right-radius: var(--gatling-border-radius); + padding: var(--gatling-spacing-small); + margin-top: -1px; +} + +.statistics-in { + border-spacing: var(--gatling-spacing-small); + border-collapse: collapse; + margin: 0; +} + +.statistics .scrollable { + max-height: 100%; + overflow-y: auto; +} + +#statistics_table_container .statistics .scrollable { + max-height: 785px; +} + +.statistics-in a { + color: var(--gatling-text-color); + font-weight: var(--gatling-font-weight-bold); +} + +.statistics-in .header { + border-radius: var(--gatling-border-radius); + border: 1px solid var(--gatling-border-color); + font-size: var(--gatling-font-size-default); + font-weight: var(--gatling-font-weight-bold); + text-align: center; + padding: var(--gatling-spacing-small); +} + +.sortable { + cursor: pointer; +} + +.sortable span::after { + content: ''; + display: inline-block; + margin-left: 5px; + vertical-align: middle; + width: 12px; + height: 12px; + background: url('sort.svg'); + background-size: contain; +} + +.sorted-up span::after { + background: url('sort-up.svg'); + background-size: contain; +} + +.sorted-down span::after { + background: url('sort-down.svg'); + background-size: contain; +} + +html[data-theme="dark"] .sortable span::after { + filter: invert(0.9); +} + +.executions::before { + content: ''; + display: inline-block; + margin-right: 5px; + margin-bottom: 2px; + vertical-align: middle; + width: 14px; + height: 14px; + background: url('executions.svg'); + background-size: contain; +} + +.response-time::before { + content: ''; + display: inline-block; + margin-right: 5px; + margin-bottom: 2px; + vertical-align: middle; + width: 16px; + height: 16px; + background: url('time.svg'); + background-size: contain; +} + +html[data-theme="dark"] .executions::before, +html[data-theme="dark"] .response-time::before { + filter: invert(0.9); +} + +.statistics-in td { + background-color: var(--gatling-light-color); + border: 1px solid var(--gatling-border-color); + padding: var(--gatling-spacing-small); + min-width: 50px; +} + +.statistics-in .col-1 { + width: 175px; + max-width: 175px; +} +@media screen and (min-width: 1200px) { + .statistics-in .col-1 { + width: 50%; + } +} + +.expandable-container { + display: flex; + flex-direction: row; + box-sizing: border-box; + max-width: 100%; +} + +.statistics-in .value { + text-align: right; + width: 50px; +} + +.statistics-in .total { + color: var(--gatling-text-color); +} + +.statistics-in .col-2 { + background-color: var(--gatling-total-color); + color: var(--gatling-light-color); + font-weight: var(--gatling-font-weight-bold); +} + +.statistics-in .error-col-1 { + background-color: var(--gatling-light-color); + color: var(--gatling-text-color); +} + +.statistics-in .error-col-2 { + text-align: center; +} + +.statistics-in .ok { + background-color: var(--gatling-success-color); + color: var(--gatling-light-color); + font-weight: var(--gatling-font-weight-bold); +} + +.statistics-in .ko { + background-color: var(--gatling-danger-color); + color: var(--gatling-light-color); + font-weight: var(--gatling-font-weight-bold); +} + +.statistics-in .expand-button { + padding-left: var(--gatling-spacing); + cursor: pointer; +} + +.expand-button.hidden { + background: none; + cursor: default; +} + +.statistics-button { + background-color: var(--gatling-light-color); + color: var(--gatling-text-color); + padding: var(--gatling-spacing-small) var(--gatling-spacing); + border: 1px solid var(--gatling-border-color); + border-radius: var(--gatling-border-radius); +} + +#statistics_full_screen{ + padding: var(--gatling-spacing-small); +} + +#statistics_full_screen > img { + width: 14px; + height: 14px; +} + +html[data-theme="dark"] #statistics_full_screen > img { + filter: invert(0.9); +} + +#statistics_full_screen:disabled { + display: none; +} + +.statistics-button:hover:not(:disabled) { + cursor: pointer; + background-color: var(--gatling-hover-color); +} + +.statistics-in .expand-button.expand { + content: ''; + display: inline-block; + vertical-align: middle; + width: 2px; + height: 10px; + background: url('expand.svg'); + background-size: contain; +} + +.statistics-in .expand-button.collapse { + content: ''; + display: inline-block; + vertical-align: middle; + width: 2px; + height: 10px; + background: url('sort-down.svg'); + background-size: contain; +} + +html[data-theme="dark"] .statistics-in .expand-button.collapse, +html[data-theme="dark"] .statistics-in .expand-button.expand { + filter: invert(0.9); +} + +.nav .expand-button { + padding: var(--gatling-spacing-small) var(--gatling-spacing); +} + +.nav .expand-button.expand { + content: ''; + display: inline-block; + vertical-align: middle; + height: 8px; + background: url('expand.svg') no-repeat; + background-size: contain; + cursor: pointer; + margin-top: 6px; +} + +.nav .expand-button.collapse { + content: ''; + display: inline-block; + vertical-align: middle; + height: 8px; + background: url('sort-down.svg') no-repeat; + background-size: contain; + cursor: pointer; + margin-top: 6px; +} + +html[data-theme="dark"] .nav .expand-button.expand, +html[data-theme="dark"] .nav .expand-button.collapse { + filter: invert(0.9); +} + +.right { + display: flex; + align-items: center; + gap: var(--gatling-spacing); + float: right; + font-size: var(--gatling-font-size-default); +} + +.withTooltip { + outline: none; +} + +.withTooltip:hover { + text-decoration: none; +} + +.withTooltip .tooltipContent { + position: absolute; + z-index: 10; + display: none; + + background: var(--gatling-orange-color); + -webkit-box-shadow: 1px 2px 4px 0px rgba(47, 47, 47, 0.2); + -moz-box-shadow: 1px 2px 4px 0px rgba(47, 47, 47, 0.2); + box-shadow: 1px 2px 4px 0px rgba(47, 47, 47, 0.2); + border-radius: var(--gatling-border-radius); + color: var(--gatling-light-color); + margin-top: -5px; + padding: var(--gatling-spacing-small); +} + +.withTooltip:hover .tooltipContent { + display: inline; +} + +.button-modal { + padding: var(--gatling-spacing-small); +} + +.button-modal > img { + width: 14px; + height: 14px; +} + +html[data-theme="dark"] .button-modal > img { + filter: invert(0.9); +} + +.statistics-table-modal { + background-color: var(--gatling-background-color); + height: calc(100% - 60px); + width: calc(100% - 60px); + border-radius: var(--gatling-border-radius); +} + +.statistics-table-modal::backdrop { + position: fixed; + top: 0px; + right: 0px; + bottom: 0px; + left: 0px; + + background-color: rgba(100, 100, 100, 0.9); +} + +.statistics-table-modal-container { + display: flex; + flex-direction: column; + + width: 100%; + height: calc(100% - 35px); + overflow-x: auto; +} + +.button-modal { + cursor: pointer; + + height: 25px; + width: 25px; + + border: 1px solid var(--gatling-border-color); + background-color: var(--gatling-light-color); + border-radius: var(--gatling-border-radius); + color: var(--gatling-text-color); +} + +.button-modal:hover { + background-color: var(--gatling-background-color); +} + +.statistics-table-modal-header { + display: flex; + align-items: flex-end; + justify-content: flex-end; + + padding-bottom: var(--gatling-spacing); +} + +.statistics-table-modal-content { + flex: 1; + overflow-y: auto; + min-width: 1050px; +} + +.statistics-table-modal-footer { + display: flex; + align-items: flex-end; + justify-content: flex-end; + + padding-top: var(--gatling-spacing); +} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/index.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/index.html new file mode 100644 index 0000000..e2706d3 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/index.html @@ -0,0 +1,1117 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - Global Information + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    +
    +
    + Gatling Version + + Version: + 3.10.5 + + + Released: + 2024-03-22 + +
    +
    + Run Information +
    + + Date: + 2024-04-25 17:42:01 GMT + + + Duration: + 2m 11s + + + Description: + Load testing (2 users/sec in 60sec - 2 cpus) + + +
    +
    +
    +
    + +
    + +
    + +
    +
    +
    +
    +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/all_sessions.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/all_sessions.js new file mode 100644 index 0000000..da516d8 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/all_sessions.js @@ -0,0 +1,11 @@ +allUsersData = { + +color: '#FFA900', +name: 'Active Users', +data: [ + [1714066921000,4],[1714066922000,8],[1714066923000,9],[1714066924000,11],[1714066925000,13],[1714066926000,16],[1714066927000,20],[1714066928000,21],[1714066929000,23],[1714066930000,28],[1714066931000,30],[1714066932000,32],[1714066933000,33],[1714066934000,34],[1714066935000,38],[1714066936000,42],[1714066937000,43],[1714066938000,45],[1714066939000,47],[1714066940000,47],[1714066941000,48],[1714066942000,49],[1714066943000,53],[1714066944000,53],[1714066945000,55],[1714066946000,55],[1714066947000,57],[1714066948000,58],[1714066949000,59],[1714066950000,59],[1714066951000,60],[1714066952000,61],[1714066953000,64],[1714066954000,68],[1714066955000,72],[1714066956000,73],[1714066957000,76],[1714066958000,80],[1714066959000,83],[1714066960000,83],[1714066961000,83],[1714066962000,85],[1714066963000,88],[1714066964000,91],[1714066965000,92],[1714066966000,93],[1714066967000,95],[1714066968000,96],[1714066969000,99],[1714066970000,103],[1714066971000,103],[1714066972000,105],[1714066973000,109],[1714066974000,110],[1714066975000,113],[1714066976000,114],[1714066977000,118],[1714066978000,120],[1714066979000,121],[1714066980000,121],[1714066981000,121],[1714066982000,121],[1714066983000,121],[1714066984000,121],[1714066985000,121],[1714066986000,121],[1714066987000,121],[1714066988000,121],[1714066989000,121],[1714066990000,121],[1714066991000,121],[1714066992000,121],[1714066993000,121],[1714066994000,121],[1714066995000,120],[1714066996000,117],[1714066997000,113],[1714066998000,112],[1714066999000,109],[1714067000000,107],[1714067001000,105],[1714067002000,101],[1714067003000,99],[1714067004000,96],[1714067005000,93],[1714067006000,91],[1714067007000,88],[1714067008000,88],[1714067009000,86],[1714067010000,83],[1714067011000,81],[1714067012000,77],[1714067013000,75],[1714067014000,74],[1714067015000,73],[1714067016000,72],[1714067017000,70],[1714067018000,69],[1714067019000,66],[1714067020000,66],[1714067021000,65],[1714067022000,63],[1714067023000,62],[1714067024000,62],[1714067025000,62],[1714067026000,61],[1714067027000,58],[1714067028000,55],[1714067029000,51],[1714067030000,48],[1714067031000,47],[1714067032000,43],[1714067033000,40],[1714067034000,38],[1714067035000,38],[1714067036000,37],[1714067037000,35],[1714067038000,33],[1714067039000,30],[1714067040000,28],[1714067041000,27],[1714067042000,25],[1714067043000,24],[1714067044000,21],[1714067045000,18],[1714067046000,17],[1714067047000,16],[1714067048000,13],[1714067049000,9],[1714067050000,8],[1714067051000,5],[1714067052000,2] +], +tooltip: { yDecimals: 0, ySuffix: '', valueDecimals: 0 } + , zIndex: 20 + , yAxis: 1 +}; \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/assertions.xml b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/assertions.xml new file mode 100644 index 0000000..c562e00 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/assertions.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/bootstrap.min.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/bootstrap.min.js new file mode 100644 index 0000000..ea41042 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/bootstrap.min.js @@ -0,0 +1,7 @@ +/** +* Bootstrap.js by @fat & @mdo +* plugins: bootstrap-tooltip.js, bootstrap-popover.js +* Copyright 2012 Twitter, Inc. +* http://www.apache.org/licenses/LICENSE-2.0.txt +*/ +!function(a){var b=function(a,b){this.init("tooltip",a,b)};b.prototype={constructor:b,init:function(b,c,d){var e,f;this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.enabled=!0,this.options.trigger=="click"?this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this)):this.options.trigger!="manual"&&(e=this.options.trigger=="hover"?"mouseenter":"focus",f=this.options.trigger=="hover"?"mouseleave":"blur",this.$element.on(e+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(f+"."+this.type,this.options.selector,a.proxy(this.leave,this))),this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(b){return b=a.extend({},a.fn[this.type].defaults,b,this.$element.data()),b.delay&&typeof b.delay=="number"&&(b.delay={show:b.delay,hide:b.delay}),b},enter:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);if(!c.options.delay||!c.options.delay.show)return c.show();clearTimeout(this.timeout),c.hoverState="in",this.timeout=setTimeout(function(){c.hoverState=="in"&&c.show()},c.options.delay.show)},leave:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);this.timeout&&clearTimeout(this.timeout);if(!c.options.delay||!c.options.delay.hide)return c.hide();c.hoverState="out",this.timeout=setTimeout(function(){c.hoverState=="out"&&c.hide()},c.options.delay.hide)},show:function(){var a,b,c,d,e,f,g;if(this.hasContent()&&this.enabled){a=this.tip(),this.setContent(),this.options.animation&&a.addClass("fade"),f=typeof this.options.placement=="function"?this.options.placement.call(this,a[0],this.$element[0]):this.options.placement,b=/in/.test(f),a.detach().css({top:0,left:0,display:"block"}).insertAfter(this.$element),c=this.getPosition(b),d=a[0].offsetWidth,e=a[0].offsetHeight;switch(b?f.split(" ")[1]:f){case"bottom":g={top:c.top+c.height,left:c.left+c.width/2-d/2};break;case"top":g={top:c.top-e,left:c.left+c.width/2-d/2};break;case"left":g={top:c.top+c.height/2-e/2,left:c.left-d};break;case"right":g={top:c.top+c.height/2-e/2,left:c.left+c.width}}a.offset(g).addClass(f).addClass("in")}},setContent:function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},hide:function(){function d(){var b=setTimeout(function(){c.off(a.support.transition.end).detach()},500);c.one(a.support.transition.end,function(){clearTimeout(b),c.detach()})}var b=this,c=this.tip();return c.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d():c.detach(),this},fixTitle:function(){var a=this.$element;(a.attr("title")||typeof a.attr("data-original-title")!="string")&&a.attr("data-original-title",a.attr("title")||"").removeAttr("title")},hasContent:function(){return this.getTitle()},getPosition:function(b){return a.extend({},b?{top:0,left:0}:this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight})},getTitle:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||(typeof c.title=="function"?c.title.call(b[0]):c.title),a},tip:function(){return this.$tip=this.$tip||a(this.options.template)},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);c[c.tip().hasClass("in")?"hide":"show"]()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}},a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("tooltip"),f=typeof c=="object"&&c;e||d.data("tooltip",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.tooltip.Constructor=b,a.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'
    ',trigger:"hover",title:"",delay:0,html:!1}}(window.jQuery),!function(a){var b=function(a,b){this.init("popover",a,b)};b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype,{constructor:b,setContent:function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content > *")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-content")||(typeof c.content=="function"?c.content.call(b[0]):c.content),a},tip:function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}}),a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("popover"),f=typeof c=="object"&&c;e||d.data("popover",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.defaults=a.extend({},a.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'

    '})}(window.jQuery) \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/ellipsis.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/ellipsis.js new file mode 100644 index 0000000..781d0de --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/ellipsis.js @@ -0,0 +1,26 @@ +function parentId(name) { + return "parent-" + name; +} + +function isEllipsed(name) { + const child = document.getElementById(name); + const parent = document.getElementById(parentId(name)); + const emptyData = parent.getAttribute("data-content") === ""; + const hasOverflow = child.clientWidth < child.scrollWidth; + + if (hasOverflow) { + if (emptyData) { + parent.setAttribute("data-content", name); + } + } else { + if (!emptyData) { + parent.setAttribute("data-content", ""); + } + } +} + +function ellipsedLabel ({ name, parentClass = "", childClass = "" }) { + const child = "" + name + ""; + + return "" + child + ""; +} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/gatling.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/gatling.js new file mode 100644 index 0000000..5b9e992 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/gatling.js @@ -0,0 +1,137 @@ +/* + * Copyright 2011-2024 GatlingCorp (https://gatling.io) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +(function ($) { + $.fn.expandable = function () { + var scope = this; + + this.find('.expand-button:not([class*=hidden])').addClass('collapse').on('click', function () { + var $this = $(this); + + if ($this.hasClass('expand')) + $this.expand(scope); + else + $this.collapse(scope); + }); + + this.find('.expand-all-button').on('click', function () { + $(this).expandAll(scope); + }); + + this.find('.collapse-all-button').on('click', function () { + $(this).collapseAll(scope); + }); + + this.collapseAll(this); + + return this; + }; + + $.fn.expand = function (scope, recursive) { + return this.each(function () { + var $this = $(this); + + if (recursive) { + scope.find('*[data-parent=' + $this.attr('id') + ']').find('.expand-button.expand').expand(scope, true); + scope.find('*[data-parent=' + $this.attr('id') + ']').find('.expand-button.expand').expand(scope, true); + } + + if ($this.hasClass('expand')) { + $('*[data-parent=' + $this.attr('id') + ']').toggle(true); + $this.toggleClass('expand').toggleClass('collapse'); + } + }); + }; + + $.fn.expandAll = function (scope) { + $('*[data-parent=ROOT]').find('.expand-button.expand').expand(scope, true); + $('*[data-parent=ROOT]').find('.expand-button.collapse').expand(scope, true); + }; + + $.fn.collapse = function (scope) { + return this.each(function () { + var $this = $(this); + + scope.find('*[data-parent=' + $this.attr('id') + '] .expand-button.collapse').collapse(scope); + scope.find('*[data-parent=' + $this.attr('id') + ']').toggle(false); + $this.toggleClass('expand').toggleClass('collapse'); + }); + }; + + $.fn.collapseAll = function (scope) { + $('*[data-parent=ROOT]').find('.expand-button.collapse').collapse(scope); + }; + + $.fn.sortable = function (target) { + var table = this; + + this.find('thead .sortable').on('click', function () { + var $this = $(this); + + if ($this.hasClass('sorted-down')) { + var desc = false; + var style = 'sorted-up'; + } + else { + var desc = true; + var style = 'sorted-down'; + } + + $(target).sortTable($this.attr('id'), desc); + + table.find('thead .sortable').removeClass('sorted-up sorted-down'); + $this.addClass(style); + + return false; + }); + + return this; + }; + + $.fn.sortTable = function (col, desc) { + function getValue(line) { + var cell = $(line).find('.' + col); + + if (cell.hasClass('value')) + var value = cell.text(); + else + var value = cell.find('.value').text(); + + return parseFloat(value); + } + + function sortLines (lines, group) { + var notErrorTable = col.search("error") == -1; + var linesToSort = notErrorTable ? lines.filter('*[data-parent=' + group + ']') : lines; + + var sortedLines = linesToSort.sort(function (a, b) { + return desc ? getValue(b) - getValue(a): getValue(a) - getValue(b); + }).toArray(); + + var result = []; + $.each(sortedLines, function (i, line) { + result.push(line); + if (notErrorTable) + result = result.concat(sortLines(lines, $(line).attr('id'))); + }); + + return result; + } + + this.find('tbody').append(sortLines(this.find('tbody tr').detach(), 'ROOT')); + + return this; + }; +})(jQuery); diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/global_stats.json b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/global_stats.json new file mode 100644 index 0000000..b497c17 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/global_stats.json @@ -0,0 +1,77 @@ +{ + "name": "All Requests", + "numberOfRequests": { + "total": 2057, + "ok": 2057, + "ko": 0 + }, + "minResponseTime": { + "total": 24, + "ok": 24, + "ko": 0 + }, + "maxResponseTime": { + "total": 1809, + "ok": 1809, + "ko": 0 + }, + "meanResponseTime": { + "total": 128, + "ok": 128, + "ko": 0 + }, + "standardDeviation": { + "total": 189, + "ok": 189, + "ko": 0 + }, + "percentiles1": { + "total": 78, + "ok": 78, + "ko": 0 + }, + "percentiles2": { + "total": 88, + "ok": 88, + "ko": 0 + }, + "percentiles3": { + "total": 507, + "ok": 507, + "ko": 0 + }, + "percentiles4": { + "total": 1054, + "ok": 1054, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 2019, + "percentage": 98 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 24, + "percentage": 1 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 14, + "percentage": 1 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 15.583333333333334, + "ok": 15.583333333333334, + "ko": 0 + } +} \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/highcharts-more.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/highcharts-more.js new file mode 100644 index 0000000..2d78893 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/highcharts-more.js @@ -0,0 +1,60 @@ +/* + Highcharts JS v5.0.3 (2016-11-18) + + (c) 2009-2016 Torstein Honsi + + License: www.highcharts.com/license +*/ +(function(x){"object"===typeof module&&module.exports?module.exports=x:x(Highcharts)})(function(x){(function(b){function r(b,a,d){this.init(b,a,d)}var t=b.each,w=b.extend,m=b.merge,q=b.splat;w(r.prototype,{init:function(b,a,d){var f=this,h=f.defaultOptions;f.chart=a;f.options=b=m(h,a.angular?{background:{}}:void 0,b);(b=b.background)&&t([].concat(q(b)).reverse(),function(a){var c,h=d.userOptions;c=m(f.defaultBackgroundOptions,a);a.backgroundColor&&(c.backgroundColor=a.backgroundColor);c.color=c.backgroundColor; +d.options.plotBands.unshift(c);h.plotBands=h.plotBands||[];h.plotBands!==d.options.plotBands&&h.plotBands.unshift(c)})},defaultOptions:{center:["50%","50%"],size:"85%",startAngle:0},defaultBackgroundOptions:{className:"highcharts-pane",shape:"circle",borderWidth:1,borderColor:"#cccccc",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#ffffff"],[1,"#e6e6e6"]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"}});b.Pane=r})(x);(function(b){var r=b.CenteredSeriesMixin, +t=b.each,w=b.extend,m=b.map,q=b.merge,e=b.noop,a=b.Pane,d=b.pick,f=b.pInt,h=b.splat,u=b.wrap,c,l,k=b.Axis.prototype;b=b.Tick.prototype;c={getOffset:e,redraw:function(){this.isDirty=!1},render:function(){this.isDirty=!1},setScale:e,setCategories:e,setTitle:e};l={defaultRadialGaugeOptions:{labels:{align:"center",x:0,y:null},minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,tickLength:10,tickPosition:"inside",tickWidth:2,title:{rotation:0},zIndex:2}, +defaultRadialXOptions:{gridLineWidth:1,labels:{align:null,distance:15,x:0,y:null},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},defaultRadialYOptions:{gridLineInterpolation:"circle",labels:{align:"right",x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}},setOptions:function(a){a=this.options=q(this.defaultOptions,this.defaultRadialOptions,a);a.plotBands||(a.plotBands=[])},getOffset:function(){k.getOffset.call(this);this.chart.axisOffset[this.side]=0;this.center=this.pane.center= +r.getCenter.call(this.pane)},getLinePath:function(a,g){a=this.center;var c=this.chart,f=d(g,a[2]/2-this.offset);this.isCircular||void 0!==g?g=this.chart.renderer.symbols.arc(this.left+a[0],this.top+a[1],f,f,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0}):(g=this.postTranslate(this.angleRad,f),g=["M",a[0]+c.plotLeft,a[1]+c.plotTop,"L",g.x,g.y]);return g},setAxisTranslation:function(){k.setAxisTranslation.call(this);this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/ +(this.max-this.min||1):this.center[2]/2/(this.max-this.min||1),this.minPixelPadding=this.isXAxis?this.transA*this.minPointOffset:0)},beforeSetTickPositions:function(){if(this.autoConnect=this.isCircular&&void 0===d(this.userMax,this.options.max)&&this.endAngleRad-this.startAngleRad===2*Math.PI)this.max+=this.categories&&1||this.pointRange||this.closestPointRange||0},setAxisSize:function(){k.setAxisSize.call(this);this.isRadial&&(this.center=this.pane.center=r.getCenter.call(this.pane),this.isCircular&& +(this.sector=this.endAngleRad-this.startAngleRad),this.len=this.width=this.height=this.center[2]*d(this.sector,1)/2)},getPosition:function(a,g){return this.postTranslate(this.isCircular?this.translate(a):this.angleRad,d(this.isCircular?g:this.translate(a),this.center[2]/2)-this.offset)},postTranslate:function(a,g){var d=this.chart,c=this.center;a=this.startAngleRad+a;return{x:d.plotLeft+c[0]+Math.cos(a)*g,y:d.plotTop+c[1]+Math.sin(a)*g}},getPlotBandPath:function(a,g,c){var h=this.center,p=this.startAngleRad, +k=h[2]/2,n=[d(c.outerRadius,"100%"),c.innerRadius,d(c.thickness,10)],b=Math.min(this.offset,0),l=/%$/,u,e=this.isCircular;"polygon"===this.options.gridLineInterpolation?h=this.getPlotLinePath(a).concat(this.getPlotLinePath(g,!0)):(a=Math.max(a,this.min),g=Math.min(g,this.max),e||(n[0]=this.translate(a),n[1]=this.translate(g)),n=m(n,function(a){l.test(a)&&(a=f(a,10)*k/100);return a}),"circle"!==c.shape&&e?(a=p+this.translate(a),g=p+this.translate(g)):(a=-Math.PI/2,g=1.5*Math.PI,u=!0),n[0]-=b,n[2]-= +b,h=this.chart.renderer.symbols.arc(this.left+h[0],this.top+h[1],n[0],n[0],{start:Math.min(a,g),end:Math.max(a,g),innerR:d(n[1],n[0]-n[2]),open:u}));return h},getPlotLinePath:function(a,g){var d=this,c=d.center,f=d.chart,h=d.getPosition(a),k,b,p;d.isCircular?p=["M",c[0]+f.plotLeft,c[1]+f.plotTop,"L",h.x,h.y]:"circle"===d.options.gridLineInterpolation?(a=d.translate(a))&&(p=d.getLinePath(0,a)):(t(f.xAxis,function(a){a.pane===d.pane&&(k=a)}),p=[],a=d.translate(a),c=k.tickPositions,k.autoConnect&&(c= +c.concat([c[0]])),g&&(c=[].concat(c).reverse()),t(c,function(g,d){b=k.getPosition(g,a);p.push(d?"L":"M",b.x,b.y)}));return p},getTitlePosition:function(){var a=this.center,g=this.chart,d=this.options.title;return{x:g.plotLeft+a[0]+(d.x||0),y:g.plotTop+a[1]-{high:.5,middle:.25,low:0}[d.align]*a[2]+(d.y||0)}}};u(k,"init",function(f,g,k){var b=g.angular,p=g.polar,n=k.isX,u=b&&n,e,A=g.options,m=k.pane||0;if(b){if(w(this,u?c:l),e=!n)this.defaultRadialOptions=this.defaultRadialGaugeOptions}else p&&(w(this, +l),this.defaultRadialOptions=(e=n)?this.defaultRadialXOptions:q(this.defaultYAxisOptions,this.defaultRadialYOptions));b||p?(this.isRadial=!0,g.inverted=!1,A.chart.zoomType=null):this.isRadial=!1;f.call(this,g,k);u||!b&&!p||(f=this.options,g.panes||(g.panes=[]),this.pane=g=g.panes[m]=g.panes[m]||new a(h(A.pane)[m],g,this),g=g.options,this.angleRad=(f.angle||0)*Math.PI/180,this.startAngleRad=(g.startAngle-90)*Math.PI/180,this.endAngleRad=(d(g.endAngle,g.startAngle+360)-90)*Math.PI/180,this.offset=f.offset|| +0,this.isCircular=e)});u(k,"autoLabelAlign",function(a){if(!this.isRadial)return a.apply(this,[].slice.call(arguments,1))});u(b,"getPosition",function(a,d,c,f,h){var g=this.axis;return g.getPosition?g.getPosition(c):a.call(this,d,c,f,h)});u(b,"getLabelPosition",function(a,g,c,f,h,k,b,l,u){var n=this.axis,p=k.y,e=20,y=k.align,v=(n.translate(this.pos)+n.startAngleRad+Math.PI/2)/Math.PI*180%360;n.isRadial?(a=n.getPosition(this.pos,n.center[2]/2+d(k.distance,-25)),"auto"===k.rotation?f.attr({rotation:v}): +null===p&&(p=n.chart.renderer.fontMetrics(f.styles.fontSize).b-f.getBBox().height/2),null===y&&(n.isCircular?(this.label.getBBox().width>n.len*n.tickInterval/(n.max-n.min)&&(e=0),y=v>e&&v<180-e?"left":v>180+e&&v<360-e?"right":"center"):y="center",f.attr({align:y})),a.x+=k.x,a.y+=p):a=a.call(this,g,c,f,h,k,b,l,u);return a});u(b,"getMarkPath",function(a,d,c,f,h,k,b){var g=this.axis;g.isRadial?(a=g.getPosition(this.pos,g.center[2]/2+f),d=["M",d,c,"L",a.x,a.y]):d=a.call(this,d,c,f,h,k,b);return d})})(x); +(function(b){var r=b.each,t=b.noop,w=b.pick,m=b.Series,q=b.seriesType,e=b.seriesTypes;q("arearange","area",{lineWidth:1,marker:null,threshold:null,tooltip:{pointFormat:'\x3cspan style\x3d"color:{series.color}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cb\x3e{point.low}\x3c/b\x3e - \x3cb\x3e{point.high}\x3c/b\x3e\x3cbr/\x3e'},trackByArea:!0,dataLabels:{align:null,verticalAlign:null,xLow:0,xHigh:0,yLow:0,yHigh:0},states:{hover:{halo:!1}}},{pointArrayMap:["low","high"],dataLabelCollections:["dataLabel", +"dataLabelUpper"],toYData:function(a){return[a.low,a.high]},pointValKey:"low",deferTranslatePolar:!0,highToXY:function(a){var d=this.chart,f=this.xAxis.postTranslate(a.rectPlotX,this.yAxis.len-a.plotHigh);a.plotHighX=f.x-d.plotLeft;a.plotHigh=f.y-d.plotTop},translate:function(){var a=this,d=a.yAxis,f=!!a.modifyValue;e.area.prototype.translate.apply(a);r(a.points,function(h){var b=h.low,c=h.high,l=h.plotY;null===c||null===b?h.isNull=!0:(h.plotLow=l,h.plotHigh=d.translate(f?a.modifyValue(c,h):c,0,1, +0,1),f&&(h.yBottom=h.plotHigh))});this.chart.polar&&r(this.points,function(d){a.highToXY(d)})},getGraphPath:function(a){var d=[],f=[],h,b=e.area.prototype.getGraphPath,c,l,k;k=this.options;var p=k.step;a=a||this.points;for(h=a.length;h--;)c=a[h],c.isNull||k.connectEnds||a[h+1]&&!a[h+1].isNull||f.push({plotX:c.plotX,plotY:c.plotY,doCurve:!1}),l={polarPlotY:c.polarPlotY,rectPlotX:c.rectPlotX,yBottom:c.yBottom,plotX:w(c.plotHighX,c.plotX),plotY:c.plotHigh,isNull:c.isNull},f.push(l),d.push(l),c.isNull|| +k.connectEnds||a[h-1]&&!a[h-1].isNull||f.push({plotX:c.plotX,plotY:c.plotY,doCurve:!1});a=b.call(this,a);p&&(!0===p&&(p="left"),k.step={left:"right",center:"center",right:"left"}[p]);d=b.call(this,d);f=b.call(this,f);k.step=p;k=[].concat(a,d);this.chart.polar||"M"!==f[0]||(f[0]="L");this.graphPath=k;this.areaPath=this.areaPath.concat(a,f);k.isArea=!0;k.xMap=a.xMap;this.areaPath.xMap=a.xMap;return k},drawDataLabels:function(){var a=this.data,d=a.length,f,h=[],b=m.prototype,c=this.options.dataLabels, +l=c.align,k=c.verticalAlign,p=c.inside,g,n,e=this.chart.inverted;if(c.enabled||this._hasPointLabels){for(f=d;f--;)if(g=a[f])n=p?g.plotHighg.plotLow,g.y=g.high,g._plotY=g.plotY,g.plotY=g.plotHigh,h[f]=g.dataLabel,g.dataLabel=g.dataLabelUpper,g.below=n,e?l||(c.align=n?"right":"left"):k||(c.verticalAlign=n?"top":"bottom"),c.x=c.xHigh,c.y=c.yHigh;b.drawDataLabels&&b.drawDataLabels.apply(this,arguments);for(f=d;f--;)if(g=a[f])n=p?g.plotHighg.plotLow,g.dataLabelUpper= +g.dataLabel,g.dataLabel=h[f],g.y=g.low,g.plotY=g._plotY,g.below=!n,e?l||(c.align=n?"left":"right"):k||(c.verticalAlign=n?"bottom":"top"),c.x=c.xLow,c.y=c.yLow;b.drawDataLabels&&b.drawDataLabels.apply(this,arguments)}c.align=l;c.verticalAlign=k},alignDataLabel:function(){e.column.prototype.alignDataLabel.apply(this,arguments)},setStackedPoints:t,getSymbol:t,drawPoints:t})})(x);(function(b){var r=b.seriesType;r("areasplinerange","arearange",null,{getPointSpline:b.seriesTypes.spline.prototype.getPointSpline})})(x); +(function(b){var r=b.defaultPlotOptions,t=b.each,w=b.merge,m=b.noop,q=b.pick,e=b.seriesType,a=b.seriesTypes.column.prototype;e("columnrange","arearange",w(r.column,r.arearange,{lineWidth:1,pointRange:null}),{translate:function(){var d=this,f=d.yAxis,b=d.xAxis,u=b.startAngleRad,c,l=d.chart,k=d.xAxis.isRadial,p;a.translate.apply(d);t(d.points,function(a){var g=a.shapeArgs,h=d.options.minPointLength,e,v;a.plotHigh=p=f.translate(a.high,0,1,0,1);a.plotLow=a.plotY;v=p;e=q(a.rectPlotY,a.plotY)-p;Math.abs(e)< +h?(h-=e,e+=h,v-=h/2):0>e&&(e*=-1,v-=e);k?(c=a.barX+u,a.shapeType="path",a.shapeArgs={d:d.polarArc(v+e,v,c,c+a.pointWidth)}):(g.height=e,g.y=v,a.tooltipPos=l.inverted?[f.len+f.pos-l.plotLeft-v-e/2,b.len+b.pos-l.plotTop-g.x-g.width/2,e]:[b.left-l.plotLeft+g.x+g.width/2,f.pos-l.plotTop+v+e/2,e])})},directTouch:!0,trackerGroups:["group","dataLabelsGroup"],drawGraph:m,crispCol:a.crispCol,drawPoints:a.drawPoints,drawTracker:a.drawTracker,getColumnMetrics:a.getColumnMetrics,animate:function(){return a.animate.apply(this, +arguments)},polarArc:function(){return a.polarArc.apply(this,arguments)},pointAttribs:a.pointAttribs})})(x);(function(b){var r=b.each,t=b.isNumber,w=b.merge,m=b.pick,q=b.pInt,e=b.Series,a=b.seriesType,d=b.TrackerMixin;a("gauge","line",{dataLabels:{enabled:!0,defer:!1,y:15,borderRadius:3,crop:!1,verticalAlign:"top",zIndex:2,borderWidth:1,borderColor:"#cccccc"},dial:{},pivot:{},tooltip:{headerFormat:""},showInLegend:!1},{angular:!0,directTouch:!0,drawGraph:b.noop,fixedBox:!0,forceDL:!0,noSharedTooltip:!0, +trackerGroups:["group","dataLabelsGroup"],translate:function(){var a=this.yAxis,d=this.options,b=a.center;this.generatePoints();r(this.points,function(c){var f=w(d.dial,c.dial),k=q(m(f.radius,80))*b[2]/200,h=q(m(f.baseLength,70))*k/100,g=q(m(f.rearLength,10))*k/100,n=f.baseWidth||3,u=f.topWidth||1,e=d.overshoot,v=a.startAngleRad+a.translate(c.y,null,null,null,!0);t(e)?(e=e/180*Math.PI,v=Math.max(a.startAngleRad-e,Math.min(a.endAngleRad+e,v))):!1===d.wrap&&(v=Math.max(a.startAngleRad,Math.min(a.endAngleRad, +v)));v=180*v/Math.PI;c.shapeType="path";c.shapeArgs={d:f.path||["M",-g,-n/2,"L",h,-n/2,k,-u/2,k,u/2,h,n/2,-g,n/2,"z"],translateX:b[0],translateY:b[1],rotation:v};c.plotX=b[0];c.plotY=b[1]})},drawPoints:function(){var a=this,d=a.yAxis.center,b=a.pivot,c=a.options,l=c.pivot,k=a.chart.renderer;r(a.points,function(d){var g=d.graphic,b=d.shapeArgs,f=b.d,h=w(c.dial,d.dial);g?(g.animate(b),b.d=f):(d.graphic=k[d.shapeType](b).attr({rotation:b.rotation,zIndex:1}).addClass("highcharts-dial").add(a.group),d.graphic.attr({stroke:h.borderColor|| +"none","stroke-width":h.borderWidth||0,fill:h.backgroundColor||"#000000"}))});b?b.animate({translateX:d[0],translateY:d[1]}):(a.pivot=k.circle(0,0,m(l.radius,5)).attr({zIndex:2}).addClass("highcharts-pivot").translate(d[0],d[1]).add(a.group),a.pivot.attr({"stroke-width":l.borderWidth||0,stroke:l.borderColor||"#cccccc",fill:l.backgroundColor||"#000000"}))},animate:function(a){var d=this;a||(r(d.points,function(a){var c=a.graphic;c&&(c.attr({rotation:180*d.yAxis.startAngleRad/Math.PI}),c.animate({rotation:a.shapeArgs.rotation}, +d.options.animation))}),d.animate=null)},render:function(){this.group=this.plotGroup("group","series",this.visible?"visible":"hidden",this.options.zIndex,this.chart.seriesGroup);e.prototype.render.call(this);this.group.clip(this.chart.clipRect)},setData:function(a,d){e.prototype.setData.call(this,a,!1);this.processData();this.generatePoints();m(d,!0)&&this.chart.redraw()},drawTracker:d&&d.drawTrackerPoint},{setState:function(a){this.state=a}})})(x);(function(b){var r=b.each,t=b.noop,w=b.pick,m=b.seriesType, +q=b.seriesTypes;m("boxplot","column",{threshold:null,tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eMaximum: {point.high}\x3cbr/\x3eUpper quartile: {point.q3}\x3cbr/\x3eMedian: {point.median}\x3cbr/\x3eLower quartile: {point.q1}\x3cbr/\x3eMinimum: {point.low}\x3cbr/\x3e'},whiskerLength:"50%",fillColor:"#ffffff",lineWidth:1,medianWidth:2,states:{hover:{brightness:-.3}},whiskerWidth:2},{pointArrayMap:["low","q1","median", +"q3","high"],toYData:function(b){return[b.low,b.q1,b.median,b.q3,b.high]},pointValKey:"high",pointAttribs:function(b){var a=this.options,d=b&&b.color||this.color;return{fill:b.fillColor||a.fillColor||d,stroke:a.lineColor||d,"stroke-width":a.lineWidth||0}},drawDataLabels:t,translate:function(){var b=this.yAxis,a=this.pointArrayMap;q.column.prototype.translate.apply(this);r(this.points,function(d){r(a,function(a){null!==d[a]&&(d[a+"Plot"]=b.translate(d[a],0,1,0,1))})})},drawPoints:function(){var b= +this,a=b.options,d=b.chart.renderer,f,h,u,c,l,k,p=0,g,n,m,q,v=!1!==b.doQuartiles,t,x=b.options.whiskerLength;r(b.points,function(e){var r=e.graphic,y=r?"animate":"attr",I=e.shapeArgs,z={},B={},G={},H=e.color||b.color;void 0!==e.plotY&&(g=I.width,n=Math.floor(I.x),m=n+g,q=Math.round(g/2),f=Math.floor(v?e.q1Plot:e.lowPlot),h=Math.floor(v?e.q3Plot:e.lowPlot),u=Math.floor(e.highPlot),c=Math.floor(e.lowPlot),r||(e.graphic=r=d.g("point").add(b.group),e.stem=d.path().addClass("highcharts-boxplot-stem").add(r), +x&&(e.whiskers=d.path().addClass("highcharts-boxplot-whisker").add(r)),v&&(e.box=d.path(void 0).addClass("highcharts-boxplot-box").add(r)),e.medianShape=d.path(void 0).addClass("highcharts-boxplot-median").add(r),z.stroke=e.stemColor||a.stemColor||H,z["stroke-width"]=w(e.stemWidth,a.stemWidth,a.lineWidth),z.dashstyle=e.stemDashStyle||a.stemDashStyle,e.stem.attr(z),x&&(B.stroke=e.whiskerColor||a.whiskerColor||H,B["stroke-width"]=w(e.whiskerWidth,a.whiskerWidth,a.lineWidth),e.whiskers.attr(B)),v&&(r= +b.pointAttribs(e),e.box.attr(r)),G.stroke=e.medianColor||a.medianColor||H,G["stroke-width"]=w(e.medianWidth,a.medianWidth,a.lineWidth),e.medianShape.attr(G)),k=e.stem.strokeWidth()%2/2,p=n+q+k,e.stem[y]({d:["M",p,h,"L",p,u,"M",p,f,"L",p,c]}),v&&(k=e.box.strokeWidth()%2/2,f=Math.floor(f)+k,h=Math.floor(h)+k,n+=k,m+=k,e.box[y]({d:["M",n,h,"L",n,f,"L",m,f,"L",m,h,"L",n,h,"z"]})),x&&(k=e.whiskers.strokeWidth()%2/2,u+=k,c+=k,t=/%$/.test(x)?q*parseFloat(x)/100:x/2,e.whiskers[y]({d:["M",p-t,u,"L",p+t,u, +"M",p-t,c,"L",p+t,c]})),l=Math.round(e.medianPlot),k=e.medianShape.strokeWidth()%2/2,l+=k,e.medianShape[y]({d:["M",n,l,"L",m,l]}))})},setStackedPoints:t})})(x);(function(b){var r=b.each,t=b.noop,w=b.seriesType,m=b.seriesTypes;w("errorbar","boxplot",{color:"#000000",grouping:!1,linkedTo:":previous",tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cb\x3e{point.low}\x3c/b\x3e - \x3cb\x3e{point.high}\x3c/b\x3e\x3cbr/\x3e'},whiskerWidth:null},{type:"errorbar", +pointArrayMap:["low","high"],toYData:function(b){return[b.low,b.high]},pointValKey:"high",doQuartiles:!1,drawDataLabels:m.arearange?function(){var b=this.pointValKey;m.arearange.prototype.drawDataLabels.call(this);r(this.data,function(e){e.y=e[b]})}:t,getColumnMetrics:function(){return this.linkedParent&&this.linkedParent.columnMetrics||m.column.prototype.getColumnMetrics.call(this)}})})(x);(function(b){var r=b.correctFloat,t=b.isNumber,w=b.pick,m=b.Point,q=b.Series,e=b.seriesType,a=b.seriesTypes; +e("waterfall","column",{dataLabels:{inside:!0},lineWidth:1,lineColor:"#333333",dashStyle:"dot",borderColor:"#333333",states:{hover:{lineWidthPlus:0}}},{pointValKey:"y",translate:function(){var d=this.options,b=this.yAxis,h,e,c,l,k,p,g,n,m,q=w(d.minPointLength,5),v=d.threshold,t=d.stacking;a.column.prototype.translate.apply(this);this.minPointLengthOffset=0;g=n=v;e=this.points;h=0;for(d=e.length;hl.height&&(l.y+=l.height,l.height*=-1),c.plotY=l.y=Math.round(l.y)- +this.borderWidth%2/2,l.height=Math.max(Math.round(l.height),.001),c.yBottom=l.y+l.height,l.height<=q&&(l.height=q,this.minPointLengthOffset+=q),l.y-=this.minPointLengthOffset,l=c.plotY+(c.negative?l.height:0)-this.minPointLengthOffset,this.chart.inverted?c.tooltipPos[0]=b.len-l:c.tooltipPos[1]=l},processData:function(a){var b=this.yData,d=this.options.data,e,c=b.length,l,k,p,g,n,m;k=l=p=g=this.options.threshold||0;for(m=0;ma[k-1].y&&(l[2]+=c.height,l[5]+=c.height),e=e.concat(l);return e},drawGraph:function(){q.prototype.drawGraph.call(this);this.graph.attr({d:this.getCrispPath()})},getExtremes:b.noop},{getClassName:function(){var a=m.prototype.getClassName.call(this);this.isSum?a+=" highcharts-sum":this.isIntermediateSum&&(a+=" highcharts-intermediate-sum"); +return a},isValid:function(){return t(this.y,!0)||this.isSum||this.isIntermediateSum}})})(x);(function(b){var r=b.Series,t=b.seriesType,w=b.seriesTypes;t("polygon","scatter",{marker:{enabled:!1,states:{hover:{enabled:!1}}},stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:""},trackByArea:!0},{type:"polygon",getGraphPath:function(){for(var b=r.prototype.getGraphPath.call(this),q=b.length+1;q--;)(q===b.length||"M"===b[q])&&0=this.minPxSize/2?(d.shapeType="circle",d.shapeArgs={x:d.plotX,y:d.plotY,r:c},d.dlBox={x:d.plotX-c,y:d.plotY-c,width:2*c,height:2*c}):d.shapeArgs=d.plotY=d.dlBox=void 0},drawLegendSymbol:function(a,b){var d=this.chart.renderer,c=d.fontMetrics(a.itemStyle.fontSize).f/2;b.legendSymbol=d.circle(c,a.baseline-c,c).attr({zIndex:3}).add(b.legendGroup);b.legendSymbol.isMarker= +!0},drawPoints:l.column.prototype.drawPoints,alignDataLabel:l.column.prototype.alignDataLabel,buildKDTree:a,applyZones:a},{haloPath:function(a){return h.prototype.haloPath.call(this,this.shapeArgs.r+a)},ttBelow:!1});w.prototype.beforePadding=function(){var a=this,b=this.len,c=this.chart,h=0,l=b,u=this.isXAxis,m=u?"xData":"yData",w=this.min,x={},A=Math.min(c.plotWidth,c.plotHeight),C=Number.MAX_VALUE,D=-Number.MAX_VALUE,E=this.max-w,z=b/E,F=[];q(this.series,function(b){var g=b.options;!b.bubblePadding|| +!b.visible&&c.options.chart.ignoreHiddenSeries||(a.allowZoomOutside=!0,F.push(b),u&&(q(["minSize","maxSize"],function(a){var b=g[a],d=/%$/.test(b),b=f(b);x[a]=d?A*b/100:b}),b.minPxSize=x.minSize,b.maxPxSize=Math.max(x.maxSize,x.minSize),b=b.zData,b.length&&(C=d(g.zMin,Math.min(C,Math.max(t(b),!1===g.displayNegative?g.zThreshold:-Number.MAX_VALUE))),D=d(g.zMax,Math.max(D,r(b))))))});q(F,function(b){var d=b[m],c=d.length,f;u&&b.getRadii(C,D,b.minPxSize,b.maxPxSize);if(0f&&(f+=360),a.clientX=f):a.clientX=a.plotX};m.spline&&q(m.spline.prototype,"getPointSpline",function(a,b,f,h){var d,c,e,k,p,g,n;this.chart.polar?(d=f.plotX, +c=f.plotY,a=b[h-1],e=b[h+1],this.connectEnds&&(a||(a=b[b.length-2]),e||(e=b[1])),a&&e&&(k=a.plotX,p=a.plotY,b=e.plotX,g=e.plotY,k=(1.5*d+k)/2.5,p=(1.5*c+p)/2.5,e=(1.5*d+b)/2.5,n=(1.5*c+g)/2.5,b=Math.sqrt(Math.pow(k-d,2)+Math.pow(p-c,2)),g=Math.sqrt(Math.pow(e-d,2)+Math.pow(n-c,2)),k=Math.atan2(p-c,k-d),p=Math.atan2(n-c,e-d),n=Math.PI/2+(k+p)/2,Math.abs(k-n)>Math.PI/2&&(n-=Math.PI),k=d+Math.cos(n)*b,p=c+Math.sin(n)*b,e=d+Math.cos(Math.PI+n)*g,n=c+Math.sin(Math.PI+n)*g,f.rightContX=e,f.rightContY=n), +h?(f=["C",a.rightContX||a.plotX,a.rightContY||a.plotY,k||d,p||c,d,c],a.rightContX=a.rightContY=null):f=["M",d,c]):f=a.call(this,b,f,h);return f});q(e,"translate",function(a){var b=this.chart;a.call(this);if(b.polar&&(this.kdByAngle=b.tooltip&&b.tooltip.shared,!this.preventPostTranslate))for(a=this.points,b=a.length;b--;)this.toXY(a[b])});q(e,"getGraphPath",function(a,b){var d=this,e,m;if(this.chart.polar){b=b||this.points;for(e=0;eb.center[1]}),q(m,"alignDataLabel",function(a,b,f,h,m,c){this.chart.polar?(a=b.rectPlotX/Math.PI*180,null===h.align&&(h.align=20a?"left":200a?"right":"center"),null===h.verticalAlign&&(h.verticalAlign=45>a||315a?"top":"middle"),e.alignDataLabel.call(this,b,f,h,m,c)):a.call(this, +b,f,h,m,c)}));q(b,"getCoordinates",function(a,b){var d=this.chart,e={xAxis:[],yAxis:[]};d.polar?t(d.axes,function(a){var c=a.isXAxis,f=a.center,h=b.chartX-f[0]-d.plotLeft,f=b.chartY-f[1]-d.plotTop;e[c?"xAxis":"yAxis"].push({axis:a,value:a.translate(c?Math.PI-Math.atan2(h,f):Math.sqrt(Math.pow(h,2)+Math.pow(f,2)),!0)})}):e=a.call(this,b);return e})})(x)}); diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/highstock.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/highstock.js new file mode 100644 index 0000000..34a3f91 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/highstock.js @@ -0,0 +1,496 @@ +/* + Highstock JS v5.0.3 (2016-11-18) + + (c) 2009-2016 Torstein Honsi + + License: www.highcharts.com/license +*/ +(function(N,a){"object"===typeof module&&module.exports?module.exports=N.document?a(N):a:N.Highcharts=a(N)})("undefined"!==typeof window?window:this,function(N){N=function(){var a=window,D=a.document,B=a.navigator&&a.navigator.userAgent||"",G=D&&D.createElementNS&&!!D.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,H=/(edge|msie|trident)/i.test(B)&&!window.opera,p=!G,l=/Firefox/.test(B),r=l&&4>parseInt(B.split("Firefox/")[1],10);return a.Highcharts?a.Highcharts.error(16,!0):{product:"Highstock", +version:"5.0.3",deg2rad:2*Math.PI/360,doc:D,hasBidiBug:r,hasTouch:D&&void 0!==D.documentElement.ontouchstart,isMS:H,isWebKit:/AppleWebKit/.test(B),isFirefox:l,isTouchDevice:/(Mobile|Android|Windows Phone)/.test(B),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:G,vml:p,win:a,charts:[],marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){}}}();(function(a){var D=[],B=a.charts,G=a.doc,H=a.win;a.error=function(a,l){a="Highcharts error #"+ +a+": www.highcharts.com/errors/"+a;if(l)throw Error(a);H.console&&console.log(a)};a.Fx=function(a,l,r){this.options=l;this.elem=a;this.prop=r};a.Fx.prototype={dSetter:function(){var a=this.paths[0],l=this.paths[1],r=[],w=this.now,t=a.length,k;if(1===w)r=this.toD;else if(t===l.length&&1>w)for(;t--;)k=parseFloat(a[t]),r[t]=isNaN(k)?a[t]:w*parseFloat(l[t]-k)+k;else r=l;this.elem.attr("d",r)},update:function(){var a=this.elem,l=this.prop,r=this.now,w=this.options.step;if(this[l+"Setter"])this[l+"Setter"](); +else a.attr?a.element&&a.attr(l,r):a.style[l]=r+this.unit;w&&w.call(a,r,this)},run:function(a,l,r){var p=this,t=function(a){return t.stopped?!1:p.step(a)},k;this.startTime=+new Date;this.start=a;this.end=l;this.unit=r;this.now=this.start;this.pos=0;t.elem=this.elem;t()&&1===D.push(t)&&(t.timerId=setInterval(function(){for(k=0;k=k+this.startTime){this.now=this.end;this.pos=1;this.update();a=m[this.prop]=!0;for(e in m)!0!==m[e]&&(a=!1);a&&t&&t.call(p);p=!1}else this.pos=w.easing((l-this.startTime)/k),this.now=this.start+(this.end-this.start)*this.pos,this.update(),p=!0;return p},initPath:function(p,l,r){function w(a){for(b=a.length;b--;)"M"!==a[b]&&"L"!==a[b]||a.splice(b+1,0,a[b+1],a[b+2],a[b+1],a[b+2])}function t(a,c){for(;a.lengthm?"AM":"PM",P:12>m?"am":"pm",S:q(t.getSeconds()),L:q(Math.round(l%1E3),3)},a.dateFormats);for(k in w)for(;-1!==p.indexOf("%"+k);)p= +p.replace("%"+k,"function"===typeof w[k]?w[k](l):w[k]);return r?p.substr(0,1).toUpperCase()+p.substr(1):p};a.formatSingle=function(p,l){var r=/\.([0-9])/,w=a.defaultOptions.lang;/f$/.test(p)?(r=(r=p.match(r))?r[1]:-1,null!==l&&(l=a.numberFormat(l,r,w.decimalPoint,-1=r&&(l=[1/r])));for(w=0;w=p||!t&&k<=(l[w]+(l[w+1]||l[w]))/ +2);w++);return m*r};a.stableSort=function(a,l){var r=a.length,p,t;for(t=0;tr&&(r=a[l]);return r};a.destroyObjectProperties=function(a,l){for(var r in a)a[r]&&a[r]!==l&&a[r].destroy&&a[r].destroy(),delete a[r]};a.discardElement=function(p){var l= +a.garbageBin;l||(l=a.createElement("div"));p&&l.appendChild(p);l.innerHTML=""};a.correctFloat=function(a,l){return parseFloat(a.toPrecision(l||14))};a.setAnimation=function(p,l){l.renderer.globalAnimation=a.pick(p,l.options.chart.animation,!0)};a.animObject=function(p){return a.isObject(p)?a.merge(p):{duration:p?500:0}};a.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5};a.numberFormat=function(p,l,r,w){p=+p||0;l=+l;var t=a.defaultOptions.lang, +k=(p.toString().split(".")[1]||"").length,m,e,g=Math.abs(p);-1===l?l=Math.min(k,20):a.isNumber(l)||(l=2);m=String(a.pInt(g.toFixed(l)));e=3p?"-":"")+(e?m.substr(0,e)+w:"");p+=m.substr(e).replace(/(\d{3})(?=\d)/g,"$1"+w);l&&(w=Math.abs(g-m+Math.pow(10,-Math.max(l,k)-1)),p+=r+w.toFixed(l).slice(2));return p};Math.easeInOutSine=function(a){return-.5*(Math.cos(Math.PI*a)-1)};a.getStyle=function(p,l){return"width"===l?Math.min(p.offsetWidth, +p.scrollWidth)-a.getStyle(p,"padding-left")-a.getStyle(p,"padding-right"):"height"===l?Math.min(p.offsetHeight,p.scrollHeight)-a.getStyle(p,"padding-top")-a.getStyle(p,"padding-bottom"):(p=H.getComputedStyle(p,void 0))&&a.pInt(p.getPropertyValue(l))};a.inArray=function(a,l){return l.indexOf?l.indexOf(a):[].indexOf.call(l,a)};a.grep=function(a,l){return[].filter.call(a,l)};a.map=function(a,l){for(var r=[],p=0,t=a.length;pl;l++)w[l]+=p(255*a),0>w[l]&&(w[l]=0),255z.width)z={width:0,height:0}}else z=this.htmlGetBBox();b.isSVG&&(a=z.width, +b=z.height,c&&L&&"11px"===L.fontSize&&"16.9"===b.toPrecision(3)&&(z.height=b=14),v&&(z.width=Math.abs(b*Math.sin(d))+Math.abs(a*Math.cos(d)),z.height=Math.abs(b*Math.cos(d))+Math.abs(a*Math.sin(d))));if(g&&0]*>/g,"")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,this.textStr=a,this.added&&this.renderer.buildText(this))},fillSetter:function(a,c,v){"string"===typeof a?v.setAttribute(c, +a):a&&this.colorGradient(a,c,v)},visibilitySetter:function(a,c,v){"inherit"===a?v.removeAttribute(c):v.setAttribute(c,a)},zIndexSetter:function(a,c){var v=this.renderer,z=this.parentGroup,b=(z||v).element||v.box,d,n=this.element,f;d=this.added;var e;k(a)&&(n.zIndex=a,a=+a,this[c]===a&&(d=!1),this[c]=a);if(d){(a=this.zIndex)&&z&&(z.handleZ=!0);c=b.childNodes;for(e=0;ea||!k(a)&&k(d)||0>a&&!k(d)&&b!==v.box)&&(b.insertBefore(n,z),f=!0);f||b.appendChild(n)}return f}, +_defaultSetter:function(a,c,v){v.setAttribute(c,a)}};D.prototype.yGetter=D.prototype.xGetter;D.prototype.translateXSetter=D.prototype.translateYSetter=D.prototype.rotationSetter=D.prototype.verticalAlignSetter=D.prototype.scaleXSetter=D.prototype.scaleYSetter=function(a,c){this[c]=a;this.doTransform=!0};D.prototype["stroke-widthSetter"]=D.prototype.strokeSetter=function(a,c,v){this[c]=a;this.stroke&&this["stroke-width"]?(D.prototype.fillSetter.call(this,this.stroke,"stroke",v),v.setAttribute("stroke-width", +this["stroke-width"]),this.hasStroke=!0):"stroke-width"===c&&0===a&&this.hasStroke&&(v.removeAttribute("stroke"),this.hasStroke=!1)};B=a.SVGRenderer=function(){this.init.apply(this,arguments)};B.prototype={Element:D,SVG_NS:K,init:function(a,c,v,b,d,n){var z;b=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"}).css(this.getStyle(b));z=b.element;a.appendChild(z);-1===a.innerHTML.indexOf("xmlns")&&p(z,"xmlns",this.SVG_NS);this.isSVG=!0;this.box=z;this.boxWrapper=b;this.alignedObjects= +[];this.url=(E||A)&&g.getElementsByTagName("base").length?R.location.href.replace(/#.*?$/,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(g.createTextNode("Created with Highstock 5.0.3"));this.defs=this.createElement("defs").add();this.allowHTML=n;this.forExport=d;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(c,v,!1);var f;E&&a.getBoundingClientRect&&(c=function(){w(a,{left:0,top:0});f=a.getBoundingClientRect(); +w(a,{left:Math.ceil(f.left)-f.left+"px",top:Math.ceil(f.top)-f.top+"px"})},c(),this.unSubPixelFix=G(R,"resize",c))},getStyle:function(a){return this.style=C({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},a)},setStyle:function(a){this.boxWrapper.css(this.getStyle(a))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();e(this.gradients||{});this.gradients= +null;a&&(this.defs=a.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(a){var c=new this.Element;c.init(this,a);return c},draw:J,getRadialAttr:function(a,c){return{cx:a[0]-a[2]/2+c.cx*a[2],cy:a[1]-a[2]/2+c.cy*a[2],r:c.r*a[2]}},buildText:function(a){for(var c=a.element,z=this,b=z.forExport,n=y(a.textStr,"").toString(),f=-1!==n.indexOf("\x3c"),e=c.childNodes,q,F,x,A,I=p(c,"x"),m=a.styles,k=a.textWidth,C=m&&m.lineHeight,M=m&&m.textOutline,J=m&& +"ellipsis"===m.textOverflow,E=e.length,O=k&&!a.added&&this.box,t=function(a){var v;v=/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize:m&&m.fontSize||z.style.fontSize||12;return C?u(C):z.fontMetrics(v,a.getAttribute("style")?a:c).h};E--;)c.removeChild(e[E]);f||M||J||k||-1!==n.indexOf(" ")?(q=/<.*class="([^"]+)".*>/,F=/<.*style="([^"]+)".*>/,x=/<.*href="(http[^"]+)".*>/,O&&O.appendChild(c),n=f?n.replace(/<(b|strong)>/g,'\x3cspan style\x3d"font-weight:bold"\x3e').replace(/<(i|em)>/g,'\x3cspan style\x3d"font-style:italic"\x3e').replace(//g,"\x3c/span\x3e").split(//g):[n],n=d(n,function(a){return""!==a}),h(n,function(d,n){var f,e=0;d=d.replace(/^\s+|\s+$/g,"").replace(//g,"\x3c/span\x3e|||");f=d.split("|||");h(f,function(d){if(""!==d||1===f.length){var u={},y=g.createElementNS(z.SVG_NS,"tspan"),L,h;q.test(d)&&(L=d.match(q)[1],p(y,"class",L));F.test(d)&&(h=d.match(F)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),p(y,"style",h));x.test(d)&&!b&&(p(y, +"onclick",'location.href\x3d"'+d.match(x)[1]+'"'),w(y,{cursor:"pointer"}));d=(d.replace(/<(.|\n)*?>/g,"")||" ").replace(/</g,"\x3c").replace(/>/g,"\x3e");if(" "!==d){y.appendChild(g.createTextNode(d));e?u.dx=0:n&&null!==I&&(u.x=I);p(y,u);c.appendChild(y);!e&&n&&(!v&&b&&w(y,{display:"block"}),p(y,"dy",t(y)));if(k){u=d.replace(/([^\^])-/g,"$1- ").split(" ");L="nowrap"===m.whiteSpace;for(var C=1k,void 0===A&&(A=M),J&&A?(Q/=2,""===l||!M&&.5>Q?u=[]:(l=d.substring(0,l.length+(M?-1:1)*Math.ceil(Q)),u=[l+(3k&&(k=P)),u.length&&y.appendChild(g.createTextNode(u.join(" ").replace(/- /g, +"-")));a.rotation=R}e++}}})}),A&&a.attr("title",a.textStr),O&&O.removeChild(c),M&&a.applyTextOutline&&a.applyTextOutline(M)):c.appendChild(g.createTextNode(n.replace(/</g,"\x3c").replace(/>/g,"\x3e")))},getContrast:function(a){a=r(a).rgba;return 510v?d>c+f&&de?d>c+f&&db&&e>a+f&&ed&&e>a+f&&ea?a+3:Math.round(1.2*a);return{h:c,b:Math.round(.8*c),f:a}},rotCorr:function(a, +c,v){var b=a;c&&v&&(b=Math.max(b*Math.cos(c*m),4));return{x:-a/3*Math.sin(c*m),y:b}},label:function(a,c,v,b,d,n,f,e,K){var q=this,u=q.g("button"!==K&&"label"),y=u.text=q.text("",0,0,f).attr({zIndex:1}),g,F,z=0,A=3,L=0,m,M,J,E,O,t={},l,R,r=/^url\((.*?)\)$/.test(b),p=r,P,w,Q,S;K&&u.addClass("highcharts-"+K);p=r;P=function(){return(l||0)%2/2};w=function(){var a=y.element.style,c={};F=(void 0===m||void 0===M||O)&&k(y.textStr)&&y.getBBox();u.width=(m||F.width||0)+2*A+L;u.height=(M||F.height||0)+2*A;R= +A+q.fontMetrics(a&&a.fontSize,y).b;p&&(g||(u.box=g=q.symbols[b]||r?q.symbol(b):q.rect(),g.addClass(("button"===K?"":"highcharts-label-box")+(K?" highcharts-"+K+"-box":"")),g.add(u),a=P(),c.x=a,c.y=(e?-R:0)+a),c.width=Math.round(u.width),c.height=Math.round(u.height),g.attr(C(c,t)),t={})};Q=function(){var a=L+A,c;c=e?0:R;k(m)&&F&&("center"===O||"right"===O)&&(a+={center:.5,right:1}[O]*(m-F.width));if(a!==y.x||c!==y.y)y.attr("x",a),void 0!==c&&y.attr("y",c);y.x=a;y.y=c};S=function(a,c){g?g.attr(a,c): +t[a]=c};u.onAdd=function(){y.add(u);u.attr({text:a||0===a?a:"",x:c,y:v});g&&k(d)&&u.attr({anchorX:d,anchorY:n})};u.widthSetter=function(a){m=a};u.heightSetter=function(a){M=a};u["text-alignSetter"]=function(a){O=a};u.paddingSetter=function(a){k(a)&&a!==A&&(A=u.padding=a,Q())};u.paddingLeftSetter=function(a){k(a)&&a!==L&&(L=a,Q())};u.alignSetter=function(a){a={left:0,center:.5,right:1}[a];a!==z&&(z=a,F&&u.attr({x:J}))};u.textSetter=function(a){void 0!==a&&y.textSetter(a);w();Q()};u["stroke-widthSetter"]= +function(a,c){a&&(p=!0);l=this["stroke-width"]=a;S(c,a)};u.strokeSetter=u.fillSetter=u.rSetter=function(a,c){"fill"===c&&a&&(p=!0);S(c,a)};u.anchorXSetter=function(a,c){d=a;S(c,Math.round(a)-P()-J)};u.anchorYSetter=function(a,c){n=a;S(c,a-E)};u.xSetter=function(a){u.x=a;z&&(a-=z*((m||F.width)+2*A));J=Math.round(a);u.attr("translateX",J)};u.ySetter=function(a){E=u.y=Math.round(a);u.attr("translateY",E)};var T=u.css;return C(u,{css:function(a){if(a){var c={};a=x(a);h(u.textProps,function(v){void 0!== +a[v]&&(c[v]=a[v],delete a[v])});y.css(c)}return T.call(u,a)},getBBox:function(){return{width:F.width+2*A,height:F.height+2*A,x:F.x-A,y:F.y-A}},shadow:function(a){a&&(w(),g&&g.shadow(a));return u},destroy:function(){I(u.element,"mouseenter");I(u.element,"mouseleave");y&&(y=y.destroy());g&&(g=g.destroy());D.prototype.destroy.call(u);u=q=w=Q=S=null}})}};a.Renderer=B})(N);(function(a){var D=a.attr,B=a.createElement,G=a.css,H=a.defined,p=a.each,l=a.extend,r=a.isFirefox,w=a.isMS,t=a.isWebKit,k=a.pInt,m= +a.SVGRenderer,e=a.win,g=a.wrap;l(a.SVGElement.prototype,{htmlCss:function(a){var e=this.element;if(e=a&&"SPAN"===e.tagName&&a.width)delete a.width,this.textWidth=e,this.updateTransform();a&&"ellipsis"===a.textOverflow&&(a.whiteSpace="nowrap",a.overflow="hidden");this.styles=l(this.styles,a);G(this.element,a);return this},htmlGetBBox:function(){var a=this.element;"text"===a.nodeName&&(a.style.position="absolute");return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var a= +this.renderer,e=this.element,f=this.translateX||0,d=this.translateY||0,b=this.x||0,q=this.y||0,g=this.textAlign||"left",c={left:0,center:.5,right:1}[g],F=this.styles;G(e,{marginLeft:f,marginTop:d});this.shadows&&p(this.shadows,function(a){G(a,{marginLeft:f+1,marginTop:d+1})});this.inverted&&p(e.childNodes,function(c){a.invertChild(c,e)});if("SPAN"===e.tagName){var n=this.rotation,A=k(this.textWidth),x=F&&F.whiteSpace,m=[n,g,e.innerHTML,this.textWidth,this.textAlign].join();m!==this.cTT&&(F=a.fontMetrics(e.style.fontSize).b, +H(n)&&this.setSpanRotation(n,c,F),G(e,{width:"",whiteSpace:x||"nowrap"}),e.offsetWidth>A&&/[ \-]/.test(e.textContent||e.innerText)&&G(e,{width:A+"px",display:"block",whiteSpace:x||"normal"}),this.getSpanCorrection(e.offsetWidth,F,c,n,g));G(e,{left:b+(this.xCorr||0)+"px",top:q+(this.yCorr||0)+"px"});t&&(F=e.offsetHeight);this.cTT=m}}else this.alignOnAdd=!0},setSpanRotation:function(a,g,f){var d={},b=w?"-ms-transform":t?"-webkit-transform":r?"MozTransform":e.opera?"-o-transform":"";d[b]=d.transform= +"rotate("+a+"deg)";d[b+(r?"Origin":"-origin")]=d.transformOrigin=100*g+"% "+f+"px";G(this.element,d)},getSpanCorrection:function(a,e,f){this.xCorr=-a*f;this.yCorr=-e}});l(m.prototype,{html:function(a,e,f){var d=this.createElement("span"),b=d.element,q=d.renderer,h=q.isSVG,c=function(a,c){p(["opacity","visibility"],function(b){g(a,b+"Setter",function(a,b,d,n){a.call(this,b,d,n);c[d]=b})})};d.textSetter=function(a){a!==b.innerHTML&&delete this.bBox;b.innerHTML=this.textStr=a;d.htmlUpdateTransform()}; +h&&c(d,d.element.style);d.xSetter=d.ySetter=d.alignSetter=d.rotationSetter=function(a,c){"align"===c&&(c="textAlign");d[c]=a;d.htmlUpdateTransform()};d.attr({text:a,x:Math.round(e),y:Math.round(f)}).css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize,position:"absolute"});b.style.whiteSpace="nowrap";d.css=d.htmlCss;h&&(d.add=function(a){var n,f=q.box.parentNode,e=[];if(this.parentGroup=a){if(n=a.div,!n){for(;a;)e.push(a),a=a.parentGroup;p(e.reverse(),function(a){var b,d=D(a.element, +"class");d&&(d={className:d});n=a.div=a.div||B("div",d,{position:"absolute",left:(a.translateX||0)+"px",top:(a.translateY||0)+"px",display:a.display,opacity:a.opacity,pointerEvents:a.styles&&a.styles.pointerEvents},n||f);b=n.style;l(a,{translateXSetter:function(c,d){b.left=c+"px";a[d]=c;a.doTransform=!0},translateYSetter:function(c,d){b.top=c+"px";a[d]=c;a.doTransform=!0}});c(a,b)})}}else n=f;n.appendChild(b);d.added=!0;d.alignOnAdd&&d.htmlUpdateTransform();return d});return d}})})(N);(function(a){var D, +B,G=a.createElement,H=a.css,p=a.defined,l=a.deg2rad,r=a.discardElement,w=a.doc,t=a.each,k=a.erase,m=a.extend;D=a.extendClass;var e=a.isArray,g=a.isNumber,h=a.isObject,C=a.merge;B=a.noop;var f=a.pick,d=a.pInt,b=a.SVGElement,q=a.SVGRenderer,E=a.win;a.svg||(B={docMode8:w&&8===w.documentMode,init:function(a,b){var c=["\x3c",b,' filled\x3d"f" stroked\x3d"f"'],d=["position: ","absolute",";"],f="div"===b;("shape"===b||f)&&d.push("left:0;top:0;width:1px;height:1px;");d.push("visibility: ",f?"hidden":"visible"); +c.push(' style\x3d"',d.join(""),'"/\x3e');b&&(c=f||"span"===b||"img"===b?c.join(""):a.prepVML(c),this.element=G(c));this.renderer=a},add:function(a){var c=this.renderer,b=this.element,d=c.box,f=a&&a.inverted,d=a?a.element||a:d;a&&(this.parentGroup=a);f&&c.invertChild(b,d);d.appendChild(b);this.added=!0;this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform();if(this.onAdd)this.onAdd();this.className&&this.attr("class",this.className);return this},updateTransform:b.prototype.htmlUpdateTransform, +setSpanRotation:function(){var a=this.rotation,b=Math.cos(a*l),d=Math.sin(a*l);H(this.element,{filter:a?["progid:DXImageTransform.Microsoft.Matrix(M11\x3d",b,", M12\x3d",-d,", M21\x3d",d,", M22\x3d",b,", sizingMethod\x3d'auto expand')"].join(""):"none"})},getSpanCorrection:function(a,b,d,e,q){var c=e?Math.cos(e*l):1,n=e?Math.sin(e*l):0,u=f(this.elemHeight,this.element.offsetHeight),g;this.xCorr=0>c&&-a;this.yCorr=0>n&&-u;g=0>c*n;this.xCorr+=n*b*(g?1-d:d);this.yCorr-=c*b*(e?g?d:1-d:1);q&&"left"!== +q&&(this.xCorr-=a*d*(0>c?-1:1),e&&(this.yCorr-=u*d*(0>n?-1:1)),H(this.element,{textAlign:q}))},pathToVML:function(a){for(var c=a.length,b=[];c--;)g(a[c])?b[c]=Math.round(10*a[c])-5:"Z"===a[c]?b[c]="x":(b[c]=a[c],!a.isArc||"wa"!==a[c]&&"at"!==a[c]||(b[c+5]===b[c+7]&&(b[c+7]+=a[c+7]>a[c+5]?1:-1),b[c+6]===b[c+8]&&(b[c+8]+=a[c+8]>a[c+6]?1:-1)));return b.join(" ")||"x"},clip:function(a){var c=this,b;a?(b=a.members,k(b,c),b.push(c),c.destroyClip=function(){k(b,c)},a=a.getCSS(c)):(c.destroyClip&&c.destroyClip(), +a={clip:c.docMode8?"inherit":"rect(auto)"});return c.css(a)},css:b.prototype.htmlCss,safeRemoveChild:function(a){a.parentNode&&r(a)},destroy:function(){this.destroyClip&&this.destroyClip();return b.prototype.destroy.apply(this)},on:function(a,b){this.element["on"+a]=function(){var a=E.event;a.target=a.srcElement;b(a)};return this},cutOffPath:function(a,b){var c;a=a.split(/[ ,]/);c=a.length;if(9===c||11===c)a[c-4]=a[c-2]=d(a[c-2])-10*b;return a.join(" ")},shadow:function(a,b,e){var c=[],n,q=this.element, +g=this.renderer,u,I=q.style,F,v=q.path,K,h,m,z;v&&"string"!==typeof v.value&&(v="x");h=v;if(a){m=f(a.width,3);z=(a.opacity||.15)/m;for(n=1;3>=n;n++)K=2*m+1-2*n,e&&(h=this.cutOffPath(v.value,K+.5)),F=['\x3cshape isShadow\x3d"true" strokeweight\x3d"',K,'" filled\x3d"false" path\x3d"',h,'" coordsize\x3d"10 10" style\x3d"',q.style.cssText,'" /\x3e'],u=G(g.prepVML(F),null,{left:d(I.left)+f(a.offsetX,1),top:d(I.top)+f(a.offsetY,1)}),e&&(u.cutOff=K+1),F=['\x3cstroke color\x3d"',a.color||"#000000",'" opacity\x3d"', +z*n,'"/\x3e'],G(g.prepVML(F),null,null,u),b?b.element.appendChild(u):q.parentNode.insertBefore(u,q),c.push(u);this.shadows=c}return this},updateShadows:B,setAttr:function(a,b){this.docMode8?this.element[a]=b:this.element.setAttribute(a,b)},classSetter:function(a){(this.added?this.element:this).className=a},dashstyleSetter:function(a,b,d){(d.getElementsByTagName("stroke")[0]||G(this.renderer.prepVML(["\x3cstroke/\x3e"]),null,null,d))[b]=a||"solid";this[b]=a},dSetter:function(a,b,d){var c=this.shadows; +a=a||[];this.d=a.join&&a.join(" ");d.path=a=this.pathToVML(a);if(c)for(d=c.length;d--;)c[d].path=c[d].cutOff?this.cutOffPath(a,c[d].cutOff):a;this.setAttr(b,a)},fillSetter:function(a,b,d){var c=d.nodeName;"SPAN"===c?d.style.color=a:"IMG"!==c&&(d.filled="none"!==a,this.setAttr("fillcolor",this.renderer.color(a,d,b,this)))},"fill-opacitySetter":function(a,b,d){G(this.renderer.prepVML(["\x3c",b.split("-")[0],' opacity\x3d"',a,'"/\x3e']),null,null,d)},opacitySetter:B,rotationSetter:function(a,b,d){d= +d.style;this[b]=d[b]=a;d.left=-Math.round(Math.sin(a*l)+1)+"px";d.top=Math.round(Math.cos(a*l))+"px"},strokeSetter:function(a,b,d){this.setAttr("strokecolor",this.renderer.color(a,d,b,this))},"stroke-widthSetter":function(a,b,d){d.stroked=!!a;this[b]=a;g(a)&&(a+="px");this.setAttr("strokeweight",a)},titleSetter:function(a,b){this.setAttr(b,a)},visibilitySetter:function(a,b,d){"inherit"===a&&(a="visible");this.shadows&&t(this.shadows,function(c){c.style[b]=a});"DIV"===d.nodeName&&(a="hidden"===a?"-999em": +0,this.docMode8||(d.style[b]=a?"visible":"hidden"),b="top");d.style[b]=a},xSetter:function(a,b,d){this[b]=a;"x"===b?b="left":"y"===b&&(b="top");this.updateClipping?(this[b]=a,this.updateClipping()):d.style[b]=a},zIndexSetter:function(a,b,d){d.style[b]=a}},B["stroke-opacitySetter"]=B["fill-opacitySetter"],a.VMLElement=B=D(b,B),B.prototype.ySetter=B.prototype.widthSetter=B.prototype.heightSetter=B.prototype.xSetter,B={Element:B,isIE8:-1l[0]&&c.push([1,l[1]]);t(c,function(c,b){q.test(c[1])?(n=a.color(c[1]),v=n.get("rgb"),K=n.get("a")):(v=c[1],K=1);r.push(100*c[0]+"% "+v);b?(m=K,k=v):(z=K,E=v)});if("fill"===d)if("gradient"===g)d=A.x1||A[0]||0,c=A.y1||A[1]||0,F=A.x2||A[2]||0,A=A.y2||A[3]||0,C='angle\x3d"'+(90-180*Math.atan((A-c)/(F-d))/Math.PI)+'"',p();else{var h=A.r,w=2*h,B=2*h,D=A.cx,H=A.cy,V=b.radialReference,U,h=function(){V&&(U=f.getBBox(),D+=(V[0]- +U.x)/U.width-.5,H+=(V[1]-U.y)/U.height-.5,w*=V[2]/U.width,B*=V[2]/U.height);C='src\x3d"'+a.getOptions().global.VMLRadialGradientURL+'" size\x3d"'+w+","+B+'" origin\x3d"0.5,0.5" position\x3d"'+D+","+H+'" color2\x3d"'+E+'" ';p()};f.added?h():f.onAdd=h;h=k}else h=v}else q.test(c)&&"IMG"!==b.tagName?(n=a.color(c),f[d+"-opacitySetter"](n.get("a"),d,b),h=n.get("rgb")):(h=b.getElementsByTagName(d),h.length&&(h[0].opacity=1,h[0].type="solid"),h=c);return h},prepVML:function(a){var c=this.isIE8;a=a.join(""); +c?(a=a.replace("/\x3e",' xmlns\x3d"urn:schemas-microsoft-com:vml" /\x3e'),a=-1===a.indexOf('style\x3d"')?a.replace("/\x3e",' style\x3d"display:inline-block;behavior:url(#default#VML);" /\x3e'):a.replace('style\x3d"','style\x3d"display:inline-block;behavior:url(#default#VML);')):a=a.replace("\x3c","\x3chcv:");return a},text:q.prototype.html,path:function(a){var c={coordsize:"10 10"};e(a)?c.d=a:h(a)&&m(c,a);return this.createElement("shape").attr(c)},circle:function(a,b,d){var c=this.symbol("circle"); +h(a)&&(d=a.r,b=a.y,a=a.x);c.isCircle=!0;c.r=d;return c.attr({x:a,y:b})},g:function(a){var c;a&&(c={className:"highcharts-"+a,"class":"highcharts-"+a});return this.createElement("div").attr(c)},image:function(a,b,d,f,e){var c=this.createElement("img").attr({src:a});1f&&m-d*bg&&(F=Math.round((e-m)/Math.cos(f*w)));else if(e=m+(1-d)*b,m-d*bg&&(E=g-a.x+E*d,c=-1),E=Math.min(q, +E),EE||k.autoRotation&&(C.styles||{}).width)F=E;F&&(n.width=F,(k.options.labels.style||{}).textOverflow||(n.textOverflow="ellipsis"),C.css(n))},getPosition:function(a,k,m,e){var g=this.axis,h=g.chart,l=e&&h.oldChartHeight||h.chartHeight;return{x:a?g.translate(k+m,null,null,e)+g.transB:g.left+g.offset+(g.opposite?(e&&h.oldChartWidth||h.chartWidth)-g.right-g.left:0),y:a?l-g.bottom+g.offset-(g.opposite?g.height:0):l-g.translate(k+m,null, +null,e)-g.transB}},getLabelPosition:function(a,k,m,e,g,h,l,f){var d=this.axis,b=d.transA,q=d.reversed,E=d.staggerLines,c=d.tickRotCorr||{x:0,y:0},F=g.y;B(F)||(F=0===d.side?m.rotation?-8:-m.getBBox().height:2===d.side?c.y+8:Math.cos(m.rotation*w)*(c.y-m.getBBox(!1,0).height/2));a=a+g.x+c.x-(h&&e?h*b*(q?-1:1):0);k=k+F-(h&&!e?h*b*(q?1:-1):0);E&&(m=l/(f||1)%E,d.opposite&&(m=E-m-1),k+=d.labelOffset/E*m);return{x:a,y:Math.round(k)}},getMarkPath:function(a,k,m,e,g,h){return h.crispLine(["M",a,k,"L",a+(g? +0:-m),k+(g?m:0)],e)},render:function(a,k,m){var e=this.axis,g=e.options,h=e.chart.renderer,C=e.horiz,f=this.type,d=this.label,b=this.pos,q=g.labels,E=this.gridLine,c=f?f+"Tick":"tick",F=e.tickSize(c),n=this.mark,A=!n,x=q.step,p={},y=!0,u=e.tickmarkOffset,I=this.getPosition(C,b,u,k),M=I.x,I=I.y,v=C&&M===e.pos+e.len||!C&&I===e.pos?-1:1,K=f?f+"Grid":"grid",O=g[K+"LineWidth"],R=g[K+"LineColor"],z=g[K+"LineDashStyle"],K=l(g[c+"Width"],!f&&e.isXAxis?1:0),c=g[c+"Color"];m=l(m,1);this.isActive=!0;E||(p.stroke= +R,p["stroke-width"]=O,z&&(p.dashstyle=z),f||(p.zIndex=1),k&&(p.opacity=0),this.gridLine=E=h.path().attr(p).addClass("highcharts-"+(f?f+"-":"")+"grid-line").add(e.gridGroup));if(!k&&E&&(b=e.getPlotLinePath(b+u,E.strokeWidth()*v,k,!0)))E[this.isNew?"attr":"animate"]({d:b,opacity:m});F&&(e.opposite&&(F[0]=-F[0]),A&&(this.mark=n=h.path().addClass("highcharts-"+(f?f+"-":"")+"tick").add(e.axisGroup),n.attr({stroke:c,"stroke-width":K})),n[A?"attr":"animate"]({d:this.getMarkPath(M,I,F[0],n.strokeWidth()* +v,C,h),opacity:m}));d&&H(M)&&(d.xy=I=this.getLabelPosition(M,I,d,C,q,u,a,x),this.isFirst&&!this.isLast&&!l(g.showFirstLabel,1)||this.isLast&&!this.isFirst&&!l(g.showLastLabel,1)?y=!1:!C||e.isRadial||q.step||q.rotation||k||0===m||this.handleOverflow(I),x&&a%x&&(y=!1),y&&H(I.y)?(I.opacity=m,d[this.isNew?"attr":"animate"](I)):(r(d),d.attr("y",-9999)),this.isNew=!1)},destroy:function(){G(this,this.axis)}}})(N);(function(a){var D=a.addEvent,B=a.animObject,G=a.arrayMax,H=a.arrayMin,p=a.AxisPlotLineOrBandExtension, +l=a.color,r=a.correctFloat,w=a.defaultOptions,t=a.defined,k=a.deg2rad,m=a.destroyObjectProperties,e=a.each,g=a.error,h=a.extend,C=a.fireEvent,f=a.format,d=a.getMagnitude,b=a.grep,q=a.inArray,E=a.isArray,c=a.isNumber,F=a.isString,n=a.merge,A=a.normalizeTickInterval,x=a.pick,J=a.PlotLineOrBand,y=a.removeEvent,u=a.splat,I=a.syncTimeout,M=a.Tick;a.Axis=function(){this.init.apply(this,arguments)};a.Axis.prototype={defaultOptions:{dateTimeLabelFormats:{millisecond:"%H:%M:%S.%L",second:"%H:%M:%S",minute:"%H:%M", +hour:"%H:%M",day:"%e. %b",week:"%e. %b",month:"%b '%y",year:"%Y"},endOnTick:!1,labels:{enabled:!0,style:{color:"#666666",cursor:"default",fontSize:"11px"},x:0},minPadding:.01,maxPadding:.01,minorTickLength:2,minorTickPosition:"outside",startOfWeek:1,startOnTick:!1,tickLength:10,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",title:{align:"middle",style:{color:"#666666"}},type:"linear",minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#ccd6eb", +lineWidth:1,gridLineColor:"#e6e6e6",tickColor:"#ccd6eb"},defaultYAxisOptions:{endOnTick:!0,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},maxPadding:.05,minPadding:.05,startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{enabled:!1,formatter:function(){return a.numberFormat(this.total,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"#000000",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},defaultLeftAxisOptions:{labels:{x:-15},title:{rotation:270}},defaultRightAxisOptions:{labels:{x:15}, +title:{rotation:90}},defaultBottomAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},defaultTopAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},init:function(a,c){var b=c.isX;this.chart=a;this.horiz=a.inverted?!b:b;this.isXAxis=b;this.coll=this.coll||(b?"xAxis":"yAxis");this.opposite=c.opposite;this.side=c.side||(this.horiz?this.opposite?0:2:this.opposite?1:3);this.setOptions(c);var d=this.options,v=d.type;this.labelFormatter=d.labels.formatter||this.defaultLabelFormatter; +this.userOptions=c;this.minPixelPadding=0;this.reversed=d.reversed;this.visible=!1!==d.visible;this.zoomEnabled=!1!==d.zoomEnabled;this.hasNames="category"===v||!0===d.categories;this.categories=d.categories||this.hasNames;this.names=this.names||[];this.isLog="logarithmic"===v;this.isDatetimeAxis="datetime"===v;this.isLinked=t(d.linkedTo);this.ticks={};this.labelEdge=[];this.minorTicks={};this.plotLinesAndBands=[];this.alternateBands={};this.len=0;this.minRange=this.userMinRange=d.minRange||d.maxZoom; +this.range=d.range;this.offset=d.offset||0;this.stacks={};this.oldStacks={};this.stacksTouched=0;this.min=this.max=null;this.crosshair=x(d.crosshair,u(a.options.tooltip.crosshairs)[b?0:1],!1);var f;c=this.options.events;-1===q(this,a.axes)&&(b?a.axes.splice(a.xAxis.length,0,this):a.axes.push(this),a[this.coll].push(this));this.series=this.series||[];a.inverted&&b&&void 0===this.reversed&&(this.reversed=!0);this.removePlotLine=this.removePlotBand=this.removePlotBandOrLine;for(f in c)D(this,f,c[f]); +this.isLog&&(this.val2lin=this.log2lin,this.lin2val=this.lin2log)},setOptions:function(a){this.options=n(this.defaultOptions,"yAxis"===this.coll&&this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],n(w[this.coll],a))},defaultLabelFormatter:function(){var c=this.axis,b=this.value,d=c.categories,e=this.dateTimeLabelFormat,q=w.lang,u=q.numericSymbols,q=q.numericSymbolMagnitude||1E3,n=u&&u.length,g,y=c.options.labels.format, +c=c.isLog?b:c.tickInterval;if(y)g=f(y,this);else if(d)g=b;else if(e)g=a.dateFormat(e,b);else if(n&&1E3<=c)for(;n--&&void 0===g;)d=Math.pow(q,n+1),c>=d&&0===10*b%d&&null!==u[n]&&0!==b&&(g=a.numberFormat(b/d,-1)+u[n]);void 0===g&&(g=1E4<=Math.abs(b)?a.numberFormat(b,-1):a.numberFormat(b,-1,void 0,""));return g},getSeriesExtremes:function(){var a=this,d=a.chart;a.hasVisibleSeries=!1;a.dataMin=a.dataMax=a.threshold=null;a.softThreshold=!a.isXAxis;a.buildStacks&&a.buildStacks();e(a.series,function(v){if(v.visible|| +!d.options.chart.ignoreHiddenSeries){var f=v.options,e=f.threshold,q;a.hasVisibleSeries=!0;a.isLog&&0>=e&&(e=null);if(a.isXAxis)f=v.xData,f.length&&(v=H(f),c(v)||v instanceof Date||(f=b(f,function(a){return c(a)}),v=H(f)),a.dataMin=Math.min(x(a.dataMin,f[0]),v),a.dataMax=Math.max(x(a.dataMax,f[0]),G(f)));else if(v.getExtremes(),q=v.dataMax,v=v.dataMin,t(v)&&t(q)&&(a.dataMin=Math.min(x(a.dataMin,v),v),a.dataMax=Math.max(x(a.dataMax,q),q)),t(e)&&(a.threshold=e),!f.softThreshold||a.isLog)a.softThreshold= +!1}})},translate:function(a,b,d,f,e,q){var v=this.linkedParent||this,u=1,n=0,g=f?v.oldTransA:v.transA;f=f?v.oldMin:v.min;var K=v.minPixelPadding;e=(v.isOrdinal||v.isBroken||v.isLog&&e)&&v.lin2val;g||(g=v.transA);d&&(u*=-1,n=v.len);v.reversed&&(u*=-1,n-=u*(v.sector||v.len));b?(a=(a*u+n-K)/g+f,e&&(a=v.lin2val(a))):(e&&(a=v.val2lin(a)),a=u*(a-f)*g+n+u*K+(c(q)?g*q:0));return a},toPixels:function(a,c){return this.translate(a,!1,!this.horiz,null,!0)+(c?0:this.pos)},toValue:function(a,c){return this.translate(a- +(c?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(a,b,d,f,e){var v=this.chart,q=this.left,u=this.top,n,g,K=d&&v.oldChartHeight||v.chartHeight,y=d&&v.oldChartWidth||v.chartWidth,z;n=this.transB;var h=function(a,c,b){if(ab)f?a=Math.min(Math.max(c,a),b):z=!0;return a};e=x(e,this.translate(a,null,null,d));a=d=Math.round(e+n);n=g=Math.round(K-e-n);c(e)?this.horiz?(n=u,g=K-this.bottom,a=d=h(a,q,q+this.width)):(a=q,d=y-this.right,n=g=h(n,u,u+this.height)):z=!0;return z&&!f?null:v.renderer.crispLine(["M", +a,n,"L",d,g],b||1)},getLinearTickPositions:function(a,b,d){var v,f=r(Math.floor(b/a)*a),e=r(Math.ceil(d/a)*a),q=[];if(b===d&&c(b))return[b];for(b=f;b<=e;){q.push(b);b=r(b+a);if(b===v)break;v=b}return q},getMinorTickPositions:function(){var a=this.options,c=this.tickPositions,b=this.minorTickInterval,d=[],f,e=this.pointRangePadding||0;f=this.min-e;var e=this.max+e,q=e-f;if(q&&q/b=this.minRange,q,u,n,g,y,h;this.isXAxis&&void 0===this.minRange&&!this.isLog&&(t(a.min)||t(a.max)?this.minRange=null:(e(this.series,function(a){g=a.xData;for(u=y=a.xIncrement? +1:g.length-1;0=E?(p=E,m=0):b.dataMax<=E&&(J=E,I=0)),b.min=x(w,p,b.dataMin),b.max=x(B,J,b.dataMax));q&&(!a&&0>=Math.min(b.min, +x(b.dataMin,b.min))&&g(10,1),b.min=r(u(b.min),15),b.max=r(u(b.max),15));b.range&&t(b.max)&&(b.userMin=b.min=w=Math.max(b.min,b.minFromRange()),b.userMax=B=b.max,b.range=null);C(b,"foundExtremes");b.beforePadding&&b.beforePadding();b.adjustForMinRange();!(l||b.axisPointRange||b.usePercentage||h)&&t(b.min)&&t(b.max)&&(u=b.max-b.min)&&(!t(w)&&m&&(b.min-=u*m),!t(B)&&I&&(b.max+=u*I));c(f.floor)?b.min=Math.max(b.min,f.floor):c(f.softMin)&&(b.min=Math.min(b.min,f.softMin));c(f.ceiling)?b.max=Math.min(b.max, +f.ceiling):c(f.softMax)&&(b.max=Math.max(b.max,f.softMax));M&&t(b.dataMin)&&(E=E||0,!t(w)&&b.min=E?b.min=E:!t(B)&&b.max>E&&b.dataMax<=E&&(b.max=E));b.tickInterval=b.min===b.max||void 0===b.min||void 0===b.max?1:h&&!k&&F===b.linkedParent.options.tickPixelInterval?k=b.linkedParent.tickInterval:x(k,this.tickAmount?(b.max-b.min)/Math.max(this.tickAmount-1,1):void 0,l?1:(b.max-b.min)*F/Math.max(b.len,F));y&&!a&&e(b.series,function(a){a.processData(b.min!==b.oldMin||b.max!==b.oldMax)});b.setAxisTranslation(!0); +b.beforeSetTickPositions&&b.beforeSetTickPositions();b.postProcessTickInterval&&(b.tickInterval=b.postProcessTickInterval(b.tickInterval));b.pointRange&&!k&&(b.tickInterval=Math.max(b.pointRange,b.tickInterval));a=x(f.minTickInterval,b.isDatetimeAxis&&b.closestPointRange);!k&&b.tickIntervalb.tickInterval&&1E3b.max)),!!this.tickAmount));this.tickAmount||(b.tickInterval= +b.unsquish());this.setTickPositions()},setTickPositions:function(){var a=this.options,b,c=a.tickPositions,d=a.tickPositioner,f=a.startOnTick,e=a.endOnTick,q;this.tickmarkOffset=this.categories&&"between"===a.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval="auto"===a.minorTickInterval&&this.tickInterval?this.tickInterval/5:a.minorTickInterval;this.tickPositions=b=c&&c.slice();!b&&(b=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,a.units), +this.min,this.max,a.startOfWeek,this.ordinalPositions,this.closestPointRange,!0):this.isLog?this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max),b.length>this.len&&(b=[b[0],b.pop()]),this.tickPositions=b,d&&(d=d.apply(this,[this.min,this.max])))&&(this.tickPositions=b=d);this.isLinked||(this.trimTicks(b,f,e),this.min===this.max&&t(this.min)&&!this.tickAmount&&(q=!0,this.min-=.5,this.max+=.5),this.single=q,c||d||this.adjustTickAmount())}, +trimTicks:function(a,b,c){var d=a[0],f=a[a.length-1],v=this.minPointOffset||0;if(b)this.min=d;else for(;this.min-v>a[0];)a.shift();if(c)this.max=f;else for(;this.max+vb&&(this.finalTickAmt=b,b=5);this.tickAmount=b},adjustTickAmount:function(){var a=this.tickInterval,b=this.tickPositions,c=this.tickAmount,d=this.finalTickAmt,f=b&&b.length;if(fc&&(this.tickInterval*= +2,this.setTickPositions());if(t(d)){for(a=c=b.length;a--;)(3===d&&1===a%2||2>=d&&0=f&&(b=f)),this.displayBtn=void 0!==a||void 0!==b,this.setExtremes(a,b,!1,void 0,{trigger:"zoom"});return!0},setAxisSize:function(){var a=this.chart,b=this.options,c=b.offsetLeft||0,d=this.horiz,f=x(b.width,a.plotWidth-c+(b.offsetRight||0)),e=x(b.height,a.plotHeight),q=x(b.top,a.plotTop),b=x(b.left,a.plotLeft+c),c=/%$/;c.test(e)&&(e=Math.round(parseFloat(e)/ +100*a.plotHeight));c.test(q)&&(q=Math.round(parseFloat(q)/100*a.plotHeight+a.plotTop));this.left=b;this.top=q;this.width=f;this.height=e;this.bottom=a.chartHeight-e-q;this.right=a.chartWidth-f-b;this.len=Math.max(d?f:e,0);this.pos=d?b:q},getExtremes:function(){var a=this.isLog,b=this.lin2log;return{min:a?r(b(this.min)):this.min,max:a?r(b(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var b=this.isLog,c=this.lin2log, +d=b?c(this.min):this.min,b=b?c(this.max):this.max;null===a?a=d:d>a?a=d:ba?"right":195a?"left":"center"},tickSize:function(a){var b=this.options,c=b[a+"Length"],d=x(b[a+"Width"],"tick"===a&&this.isXAxis?1:0);if(d&&c)return"inside"===b[a+"Position"]&&(c=-c),[c,d]},labelMetrics:function(){return this.chart.renderer.fontMetrics(this.options.labels.style&&this.options.labels.style.fontSize, +this.ticks[0]&&this.ticks[0].label)},unsquish:function(){var a=this.options.labels,b=this.horiz,c=this.tickInterval,d=c,f=this.len/(((this.categories?1:0)+this.max-this.min)/c),q,u=a.rotation,n=this.labelMetrics(),g,y=Number.MAX_VALUE,h,I=function(a){a/=f||1;a=1=a)g=I(Math.abs(n.h/Math.sin(k*a))),b=g+Math.abs(a/360),b(c.step||0)&&!c.rotation&&(this.staggerLines||1)*a.plotWidth/d||!b&&(f&&f-a.spacing[3]||.33*a.chartWidth)},renderUnsquish:function(){var a=this.chart,b=a.renderer,c=this.tickPositions,d=this.ticks,f=this.options.labels,q=this.horiz,u=this.getSlotWidth(),g=Math.max(1, +Math.round(u-2*(f.padding||5))),y={},h=this.labelMetrics(),I=f.style&&f.style.textOverflow,A,x=0,m,k;F(f.rotation)||(y.rotation=f.rotation||0);e(c,function(a){(a=d[a])&&a.labelLength>x&&(x=a.labelLength)});this.maxLabelLength=x;if(this.autoRotation)x>g&&x>h.h?y.rotation=this.labelRotation:this.labelRotation=0;else if(u&&(A={width:g+"px"},!I))for(A.textOverflow="clip",m=c.length;!q&&m--;)if(k=c[m],g=d[k].label)g.styles&&"ellipsis"===g.styles.textOverflow?g.css({textOverflow:"clip"}):d[k].labelLength> +u&&g.css({width:u+"px"}),g.getBBox().height>this.len/c.length-(h.h-h.f)&&(g.specCss={textOverflow:"ellipsis"});y.rotation&&(A={width:(x>.5*a.chartHeight?.33*a.chartHeight:a.chartHeight)+"px"},I||(A.textOverflow="ellipsis"));if(this.labelAlign=f.align||this.autoLabelAlign(this.labelRotation))y.align=this.labelAlign;e(c,function(a){var b=(a=d[a])&&a.label;b&&(b.attr(y),A&&b.css(n(A,b.specCss)),delete b.specCss,a.rotation=y.rotation)});this.tickRotCorr=b.rotCorr(h.b,this.labelRotation||0,0!==this.side)}, +hasData:function(){return this.hasVisibleSeries||t(this.min)&&t(this.max)&&!!this.tickPositions},getOffset:function(){var a=this,b=a.chart,c=b.renderer,d=a.options,f=a.tickPositions,q=a.ticks,u=a.horiz,n=a.side,g=b.inverted?[1,0,3,2][n]:n,y,h,I=0,A,m=0,k=d.title,F=d.labels,E=0,l=a.opposite,C=b.axisOffset,b=b.clipOffset,p=[-1,1,1,-1][n],r,J=d.className,w=a.axisParent,B=this.tickSize("tick");y=a.hasData();a.showAxis=h=y||x(d.showEmpty,!0);a.staggerLines=a.horiz&&F.staggerLines;a.axisGroup||(a.gridGroup= +c.g("grid").attr({zIndex:d.gridZIndex||1}).addClass("highcharts-"+this.coll.toLowerCase()+"-grid "+(J||"")).add(w),a.axisGroup=c.g("axis").attr({zIndex:d.zIndex||2}).addClass("highcharts-"+this.coll.toLowerCase()+" "+(J||"")).add(w),a.labelGroup=c.g("axis-labels").attr({zIndex:F.zIndex||7}).addClass("highcharts-"+a.coll.toLowerCase()+"-labels "+(J||"")).add(w));if(y||a.isLinked)e(f,function(b){q[b]?q[b].addLabel():q[b]=new M(a,b)}),a.renderUnsquish(),!1===F.reserveSpace||0!==n&&2!==n&&{1:"left",3:"right"}[n]!== +a.labelAlign&&"center"!==a.labelAlign||e(f,function(a){E=Math.max(q[a].getLabelSize(),E)}),a.staggerLines&&(E*=a.staggerLines,a.labelOffset=E*(a.opposite?-1:1));else for(r in q)q[r].destroy(),delete q[r];k&&k.text&&!1!==k.enabled&&(a.axisTitle||((r=k.textAlign)||(r=(u?{low:"left",middle:"center",high:"right"}:{low:l?"right":"left",middle:"center",high:l?"left":"right"})[k.align]),a.axisTitle=c.text(k.text,0,0,k.useHTML).attr({zIndex:7,rotation:k.rotation||0,align:r}).addClass("highcharts-axis-title").css(k.style).add(a.axisGroup), +a.axisTitle.isNew=!0),h&&(I=a.axisTitle.getBBox()[u?"height":"width"],A=k.offset,m=t(A)?0:x(k.margin,u?5:10)),a.axisTitle[h?"show":"hide"](!0));a.renderLine();a.offset=p*x(d.offset,C[n]);a.tickRotCorr=a.tickRotCorr||{x:0,y:0};c=0===n?-a.labelMetrics().h:2===n?a.tickRotCorr.y:0;m=Math.abs(E)+m;E&&(m=m-c+p*(u?x(F.y,a.tickRotCorr.y+8*p):F.x));a.axisTitleMargin=x(A,m);C[n]=Math.max(C[n],a.axisTitleMargin+I+p*a.offset,m,y&&f.length&&B?B[0]:0);d=d.offset?0:2*Math.floor(a.axisLine.strokeWidth()/2);b[g]= +Math.max(b[g],d)},getLinePath:function(a){var b=this.chart,c=this.opposite,d=this.offset,f=this.horiz,e=this.left+(c?this.width:0)+d,d=b.chartHeight-this.bottom-(c?this.height:0)+d;c&&(a*=-1);return b.renderer.crispLine(["M",f?this.left:e,f?d:this.top,"L",f?b.chartWidth-this.right:e,f?d:b.chartHeight-this.bottom],a)},renderLine:function(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.axisLine.attr({stroke:this.options.lineColor, +"stroke-width":this.options.lineWidth,zIndex:7}))},getTitlePosition:function(){var a=this.horiz,b=this.left,c=this.top,d=this.len,f=this.options.title,e=a?b:c,q=this.opposite,u=this.offset,n=f.x||0,g=f.y||0,y=this.chart.renderer.fontMetrics(f.style&&f.style.fontSize,this.axisTitle).f,d={low:e+(a?0:d),middle:e+d/2,high:e+(a?d:0)}[f.align],b=(a?c+this.height:b)+(a?1:-1)*(q?-1:1)*this.axisTitleMargin+(2===this.side?y:0);return{x:a?d+n:b+(q?this.width:0)+u+n,y:a?b+g-(q?this.height:0)+u:d+g}},render:function(){var a= +this,b=a.chart,d=b.renderer,f=a.options,q=a.isLog,u=a.lin2log,n=a.isLinked,g=a.tickPositions,y=a.axisTitle,h=a.ticks,A=a.minorTicks,x=a.alternateBands,m=f.stackLabels,k=f.alternateGridColor,F=a.tickmarkOffset,E=a.axisLine,l=b.hasRendered&&c(a.oldMin),C=a.showAxis,p=B(d.globalAnimation),r,t;a.labelEdge.length=0;a.overlap=!1;e([h,A,x],function(a){for(var b in a)a[b].isActive=!1});if(a.hasData()||n)a.minorTickInterval&&!a.categories&&e(a.getMinorTickPositions(),function(b){A[b]||(A[b]=new M(a,b,"minor")); +l&&A[b].isNew&&A[b].render(null,!0);A[b].render(null,!1,1)}),g.length&&(e(g,function(b,c){if(!n||b>=a.min&&b<=a.max)h[b]||(h[b]=new M(a,b)),l&&h[b].isNew&&h[b].render(c,!0,.1),h[b].render(c)}),F&&(0===a.min||a.single)&&(h[-1]||(h[-1]=new M(a,-1,null,!0)),h[-1].render(-1))),k&&e(g,function(c,d){t=void 0!==g[d+1]?g[d+1]+F:a.max-F;0===d%2&&c=e.second?0:A*Math.floor(c.getMilliseconds()/A));if(n>=e.second)c[B.hcSetSeconds](n>=e.minute?0:A*Math.floor(c.getSeconds()/ +A));if(n>=e.minute)c[B.hcSetMinutes](n>=e.hour?0:A*Math.floor(c[B.hcGetMinutes]()/A));if(n>=e.hour)c[B.hcSetHours](n>=e.day?0:A*Math.floor(c[B.hcGetHours]()/A));if(n>=e.day)c[B.hcSetDate](n>=e.month?1:A*Math.floor(c[B.hcGetDate]()/A));n>=e.month&&(c[B.hcSetMonth](n>=e.year?0:A*Math.floor(c[B.hcGetMonth]()/A)),g=c[B.hcGetFullYear]());if(n>=e.year)c[B.hcSetFullYear](g-g%A);if(n===e.week)c[B.hcSetDate](c[B.hcGetDate]()-c[B.hcGetDay]()+m(f,1));g=c[B.hcGetFullYear]();f=c[B.hcGetMonth]();var C=c[B.hcGetDate](), +y=c[B.hcGetHours]();if(B.hcTimezoneOffset||B.hcGetTimezoneOffset)x=(!q||!!B.hcGetTimezoneOffset)&&(k-h>4*e.month||t(h)!==t(k)),c=c.getTime(),c=new B(c+t(c));q=c.getTime();for(h=1;qr&&(!t||b<=w)&&void 0!==b&&h.push(b),b>w&&(q=!0),b=d;else r=e(r),w= +e(w),a=k[t?"minorTickInterval":"tickInterval"],a=p("auto"===a?null:a,this._minorAutoInterval,k.tickPixelInterval/(t?5:1)*(w-r)/((t?m/this.tickPositions.length:m)||1)),a=H(a,null,B(a)),h=G(this.getLinearTickPositions(a,r,w),g),t||(this._minorAutoInterval=a/5);t||(this.tickInterval=a);return h};D.prototype.log2lin=function(a){return Math.log(a)/Math.LN10};D.prototype.lin2log=function(a){return Math.pow(10,a)}})(N);(function(a){var D=a.dateFormat,B=a.each,G=a.extend,H=a.format,p=a.isNumber,l=a.map,r= +a.merge,w=a.pick,t=a.splat,k=a.stop,m=a.syncTimeout,e=a.timeUnits;a.Tooltip=function(){this.init.apply(this,arguments)};a.Tooltip.prototype={init:function(a,e){this.chart=a;this.options=e;this.crosshairs=[];this.now={x:0,y:0};this.isHidden=!0;this.split=e.split&&!a.inverted;this.shared=e.shared||this.split},cleanSplit:function(a){B(this.chart.series,function(e){var g=e&&e.tt;g&&(!g.isActive||a?e.tt=g.destroy():g.isActive=!1)})},getLabel:function(){var a=this.chart.renderer,e=this.options;this.label|| +(this.split?this.label=a.g("tooltip"):(this.label=a.label("",0,0,e.shape||"callout",null,null,e.useHTML,null,"tooltip").attr({padding:e.padding,r:e.borderRadius}),this.label.attr({fill:e.backgroundColor,"stroke-width":e.borderWidth}).css(e.style).shadow(e.shadow)),this.label.attr({zIndex:8}).add());return this.label},update:function(a){this.destroy();this.init(this.chart,r(!0,this.options,a))},destroy:function(){this.label&&(this.label=this.label.destroy());this.split&&this.tt&&(this.cleanSplit(this.chart, +!0),this.tt=this.tt.destroy());clearTimeout(this.hideTimer);clearTimeout(this.tooltipTimeout)},move:function(a,e,m,f){var d=this,b=d.now,q=!1!==d.options.animation&&!d.isHidden&&(1h-q?h:h-q);else if(v)b[a]=Math.max(g,e+q+f>c?e:e+q);else return!1},x=function(a,c,f,e){var q;ec-d?q=!1:b[a]=ec-f/2?c-f-2:e-f/2;return q},k=function(a){var b=c;c=h;h=b;g=a},y=function(){!1!==A.apply(0,c)?!1!==x.apply(0,h)||g||(k(!0),y()):g?b.x=b.y=0:(k(!0),y())};(f.inverted||1y&&(q=!1);a=(e.series&&e.series.yAxis&&e.series.yAxis.pos)+(e.plotY||0);a-=d.plotTop;f.push({target:e.isHeader?d.plotHeight+c:a,rank:e.isHeader?1:0,size:n.tt.getBBox().height+1,point:e,x:y,tt:A})});this.cleanSplit(); +a.distribute(f,d.plotHeight+c);B(f,function(a){var b=a.point;a.tt.attr({visibility:void 0===a.pos?"hidden":"inherit",x:q||b.isHeader?a.x:b.plotX+d.plotLeft+w(m.distance,16),y:a.pos+d.plotTop,anchorX:b.plotX+d.plotLeft,anchorY:b.isHeader?a.pos+d.plotTop-15:b.plotY+d.plotTop})})},updatePosition:function(a){var e=this.chart,g=this.getLabel(),g=(this.options.positioner||this.getPosition).call(this,g.width,g.height,a);this.move(Math.round(g.x),Math.round(g.y||0),a.plotX+e.plotLeft,a.plotY+e.plotTop)}, +getXDateFormat:function(a,h,m){var f;h=h.dateTimeLabelFormats;var d=m&&m.closestPointRange,b,q={millisecond:15,second:12,minute:9,hour:6,day:3},g,c="millisecond";if(d){g=D("%m-%d %H:%M:%S.%L",a.x);for(b in e){if(d===e.week&&+D("%w",a.x)===m.options.startOfWeek&&"00:00:00.000"===g.substr(6)){b="week";break}if(e[b]>d){b=c;break}if(q[b]&&g.substr(q[b])!=="01-01 00:00:00.000".substr(q[b]))break;"week"!==b&&(c=b)}b&&(f=h[b])}else f=h.day;return f||h.year},tooltipFooterHeaderFormatter:function(a,e){var g= +e?"footer":"header";e=a.series;var f=e.tooltipOptions,d=f.xDateFormat,b=e.xAxis,q=b&&"datetime"===b.options.type&&p(a.key),g=f[g+"Format"];q&&!d&&(d=this.getXDateFormat(a,f,b));q&&d&&(g=g.replace("{point.key}","{point.key:"+d+"}"));return H(g,{point:a,series:e})},bodyFormatter:function(a){return l(a,function(a){var e=a.series.tooltipOptions;return(e.pointFormatter||a.point.tooltipFormatter).call(a.point,e.pointFormat)})}}})(N);(function(a){var D=a.addEvent,B=a.attr,G=a.charts,H=a.color,p=a.css,l= +a.defined,r=a.doc,w=a.each,t=a.extend,k=a.fireEvent,m=a.offset,e=a.pick,g=a.removeEvent,h=a.splat,C=a.Tooltip,f=a.win;a.Pointer=function(a,b){this.init(a,b)};a.Pointer.prototype={init:function(a,b){this.options=b;this.chart=a;this.runChartClick=b.chart.events&&!!b.chart.events.click;this.pinchDown=[];this.lastValidTouch={};C&&b.tooltip.enabled&&(a.tooltip=new C(a,b.tooltip),this.followTouchMove=e(b.tooltip.followTouchMove,!0));this.setDOMEvents()},zoomOption:function(a){var b=this.chart,d=b.options.chart, +f=d.zoomType||"",b=b.inverted;/touch/.test(a.type)&&(f=e(d.pinchType,f));this.zoomX=a=/x/.test(f);this.zoomY=f=/y/.test(f);this.zoomHor=a&&!b||f&&b;this.zoomVert=f&&!b||a&&b;this.hasZoom=a||f},normalize:function(a,b){var d,e;a=a||f.event;a.target||(a.target=a.srcElement);e=a.touches?a.touches.length?a.touches.item(0):a.changedTouches[0]:a;b||(this.chartPosition=b=m(this.chart.container));void 0===e.pageX?(d=Math.max(a.x,a.clientX-b.left),b=a.y):(d=e.pageX-b.left,b=e.pageY-b.top);return t(a,{chartX:Math.round(d), +chartY:Math.round(b)})},getCoordinates:function(a){var b={xAxis:[],yAxis:[]};w(this.chart.axes,function(d){b[d.isXAxis?"xAxis":"yAxis"].push({axis:d,value:d.toValue(a[d.horiz?"chartX":"chartY"])})});return b},runPointActions:function(d){var b=this.chart,f=b.series,g=b.tooltip,c=g?g.shared:!1,h=!0,n=b.hoverPoint,m=b.hoverSeries,x,k,y,u=[],I;if(!c&&!m)for(x=0;xb.series.index?-1:1}));if(c)for(x=u.length;x--;)(u[x].x!==u[0].x||u[x].series.noSharedTooltip)&&u.splice(x,1);if(u[0]&&(u[0]!==this.prevKDPoint||g&&g.isHidden)){if(c&& +!u[0].series.noSharedTooltip){for(x=0;xh+k&&(f=h+k),cm+y&&(c=m+y),this.hasDragged=Math.sqrt(Math.pow(l-f,2)+Math.pow(v-c,2)),10x.max&&(l=x.max-c,v=!0);v?(u-=.8*(u-g[f][0]),J||(M-=.8*(M-g[f][1])),p()):g[f]=[u,M];A||(e[f]=F-E,e[q]=c);e=A?1/n:n;m[q]=c;m[f]=l;k[A?a?"scaleY":"scaleX":"scale"+d]=n;k["translate"+d]=e* +E+(u-e*y)},pinch:function(a){var r=this,t=r.chart,k=r.pinchDown,m=a.touches,e=m.length,g=r.lastValidTouch,h=r.hasZoom,C=r.selectionMarker,f={},d=1===e&&(r.inClass(a.target,"highcharts-tracker")&&t.runTrackerClick||r.runChartClick),b={};1b-6&&n(u||d.chartWidth- +2*x-v-e.x)&&(this.itemX=v,this.itemY+=p+this.lastLineHeight+I,this.lastLineHeight=0);this.maxItemWidth=Math.max(this.maxItemWidth,c);this.lastItemY=p+this.itemY+I;this.lastLineHeight=Math.max(g,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];f?this.itemX+=c:(this.itemY+=p+g+I,this.lastLineHeight=g);this.offsetWidth=u||Math.max((f?this.itemX-v-l:c)+x,this.offsetWidth)},getAllItems:function(){var a=[];l(this.chart.series,function(d){var b=d&&d.options;d&&m(b.showInLegend,p(b.linkedTo)? +!1:void 0,!0)&&(a=a.concat(d.legendItems||("point"===b.legendType?d.data:d)))});return a},adjustMargins:function(a,d){var b=this.chart,e=this.options,f=e.align.charAt(0)+e.verticalAlign.charAt(0)+e.layout.charAt(0);e.floating||l([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(c,g){c.test(f)&&!p(a[g])&&(b[t[g]]=Math.max(b[t[g]],b.legend[(g+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][g]*e[g%2?"x":"y"]+m(e.margin,12)+d[g]))})},render:function(){var a=this,d=a.chart,b=d.renderer, +e=a.group,h,c,m,n,k=a.box,x=a.options,p=a.padding;a.itemX=a.initialItemX;a.itemY=a.initialItemY;a.offsetWidth=0;a.lastItemY=0;e||(a.group=e=b.g("legend").attr({zIndex:7}).add(),a.contentGroup=b.g().attr({zIndex:1}).add(e),a.scrollGroup=b.g().add(a.contentGroup));a.renderTitle();h=a.getAllItems();g(h,function(a,b){return(a.options&&a.options.legendIndex||0)-(b.options&&b.options.legendIndex||0)});x.reversed&&h.reverse();a.allItems=h;a.display=c=!!h.length;a.lastLineHeight=0;l(h,function(b){a.renderItem(b)}); +m=(x.width||a.offsetWidth)+p;n=a.lastItemY+a.lastLineHeight+a.titleHeight;n=a.handleOverflow(n);n+=p;k||(a.box=k=b.rect().addClass("highcharts-legend-box").attr({r:x.borderRadius}).add(e),k.isNew=!0);k.attr({stroke:x.borderColor,"stroke-width":x.borderWidth||0,fill:x.backgroundColor||"none"}).shadow(x.shadow);0b&&!1!==h.enabled?(this.clipHeight=g=Math.max(b-20-this.titleHeight-I,0),this.currentPage=m(this.currentPage,1),this.fullHeight=a,l(v,function(a,b){var c=a._legendItemPos[1];a=Math.round(a.legendItem.getBBox().height);var d=u.length;if(!d||c-u[d-1]>g&&(r||c)!==u[d-1])u.push(r||c),d++;b===v.length-1&&c+a-u[d-1]>g&&u.push(c);c!==r&&(r=c)}),n||(n=d.clipRect= +e.clipRect(0,I,9999,0),d.contentGroup.clip(n)),t(g),y||(this.nav=y=e.g().attr({zIndex:1}).add(this.group),this.up=e.symbol("triangle",0,0,p,p).on("click",function(){d.scroll(-1,k)}).add(y),this.pager=e.text("",15,10).addClass("highcharts-legend-navigation").css(h.style).add(y),this.down=e.symbol("triangle-down",0,0,p,p).on("click",function(){d.scroll(1,k)}).add(y)),d.scroll(0),a=b):y&&(t(),y.hide(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0);return a},scroll:function(a,d){var b=this.pages, +f=b.length;a=this.currentPage+a;var g=this.clipHeight,c=this.options.navigation,h=this.pager,n=this.padding;a>f&&(a=f);0f&&(g=typeof a[0],"string"===g?e.name=a[0]:"number"===g&&(e.x=a[0]),d++);b=h.value;)h=e[++g];h&&h.color&&!this.options.color&&(this.color=h.color);return h},destroy:function(){var a=this.series.chart,e=a.hoverPoints,g;a.pointCount--;e&&(this.setState(),H(e,this),e.length||(a.hoverPoints=null));if(this===a.hoverPoint)this.onMouseOut();if(this.graphic||this.dataLabel)k(this), +this.destroyElements();this.legendItem&&a.legend.destroyItem(this);for(g in this)this[g]=null},destroyElements:function(){for(var a=["graphic","dataLabel","dataLabelUpper","connector","shadowGroup"],e,g=6;g--;)e=a[g],this[e]&&(this[e]=this[e].destroy())},getLabelConfig:function(){return{x:this.category,y:this.y,color:this.color,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},tooltipFormatter:function(a){var e=this.series,g= +e.tooltipOptions,h=t(g.valueDecimals,""),k=g.valuePrefix||"",f=g.valueSuffix||"";B(e.pointArrayMap||["y"],function(d){d="{point."+d;if(k||f)a=a.replace(d+"}",k+d+"}"+f);a=a.replace(d+"}",d+":,."+h+"f}")});return l(a,{point:this,series:this.series})},firePointEvent:function(a,e,g){var h=this,k=this.series.options;(k.point.events[a]||h.options&&h.options.events&&h.options.events[a])&&this.importEvents();"click"===a&&k.allowPointSelect&&(g=function(a){h.select&&h.select(null,a.ctrlKey||a.metaKey||a.shiftKey)}); +p(this,a,e,g)},visible:!0}})(N);(function(a){var D=a.addEvent,B=a.animObject,G=a.arrayMax,H=a.arrayMin,p=a.correctFloat,l=a.Date,r=a.defaultOptions,w=a.defaultPlotOptions,t=a.defined,k=a.each,m=a.erase,e=a.error,g=a.extend,h=a.fireEvent,C=a.grep,f=a.isArray,d=a.isNumber,b=a.isString,q=a.merge,E=a.pick,c=a.removeEvent,F=a.splat,n=a.stableSort,A=a.SVGElement,x=a.syncTimeout,J=a.win;a.Series=a.seriesType("line",null,{lineWidth:2,allowPointSelect:!1,showCheckbox:!1,animation:{duration:1E3},events:{}, +marker:{lineWidth:0,lineColor:"#ffffff",radius:4,states:{hover:{animation:{duration:50},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{align:"center",formatter:function(){return null===this.y?"":a.numberFormat(this.y,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0,padding:5},cropThreshold:300,pointRange:0,softThreshold:!0,states:{hover:{lineWidthPlus:1, +marker:{},halo:{size:10,opacity:.25}},select:{marker:{}}},stickyTracking:!0,turboThreshold:1E3},{isCartesian:!0,pointClass:a.Point,sorted:!0,requireSorting:!0,directTouch:!1,axisTypes:["xAxis","yAxis"],colorCounter:0,parallelArrays:["x","y"],coll:"series",init:function(a,b){var c=this,d,e,f=a.series,u,y=function(a,b){return E(a.options.index,a._i)-E(b.options.index,b._i)};c.chart=a;c.options=b=c.setOptions(b);c.linkedSeries=[];c.bindAxes();g(c,{name:b.name,state:"",visible:!1!==b.visible,selected:!0=== +b.selected});e=b.events;for(d in e)D(c,d,e[d]);if(e&&e.click||b.point&&b.point.events&&b.point.events.click||b.allowPointSelect)a.runTrackerClick=!0;c.getColor();c.getSymbol();k(c.parallelArrays,function(a){c[a+"Data"]=[]});c.setData(b.data,!1);c.isCartesian&&(a.hasCartesianSeries=!0);f.length&&(u=f[f.length-1]);c._i=E(u&&u._i,-1)+1;f.push(c);n(f,y);this.yAxis&&n(this.yAxis.series,y);k(f,function(a,b){a.index=b;a.name=a.name||"Series "+(b+1)})},bindAxes:function(){var a=this,b=a.options,c=a.chart, +d;k(a.axisTypes||[],function(f){k(c[f],function(c){d=c.options;if(b[f]===d.index||void 0!==b[f]&&b[f]===d.id||void 0===b[f]&&0===d.index)c.series.push(a),a[f]=c,c.isDirty=!0});a[f]||a.optionalAxis===f||e(18,!0)})},updateParallelArrays:function(a,b){var c=a.series,e=arguments,f=d(b)?function(d){var e="y"===d&&c.toYData?c.toYData(a):a[d];c[d+"Data"][b]=e}:function(a){Array.prototype[b].apply(c[a+"Data"],Array.prototype.slice.call(e,2))};k(c.parallelArrays,f)},autoIncrement:function(){var a=this.options, +b=this.xIncrement,c,d=a.pointIntervalUnit,b=E(b,a.pointStart,0);this.pointInterval=c=E(this.pointInterval,a.pointInterval,1);d&&(a=new l(b),"day"===d?a=+a[l.hcSetDate](a[l.hcGetDate]()+c):"month"===d?a=+a[l.hcSetMonth](a[l.hcGetMonth]()+c):"year"===d&&(a=+a[l.hcSetFullYear](a[l.hcGetFullYear]()+c)),c=a-b);this.xIncrement=b+c;return b},setOptions:function(a){var b=this.chart,c=b.options.plotOptions,b=b.userOptions||{},d=b.plotOptions||{},e=c[this.type];this.userOptions=a;c=q(e,c.series,a);this.tooltipOptions= +q(r.tooltip,r.plotOptions[this.type].tooltip,b.tooltip,d.series&&d.series.tooltip,d[this.type]&&d[this.type].tooltip,a.tooltip);null===e.marker&&delete c.marker;this.zoneAxis=c.zoneAxis;a=this.zones=(c.zones||[]).slice();!c.negativeColor&&!c.negativeFillColor||c.zones||a.push({value:c[this.zoneAxis+"Threshold"]||c.threshold||0,className:"highcharts-negative",color:c.negativeColor,fillColor:c.negativeFillColor});a.length&&t(a[a.length-1].value)&&a.push({color:this.color,fillColor:this.fillColor}); +return c},getCyclic:function(a,b,c){var d,e=this.userOptions,f=a+"Index",g=a+"Counter",u=c?c.length:E(this.chart.options.chart[a+"Count"],this.chart[a+"Count"]);b||(d=E(e[f],e["_"+f]),t(d)||(e["_"+f]=d=this.chart[g]%u,this.chart[g]+=1),c&&(b=c[d]));void 0!==d&&(this[f]=d);this[a]=b},getColor:function(){this.options.colorByPoint?this.options.color=null:this.getCyclic("color",this.options.color||w[this.type].color,this.chart.options.colors)},getSymbol:function(){this.getCyclic("symbol",this.options.marker.symbol, +this.chart.options.symbols)},drawLegendSymbol:a.LegendSymbolMixin.drawLineMarker,setData:function(a,c,g,n){var u=this,q=u.points,h=q&&q.length||0,y,m=u.options,x=u.chart,A=null,I=u.xAxis,l=m.turboThreshold,p=this.xData,r=this.yData,F=(y=u.pointArrayMap)&&y.length;a=a||[];y=a.length;c=E(c,!0);if(!1!==n&&y&&h===y&&!u.cropped&&!u.hasGroupedData&&u.visible)k(a,function(a,b){q[b].update&&a!==m.data[b]&&q[b].update(a,!1,null,!1)});else{u.xIncrement=null;u.colorCounter=0;k(this.parallelArrays,function(a){u[a+ +"Data"].length=0});if(l&&y>l){for(g=0;null===A&&gh||this.forceCrop))if(b[d-1]l)b=[],c=[];else if(b[0]l)f=this.cropData(this.xData,this.yData,A,l),b=f.xData,c=f.yData,f=f.start,g=!0;for(h=b.length||1;--h;)d=x?y(b[h])-y(b[h-1]):b[h]-b[h-1],0d&&this.requireSorting&&e(15);this.cropped=g;this.cropStart=f;this.processedXData=b;this.processedYData=c;this.closestPointRange=n},cropData:function(a,b,c,d){var e=a.length,f=0,g=e,n=E(this.cropShoulder,1),u;for(u=0;u=c){f=Math.max(0,u- +n);break}for(c=u;cd){g=c+n;break}return{xData:a.slice(f,g),yData:b.slice(f,g),start:f,end:g}},generatePoints:function(){var a=this.options.data,b=this.data,c,d=this.processedXData,e=this.processedYData,f=this.pointClass,g=d.length,n=this.cropStart||0,q,h=this.hasGroupedData,k,m=[],x;b||h||(b=[],b.length=a.length,b=this.data=b);for(x=0;x=q&&(c[x-1]||k)<=h,y&&k)if(y=m.length)for(;y--;)null!==m[y]&&(g[n++]=m[y]);else g[n++]=m;this.dataMin=H(g);this.dataMax=G(g)},translate:function(){this.processedXData||this.processData();this.generatePoints();var a=this.options,b=a.stacking,c=this.xAxis,e=c.categories,f=this.yAxis,g=this.points,n=g.length,q=!!this.modifyValue,h=a.pointPlacement,k="between"===h||d(h),m=a.threshold,x=a.startFromThreshold?m:0,A,l,r,F,J=Number.MAX_VALUE;"between"===h&&(h=.5);d(h)&&(h*=E(a.pointRange||c.pointRange)); +for(a=0;a=B&&(C.isNull=!0);C.plotX=A=p(Math.min(Math.max(-1E5,c.translate(w,0,0,0,1,h,"flags"===this.type)),1E5));b&&this.visible&&!C.isNull&&D&&D[w]&&(F=this.getStackIndicator(F,w,this.index),G=D[w],B=G.points[F.key],l=B[0],B=B[1],l===x&&F.key===D[w].base&&(l=E(m,f.min)),f.isLog&&0>=l&&(l=null),C.total=C.stackTotal=G.total,C.percentage=G.total&&C.y/G.total*100,C.stackY= +B,G.setOffset(this.pointXOffset||0,this.barW||0));C.yBottom=t(l)?f.translate(l,0,1,0,1):null;q&&(B=this.modifyValue(B,C));C.plotY=l="number"===typeof B&&Infinity!==B?Math.min(Math.max(-1E5,f.translate(B,0,1,0,1)),1E5):void 0;C.isInside=void 0!==l&&0<=l&&l<=f.len&&0<=A&&A<=c.len;C.clientX=k?p(c.translate(w,0,0,0,1,h)):A;C.negative=C.y<(m||0);C.category=e&&void 0!==e[C.x]?e[C.x]:C.x;C.isNull||(void 0!==r&&(J=Math.min(J,Math.abs(A-r))),r=A)}this.closestPointRangePx=J},getValidPoints:function(a,b){var c= +this.chart;return C(a||this.points||[],function(a){return b&&!c.isInsidePlot(a.plotX,a.plotY,c.inverted)?!1:!a.isNull})},setClip:function(a){var b=this.chart,c=this.options,d=b.renderer,e=b.inverted,f=this.clipBox,g=f||b.clipBox,n=this.sharedClipKey||["_sharedClip",a&&a.duration,a&&a.easing,g.height,c.xAxis,c.yAxis].join(),q=b[n],h=b[n+"m"];q||(a&&(g.width=0,b[n+"m"]=h=d.clipRect(-99,e?-b.plotLeft:-b.plotTop,99,e?b.chartWidth:b.chartHeight)),b[n]=q=d.clipRect(g),q.count={length:0});a&&!q.count[this.index]&& +(q.count[this.index]=!0,q.count.length+=1);!1!==c.clip&&(this.group.clip(a||f?q:b.clipRect),this.markerGroup.clip(h),this.sharedClipKey=n);a||(q.count[this.index]&&(delete q.count[this.index],--q.count.length),0===q.count.length&&n&&b[n]&&(f||(b[n]=b[n].destroy()),b[n+"m"]&&(b[n+"m"]=b[n+"m"].destroy())))},animate:function(a){var b=this.chart,c=B(this.options.animation),d;a?this.setClip(c):(d=this.sharedClipKey,(a=b[d])&&a.animate({width:b.plotSizeX},c),b[d+"m"]&&b[d+"m"].animate({width:b.plotSizeX+ +99},c),this.animate=null)},afterAnimate:function(){this.setClip();h(this,"afterAnimate")},drawPoints:function(){var a=this.points,b=this.chart,c,e,f,g,n=this.options.marker,q,h,k,m,x=this.markerGroup,A=E(n.enabled,this.xAxis.isRadial?!0:null,this.closestPointRangePx>2*n.radius);if(!1!==n.enabled||this._hasPointMarkers)for(e=a.length;e--;)f=a[e],c=f.plotY,g=f.graphic,q=f.marker||{},h=!!f.marker,k=A&&void 0===q.enabled||q.enabled,m=f.isInside,k&&d(c)&&null!==f.y?(c=E(q.symbol,this.symbol),f.hasImage= +0===c.indexOf("url"),k=this.markerAttribs(f,f.selected&&"select"),g?g[m?"show":"hide"](!0).animate(k):m&&(0e&&b.shadow));g&&(g.startX=c.xMap, +g.isArea=c.isArea)})},applyZones:function(){var a=this,b=this.chart,c=b.renderer,d=this.zones,e,f,g=this.clips||[],n,q=this.graph,h=this.area,m=Math.max(b.chartWidth,b.chartHeight),x=this[(this.zoneAxis||"y")+"Axis"],A,l,p=b.inverted,r,F,C,t,J=!1;d.length&&(q||h)&&x&&void 0!==x.min&&(l=x.reversed,r=x.horiz,q&&q.hide(),h&&h.hide(),A=x.getExtremes(),k(d,function(d,u){e=l?r?b.plotWidth:0:r?0:x.toPixels(A.min);e=Math.min(Math.max(E(f,e),0),m);f=Math.min(Math.max(Math.round(x.toPixels(E(d.value,A.max), +!0)),0),m);J&&(e=f=x.toPixels(A.max));F=Math.abs(e-f);C=Math.min(e,f);t=Math.max(e,f);x.isXAxis?(n={x:p?t:C,y:0,width:F,height:m},r||(n.x=b.plotHeight-n.x)):(n={x:0,y:p?t:C,width:m,height:F},r&&(n.y=b.plotWidth-n.y));p&&c.isVML&&(n=x.isXAxis?{x:0,y:l?C:t,height:n.width,width:b.chartWidth}:{x:n.y-b.plotLeft-b.spacingBox.x,y:0,width:n.height,height:b.chartHeight});g[u]?g[u].animate(n):(g[u]=c.clipRect(n),q&&a["zone-graph-"+u].clip(g[u]),h&&a["zone-area-"+u].clip(g[u]));J=d.value>A.max}),this.clips= +g)},invertGroups:function(a){function b(){var b={width:c.yAxis.len,height:c.xAxis.len};k(["group","markerGroup"],function(d){c[d]&&c[d].attr(b).invert(a)})}var c=this,d;c.xAxis&&(d=D(c.chart,"resize",b),D(c,"destroy",d),b(a),c.invertGroups=b)},plotGroup:function(a,b,c,d,e){var f=this[a],g=!f;g&&(this[a]=f=this.chart.renderer.g(b).attr({zIndex:d||.1}).add(e),f.addClass("highcharts-series-"+this.index+" highcharts-"+this.type+"-series highcharts-color-"+this.colorIndex+" "+(this.options.className|| +"")));f.attr({visibility:c})[g?"attr":"animate"](this.getPlotBox());return f},getPlotBox:function(){var a=this.chart,b=this.xAxis,c=this.yAxis;a.inverted&&(b=c,c=this.xAxis);return{translateX:b?b.left:a.plotLeft,translateY:c?c.top:a.plotTop,scaleX:1,scaleY:1}},render:function(){var a=this,b=a.chart,c,d=a.options,e=!!a.animate&&b.renderer.isSVG&&B(d.animation).duration,f=a.visible?"inherit":"hidden",g=d.zIndex,n=a.hasRendered,q=b.seriesGroup,h=b.inverted;c=a.plotGroup("group","series",f,g,q);a.markerGroup= +a.plotGroup("markerGroup","markers",f,g,q);e&&a.animate(!0);c.inverted=a.isCartesian?h:!1;a.drawGraph&&(a.drawGraph(),a.applyZones());a.drawDataLabels&&a.drawDataLabels();a.visible&&a.drawPoints();a.drawTracker&&!1!==a.options.enableMouseTracking&&a.drawTracker();a.invertGroups(h);!1===d.clip||a.sharedClipKey||n||c.clip(b.clipRect);e&&a.animate();n||(a.animationTimeout=x(function(){a.afterAnimate()},e));a.isDirty=a.isDirtyData=!1;a.hasRendered=!0},redraw:function(){var a=this.chart,b=this.isDirty|| +this.isDirtyData,c=this.group,d=this.xAxis,e=this.yAxis;c&&(a.inverted&&c.attr({width:a.plotWidth,height:a.plotHeight}),c.animate({translateX:E(d&&d.left,a.plotLeft),translateY:E(e&&e.top,a.plotTop)}));this.translate();this.render();b&&delete this.kdTree},kdDimensions:1,kdAxisArray:["clientX","plotY"],searchPoint:function(a,b){var c=this.xAxis,d=this.yAxis,e=this.chart.inverted;return this.searchKDTree({clientX:e?c.len-a.chartY+c.pos:a.chartX-c.pos,plotY:e?d.len-a.chartX+d.pos:a.chartY-d.pos},b)}, +buildKDTree:function(){function a(c,d,e){var f,g;if(g=c&&c.length)return f=b.kdAxisArray[d%e],c.sort(function(a,b){return a[f]-b[f]}),g=Math.floor(g/2),{point:c[g],left:a(c.slice(0,g),d+1,e),right:a(c.slice(g+1),d+1,e)}}var b=this,c=b.kdDimensions;delete b.kdTree;x(function(){b.kdTree=a(b.getValidPoints(null,!b.directTouch),c,c)},b.options.kdNow?0:1)},searchKDTree:function(a,b){function c(a,b,n,q){var h=b.point,u=d.kdAxisArray[n%q],k,m,x=h;m=t(a[e])&&t(h[e])?Math.pow(a[e]-h[e],2):null;k=t(a[f])&& +t(h[f])?Math.pow(a[f]-h[f],2):null;k=(m||0)+(k||0);h.dist=t(k)?Math.sqrt(k):Number.MAX_VALUE;h.distX=t(m)?Math.sqrt(m):Number.MAX_VALUE;u=a[u]-h[u];k=0>u?"left":"right";m=0>u?"right":"left";b[k]&&(k=c(a,b[k],n+1,q),x=k[g]A;)l--;this.updateParallelArrays(h,"splice",l,0,0);this.updateParallelArrays(h,l);n&&h.name&&(n[A]=h.name);q.splice(l,0,a);m&&(this.data.splice(l,0,null),this.processData());"point"===c.legendType&&this.generatePoints();d&&(f[0]&&f[0].remove?f[0].remove(!1):(f.shift(),this.updateParallelArrays(h,"shift"),q.shift()));this.isDirtyData=this.isDirty=!0;b&&g.redraw(e)},removePoint:function(a, +b,d){var c=this,e=c.data,f=e[a],g=c.points,n=c.chart,h=function(){g&&g.length===e.length&&g.splice(a,1);e.splice(a,1);c.options.data.splice(a,1);c.updateParallelArrays(f||{series:c},"splice",a,1);f&&f.destroy();c.isDirty=!0;c.isDirtyData=!0;b&&n.redraw()};q(d,n);b=C(b,!0);f?f.firePointEvent("remove",null,h):h()},remove:function(a,b,d){function c(){e.destroy();f.isDirtyLegend=f.isDirtyBox=!0;f.linkSeries();C(a,!0)&&f.redraw(b)}var e=this,f=e.chart;!1!==d?k(e,"remove",null,c):c()},update:function(a, +d){var c=this,e=this.chart,f=this.userOptions,g=this.type,q=a.type||f.type||e.options.chart.type,u=b[g].prototype,m=["group","markerGroup","dataLabelsGroup"],k;if(q&&q!==g||void 0!==a.zIndex)m.length=0;r(m,function(a){m[a]=c[a];delete c[a]});a=h(f,{animation:!1,index:this.index,pointStart:this.xData[0]},{data:this.options.data},a);this.remove(!1,null,!1);for(k in u)this[k]=void 0;t(this,b[q||g].prototype);r(m,function(a){c[a]=m[a]});this.init(e,a);e.linkSeries();C(d,!0)&&e.redraw(!1)}});t(G.prototype, +{update:function(a,b){var c=this.chart;a=c.options[this.coll][this.options.index]=h(this.userOptions,a);this.destroy(!0);this.init(c,t(a,{events:void 0}));c.isDirtyBox=!0;C(b,!0)&&c.redraw()},remove:function(a){for(var b=this.chart,c=this.coll,d=this.series,e=d.length;e--;)d[e]&&d[e].remove(!1);w(b.axes,this);w(b[c],this);b.options[c].splice(this.options.index,1);r(b[c],function(a,b){a.options.index=b});this.destroy();b.isDirtyBox=!0;C(a,!0)&&b.redraw()},setTitle:function(a,b){this.update({title:a}, +b)},setCategories:function(a,b){this.update({categories:a},b)}})})(N);(function(a){var D=a.color,B=a.each,G=a.map,H=a.pick,p=a.Series,l=a.seriesType;l("area","line",{softThreshold:!1,threshold:0},{singleStacks:!1,getStackPoints:function(){var a=[],l=[],p=this.xAxis,k=this.yAxis,m=k.stacks[this.stackKey],e={},g=this.points,h=this.index,C=k.series,f=C.length,d,b=H(k.options.reversedStacks,!0)?1:-1,q,E;if(this.options.stacking){for(q=0;qa&&t>l?(t=Math.max(a,l),m=2*l-t):tH&& +m>l?(m=Math.max(H,l),t=2*l-m):m=Math.abs(g)&&.5a.closestPointRange*a.xAxis.transA,k=a.borderWidth=r(h.borderWidth,k?0:1),f=a.yAxis,d=a.translatedThreshold=f.getThreshold(h.threshold),b=r(h.minPointLength,5),q=a.getColumnMetrics(),m=q.width,c=a.barW=Math.max(m,1+2*k),l=a.pointXOffset= +q.offset;g.inverted&&(d-=.5);h.pointPadding&&(c=Math.ceil(c));w.prototype.translate.apply(a);G(a.points,function(e){var n=r(e.yBottom,d),q=999+Math.abs(n),q=Math.min(Math.max(-q,e.plotY),f.len+q),h=e.plotX+l,k=c,u=Math.min(q,n),p,t=Math.max(q,n)-u;Math.abs(t)b?n-b:d-(p?b:0));e.barX=h;e.pointWidth=m;e.tooltipPos=g.inverted?[f.len+f.pos-g.plotLeft-q,a.xAxis.len-h-k/2,t]:[h+k/2,q+f.pos-g.plotTop,t];e.shapeType="rect";e.shapeArgs= +a.crispCol.apply(a,e.isNull?[e.plotX,f.len/2,0,0]:[h,u,k,t])})},getSymbol:a.noop,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,drawGraph:function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},pointAttribs:function(a,g){var e=this.options,k=this.pointAttrToOptions||{},f=k.stroke||"borderColor",d=k["stroke-width"]||"borderWidth",b=a&&a.color||this.color,q=a[f]||e[f]||this.color||b,k=e.dashStyle,m;a&&this.zones.length&&(b=(b=a.getZone())&&b.color||a.options.color|| +this.color);g&&(g=e.states[g],m=g.brightness,b=g.color||void 0!==m&&B(b).brighten(g.brightness).get()||b,q=g[f]||q,k=g.dashStyle||k);a={fill:b,stroke:q,"stroke-width":a[d]||e[d]||this[d]||0};e.borderRadius&&(a.r=e.borderRadius);k&&(a.dashstyle=k);return a},drawPoints:function(){var a=this,g=this.chart,h=a.options,m=g.renderer,f=h.animationLimit||250,d;G(a.points,function(b){var e=b.graphic;p(b.plotY)&&null!==b.y?(d=b.shapeArgs,e?(k(e),e[g.pointCountt;++t)k=r[t],a=2>t||2===t&&/%$/.test(k),r[t]=B(k,[l,H,w,r[2]][t])+(a?p:0);r[3]>r[2]&&(r[3]=r[2]);return r}}})(N);(function(a){var D=a.addEvent,B=a.defined,G=a.each,H=a.extend,p=a.inArray,l=a.noop,r=a.pick,w=a.Point,t=a.Series,k=a.seriesType,m=a.setAnimation;k("pie","line",{center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){return null===this.y? +void 0:this.point.name},x:0},ignoreHiddenPoint:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,states:{hover:{brightness:.1,shadow:!1}}},{isCartesian:!1,requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],axisTypes:[],pointAttribs:a.seriesTypes.column.prototype.pointAttribs,animate:function(a){var e=this,h=e.points,k=e.startAngleRad;a||(G(h,function(a){var d= +a.graphic,b=a.shapeArgs;d&&(d.attr({r:a.startR||e.center[3]/2,start:k,end:k}),d.animate({r:b.r,start:b.start,end:b.end},e.options.animation))}),e.animate=null)},updateTotals:function(){var a,g=0,h=this.points,k=h.length,f,d=this.options.ignoreHiddenPoint;for(a=0;af.y&&(f.y=null),g+=d&&!f.visible?0:f.y;this.total=g;for(a=0;a1.5*Math.PI?q-=2*Math.PI:q<-Math.PI/2&&(q+=2*Math.PI);t.slicedTranslation={translateX:Math.round(Math.cos(q)*k),translateY:Math.round(Math.sin(q)*k)};d=Math.cos(q)*a[2]/2;b=Math.sin(q)*a[2]/2;t.tooltipPos=[a[0]+.7*d,a[1]+.7*b];t.half=q<-Math.PI/2||q>Math.PI/2?1:0;t.angle=q;f=Math.min(f,n/5);t.labelPos=[a[0]+d+Math.cos(q)*n,a[1]+b+Math.sin(q)*n,a[0]+d+Math.cos(q)*f,a[1]+b+Math.sin(q)* +f,a[0]+d,a[1]+b,0>n?"center":t.half?"right":"left",q]}},drawGraph:null,drawPoints:function(){var a=this,g=a.chart.renderer,h,k,f,d,b=a.options.shadow;b&&!a.shadowGroup&&(a.shadowGroup=g.g("shadow").add(a.group));G(a.points,function(e){if(null!==e.y){k=e.graphic;d=e.shapeArgs;h=e.sliced?e.slicedTranslation:{};var q=e.shadowGroup;b&&!q&&(q=e.shadowGroup=g.g("shadow").add(a.shadowGroup));q&&q.attr(h);f=a.pointAttribs(e,e.selected&&"select");k?k.setRadialReference(a.center).attr(f).animate(H(d,h)):(e.graphic= +k=g[e.shapeType](d).addClass(e.getClassName()).setRadialReference(a.center).attr(h).add(a.group),e.visible||k.attr({visibility:"hidden"}),k.attr(f).attr({"stroke-linejoin":"round"}).shadow(b,q))}})},searchPoint:l,sortByAngle:function(a,g){a.sort(function(a,e){return void 0!==a.angle&&(e.angle-a.angle)*g})},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,getCenter:a.CenteredSeriesMixin.getCenter,getSymbol:l},{init:function(){w.prototype.init.apply(this,arguments);var a=this,g;a.name=r(a.name,"Slice"); +g=function(e){a.slice("select"===e.type)};D(a,"select",g);D(a,"unselect",g);return a},setVisible:function(a,g){var e=this,k=e.series,f=k.chart,d=k.options.ignoreHiddenPoint;g=r(g,d);a!==e.visible&&(e.visible=e.options.visible=a=void 0===a?!e.visible:a,k.options.data[p(e,k.data)]=e.options,G(["graphic","dataLabel","connector","shadowGroup"],function(b){if(e[b])e[b][a?"show":"hide"](!0)}),e.legendItem&&f.legend.colorizeItem(e,a),a||"hover"!==e.state||e.setState(""),d&&(k.isDirty=!0),g&&f.redraw())}, +slice:function(a,g,h){var e=this.series;m(h,e.chart);r(g,!0);this.sliced=this.options.sliced=a=B(a)?a:!this.sliced;e.options.data[p(this,e.data)]=this.options;a=a?this.slicedTranslation:{translateX:0,translateY:0};this.graphic.animate(a);this.shadowGroup&&this.shadowGroup.animate(a)},haloPath:function(a){var e=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(e.x,e.y,e.r+a,e.r+a,{innerR:this.shapeArgs.r,start:e.start,end:e.end})}})})(N);(function(a){var D= +a.addEvent,B=a.arrayMax,G=a.defined,H=a.each,p=a.extend,l=a.format,r=a.map,w=a.merge,t=a.noop,k=a.pick,m=a.relativeLength,e=a.Series,g=a.seriesTypes,h=a.stableSort,C=a.stop;a.distribute=function(a,d){function b(a,b){return a.target-b.target}var e,f=!0,c=a,g=[],n;n=0;for(e=a.length;e--;)n+=a[e].size;if(n>d){h(a,function(a,b){return(b.rank||0)-(a.rank||0)});for(n=e=0;n<=d;)n+=a[e].size,e++;g=a.splice(e-1,a.length)}h(a,b);for(a=r(a,function(a){return{size:a.size,targets:[a.target]}});f;){for(e=a.length;e--;)f= +a[e],n=(Math.min.apply(0,f.targets)+Math.max.apply(0,f.targets))/2,f.pos=Math.min(Math.max(0,n-f.size/2),d-f.size);e=a.length;for(f=!1;e--;)0a[e].pos&&(a[e-1].size+=a[e].size,a[e-1].targets=a[e-1].targets.concat(a[e].targets),a[e-1].pos+a[e-1].size>d&&(a[e-1].pos=d-a[e-1].size),a.splice(e,1),f=!0)}e=0;H(a,function(a){var b=0;H(a.targets,function(){c[e].pos=a.pos+b;b+=c[e].size;e++})});c.push.apply(c,g);h(c,b)};e.prototype.drawDataLabels=function(){var a=this,d=a.options, +b=d.dataLabels,e=a.points,g,c,h=a.hasRendered||0,n,m,x=k(b.defer,!0),r=a.chart.renderer;if(b.enabled||a._hasPointLabels)a.dlProcessOptions&&a.dlProcessOptions(b),m=a.plotGroup("dataLabelsGroup","data-labels",x&&!h?"hidden":"visible",b.zIndex||6),x&&(m.attr({opacity:+h}),h||D(a,"afterAnimate",function(){a.visible&&m.show(!0);m[d.animation?"animate":"attr"]({opacity:1},{duration:200})})),c=b,H(e,function(e){var f,q=e.dataLabel,h,x,A=e.connector,y=!0,t,z={};g=e.dlOptions||e.options&&e.options.dataLabels; +f=k(g&&g.enabled,c.enabled)&&null!==e.y;if(q&&!f)e.dataLabel=q.destroy();else if(f){b=w(c,g);t=b.style;f=b.rotation;h=e.getLabelConfig();n=b.format?l(b.format,h):b.formatter.call(h,b);t.color=k(b.color,t.color,a.color,"#000000");if(q)G(n)?(q.attr({text:n}),y=!1):(e.dataLabel=q=q.destroy(),A&&(e.connector=A.destroy()));else if(G(n)){q={fill:b.backgroundColor,stroke:b.borderColor,"stroke-width":b.borderWidth,r:b.borderRadius||0,rotation:f,padding:b.padding,zIndex:1};"contrast"===t.color&&(z.color=b.inside|| +0>b.distance||d.stacking?r.getContrast(e.color||a.color):"#000000");d.cursor&&(z.cursor=d.cursor);for(x in q)void 0===q[x]&&delete q[x];q=e.dataLabel=r[f?"text":"label"](n,0,-9999,b.shape,null,null,b.useHTML,null,"data-label").attr(q);q.addClass("highcharts-data-label-color-"+e.colorIndex+" "+(b.className||""));q.css(p(t,z));q.add(m);q.shadow(b.shadow)}q&&a.alignDataLabel(e,q,b,null,y)}})};e.prototype.alignDataLabel=function(a,d,b,e,g){var c=this.chart,f=c.inverted,n=k(a.plotX,-9999),q=k(a.plotY, +-9999),h=d.getBBox(),m,l=b.rotation,u=b.align,r=this.visible&&(a.series.forceDL||c.isInsidePlot(n,Math.round(q),f)||e&&c.isInsidePlot(n,f?e.x+1:e.y+e.height-1,f)),t="justify"===k(b.overflow,"justify");r&&(m=b.style.fontSize,m=c.renderer.fontMetrics(m,d).b,e=p({x:f?c.plotWidth-q:n,y:Math.round(f?c.plotHeight-n:q),width:0,height:0},e),p(b,{width:h.width,height:h.height}),l?(t=!1,f=c.renderer.rotCorr(m,l),f={x:e.x+b.x+e.width/2+f.x,y:e.y+b.y+{top:0,middle:.5,bottom:1}[b.verticalAlign]*e.height},d[g? +"attr":"animate"](f).attr({align:u}),n=(l+720)%360,n=180n,"left"===u?f.y-=n?h.height:0:"center"===u?(f.x-=h.width/2,f.y-=h.height/2):"right"===u&&(f.x-=h.width,f.y-=n?0:h.height)):(d.align(b,null,e),f=d.alignAttr),t?this.justifyDataLabel(d,b,f,h,e,g):k(b.crop,!0)&&(r=c.isInsidePlot(f.x,f.y)&&c.isInsidePlot(f.x+h.width,f.y+h.height)),b.shape&&!l&&d.attr({anchorX:a.plotX,anchorY:a.plotY}));r||(C(d),d.attr({y:-9999}),d.placed=!1)};e.prototype.justifyDataLabel=function(a,d,b,e,g,c){var f=this.chart, +n=d.align,h=d.verticalAlign,q,k,m=a.box?0:a.padding||0;q=b.x+m;0>q&&("right"===n?d.align="left":d.x=-q,k=!0);q=b.x+e.width-m;q>f.plotWidth&&("left"===n?d.align="right":d.x=f.plotWidth-q,k=!0);q=b.y+m;0>q&&("bottom"===h?d.verticalAlign="top":d.y=-q,k=!0);q=b.y+e.height-m;q>f.plotHeight&&("top"===h?d.verticalAlign="bottom":d.y=f.plotHeight-q,k=!0);k&&(a.placed=!c,a.align(d,null,g))};g.pie&&(g.pie.prototype.drawDataLabels=function(){var f=this,d=f.data,b,g=f.chart,h=f.options.dataLabels,c=k(h.connectorPadding, +10),m=k(h.connectorWidth,1),n=g.plotWidth,l=g.plotHeight,x,p=h.distance,y=f.center,u=y[2]/2,t=y[1],w=0k-2?A:P,e),v._attr={visibility:S,align:D[6]},v._pos={x:L+h.x+({left:c,right:-c}[D[6]]||0),y:P+h.y-10},D.x=L,D.y=P,null===f.options.size&&(C=v.width,L-Cn-c&&(T[1]=Math.max(Math.round(L+ +C-n+c),T[1])),0>P-G/2?T[0]=Math.max(Math.round(-P+G/2),T[0]):P+G/2>l&&(T[2]=Math.max(Math.round(P+G/2-l),T[2])))}),0===B(T)||this.verifyDataLabelOverflow(T))&&(this.placeDataLabels(),w&&m&&H(this.points,function(a){var b;x=a.connector;if((v=a.dataLabel)&&v._pos&&a.visible){S=v._attr.visibility;if(b=!x)a.connector=x=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+a.colorIndex).add(f.dataLabelsGroup),x.attr({"stroke-width":m,stroke:h.connectorColor||a.color||"#666666"}); +x[b?"attr":"animate"]({d:f.connectorPath(a.labelPos)});x.attr("visibility",S)}else x&&(a.connector=x.destroy())}))},g.pie.prototype.connectorPath=function(a){var d=a.x,b=a.y;return k(this.options.dataLabels.softConnector,!0)?["M",d+("left"===a[6]?5:-5),b,"C",d,b,2*a[2]-a[4],2*a[3]-a[5],a[2],a[3],"L",a[4],a[5]]:["M",d+("left"===a[6]?5:-5),b,"L",a[2],a[3],"L",a[4],a[5]]},g.pie.prototype.placeDataLabels=function(){H(this.points,function(a){var d=a.dataLabel;d&&a.visible&&((a=d._pos)?(d.attr(d._attr), +d[d.moved?"animate":"attr"](a),d.moved=!0):d&&d.attr({y:-9999}))})},g.pie.prototype.alignDataLabel=t,g.pie.prototype.verifyDataLabelOverflow=function(a){var d=this.center,b=this.options,e=b.center,f=b.minSize||80,c,g;null!==e[0]?c=Math.max(d[2]-Math.max(a[1],a[3]),f):(c=Math.max(d[2]-a[1]-a[3],f),d[0]+=(a[3]-a[1])/2);null!==e[1]?c=Math.max(Math.min(c,d[2]-Math.max(a[0],a[2])),f):(c=Math.max(Math.min(c,d[2]-a[0]-a[2]),f),d[1]+=(a[0]-a[2])/2);ck(this.translatedThreshold,f.yAxis.len)),m=k(b.inside,!!this.options.stacking);n&&(g=w(n),0>g.y&&(g.height+=g.y,g.y=0),n=g.y+g.height-f.yAxis.len,0a+e||c+nb+f||g+hthis.pointCount))},pan:function(a,b){var c=this,d=c.hoverPoints, +e;d&&r(d,function(a){a.setState()});r("xy"===b?[1,0]:[1],function(b){b=c[b?"xAxis":"yAxis"][0];var d=b.horiz,f=a[d?"chartX":"chartY"],d=d?"mouseDownX":"mouseDownY",g=c[d],n=(b.pointRange||0)/2,h=b.getExtremes(),q=b.toValue(g-f,!0)+n,n=b.toValue(g+b.len-f,!0)-n,g=g>f;b.series.length&&(g||q>Math.min(h.dataMin,h.min))&&(!g||n=p(k.minWidth,0)&&this.chartHeight>=p(k.minHeight,0)};void 0===l._id&&(l._id=a.uniqueKey());m=m.call(this);!r[l._id]&&m?l.chartOptions&&(r[l._id]=this.currentOptions(l.chartOptions),this.update(l.chartOptions,w)):r[l._id]&&!m&&(this.update(r[l._id],w),delete r[l._id])};D.prototype.currentOptions=function(a){function p(a,m,e){var g,h;for(g in a)if(-1< +G(g,["series","xAxis","yAxis"]))for(a[g]=l(a[g]),e[g]=[],h=0;hd.length||void 0===h)return a.call(this,g,h,k,f);x=d.length;for(c=0;ck;d[c]5*b||w){if(d[c]>u){for(r=a.call(this,g,d[e],d[c],f);r.length&&r[0]<=u;)r.shift();r.length&&(u=r[r.length-1]);y=y.concat(r)}e=c+1}if(w)break}a= +r.info;if(q&&a.unitRange<=m.hour){c=y.length-1;for(e=1;ek?a-1:a;for(M=void 0;q--;)e=c[q],k=M-e,M&&k<.8*C&&(null===t||k<.8*t)?(n[y[q]]&&!n[y[q+1]]?(k=q+1,M=e):k=q,y.splice(k,1)):M=e}return y});w(B.prototype,{beforeSetTickPositions:function(){var a, +g=[],h=!1,k,f=this.getExtremes(),d=f.min,b=f.max,q,m=this.isXAxis&&!!this.options.breaks,f=this.options.ordinal,c=this.chart.options.chart.ignoreHiddenSeries;if(f||m){r(this.series,function(b,d){if(!(c&&!1===b.visible||!1===b.takeOrdinalPosition&&!m)&&(g=g.concat(b.processedXData),a=g.length,g.sort(function(a,b){return a-b}),a))for(d=a-1;d--;)g[d]===g[d+1]&&g.splice(d,1)});a=g.length;if(2k||b-g[g.length- +1]>k)&&(h=!0)}h?(this.ordinalPositions=g,k=this.val2lin(Math.max(d,g[0]),!0),q=Math.max(this.val2lin(Math.min(b,g[g.length-1]),!0),1),this.ordinalSlope=b=(b-d)/(q-k),this.ordinalOffset=d-k*b):this.ordinalPositions=this.ordinalSlope=this.ordinalOffset=void 0}this.isOrdinal=f&&h;this.groupIntervalFactor=null},val2lin:function(a,g){var e=this.ordinalPositions;if(e){var k=e.length,f,d;for(f=k;f--;)if(e[f]===a){d=f;break}for(f=k-1;f--;)if(a>e[f]||0===f){a=(a-e[f])/(e[f+1]-e[f]);d=f+a;break}g=g?d:this.ordinalSlope* +(d||0)+this.ordinalOffset}else g=a;return g},lin2val:function(a,g){var e=this.ordinalPositions;if(e){var k=this.ordinalSlope,f=this.ordinalOffset,d=e.length-1,b;if(g)0>a?a=e[0]:a>d?a=e[d]:(d=Math.floor(a),b=a-d);else for(;d--;)if(g=k*d+f,a>=g){k=k*(d+1)+f;b=(a-g)/(k-g);break}return void 0!==b&&void 0!==e[d]?e[d]+(b?b*(e[d+1]-e[d]):0):a}return a},getExtendedPositions:function(){var a=this.chart,g=this.series[0].currentDataGrouping,h=this.ordinalIndex,k=g?g.count+g.unitName:"raw",f=this.getExtremes(), +d,b;h||(h=this.ordinalIndex={});h[k]||(d={series:[],chart:a,getExtremes:function(){return{min:f.dataMin,max:f.dataMax}},options:{ordinal:!0},val2lin:B.prototype.val2lin},r(this.series,function(e){b={xAxis:d,xData:e.xData,chart:a,destroyGroupedData:t};b.options={dataGrouping:g?{enabled:!0,forced:!0,approximation:"open",units:[[g.unitName,[g.count]]]}:{enabled:!1}};e.processData.apply(b);d.series.push(b)}),this.beforeSetTickPositions.apply(d),h[k]=d.ordinalPositions);return h[k]},getGroupIntervalFactor:function(a, +g,h){var e;h=h.processedXData;var f=h.length,d=[];e=this.groupIntervalFactor;if(!e){for(e=0;ed?(l=p,t=e.ordinalPositions?e:p):(l=e.ordinalPositions?e:p,t=p),p=t.ordinalPositions,q>p[p.length-1]&&p.push(q),this.fixedRange=c-m,d=e.toFixedRange(null,null,n.apply(l,[x.apply(l,[m,!0])+d,!0]),n.apply(t,[x.apply(t, +[c,!0])+d,!0])),d.min>=Math.min(b.dataMin,m)&&d.max<=Math.max(q,c)&&e.setExtremes(d.min,d.max,!0,!1,{trigger:"pan"}),this.mouseDownX=k,H(this.container,{cursor:"move"})):f=!0}else f=!0;f&&a.apply(this,Array.prototype.slice.call(arguments,1))});k.prototype.gappedPath=function(){var a=this.options.gapSize,g=this.points.slice(),h=g.length-1;if(a&&0this.closestPointRange*a&&g.splice(h+1,0,{isNull:!0});return this.getGraphPath(g)}})(N);(function(a){function D(){return Array.prototype.slice.call(arguments, +1)}function B(a){a.apply(this);this.drawBreaks(this.xAxis,["x"]);this.drawBreaks(this.yAxis,G(this.pointArrayMap,["y"]))}var G=a.pick,H=a.wrap,p=a.each,l=a.extend,r=a.fireEvent,w=a.Axis,t=a.Series;l(w.prototype,{isInBreak:function(a,m){var e=a.repeat||Infinity,g=a.from,h=a.to-a.from;m=m>=g?(m-g)%e:e-(g-m)%e;return a.inclusive?m<=h:m=a)break;else if(g.isInBreak(f,a)){e-=a-f.from;break}return e};this.lin2val=function(a){var e,f;for(f=0;f=a);f++)e.toh;)m-=b;for(;mb.to||l>b.from&&db.from&&db.from&&d>b.to&&d=c[0]);A++);for(A;A<=q;A++){for(;(void 0!==c[w+1]&&a[A]>=c[w+1]||A===q)&&(l=c[w],this.dataGroupInfo={start:p,length:t[0].length},p=d.apply(this,t),void 0!==p&&(g.push(l),h.push(p),m.push(this.dataGroupInfo)),p=A,t[0]=[],t[1]=[],t[2]=[],t[3]=[],w+=1,A!==q););if(A===q)break;if(x){l=this.cropStart+A;l=e&&e[l]|| +this.pointClass.prototype.applyOptions.apply({series:this},[f[l]]);var E,C;for(E=0;Ethis.chart.plotSizeX/d||b&&f.forced)&&(e=!0);return e?d:0};G.prototype.setDataGrouping=function(a,b){var c;b=e(b,!0);a||(a={forced:!1,units:null});if(this instanceof G)for(c=this.series.length;c--;)this.series[c].update({dataGrouping:a},!1);else l(this.chart.options.series,function(b){b.dataGrouping=a},!1);b&&this.chart.redraw()}})(N);(function(a){var D=a.each,B=a.Point,G=a.seriesType,H=a.seriesTypes;G("ohlc","column",{lineWidth:1,tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eOpen: {point.open}\x3cbr/\x3eHigh: {point.high}\x3cbr/\x3eLow: {point.low}\x3cbr/\x3eClose: {point.close}\x3cbr/\x3e'}, +threshold:null,states:{hover:{lineWidth:3}}},{pointArrayMap:["open","high","low","close"],toYData:function(a){return[a.open,a.high,a.low,a.close]},pointValKey:"high",pointAttribs:function(a,l){l=H.column.prototype.pointAttribs.call(this,a,l);var p=this.options;delete l.fill;l["stroke-width"]=p.lineWidth;l.stroke=a.options.color||(a.openk)););B(g,function(a,b){var d;void 0===a.plotY&&(a.x>=c.min&&a.x<=c.max?a.plotY=e.chartHeight-p.bottom-(p.opposite?p.height:0)+p.offset-e.plotTop:a.shapeArgs={});a.plotX+=t;(f=g[b-1])&&f.plotX===a.plotX&&(void 0===f.stackIndex&&(f.stackIndex=0),d=f.stackIndex+1);a.stackIndex=d})},drawPoints:function(){var a=this.points,e=this.chart,g=e.renderer,k,l,f=this.options,d=f.y,b,q,p,c,r,n,t,x=this.yAxis;for(q=a.length;q--;)p=a[q],t=p.plotX>this.xAxis.len,k=p.plotX,c=p.stackIndex,b= +p.options.shape||f.shape,l=p.plotY,void 0!==l&&(l=p.plotY+d-(void 0!==c&&c*f.stackDistance)),r=c?void 0:p.plotX,n=c?void 0:p.plotY,c=p.graphic,void 0!==l&&0<=k&&!t?(c||(c=p.graphic=g.label("",null,null,b,null,null,f.useHTML).attr(this.pointAttribs(p)).css(G(f.style,p.style)).attr({align:"flag"===b?"left":"center",width:f.width,height:f.height,"text-align":f.textAlign}).addClass("highcharts-point").add(this.markerGroup),c.shadow(f.shadow)),0h&&(e-=Math.round((l-h)/2),h=l);e=k[a](e,g,h,l);d&&f&&e.push("M",d,g>f?g:g+l,"L",d,f);return e}});p===t&&B(["flag","circlepin","squarepin"],function(a){t.prototype.symbols[a]=k[a]})})(N);(function(a){function D(a,d,e){this.init(a,d,e)}var B=a.addEvent,G=a.Axis,H=a.correctFloat,p=a.defaultOptions, +l=a.defined,r=a.destroyObjectProperties,w=a.doc,t=a.each,k=a.fireEvent,m=a.hasTouch,e=a.isTouchDevice,g=a.merge,h=a.pick,C=a.removeEvent,f=a.wrap,d={height:e?20:14,barBorderRadius:0,buttonBorderRadius:0,liveRedraw:a.svg&&!e,margin:10,minWidth:6,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:1,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"#333333",trackBackgroundColor:"#f2f2f2",trackBorderColor:"#f2f2f2", +trackBorderWidth:1};p.scrollbar=g(!0,d,p.scrollbar);D.prototype={init:function(a,e,f){this.scrollbarButtons=[];this.renderer=a;this.userOptions=e;this.options=g(d,e);this.chart=f;this.size=h(this.options.size,this.options.height);e.enabled&&(this.render(),this.initEvents(),this.addEvents())},render:function(){var a=this.renderer,d=this.options,e=this.size,c;this.group=c=a.g("scrollbar").attr({zIndex:d.zIndex,translateY:-99999}).add();this.track=a.rect().addClass("highcharts-scrollbar-track").attr({x:0, +r:d.trackBorderRadius||0,height:e,width:e}).add(c);this.track.attr({fill:d.trackBackgroundColor,stroke:d.trackBorderColor,"stroke-width":d.trackBorderWidth});this.trackBorderWidth=this.track.strokeWidth();this.track.attr({y:-this.trackBorderWidth%2/2});this.scrollbarGroup=a.g().add(c);this.scrollbar=a.rect().addClass("highcharts-scrollbar-thumb").attr({height:e,width:e,r:d.barBorderRadius||0}).add(this.scrollbarGroup);this.scrollbarRifles=a.path(this.swapXY(["M",-3,e/4,"L",-3,2*e/3,"M",0,e/4,"L", +0,2*e/3,"M",3,e/4,"L",3,2*e/3],d.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup);this.scrollbar.attr({fill:d.barBackgroundColor,stroke:d.barBorderColor,"stroke-width":d.barBorderWidth});this.scrollbarRifles.attr({stroke:d.rifleColor,"stroke-width":1});this.scrollbarStrokeWidth=this.scrollbar.strokeWidth();this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2);this.drawScrollbarButton(0);this.drawScrollbarButton(1)},position:function(a, +d,e,c){var b=this.options.vertical,f=0,g=this.rendered?"animate":"attr";this.x=a;this.y=d+this.trackBorderWidth;this.width=e;this.xOffset=this.height=c;this.yOffset=f;b?(this.width=this.yOffset=e=f=this.size,this.xOffset=d=0,this.barWidth=c-2*e,this.x=a+=this.options.margin):(this.height=this.xOffset=c=d=this.size,this.barWidth=e-2*c,this.y+=this.options.margin);this.group[g]({translateX:a,translateY:this.y});this.track[g]({width:e,height:c});this.scrollbarButtons[1].attr({translateX:b?0:e-d,translateY:b? +c-f:0})},drawScrollbarButton:function(a){var b=this.renderer,d=this.scrollbarButtons,c=this.options,e=this.size,f;f=b.g().add(this.group);d.push(f);f=b.rect().addClass("highcharts-scrollbar-button").add(f);f.attr({stroke:c.buttonBorderColor,"stroke-width":c.buttonBorderWidth,fill:c.buttonBackgroundColor});f.attr(f.crisp({x:-.5,y:-.5,width:e+1,height:e+1,r:c.buttonBorderRadius},f.strokeWidth()));f=b.path(this.swapXY(["M",e/2+(a?-1:1),e/2-3,"L",e/2+(a?-1:1),e/2+3,"L",e/2+(a?2:-2),e/2],c.vertical)).addClass("highcharts-scrollbar-arrow").add(d[a]); +f.attr({fill:c.buttonArrowColor})},swapXY:function(a,d){var b=a.length,c;if(d)for(d=0;d=k?this.scrollbarRifles.hide():this.scrollbarRifles.show(!0),!1===b.showFull&&(0>=a&&1<=d?this.group.hide():this.group.show()),this.rendered=!0)},initEvents:function(){var a=this;a.mouseMoveHandler=function(b){var d=a.chart.pointer.normalize(b),c=a.options.vertical? +"chartY":"chartX",e=a.initPositions;!a.grabbedCenter||b.touches&&0===b.touches[0][c]||(d=a.cursorToScrollbarPosition(d)[c],c=a[c],c=d-c,a.hasDragged=!0,a.updatePosition(e[0]+c,e[1]+c),a.hasDragged&&k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMType:b.type,DOMEvent:b}))};a.mouseUpHandler=function(b){a.hasDragged&&k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMType:b.type,DOMEvent:b});a.grabbedCenter=a.hasDragged=a.chartX=a.chartY=null};a.mouseDownHandler=function(b){b=a.chart.pointer.normalize(b); +b=a.cursorToScrollbarPosition(b);a.chartX=b.chartX;a.chartY=b.chartY;a.initPositions=[a.from,a.to];a.grabbedCenter=!0};a.buttonToMinClick=function(b){var d=H(a.to-a.from)*a.options.step;a.updatePosition(H(a.from-d),H(a.to-d));k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})};a.buttonToMaxClick=function(b){var d=(a.to-a.from)*a.options.step;a.updatePosition(a.from+d,a.to+d);k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})};a.trackClick=function(b){var d=a.chart.pointer.normalize(b), +c=a.to-a.from,e=a.y+a.scrollbarTop,f=a.x+a.scrollbarLeft;a.options.vertical&&d.chartY>e||!a.options.vertical&&d.chartX>f?a.updatePosition(a.from+c,a.to+c):a.updatePosition(a.from-c,a.to-c);k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})}},cursorToScrollbarPosition:function(a){var b=this.options,b=b.minWidth>this.calculatedWidth?b.minWidth:0;return{chartX:(a.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(a.chartY-this.y-this.yOffset)/(this.barWidth-b)}},updatePosition:function(a, +d){1a&&(d=H(d-a),a=0);this.from=a;this.to=d},update:function(a){this.destroy();this.init(this.chart.renderer,g(!0,this.options,a),this.chart)},addEvents:function(){var a=this.options.inverted?[1,0]:[0,1],d=this.scrollbarButtons,e=this.scrollbarGroup.element,c=this.mouseDownHandler,f=this.mouseMoveHandler,g=this.mouseUpHandler,a=[[d[a[0]].element,"click",this.buttonToMinClick],[d[a[1]].element,"click",this.buttonToMaxClick],[this.track.element,"click",this.trackClick],[e, +"mousedown",c],[w,"mousemove",f],[w,"mouseup",g]];m&&a.push([e,"touchstart",c],[w,"touchmove",f],[w,"touchend",g]);t(a,function(a){B.apply(null,a)});this._events=a},removeEvents:function(){t(this._events,function(a){C.apply(null,a)});this._events=void 0},destroy:function(){var a=this.chart.scroller;this.removeEvents();t(["track","scrollbarRifles","scrollbar","scrollbarGroup","group"],function(a){this[a]&&this[a].destroy&&(this[a]=this[a].destroy())},this);a&&(a.scrollbar=null,r(a.scrollbarButtons))}}; +f(G.prototype,"init",function(a){var b=this;a.apply(b,[].slice.call(arguments,1));b.options.scrollbar&&b.options.scrollbar.enabled&&(b.options.scrollbar.vertical=!b.horiz,b.options.startOnTick=b.options.endOnTick=!1,b.scrollbar=new D(b.chart.renderer,b.options.scrollbar,b.chart),B(b.scrollbar,"changed",function(a){var c=Math.min(h(b.options.min,b.min),b.min,b.dataMin),d=Math.max(h(b.options.max,b.max),b.max,b.dataMax)-c,e;b.horiz&&!b.reversed||!b.horiz&&b.reversed?(e=c+d*this.to,c+=d*this.from):(e= +c+d*(1-this.from),c+=d*(1-this.to));b.setExtremes(c,e,!0,!1,a)}))});f(G.prototype,"render",function(a){var b=Math.min(h(this.options.min,this.min),this.min,this.dataMin),d=Math.max(h(this.options.max,this.max),this.max,this.dataMax),c=this.scrollbar,e;a.apply(this,[].slice.call(arguments,1));c&&(this.horiz?c.position(this.left,this.top+this.height+this.offset+2+(this.opposite?0:this.axisTitleMargin),this.width,this.height):c.position(this.left+this.width+2+this.offset+(this.opposite?this.axisTitleMargin: +0),this.top,this.width,this.height),isNaN(b)||isNaN(d)||!l(this.min)||!l(this.max)?c.setRange(0,0):(e=(this.min-b)/(d-b),b=(this.max-b)/(d-b),this.horiz&&!this.reversed||!this.horiz&&this.reversed?c.setRange(e,b):c.setRange(1-b,1-e)))});f(G.prototype,"getOffset",function(a){var b=this.horiz?2:1,d=this.scrollbar;a.apply(this,[].slice.call(arguments,1));d&&(this.chart.axisOffset[b]+=d.size+d.options.margin)});f(G.prototype,"destroy",function(a){this.scrollbar&&(this.scrollbar=this.scrollbar.destroy()); +a.apply(this,[].slice.call(arguments,1))});a.Scrollbar=D})(N);(function(a){function D(a){this.init(a)}var B=a.addEvent,G=a.Axis,H=a.Chart,p=a.color,l=a.defaultOptions,r=a.defined,w=a.destroyObjectProperties,t=a.doc,k=a.each,m=a.erase,e=a.error,g=a.extend,h=a.grep,C=a.hasTouch,f=a.isNumber,d=a.isObject,b=a.isTouchDevice,q=a.merge,E=a.pick,c=a.removeEvent,F=a.Scrollbar,n=a.Series,A=a.seriesTypes,x=a.wrap,J=[].concat(a.defaultDataGroupingUnits),y=function(a){var b=h(arguments,f);if(b.length)return Math[a].apply(0, +b)};J[4]=["day",[1,2,3,4]];J[5]=["week",[1,2,3]];A=void 0===A.areaspline?"line":"areaspline";g(l,{navigator:{height:40,margin:25,maskInside:!0,handles:{backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:p("#6685c2").setOpacity(.3).get(),outlineColor:"#cccccc",outlineWidth:1,series:{type:A,color:"#335cad",fillOpacity:.05,lineWidth:1,compare:null,dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,smoothed:!0,units:J},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series", +className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},pointRange:0,shadow:!1,threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#999999"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}); +D.prototype={drawHandle:function(a,b){var c=this.chart.renderer,d=this.handles;this.rendered||(d[b]=c.path(["M",-4.5,.5,"L",3.5,.5,3.5,15.5,-4.5,15.5,-4.5,.5,"M",-1.5,4,"L",-1.5,12,"M",.5,4,"L",.5,12]).attr({zIndex:10-b}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][b]).add(),c=this.navigatorOptions.handles,d[b].attr({fill:c.backgroundColor,stroke:c.borderColor,"stroke-width":1}).css({cursor:"ew-resize"}));d[b][this.rendered&&!this.hasDragged?"animate":"attr"]({translateX:Math.round(this.scrollerLeft+ +this.scrollbarHeight+parseInt(a,10)),translateY:Math.round(this.top+this.height/2-8)})},update:function(a){this.destroy();q(!0,this.chart.options.navigator,this.options,a);this.init(this.chart)},render:function(a,b,c,d){var e=this.chart,g=e.renderer,k,h,l,n;n=this.scrollbarHeight;var m=this.xAxis,p=this.navigatorOptions,u=p.maskInside,q=this.height,v=this.top,t=this.navigatorEnabled,x=this.outlineHeight,y;y=this.rendered;if(f(a)&&f(b)&&(!this.hasDragged||r(c))&&(this.navigatorLeft=k=E(m.left,e.plotLeft+ +n),this.navigatorWidth=h=E(m.len,e.plotWidth-2*n),this.scrollerLeft=l=k-n,this.scrollerWidth=n=n=h+2*n,c=E(c,m.translate(a)),d=E(d,m.translate(b)),f(c)&&Infinity!==Math.abs(c)||(c=0,d=n),!(m.translate(d,!0)-m.translate(c,!0)f&&tp+d-u&&rk&&re?e=0:e+v>=q&&(e=q-v,x=h.getUnionExtremes().dataMax),e!==d&&(h.fixedWidth=v,d=l.toFixedRange(e, +e+v,null,x),c.setExtremes(d.min,d.max,!0,null,{trigger:"navigator"}))))};h.mouseMoveHandler=function(b){var c=h.scrollbarHeight,d=h.navigatorLeft,e=h.navigatorWidth,f=h.scrollerLeft,g=h.scrollerWidth,k=h.range,l;b.touches&&0===b.touches[0].pageX||(b=a.pointer.normalize(b),l=b.chartX,lf+g-c&&(l=f+g-c),h.grabbedLeft?(h.hasDragged=!0,h.render(0,0,l-d,h.otherHandlePos)):h.grabbedRight?(h.hasDragged=!0,h.render(0,0,h.otherHandlePos,l-d)):h.grabbedCenter&&(h.hasDragged=!0,le+n-k&&(l=e+ +n-k),h.render(0,0,l-n,l-n+k)),h.hasDragged&&h.scrollbar&&h.scrollbar.options.liveRedraw&&(b.DOMType=b.type,setTimeout(function(){h.mouseUpHandler(b)},0)))};h.mouseUpHandler=function(b){var c,d,e=b.DOMEvent||b;if(h.hasDragged||"scrollbar"===b.trigger)h.zoomedMin===h.otherHandlePos?c=h.fixedExtreme:h.zoomedMax===h.otherHandlePos&&(d=h.fixedExtreme),h.zoomedMax===h.navigatorWidth&&(d=h.getUnionExtremes().dataMax),c=l.toFixedRange(h.zoomedMin,h.zoomedMax,c,d),r(c.min)&&a.xAxis[0].setExtremes(c.min,c.max, +!0,h.hasDragged?!1:null,{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:e});"mousemove"!==b.DOMType&&(h.grabbedLeft=h.grabbedRight=h.grabbedCenter=h.fixedWidth=h.fixedExtreme=h.otherHandlePos=h.hasDragged=n=null)};var c=a.xAxis.length,f=a.yAxis.length,m=e&&e[0]&&e[0].xAxis||a.xAxis[0];a.extraBottomMargin=h.outlineHeight+d.margin;a.isDirtyBox=!0;h.navigatorEnabled?(h.xAxis=l=new G(a,q({breaks:m.options.breaks,ordinal:m.options.ordinal},d.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis", +isX:!0,type:"datetime",index:c,height:g,offset:0,offsetLeft:k,offsetRight:-k,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1})),h.yAxis=new G(a,q(d.yAxis,{id:"navigator-y-axis",alignTicks:!1,height:g,offset:0,index:f,zoomEnabled:!1})),e||d.series.data?h.addBaseSeries():0===a.series.length&&x(a,"redraw",function(b,c){0=Math.round(a.navigatorWidth);b&&!a.hasNavigatorData&&(b.options.pointStart=this.xData[0],b.setData(this.options.data,!1,null,!1))},destroy:function(){this.removeEvents();this.xAxis&&(m(this.chart.xAxis,this.xAxis),m(this.chart.axes,this.xAxis));this.yAxis&&(m(this.chart.yAxis,this.yAxis),m(this.chart.axes,this.yAxis));k(this.series||[],function(a){a.destroy&&a.destroy()});k("series xAxis yAxis leftShade rightShade outline scrollbarTrack scrollbarRifles scrollbarGroup scrollbar navigatorGroup rendered".split(" "), +function(a){this[a]&&this[a].destroy&&this[a].destroy();this[a]=null},this);k([this.handles,this.elementsToDestroy],function(a){w(a)},this)}};a.Navigator=D;x(G.prototype,"zoom",function(a,b,c){var d=this.chart,e=d.options,f=e.chart.zoomType,g=e.navigator,e=e.rangeSelector,h;this.isXAxis&&(g&&g.enabled||e&&e.enabled)&&("x"===f?d.resetZoomButton="blocked":"y"===f?h=!1:"xy"===f&&(d=this.previousZoom,r(b)?this.previousZoom=[this.min,this.max]:d&&(b=d[0],c=d[1],delete this.previousZoom)));return void 0!== +h?h:a.call(this,b,c)});x(H.prototype,"init",function(a,b,c){B(this,"beforeRender",function(){var a=this.options;if(a.navigator.enabled||a.scrollbar.enabled)this.scroller=this.navigator=new D(this)});a.call(this,b,c)});x(H.prototype,"getMargins",function(a){var b=this.legend,c=b.options,d=this.scroller,e,f;a.apply(this,[].slice.call(arguments,1));d&&(e=d.xAxis,f=d.yAxis,d.top=d.navigatorOptions.top||this.chartHeight-d.height-d.scrollbarHeight-this.spacing[2]-("bottom"===c.verticalAlign&&c.enabled&& +!c.floating?b.legendHeight+E(c.margin,10):0),e&&f&&(e.options.top=f.options.top=d.top,e.setAxisSize(),f.setAxisSize()))});x(n.prototype,"addPoint",function(a,b,c,f,g){var h=this.options.turboThreshold;h&&this.xData.length>h&&d(b,!0)&&this.chart.scroller&&e(20,!0);a.call(this,b,c,f,g)});x(H.prototype,"addSeries",function(a,b,c,d){a=a.call(this,b,!1,d);this.scroller&&this.scroller.setBaseSeries();E(c,!0)&&this.redraw();return a});x(n.prototype,"update",function(a,b,c){a.call(this,b,!1);this.chart.scroller&& +this.chart.scroller.setBaseSeries();E(c,!0)&&this.chart.redraw()})})(N);(function(a){function D(a){this.init(a)}var B=a.addEvent,G=a.Axis,H=a.Chart,p=a.css,l=a.createElement,r=a.dateFormat,w=a.defaultOptions,t=w.global.useUTC,k=a.defined,m=a.destroyObjectProperties,e=a.discardElement,g=a.each,h=a.extend,C=a.fireEvent,f=a.Date,d=a.isNumber,b=a.merge,q=a.pick,E=a.pInt,c=a.splat,F=a.wrap;h(w,{rangeSelector:{buttonTheme:{"stroke-width":0,width:28,height:18,padding:2,zIndex:7},height:35,inputPosition:{align:"right"}, +labelStyle:{color:"#666666"}}});w.lang=b(w.lang,{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"From",rangeSelectorTo:"To"});D.prototype={clickButton:function(a,b){var e=this,f=e.chart,h=e.buttonOptions[a],k=f.xAxis[0],l=f.scroller&&f.scroller.getUnionExtremes()||k||{},n=l.dataMin,m=l.dataMax,p,r=k&&Math.round(Math.min(k.max,q(m,k.max))),w=h.type,z,l=h._range,A,C,D,E=h.dataGrouping;if(null!==n&&null!==m){f.fixedRange=l;E&&(this.forcedDataGrouping=!0,G.prototype.setDataGrouping.call(k||{chart:this.chart}, +E,!1));if("month"===w||"year"===w)k?(w={range:h,max:r,dataMin:n,dataMax:m},p=k.minFromRange.call(w),d(w.newMax)&&(r=w.newMax)):l=h;else if(l)p=Math.max(r-l,n),r=Math.min(p+l,m);else if("ytd"===w)if(k)void 0===m&&(n=Number.MAX_VALUE,m=Number.MIN_VALUE,g(f.series,function(a){a=a.xData;n=Math.min(a[0],n);m=Math.max(a[a.length-1],m)}),b=!1),r=e.getYTDExtremes(m,n,t),p=A=r.min,r=r.max;else{B(f,"beforeRender",function(){e.clickButton(a)});return}else"all"===w&&k&&(p=n,r=m);e.setSelected(a);k?k.setExtremes(p, +r,q(b,1),null,{trigger:"rangeSelectorButton",rangeSelectorButton:h}):(z=c(f.options.xAxis)[0],D=z.range,z.range=l,C=z.min,z.min=A,B(f,"load",function(){z.range=D;z.min=C}))}},setSelected:function(a){this.selected=this.options.selected=a},defaultButtons:[{type:"month",count:1,text:"1m"},{type:"month",count:3,text:"3m"},{type:"month",count:6,text:"6m"},{type:"ytd",text:"YTD"},{type:"year",count:1,text:"1y"},{type:"all",text:"All"}],init:function(a){var b=this,c=a.options.rangeSelector,d=c.buttons|| +[].concat(b.defaultButtons),e=c.selected,f=function(){var a=b.minInput,c=b.maxInput;a&&a.blur&&C(a,"blur");c&&c.blur&&C(c,"blur")};b.chart=a;b.options=c;b.buttons=[];a.extraTopMargin=c.height;b.buttonOptions=d;this.unMouseDown=B(a.container,"mousedown",f);this.unResize=B(a,"resize",f);g(d,b.computeButtonRange);void 0!==e&&d[e]&&this.clickButton(e,!1);B(a,"load",function(){B(a.xAxis[0],"setExtremes",function(c){this.max-this.min!==a.fixedRange&&"rangeSelectorButton"!==c.trigger&&"updatedData"!==c.trigger&& +b.forcedDataGrouping&&this.setDataGrouping(!1,!1)})})},updateButtonStates:function(){var a=this.chart,b=a.xAxis[0],c=Math.round(b.max-b.min),e=!b.hasVisibleSeries,a=a.scroller&&a.scroller.getUnionExtremes()||b,f=a.dataMin,h=a.dataMax,a=this.getYTDExtremes(h,f,t),k=a.min,l=a.max,m=this.selected,p=d(m),q=this.options.allButtonsEnabled,r=this.buttons;g(this.buttonOptions,function(a,d){var g=a._range,n=a.type,u=a.count||1;a=r[d];var t=0;d=d===m;var v=g>h-f,x=g=864E5*{month:28,year:365}[n]*u&&c<=864E5*{month:31,year:366}[n]*u?g=!0:"ytd"===n?(g=l-k===c,y=!d):"all"===n&&(g=b.max-b.min>=h-f,w=!d&&p&&g);n=!q&&(v||x||w||e);g=d&&g||g&&!p&&!y;n?t=3:g&&(p=!0,t=2);a.state!==t&&a.setState(t)})},computeButtonRange:function(a){var b=a.type,c=a.count||1,d={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5};if(d[b])a._range=d[b]*c;else if("month"===b||"year"===b)a._range=864E5*{month:30,year:365}[b]*c},setInputValue:function(a,b){var c= +this.chart.options.rangeSelector,d=this[a+"Input"];k(b)&&(d.previousValue=d.HCTime,d.HCTime=b);d.value=r(c.inputEditDateFormat||"%Y-%m-%d",d.HCTime);this[a+"DateBox"].attr({text:r(c.inputDateFormat||"%b %e, %Y",d.HCTime)})},showInput:function(a){var b=this.inputGroup,c=this[a+"DateBox"];p(this[a+"Input"],{left:b.translateX+c.x+"px",top:b.translateY+"px",width:c.width-2+"px",height:c.height-2+"px",border:"2px solid silver"})},hideInput:function(a){p(this[a+"Input"],{border:0,width:"1px",height:"1px"}); +this.setInputValue(a)},drawInput:function(a){function c(){var a=r.value,b=(m.inputDateParser||Date.parse)(a),c=f.xAxis[0],g=f.scroller&&f.scroller.xAxis?f.scroller.xAxis:c,h=g.dataMin,g=g.dataMax;b!==r.previousValue&&(r.previousValue=b,d(b)||(b=a.split("-"),b=Date.UTC(E(b[0]),E(b[1])-1,E(b[2]))),d(b)&&(t||(b+=6E4*(new Date).getTimezoneOffset()),q?b>e.maxInput.HCTime?b=void 0:bg&&(b=g),void 0!==b&&c.setExtremes(q?b:c.min,q?c.max:b,void 0,void 0,{trigger:"rangeSelectorInput"})))} +var e=this,f=e.chart,g=f.renderer.style||{},k=f.renderer,m=f.options.rangeSelector,n=e.div,q="min"===a,r,B,C=this.inputGroup;this[a+"Label"]=B=k.label(w.lang[q?"rangeSelectorFrom":"rangeSelectorTo"],this.inputGroup.offset).addClass("highcharts-range-label").attr({padding:2}).add(C);C.offset+=B.width+5;this[a+"DateBox"]=k=k.label("",C.offset).addClass("highcharts-range-input").attr({padding:2,width:m.inputBoxWidth||90,height:m.inputBoxHeight||17,stroke:m.inputBoxBorderColor||"#cccccc","stroke-width":1, +"text-align":"center"}).on("click",function(){e.showInput(a);e[a+"Input"].focus()}).add(C);C.offset+=k.width+(q?10:0);this[a+"Input"]=r=l("input",{name:a,className:"highcharts-range-selector",type:"text"},{top:f.plotTop+"px"},n);B.css(b(g,m.labelStyle));k.css(b({color:"#333333"},g,m.inputStyle));p(r,h({position:"absolute",border:0,width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:g.fontSize,fontFamily:g.fontFamily,left:"-9em"},m.inputStyle));r.onfocus=function(){e.showInput(a)};r.onblur= +function(){e.hideInput(a)};r.onchange=c;r.onkeypress=function(a){13===a.keyCode&&c()}},getPosition:function(){var a=this.chart,b=a.options.rangeSelector,a=q((b.buttonPosition||{}).y,a.plotTop-a.axisOffset[0]-b.height);return{buttonTop:a,inputTop:a-10}},getYTDExtremes:function(a,b,c){var d=new f(a),e=d[f.hcGetFullYear]();c=c?f.UTC(e,0,1):+new f(e,0,1);b=Math.max(b||0,c);d=d.getTime();return{max:Math.min(a||d,d),min:b}},render:function(a,b){var c=this,d=c.chart,e=d.renderer,f=d.container,m=d.options, +n=m.exporting&&!1!==m.exporting.enabled&&m.navigation&&m.navigation.buttonOptions,p=m.rangeSelector,r=c.buttons,m=w.lang,t=c.div,t=c.inputGroup,A=p.buttonTheme,z=p.buttonPosition||{},B=p.inputEnabled,C=A&&A.states,D=d.plotLeft,E,G=this.getPosition(),F=c.group,H=c.rendered;!1!==p.enabled&&(H||(c.group=F=e.g("range-selector-buttons").add(),c.zoomText=e.text(m.rangeSelectorZoom,q(z.x,D),15).css(p.labelStyle).add(F),E=q(z.x,D)+c.zoomText.getBBox().width+5,g(c.buttonOptions,function(a,b){r[b]=e.button(a.text, +E,0,function(){c.clickButton(b);c.isActive=!0},A,C&&C.hover,C&&C.select,C&&C.disabled).attr({"text-align":"center"}).add(F);E+=r[b].width+q(p.buttonSpacing,5)}),!1!==B&&(c.div=t=l("div",null,{position:"relative",height:0,zIndex:1}),f.parentNode.insertBefore(t,f),c.inputGroup=t=e.g("input-group").add(),t.offset=0,c.drawInput("min"),c.drawInput("max"))),c.updateButtonStates(),F[H?"animate":"attr"]({translateY:G.buttonTop}),!1!==B&&(t.align(h({y:G.inputTop,width:t.offset,x:n&&G.inputTop<(n.y||0)+n.height- +d.spacing[0]?-40:0},p.inputPosition),!0,d.spacingBox),k(B)||(d=F.getBBox(),t[t.alignAttr.translateXc&&(e?a=b-f:b=a+f);d(a)||(a=b=void 0);return{min:a,max:b}};G.prototype.minFromRange=function(){var a=this.range,b={month:"Month",year:"FullYear"}[a.type],c,e=this.max,f,g,h=function(a,c){var d=new Date(a);d["set"+b](d["get"+ +b]()+c);return d.getTime()-a};d(a)?(c=e-a,g=a):(c=e+h(e,-a.count),this.chart&&(this.chart.fixedRange=e-c));f=q(this.dataMin,Number.MIN_VALUE);d(c)||(c=f);c<=f&&(c=f,void 0===g&&(g=h(c,a.count)),this.newMax=Math.min(c+g,this.dataMax));d(e)||(c=void 0);return c};F(H.prototype,"init",function(a,b,c){B(this,"init",function(){this.options.rangeSelector.enabled&&(this.rangeSelector=new D(this))});a.call(this,b,c)});a.RangeSelector=D})(N);(function(a){var D=a.addEvent,B=a.isNumber;a.Chart.prototype.callbacks.push(function(a){function G(){p= +a.xAxis[0].getExtremes();B(p.min)&&r.render(p.min,p.max)}var p,l=a.scroller,r=a.rangeSelector,w,t;l&&(p=a.xAxis[0].getExtremes(),l.render(p.min,p.max));r&&(t=D(a.xAxis[0],"afterSetExtremes",function(a){r.render(a.min,a.max)}),w=D(a,"redraw",G),G());D(a,"destroy",function(){r&&(w(),t())})})})(N);(function(a){var D=a.arrayMax,B=a.arrayMin,G=a.Axis,H=a.Chart,p=a.defined,l=a.each,r=a.extend,w=a.format,t=a.inArray,k=a.isNumber,m=a.isString,e=a.map,g=a.merge,h=a.pick,C=a.Point,f=a.Renderer,d=a.Series,b= +a.splat,q=a.stop,E=a.SVGRenderer,c=a.VMLRenderer,F=a.wrap,n=d.prototype,A=n.init,x=n.processData,J=C.prototype.tooltipFormatter;a.StockChart=a.stockChart=function(c,d,f){var k=m(c)||c.nodeName,l=arguments[k?1:0],n=l.series,p=a.getOptions(),q,r=h(l.navigator&&l.navigator.enabled,!0)?{startOnTick:!1,endOnTick:!1}:null,t={marker:{enabled:!1,radius:2}},u={shadow:!1,borderWidth:0};l.xAxis=e(b(l.xAxis||{}),function(a){return g({minPadding:0,maxPadding:0,ordinal:!0,title:{text:null},labels:{overflow:"justify"}, +showLastLabel:!0},p.xAxis,a,{type:"datetime",categories:null},r)});l.yAxis=e(b(l.yAxis||{}),function(a){q=h(a.opposite,!0);return g({labels:{y:-2},opposite:q,showLastLabel:!1,title:{text:null}},p.yAxis,a)});l.series=null;l=g({chart:{panning:!0,pinchType:"x"},navigator:{enabled:!0},scrollbar:{enabled:!0},rangeSelector:{enabled:!0},title:{text:null,style:{fontSize:"16px"}},tooltip:{shared:!0,crosshairs:!0},legend:{enabled:!1},plotOptions:{line:t,spline:t,area:t,areaspline:t,arearange:t,areasplinerange:t, +column:u,columnrange:u,candlestick:u,ohlc:u}},l,{_stock:!0,chart:{inverted:!1}});l.series=n;return k?new H(c,l,f):new H(l,d)};F(G.prototype,"autoLabelAlign",function(a){var b=this.chart,c=this.options,b=b._labelPanes=b._labelPanes||{},d=this.options.labels;return this.chart.options._stock&&"yAxis"===this.coll&&(c=c.top+","+c.height,!b[c]&&d.enabled)?(15===d.x&&(d.x=0),void 0===d.align&&(d.align="right"),b[c]=1,"right"):a.call(this,[].slice.call(arguments,1))});F(G.prototype,"getPlotLinePath",function(a, +b,c,d,f,g){var n=this,q=this.isLinked&&!this.series?this.linkedParent.series:this.series,r=n.chart,u=r.renderer,v=n.left,w=n.top,y,x,A,B,C=[],D=[],E,F;if("colorAxis"===n.coll)return a.apply(this,[].slice.call(arguments,1));D=function(a){var b="xAxis"===a?"yAxis":"xAxis";a=n.options[b];return k(a)?[r[b][a]]:m(a)?[r.get(a)]:e(q,function(a){return a[b]})}(n.coll);l(n.isXAxis?r.yAxis:r.xAxis,function(a){if(p(a.options.id)?-1===a.options.id.indexOf("navigator"):1){var b=a.isXAxis?"yAxis":"xAxis",b=p(a.options[b])? +r[b][a.options[b]]:r[b][0];n===b&&D.push(a)}});E=D.length?[]:[n.isXAxis?r.yAxis[0]:r.xAxis[0]];l(D,function(a){-1===t(a,E)&&E.push(a)});F=h(g,n.translate(b,null,null,d));k(F)&&(n.horiz?l(E,function(a){var b;x=a.pos;B=x+a.len;y=A=Math.round(F+n.transB);if(yv+n.width)f?y=A=Math.min(Math.max(v,y),v+n.width):b=!0;b||C.push("M",y,x,"L",A,B)}):l(E,function(a){var b;y=a.pos;A=y+a.len;x=B=Math.round(w+n.height-F);if(xw+n.height)f?x=B=Math.min(Math.max(w,x),n.top+n.height):b=!0;b||C.push("M",y, +x,"L",A,B)}));return 0=e&&(x=-(l.translateX+b.width-e));l.attr({x:m+x,y:k,anchorX:g?m:this.opposite?0:a.chartWidth,anchorY:g?this.opposite?a.chartHeight:0:k+b.height/2})}});n.init=function(){A.apply(this,arguments);this.setCompare(this.options.compare)};n.setCompare=function(a){this.modifyValue= +"value"===a||"percent"===a?function(b,c){var d=this.compareValue;if(void 0!==b&&void 0!==d)return b="value"===a?b-d:b=b/d*100-100,c&&(c.change=b),b}:null;this.userOptions.compare=a;this.chart.hasRendered&&(this.isDirty=!0)};n.processData=function(){var a,b=-1,c,d,e,f;x.apply(this,arguments);if(this.xAxis&&this.processedYData)for(c=this.processedXData,d=this.processedYData,e=d.length,this.pointArrayMap&&(b=t("close",this.pointArrayMap),-1===b&&(b=t(this.pointValKey||"y",this.pointArrayMap))),a=0;a< +e-1;a++)if(f=-1=this.xAxis.min&&0!==f){this.compareValue=f;break}};F(n,"getExtremes",function(a){var b;a.apply(this,[].slice.call(arguments,1));this.modifyValue&&(b=[this.modifyValue(this.dataMin),this.modifyValue(this.dataMax)],this.dataMin=B(b),this.dataMax=D(b))});G.prototype.setCompare=function(a,b){this.isXAxis||(l(this.series,function(b){b.setCompare(a)}),h(b,!0)&&this.chart.redraw())};C.prototype.tooltipFormatter=function(b){b=b.replace("{point.change}",(0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=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))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(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&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(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&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(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 ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);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&&E){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=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(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(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===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]||se.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]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(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(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(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=se.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 D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.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 S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(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 qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.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)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.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),m(t)&&(t=t.call(e,n,S.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):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.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"===S.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"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(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)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(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?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.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)}}),S.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){S.fn[n]=function(e,t){return 0 '; + else + var expandButton = ''; + + return '' + expandButton + '' + ellipsedLabel({ name: item.name, parentClass: "nav-tooltip", childClass: "nav-label" }) + ''; +} + +function menuItemsForGroup(group, level, parent) { + var items = ''; + + if (level > 0) + items += menuItem(group, level - 1, parent, true); + + $.each(group.contents, function (contentName, content) { + if (content.type == 'GROUP') + items += menuItemsForGroup(content, level + 1, group.pathFormatted); + else if (content.type == 'REQUEST') + items += menuItem(content, level, group.pathFormatted); + }); + + return items; +} + +function setDetailsMenu(){ + $('.nav ul').append(menuItemsForGroup(stats, 0)); + $('.nav').expandable(); + $('.nav-tooltip').popover({trigger:'hover'}); +} + +function setGlobalMenu(){ + $('.nav ul') + .append('
  • Ranges
  • ') + .append('
  • Stats
  • ') + .append('
  • Active Users
  • ') + .append('
  • Requests / sec
  • ') + .append('
  • Responses / sec
  • '); +} + +function getLink(link){ + var a = link.split('/'); + return (a.length<=1)? link : a[a.length-1]; +} + +function expandUp(li) { + const parentId = li.attr("data-parent"); + if (parentId != "ROOT") { + const span = $('#' + parentId); + const parentLi = span.parents('li').first(); + span.expand(parentLi, false); + expandUp(parentLi); + } +} + +function setActiveMenu(){ + $('.nav a').each(function() { + const navA = $(this) + if(!navA.hasClass('expand-button') && navA.attr('href') == getLink(window.location.pathname)) { + const li = $(this).parents('li').first(); + li.addClass('on'); + expandUp(li); + return false; + } + }); +} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/stats.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/stats.js new file mode 100644 index 0000000..fa3d74f --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/stats.js @@ -0,0 +1,1523 @@ +var stats = { + type: "GROUP", +name: "All Requests", +path: "", +pathFormatted: "group_missing-name--1146707516", +stats: { + "name": "All Requests", + "numberOfRequests": { + "total": "2057", + "ok": "2057", + "ko": "0" + }, + "minResponseTime": { + "total": "24", + "ok": "24", + "ko": "-" + }, + "maxResponseTime": { + "total": "1809", + "ok": "1809", + "ko": "-" + }, + "meanResponseTime": { + "total": "128", + "ok": "128", + "ko": "-" + }, + "standardDeviation": { + "total": "189", + "ok": "189", + "ko": "-" + }, + "percentiles1": { + "total": "78", + "ok": "78", + "ko": "-" + }, + "percentiles2": { + "total": "88", + "ok": "88", + "ko": "-" + }, + "percentiles3": { + "total": "507", + "ok": "507", + "ko": "-" + }, + "percentiles4": { + "total": "1054", + "ok": "1054", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 2019, + "percentage": 98 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 24, + "percentage": 1 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 14, + "percentage": 1 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "15.583", + "ok": "15.583", + "ko": "-" + } +}, +contents: { +"req_request-0-693933696": { + type: "REQUEST", + name: "request_0", +path: "request_0", +pathFormatted: "req_request-0-693933696", +stats: { + "name": "request_0", + "numberOfRequests": { + "total": "121", + "ok": "121", + "ko": "0" + }, + "minResponseTime": { + "total": "73", + "ok": "73", + "ko": "-" + }, + "maxResponseTime": { + "total": "251", + "ok": "251", + "ko": "-" + }, + "meanResponseTime": { + "total": "89", + "ok": "89", + "ko": "-" + }, + "standardDeviation": { + "total": "25", + "ok": "25", + "ko": "-" + }, + "percentiles1": { + "total": "82", + "ok": "82", + "ko": "-" + }, + "percentiles2": { + "total": "89", + "ok": "89", + "ko": "-" + }, + "percentiles3": { + "total": "133", + "ok": "133", + "ko": "-" + }, + "percentiles4": { + "total": "188", + "ok": "188", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.917", + "ok": "0.917", + "ko": "-" + } +} + },"req_request-1-693933697": { + type: "REQUEST", + name: "request_1", +path: "request_1", +pathFormatted: "req_request-1-693933697", +stats: { + "name": "request_1", + "numberOfRequests": { + "total": "121", + "ok": "121", + "ko": "0" + }, + "minResponseTime": { + "total": "36", + "ok": "36", + "ko": "-" + }, + "maxResponseTime": { + "total": "77", + "ok": "77", + "ko": "-" + }, + "meanResponseTime": { + "total": "42", + "ok": "42", + "ko": "-" + }, + "standardDeviation": { + "total": "7", + "ok": "7", + "ko": "-" + }, + "percentiles1": { + "total": "40", + "ok": "40", + "ko": "-" + }, + "percentiles2": { + "total": "41", + "ok": "41", + "ko": "-" + }, + "percentiles3": { + "total": "57", + "ok": "57", + "ko": "-" + }, + "percentiles4": { + "total": "69", + "ok": "69", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.917", + "ok": "0.917", + "ko": "-" + } +} + },"req_request-2-693933698": { + type: "REQUEST", + name: "request_2", +path: "request_2", +pathFormatted: "req_request-2-693933698", +stats: { + "name": "request_2", + "numberOfRequests": { + "total": "121", + "ok": "121", + "ko": "0" + }, + "minResponseTime": { + "total": "73", + "ok": "73", + "ko": "-" + }, + "maxResponseTime": { + "total": "165", + "ok": "165", + "ko": "-" + }, + "meanResponseTime": { + "total": "85", + "ok": "85", + "ko": "-" + }, + "standardDeviation": { + "total": "16", + "ok": "16", + "ko": "-" + }, + "percentiles1": { + "total": "81", + "ok": "81", + "ko": "-" + }, + "percentiles2": { + "total": "84", + "ok": "84", + "ko": "-" + }, + "percentiles3": { + "total": "126", + "ok": "126", + "ko": "-" + }, + "percentiles4": { + "total": "152", + "ok": "152", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.917", + "ok": "0.917", + "ko": "-" + } +} + },"req_request-3-693933699": { + type: "REQUEST", + name: "request_3", +path: "request_3", +pathFormatted: "req_request-3-693933699", +stats: { + "name": "request_3", + "numberOfRequests": { + "total": "121", + "ok": "121", + "ko": "0" + }, + "minResponseTime": { + "total": "73", + "ok": "73", + "ko": "-" + }, + "maxResponseTime": { + "total": "212", + "ok": "212", + "ko": "-" + }, + "meanResponseTime": { + "total": "88", + "ok": "88", + "ko": "-" + }, + "standardDeviation": { + "total": "22", + "ok": "22", + "ko": "-" + }, + "percentiles1": { + "total": "81", + "ok": "81", + "ko": "-" + }, + "percentiles2": { + "total": "87", + "ok": "87", + "ko": "-" + }, + "percentiles3": { + "total": "130", + "ok": "130", + "ko": "-" + }, + "percentiles4": { + "total": "195", + "ok": "195", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.917", + "ok": "0.917", + "ko": "-" + } +} + },"req_request-4-693933700": { + type: "REQUEST", + name: "request_4", +path: "request_4", +pathFormatted: "req_request-4-693933700", +stats: { + "name": "request_4", + "numberOfRequests": { + "total": "121", + "ok": "121", + "ko": "0" + }, + "minResponseTime": { + "total": "109", + "ok": "109", + "ko": "-" + }, + "maxResponseTime": { + "total": "250", + "ok": "250", + "ko": "-" + }, + "meanResponseTime": { + "total": "122", + "ok": "122", + "ko": "-" + }, + "standardDeviation": { + "total": "17", + "ok": "17", + "ko": "-" + }, + "percentiles1": { + "total": "116", + "ok": "116", + "ko": "-" + }, + "percentiles2": { + "total": "126", + "ok": "126", + "ko": "-" + }, + "percentiles3": { + "total": "149", + "ok": "149", + "ko": "-" + }, + "percentiles4": { + "total": "171", + "ok": "171", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.917", + "ok": "0.917", + "ko": "-" + } +} + },"req_request-5-693933701": { + type: "REQUEST", + name: "request_5", +path: "request_5", +pathFormatted: "req_request-5-693933701", +stats: { + "name": "request_5", + "numberOfRequests": { + "total": "121", + "ok": "121", + "ko": "0" + }, + "minResponseTime": { + "total": "295", + "ok": "295", + "ko": "-" + }, + "maxResponseTime": { + "total": "1473", + "ok": "1473", + "ko": "-" + }, + "meanResponseTime": { + "total": "396", + "ok": "396", + "ko": "-" + }, + "standardDeviation": { + "total": "145", + "ok": "145", + "ko": "-" + }, + "percentiles1": { + "total": "345", + "ok": "345", + "ko": "-" + }, + "percentiles2": { + "total": "428", + "ok": "428", + "ko": "-" + }, + "percentiles3": { + "total": "609", + "ok": "609", + "ko": "-" + }, + "percentiles4": { + "total": "874", + "ok": "874", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 118, + "percentage": 98 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 2, + "percentage": 2 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 1, + "percentage": 1 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.917", + "ok": "0.917", + "ko": "-" + } +} + },"req_request-6-693933702": { + type: "REQUEST", + name: "request_6", +path: "request_6", +pathFormatted: "req_request-6-693933702", +stats: { + "name": "request_6", + "numberOfRequests": { + "total": "121", + "ok": "121", + "ko": "0" + }, + "minResponseTime": { + "total": "385", + "ok": "385", + "ko": "-" + }, + "maxResponseTime": { + "total": "1809", + "ok": "1809", + "ko": "-" + }, + "meanResponseTime": { + "total": "723", + "ok": "723", + "ko": "-" + }, + "standardDeviation": { + "total": "310", + "ok": "310", + "ko": "-" + }, + "percentiles1": { + "total": "608", + "ok": "608", + "ko": "-" + }, + "percentiles2": { + "total": "879", + "ok": "879", + "ko": "-" + }, + "percentiles3": { + "total": "1348", + "ok": "1348", + "ko": "-" + }, + "percentiles4": { + "total": "1600", + "ok": "1600", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 86, + "percentage": 71 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 22, + "percentage": 18 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 13, + "percentage": 11 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.917", + "ok": "0.917", + "ko": "-" + } +} + },"req_request-7-693933703": { + type: "REQUEST", + name: "request_7", +path: "request_7", +pathFormatted: "req_request-7-693933703", +stats: { + "name": "request_7", + "numberOfRequests": { + "total": "121", + "ok": "121", + "ko": "0" + }, + "minResponseTime": { + "total": "38", + "ok": "38", + "ko": "-" + }, + "maxResponseTime": { + "total": "185", + "ok": "185", + "ko": "-" + }, + "meanResponseTime": { + "total": "50", + "ok": "50", + "ko": "-" + }, + "standardDeviation": { + "total": "22", + "ok": "22", + "ko": "-" + }, + "percentiles1": { + "total": "42", + "ok": "42", + "ko": "-" + }, + "percentiles2": { + "total": "45", + "ok": "45", + "ko": "-" + }, + "percentiles3": { + "total": "86", + "ok": "86", + "ko": "-" + }, + "percentiles4": { + "total": "124", + "ok": "124", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.917", + "ok": "0.917", + "ko": "-" + } +} + },"req_request-8-693933704": { + type: "REQUEST", + name: "request_8", +path: "request_8", +pathFormatted: "req_request-8-693933704", +stats: { + "name": "request_8", + "numberOfRequests": { + "total": "121", + "ok": "121", + "ko": "0" + }, + "minResponseTime": { + "total": "75", + "ok": "75", + "ko": "-" + }, + "maxResponseTime": { + "total": "255", + "ok": "255", + "ko": "-" + }, + "meanResponseTime": { + "total": "87", + "ok": "87", + "ko": "-" + }, + "standardDeviation": { + "total": "25", + "ok": "25", + "ko": "-" + }, + "percentiles1": { + "total": "82", + "ok": "82", + "ko": "-" + }, + "percentiles2": { + "total": "83", + "ok": "83", + "ko": "-" + }, + "percentiles3": { + "total": "133", + "ok": "133", + "ko": "-" + }, + "percentiles4": { + "total": "204", + "ok": "204", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.917", + "ok": "0.917", + "ko": "-" + } +} + },"req_request-9-693933705": { + type: "REQUEST", + name: "request_9", +path: "request_9", +pathFormatted: "req_request-9-693933705", +stats: { + "name": "request_9", + "numberOfRequests": { + "total": "121", + "ok": "121", + "ko": "0" + }, + "minResponseTime": { + "total": "75", + "ok": "75", + "ko": "-" + }, + "maxResponseTime": { + "total": "282", + "ok": "282", + "ko": "-" + }, + "meanResponseTime": { + "total": "87", + "ok": "87", + "ko": "-" + }, + "standardDeviation": { + "total": "24", + "ok": "24", + "ko": "-" + }, + "percentiles1": { + "total": "82", + "ok": "82", + "ko": "-" + }, + "percentiles2": { + "total": "84", + "ok": "84", + "ko": "-" + }, + "percentiles3": { + "total": "127", + "ok": "127", + "ko": "-" + }, + "percentiles4": { + "total": "167", + "ok": "167", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.917", + "ok": "0.917", + "ko": "-" + } +} + },"req_request-10-37108175": { + type: "REQUEST", + name: "request_10", +path: "request_10", +pathFormatted: "req_request-10-37108175", +stats: { + "name": "request_10", + "numberOfRequests": { + "total": "121", + "ok": "121", + "ko": "0" + }, + "minResponseTime": { + "total": "77", + "ok": "77", + "ko": "-" + }, + "maxResponseTime": { + "total": "189", + "ok": "189", + "ko": "-" + }, + "meanResponseTime": { + "total": "85", + "ok": "85", + "ko": "-" + }, + "standardDeviation": { + "total": "16", + "ok": "16", + "ko": "-" + }, + "percentiles1": { + "total": "80", + "ok": "80", + "ko": "-" + }, + "percentiles2": { + "total": "84", + "ok": "84", + "ko": "-" + }, + "percentiles3": { + "total": "108", + "ok": "108", + "ko": "-" + }, + "percentiles4": { + "total": "163", + "ok": "163", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.917", + "ok": "0.917", + "ko": "-" + } +} + },"req_request-11-37108176": { + type: "REQUEST", + name: "request_11", +path: "request_11", +pathFormatted: "req_request-11-37108176", +stats: { + "name": "request_11", + "numberOfRequests": { + "total": "121", + "ok": "121", + "ko": "0" + }, + "minResponseTime": { + "total": "39", + "ok": "39", + "ko": "-" + }, + "maxResponseTime": { + "total": "86", + "ok": "86", + "ko": "-" + }, + "meanResponseTime": { + "total": "43", + "ok": "43", + "ko": "-" + }, + "standardDeviation": { + "total": "6", + "ok": "6", + "ko": "-" + }, + "percentiles1": { + "total": "41", + "ok": "41", + "ko": "-" + }, + "percentiles2": { + "total": "44", + "ok": "44", + "ko": "-" + }, + "percentiles3": { + "total": "51", + "ok": "51", + "ko": "-" + }, + "percentiles4": { + "total": "63", + "ok": "63", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.917", + "ok": "0.917", + "ko": "-" + } +} + },"req_request-12-37108177": { + type: "REQUEST", + name: "request_12", +path: "request_12", +pathFormatted: "req_request-12-37108177", +stats: { + "name": "request_12", + "numberOfRequests": { + "total": "121", + "ok": "121", + "ko": "0" + }, + "minResponseTime": { + "total": "24", + "ok": "24", + "ko": "-" + }, + "maxResponseTime": { + "total": "494", + "ok": "494", + "ko": "-" + }, + "meanResponseTime": { + "total": "36", + "ok": "36", + "ko": "-" + }, + "standardDeviation": { + "total": "52", + "ok": "52", + "ko": "-" + }, + "percentiles1": { + "total": "25", + "ok": "25", + "ko": "-" + }, + "percentiles2": { + "total": "30", + "ok": "30", + "ko": "-" + }, + "percentiles3": { + "total": "41", + "ok": "41", + "ko": "-" + }, + "percentiles4": { + "total": "280", + "ok": "280", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.917", + "ok": "0.917", + "ko": "-" + } +} + },"req_request-14-37108179": { + type: "REQUEST", + name: "request_14", +path: "request_14", +pathFormatted: "req_request-14-37108179", +stats: { + "name": "request_14", + "numberOfRequests": { + "total": "121", + "ok": "121", + "ko": "0" + }, + "minResponseTime": { + "total": "35", + "ok": "35", + "ko": "-" + }, + "maxResponseTime": { + "total": "54", + "ok": "54", + "ko": "-" + }, + "meanResponseTime": { + "total": "38", + "ok": "38", + "ko": "-" + }, + "standardDeviation": { + "total": "2", + "ok": "2", + "ko": "-" + }, + "percentiles1": { + "total": "37", + "ok": "37", + "ko": "-" + }, + "percentiles2": { + "total": "39", + "ok": "39", + "ko": "-" + }, + "percentiles3": { + "total": "40", + "ok": "40", + "ko": "-" + }, + "percentiles4": { + "total": "45", + "ok": "45", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.917", + "ok": "0.917", + "ko": "-" + } +} + },"req_request-15-37108180": { + type: "REQUEST", + name: "request_15", +path: "request_15", +pathFormatted: "req_request-15-37108180", +stats: { + "name": "request_15", + "numberOfRequests": { + "total": "121", + "ok": "121", + "ko": "0" + }, + "minResponseTime": { + "total": "39", + "ok": "39", + "ko": "-" + }, + "maxResponseTime": { + "total": "57", + "ok": "57", + "ko": "-" + }, + "meanResponseTime": { + "total": "43", + "ok": "43", + "ko": "-" + }, + "standardDeviation": { + "total": "3", + "ok": "3", + "ko": "-" + }, + "percentiles1": { + "total": "42", + "ok": "42", + "ko": "-" + }, + "percentiles2": { + "total": "44", + "ok": "44", + "ko": "-" + }, + "percentiles3": { + "total": "45", + "ok": "45", + "ko": "-" + }, + "percentiles4": { + "total": "56", + "ok": "56", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.917", + "ok": "0.917", + "ko": "-" + } +} + },"req_request-16-37108181": { + type: "REQUEST", + name: "request_16", +path: "request_16", +pathFormatted: "req_request-16-37108181", +stats: { + "name": "request_16", + "numberOfRequests": { + "total": "121", + "ok": "121", + "ko": "0" + }, + "minResponseTime": { + "total": "75", + "ok": "75", + "ko": "-" + }, + "maxResponseTime": { + "total": "157", + "ok": "157", + "ko": "-" + }, + "meanResponseTime": { + "total": "81", + "ok": "81", + "ko": "-" + }, + "standardDeviation": { + "total": "10", + "ok": "10", + "ko": "-" + }, + "percentiles1": { + "total": "82", + "ok": "82", + "ko": "-" + }, + "percentiles2": { + "total": "83", + "ok": "83", + "ko": "-" + }, + "percentiles3": { + "total": "84", + "ok": "84", + "ko": "-" + }, + "percentiles4": { + "total": "134", + "ok": "134", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.917", + "ok": "0.917", + "ko": "-" + } +} + },"req_request-17-37108182": { + type: "REQUEST", + name: "request_17", +path: "request_17", +pathFormatted: "req_request-17-37108182", +stats: { + "name": "request_17", + "numberOfRequests": { + "total": "121", + "ok": "121", + "ko": "0" + }, + "minResponseTime": { + "total": "74", + "ok": "74", + "ko": "-" + }, + "maxResponseTime": { + "total": "84", + "ok": "84", + "ko": "-" + }, + "meanResponseTime": { + "total": "80", + "ok": "80", + "ko": "-" + }, + "standardDeviation": { + "total": "3", + "ok": "3", + "ko": "-" + }, + "percentiles1": { + "total": "78", + "ok": "78", + "ko": "-" + }, + "percentiles2": { + "total": "83", + "ok": "83", + "ko": "-" + }, + "percentiles3": { + "total": "84", + "ok": "84", + "ko": "-" + }, + "percentiles4": { + "total": "84", + "ok": "84", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "0.917", + "ok": "0.917", + "ko": "-" + } +} + } +} + +} + +function fillStats(stat){ + $("#numberOfRequests").append(stat.numberOfRequests.total); + $("#numberOfRequestsOK").append(stat.numberOfRequests.ok); + $("#numberOfRequestsKO").append(stat.numberOfRequests.ko); + + $("#minResponseTime").append(stat.minResponseTime.total); + $("#minResponseTimeOK").append(stat.minResponseTime.ok); + $("#minResponseTimeKO").append(stat.minResponseTime.ko); + + $("#maxResponseTime").append(stat.maxResponseTime.total); + $("#maxResponseTimeOK").append(stat.maxResponseTime.ok); + $("#maxResponseTimeKO").append(stat.maxResponseTime.ko); + + $("#meanResponseTime").append(stat.meanResponseTime.total); + $("#meanResponseTimeOK").append(stat.meanResponseTime.ok); + $("#meanResponseTimeKO").append(stat.meanResponseTime.ko); + + $("#standardDeviation").append(stat.standardDeviation.total); + $("#standardDeviationOK").append(stat.standardDeviation.ok); + $("#standardDeviationKO").append(stat.standardDeviation.ko); + + $("#percentiles1").append(stat.percentiles1.total); + $("#percentiles1OK").append(stat.percentiles1.ok); + $("#percentiles1KO").append(stat.percentiles1.ko); + + $("#percentiles2").append(stat.percentiles2.total); + $("#percentiles2OK").append(stat.percentiles2.ok); + $("#percentiles2KO").append(stat.percentiles2.ko); + + $("#percentiles3").append(stat.percentiles3.total); + $("#percentiles3OK").append(stat.percentiles3.ok); + $("#percentiles3KO").append(stat.percentiles3.ko); + + $("#percentiles4").append(stat.percentiles4.total); + $("#percentiles4OK").append(stat.percentiles4.ok); + $("#percentiles4KO").append(stat.percentiles4.ko); + + $("#meanNumberOfRequestsPerSecond").append(stat.meanNumberOfRequestsPerSecond.total); + $("#meanNumberOfRequestsPerSecondOK").append(stat.meanNumberOfRequestsPerSecond.ok); + $("#meanNumberOfRequestsPerSecondKO").append(stat.meanNumberOfRequestsPerSecond.ko); +} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/stats.json b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/stats.json new file mode 100644 index 0000000..915f16d --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/stats.json @@ -0,0 +1,1481 @@ +{ + "type": "GROUP", +"name": "All Requests", +"path": "", +"pathFormatted": "group_missing-name--1146707516", +"stats": { + "name": "All Requests", + "numberOfRequests": { + "total": 2057, + "ok": 2057, + "ko": 0 + }, + "minResponseTime": { + "total": 24, + "ok": 24, + "ko": 0 + }, + "maxResponseTime": { + "total": 1809, + "ok": 1809, + "ko": 0 + }, + "meanResponseTime": { + "total": 128, + "ok": 128, + "ko": 0 + }, + "standardDeviation": { + "total": 189, + "ok": 189, + "ko": 0 + }, + "percentiles1": { + "total": 78, + "ok": 78, + "ko": 0 + }, + "percentiles2": { + "total": 88, + "ok": 88, + "ko": 0 + }, + "percentiles3": { + "total": 507, + "ok": 507, + "ko": 0 + }, + "percentiles4": { + "total": 1054, + "ok": 1054, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 2019, + "percentage": 98 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 24, + "percentage": 1 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 14, + "percentage": 1 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 15.583333333333334, + "ok": 15.583333333333334, + "ko": 0 + } +}, +"contents": { +"req_request-0-693933696": { + "type": "REQUEST", + "name": "request_0", +"path": "request_0", +"pathFormatted": "req_request-0-693933696", +"stats": { + "name": "request_0", + "numberOfRequests": { + "total": 121, + "ok": 121, + "ko": 0 + }, + "minResponseTime": { + "total": 73, + "ok": 73, + "ko": 0 + }, + "maxResponseTime": { + "total": 251, + "ok": 251, + "ko": 0 + }, + "meanResponseTime": { + "total": 89, + "ok": 89, + "ko": 0 + }, + "standardDeviation": { + "total": 25, + "ok": 25, + "ko": 0 + }, + "percentiles1": { + "total": 82, + "ok": 82, + "ko": 0 + }, + "percentiles2": { + "total": 89, + "ok": 89, + "ko": 0 + }, + "percentiles3": { + "total": 133, + "ok": 133, + "ko": 0 + }, + "percentiles4": { + "total": 188, + "ok": 188, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9166666666666666, + "ok": 0.9166666666666666, + "ko": 0 + } +} + },"req_request-1-693933697": { + "type": "REQUEST", + "name": "request_1", +"path": "request_1", +"pathFormatted": "req_request-1-693933697", +"stats": { + "name": "request_1", + "numberOfRequests": { + "total": 121, + "ok": 121, + "ko": 0 + }, + "minResponseTime": { + "total": 36, + "ok": 36, + "ko": 0 + }, + "maxResponseTime": { + "total": 77, + "ok": 77, + "ko": 0 + }, + "meanResponseTime": { + "total": 42, + "ok": 42, + "ko": 0 + }, + "standardDeviation": { + "total": 7, + "ok": 7, + "ko": 0 + }, + "percentiles1": { + "total": 40, + "ok": 40, + "ko": 0 + }, + "percentiles2": { + "total": 41, + "ok": 41, + "ko": 0 + }, + "percentiles3": { + "total": 57, + "ok": 57, + "ko": 0 + }, + "percentiles4": { + "total": 69, + "ok": 69, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9166666666666666, + "ok": 0.9166666666666666, + "ko": 0 + } +} + },"req_request-2-693933698": { + "type": "REQUEST", + "name": "request_2", +"path": "request_2", +"pathFormatted": "req_request-2-693933698", +"stats": { + "name": "request_2", + "numberOfRequests": { + "total": 121, + "ok": 121, + "ko": 0 + }, + "minResponseTime": { + "total": 73, + "ok": 73, + "ko": 0 + }, + "maxResponseTime": { + "total": 165, + "ok": 165, + "ko": 0 + }, + "meanResponseTime": { + "total": 85, + "ok": 85, + "ko": 0 + }, + "standardDeviation": { + "total": 16, + "ok": 16, + "ko": 0 + }, + "percentiles1": { + "total": 81, + "ok": 81, + "ko": 0 + }, + "percentiles2": { + "total": 84, + "ok": 84, + "ko": 0 + }, + "percentiles3": { + "total": 126, + "ok": 126, + "ko": 0 + }, + "percentiles4": { + "total": 152, + "ok": 152, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9166666666666666, + "ok": 0.9166666666666666, + "ko": 0 + } +} + },"req_request-3-693933699": { + "type": "REQUEST", + "name": "request_3", +"path": "request_3", +"pathFormatted": "req_request-3-693933699", +"stats": { + "name": "request_3", + "numberOfRequests": { + "total": 121, + "ok": 121, + "ko": 0 + }, + "minResponseTime": { + "total": 73, + "ok": 73, + "ko": 0 + }, + "maxResponseTime": { + "total": 212, + "ok": 212, + "ko": 0 + }, + "meanResponseTime": { + "total": 88, + "ok": 88, + "ko": 0 + }, + "standardDeviation": { + "total": 22, + "ok": 22, + "ko": 0 + }, + "percentiles1": { + "total": 81, + "ok": 81, + "ko": 0 + }, + "percentiles2": { + "total": 87, + "ok": 87, + "ko": 0 + }, + "percentiles3": { + "total": 130, + "ok": 130, + "ko": 0 + }, + "percentiles4": { + "total": 195, + "ok": 195, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9166666666666666, + "ok": 0.9166666666666666, + "ko": 0 + } +} + },"req_request-4-693933700": { + "type": "REQUEST", + "name": "request_4", +"path": "request_4", +"pathFormatted": "req_request-4-693933700", +"stats": { + "name": "request_4", + "numberOfRequests": { + "total": 121, + "ok": 121, + "ko": 0 + }, + "minResponseTime": { + "total": 109, + "ok": 109, + "ko": 0 + }, + "maxResponseTime": { + "total": 250, + "ok": 250, + "ko": 0 + }, + "meanResponseTime": { + "total": 122, + "ok": 122, + "ko": 0 + }, + "standardDeviation": { + "total": 17, + "ok": 17, + "ko": 0 + }, + "percentiles1": { + "total": 116, + "ok": 116, + "ko": 0 + }, + "percentiles2": { + "total": 126, + "ok": 126, + "ko": 0 + }, + "percentiles3": { + "total": 149, + "ok": 149, + "ko": 0 + }, + "percentiles4": { + "total": 171, + "ok": 171, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9166666666666666, + "ok": 0.9166666666666666, + "ko": 0 + } +} + },"req_request-5-693933701": { + "type": "REQUEST", + "name": "request_5", +"path": "request_5", +"pathFormatted": "req_request-5-693933701", +"stats": { + "name": "request_5", + "numberOfRequests": { + "total": 121, + "ok": 121, + "ko": 0 + }, + "minResponseTime": { + "total": 295, + "ok": 295, + "ko": 0 + }, + "maxResponseTime": { + "total": 1473, + "ok": 1473, + "ko": 0 + }, + "meanResponseTime": { + "total": 396, + "ok": 396, + "ko": 0 + }, + "standardDeviation": { + "total": 145, + "ok": 145, + "ko": 0 + }, + "percentiles1": { + "total": 345, + "ok": 345, + "ko": 0 + }, + "percentiles2": { + "total": 428, + "ok": 428, + "ko": 0 + }, + "percentiles3": { + "total": 609, + "ok": 609, + "ko": 0 + }, + "percentiles4": { + "total": 874, + "ok": 874, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 118, + "percentage": 98 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 2, + "percentage": 2 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 1, + "percentage": 1 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9166666666666666, + "ok": 0.9166666666666666, + "ko": 0 + } +} + },"req_request-6-693933702": { + "type": "REQUEST", + "name": "request_6", +"path": "request_6", +"pathFormatted": "req_request-6-693933702", +"stats": { + "name": "request_6", + "numberOfRequests": { + "total": 121, + "ok": 121, + "ko": 0 + }, + "minResponseTime": { + "total": 385, + "ok": 385, + "ko": 0 + }, + "maxResponseTime": { + "total": 1809, + "ok": 1809, + "ko": 0 + }, + "meanResponseTime": { + "total": 723, + "ok": 723, + "ko": 0 + }, + "standardDeviation": { + "total": 310, + "ok": 310, + "ko": 0 + }, + "percentiles1": { + "total": 608, + "ok": 608, + "ko": 0 + }, + "percentiles2": { + "total": 879, + "ok": 879, + "ko": 0 + }, + "percentiles3": { + "total": 1348, + "ok": 1348, + "ko": 0 + }, + "percentiles4": { + "total": 1600, + "ok": 1600, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 86, + "percentage": 71 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 22, + "percentage": 18 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 13, + "percentage": 11 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9166666666666666, + "ok": 0.9166666666666666, + "ko": 0 + } +} + },"req_request-7-693933703": { + "type": "REQUEST", + "name": "request_7", +"path": "request_7", +"pathFormatted": "req_request-7-693933703", +"stats": { + "name": "request_7", + "numberOfRequests": { + "total": 121, + "ok": 121, + "ko": 0 + }, + "minResponseTime": { + "total": 38, + "ok": 38, + "ko": 0 + }, + "maxResponseTime": { + "total": 185, + "ok": 185, + "ko": 0 + }, + "meanResponseTime": { + "total": 50, + "ok": 50, + "ko": 0 + }, + "standardDeviation": { + "total": 22, + "ok": 22, + "ko": 0 + }, + "percentiles1": { + "total": 42, + "ok": 42, + "ko": 0 + }, + "percentiles2": { + "total": 45, + "ok": 45, + "ko": 0 + }, + "percentiles3": { + "total": 86, + "ok": 86, + "ko": 0 + }, + "percentiles4": { + "total": 124, + "ok": 124, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9166666666666666, + "ok": 0.9166666666666666, + "ko": 0 + } +} + },"req_request-8-693933704": { + "type": "REQUEST", + "name": "request_8", +"path": "request_8", +"pathFormatted": "req_request-8-693933704", +"stats": { + "name": "request_8", + "numberOfRequests": { + "total": 121, + "ok": 121, + "ko": 0 + }, + "minResponseTime": { + "total": 75, + "ok": 75, + "ko": 0 + }, + "maxResponseTime": { + "total": 255, + "ok": 255, + "ko": 0 + }, + "meanResponseTime": { + "total": 87, + "ok": 87, + "ko": 0 + }, + "standardDeviation": { + "total": 25, + "ok": 25, + "ko": 0 + }, + "percentiles1": { + "total": 82, + "ok": 82, + "ko": 0 + }, + "percentiles2": { + "total": 83, + "ok": 83, + "ko": 0 + }, + "percentiles3": { + "total": 133, + "ok": 133, + "ko": 0 + }, + "percentiles4": { + "total": 204, + "ok": 204, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9166666666666666, + "ok": 0.9166666666666666, + "ko": 0 + } +} + },"req_request-9-693933705": { + "type": "REQUEST", + "name": "request_9", +"path": "request_9", +"pathFormatted": "req_request-9-693933705", +"stats": { + "name": "request_9", + "numberOfRequests": { + "total": 121, + "ok": 121, + "ko": 0 + }, + "minResponseTime": { + "total": 75, + "ok": 75, + "ko": 0 + }, + "maxResponseTime": { + "total": 282, + "ok": 282, + "ko": 0 + }, + "meanResponseTime": { + "total": 87, + "ok": 87, + "ko": 0 + }, + "standardDeviation": { + "total": 24, + "ok": 24, + "ko": 0 + }, + "percentiles1": { + "total": 82, + "ok": 82, + "ko": 0 + }, + "percentiles2": { + "total": 84, + "ok": 84, + "ko": 0 + }, + "percentiles3": { + "total": 127, + "ok": 127, + "ko": 0 + }, + "percentiles4": { + "total": 167, + "ok": 167, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9166666666666666, + "ok": 0.9166666666666666, + "ko": 0 + } +} + },"req_request-10-37108175": { + "type": "REQUEST", + "name": "request_10", +"path": "request_10", +"pathFormatted": "req_request-10-37108175", +"stats": { + "name": "request_10", + "numberOfRequests": { + "total": 121, + "ok": 121, + "ko": 0 + }, + "minResponseTime": { + "total": 77, + "ok": 77, + "ko": 0 + }, + "maxResponseTime": { + "total": 189, + "ok": 189, + "ko": 0 + }, + "meanResponseTime": { + "total": 85, + "ok": 85, + "ko": 0 + }, + "standardDeviation": { + "total": 16, + "ok": 16, + "ko": 0 + }, + "percentiles1": { + "total": 80, + "ok": 80, + "ko": 0 + }, + "percentiles2": { + "total": 84, + "ok": 84, + "ko": 0 + }, + "percentiles3": { + "total": 108, + "ok": 108, + "ko": 0 + }, + "percentiles4": { + "total": 163, + "ok": 163, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9166666666666666, + "ok": 0.9166666666666666, + "ko": 0 + } +} + },"req_request-11-37108176": { + "type": "REQUEST", + "name": "request_11", +"path": "request_11", +"pathFormatted": "req_request-11-37108176", +"stats": { + "name": "request_11", + "numberOfRequests": { + "total": 121, + "ok": 121, + "ko": 0 + }, + "minResponseTime": { + "total": 39, + "ok": 39, + "ko": 0 + }, + "maxResponseTime": { + "total": 86, + "ok": 86, + "ko": 0 + }, + "meanResponseTime": { + "total": 43, + "ok": 43, + "ko": 0 + }, + "standardDeviation": { + "total": 6, + "ok": 6, + "ko": 0 + }, + "percentiles1": { + "total": 41, + "ok": 41, + "ko": 0 + }, + "percentiles2": { + "total": 44, + "ok": 44, + "ko": 0 + }, + "percentiles3": { + "total": 51, + "ok": 51, + "ko": 0 + }, + "percentiles4": { + "total": 63, + "ok": 63, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9166666666666666, + "ok": 0.9166666666666666, + "ko": 0 + } +} + },"req_request-12-37108177": { + "type": "REQUEST", + "name": "request_12", +"path": "request_12", +"pathFormatted": "req_request-12-37108177", +"stats": { + "name": "request_12", + "numberOfRequests": { + "total": 121, + "ok": 121, + "ko": 0 + }, + "minResponseTime": { + "total": 24, + "ok": 24, + "ko": 0 + }, + "maxResponseTime": { + "total": 494, + "ok": 494, + "ko": 0 + }, + "meanResponseTime": { + "total": 36, + "ok": 36, + "ko": 0 + }, + "standardDeviation": { + "total": 52, + "ok": 52, + "ko": 0 + }, + "percentiles1": { + "total": 25, + "ok": 25, + "ko": 0 + }, + "percentiles2": { + "total": 30, + "ok": 30, + "ko": 0 + }, + "percentiles3": { + "total": 41, + "ok": 41, + "ko": 0 + }, + "percentiles4": { + "total": 280, + "ok": 280, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9166666666666666, + "ok": 0.9166666666666666, + "ko": 0 + } +} + },"req_request-14-37108179": { + "type": "REQUEST", + "name": "request_14", +"path": "request_14", +"pathFormatted": "req_request-14-37108179", +"stats": { + "name": "request_14", + "numberOfRequests": { + "total": 121, + "ok": 121, + "ko": 0 + }, + "minResponseTime": { + "total": 35, + "ok": 35, + "ko": 0 + }, + "maxResponseTime": { + "total": 54, + "ok": 54, + "ko": 0 + }, + "meanResponseTime": { + "total": 38, + "ok": 38, + "ko": 0 + }, + "standardDeviation": { + "total": 2, + "ok": 2, + "ko": 0 + }, + "percentiles1": { + "total": 37, + "ok": 37, + "ko": 0 + }, + "percentiles2": { + "total": 39, + "ok": 39, + "ko": 0 + }, + "percentiles3": { + "total": 40, + "ok": 40, + "ko": 0 + }, + "percentiles4": { + "total": 45, + "ok": 45, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9166666666666666, + "ok": 0.9166666666666666, + "ko": 0 + } +} + },"req_request-15-37108180": { + "type": "REQUEST", + "name": "request_15", +"path": "request_15", +"pathFormatted": "req_request-15-37108180", +"stats": { + "name": "request_15", + "numberOfRequests": { + "total": 121, + "ok": 121, + "ko": 0 + }, + "minResponseTime": { + "total": 39, + "ok": 39, + "ko": 0 + }, + "maxResponseTime": { + "total": 57, + "ok": 57, + "ko": 0 + }, + "meanResponseTime": { + "total": 43, + "ok": 43, + "ko": 0 + }, + "standardDeviation": { + "total": 3, + "ok": 3, + "ko": 0 + }, + "percentiles1": { + "total": 42, + "ok": 42, + "ko": 0 + }, + "percentiles2": { + "total": 44, + "ok": 44, + "ko": 0 + }, + "percentiles3": { + "total": 45, + "ok": 45, + "ko": 0 + }, + "percentiles4": { + "total": 56, + "ok": 56, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9166666666666666, + "ok": 0.9166666666666666, + "ko": 0 + } +} + },"req_request-16-37108181": { + "type": "REQUEST", + "name": "request_16", +"path": "request_16", +"pathFormatted": "req_request-16-37108181", +"stats": { + "name": "request_16", + "numberOfRequests": { + "total": 121, + "ok": 121, + "ko": 0 + }, + "minResponseTime": { + "total": 75, + "ok": 75, + "ko": 0 + }, + "maxResponseTime": { + "total": 157, + "ok": 157, + "ko": 0 + }, + "meanResponseTime": { + "total": 81, + "ok": 81, + "ko": 0 + }, + "standardDeviation": { + "total": 10, + "ok": 10, + "ko": 0 + }, + "percentiles1": { + "total": 82, + "ok": 82, + "ko": 0 + }, + "percentiles2": { + "total": 83, + "ok": 83, + "ko": 0 + }, + "percentiles3": { + "total": 84, + "ok": 84, + "ko": 0 + }, + "percentiles4": { + "total": 134, + "ok": 134, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9166666666666666, + "ok": 0.9166666666666666, + "ko": 0 + } +} + },"req_request-17-37108182": { + "type": "REQUEST", + "name": "request_17", +"path": "request_17", +"pathFormatted": "req_request-17-37108182", +"stats": { + "name": "request_17", + "numberOfRequests": { + "total": 121, + "ok": 121, + "ko": 0 + }, + "minResponseTime": { + "total": 74, + "ok": 74, + "ko": 0 + }, + "maxResponseTime": { + "total": 84, + "ok": 84, + "ko": 0 + }, + "meanResponseTime": { + "total": 80, + "ok": 80, + "ko": 0 + }, + "standardDeviation": { + "total": 3, + "ok": 3, + "ko": 0 + }, + "percentiles1": { + "total": 78, + "ok": 78, + "ko": 0 + }, + "percentiles2": { + "total": 83, + "ok": 83, + "ko": 0 + }, + "percentiles3": { + "total": 84, + "ok": 84, + "ko": 0 + }, + "percentiles4": { + "total": 84, + "ok": 84, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 121, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 0.9166666666666666, + "ok": 0.9166666666666666, + "ko": 0 + } +} + } +} + +} \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/theme.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/theme.js new file mode 100644 index 0000000..b95a7b3 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/theme.js @@ -0,0 +1,127 @@ +/* + * Copyright 2011-2022 Gatling Corp + * + * Licensed under the Gatling Highcharts License + */ +Highcharts.theme = { + chart: { + backgroundColor: '#f7f7f7', + borderWidth: 0, + borderRadius: 8, + plotBackgroundColor: null, + plotShadow: false, + plotBorderWidth: 0 + }, + xAxis: { + gridLineWidth: 0, + lineColor: '#666', + tickColor: '#666', + labels: { + style: { + color: '#666' + } + }, + title: { + style: { + color: '#666' + } + } + }, + yAxis: { + alternateGridColor: null, + minorTickInterval: null, + gridLineColor: '#999', + lineWidth: 0, + tickWidth: 0, + labels: { + style: { + color: '#666', + fontWeight: 'bold' + } + }, + title: { + style: { + color: '#666', + font: 'bold 12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif' + } + } + }, + labels: { + style: { + color: '#CCC' + } + }, + + + rangeSelector: { + buttonTheme: { + fill: '#cfc9c6', + stroke: '#000000', + style: { + color: '#34332e', + fontWeight: 'bold', + borderColor: '#b2b2a9' + }, + states: { + hover: { + fill: '#92918C', + stroke: '#000000', + style: { + color: '#34332e', + fontWeight: 'bold', + borderColor: '#8b897d' + } + }, + select: { + fill: '#E37400', + stroke: '#000000', + style: { + color: '#FFF' + } + } + } + }, + inputStyle: { + backgroundColor: '#333', + color: 'silver' + }, + labelStyle: { + color: '#8b897d' + } + }, + + navigator: { + handles: { + backgroundColor: '#f7f7f7', + borderColor: '#92918C' + }, + outlineColor: '#92918C', + outlineWidth: 1, + maskFill: 'rgba(146, 145, 140, 0.5)', + series: { + color: '#5E7BE2', + lineColor: '#5E7BE2' + } + }, + + scrollbar: { + buttonBackgroundColor: '#f7f7f7', + buttonBorderWidth: 1, + buttonBorderColor: '#92918C', + buttonArrowColor: '#92918C', + buttonBorderRadius: 2, + + barBorderWidth: 1, + barBorderRadius: 0, + barBackgroundColor: '#92918C', + barBorderColor: '#92918C', + + rifleColor: '#92918C', + + trackBackgroundColor: '#b0b0a8', + trackBorderWidth: 1, + trackBorderColor: '#b0b0a8' + } +}; + +Highcharts.setOptions(Highcharts.theme); diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/unpack.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/unpack.js new file mode 100644 index 0000000..883c33e --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/js/unpack.js @@ -0,0 +1,38 @@ +'use strict'; + +var unpack = function (array) { + var findNbSeries = function (array) { + var currentPlotPack; + var length = array.length; + + for (var i = 0; i < length; i++) { + currentPlotPack = array[i][1]; + if(currentPlotPack !== null) { + return currentPlotPack.length; + } + } + return 0; + }; + + var i, j; + var nbPlots = array.length; + var nbSeries = findNbSeries(array); + + // Prepare unpacked array + var unpackedArray = new Array(nbSeries); + + for (i = 0; i < nbSeries; i++) { + unpackedArray[i] = new Array(nbPlots); + } + + // Unpack the array + for (i = 0; i < nbPlots; i++) { + var timestamp = array[i][0]; + var values = array[i][1]; + for (j = 0; j < nbSeries; j++) { + unpackedArray[j][i] = [timestamp * 1000, values === null ? null : values[j]]; + } + } + + return unpackedArray; +}; diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-0-693933696.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-0-693933696.html new file mode 100644 index 0000000..22f0f37 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-0-693933696.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_0 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-1-693933697.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-1-693933697.html new file mode 100644 index 0000000..9712d57 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-1-693933697.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_1 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-10-37108175.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-10-37108175.html new file mode 100644 index 0000000..8e31800 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-10-37108175.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_10 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-11-37108176.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-11-37108176.html new file mode 100644 index 0000000..2c1e0a9 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-11-37108176.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_11 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-12-37108177.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-12-37108177.html new file mode 100644 index 0000000..01986d3 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-12-37108177.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_12 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-14-37108179.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-14-37108179.html new file mode 100644 index 0000000..cc48c9a --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-14-37108179.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_14 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-15-37108180.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-15-37108180.html new file mode 100644 index 0000000..aebbdfd --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-15-37108180.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_15 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-16-37108181.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-16-37108181.html new file mode 100644 index 0000000..25be57a --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-16-37108181.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_16 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-17-37108182.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-17-37108182.html new file mode 100644 index 0000000..2ddcaa9 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-17-37108182.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_17 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-2-693933698.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-2-693933698.html new file mode 100644 index 0000000..859b93a --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-2-693933698.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_2 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-3-693933699.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-3-693933699.html new file mode 100644 index 0000000..c80aeb1 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-3-693933699.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_3 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-4-693933700.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-4-693933700.html new file mode 100644 index 0000000..914815d --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-4-693933700.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_4 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-5-693933701.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-5-693933701.html new file mode 100644 index 0000000..b6d4f09 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-5-693933701.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_5 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-6-693933702.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-6-693933702.html new file mode 100644 index 0000000..62e4f20 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-6-693933702.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_6 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-7-693933703.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-7-693933703.html new file mode 100644 index 0000000..0d05df9 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-7-693933703.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_7 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-8-693933704.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-8-693933704.html new file mode 100644 index 0000000..0b2b09d --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-8-693933704.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_8 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-9-693933705.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-9-693933705.html new file mode 100644 index 0000000..4d85fc5 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/req_request-9-693933705.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_9 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/bootstrap.min.css b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/bootstrap.min.css new file mode 100644 index 0000000..76a2b9b --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/bootstrap.min.css @@ -0,0 +1,27 @@ +.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;} +.clearfix:after{clear:both;} +.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;} +.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} +.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);} +.tooltip.top{margin-top:-3px;} +.tooltip.right{margin-left:3px;} +.tooltip.bottom{margin-top:3px;} +.tooltip.left{margin-left:-3px;} +.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;} +.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000;} +.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000;} +.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000;} +.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000;} +.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:750px;padding:1px;background-color:#ffffff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);}.popover.top{margin-top:-10px;} +.popover.right{margin-left:10px;} +.popover.bottom{margin-top:10px;} +.popover.left{margin-left:-10px;} +.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;} +.popover-content{padding:9px 14px;}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0;} +.popover .arrow,.popover .arrow:after{position:absolute;display:inline-block;width:0;height:0;border-color:transparent;border-style:solid;} +.popover .arrow:after{content:"";z-index:-1;} +.popover.top .arrow{bottom:-10px;left:50%;margin-left:-10px;border-width:10px 10px 0;border-top-color:#ffffff;}.popover.top .arrow:after{border-width:11px 11px 0;border-top-color:rgba(0, 0, 0, 0.25);bottom:-1px;left:-11px;} +.popover.right .arrow{top:50%;left:-10px;margin-top:-10px;border-width:10px 10px 10px 0;border-right-color:#ffffff;}.popover.right .arrow:after{border-width:11px 11px 11px 0;border-right-color:rgba(0, 0, 0, 0.25);bottom:-11px;left:-1px;} +.popover.bottom .arrow{top:-10px;left:50%;margin-left:-10px;border-width:0 10px 10px;border-bottom-color:#ffffff;}.popover.bottom .arrow:after{border-width:0 11px 11px;border-bottom-color:rgba(0, 0, 0, 0.25);top:-1px;left:-11px;} +.popover.left .arrow{top:50%;right:-10px;margin-top:-10px;border-width:10px 0 10px 10px;border-left-color:#ffffff;}.popover.left .arrow:after{border-width:11px 0 11px 11px;border-left-color:rgba(0, 0, 0, 0.25);bottom:-11px;right:-1px;} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/close.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/close.svg new file mode 100644 index 0000000..c161bb9 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/close.svg @@ -0,0 +1,3 @@ + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/executions.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/executions.svg new file mode 100644 index 0000000..84068cd --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/executions.svg @@ -0,0 +1,3 @@ + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/expand.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/expand.svg new file mode 100644 index 0000000..f6e75e0 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/expand.svg @@ -0,0 +1,38 @@ + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/favicon.ico b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/favicon.ico new file mode 100644 index 0000000..d2d20e1 Binary files /dev/null and b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/favicon.ico differ diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/fullscreen.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/fullscreen.svg new file mode 100644 index 0000000..91f3b27 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/fullscreen.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/logo-dark.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/logo-dark.svg new file mode 100644 index 0000000..7eb4d51 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/logo-dark.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/logo-enterprise-dark.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/logo-enterprise-dark.svg new file mode 100644 index 0000000..1127d75 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/logo-enterprise-dark.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/logo-enterprise-light.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/logo-enterprise-light.svg new file mode 100644 index 0000000..4a6e1de --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/logo-enterprise-light.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/logo-light.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/logo-light.svg new file mode 100644 index 0000000..f519eef --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/logo-light.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/sort-down.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/sort-down.svg new file mode 100644 index 0000000..db58a09 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/sort-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/sort-up.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/sort-up.svg new file mode 100644 index 0000000..bba9d84 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/sort-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/sort.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/sort.svg new file mode 100644 index 0000000..43b658e --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/sort.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/style.css b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/style.css new file mode 100644 index 0000000..edc9626 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/2users-2cpus/style/style.css @@ -0,0 +1,1199 @@ +/* + * Copyright 2011-2024 GatlingCorp (https://gatling.io) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +:root { + --gatling-background-color: #f2f2f2; + --gatling-background-light-color: #f7f7f7; + --gatling-border-color: #dddddd; + --gatling-blue-color: #4a9fe5; + --gatling-dark-blue-color: #24275e; + --gatling-danger-color: #f15b4f; + --gatling-danger-light-color: #f5d1ce; + --gatling-enterprise-color: #6161d6; + --gatling-enterprise-light-color: #c4c4ed; + --gatling-gray-medium-color: #bbb; + --gatling-hover-color: #e6e6e6; + --gatling-hover-background-color: #e6e6e6; + --gatling-light-color: #ffffff; + --gatling-orange-color: #f78557; + --gatling-success-color: #68b65c; + --gatling-text-color: #1f2024; + --gatling-total-color: #ffa900; + + --gatling-border-radius: 2px; + --gatling-spacing-small: 5px; + --gatling-spacing: 10px; + --gatling-spacing-layout: 20px; + + --gatling-font-weight-normal: 400; + --gatling-font-weight-medium: 500; + --gatling-font-weight-bold: 700; + --gatling-font-size-secondary: 12px; + --gatling-font-size-default: 14px; + --gatling-font-size-heading: 16px; + --gatling-font-size-section: 22px; + --gatling-font-size-header: 34px; + + --gatling-media-desktop-large: 1920px; +} + +html[data-theme="dark"] { + --gatling-background-color: #1e2225; + --gatling-background-light-color: #272c30; + --gatling-border-color: #555555; + --gatling-blue-color: #1188ff; + --gatling-dark-blue-color: #17223B; + --gatling-danger-color: #d9534f; + --gatling-danger-light-color: #c9302c; + --gatling-enterprise-color: #b2a2ea; + --gatling-enterprise-light-color: #343479; + --gatling-gray-medium-color: #999; + --gatling-hover-color: #30363b; + --gatling-hover-background-color: #2c2c2c; + --gatling-light-color: #394046; + --gatling-orange-color: #fe8e5f; + --gatling-success-color: #5cb85c; + --gatling-text-color: #dee2e6; + --gatling-total-color: #ffa900; +} + +* { + min-height: 0; + min-width: 0; +} + +html, +body { + height: 100%; + width: 100%; +} + +body { + color: var(--gatling-text-color); + font-family: arial; + font-size: var(--gatling-font-size-secondary); + margin: 0; +} + +.app-container { + display: flex; + flex-direction: column; + + height: 100%; + width: 100%; +} + +.head { + display: flex; + align-items: center; + justify-content: space-between; + flex-direction: row; + + flex: 1; + + background-color: var(--gatling-light-color); + border-bottom: 1px solid var(--gatling-border-color); + min-height: 69px; + padding: 0 var(--gatling-spacing-layout); +} + +.head .spacer { + flex-grow: 1; +} + +.head .theme-toggle { + margin-left: 20px; + background: none; + color: var(--gatling-text-color); + border: none; +} + +.head .theme-toggle:hover { + color: var(--gatling-gray-medium-color); + cursor: pointer; +} + +body .toggle-dark, body .toggle-light { + display: block; +} + +[data-theme="dark"] body .toggle-dark { + display: none; +} + +[data-theme="light"] body .toggle-light { + display: none; +} + +[data-theme="dark"] body .logo-enterprise-light { + display: none; +} + +[data-theme="light"] body .logo-enterprise-dark { + display: none; +} + +.gatling-open-source { + display: flex; + align-items: center; + justify-content: space-between; + flex-direction: row; + gap: var(--gatling-spacing-layout); +} + +.gatling-documentation { + display: flex; + align-items: center; + + background-color: var(--gatling-light-color); + border-radius: var(--gatling-border-radius); + color: var(--gatling-orange-color); + border: 1px solid var(--gatling-orange-color); + text-align: center; + padding: var(--gatling-spacing-small) var(--gatling-spacing); + height: 23px; + + font-size: var(--gatling-font-size-default); +} + +.gatling-documentation:hover { + background-color: var(--gatling-orange-color); + color: var(--gatling-light-color); +} + +.gatling-logo { + height: 35px; +} + +.gatling-logo img { + height: 100%; +} + +[data-theme="dark"] .gatling-logo-light { + display: none; +} + +[data-theme="light"] .gatling-logo-dark { + display: none; +} + +.container { + display: flex; + align-items: stretch; + height: 100%; +} + +.nav { + min-width: 210px; + width: 210px; + max-height: calc(100vh - var(--gatling-spacing-layout) - var(--gatling-spacing-layout)); + background: var(--gatling-light-color); + border-right: 1px solid var(--gatling-border-color); + overflow-y: auto; +} + +@media print { + .nav { + display: none; + } +} + +@media screen and (min-width: 1920px) { + .nav { + min-width: 310px; + width: 310px; + } +} + +.nav ul { + display: flex; + flex-direction: column; + + padding: 0; + margin: 0; +} + +.nav li { + display: flex; + list-style: none; + width: 100%; + padding: 0; +} + +.nav .item { + display: inline-flex; + align-items: center; + margin: 0 auto; + white-space: nowrap; + color: var(--gatling-text-color); + font-size: var(--gatling-font-size-default); + font-weight: var(--gatling-font-weight-bold); + margin: 0; + width: 100%; +} + +.nav .item .nav-label { + padding: var(--gatling-spacing) var(--gatling-spacing-layout); +} + +.nav .item:hover { + background-color: var(--gatling-hover-color); +} + +.nav .on .item { + background-color: var(--gatling-orange-color); +} + +.nav .on .item span { + color: var(--gatling-light-color); +} + +.cadre { + width: 100%; + height: 100%; + overflow-y: scroll; + scroll-behavior: smooth; +} + +@media print { + .cadre { + overflow-y: unset; + } +} + +.frise { + position: absolute; + top: 60px; + z-index: -1; + + background-color: var(--gatling-background-color); + height: 530px; +} + +.global { + height: 650px +} + +a { + text-decoration: none; +} + +a:hover { + color: var(--gatling-hover-color); +} + +img { + border: 0; +} + +h1 { + color: var(--gatling-dark-blue-color); + font-size: var(--gatling-font-size-section); + font-weight: var(--gatling-font-weight-medium); + text-align: center; + margin: 0; +} + +h1 span { + color: var(--gatling-hover-color); +} + +.enterprise { + display: flex; + align-items: center; + justify-content: center; + gap: var(--gatling-spacing-small); + + background-color: var(--gatling-light-color); + border-radius: var(--gatling-border-radius); + border: 1px solid var(--gatling-enterprise-color); + color: var(--gatling-enterprise-color); + text-align: center; + padding: var(--gatling-spacing-small) var(--gatling-spacing); + height: 25px; +} + +.enterprise:hover { + background-color: var(--gatling-hover-color); + color: var(--gatling-enterprise-color); +} + +.enterprise img { + display: block; + width: 160px; +} + +.simulation-card { + display: flex; + flex-direction: column; + align-self: stretch; + flex: 1; + gap: var(--gatling-spacing-layout); + max-height: 375px; +} + +#simulation-information { + flex: 1; +} + +.simulation-version-information { + display: flex; + flex-direction: column; + + gap: var(--gatling-spacing); + font-size: var(--gatling-font-size-default); + + background-color: var(--gatling-background-light-color); + border: 1px solid var(--gatling-border-color); + border-radius: var(--gatling-border-radius); + padding: var(--gatling-spacing); +} + +.simulation-information-container { + display: flex; + flex-direction: column; + gap: var(--gatling-spacing); +} + +.withTooltip .popover-title { + display: none; +} + +.popover-content p { + margin: 0; +} + +html[data-theme="dark"] div.popover { + background-color: var(--gatling-light-color); + border-bottom: none; +} + +html[data-theme="dark"] div.popover.right .arrow { + border-right-color: var(--gatling-light-color); +} + +.ellipsed-name { + display: block; + + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.simulation-information-item { + display: flex; + flex-direction: row; + align-items: flex-start; + gap: var(--gatling-spacing-small); +} + +.simulation-information-item.description { + flex-direction: column; +} + +.simulation-information-label { + display: inline-block; + font-weight: var(--gatling-font-weight-bold); + min-width: fit-content; +} + +.simulation-information-title { + display: block; + text-align: center; + color: var(--gatling-text-color); + font-weight: var(--gatling-font-weight-bold); + font-size: var(--gatling-font-size-heading); + width: 100%; +} + +.simulation-tooltip span { + display: inline-block; + word-wrap: break-word; + overflow: hidden; + text-overflow: ellipsis; +} + +.content { + display: flex; + flex-direction: column; +} + +.content-in { + width: 100%; + height: 100%; + + overflow-x: scroll; +} + +html[data-theme="dark"] .content-in { + background-color: var(--gatling-background-color); +} + +@media print { + .content-in { + overflow-x: unset; + } +} + +.container-article { + display: flex; + flex-direction: column; + gap: var(--gatling-spacing-layout); + + min-width: 1050px; + width: 1050px; + margin: 0 auto; + padding: var(--gatling-spacing-layout); + box-sizing: border-box; +} + +@media screen and (min-width: 1920px) { + .container-article { + min-width: 1350px; + width: 1350px; + } + + #responses * .highcharts-tracker { + transform: translate(400px, 70px); + } +} + +.content-header { + display: flex; + flex-direction: column; + gap: var(--gatling-spacing-layout); + + background-color: var(--gatling-background-light-color); + border-bottom: 1px solid var(--gatling-border-color); + padding: var(--gatling-spacing-layout) var(--gatling-spacing-layout) 0; +} + +.onglet { + font-size: var(--gatling-font-size-header); + font-weight: var(--gatling-font-weight-medium); + text-align: center; +} + +.sous-menu { + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; +} + +.sous-menu-spacer { + display: flex; + align-items: center; + flex-direction: row; +} + +.sous-menu .item { + margin-bottom: -1px; +} + +.sous-menu a { + display: block; + + font-size: var(--gatling-font-size-heading); + font-weight: var(--gatling-font-weight-normal); + padding: var(--gatling-spacing-small) var(--gatling-spacing) var(--gatling-spacing); + border-bottom: 2px solid transparent; + color: var(--gatling-text-color); + text-align: center; + width: 100px; +} + +.sous-menu a:hover { + border-bottom-color: var(--gatling-text-color); +} + +.sous-menu .ouvert a { + border-bottom-color: var(--gatling-orange-color); + font-weight: var(--gatling-font-weight-bold); +} + +.article { + position: relative; + + display: flex; + flex-direction: column; + gap: var(--gatling-spacing-layout); +} + +.infos { + width: 340px; + color: var(--gatling-light-color); +} + +.infos-title { + background-color: var(--gatling-background-light-color); + border: 1px solid var(--gatling-border-color); + border-bottom: 0; + border-top-left-radius: var(--gatling-border-radius); + border-top-right-radius: var(--gatling-border-radius); + color: var(--gatling-text-color); + font-size: var(--gatling-font-size-heading); + font-weight: var(--gatling-font-weight-bold); + text-align: center; + padding: var(--gatling-spacing-small) var(--gatling-spacing); +} + +.info { + background-color: var(--gatling-background-light-color); + border-bottom-left-radius: var(--gatling-border-radius); + border-bottom-right-radius: var(--gatling-border-radius); + border: 1px solid var(--gatling-border-color); + color: var(--gatling-text-color); + height: 100%; + margin: 0; +} + +.info table { + margin: auto; + padding-right: 15px; +} + +.alert-danger { + background-color: var(--gatling-danger-light-color); + border: 1px solid var(--gatling-danger-color); + border-radius: var(--gatling-border-radius); + color: var(--gatling-text-color); + padding: var(--gatling-spacing-layout); + font-weight: var(--gatling-font-weight-bold); +} + +.infos h2 { + color: var(--gatling-text-color); + font-size: var(--gatling-font-size-default); + font-weight: var(--gatling-font-weight-bold); + height: 19px; + margin: 0; + padding: 3.5px 0 0 35px; +} + +.infos .first::before { + content: ''; + display: inline-block; + margin-right: 5px; + margin-bottom: 2px; + vertical-align: middle; + width: 14px; + height: 14px; + background: url('executions.svg'); + background-size: contain; +} + +.infos .second::before { + content: ''; + display: inline-block; + margin-right: 5px; + margin-bottom: 2px; + vertical-align: middle; + width: 16px; + height: 16px; + background: url('time.svg'); + background-size: contain; +} + +html[data-theme="dark"] .infos .first::before, +html[data-theme="dark"] .infos .second::before { + filter: invert(0.9); +} + +.infos th { + text-align: center; +} + +.infos td { + font-weight: var(--gatling-font-weight-bold); + padding: var(--gatling-spacing-small); + -webkit-border-radius: var(--gatling-border-radius); + -moz-border-radius: var(--gatling-border-radius); + -ms-border-radius: var(--gatling-border-radius); + -o-border-radius: var(--gatling-border-radius); + border-radius: var(--gatling-border-radius); + text-align: right; + width: 50px; +} + +.infos .title { + width: 120px; +} + +.infos .ok { + background-color: var(--gatling-success-color); + color: var(--gatling-light-color); +} + +.infos .total { + background-color: var(--gatling-total-color); + color: var(--gatling-light-color); +} + +.infos .ko { + background-color: var(--gatling-danger-color); + -webkit-border-radius: var(--gatling-border-radius); + border-radius: var(--gatling-border-radius); + color: var(--gatling-light-color); +} + +.schema-container { + display: flex; + align-items: center; + justify-content: space-between; + gap: var(--gatling-spacing-layout); +} + +.schema { + background: var(--gatling-background-light-color); + border-radius: var(--gatling-border-radius); + border: 1px solid var(--gatling-border-color); +} + +.ranges { + height: 375px; + width: 500px; +} + +.ranges-large { + height: 375px; + width: 530px; +} + +.geant { + height: 362px; +} + +.extensible-geant { + width: 100%; +} + +.polar { + height: 375px; + width: 230px; +} + +.chart_title { + color: var(--gatling-text-color); + font-weight: var(--gatling-font-weight-bold); + font-size: var(--gatling-font-size-heading); + padding: 2px var(--gatling-spacing); +} + +html[data-theme="dark"] .chart_title { + color: var(--gatling-text-color); + font-weight: var(--gatling-font-weight-bold); + font-size: var(--gatling-font-size-heading); + padding: 2px var(--gatling-spacing); +} + +html[data-theme="dark"] .highcharts-background { + fill: var(--gatling-background-light-color); +} + +html[data-theme="dark"] .highcharts-button-normal rect { + fill: var(--gatling-background-color) !important; +} + +html[data-theme="dark"] .highcharts-button-disabled rect { + fill: var(--gatling-background-light-color) !important; +} + +html[data-theme="dark"] .highcharts-button-pressed rect { + fill: var(--gatling-orange-color) !important; +} + +html[data-theme="dark"] .highcharts-axis text, +html[data-theme="dark"] .highcharts-axis-labels text, +html[data-theme="dark"] .highcharts-button text, +html[data-theme="dark"] .highcharts-legend-item text, +html[data-theme="dark"] .highcharts-range-selector-buttons text { + fill: var(--gatling-text-color) !important; +} + +.statistics { + display: flex; + flex-direction: column; + + background-color: var(--gatling-background-light-color); + border-radius: var(--gatling-border-radius); + border-collapse: collapse; + color: var(--gatling-text-color); + max-height: 100%; +} + +.statistics .title { + display: flex; + text-align: center; + justify-content: space-between; + + min-height: 49.5px; + box-sizing: border-box; + + border: 1px solid var(--gatling-border-color); + color: var(--gatling-text-color); + font-size: var(--gatling-font-size-heading); + font-weight: var(--gatling-font-weight-bold); + padding: var(--gatling-spacing); +} + +.title_base { + display: flex; + align-items: center; + text-align: left; + user-select: none; +} + +.title_base_stats { + color: var(--gatling-text-color); + margin-right: 20px; +} + +.toggle-table { + position: relative; + border: 1px solid var(--gatling-border-color); + background-color: var(--gatling-light-color); + border-radius: 25px; + width: 40px; + height: 20px; + margin: 0 var(--gatling-spacing-small); +} + +.toggle-table::before { + position: absolute; + top: calc(50% - 9px); + left: 1px; + content: ""; + width: 50%; + height: 18px; + border-radius: 50%; + background-color: var(--gatling-text-color); +} + +.toggle-table.off::before { + left: unset; + right: 1px; +} + +.title_expanded { + cursor: pointer; + color: var(--gatling-text-color); +} + +.expand-table, +.collapse-table { + font-size: var(--gatling-font-size-secondary); + font-weight: var(--gatling-font-weight-normal); +} + +.title_expanded span.expand-table { + color: var(--gatling-gray-medium-color); +} + +.title_collapsed { + cursor: pointer; + color: var(--gatling-text-color); +} + +.title_collapsed span.collapse-table { + color: var(--gatling-gray-medium-color); +} + +#container_statistics_head { + position: sticky; + top: -1px; + + background: var(--gatling-background-light-color); + margin-top: -1px; + padding: var(--gatling-spacing-small) var(--gatling-spacing-small) 0px var(--gatling-spacing-small); +} + +#container_statistics_body { + border-bottom-left-radius: var(--gatling-border-radius); + border-bottom-right-radius: var(--gatling-border-radius); + margin-top: -1px; + padding: 0px var(--gatling-spacing-small) var(--gatling-spacing-small) var(--gatling-spacing-small); +} + +#container_errors { + border-bottom-left-radius: var(--gatling-border-radius); + border-bottom-right-radius: var(--gatling-border-radius); + padding: var(--gatling-spacing-small) var(--gatling-spacing-small) 0px var(--gatling-spacing-small); + margin-top: -1px; +} + +#container_assertions { + background-color: var(--gatling-background-light-color); + border-bottom-left-radius: var(--gatling-border-radius); + border-bottom-right-radius: var(--gatling-border-radius); + padding: var(--gatling-spacing-small); + margin-top: -1px; +} + +.statistics-in { + border-spacing: var(--gatling-spacing-small); + border-collapse: collapse; + margin: 0; +} + +.statistics .scrollable { + max-height: 100%; + overflow-y: auto; +} + +#statistics_table_container .statistics .scrollable { + max-height: 785px; +} + +.statistics-in a { + color: var(--gatling-text-color); + font-weight: var(--gatling-font-weight-bold); +} + +.statistics-in .header { + border-radius: var(--gatling-border-radius); + border: 1px solid var(--gatling-border-color); + font-size: var(--gatling-font-size-default); + font-weight: var(--gatling-font-weight-bold); + text-align: center; + padding: var(--gatling-spacing-small); +} + +.sortable { + cursor: pointer; +} + +.sortable span::after { + content: ''; + display: inline-block; + margin-left: 5px; + vertical-align: middle; + width: 12px; + height: 12px; + background: url('sort.svg'); + background-size: contain; +} + +.sorted-up span::after { + background: url('sort-up.svg'); + background-size: contain; +} + +.sorted-down span::after { + background: url('sort-down.svg'); + background-size: contain; +} + +html[data-theme="dark"] .sortable span::after { + filter: invert(0.9); +} + +.executions::before { + content: ''; + display: inline-block; + margin-right: 5px; + margin-bottom: 2px; + vertical-align: middle; + width: 14px; + height: 14px; + background: url('executions.svg'); + background-size: contain; +} + +.response-time::before { + content: ''; + display: inline-block; + margin-right: 5px; + margin-bottom: 2px; + vertical-align: middle; + width: 16px; + height: 16px; + background: url('time.svg'); + background-size: contain; +} + +html[data-theme="dark"] .executions::before, +html[data-theme="dark"] .response-time::before { + filter: invert(0.9); +} + +.statistics-in td { + background-color: var(--gatling-light-color); + border: 1px solid var(--gatling-border-color); + padding: var(--gatling-spacing-small); + min-width: 50px; +} + +.statistics-in .col-1 { + width: 175px; + max-width: 175px; +} +@media screen and (min-width: 1200px) { + .statistics-in .col-1 { + width: 50%; + } +} + +.expandable-container { + display: flex; + flex-direction: row; + box-sizing: border-box; + max-width: 100%; +} + +.statistics-in .value { + text-align: right; + width: 50px; +} + +.statistics-in .total { + color: var(--gatling-text-color); +} + +.statistics-in .col-2 { + background-color: var(--gatling-total-color); + color: var(--gatling-light-color); + font-weight: var(--gatling-font-weight-bold); +} + +.statistics-in .error-col-1 { + background-color: var(--gatling-light-color); + color: var(--gatling-text-color); +} + +.statistics-in .error-col-2 { + text-align: center; +} + +.statistics-in .ok { + background-color: var(--gatling-success-color); + color: var(--gatling-light-color); + font-weight: var(--gatling-font-weight-bold); +} + +.statistics-in .ko { + background-color: var(--gatling-danger-color); + color: var(--gatling-light-color); + font-weight: var(--gatling-font-weight-bold); +} + +.statistics-in .expand-button { + padding-left: var(--gatling-spacing); + cursor: pointer; +} + +.expand-button.hidden { + background: none; + cursor: default; +} + +.statistics-button { + background-color: var(--gatling-light-color); + color: var(--gatling-text-color); + padding: var(--gatling-spacing-small) var(--gatling-spacing); + border: 1px solid var(--gatling-border-color); + border-radius: var(--gatling-border-radius); +} + +#statistics_full_screen{ + padding: var(--gatling-spacing-small); +} + +#statistics_full_screen > img { + width: 14px; + height: 14px; +} + +html[data-theme="dark"] #statistics_full_screen > img { + filter: invert(0.9); +} + +#statistics_full_screen:disabled { + display: none; +} + +.statistics-button:hover:not(:disabled) { + cursor: pointer; + background-color: var(--gatling-hover-color); +} + +.statistics-in .expand-button.expand { + content: ''; + display: inline-block; + vertical-align: middle; + width: 2px; + height: 10px; + background: url('expand.svg'); + background-size: contain; +} + +.statistics-in .expand-button.collapse { + content: ''; + display: inline-block; + vertical-align: middle; + width: 2px; + height: 10px; + background: url('sort-down.svg'); + background-size: contain; +} + +html[data-theme="dark"] .statistics-in .expand-button.collapse, +html[data-theme="dark"] .statistics-in .expand-button.expand { + filter: invert(0.9); +} + +.nav .expand-button { + padding: var(--gatling-spacing-small) var(--gatling-spacing); +} + +.nav .expand-button.expand { + content: ''; + display: inline-block; + vertical-align: middle; + height: 8px; + background: url('expand.svg') no-repeat; + background-size: contain; + cursor: pointer; + margin-top: 6px; +} + +.nav .expand-button.collapse { + content: ''; + display: inline-block; + vertical-align: middle; + height: 8px; + background: url('sort-down.svg') no-repeat; + background-size: contain; + cursor: pointer; + margin-top: 6px; +} + +html[data-theme="dark"] .nav .expand-button.expand, +html[data-theme="dark"] .nav .expand-button.collapse { + filter: invert(0.9); +} + +.right { + display: flex; + align-items: center; + gap: var(--gatling-spacing); + float: right; + font-size: var(--gatling-font-size-default); +} + +.withTooltip { + outline: none; +} + +.withTooltip:hover { + text-decoration: none; +} + +.withTooltip .tooltipContent { + position: absolute; + z-index: 10; + display: none; + + background: var(--gatling-orange-color); + -webkit-box-shadow: 1px 2px 4px 0px rgba(47, 47, 47, 0.2); + -moz-box-shadow: 1px 2px 4px 0px rgba(47, 47, 47, 0.2); + box-shadow: 1px 2px 4px 0px rgba(47, 47, 47, 0.2); + border-radius: var(--gatling-border-radius); + color: var(--gatling-light-color); + margin-top: -5px; + padding: var(--gatling-spacing-small); +} + +.withTooltip:hover .tooltipContent { + display: inline; +} + +.button-modal { + padding: var(--gatling-spacing-small); +} + +.button-modal > img { + width: 14px; + height: 14px; +} + +html[data-theme="dark"] .button-modal > img { + filter: invert(0.9); +} + +.statistics-table-modal { + background-color: var(--gatling-background-color); + height: calc(100% - 60px); + width: calc(100% - 60px); + border-radius: var(--gatling-border-radius); +} + +.statistics-table-modal::backdrop { + position: fixed; + top: 0px; + right: 0px; + bottom: 0px; + left: 0px; + + background-color: rgba(100, 100, 100, 0.9); +} + +.statistics-table-modal-container { + display: flex; + flex-direction: column; + + width: 100%; + height: calc(100% - 35px); + overflow-x: auto; +} + +.button-modal { + cursor: pointer; + + height: 25px; + width: 25px; + + border: 1px solid var(--gatling-border-color); + background-color: var(--gatling-light-color); + border-radius: var(--gatling-border-radius); + color: var(--gatling-text-color); +} + +.button-modal:hover { + background-color: var(--gatling-background-color); +} + +.statistics-table-modal-header { + display: flex; + align-items: flex-end; + justify-content: flex-end; + + padding-bottom: var(--gatling-spacing); +} + +.statistics-table-modal-content { + flex: 1; + overflow-y: auto; + min-width: 1050px; +} + +.statistics-table-modal-footer { + display: flex; + align-items: flex-end; + justify-content: flex-end; + + padding-top: var(--gatling-spacing); +} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/index.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/index.html new file mode 100644 index 0000000..3ba5101 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/index.html @@ -0,0 +1,1144 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - Global Information + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    +
    +
    + Gatling Version + + Version: + 3.10.5 + + + Released: + 2024-03-22 + +
    +
    + Run Information +
    + + Date: + 2024-04-25 16:51:07 GMT + + + Duration: + 2m 19s + + + Description: + Load testing (5 users/sec and 60secs - machine 1 cpu) + + +
    +
    +
    +
    + +
    + +
    + +
    +
    +
    +
    +
    + + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/all_sessions.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/all_sessions.js new file mode 100644 index 0000000..87e02a4 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/all_sessions.js @@ -0,0 +1,11 @@ +allUsersData = { + +color: '#FFA900', +name: 'Active Users', +data: [ + [1714063867000,6],[1714063868000,13],[1714063869000,18],[1714063870000,21],[1714063871000,26],[1714063872000,30],[1714063873000,37],[1714063874000,46],[1714063875000,52],[1714063876000,56],[1714063877000,57],[1714063878000,60],[1714063879000,64],[1714063880000,69],[1714063881000,75],[1714063882000,80],[1714063883000,86],[1714063884000,91],[1714063885000,91],[1714063886000,98],[1714063887000,100],[1714063888000,103],[1714063889000,105],[1714063890000,114],[1714063891000,119],[1714063892000,124],[1714063893000,132],[1714063894000,136],[1714063895000,142],[1714063896000,146],[1714063897000,151],[1714063898000,157],[1714063899000,166],[1714063900000,170],[1714063901000,177],[1714063902000,178],[1714063903000,184],[1714063904000,191],[1714063905000,196],[1714063906000,203],[1714063907000,207],[1714063908000,210],[1714063909000,215],[1714063910000,222],[1714063911000,228],[1714063912000,234],[1714063913000,238],[1714063914000,249],[1714063915000,259],[1714063916000,269],[1714063917000,272],[1714063918000,275],[1714063919000,279],[1714063920000,288],[1714063921000,293],[1714063922000,299],[1714063923000,300],[1714063924000,305],[1714063925000,307],[1714063926000,309],[1714063927000,309],[1714063928000,309],[1714063929000,309],[1714063930000,309],[1714063931000,309],[1714063932000,309],[1714063933000,309],[1714063934000,309],[1714063935000,309],[1714063936000,309],[1714063937000,309],[1714063938000,309],[1714063939000,309],[1714063940000,309],[1714063941000,309],[1714063942000,307],[1714063943000,307],[1714063944000,304],[1714063945000,301],[1714063946000,297],[1714063947000,297],[1714063948000,294],[1714063949000,290],[1714063950000,284],[1714063951000,279],[1714063952000,273],[1714063953000,268],[1714063954000,265],[1714063955000,254],[1714063956000,247],[1714063957000,244],[1714063958000,244],[1714063959000,237],[1714063960000,229],[1714063961000,224],[1714063962000,222],[1714063963000,212],[1714063964000,208],[1714063965000,202],[1714063966000,199],[1714063967000,197],[1714063968000,193],[1714063969000,190],[1714063970000,188],[1714063971000,185],[1714063972000,184],[1714063973000,183],[1714063974000,183],[1714063975000,172],[1714063976000,162],[1714063977000,156],[1714063978000,137],[1714063979000,133],[1714063980000,127],[1714063981000,121],[1714063982000,117],[1714063983000,114],[1714063984000,109],[1714063985000,103],[1714063986000,97],[1714063987000,93],[1714063988000,89],[1714063989000,83],[1714063990000,72],[1714063991000,64],[1714063992000,60],[1714063993000,51],[1714063994000,43],[1714063995000,35],[1714063996000,30],[1714063997000,25],[1714063998000,21],[1714063999000,14],[1714064000000,9],[1714064001000,4],[1714064002000,1],[1714064003000,1],[1714064004000,1],[1714064005000,1],[1714064006000,1] +], +tooltip: { yDecimals: 0, ySuffix: '', valueDecimals: 0 } + , zIndex: 20 + , yAxis: 1 +}; \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/assertions.xml b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/assertions.xml new file mode 100644 index 0000000..c562e00 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/assertions.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/bootstrap.min.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/bootstrap.min.js new file mode 100644 index 0000000..ea41042 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/bootstrap.min.js @@ -0,0 +1,7 @@ +/** +* Bootstrap.js by @fat & @mdo +* plugins: bootstrap-tooltip.js, bootstrap-popover.js +* Copyright 2012 Twitter, Inc. +* http://www.apache.org/licenses/LICENSE-2.0.txt +*/ +!function(a){var b=function(a,b){this.init("tooltip",a,b)};b.prototype={constructor:b,init:function(b,c,d){var e,f;this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.enabled=!0,this.options.trigger=="click"?this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this)):this.options.trigger!="manual"&&(e=this.options.trigger=="hover"?"mouseenter":"focus",f=this.options.trigger=="hover"?"mouseleave":"blur",this.$element.on(e+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(f+"."+this.type,this.options.selector,a.proxy(this.leave,this))),this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(b){return b=a.extend({},a.fn[this.type].defaults,b,this.$element.data()),b.delay&&typeof b.delay=="number"&&(b.delay={show:b.delay,hide:b.delay}),b},enter:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);if(!c.options.delay||!c.options.delay.show)return c.show();clearTimeout(this.timeout),c.hoverState="in",this.timeout=setTimeout(function(){c.hoverState=="in"&&c.show()},c.options.delay.show)},leave:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);this.timeout&&clearTimeout(this.timeout);if(!c.options.delay||!c.options.delay.hide)return c.hide();c.hoverState="out",this.timeout=setTimeout(function(){c.hoverState=="out"&&c.hide()},c.options.delay.hide)},show:function(){var a,b,c,d,e,f,g;if(this.hasContent()&&this.enabled){a=this.tip(),this.setContent(),this.options.animation&&a.addClass("fade"),f=typeof this.options.placement=="function"?this.options.placement.call(this,a[0],this.$element[0]):this.options.placement,b=/in/.test(f),a.detach().css({top:0,left:0,display:"block"}).insertAfter(this.$element),c=this.getPosition(b),d=a[0].offsetWidth,e=a[0].offsetHeight;switch(b?f.split(" ")[1]:f){case"bottom":g={top:c.top+c.height,left:c.left+c.width/2-d/2};break;case"top":g={top:c.top-e,left:c.left+c.width/2-d/2};break;case"left":g={top:c.top+c.height/2-e/2,left:c.left-d};break;case"right":g={top:c.top+c.height/2-e/2,left:c.left+c.width}}a.offset(g).addClass(f).addClass("in")}},setContent:function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},hide:function(){function d(){var b=setTimeout(function(){c.off(a.support.transition.end).detach()},500);c.one(a.support.transition.end,function(){clearTimeout(b),c.detach()})}var b=this,c=this.tip();return c.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d():c.detach(),this},fixTitle:function(){var a=this.$element;(a.attr("title")||typeof a.attr("data-original-title")!="string")&&a.attr("data-original-title",a.attr("title")||"").removeAttr("title")},hasContent:function(){return this.getTitle()},getPosition:function(b){return a.extend({},b?{top:0,left:0}:this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight})},getTitle:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||(typeof c.title=="function"?c.title.call(b[0]):c.title),a},tip:function(){return this.$tip=this.$tip||a(this.options.template)},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);c[c.tip().hasClass("in")?"hide":"show"]()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}},a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("tooltip"),f=typeof c=="object"&&c;e||d.data("tooltip",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.tooltip.Constructor=b,a.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'
    ',trigger:"hover",title:"",delay:0,html:!1}}(window.jQuery),!function(a){var b=function(a,b){this.init("popover",a,b)};b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype,{constructor:b,setContent:function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content > *")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-content")||(typeof c.content=="function"?c.content.call(b[0]):c.content),a},tip:function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}}),a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("popover"),f=typeof c=="object"&&c;e||d.data("popover",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.defaults=a.extend({},a.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'

    '})}(window.jQuery) \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/ellipsis.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/ellipsis.js new file mode 100644 index 0000000..781d0de --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/ellipsis.js @@ -0,0 +1,26 @@ +function parentId(name) { + return "parent-" + name; +} + +function isEllipsed(name) { + const child = document.getElementById(name); + const parent = document.getElementById(parentId(name)); + const emptyData = parent.getAttribute("data-content") === ""; + const hasOverflow = child.clientWidth < child.scrollWidth; + + if (hasOverflow) { + if (emptyData) { + parent.setAttribute("data-content", name); + } + } else { + if (!emptyData) { + parent.setAttribute("data-content", ""); + } + } +} + +function ellipsedLabel ({ name, parentClass = "", childClass = "" }) { + const child = "" + name + ""; + + return "" + child + ""; +} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/gatling.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/gatling.js new file mode 100644 index 0000000..5b9e992 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/gatling.js @@ -0,0 +1,137 @@ +/* + * Copyright 2011-2024 GatlingCorp (https://gatling.io) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +(function ($) { + $.fn.expandable = function () { + var scope = this; + + this.find('.expand-button:not([class*=hidden])').addClass('collapse').on('click', function () { + var $this = $(this); + + if ($this.hasClass('expand')) + $this.expand(scope); + else + $this.collapse(scope); + }); + + this.find('.expand-all-button').on('click', function () { + $(this).expandAll(scope); + }); + + this.find('.collapse-all-button').on('click', function () { + $(this).collapseAll(scope); + }); + + this.collapseAll(this); + + return this; + }; + + $.fn.expand = function (scope, recursive) { + return this.each(function () { + var $this = $(this); + + if (recursive) { + scope.find('*[data-parent=' + $this.attr('id') + ']').find('.expand-button.expand').expand(scope, true); + scope.find('*[data-parent=' + $this.attr('id') + ']').find('.expand-button.expand').expand(scope, true); + } + + if ($this.hasClass('expand')) { + $('*[data-parent=' + $this.attr('id') + ']').toggle(true); + $this.toggleClass('expand').toggleClass('collapse'); + } + }); + }; + + $.fn.expandAll = function (scope) { + $('*[data-parent=ROOT]').find('.expand-button.expand').expand(scope, true); + $('*[data-parent=ROOT]').find('.expand-button.collapse').expand(scope, true); + }; + + $.fn.collapse = function (scope) { + return this.each(function () { + var $this = $(this); + + scope.find('*[data-parent=' + $this.attr('id') + '] .expand-button.collapse').collapse(scope); + scope.find('*[data-parent=' + $this.attr('id') + ']').toggle(false); + $this.toggleClass('expand').toggleClass('collapse'); + }); + }; + + $.fn.collapseAll = function (scope) { + $('*[data-parent=ROOT]').find('.expand-button.collapse').collapse(scope); + }; + + $.fn.sortable = function (target) { + var table = this; + + this.find('thead .sortable').on('click', function () { + var $this = $(this); + + if ($this.hasClass('sorted-down')) { + var desc = false; + var style = 'sorted-up'; + } + else { + var desc = true; + var style = 'sorted-down'; + } + + $(target).sortTable($this.attr('id'), desc); + + table.find('thead .sortable').removeClass('sorted-up sorted-down'); + $this.addClass(style); + + return false; + }); + + return this; + }; + + $.fn.sortTable = function (col, desc) { + function getValue(line) { + var cell = $(line).find('.' + col); + + if (cell.hasClass('value')) + var value = cell.text(); + else + var value = cell.find('.value').text(); + + return parseFloat(value); + } + + function sortLines (lines, group) { + var notErrorTable = col.search("error") == -1; + var linesToSort = notErrorTable ? lines.filter('*[data-parent=' + group + ']') : lines; + + var sortedLines = linesToSort.sort(function (a, b) { + return desc ? getValue(b) - getValue(a): getValue(a) - getValue(b); + }).toArray(); + + var result = []; + $.each(sortedLines, function (i, line) { + result.push(line); + if (notErrorTable) + result = result.concat(sortLines(lines, $(line).attr('id'))); + }); + + return result; + } + + this.find('tbody').append(sortLines(this.find('tbody tr').detach(), 'ROOT')); + + return this; + }; +})(jQuery); diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/global_stats.json b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/global_stats.json new file mode 100644 index 0000000..b5cc50d --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/global_stats.json @@ -0,0 +1,77 @@ +{ + "name": "All Requests", + "numberOfRequests": { + "total": 5246, + "ok": 5243, + "ko": 3 + }, + "minResponseTime": { + "total": 24, + "ok": 24, + "ko": 10009 + }, + "maxResponseTime": { + "total": 10010, + "ok": 8436, + "ko": 10010 + }, + "meanResponseTime": { + "total": 392, + "ok": 386, + "ko": 10010 + }, + "standardDeviation": { + "total": 737, + "ok": 701, + "ko": 0 + }, + "percentiles1": { + "total": 84, + "ok": 84, + "ko": 10010 + }, + "percentiles2": { + "total": 369, + "ok": 368, + "ko": 10010 + }, + "percentiles3": { + "total": 1734, + "ok": 1722, + "ko": 10010 + }, + "percentiles4": { + "total": 3410, + "ok": 3340, + "ko": 10010 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 4364, + "percentage": 83 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 451, + "percentage": 9 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 428, + "percentage": 8 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 3, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 37.47142857142857, + "ok": 37.45, + "ko": 0.02142857142857143 + } +} \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/highcharts-more.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/highcharts-more.js new file mode 100644 index 0000000..2d78893 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/highcharts-more.js @@ -0,0 +1,60 @@ +/* + Highcharts JS v5.0.3 (2016-11-18) + + (c) 2009-2016 Torstein Honsi + + License: www.highcharts.com/license +*/ +(function(x){"object"===typeof module&&module.exports?module.exports=x:x(Highcharts)})(function(x){(function(b){function r(b,a,d){this.init(b,a,d)}var t=b.each,w=b.extend,m=b.merge,q=b.splat;w(r.prototype,{init:function(b,a,d){var f=this,h=f.defaultOptions;f.chart=a;f.options=b=m(h,a.angular?{background:{}}:void 0,b);(b=b.background)&&t([].concat(q(b)).reverse(),function(a){var c,h=d.userOptions;c=m(f.defaultBackgroundOptions,a);a.backgroundColor&&(c.backgroundColor=a.backgroundColor);c.color=c.backgroundColor; +d.options.plotBands.unshift(c);h.plotBands=h.plotBands||[];h.plotBands!==d.options.plotBands&&h.plotBands.unshift(c)})},defaultOptions:{center:["50%","50%"],size:"85%",startAngle:0},defaultBackgroundOptions:{className:"highcharts-pane",shape:"circle",borderWidth:1,borderColor:"#cccccc",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#ffffff"],[1,"#e6e6e6"]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"}});b.Pane=r})(x);(function(b){var r=b.CenteredSeriesMixin, +t=b.each,w=b.extend,m=b.map,q=b.merge,e=b.noop,a=b.Pane,d=b.pick,f=b.pInt,h=b.splat,u=b.wrap,c,l,k=b.Axis.prototype;b=b.Tick.prototype;c={getOffset:e,redraw:function(){this.isDirty=!1},render:function(){this.isDirty=!1},setScale:e,setCategories:e,setTitle:e};l={defaultRadialGaugeOptions:{labels:{align:"center",x:0,y:null},minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,tickLength:10,tickPosition:"inside",tickWidth:2,title:{rotation:0},zIndex:2}, +defaultRadialXOptions:{gridLineWidth:1,labels:{align:null,distance:15,x:0,y:null},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},defaultRadialYOptions:{gridLineInterpolation:"circle",labels:{align:"right",x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}},setOptions:function(a){a=this.options=q(this.defaultOptions,this.defaultRadialOptions,a);a.plotBands||(a.plotBands=[])},getOffset:function(){k.getOffset.call(this);this.chart.axisOffset[this.side]=0;this.center=this.pane.center= +r.getCenter.call(this.pane)},getLinePath:function(a,g){a=this.center;var c=this.chart,f=d(g,a[2]/2-this.offset);this.isCircular||void 0!==g?g=this.chart.renderer.symbols.arc(this.left+a[0],this.top+a[1],f,f,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0}):(g=this.postTranslate(this.angleRad,f),g=["M",a[0]+c.plotLeft,a[1]+c.plotTop,"L",g.x,g.y]);return g},setAxisTranslation:function(){k.setAxisTranslation.call(this);this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/ +(this.max-this.min||1):this.center[2]/2/(this.max-this.min||1),this.minPixelPadding=this.isXAxis?this.transA*this.minPointOffset:0)},beforeSetTickPositions:function(){if(this.autoConnect=this.isCircular&&void 0===d(this.userMax,this.options.max)&&this.endAngleRad-this.startAngleRad===2*Math.PI)this.max+=this.categories&&1||this.pointRange||this.closestPointRange||0},setAxisSize:function(){k.setAxisSize.call(this);this.isRadial&&(this.center=this.pane.center=r.getCenter.call(this.pane),this.isCircular&& +(this.sector=this.endAngleRad-this.startAngleRad),this.len=this.width=this.height=this.center[2]*d(this.sector,1)/2)},getPosition:function(a,g){return this.postTranslate(this.isCircular?this.translate(a):this.angleRad,d(this.isCircular?g:this.translate(a),this.center[2]/2)-this.offset)},postTranslate:function(a,g){var d=this.chart,c=this.center;a=this.startAngleRad+a;return{x:d.plotLeft+c[0]+Math.cos(a)*g,y:d.plotTop+c[1]+Math.sin(a)*g}},getPlotBandPath:function(a,g,c){var h=this.center,p=this.startAngleRad, +k=h[2]/2,n=[d(c.outerRadius,"100%"),c.innerRadius,d(c.thickness,10)],b=Math.min(this.offset,0),l=/%$/,u,e=this.isCircular;"polygon"===this.options.gridLineInterpolation?h=this.getPlotLinePath(a).concat(this.getPlotLinePath(g,!0)):(a=Math.max(a,this.min),g=Math.min(g,this.max),e||(n[0]=this.translate(a),n[1]=this.translate(g)),n=m(n,function(a){l.test(a)&&(a=f(a,10)*k/100);return a}),"circle"!==c.shape&&e?(a=p+this.translate(a),g=p+this.translate(g)):(a=-Math.PI/2,g=1.5*Math.PI,u=!0),n[0]-=b,n[2]-= +b,h=this.chart.renderer.symbols.arc(this.left+h[0],this.top+h[1],n[0],n[0],{start:Math.min(a,g),end:Math.max(a,g),innerR:d(n[1],n[0]-n[2]),open:u}));return h},getPlotLinePath:function(a,g){var d=this,c=d.center,f=d.chart,h=d.getPosition(a),k,b,p;d.isCircular?p=["M",c[0]+f.plotLeft,c[1]+f.plotTop,"L",h.x,h.y]:"circle"===d.options.gridLineInterpolation?(a=d.translate(a))&&(p=d.getLinePath(0,a)):(t(f.xAxis,function(a){a.pane===d.pane&&(k=a)}),p=[],a=d.translate(a),c=k.tickPositions,k.autoConnect&&(c= +c.concat([c[0]])),g&&(c=[].concat(c).reverse()),t(c,function(g,d){b=k.getPosition(g,a);p.push(d?"L":"M",b.x,b.y)}));return p},getTitlePosition:function(){var a=this.center,g=this.chart,d=this.options.title;return{x:g.plotLeft+a[0]+(d.x||0),y:g.plotTop+a[1]-{high:.5,middle:.25,low:0}[d.align]*a[2]+(d.y||0)}}};u(k,"init",function(f,g,k){var b=g.angular,p=g.polar,n=k.isX,u=b&&n,e,A=g.options,m=k.pane||0;if(b){if(w(this,u?c:l),e=!n)this.defaultRadialOptions=this.defaultRadialGaugeOptions}else p&&(w(this, +l),this.defaultRadialOptions=(e=n)?this.defaultRadialXOptions:q(this.defaultYAxisOptions,this.defaultRadialYOptions));b||p?(this.isRadial=!0,g.inverted=!1,A.chart.zoomType=null):this.isRadial=!1;f.call(this,g,k);u||!b&&!p||(f=this.options,g.panes||(g.panes=[]),this.pane=g=g.panes[m]=g.panes[m]||new a(h(A.pane)[m],g,this),g=g.options,this.angleRad=(f.angle||0)*Math.PI/180,this.startAngleRad=(g.startAngle-90)*Math.PI/180,this.endAngleRad=(d(g.endAngle,g.startAngle+360)-90)*Math.PI/180,this.offset=f.offset|| +0,this.isCircular=e)});u(k,"autoLabelAlign",function(a){if(!this.isRadial)return a.apply(this,[].slice.call(arguments,1))});u(b,"getPosition",function(a,d,c,f,h){var g=this.axis;return g.getPosition?g.getPosition(c):a.call(this,d,c,f,h)});u(b,"getLabelPosition",function(a,g,c,f,h,k,b,l,u){var n=this.axis,p=k.y,e=20,y=k.align,v=(n.translate(this.pos)+n.startAngleRad+Math.PI/2)/Math.PI*180%360;n.isRadial?(a=n.getPosition(this.pos,n.center[2]/2+d(k.distance,-25)),"auto"===k.rotation?f.attr({rotation:v}): +null===p&&(p=n.chart.renderer.fontMetrics(f.styles.fontSize).b-f.getBBox().height/2),null===y&&(n.isCircular?(this.label.getBBox().width>n.len*n.tickInterval/(n.max-n.min)&&(e=0),y=v>e&&v<180-e?"left":v>180+e&&v<360-e?"right":"center"):y="center",f.attr({align:y})),a.x+=k.x,a.y+=p):a=a.call(this,g,c,f,h,k,b,l,u);return a});u(b,"getMarkPath",function(a,d,c,f,h,k,b){var g=this.axis;g.isRadial?(a=g.getPosition(this.pos,g.center[2]/2+f),d=["M",d,c,"L",a.x,a.y]):d=a.call(this,d,c,f,h,k,b);return d})})(x); +(function(b){var r=b.each,t=b.noop,w=b.pick,m=b.Series,q=b.seriesType,e=b.seriesTypes;q("arearange","area",{lineWidth:1,marker:null,threshold:null,tooltip:{pointFormat:'\x3cspan style\x3d"color:{series.color}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cb\x3e{point.low}\x3c/b\x3e - \x3cb\x3e{point.high}\x3c/b\x3e\x3cbr/\x3e'},trackByArea:!0,dataLabels:{align:null,verticalAlign:null,xLow:0,xHigh:0,yLow:0,yHigh:0},states:{hover:{halo:!1}}},{pointArrayMap:["low","high"],dataLabelCollections:["dataLabel", +"dataLabelUpper"],toYData:function(a){return[a.low,a.high]},pointValKey:"low",deferTranslatePolar:!0,highToXY:function(a){var d=this.chart,f=this.xAxis.postTranslate(a.rectPlotX,this.yAxis.len-a.plotHigh);a.plotHighX=f.x-d.plotLeft;a.plotHigh=f.y-d.plotTop},translate:function(){var a=this,d=a.yAxis,f=!!a.modifyValue;e.area.prototype.translate.apply(a);r(a.points,function(h){var b=h.low,c=h.high,l=h.plotY;null===c||null===b?h.isNull=!0:(h.plotLow=l,h.plotHigh=d.translate(f?a.modifyValue(c,h):c,0,1, +0,1),f&&(h.yBottom=h.plotHigh))});this.chart.polar&&r(this.points,function(d){a.highToXY(d)})},getGraphPath:function(a){var d=[],f=[],h,b=e.area.prototype.getGraphPath,c,l,k;k=this.options;var p=k.step;a=a||this.points;for(h=a.length;h--;)c=a[h],c.isNull||k.connectEnds||a[h+1]&&!a[h+1].isNull||f.push({plotX:c.plotX,plotY:c.plotY,doCurve:!1}),l={polarPlotY:c.polarPlotY,rectPlotX:c.rectPlotX,yBottom:c.yBottom,plotX:w(c.plotHighX,c.plotX),plotY:c.plotHigh,isNull:c.isNull},f.push(l),d.push(l),c.isNull|| +k.connectEnds||a[h-1]&&!a[h-1].isNull||f.push({plotX:c.plotX,plotY:c.plotY,doCurve:!1});a=b.call(this,a);p&&(!0===p&&(p="left"),k.step={left:"right",center:"center",right:"left"}[p]);d=b.call(this,d);f=b.call(this,f);k.step=p;k=[].concat(a,d);this.chart.polar||"M"!==f[0]||(f[0]="L");this.graphPath=k;this.areaPath=this.areaPath.concat(a,f);k.isArea=!0;k.xMap=a.xMap;this.areaPath.xMap=a.xMap;return k},drawDataLabels:function(){var a=this.data,d=a.length,f,h=[],b=m.prototype,c=this.options.dataLabels, +l=c.align,k=c.verticalAlign,p=c.inside,g,n,e=this.chart.inverted;if(c.enabled||this._hasPointLabels){for(f=d;f--;)if(g=a[f])n=p?g.plotHighg.plotLow,g.y=g.high,g._plotY=g.plotY,g.plotY=g.plotHigh,h[f]=g.dataLabel,g.dataLabel=g.dataLabelUpper,g.below=n,e?l||(c.align=n?"right":"left"):k||(c.verticalAlign=n?"top":"bottom"),c.x=c.xHigh,c.y=c.yHigh;b.drawDataLabels&&b.drawDataLabels.apply(this,arguments);for(f=d;f--;)if(g=a[f])n=p?g.plotHighg.plotLow,g.dataLabelUpper= +g.dataLabel,g.dataLabel=h[f],g.y=g.low,g.plotY=g._plotY,g.below=!n,e?l||(c.align=n?"left":"right"):k||(c.verticalAlign=n?"bottom":"top"),c.x=c.xLow,c.y=c.yLow;b.drawDataLabels&&b.drawDataLabels.apply(this,arguments)}c.align=l;c.verticalAlign=k},alignDataLabel:function(){e.column.prototype.alignDataLabel.apply(this,arguments)},setStackedPoints:t,getSymbol:t,drawPoints:t})})(x);(function(b){var r=b.seriesType;r("areasplinerange","arearange",null,{getPointSpline:b.seriesTypes.spline.prototype.getPointSpline})})(x); +(function(b){var r=b.defaultPlotOptions,t=b.each,w=b.merge,m=b.noop,q=b.pick,e=b.seriesType,a=b.seriesTypes.column.prototype;e("columnrange","arearange",w(r.column,r.arearange,{lineWidth:1,pointRange:null}),{translate:function(){var d=this,f=d.yAxis,b=d.xAxis,u=b.startAngleRad,c,l=d.chart,k=d.xAxis.isRadial,p;a.translate.apply(d);t(d.points,function(a){var g=a.shapeArgs,h=d.options.minPointLength,e,v;a.plotHigh=p=f.translate(a.high,0,1,0,1);a.plotLow=a.plotY;v=p;e=q(a.rectPlotY,a.plotY)-p;Math.abs(e)< +h?(h-=e,e+=h,v-=h/2):0>e&&(e*=-1,v-=e);k?(c=a.barX+u,a.shapeType="path",a.shapeArgs={d:d.polarArc(v+e,v,c,c+a.pointWidth)}):(g.height=e,g.y=v,a.tooltipPos=l.inverted?[f.len+f.pos-l.plotLeft-v-e/2,b.len+b.pos-l.plotTop-g.x-g.width/2,e]:[b.left-l.plotLeft+g.x+g.width/2,f.pos-l.plotTop+v+e/2,e])})},directTouch:!0,trackerGroups:["group","dataLabelsGroup"],drawGraph:m,crispCol:a.crispCol,drawPoints:a.drawPoints,drawTracker:a.drawTracker,getColumnMetrics:a.getColumnMetrics,animate:function(){return a.animate.apply(this, +arguments)},polarArc:function(){return a.polarArc.apply(this,arguments)},pointAttribs:a.pointAttribs})})(x);(function(b){var r=b.each,t=b.isNumber,w=b.merge,m=b.pick,q=b.pInt,e=b.Series,a=b.seriesType,d=b.TrackerMixin;a("gauge","line",{dataLabels:{enabled:!0,defer:!1,y:15,borderRadius:3,crop:!1,verticalAlign:"top",zIndex:2,borderWidth:1,borderColor:"#cccccc"},dial:{},pivot:{},tooltip:{headerFormat:""},showInLegend:!1},{angular:!0,directTouch:!0,drawGraph:b.noop,fixedBox:!0,forceDL:!0,noSharedTooltip:!0, +trackerGroups:["group","dataLabelsGroup"],translate:function(){var a=this.yAxis,d=this.options,b=a.center;this.generatePoints();r(this.points,function(c){var f=w(d.dial,c.dial),k=q(m(f.radius,80))*b[2]/200,h=q(m(f.baseLength,70))*k/100,g=q(m(f.rearLength,10))*k/100,n=f.baseWidth||3,u=f.topWidth||1,e=d.overshoot,v=a.startAngleRad+a.translate(c.y,null,null,null,!0);t(e)?(e=e/180*Math.PI,v=Math.max(a.startAngleRad-e,Math.min(a.endAngleRad+e,v))):!1===d.wrap&&(v=Math.max(a.startAngleRad,Math.min(a.endAngleRad, +v)));v=180*v/Math.PI;c.shapeType="path";c.shapeArgs={d:f.path||["M",-g,-n/2,"L",h,-n/2,k,-u/2,k,u/2,h,n/2,-g,n/2,"z"],translateX:b[0],translateY:b[1],rotation:v};c.plotX=b[0];c.plotY=b[1]})},drawPoints:function(){var a=this,d=a.yAxis.center,b=a.pivot,c=a.options,l=c.pivot,k=a.chart.renderer;r(a.points,function(d){var g=d.graphic,b=d.shapeArgs,f=b.d,h=w(c.dial,d.dial);g?(g.animate(b),b.d=f):(d.graphic=k[d.shapeType](b).attr({rotation:b.rotation,zIndex:1}).addClass("highcharts-dial").add(a.group),d.graphic.attr({stroke:h.borderColor|| +"none","stroke-width":h.borderWidth||0,fill:h.backgroundColor||"#000000"}))});b?b.animate({translateX:d[0],translateY:d[1]}):(a.pivot=k.circle(0,0,m(l.radius,5)).attr({zIndex:2}).addClass("highcharts-pivot").translate(d[0],d[1]).add(a.group),a.pivot.attr({"stroke-width":l.borderWidth||0,stroke:l.borderColor||"#cccccc",fill:l.backgroundColor||"#000000"}))},animate:function(a){var d=this;a||(r(d.points,function(a){var c=a.graphic;c&&(c.attr({rotation:180*d.yAxis.startAngleRad/Math.PI}),c.animate({rotation:a.shapeArgs.rotation}, +d.options.animation))}),d.animate=null)},render:function(){this.group=this.plotGroup("group","series",this.visible?"visible":"hidden",this.options.zIndex,this.chart.seriesGroup);e.prototype.render.call(this);this.group.clip(this.chart.clipRect)},setData:function(a,d){e.prototype.setData.call(this,a,!1);this.processData();this.generatePoints();m(d,!0)&&this.chart.redraw()},drawTracker:d&&d.drawTrackerPoint},{setState:function(a){this.state=a}})})(x);(function(b){var r=b.each,t=b.noop,w=b.pick,m=b.seriesType, +q=b.seriesTypes;m("boxplot","column",{threshold:null,tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eMaximum: {point.high}\x3cbr/\x3eUpper quartile: {point.q3}\x3cbr/\x3eMedian: {point.median}\x3cbr/\x3eLower quartile: {point.q1}\x3cbr/\x3eMinimum: {point.low}\x3cbr/\x3e'},whiskerLength:"50%",fillColor:"#ffffff",lineWidth:1,medianWidth:2,states:{hover:{brightness:-.3}},whiskerWidth:2},{pointArrayMap:["low","q1","median", +"q3","high"],toYData:function(b){return[b.low,b.q1,b.median,b.q3,b.high]},pointValKey:"high",pointAttribs:function(b){var a=this.options,d=b&&b.color||this.color;return{fill:b.fillColor||a.fillColor||d,stroke:a.lineColor||d,"stroke-width":a.lineWidth||0}},drawDataLabels:t,translate:function(){var b=this.yAxis,a=this.pointArrayMap;q.column.prototype.translate.apply(this);r(this.points,function(d){r(a,function(a){null!==d[a]&&(d[a+"Plot"]=b.translate(d[a],0,1,0,1))})})},drawPoints:function(){var b= +this,a=b.options,d=b.chart.renderer,f,h,u,c,l,k,p=0,g,n,m,q,v=!1!==b.doQuartiles,t,x=b.options.whiskerLength;r(b.points,function(e){var r=e.graphic,y=r?"animate":"attr",I=e.shapeArgs,z={},B={},G={},H=e.color||b.color;void 0!==e.plotY&&(g=I.width,n=Math.floor(I.x),m=n+g,q=Math.round(g/2),f=Math.floor(v?e.q1Plot:e.lowPlot),h=Math.floor(v?e.q3Plot:e.lowPlot),u=Math.floor(e.highPlot),c=Math.floor(e.lowPlot),r||(e.graphic=r=d.g("point").add(b.group),e.stem=d.path().addClass("highcharts-boxplot-stem").add(r), +x&&(e.whiskers=d.path().addClass("highcharts-boxplot-whisker").add(r)),v&&(e.box=d.path(void 0).addClass("highcharts-boxplot-box").add(r)),e.medianShape=d.path(void 0).addClass("highcharts-boxplot-median").add(r),z.stroke=e.stemColor||a.stemColor||H,z["stroke-width"]=w(e.stemWidth,a.stemWidth,a.lineWidth),z.dashstyle=e.stemDashStyle||a.stemDashStyle,e.stem.attr(z),x&&(B.stroke=e.whiskerColor||a.whiskerColor||H,B["stroke-width"]=w(e.whiskerWidth,a.whiskerWidth,a.lineWidth),e.whiskers.attr(B)),v&&(r= +b.pointAttribs(e),e.box.attr(r)),G.stroke=e.medianColor||a.medianColor||H,G["stroke-width"]=w(e.medianWidth,a.medianWidth,a.lineWidth),e.medianShape.attr(G)),k=e.stem.strokeWidth()%2/2,p=n+q+k,e.stem[y]({d:["M",p,h,"L",p,u,"M",p,f,"L",p,c]}),v&&(k=e.box.strokeWidth()%2/2,f=Math.floor(f)+k,h=Math.floor(h)+k,n+=k,m+=k,e.box[y]({d:["M",n,h,"L",n,f,"L",m,f,"L",m,h,"L",n,h,"z"]})),x&&(k=e.whiskers.strokeWidth()%2/2,u+=k,c+=k,t=/%$/.test(x)?q*parseFloat(x)/100:x/2,e.whiskers[y]({d:["M",p-t,u,"L",p+t,u, +"M",p-t,c,"L",p+t,c]})),l=Math.round(e.medianPlot),k=e.medianShape.strokeWidth()%2/2,l+=k,e.medianShape[y]({d:["M",n,l,"L",m,l]}))})},setStackedPoints:t})})(x);(function(b){var r=b.each,t=b.noop,w=b.seriesType,m=b.seriesTypes;w("errorbar","boxplot",{color:"#000000",grouping:!1,linkedTo:":previous",tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cb\x3e{point.low}\x3c/b\x3e - \x3cb\x3e{point.high}\x3c/b\x3e\x3cbr/\x3e'},whiskerWidth:null},{type:"errorbar", +pointArrayMap:["low","high"],toYData:function(b){return[b.low,b.high]},pointValKey:"high",doQuartiles:!1,drawDataLabels:m.arearange?function(){var b=this.pointValKey;m.arearange.prototype.drawDataLabels.call(this);r(this.data,function(e){e.y=e[b]})}:t,getColumnMetrics:function(){return this.linkedParent&&this.linkedParent.columnMetrics||m.column.prototype.getColumnMetrics.call(this)}})})(x);(function(b){var r=b.correctFloat,t=b.isNumber,w=b.pick,m=b.Point,q=b.Series,e=b.seriesType,a=b.seriesTypes; +e("waterfall","column",{dataLabels:{inside:!0},lineWidth:1,lineColor:"#333333",dashStyle:"dot",borderColor:"#333333",states:{hover:{lineWidthPlus:0}}},{pointValKey:"y",translate:function(){var d=this.options,b=this.yAxis,h,e,c,l,k,p,g,n,m,q=w(d.minPointLength,5),v=d.threshold,t=d.stacking;a.column.prototype.translate.apply(this);this.minPointLengthOffset=0;g=n=v;e=this.points;h=0;for(d=e.length;hl.height&&(l.y+=l.height,l.height*=-1),c.plotY=l.y=Math.round(l.y)- +this.borderWidth%2/2,l.height=Math.max(Math.round(l.height),.001),c.yBottom=l.y+l.height,l.height<=q&&(l.height=q,this.minPointLengthOffset+=q),l.y-=this.minPointLengthOffset,l=c.plotY+(c.negative?l.height:0)-this.minPointLengthOffset,this.chart.inverted?c.tooltipPos[0]=b.len-l:c.tooltipPos[1]=l},processData:function(a){var b=this.yData,d=this.options.data,e,c=b.length,l,k,p,g,n,m;k=l=p=g=this.options.threshold||0;for(m=0;ma[k-1].y&&(l[2]+=c.height,l[5]+=c.height),e=e.concat(l);return e},drawGraph:function(){q.prototype.drawGraph.call(this);this.graph.attr({d:this.getCrispPath()})},getExtremes:b.noop},{getClassName:function(){var a=m.prototype.getClassName.call(this);this.isSum?a+=" highcharts-sum":this.isIntermediateSum&&(a+=" highcharts-intermediate-sum"); +return a},isValid:function(){return t(this.y,!0)||this.isSum||this.isIntermediateSum}})})(x);(function(b){var r=b.Series,t=b.seriesType,w=b.seriesTypes;t("polygon","scatter",{marker:{enabled:!1,states:{hover:{enabled:!1}}},stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:""},trackByArea:!0},{type:"polygon",getGraphPath:function(){for(var b=r.prototype.getGraphPath.call(this),q=b.length+1;q--;)(q===b.length||"M"===b[q])&&0=this.minPxSize/2?(d.shapeType="circle",d.shapeArgs={x:d.plotX,y:d.plotY,r:c},d.dlBox={x:d.plotX-c,y:d.plotY-c,width:2*c,height:2*c}):d.shapeArgs=d.plotY=d.dlBox=void 0},drawLegendSymbol:function(a,b){var d=this.chart.renderer,c=d.fontMetrics(a.itemStyle.fontSize).f/2;b.legendSymbol=d.circle(c,a.baseline-c,c).attr({zIndex:3}).add(b.legendGroup);b.legendSymbol.isMarker= +!0},drawPoints:l.column.prototype.drawPoints,alignDataLabel:l.column.prototype.alignDataLabel,buildKDTree:a,applyZones:a},{haloPath:function(a){return h.prototype.haloPath.call(this,this.shapeArgs.r+a)},ttBelow:!1});w.prototype.beforePadding=function(){var a=this,b=this.len,c=this.chart,h=0,l=b,u=this.isXAxis,m=u?"xData":"yData",w=this.min,x={},A=Math.min(c.plotWidth,c.plotHeight),C=Number.MAX_VALUE,D=-Number.MAX_VALUE,E=this.max-w,z=b/E,F=[];q(this.series,function(b){var g=b.options;!b.bubblePadding|| +!b.visible&&c.options.chart.ignoreHiddenSeries||(a.allowZoomOutside=!0,F.push(b),u&&(q(["minSize","maxSize"],function(a){var b=g[a],d=/%$/.test(b),b=f(b);x[a]=d?A*b/100:b}),b.minPxSize=x.minSize,b.maxPxSize=Math.max(x.maxSize,x.minSize),b=b.zData,b.length&&(C=d(g.zMin,Math.min(C,Math.max(t(b),!1===g.displayNegative?g.zThreshold:-Number.MAX_VALUE))),D=d(g.zMax,Math.max(D,r(b))))))});q(F,function(b){var d=b[m],c=d.length,f;u&&b.getRadii(C,D,b.minPxSize,b.maxPxSize);if(0f&&(f+=360),a.clientX=f):a.clientX=a.plotX};m.spline&&q(m.spline.prototype,"getPointSpline",function(a,b,f,h){var d,c,e,k,p,g,n;this.chart.polar?(d=f.plotX, +c=f.plotY,a=b[h-1],e=b[h+1],this.connectEnds&&(a||(a=b[b.length-2]),e||(e=b[1])),a&&e&&(k=a.plotX,p=a.plotY,b=e.plotX,g=e.plotY,k=(1.5*d+k)/2.5,p=(1.5*c+p)/2.5,e=(1.5*d+b)/2.5,n=(1.5*c+g)/2.5,b=Math.sqrt(Math.pow(k-d,2)+Math.pow(p-c,2)),g=Math.sqrt(Math.pow(e-d,2)+Math.pow(n-c,2)),k=Math.atan2(p-c,k-d),p=Math.atan2(n-c,e-d),n=Math.PI/2+(k+p)/2,Math.abs(k-n)>Math.PI/2&&(n-=Math.PI),k=d+Math.cos(n)*b,p=c+Math.sin(n)*b,e=d+Math.cos(Math.PI+n)*g,n=c+Math.sin(Math.PI+n)*g,f.rightContX=e,f.rightContY=n), +h?(f=["C",a.rightContX||a.plotX,a.rightContY||a.plotY,k||d,p||c,d,c],a.rightContX=a.rightContY=null):f=["M",d,c]):f=a.call(this,b,f,h);return f});q(e,"translate",function(a){var b=this.chart;a.call(this);if(b.polar&&(this.kdByAngle=b.tooltip&&b.tooltip.shared,!this.preventPostTranslate))for(a=this.points,b=a.length;b--;)this.toXY(a[b])});q(e,"getGraphPath",function(a,b){var d=this,e,m;if(this.chart.polar){b=b||this.points;for(e=0;eb.center[1]}),q(m,"alignDataLabel",function(a,b,f,h,m,c){this.chart.polar?(a=b.rectPlotX/Math.PI*180,null===h.align&&(h.align=20a?"left":200a?"right":"center"),null===h.verticalAlign&&(h.verticalAlign=45>a||315a?"top":"middle"),e.alignDataLabel.call(this,b,f,h,m,c)):a.call(this, +b,f,h,m,c)}));q(b,"getCoordinates",function(a,b){var d=this.chart,e={xAxis:[],yAxis:[]};d.polar?t(d.axes,function(a){var c=a.isXAxis,f=a.center,h=b.chartX-f[0]-d.plotLeft,f=b.chartY-f[1]-d.plotTop;e[c?"xAxis":"yAxis"].push({axis:a,value:a.translate(c?Math.PI-Math.atan2(h,f):Math.sqrt(Math.pow(h,2)+Math.pow(f,2)),!0)})}):e=a.call(this,b);return e})})(x)}); diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/highstock.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/highstock.js new file mode 100644 index 0000000..34a3f91 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/highstock.js @@ -0,0 +1,496 @@ +/* + Highstock JS v5.0.3 (2016-11-18) + + (c) 2009-2016 Torstein Honsi + + License: www.highcharts.com/license +*/ +(function(N,a){"object"===typeof module&&module.exports?module.exports=N.document?a(N):a:N.Highcharts=a(N)})("undefined"!==typeof window?window:this,function(N){N=function(){var a=window,D=a.document,B=a.navigator&&a.navigator.userAgent||"",G=D&&D.createElementNS&&!!D.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,H=/(edge|msie|trident)/i.test(B)&&!window.opera,p=!G,l=/Firefox/.test(B),r=l&&4>parseInt(B.split("Firefox/")[1],10);return a.Highcharts?a.Highcharts.error(16,!0):{product:"Highstock", +version:"5.0.3",deg2rad:2*Math.PI/360,doc:D,hasBidiBug:r,hasTouch:D&&void 0!==D.documentElement.ontouchstart,isMS:H,isWebKit:/AppleWebKit/.test(B),isFirefox:l,isTouchDevice:/(Mobile|Android|Windows Phone)/.test(B),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:G,vml:p,win:a,charts:[],marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){}}}();(function(a){var D=[],B=a.charts,G=a.doc,H=a.win;a.error=function(a,l){a="Highcharts error #"+ +a+": www.highcharts.com/errors/"+a;if(l)throw Error(a);H.console&&console.log(a)};a.Fx=function(a,l,r){this.options=l;this.elem=a;this.prop=r};a.Fx.prototype={dSetter:function(){var a=this.paths[0],l=this.paths[1],r=[],w=this.now,t=a.length,k;if(1===w)r=this.toD;else if(t===l.length&&1>w)for(;t--;)k=parseFloat(a[t]),r[t]=isNaN(k)?a[t]:w*parseFloat(l[t]-k)+k;else r=l;this.elem.attr("d",r)},update:function(){var a=this.elem,l=this.prop,r=this.now,w=this.options.step;if(this[l+"Setter"])this[l+"Setter"](); +else a.attr?a.element&&a.attr(l,r):a.style[l]=r+this.unit;w&&w.call(a,r,this)},run:function(a,l,r){var p=this,t=function(a){return t.stopped?!1:p.step(a)},k;this.startTime=+new Date;this.start=a;this.end=l;this.unit=r;this.now=this.start;this.pos=0;t.elem=this.elem;t()&&1===D.push(t)&&(t.timerId=setInterval(function(){for(k=0;k=k+this.startTime){this.now=this.end;this.pos=1;this.update();a=m[this.prop]=!0;for(e in m)!0!==m[e]&&(a=!1);a&&t&&t.call(p);p=!1}else this.pos=w.easing((l-this.startTime)/k),this.now=this.start+(this.end-this.start)*this.pos,this.update(),p=!0;return p},initPath:function(p,l,r){function w(a){for(b=a.length;b--;)"M"!==a[b]&&"L"!==a[b]||a.splice(b+1,0,a[b+1],a[b+2],a[b+1],a[b+2])}function t(a,c){for(;a.lengthm?"AM":"PM",P:12>m?"am":"pm",S:q(t.getSeconds()),L:q(Math.round(l%1E3),3)},a.dateFormats);for(k in w)for(;-1!==p.indexOf("%"+k);)p= +p.replace("%"+k,"function"===typeof w[k]?w[k](l):w[k]);return r?p.substr(0,1).toUpperCase()+p.substr(1):p};a.formatSingle=function(p,l){var r=/\.([0-9])/,w=a.defaultOptions.lang;/f$/.test(p)?(r=(r=p.match(r))?r[1]:-1,null!==l&&(l=a.numberFormat(l,r,w.decimalPoint,-1=r&&(l=[1/r])));for(w=0;w=p||!t&&k<=(l[w]+(l[w+1]||l[w]))/ +2);w++);return m*r};a.stableSort=function(a,l){var r=a.length,p,t;for(t=0;tr&&(r=a[l]);return r};a.destroyObjectProperties=function(a,l){for(var r in a)a[r]&&a[r]!==l&&a[r].destroy&&a[r].destroy(),delete a[r]};a.discardElement=function(p){var l= +a.garbageBin;l||(l=a.createElement("div"));p&&l.appendChild(p);l.innerHTML=""};a.correctFloat=function(a,l){return parseFloat(a.toPrecision(l||14))};a.setAnimation=function(p,l){l.renderer.globalAnimation=a.pick(p,l.options.chart.animation,!0)};a.animObject=function(p){return a.isObject(p)?a.merge(p):{duration:p?500:0}};a.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5};a.numberFormat=function(p,l,r,w){p=+p||0;l=+l;var t=a.defaultOptions.lang, +k=(p.toString().split(".")[1]||"").length,m,e,g=Math.abs(p);-1===l?l=Math.min(k,20):a.isNumber(l)||(l=2);m=String(a.pInt(g.toFixed(l)));e=3p?"-":"")+(e?m.substr(0,e)+w:"");p+=m.substr(e).replace(/(\d{3})(?=\d)/g,"$1"+w);l&&(w=Math.abs(g-m+Math.pow(10,-Math.max(l,k)-1)),p+=r+w.toFixed(l).slice(2));return p};Math.easeInOutSine=function(a){return-.5*(Math.cos(Math.PI*a)-1)};a.getStyle=function(p,l){return"width"===l?Math.min(p.offsetWidth, +p.scrollWidth)-a.getStyle(p,"padding-left")-a.getStyle(p,"padding-right"):"height"===l?Math.min(p.offsetHeight,p.scrollHeight)-a.getStyle(p,"padding-top")-a.getStyle(p,"padding-bottom"):(p=H.getComputedStyle(p,void 0))&&a.pInt(p.getPropertyValue(l))};a.inArray=function(a,l){return l.indexOf?l.indexOf(a):[].indexOf.call(l,a)};a.grep=function(a,l){return[].filter.call(a,l)};a.map=function(a,l){for(var r=[],p=0,t=a.length;pl;l++)w[l]+=p(255*a),0>w[l]&&(w[l]=0),255z.width)z={width:0,height:0}}else z=this.htmlGetBBox();b.isSVG&&(a=z.width, +b=z.height,c&&L&&"11px"===L.fontSize&&"16.9"===b.toPrecision(3)&&(z.height=b=14),v&&(z.width=Math.abs(b*Math.sin(d))+Math.abs(a*Math.cos(d)),z.height=Math.abs(b*Math.cos(d))+Math.abs(a*Math.sin(d))));if(g&&0]*>/g,"")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,this.textStr=a,this.added&&this.renderer.buildText(this))},fillSetter:function(a,c,v){"string"===typeof a?v.setAttribute(c, +a):a&&this.colorGradient(a,c,v)},visibilitySetter:function(a,c,v){"inherit"===a?v.removeAttribute(c):v.setAttribute(c,a)},zIndexSetter:function(a,c){var v=this.renderer,z=this.parentGroup,b=(z||v).element||v.box,d,n=this.element,f;d=this.added;var e;k(a)&&(n.zIndex=a,a=+a,this[c]===a&&(d=!1),this[c]=a);if(d){(a=this.zIndex)&&z&&(z.handleZ=!0);c=b.childNodes;for(e=0;ea||!k(a)&&k(d)||0>a&&!k(d)&&b!==v.box)&&(b.insertBefore(n,z),f=!0);f||b.appendChild(n)}return f}, +_defaultSetter:function(a,c,v){v.setAttribute(c,a)}};D.prototype.yGetter=D.prototype.xGetter;D.prototype.translateXSetter=D.prototype.translateYSetter=D.prototype.rotationSetter=D.prototype.verticalAlignSetter=D.prototype.scaleXSetter=D.prototype.scaleYSetter=function(a,c){this[c]=a;this.doTransform=!0};D.prototype["stroke-widthSetter"]=D.prototype.strokeSetter=function(a,c,v){this[c]=a;this.stroke&&this["stroke-width"]?(D.prototype.fillSetter.call(this,this.stroke,"stroke",v),v.setAttribute("stroke-width", +this["stroke-width"]),this.hasStroke=!0):"stroke-width"===c&&0===a&&this.hasStroke&&(v.removeAttribute("stroke"),this.hasStroke=!1)};B=a.SVGRenderer=function(){this.init.apply(this,arguments)};B.prototype={Element:D,SVG_NS:K,init:function(a,c,v,b,d,n){var z;b=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"}).css(this.getStyle(b));z=b.element;a.appendChild(z);-1===a.innerHTML.indexOf("xmlns")&&p(z,"xmlns",this.SVG_NS);this.isSVG=!0;this.box=z;this.boxWrapper=b;this.alignedObjects= +[];this.url=(E||A)&&g.getElementsByTagName("base").length?R.location.href.replace(/#.*?$/,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(g.createTextNode("Created with Highstock 5.0.3"));this.defs=this.createElement("defs").add();this.allowHTML=n;this.forExport=d;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(c,v,!1);var f;E&&a.getBoundingClientRect&&(c=function(){w(a,{left:0,top:0});f=a.getBoundingClientRect(); +w(a,{left:Math.ceil(f.left)-f.left+"px",top:Math.ceil(f.top)-f.top+"px"})},c(),this.unSubPixelFix=G(R,"resize",c))},getStyle:function(a){return this.style=C({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},a)},setStyle:function(a){this.boxWrapper.css(this.getStyle(a))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();e(this.gradients||{});this.gradients= +null;a&&(this.defs=a.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(a){var c=new this.Element;c.init(this,a);return c},draw:J,getRadialAttr:function(a,c){return{cx:a[0]-a[2]/2+c.cx*a[2],cy:a[1]-a[2]/2+c.cy*a[2],r:c.r*a[2]}},buildText:function(a){for(var c=a.element,z=this,b=z.forExport,n=y(a.textStr,"").toString(),f=-1!==n.indexOf("\x3c"),e=c.childNodes,q,F,x,A,I=p(c,"x"),m=a.styles,k=a.textWidth,C=m&&m.lineHeight,M=m&&m.textOutline,J=m&& +"ellipsis"===m.textOverflow,E=e.length,O=k&&!a.added&&this.box,t=function(a){var v;v=/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize:m&&m.fontSize||z.style.fontSize||12;return C?u(C):z.fontMetrics(v,a.getAttribute("style")?a:c).h};E--;)c.removeChild(e[E]);f||M||J||k||-1!==n.indexOf(" ")?(q=/<.*class="([^"]+)".*>/,F=/<.*style="([^"]+)".*>/,x=/<.*href="(http[^"]+)".*>/,O&&O.appendChild(c),n=f?n.replace(/<(b|strong)>/g,'\x3cspan style\x3d"font-weight:bold"\x3e').replace(/<(i|em)>/g,'\x3cspan style\x3d"font-style:italic"\x3e').replace(//g,"\x3c/span\x3e").split(//g):[n],n=d(n,function(a){return""!==a}),h(n,function(d,n){var f,e=0;d=d.replace(/^\s+|\s+$/g,"").replace(//g,"\x3c/span\x3e|||");f=d.split("|||");h(f,function(d){if(""!==d||1===f.length){var u={},y=g.createElementNS(z.SVG_NS,"tspan"),L,h;q.test(d)&&(L=d.match(q)[1],p(y,"class",L));F.test(d)&&(h=d.match(F)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),p(y,"style",h));x.test(d)&&!b&&(p(y, +"onclick",'location.href\x3d"'+d.match(x)[1]+'"'),w(y,{cursor:"pointer"}));d=(d.replace(/<(.|\n)*?>/g,"")||" ").replace(/</g,"\x3c").replace(/>/g,"\x3e");if(" "!==d){y.appendChild(g.createTextNode(d));e?u.dx=0:n&&null!==I&&(u.x=I);p(y,u);c.appendChild(y);!e&&n&&(!v&&b&&w(y,{display:"block"}),p(y,"dy",t(y)));if(k){u=d.replace(/([^\^])-/g,"$1- ").split(" ");L="nowrap"===m.whiteSpace;for(var C=1k,void 0===A&&(A=M),J&&A?(Q/=2,""===l||!M&&.5>Q?u=[]:(l=d.substring(0,l.length+(M?-1:1)*Math.ceil(Q)),u=[l+(3k&&(k=P)),u.length&&y.appendChild(g.createTextNode(u.join(" ").replace(/- /g, +"-")));a.rotation=R}e++}}})}),A&&a.attr("title",a.textStr),O&&O.removeChild(c),M&&a.applyTextOutline&&a.applyTextOutline(M)):c.appendChild(g.createTextNode(n.replace(/</g,"\x3c").replace(/>/g,"\x3e")))},getContrast:function(a){a=r(a).rgba;return 510v?d>c+f&&de?d>c+f&&db&&e>a+f&&ed&&e>a+f&&ea?a+3:Math.round(1.2*a);return{h:c,b:Math.round(.8*c),f:a}},rotCorr:function(a, +c,v){var b=a;c&&v&&(b=Math.max(b*Math.cos(c*m),4));return{x:-a/3*Math.sin(c*m),y:b}},label:function(a,c,v,b,d,n,f,e,K){var q=this,u=q.g("button"!==K&&"label"),y=u.text=q.text("",0,0,f).attr({zIndex:1}),g,F,z=0,A=3,L=0,m,M,J,E,O,t={},l,R,r=/^url\((.*?)\)$/.test(b),p=r,P,w,Q,S;K&&u.addClass("highcharts-"+K);p=r;P=function(){return(l||0)%2/2};w=function(){var a=y.element.style,c={};F=(void 0===m||void 0===M||O)&&k(y.textStr)&&y.getBBox();u.width=(m||F.width||0)+2*A+L;u.height=(M||F.height||0)+2*A;R= +A+q.fontMetrics(a&&a.fontSize,y).b;p&&(g||(u.box=g=q.symbols[b]||r?q.symbol(b):q.rect(),g.addClass(("button"===K?"":"highcharts-label-box")+(K?" highcharts-"+K+"-box":"")),g.add(u),a=P(),c.x=a,c.y=(e?-R:0)+a),c.width=Math.round(u.width),c.height=Math.round(u.height),g.attr(C(c,t)),t={})};Q=function(){var a=L+A,c;c=e?0:R;k(m)&&F&&("center"===O||"right"===O)&&(a+={center:.5,right:1}[O]*(m-F.width));if(a!==y.x||c!==y.y)y.attr("x",a),void 0!==c&&y.attr("y",c);y.x=a;y.y=c};S=function(a,c){g?g.attr(a,c): +t[a]=c};u.onAdd=function(){y.add(u);u.attr({text:a||0===a?a:"",x:c,y:v});g&&k(d)&&u.attr({anchorX:d,anchorY:n})};u.widthSetter=function(a){m=a};u.heightSetter=function(a){M=a};u["text-alignSetter"]=function(a){O=a};u.paddingSetter=function(a){k(a)&&a!==A&&(A=u.padding=a,Q())};u.paddingLeftSetter=function(a){k(a)&&a!==L&&(L=a,Q())};u.alignSetter=function(a){a={left:0,center:.5,right:1}[a];a!==z&&(z=a,F&&u.attr({x:J}))};u.textSetter=function(a){void 0!==a&&y.textSetter(a);w();Q()};u["stroke-widthSetter"]= +function(a,c){a&&(p=!0);l=this["stroke-width"]=a;S(c,a)};u.strokeSetter=u.fillSetter=u.rSetter=function(a,c){"fill"===c&&a&&(p=!0);S(c,a)};u.anchorXSetter=function(a,c){d=a;S(c,Math.round(a)-P()-J)};u.anchorYSetter=function(a,c){n=a;S(c,a-E)};u.xSetter=function(a){u.x=a;z&&(a-=z*((m||F.width)+2*A));J=Math.round(a);u.attr("translateX",J)};u.ySetter=function(a){E=u.y=Math.round(a);u.attr("translateY",E)};var T=u.css;return C(u,{css:function(a){if(a){var c={};a=x(a);h(u.textProps,function(v){void 0!== +a[v]&&(c[v]=a[v],delete a[v])});y.css(c)}return T.call(u,a)},getBBox:function(){return{width:F.width+2*A,height:F.height+2*A,x:F.x-A,y:F.y-A}},shadow:function(a){a&&(w(),g&&g.shadow(a));return u},destroy:function(){I(u.element,"mouseenter");I(u.element,"mouseleave");y&&(y=y.destroy());g&&(g=g.destroy());D.prototype.destroy.call(u);u=q=w=Q=S=null}})}};a.Renderer=B})(N);(function(a){var D=a.attr,B=a.createElement,G=a.css,H=a.defined,p=a.each,l=a.extend,r=a.isFirefox,w=a.isMS,t=a.isWebKit,k=a.pInt,m= +a.SVGRenderer,e=a.win,g=a.wrap;l(a.SVGElement.prototype,{htmlCss:function(a){var e=this.element;if(e=a&&"SPAN"===e.tagName&&a.width)delete a.width,this.textWidth=e,this.updateTransform();a&&"ellipsis"===a.textOverflow&&(a.whiteSpace="nowrap",a.overflow="hidden");this.styles=l(this.styles,a);G(this.element,a);return this},htmlGetBBox:function(){var a=this.element;"text"===a.nodeName&&(a.style.position="absolute");return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var a= +this.renderer,e=this.element,f=this.translateX||0,d=this.translateY||0,b=this.x||0,q=this.y||0,g=this.textAlign||"left",c={left:0,center:.5,right:1}[g],F=this.styles;G(e,{marginLeft:f,marginTop:d});this.shadows&&p(this.shadows,function(a){G(a,{marginLeft:f+1,marginTop:d+1})});this.inverted&&p(e.childNodes,function(c){a.invertChild(c,e)});if("SPAN"===e.tagName){var n=this.rotation,A=k(this.textWidth),x=F&&F.whiteSpace,m=[n,g,e.innerHTML,this.textWidth,this.textAlign].join();m!==this.cTT&&(F=a.fontMetrics(e.style.fontSize).b, +H(n)&&this.setSpanRotation(n,c,F),G(e,{width:"",whiteSpace:x||"nowrap"}),e.offsetWidth>A&&/[ \-]/.test(e.textContent||e.innerText)&&G(e,{width:A+"px",display:"block",whiteSpace:x||"normal"}),this.getSpanCorrection(e.offsetWidth,F,c,n,g));G(e,{left:b+(this.xCorr||0)+"px",top:q+(this.yCorr||0)+"px"});t&&(F=e.offsetHeight);this.cTT=m}}else this.alignOnAdd=!0},setSpanRotation:function(a,g,f){var d={},b=w?"-ms-transform":t?"-webkit-transform":r?"MozTransform":e.opera?"-o-transform":"";d[b]=d.transform= +"rotate("+a+"deg)";d[b+(r?"Origin":"-origin")]=d.transformOrigin=100*g+"% "+f+"px";G(this.element,d)},getSpanCorrection:function(a,e,f){this.xCorr=-a*f;this.yCorr=-e}});l(m.prototype,{html:function(a,e,f){var d=this.createElement("span"),b=d.element,q=d.renderer,h=q.isSVG,c=function(a,c){p(["opacity","visibility"],function(b){g(a,b+"Setter",function(a,b,d,n){a.call(this,b,d,n);c[d]=b})})};d.textSetter=function(a){a!==b.innerHTML&&delete this.bBox;b.innerHTML=this.textStr=a;d.htmlUpdateTransform()}; +h&&c(d,d.element.style);d.xSetter=d.ySetter=d.alignSetter=d.rotationSetter=function(a,c){"align"===c&&(c="textAlign");d[c]=a;d.htmlUpdateTransform()};d.attr({text:a,x:Math.round(e),y:Math.round(f)}).css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize,position:"absolute"});b.style.whiteSpace="nowrap";d.css=d.htmlCss;h&&(d.add=function(a){var n,f=q.box.parentNode,e=[];if(this.parentGroup=a){if(n=a.div,!n){for(;a;)e.push(a),a=a.parentGroup;p(e.reverse(),function(a){var b,d=D(a.element, +"class");d&&(d={className:d});n=a.div=a.div||B("div",d,{position:"absolute",left:(a.translateX||0)+"px",top:(a.translateY||0)+"px",display:a.display,opacity:a.opacity,pointerEvents:a.styles&&a.styles.pointerEvents},n||f);b=n.style;l(a,{translateXSetter:function(c,d){b.left=c+"px";a[d]=c;a.doTransform=!0},translateYSetter:function(c,d){b.top=c+"px";a[d]=c;a.doTransform=!0}});c(a,b)})}}else n=f;n.appendChild(b);d.added=!0;d.alignOnAdd&&d.htmlUpdateTransform();return d});return d}})})(N);(function(a){var D, +B,G=a.createElement,H=a.css,p=a.defined,l=a.deg2rad,r=a.discardElement,w=a.doc,t=a.each,k=a.erase,m=a.extend;D=a.extendClass;var e=a.isArray,g=a.isNumber,h=a.isObject,C=a.merge;B=a.noop;var f=a.pick,d=a.pInt,b=a.SVGElement,q=a.SVGRenderer,E=a.win;a.svg||(B={docMode8:w&&8===w.documentMode,init:function(a,b){var c=["\x3c",b,' filled\x3d"f" stroked\x3d"f"'],d=["position: ","absolute",";"],f="div"===b;("shape"===b||f)&&d.push("left:0;top:0;width:1px;height:1px;");d.push("visibility: ",f?"hidden":"visible"); +c.push(' style\x3d"',d.join(""),'"/\x3e');b&&(c=f||"span"===b||"img"===b?c.join(""):a.prepVML(c),this.element=G(c));this.renderer=a},add:function(a){var c=this.renderer,b=this.element,d=c.box,f=a&&a.inverted,d=a?a.element||a:d;a&&(this.parentGroup=a);f&&c.invertChild(b,d);d.appendChild(b);this.added=!0;this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform();if(this.onAdd)this.onAdd();this.className&&this.attr("class",this.className);return this},updateTransform:b.prototype.htmlUpdateTransform, +setSpanRotation:function(){var a=this.rotation,b=Math.cos(a*l),d=Math.sin(a*l);H(this.element,{filter:a?["progid:DXImageTransform.Microsoft.Matrix(M11\x3d",b,", M12\x3d",-d,", M21\x3d",d,", M22\x3d",b,", sizingMethod\x3d'auto expand')"].join(""):"none"})},getSpanCorrection:function(a,b,d,e,q){var c=e?Math.cos(e*l):1,n=e?Math.sin(e*l):0,u=f(this.elemHeight,this.element.offsetHeight),g;this.xCorr=0>c&&-a;this.yCorr=0>n&&-u;g=0>c*n;this.xCorr+=n*b*(g?1-d:d);this.yCorr-=c*b*(e?g?d:1-d:1);q&&"left"!== +q&&(this.xCorr-=a*d*(0>c?-1:1),e&&(this.yCorr-=u*d*(0>n?-1:1)),H(this.element,{textAlign:q}))},pathToVML:function(a){for(var c=a.length,b=[];c--;)g(a[c])?b[c]=Math.round(10*a[c])-5:"Z"===a[c]?b[c]="x":(b[c]=a[c],!a.isArc||"wa"!==a[c]&&"at"!==a[c]||(b[c+5]===b[c+7]&&(b[c+7]+=a[c+7]>a[c+5]?1:-1),b[c+6]===b[c+8]&&(b[c+8]+=a[c+8]>a[c+6]?1:-1)));return b.join(" ")||"x"},clip:function(a){var c=this,b;a?(b=a.members,k(b,c),b.push(c),c.destroyClip=function(){k(b,c)},a=a.getCSS(c)):(c.destroyClip&&c.destroyClip(), +a={clip:c.docMode8?"inherit":"rect(auto)"});return c.css(a)},css:b.prototype.htmlCss,safeRemoveChild:function(a){a.parentNode&&r(a)},destroy:function(){this.destroyClip&&this.destroyClip();return b.prototype.destroy.apply(this)},on:function(a,b){this.element["on"+a]=function(){var a=E.event;a.target=a.srcElement;b(a)};return this},cutOffPath:function(a,b){var c;a=a.split(/[ ,]/);c=a.length;if(9===c||11===c)a[c-4]=a[c-2]=d(a[c-2])-10*b;return a.join(" ")},shadow:function(a,b,e){var c=[],n,q=this.element, +g=this.renderer,u,I=q.style,F,v=q.path,K,h,m,z;v&&"string"!==typeof v.value&&(v="x");h=v;if(a){m=f(a.width,3);z=(a.opacity||.15)/m;for(n=1;3>=n;n++)K=2*m+1-2*n,e&&(h=this.cutOffPath(v.value,K+.5)),F=['\x3cshape isShadow\x3d"true" strokeweight\x3d"',K,'" filled\x3d"false" path\x3d"',h,'" coordsize\x3d"10 10" style\x3d"',q.style.cssText,'" /\x3e'],u=G(g.prepVML(F),null,{left:d(I.left)+f(a.offsetX,1),top:d(I.top)+f(a.offsetY,1)}),e&&(u.cutOff=K+1),F=['\x3cstroke color\x3d"',a.color||"#000000",'" opacity\x3d"', +z*n,'"/\x3e'],G(g.prepVML(F),null,null,u),b?b.element.appendChild(u):q.parentNode.insertBefore(u,q),c.push(u);this.shadows=c}return this},updateShadows:B,setAttr:function(a,b){this.docMode8?this.element[a]=b:this.element.setAttribute(a,b)},classSetter:function(a){(this.added?this.element:this).className=a},dashstyleSetter:function(a,b,d){(d.getElementsByTagName("stroke")[0]||G(this.renderer.prepVML(["\x3cstroke/\x3e"]),null,null,d))[b]=a||"solid";this[b]=a},dSetter:function(a,b,d){var c=this.shadows; +a=a||[];this.d=a.join&&a.join(" ");d.path=a=this.pathToVML(a);if(c)for(d=c.length;d--;)c[d].path=c[d].cutOff?this.cutOffPath(a,c[d].cutOff):a;this.setAttr(b,a)},fillSetter:function(a,b,d){var c=d.nodeName;"SPAN"===c?d.style.color=a:"IMG"!==c&&(d.filled="none"!==a,this.setAttr("fillcolor",this.renderer.color(a,d,b,this)))},"fill-opacitySetter":function(a,b,d){G(this.renderer.prepVML(["\x3c",b.split("-")[0],' opacity\x3d"',a,'"/\x3e']),null,null,d)},opacitySetter:B,rotationSetter:function(a,b,d){d= +d.style;this[b]=d[b]=a;d.left=-Math.round(Math.sin(a*l)+1)+"px";d.top=Math.round(Math.cos(a*l))+"px"},strokeSetter:function(a,b,d){this.setAttr("strokecolor",this.renderer.color(a,d,b,this))},"stroke-widthSetter":function(a,b,d){d.stroked=!!a;this[b]=a;g(a)&&(a+="px");this.setAttr("strokeweight",a)},titleSetter:function(a,b){this.setAttr(b,a)},visibilitySetter:function(a,b,d){"inherit"===a&&(a="visible");this.shadows&&t(this.shadows,function(c){c.style[b]=a});"DIV"===d.nodeName&&(a="hidden"===a?"-999em": +0,this.docMode8||(d.style[b]=a?"visible":"hidden"),b="top");d.style[b]=a},xSetter:function(a,b,d){this[b]=a;"x"===b?b="left":"y"===b&&(b="top");this.updateClipping?(this[b]=a,this.updateClipping()):d.style[b]=a},zIndexSetter:function(a,b,d){d.style[b]=a}},B["stroke-opacitySetter"]=B["fill-opacitySetter"],a.VMLElement=B=D(b,B),B.prototype.ySetter=B.prototype.widthSetter=B.prototype.heightSetter=B.prototype.xSetter,B={Element:B,isIE8:-1l[0]&&c.push([1,l[1]]);t(c,function(c,b){q.test(c[1])?(n=a.color(c[1]),v=n.get("rgb"),K=n.get("a")):(v=c[1],K=1);r.push(100*c[0]+"% "+v);b?(m=K,k=v):(z=K,E=v)});if("fill"===d)if("gradient"===g)d=A.x1||A[0]||0,c=A.y1||A[1]||0,F=A.x2||A[2]||0,A=A.y2||A[3]||0,C='angle\x3d"'+(90-180*Math.atan((A-c)/(F-d))/Math.PI)+'"',p();else{var h=A.r,w=2*h,B=2*h,D=A.cx,H=A.cy,V=b.radialReference,U,h=function(){V&&(U=f.getBBox(),D+=(V[0]- +U.x)/U.width-.5,H+=(V[1]-U.y)/U.height-.5,w*=V[2]/U.width,B*=V[2]/U.height);C='src\x3d"'+a.getOptions().global.VMLRadialGradientURL+'" size\x3d"'+w+","+B+'" origin\x3d"0.5,0.5" position\x3d"'+D+","+H+'" color2\x3d"'+E+'" ';p()};f.added?h():f.onAdd=h;h=k}else h=v}else q.test(c)&&"IMG"!==b.tagName?(n=a.color(c),f[d+"-opacitySetter"](n.get("a"),d,b),h=n.get("rgb")):(h=b.getElementsByTagName(d),h.length&&(h[0].opacity=1,h[0].type="solid"),h=c);return h},prepVML:function(a){var c=this.isIE8;a=a.join(""); +c?(a=a.replace("/\x3e",' xmlns\x3d"urn:schemas-microsoft-com:vml" /\x3e'),a=-1===a.indexOf('style\x3d"')?a.replace("/\x3e",' style\x3d"display:inline-block;behavior:url(#default#VML);" /\x3e'):a.replace('style\x3d"','style\x3d"display:inline-block;behavior:url(#default#VML);')):a=a.replace("\x3c","\x3chcv:");return a},text:q.prototype.html,path:function(a){var c={coordsize:"10 10"};e(a)?c.d=a:h(a)&&m(c,a);return this.createElement("shape").attr(c)},circle:function(a,b,d){var c=this.symbol("circle"); +h(a)&&(d=a.r,b=a.y,a=a.x);c.isCircle=!0;c.r=d;return c.attr({x:a,y:b})},g:function(a){var c;a&&(c={className:"highcharts-"+a,"class":"highcharts-"+a});return this.createElement("div").attr(c)},image:function(a,b,d,f,e){var c=this.createElement("img").attr({src:a});1f&&m-d*bg&&(F=Math.round((e-m)/Math.cos(f*w)));else if(e=m+(1-d)*b,m-d*bg&&(E=g-a.x+E*d,c=-1),E=Math.min(q, +E),EE||k.autoRotation&&(C.styles||{}).width)F=E;F&&(n.width=F,(k.options.labels.style||{}).textOverflow||(n.textOverflow="ellipsis"),C.css(n))},getPosition:function(a,k,m,e){var g=this.axis,h=g.chart,l=e&&h.oldChartHeight||h.chartHeight;return{x:a?g.translate(k+m,null,null,e)+g.transB:g.left+g.offset+(g.opposite?(e&&h.oldChartWidth||h.chartWidth)-g.right-g.left:0),y:a?l-g.bottom+g.offset-(g.opposite?g.height:0):l-g.translate(k+m,null, +null,e)-g.transB}},getLabelPosition:function(a,k,m,e,g,h,l,f){var d=this.axis,b=d.transA,q=d.reversed,E=d.staggerLines,c=d.tickRotCorr||{x:0,y:0},F=g.y;B(F)||(F=0===d.side?m.rotation?-8:-m.getBBox().height:2===d.side?c.y+8:Math.cos(m.rotation*w)*(c.y-m.getBBox(!1,0).height/2));a=a+g.x+c.x-(h&&e?h*b*(q?-1:1):0);k=k+F-(h&&!e?h*b*(q?1:-1):0);E&&(m=l/(f||1)%E,d.opposite&&(m=E-m-1),k+=d.labelOffset/E*m);return{x:a,y:Math.round(k)}},getMarkPath:function(a,k,m,e,g,h){return h.crispLine(["M",a,k,"L",a+(g? +0:-m),k+(g?m:0)],e)},render:function(a,k,m){var e=this.axis,g=e.options,h=e.chart.renderer,C=e.horiz,f=this.type,d=this.label,b=this.pos,q=g.labels,E=this.gridLine,c=f?f+"Tick":"tick",F=e.tickSize(c),n=this.mark,A=!n,x=q.step,p={},y=!0,u=e.tickmarkOffset,I=this.getPosition(C,b,u,k),M=I.x,I=I.y,v=C&&M===e.pos+e.len||!C&&I===e.pos?-1:1,K=f?f+"Grid":"grid",O=g[K+"LineWidth"],R=g[K+"LineColor"],z=g[K+"LineDashStyle"],K=l(g[c+"Width"],!f&&e.isXAxis?1:0),c=g[c+"Color"];m=l(m,1);this.isActive=!0;E||(p.stroke= +R,p["stroke-width"]=O,z&&(p.dashstyle=z),f||(p.zIndex=1),k&&(p.opacity=0),this.gridLine=E=h.path().attr(p).addClass("highcharts-"+(f?f+"-":"")+"grid-line").add(e.gridGroup));if(!k&&E&&(b=e.getPlotLinePath(b+u,E.strokeWidth()*v,k,!0)))E[this.isNew?"attr":"animate"]({d:b,opacity:m});F&&(e.opposite&&(F[0]=-F[0]),A&&(this.mark=n=h.path().addClass("highcharts-"+(f?f+"-":"")+"tick").add(e.axisGroup),n.attr({stroke:c,"stroke-width":K})),n[A?"attr":"animate"]({d:this.getMarkPath(M,I,F[0],n.strokeWidth()* +v,C,h),opacity:m}));d&&H(M)&&(d.xy=I=this.getLabelPosition(M,I,d,C,q,u,a,x),this.isFirst&&!this.isLast&&!l(g.showFirstLabel,1)||this.isLast&&!this.isFirst&&!l(g.showLastLabel,1)?y=!1:!C||e.isRadial||q.step||q.rotation||k||0===m||this.handleOverflow(I),x&&a%x&&(y=!1),y&&H(I.y)?(I.opacity=m,d[this.isNew?"attr":"animate"](I)):(r(d),d.attr("y",-9999)),this.isNew=!1)},destroy:function(){G(this,this.axis)}}})(N);(function(a){var D=a.addEvent,B=a.animObject,G=a.arrayMax,H=a.arrayMin,p=a.AxisPlotLineOrBandExtension, +l=a.color,r=a.correctFloat,w=a.defaultOptions,t=a.defined,k=a.deg2rad,m=a.destroyObjectProperties,e=a.each,g=a.error,h=a.extend,C=a.fireEvent,f=a.format,d=a.getMagnitude,b=a.grep,q=a.inArray,E=a.isArray,c=a.isNumber,F=a.isString,n=a.merge,A=a.normalizeTickInterval,x=a.pick,J=a.PlotLineOrBand,y=a.removeEvent,u=a.splat,I=a.syncTimeout,M=a.Tick;a.Axis=function(){this.init.apply(this,arguments)};a.Axis.prototype={defaultOptions:{dateTimeLabelFormats:{millisecond:"%H:%M:%S.%L",second:"%H:%M:%S",minute:"%H:%M", +hour:"%H:%M",day:"%e. %b",week:"%e. %b",month:"%b '%y",year:"%Y"},endOnTick:!1,labels:{enabled:!0,style:{color:"#666666",cursor:"default",fontSize:"11px"},x:0},minPadding:.01,maxPadding:.01,minorTickLength:2,minorTickPosition:"outside",startOfWeek:1,startOnTick:!1,tickLength:10,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",title:{align:"middle",style:{color:"#666666"}},type:"linear",minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#ccd6eb", +lineWidth:1,gridLineColor:"#e6e6e6",tickColor:"#ccd6eb"},defaultYAxisOptions:{endOnTick:!0,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},maxPadding:.05,minPadding:.05,startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{enabled:!1,formatter:function(){return a.numberFormat(this.total,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"#000000",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},defaultLeftAxisOptions:{labels:{x:-15},title:{rotation:270}},defaultRightAxisOptions:{labels:{x:15}, +title:{rotation:90}},defaultBottomAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},defaultTopAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},init:function(a,c){var b=c.isX;this.chart=a;this.horiz=a.inverted?!b:b;this.isXAxis=b;this.coll=this.coll||(b?"xAxis":"yAxis");this.opposite=c.opposite;this.side=c.side||(this.horiz?this.opposite?0:2:this.opposite?1:3);this.setOptions(c);var d=this.options,v=d.type;this.labelFormatter=d.labels.formatter||this.defaultLabelFormatter; +this.userOptions=c;this.minPixelPadding=0;this.reversed=d.reversed;this.visible=!1!==d.visible;this.zoomEnabled=!1!==d.zoomEnabled;this.hasNames="category"===v||!0===d.categories;this.categories=d.categories||this.hasNames;this.names=this.names||[];this.isLog="logarithmic"===v;this.isDatetimeAxis="datetime"===v;this.isLinked=t(d.linkedTo);this.ticks={};this.labelEdge=[];this.minorTicks={};this.plotLinesAndBands=[];this.alternateBands={};this.len=0;this.minRange=this.userMinRange=d.minRange||d.maxZoom; +this.range=d.range;this.offset=d.offset||0;this.stacks={};this.oldStacks={};this.stacksTouched=0;this.min=this.max=null;this.crosshair=x(d.crosshair,u(a.options.tooltip.crosshairs)[b?0:1],!1);var f;c=this.options.events;-1===q(this,a.axes)&&(b?a.axes.splice(a.xAxis.length,0,this):a.axes.push(this),a[this.coll].push(this));this.series=this.series||[];a.inverted&&b&&void 0===this.reversed&&(this.reversed=!0);this.removePlotLine=this.removePlotBand=this.removePlotBandOrLine;for(f in c)D(this,f,c[f]); +this.isLog&&(this.val2lin=this.log2lin,this.lin2val=this.lin2log)},setOptions:function(a){this.options=n(this.defaultOptions,"yAxis"===this.coll&&this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],n(w[this.coll],a))},defaultLabelFormatter:function(){var c=this.axis,b=this.value,d=c.categories,e=this.dateTimeLabelFormat,q=w.lang,u=q.numericSymbols,q=q.numericSymbolMagnitude||1E3,n=u&&u.length,g,y=c.options.labels.format, +c=c.isLog?b:c.tickInterval;if(y)g=f(y,this);else if(d)g=b;else if(e)g=a.dateFormat(e,b);else if(n&&1E3<=c)for(;n--&&void 0===g;)d=Math.pow(q,n+1),c>=d&&0===10*b%d&&null!==u[n]&&0!==b&&(g=a.numberFormat(b/d,-1)+u[n]);void 0===g&&(g=1E4<=Math.abs(b)?a.numberFormat(b,-1):a.numberFormat(b,-1,void 0,""));return g},getSeriesExtremes:function(){var a=this,d=a.chart;a.hasVisibleSeries=!1;a.dataMin=a.dataMax=a.threshold=null;a.softThreshold=!a.isXAxis;a.buildStacks&&a.buildStacks();e(a.series,function(v){if(v.visible|| +!d.options.chart.ignoreHiddenSeries){var f=v.options,e=f.threshold,q;a.hasVisibleSeries=!0;a.isLog&&0>=e&&(e=null);if(a.isXAxis)f=v.xData,f.length&&(v=H(f),c(v)||v instanceof Date||(f=b(f,function(a){return c(a)}),v=H(f)),a.dataMin=Math.min(x(a.dataMin,f[0]),v),a.dataMax=Math.max(x(a.dataMax,f[0]),G(f)));else if(v.getExtremes(),q=v.dataMax,v=v.dataMin,t(v)&&t(q)&&(a.dataMin=Math.min(x(a.dataMin,v),v),a.dataMax=Math.max(x(a.dataMax,q),q)),t(e)&&(a.threshold=e),!f.softThreshold||a.isLog)a.softThreshold= +!1}})},translate:function(a,b,d,f,e,q){var v=this.linkedParent||this,u=1,n=0,g=f?v.oldTransA:v.transA;f=f?v.oldMin:v.min;var K=v.minPixelPadding;e=(v.isOrdinal||v.isBroken||v.isLog&&e)&&v.lin2val;g||(g=v.transA);d&&(u*=-1,n=v.len);v.reversed&&(u*=-1,n-=u*(v.sector||v.len));b?(a=(a*u+n-K)/g+f,e&&(a=v.lin2val(a))):(e&&(a=v.val2lin(a)),a=u*(a-f)*g+n+u*K+(c(q)?g*q:0));return a},toPixels:function(a,c){return this.translate(a,!1,!this.horiz,null,!0)+(c?0:this.pos)},toValue:function(a,c){return this.translate(a- +(c?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(a,b,d,f,e){var v=this.chart,q=this.left,u=this.top,n,g,K=d&&v.oldChartHeight||v.chartHeight,y=d&&v.oldChartWidth||v.chartWidth,z;n=this.transB;var h=function(a,c,b){if(ab)f?a=Math.min(Math.max(c,a),b):z=!0;return a};e=x(e,this.translate(a,null,null,d));a=d=Math.round(e+n);n=g=Math.round(K-e-n);c(e)?this.horiz?(n=u,g=K-this.bottom,a=d=h(a,q,q+this.width)):(a=q,d=y-this.right,n=g=h(n,u,u+this.height)):z=!0;return z&&!f?null:v.renderer.crispLine(["M", +a,n,"L",d,g],b||1)},getLinearTickPositions:function(a,b,d){var v,f=r(Math.floor(b/a)*a),e=r(Math.ceil(d/a)*a),q=[];if(b===d&&c(b))return[b];for(b=f;b<=e;){q.push(b);b=r(b+a);if(b===v)break;v=b}return q},getMinorTickPositions:function(){var a=this.options,c=this.tickPositions,b=this.minorTickInterval,d=[],f,e=this.pointRangePadding||0;f=this.min-e;var e=this.max+e,q=e-f;if(q&&q/b=this.minRange,q,u,n,g,y,h;this.isXAxis&&void 0===this.minRange&&!this.isLog&&(t(a.min)||t(a.max)?this.minRange=null:(e(this.series,function(a){g=a.xData;for(u=y=a.xIncrement? +1:g.length-1;0=E?(p=E,m=0):b.dataMax<=E&&(J=E,I=0)),b.min=x(w,p,b.dataMin),b.max=x(B,J,b.dataMax));q&&(!a&&0>=Math.min(b.min, +x(b.dataMin,b.min))&&g(10,1),b.min=r(u(b.min),15),b.max=r(u(b.max),15));b.range&&t(b.max)&&(b.userMin=b.min=w=Math.max(b.min,b.minFromRange()),b.userMax=B=b.max,b.range=null);C(b,"foundExtremes");b.beforePadding&&b.beforePadding();b.adjustForMinRange();!(l||b.axisPointRange||b.usePercentage||h)&&t(b.min)&&t(b.max)&&(u=b.max-b.min)&&(!t(w)&&m&&(b.min-=u*m),!t(B)&&I&&(b.max+=u*I));c(f.floor)?b.min=Math.max(b.min,f.floor):c(f.softMin)&&(b.min=Math.min(b.min,f.softMin));c(f.ceiling)?b.max=Math.min(b.max, +f.ceiling):c(f.softMax)&&(b.max=Math.max(b.max,f.softMax));M&&t(b.dataMin)&&(E=E||0,!t(w)&&b.min=E?b.min=E:!t(B)&&b.max>E&&b.dataMax<=E&&(b.max=E));b.tickInterval=b.min===b.max||void 0===b.min||void 0===b.max?1:h&&!k&&F===b.linkedParent.options.tickPixelInterval?k=b.linkedParent.tickInterval:x(k,this.tickAmount?(b.max-b.min)/Math.max(this.tickAmount-1,1):void 0,l?1:(b.max-b.min)*F/Math.max(b.len,F));y&&!a&&e(b.series,function(a){a.processData(b.min!==b.oldMin||b.max!==b.oldMax)});b.setAxisTranslation(!0); +b.beforeSetTickPositions&&b.beforeSetTickPositions();b.postProcessTickInterval&&(b.tickInterval=b.postProcessTickInterval(b.tickInterval));b.pointRange&&!k&&(b.tickInterval=Math.max(b.pointRange,b.tickInterval));a=x(f.minTickInterval,b.isDatetimeAxis&&b.closestPointRange);!k&&b.tickIntervalb.tickInterval&&1E3b.max)),!!this.tickAmount));this.tickAmount||(b.tickInterval= +b.unsquish());this.setTickPositions()},setTickPositions:function(){var a=this.options,b,c=a.tickPositions,d=a.tickPositioner,f=a.startOnTick,e=a.endOnTick,q;this.tickmarkOffset=this.categories&&"between"===a.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval="auto"===a.minorTickInterval&&this.tickInterval?this.tickInterval/5:a.minorTickInterval;this.tickPositions=b=c&&c.slice();!b&&(b=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,a.units), +this.min,this.max,a.startOfWeek,this.ordinalPositions,this.closestPointRange,!0):this.isLog?this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max),b.length>this.len&&(b=[b[0],b.pop()]),this.tickPositions=b,d&&(d=d.apply(this,[this.min,this.max])))&&(this.tickPositions=b=d);this.isLinked||(this.trimTicks(b,f,e),this.min===this.max&&t(this.min)&&!this.tickAmount&&(q=!0,this.min-=.5,this.max+=.5),this.single=q,c||d||this.adjustTickAmount())}, +trimTicks:function(a,b,c){var d=a[0],f=a[a.length-1],v=this.minPointOffset||0;if(b)this.min=d;else for(;this.min-v>a[0];)a.shift();if(c)this.max=f;else for(;this.max+vb&&(this.finalTickAmt=b,b=5);this.tickAmount=b},adjustTickAmount:function(){var a=this.tickInterval,b=this.tickPositions,c=this.tickAmount,d=this.finalTickAmt,f=b&&b.length;if(fc&&(this.tickInterval*= +2,this.setTickPositions());if(t(d)){for(a=c=b.length;a--;)(3===d&&1===a%2||2>=d&&0=f&&(b=f)),this.displayBtn=void 0!==a||void 0!==b,this.setExtremes(a,b,!1,void 0,{trigger:"zoom"});return!0},setAxisSize:function(){var a=this.chart,b=this.options,c=b.offsetLeft||0,d=this.horiz,f=x(b.width,a.plotWidth-c+(b.offsetRight||0)),e=x(b.height,a.plotHeight),q=x(b.top,a.plotTop),b=x(b.left,a.plotLeft+c),c=/%$/;c.test(e)&&(e=Math.round(parseFloat(e)/ +100*a.plotHeight));c.test(q)&&(q=Math.round(parseFloat(q)/100*a.plotHeight+a.plotTop));this.left=b;this.top=q;this.width=f;this.height=e;this.bottom=a.chartHeight-e-q;this.right=a.chartWidth-f-b;this.len=Math.max(d?f:e,0);this.pos=d?b:q},getExtremes:function(){var a=this.isLog,b=this.lin2log;return{min:a?r(b(this.min)):this.min,max:a?r(b(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var b=this.isLog,c=this.lin2log, +d=b?c(this.min):this.min,b=b?c(this.max):this.max;null===a?a=d:d>a?a=d:ba?"right":195a?"left":"center"},tickSize:function(a){var b=this.options,c=b[a+"Length"],d=x(b[a+"Width"],"tick"===a&&this.isXAxis?1:0);if(d&&c)return"inside"===b[a+"Position"]&&(c=-c),[c,d]},labelMetrics:function(){return this.chart.renderer.fontMetrics(this.options.labels.style&&this.options.labels.style.fontSize, +this.ticks[0]&&this.ticks[0].label)},unsquish:function(){var a=this.options.labels,b=this.horiz,c=this.tickInterval,d=c,f=this.len/(((this.categories?1:0)+this.max-this.min)/c),q,u=a.rotation,n=this.labelMetrics(),g,y=Number.MAX_VALUE,h,I=function(a){a/=f||1;a=1=a)g=I(Math.abs(n.h/Math.sin(k*a))),b=g+Math.abs(a/360),b(c.step||0)&&!c.rotation&&(this.staggerLines||1)*a.plotWidth/d||!b&&(f&&f-a.spacing[3]||.33*a.chartWidth)},renderUnsquish:function(){var a=this.chart,b=a.renderer,c=this.tickPositions,d=this.ticks,f=this.options.labels,q=this.horiz,u=this.getSlotWidth(),g=Math.max(1, +Math.round(u-2*(f.padding||5))),y={},h=this.labelMetrics(),I=f.style&&f.style.textOverflow,A,x=0,m,k;F(f.rotation)||(y.rotation=f.rotation||0);e(c,function(a){(a=d[a])&&a.labelLength>x&&(x=a.labelLength)});this.maxLabelLength=x;if(this.autoRotation)x>g&&x>h.h?y.rotation=this.labelRotation:this.labelRotation=0;else if(u&&(A={width:g+"px"},!I))for(A.textOverflow="clip",m=c.length;!q&&m--;)if(k=c[m],g=d[k].label)g.styles&&"ellipsis"===g.styles.textOverflow?g.css({textOverflow:"clip"}):d[k].labelLength> +u&&g.css({width:u+"px"}),g.getBBox().height>this.len/c.length-(h.h-h.f)&&(g.specCss={textOverflow:"ellipsis"});y.rotation&&(A={width:(x>.5*a.chartHeight?.33*a.chartHeight:a.chartHeight)+"px"},I||(A.textOverflow="ellipsis"));if(this.labelAlign=f.align||this.autoLabelAlign(this.labelRotation))y.align=this.labelAlign;e(c,function(a){var b=(a=d[a])&&a.label;b&&(b.attr(y),A&&b.css(n(A,b.specCss)),delete b.specCss,a.rotation=y.rotation)});this.tickRotCorr=b.rotCorr(h.b,this.labelRotation||0,0!==this.side)}, +hasData:function(){return this.hasVisibleSeries||t(this.min)&&t(this.max)&&!!this.tickPositions},getOffset:function(){var a=this,b=a.chart,c=b.renderer,d=a.options,f=a.tickPositions,q=a.ticks,u=a.horiz,n=a.side,g=b.inverted?[1,0,3,2][n]:n,y,h,I=0,A,m=0,k=d.title,F=d.labels,E=0,l=a.opposite,C=b.axisOffset,b=b.clipOffset,p=[-1,1,1,-1][n],r,J=d.className,w=a.axisParent,B=this.tickSize("tick");y=a.hasData();a.showAxis=h=y||x(d.showEmpty,!0);a.staggerLines=a.horiz&&F.staggerLines;a.axisGroup||(a.gridGroup= +c.g("grid").attr({zIndex:d.gridZIndex||1}).addClass("highcharts-"+this.coll.toLowerCase()+"-grid "+(J||"")).add(w),a.axisGroup=c.g("axis").attr({zIndex:d.zIndex||2}).addClass("highcharts-"+this.coll.toLowerCase()+" "+(J||"")).add(w),a.labelGroup=c.g("axis-labels").attr({zIndex:F.zIndex||7}).addClass("highcharts-"+a.coll.toLowerCase()+"-labels "+(J||"")).add(w));if(y||a.isLinked)e(f,function(b){q[b]?q[b].addLabel():q[b]=new M(a,b)}),a.renderUnsquish(),!1===F.reserveSpace||0!==n&&2!==n&&{1:"left",3:"right"}[n]!== +a.labelAlign&&"center"!==a.labelAlign||e(f,function(a){E=Math.max(q[a].getLabelSize(),E)}),a.staggerLines&&(E*=a.staggerLines,a.labelOffset=E*(a.opposite?-1:1));else for(r in q)q[r].destroy(),delete q[r];k&&k.text&&!1!==k.enabled&&(a.axisTitle||((r=k.textAlign)||(r=(u?{low:"left",middle:"center",high:"right"}:{low:l?"right":"left",middle:"center",high:l?"left":"right"})[k.align]),a.axisTitle=c.text(k.text,0,0,k.useHTML).attr({zIndex:7,rotation:k.rotation||0,align:r}).addClass("highcharts-axis-title").css(k.style).add(a.axisGroup), +a.axisTitle.isNew=!0),h&&(I=a.axisTitle.getBBox()[u?"height":"width"],A=k.offset,m=t(A)?0:x(k.margin,u?5:10)),a.axisTitle[h?"show":"hide"](!0));a.renderLine();a.offset=p*x(d.offset,C[n]);a.tickRotCorr=a.tickRotCorr||{x:0,y:0};c=0===n?-a.labelMetrics().h:2===n?a.tickRotCorr.y:0;m=Math.abs(E)+m;E&&(m=m-c+p*(u?x(F.y,a.tickRotCorr.y+8*p):F.x));a.axisTitleMargin=x(A,m);C[n]=Math.max(C[n],a.axisTitleMargin+I+p*a.offset,m,y&&f.length&&B?B[0]:0);d=d.offset?0:2*Math.floor(a.axisLine.strokeWidth()/2);b[g]= +Math.max(b[g],d)},getLinePath:function(a){var b=this.chart,c=this.opposite,d=this.offset,f=this.horiz,e=this.left+(c?this.width:0)+d,d=b.chartHeight-this.bottom-(c?this.height:0)+d;c&&(a*=-1);return b.renderer.crispLine(["M",f?this.left:e,f?d:this.top,"L",f?b.chartWidth-this.right:e,f?d:b.chartHeight-this.bottom],a)},renderLine:function(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.axisLine.attr({stroke:this.options.lineColor, +"stroke-width":this.options.lineWidth,zIndex:7}))},getTitlePosition:function(){var a=this.horiz,b=this.left,c=this.top,d=this.len,f=this.options.title,e=a?b:c,q=this.opposite,u=this.offset,n=f.x||0,g=f.y||0,y=this.chart.renderer.fontMetrics(f.style&&f.style.fontSize,this.axisTitle).f,d={low:e+(a?0:d),middle:e+d/2,high:e+(a?d:0)}[f.align],b=(a?c+this.height:b)+(a?1:-1)*(q?-1:1)*this.axisTitleMargin+(2===this.side?y:0);return{x:a?d+n:b+(q?this.width:0)+u+n,y:a?b+g-(q?this.height:0)+u:d+g}},render:function(){var a= +this,b=a.chart,d=b.renderer,f=a.options,q=a.isLog,u=a.lin2log,n=a.isLinked,g=a.tickPositions,y=a.axisTitle,h=a.ticks,A=a.minorTicks,x=a.alternateBands,m=f.stackLabels,k=f.alternateGridColor,F=a.tickmarkOffset,E=a.axisLine,l=b.hasRendered&&c(a.oldMin),C=a.showAxis,p=B(d.globalAnimation),r,t;a.labelEdge.length=0;a.overlap=!1;e([h,A,x],function(a){for(var b in a)a[b].isActive=!1});if(a.hasData()||n)a.minorTickInterval&&!a.categories&&e(a.getMinorTickPositions(),function(b){A[b]||(A[b]=new M(a,b,"minor")); +l&&A[b].isNew&&A[b].render(null,!0);A[b].render(null,!1,1)}),g.length&&(e(g,function(b,c){if(!n||b>=a.min&&b<=a.max)h[b]||(h[b]=new M(a,b)),l&&h[b].isNew&&h[b].render(c,!0,.1),h[b].render(c)}),F&&(0===a.min||a.single)&&(h[-1]||(h[-1]=new M(a,-1,null,!0)),h[-1].render(-1))),k&&e(g,function(c,d){t=void 0!==g[d+1]?g[d+1]+F:a.max-F;0===d%2&&c=e.second?0:A*Math.floor(c.getMilliseconds()/A));if(n>=e.second)c[B.hcSetSeconds](n>=e.minute?0:A*Math.floor(c.getSeconds()/ +A));if(n>=e.minute)c[B.hcSetMinutes](n>=e.hour?0:A*Math.floor(c[B.hcGetMinutes]()/A));if(n>=e.hour)c[B.hcSetHours](n>=e.day?0:A*Math.floor(c[B.hcGetHours]()/A));if(n>=e.day)c[B.hcSetDate](n>=e.month?1:A*Math.floor(c[B.hcGetDate]()/A));n>=e.month&&(c[B.hcSetMonth](n>=e.year?0:A*Math.floor(c[B.hcGetMonth]()/A)),g=c[B.hcGetFullYear]());if(n>=e.year)c[B.hcSetFullYear](g-g%A);if(n===e.week)c[B.hcSetDate](c[B.hcGetDate]()-c[B.hcGetDay]()+m(f,1));g=c[B.hcGetFullYear]();f=c[B.hcGetMonth]();var C=c[B.hcGetDate](), +y=c[B.hcGetHours]();if(B.hcTimezoneOffset||B.hcGetTimezoneOffset)x=(!q||!!B.hcGetTimezoneOffset)&&(k-h>4*e.month||t(h)!==t(k)),c=c.getTime(),c=new B(c+t(c));q=c.getTime();for(h=1;qr&&(!t||b<=w)&&void 0!==b&&h.push(b),b>w&&(q=!0),b=d;else r=e(r),w= +e(w),a=k[t?"minorTickInterval":"tickInterval"],a=p("auto"===a?null:a,this._minorAutoInterval,k.tickPixelInterval/(t?5:1)*(w-r)/((t?m/this.tickPositions.length:m)||1)),a=H(a,null,B(a)),h=G(this.getLinearTickPositions(a,r,w),g),t||(this._minorAutoInterval=a/5);t||(this.tickInterval=a);return h};D.prototype.log2lin=function(a){return Math.log(a)/Math.LN10};D.prototype.lin2log=function(a){return Math.pow(10,a)}})(N);(function(a){var D=a.dateFormat,B=a.each,G=a.extend,H=a.format,p=a.isNumber,l=a.map,r= +a.merge,w=a.pick,t=a.splat,k=a.stop,m=a.syncTimeout,e=a.timeUnits;a.Tooltip=function(){this.init.apply(this,arguments)};a.Tooltip.prototype={init:function(a,e){this.chart=a;this.options=e;this.crosshairs=[];this.now={x:0,y:0};this.isHidden=!0;this.split=e.split&&!a.inverted;this.shared=e.shared||this.split},cleanSplit:function(a){B(this.chart.series,function(e){var g=e&&e.tt;g&&(!g.isActive||a?e.tt=g.destroy():g.isActive=!1)})},getLabel:function(){var a=this.chart.renderer,e=this.options;this.label|| +(this.split?this.label=a.g("tooltip"):(this.label=a.label("",0,0,e.shape||"callout",null,null,e.useHTML,null,"tooltip").attr({padding:e.padding,r:e.borderRadius}),this.label.attr({fill:e.backgroundColor,"stroke-width":e.borderWidth}).css(e.style).shadow(e.shadow)),this.label.attr({zIndex:8}).add());return this.label},update:function(a){this.destroy();this.init(this.chart,r(!0,this.options,a))},destroy:function(){this.label&&(this.label=this.label.destroy());this.split&&this.tt&&(this.cleanSplit(this.chart, +!0),this.tt=this.tt.destroy());clearTimeout(this.hideTimer);clearTimeout(this.tooltipTimeout)},move:function(a,e,m,f){var d=this,b=d.now,q=!1!==d.options.animation&&!d.isHidden&&(1h-q?h:h-q);else if(v)b[a]=Math.max(g,e+q+f>c?e:e+q);else return!1},x=function(a,c,f,e){var q;ec-d?q=!1:b[a]=ec-f/2?c-f-2:e-f/2;return q},k=function(a){var b=c;c=h;h=b;g=a},y=function(){!1!==A.apply(0,c)?!1!==x.apply(0,h)||g||(k(!0),y()):g?b.x=b.y=0:(k(!0),y())};(f.inverted||1y&&(q=!1);a=(e.series&&e.series.yAxis&&e.series.yAxis.pos)+(e.plotY||0);a-=d.plotTop;f.push({target:e.isHeader?d.plotHeight+c:a,rank:e.isHeader?1:0,size:n.tt.getBBox().height+1,point:e,x:y,tt:A})});this.cleanSplit(); +a.distribute(f,d.plotHeight+c);B(f,function(a){var b=a.point;a.tt.attr({visibility:void 0===a.pos?"hidden":"inherit",x:q||b.isHeader?a.x:b.plotX+d.plotLeft+w(m.distance,16),y:a.pos+d.plotTop,anchorX:b.plotX+d.plotLeft,anchorY:b.isHeader?a.pos+d.plotTop-15:b.plotY+d.plotTop})})},updatePosition:function(a){var e=this.chart,g=this.getLabel(),g=(this.options.positioner||this.getPosition).call(this,g.width,g.height,a);this.move(Math.round(g.x),Math.round(g.y||0),a.plotX+e.plotLeft,a.plotY+e.plotTop)}, +getXDateFormat:function(a,h,m){var f;h=h.dateTimeLabelFormats;var d=m&&m.closestPointRange,b,q={millisecond:15,second:12,minute:9,hour:6,day:3},g,c="millisecond";if(d){g=D("%m-%d %H:%M:%S.%L",a.x);for(b in e){if(d===e.week&&+D("%w",a.x)===m.options.startOfWeek&&"00:00:00.000"===g.substr(6)){b="week";break}if(e[b]>d){b=c;break}if(q[b]&&g.substr(q[b])!=="01-01 00:00:00.000".substr(q[b]))break;"week"!==b&&(c=b)}b&&(f=h[b])}else f=h.day;return f||h.year},tooltipFooterHeaderFormatter:function(a,e){var g= +e?"footer":"header";e=a.series;var f=e.tooltipOptions,d=f.xDateFormat,b=e.xAxis,q=b&&"datetime"===b.options.type&&p(a.key),g=f[g+"Format"];q&&!d&&(d=this.getXDateFormat(a,f,b));q&&d&&(g=g.replace("{point.key}","{point.key:"+d+"}"));return H(g,{point:a,series:e})},bodyFormatter:function(a){return l(a,function(a){var e=a.series.tooltipOptions;return(e.pointFormatter||a.point.tooltipFormatter).call(a.point,e.pointFormat)})}}})(N);(function(a){var D=a.addEvent,B=a.attr,G=a.charts,H=a.color,p=a.css,l= +a.defined,r=a.doc,w=a.each,t=a.extend,k=a.fireEvent,m=a.offset,e=a.pick,g=a.removeEvent,h=a.splat,C=a.Tooltip,f=a.win;a.Pointer=function(a,b){this.init(a,b)};a.Pointer.prototype={init:function(a,b){this.options=b;this.chart=a;this.runChartClick=b.chart.events&&!!b.chart.events.click;this.pinchDown=[];this.lastValidTouch={};C&&b.tooltip.enabled&&(a.tooltip=new C(a,b.tooltip),this.followTouchMove=e(b.tooltip.followTouchMove,!0));this.setDOMEvents()},zoomOption:function(a){var b=this.chart,d=b.options.chart, +f=d.zoomType||"",b=b.inverted;/touch/.test(a.type)&&(f=e(d.pinchType,f));this.zoomX=a=/x/.test(f);this.zoomY=f=/y/.test(f);this.zoomHor=a&&!b||f&&b;this.zoomVert=f&&!b||a&&b;this.hasZoom=a||f},normalize:function(a,b){var d,e;a=a||f.event;a.target||(a.target=a.srcElement);e=a.touches?a.touches.length?a.touches.item(0):a.changedTouches[0]:a;b||(this.chartPosition=b=m(this.chart.container));void 0===e.pageX?(d=Math.max(a.x,a.clientX-b.left),b=a.y):(d=e.pageX-b.left,b=e.pageY-b.top);return t(a,{chartX:Math.round(d), +chartY:Math.round(b)})},getCoordinates:function(a){var b={xAxis:[],yAxis:[]};w(this.chart.axes,function(d){b[d.isXAxis?"xAxis":"yAxis"].push({axis:d,value:d.toValue(a[d.horiz?"chartX":"chartY"])})});return b},runPointActions:function(d){var b=this.chart,f=b.series,g=b.tooltip,c=g?g.shared:!1,h=!0,n=b.hoverPoint,m=b.hoverSeries,x,k,y,u=[],I;if(!c&&!m)for(x=0;xb.series.index?-1:1}));if(c)for(x=u.length;x--;)(u[x].x!==u[0].x||u[x].series.noSharedTooltip)&&u.splice(x,1);if(u[0]&&(u[0]!==this.prevKDPoint||g&&g.isHidden)){if(c&& +!u[0].series.noSharedTooltip){for(x=0;xh+k&&(f=h+k),cm+y&&(c=m+y),this.hasDragged=Math.sqrt(Math.pow(l-f,2)+Math.pow(v-c,2)),10x.max&&(l=x.max-c,v=!0);v?(u-=.8*(u-g[f][0]),J||(M-=.8*(M-g[f][1])),p()):g[f]=[u,M];A||(e[f]=F-E,e[q]=c);e=A?1/n:n;m[q]=c;m[f]=l;k[A?a?"scaleY":"scaleX":"scale"+d]=n;k["translate"+d]=e* +E+(u-e*y)},pinch:function(a){var r=this,t=r.chart,k=r.pinchDown,m=a.touches,e=m.length,g=r.lastValidTouch,h=r.hasZoom,C=r.selectionMarker,f={},d=1===e&&(r.inClass(a.target,"highcharts-tracker")&&t.runTrackerClick||r.runChartClick),b={};1b-6&&n(u||d.chartWidth- +2*x-v-e.x)&&(this.itemX=v,this.itemY+=p+this.lastLineHeight+I,this.lastLineHeight=0);this.maxItemWidth=Math.max(this.maxItemWidth,c);this.lastItemY=p+this.itemY+I;this.lastLineHeight=Math.max(g,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];f?this.itemX+=c:(this.itemY+=p+g+I,this.lastLineHeight=g);this.offsetWidth=u||Math.max((f?this.itemX-v-l:c)+x,this.offsetWidth)},getAllItems:function(){var a=[];l(this.chart.series,function(d){var b=d&&d.options;d&&m(b.showInLegend,p(b.linkedTo)? +!1:void 0,!0)&&(a=a.concat(d.legendItems||("point"===b.legendType?d.data:d)))});return a},adjustMargins:function(a,d){var b=this.chart,e=this.options,f=e.align.charAt(0)+e.verticalAlign.charAt(0)+e.layout.charAt(0);e.floating||l([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(c,g){c.test(f)&&!p(a[g])&&(b[t[g]]=Math.max(b[t[g]],b.legend[(g+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][g]*e[g%2?"x":"y"]+m(e.margin,12)+d[g]))})},render:function(){var a=this,d=a.chart,b=d.renderer, +e=a.group,h,c,m,n,k=a.box,x=a.options,p=a.padding;a.itemX=a.initialItemX;a.itemY=a.initialItemY;a.offsetWidth=0;a.lastItemY=0;e||(a.group=e=b.g("legend").attr({zIndex:7}).add(),a.contentGroup=b.g().attr({zIndex:1}).add(e),a.scrollGroup=b.g().add(a.contentGroup));a.renderTitle();h=a.getAllItems();g(h,function(a,b){return(a.options&&a.options.legendIndex||0)-(b.options&&b.options.legendIndex||0)});x.reversed&&h.reverse();a.allItems=h;a.display=c=!!h.length;a.lastLineHeight=0;l(h,function(b){a.renderItem(b)}); +m=(x.width||a.offsetWidth)+p;n=a.lastItemY+a.lastLineHeight+a.titleHeight;n=a.handleOverflow(n);n+=p;k||(a.box=k=b.rect().addClass("highcharts-legend-box").attr({r:x.borderRadius}).add(e),k.isNew=!0);k.attr({stroke:x.borderColor,"stroke-width":x.borderWidth||0,fill:x.backgroundColor||"none"}).shadow(x.shadow);0b&&!1!==h.enabled?(this.clipHeight=g=Math.max(b-20-this.titleHeight-I,0),this.currentPage=m(this.currentPage,1),this.fullHeight=a,l(v,function(a,b){var c=a._legendItemPos[1];a=Math.round(a.legendItem.getBBox().height);var d=u.length;if(!d||c-u[d-1]>g&&(r||c)!==u[d-1])u.push(r||c),d++;b===v.length-1&&c+a-u[d-1]>g&&u.push(c);c!==r&&(r=c)}),n||(n=d.clipRect= +e.clipRect(0,I,9999,0),d.contentGroup.clip(n)),t(g),y||(this.nav=y=e.g().attr({zIndex:1}).add(this.group),this.up=e.symbol("triangle",0,0,p,p).on("click",function(){d.scroll(-1,k)}).add(y),this.pager=e.text("",15,10).addClass("highcharts-legend-navigation").css(h.style).add(y),this.down=e.symbol("triangle-down",0,0,p,p).on("click",function(){d.scroll(1,k)}).add(y)),d.scroll(0),a=b):y&&(t(),y.hide(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0);return a},scroll:function(a,d){var b=this.pages, +f=b.length;a=this.currentPage+a;var g=this.clipHeight,c=this.options.navigation,h=this.pager,n=this.padding;a>f&&(a=f);0f&&(g=typeof a[0],"string"===g?e.name=a[0]:"number"===g&&(e.x=a[0]),d++);b=h.value;)h=e[++g];h&&h.color&&!this.options.color&&(this.color=h.color);return h},destroy:function(){var a=this.series.chart,e=a.hoverPoints,g;a.pointCount--;e&&(this.setState(),H(e,this),e.length||(a.hoverPoints=null));if(this===a.hoverPoint)this.onMouseOut();if(this.graphic||this.dataLabel)k(this), +this.destroyElements();this.legendItem&&a.legend.destroyItem(this);for(g in this)this[g]=null},destroyElements:function(){for(var a=["graphic","dataLabel","dataLabelUpper","connector","shadowGroup"],e,g=6;g--;)e=a[g],this[e]&&(this[e]=this[e].destroy())},getLabelConfig:function(){return{x:this.category,y:this.y,color:this.color,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},tooltipFormatter:function(a){var e=this.series,g= +e.tooltipOptions,h=t(g.valueDecimals,""),k=g.valuePrefix||"",f=g.valueSuffix||"";B(e.pointArrayMap||["y"],function(d){d="{point."+d;if(k||f)a=a.replace(d+"}",k+d+"}"+f);a=a.replace(d+"}",d+":,."+h+"f}")});return l(a,{point:this,series:this.series})},firePointEvent:function(a,e,g){var h=this,k=this.series.options;(k.point.events[a]||h.options&&h.options.events&&h.options.events[a])&&this.importEvents();"click"===a&&k.allowPointSelect&&(g=function(a){h.select&&h.select(null,a.ctrlKey||a.metaKey||a.shiftKey)}); +p(this,a,e,g)},visible:!0}})(N);(function(a){var D=a.addEvent,B=a.animObject,G=a.arrayMax,H=a.arrayMin,p=a.correctFloat,l=a.Date,r=a.defaultOptions,w=a.defaultPlotOptions,t=a.defined,k=a.each,m=a.erase,e=a.error,g=a.extend,h=a.fireEvent,C=a.grep,f=a.isArray,d=a.isNumber,b=a.isString,q=a.merge,E=a.pick,c=a.removeEvent,F=a.splat,n=a.stableSort,A=a.SVGElement,x=a.syncTimeout,J=a.win;a.Series=a.seriesType("line",null,{lineWidth:2,allowPointSelect:!1,showCheckbox:!1,animation:{duration:1E3},events:{}, +marker:{lineWidth:0,lineColor:"#ffffff",radius:4,states:{hover:{animation:{duration:50},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{align:"center",formatter:function(){return null===this.y?"":a.numberFormat(this.y,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0,padding:5},cropThreshold:300,pointRange:0,softThreshold:!0,states:{hover:{lineWidthPlus:1, +marker:{},halo:{size:10,opacity:.25}},select:{marker:{}}},stickyTracking:!0,turboThreshold:1E3},{isCartesian:!0,pointClass:a.Point,sorted:!0,requireSorting:!0,directTouch:!1,axisTypes:["xAxis","yAxis"],colorCounter:0,parallelArrays:["x","y"],coll:"series",init:function(a,b){var c=this,d,e,f=a.series,u,y=function(a,b){return E(a.options.index,a._i)-E(b.options.index,b._i)};c.chart=a;c.options=b=c.setOptions(b);c.linkedSeries=[];c.bindAxes();g(c,{name:b.name,state:"",visible:!1!==b.visible,selected:!0=== +b.selected});e=b.events;for(d in e)D(c,d,e[d]);if(e&&e.click||b.point&&b.point.events&&b.point.events.click||b.allowPointSelect)a.runTrackerClick=!0;c.getColor();c.getSymbol();k(c.parallelArrays,function(a){c[a+"Data"]=[]});c.setData(b.data,!1);c.isCartesian&&(a.hasCartesianSeries=!0);f.length&&(u=f[f.length-1]);c._i=E(u&&u._i,-1)+1;f.push(c);n(f,y);this.yAxis&&n(this.yAxis.series,y);k(f,function(a,b){a.index=b;a.name=a.name||"Series "+(b+1)})},bindAxes:function(){var a=this,b=a.options,c=a.chart, +d;k(a.axisTypes||[],function(f){k(c[f],function(c){d=c.options;if(b[f]===d.index||void 0!==b[f]&&b[f]===d.id||void 0===b[f]&&0===d.index)c.series.push(a),a[f]=c,c.isDirty=!0});a[f]||a.optionalAxis===f||e(18,!0)})},updateParallelArrays:function(a,b){var c=a.series,e=arguments,f=d(b)?function(d){var e="y"===d&&c.toYData?c.toYData(a):a[d];c[d+"Data"][b]=e}:function(a){Array.prototype[b].apply(c[a+"Data"],Array.prototype.slice.call(e,2))};k(c.parallelArrays,f)},autoIncrement:function(){var a=this.options, +b=this.xIncrement,c,d=a.pointIntervalUnit,b=E(b,a.pointStart,0);this.pointInterval=c=E(this.pointInterval,a.pointInterval,1);d&&(a=new l(b),"day"===d?a=+a[l.hcSetDate](a[l.hcGetDate]()+c):"month"===d?a=+a[l.hcSetMonth](a[l.hcGetMonth]()+c):"year"===d&&(a=+a[l.hcSetFullYear](a[l.hcGetFullYear]()+c)),c=a-b);this.xIncrement=b+c;return b},setOptions:function(a){var b=this.chart,c=b.options.plotOptions,b=b.userOptions||{},d=b.plotOptions||{},e=c[this.type];this.userOptions=a;c=q(e,c.series,a);this.tooltipOptions= +q(r.tooltip,r.plotOptions[this.type].tooltip,b.tooltip,d.series&&d.series.tooltip,d[this.type]&&d[this.type].tooltip,a.tooltip);null===e.marker&&delete c.marker;this.zoneAxis=c.zoneAxis;a=this.zones=(c.zones||[]).slice();!c.negativeColor&&!c.negativeFillColor||c.zones||a.push({value:c[this.zoneAxis+"Threshold"]||c.threshold||0,className:"highcharts-negative",color:c.negativeColor,fillColor:c.negativeFillColor});a.length&&t(a[a.length-1].value)&&a.push({color:this.color,fillColor:this.fillColor}); +return c},getCyclic:function(a,b,c){var d,e=this.userOptions,f=a+"Index",g=a+"Counter",u=c?c.length:E(this.chart.options.chart[a+"Count"],this.chart[a+"Count"]);b||(d=E(e[f],e["_"+f]),t(d)||(e["_"+f]=d=this.chart[g]%u,this.chart[g]+=1),c&&(b=c[d]));void 0!==d&&(this[f]=d);this[a]=b},getColor:function(){this.options.colorByPoint?this.options.color=null:this.getCyclic("color",this.options.color||w[this.type].color,this.chart.options.colors)},getSymbol:function(){this.getCyclic("symbol",this.options.marker.symbol, +this.chart.options.symbols)},drawLegendSymbol:a.LegendSymbolMixin.drawLineMarker,setData:function(a,c,g,n){var u=this,q=u.points,h=q&&q.length||0,y,m=u.options,x=u.chart,A=null,I=u.xAxis,l=m.turboThreshold,p=this.xData,r=this.yData,F=(y=u.pointArrayMap)&&y.length;a=a||[];y=a.length;c=E(c,!0);if(!1!==n&&y&&h===y&&!u.cropped&&!u.hasGroupedData&&u.visible)k(a,function(a,b){q[b].update&&a!==m.data[b]&&q[b].update(a,!1,null,!1)});else{u.xIncrement=null;u.colorCounter=0;k(this.parallelArrays,function(a){u[a+ +"Data"].length=0});if(l&&y>l){for(g=0;null===A&&gh||this.forceCrop))if(b[d-1]l)b=[],c=[];else if(b[0]l)f=this.cropData(this.xData,this.yData,A,l),b=f.xData,c=f.yData,f=f.start,g=!0;for(h=b.length||1;--h;)d=x?y(b[h])-y(b[h-1]):b[h]-b[h-1],0d&&this.requireSorting&&e(15);this.cropped=g;this.cropStart=f;this.processedXData=b;this.processedYData=c;this.closestPointRange=n},cropData:function(a,b,c,d){var e=a.length,f=0,g=e,n=E(this.cropShoulder,1),u;for(u=0;u=c){f=Math.max(0,u- +n);break}for(c=u;cd){g=c+n;break}return{xData:a.slice(f,g),yData:b.slice(f,g),start:f,end:g}},generatePoints:function(){var a=this.options.data,b=this.data,c,d=this.processedXData,e=this.processedYData,f=this.pointClass,g=d.length,n=this.cropStart||0,q,h=this.hasGroupedData,k,m=[],x;b||h||(b=[],b.length=a.length,b=this.data=b);for(x=0;x=q&&(c[x-1]||k)<=h,y&&k)if(y=m.length)for(;y--;)null!==m[y]&&(g[n++]=m[y]);else g[n++]=m;this.dataMin=H(g);this.dataMax=G(g)},translate:function(){this.processedXData||this.processData();this.generatePoints();var a=this.options,b=a.stacking,c=this.xAxis,e=c.categories,f=this.yAxis,g=this.points,n=g.length,q=!!this.modifyValue,h=a.pointPlacement,k="between"===h||d(h),m=a.threshold,x=a.startFromThreshold?m:0,A,l,r,F,J=Number.MAX_VALUE;"between"===h&&(h=.5);d(h)&&(h*=E(a.pointRange||c.pointRange)); +for(a=0;a=B&&(C.isNull=!0);C.plotX=A=p(Math.min(Math.max(-1E5,c.translate(w,0,0,0,1,h,"flags"===this.type)),1E5));b&&this.visible&&!C.isNull&&D&&D[w]&&(F=this.getStackIndicator(F,w,this.index),G=D[w],B=G.points[F.key],l=B[0],B=B[1],l===x&&F.key===D[w].base&&(l=E(m,f.min)),f.isLog&&0>=l&&(l=null),C.total=C.stackTotal=G.total,C.percentage=G.total&&C.y/G.total*100,C.stackY= +B,G.setOffset(this.pointXOffset||0,this.barW||0));C.yBottom=t(l)?f.translate(l,0,1,0,1):null;q&&(B=this.modifyValue(B,C));C.plotY=l="number"===typeof B&&Infinity!==B?Math.min(Math.max(-1E5,f.translate(B,0,1,0,1)),1E5):void 0;C.isInside=void 0!==l&&0<=l&&l<=f.len&&0<=A&&A<=c.len;C.clientX=k?p(c.translate(w,0,0,0,1,h)):A;C.negative=C.y<(m||0);C.category=e&&void 0!==e[C.x]?e[C.x]:C.x;C.isNull||(void 0!==r&&(J=Math.min(J,Math.abs(A-r))),r=A)}this.closestPointRangePx=J},getValidPoints:function(a,b){var c= +this.chart;return C(a||this.points||[],function(a){return b&&!c.isInsidePlot(a.plotX,a.plotY,c.inverted)?!1:!a.isNull})},setClip:function(a){var b=this.chart,c=this.options,d=b.renderer,e=b.inverted,f=this.clipBox,g=f||b.clipBox,n=this.sharedClipKey||["_sharedClip",a&&a.duration,a&&a.easing,g.height,c.xAxis,c.yAxis].join(),q=b[n],h=b[n+"m"];q||(a&&(g.width=0,b[n+"m"]=h=d.clipRect(-99,e?-b.plotLeft:-b.plotTop,99,e?b.chartWidth:b.chartHeight)),b[n]=q=d.clipRect(g),q.count={length:0});a&&!q.count[this.index]&& +(q.count[this.index]=!0,q.count.length+=1);!1!==c.clip&&(this.group.clip(a||f?q:b.clipRect),this.markerGroup.clip(h),this.sharedClipKey=n);a||(q.count[this.index]&&(delete q.count[this.index],--q.count.length),0===q.count.length&&n&&b[n]&&(f||(b[n]=b[n].destroy()),b[n+"m"]&&(b[n+"m"]=b[n+"m"].destroy())))},animate:function(a){var b=this.chart,c=B(this.options.animation),d;a?this.setClip(c):(d=this.sharedClipKey,(a=b[d])&&a.animate({width:b.plotSizeX},c),b[d+"m"]&&b[d+"m"].animate({width:b.plotSizeX+ +99},c),this.animate=null)},afterAnimate:function(){this.setClip();h(this,"afterAnimate")},drawPoints:function(){var a=this.points,b=this.chart,c,e,f,g,n=this.options.marker,q,h,k,m,x=this.markerGroup,A=E(n.enabled,this.xAxis.isRadial?!0:null,this.closestPointRangePx>2*n.radius);if(!1!==n.enabled||this._hasPointMarkers)for(e=a.length;e--;)f=a[e],c=f.plotY,g=f.graphic,q=f.marker||{},h=!!f.marker,k=A&&void 0===q.enabled||q.enabled,m=f.isInside,k&&d(c)&&null!==f.y?(c=E(q.symbol,this.symbol),f.hasImage= +0===c.indexOf("url"),k=this.markerAttribs(f,f.selected&&"select"),g?g[m?"show":"hide"](!0).animate(k):m&&(0e&&b.shadow));g&&(g.startX=c.xMap, +g.isArea=c.isArea)})},applyZones:function(){var a=this,b=this.chart,c=b.renderer,d=this.zones,e,f,g=this.clips||[],n,q=this.graph,h=this.area,m=Math.max(b.chartWidth,b.chartHeight),x=this[(this.zoneAxis||"y")+"Axis"],A,l,p=b.inverted,r,F,C,t,J=!1;d.length&&(q||h)&&x&&void 0!==x.min&&(l=x.reversed,r=x.horiz,q&&q.hide(),h&&h.hide(),A=x.getExtremes(),k(d,function(d,u){e=l?r?b.plotWidth:0:r?0:x.toPixels(A.min);e=Math.min(Math.max(E(f,e),0),m);f=Math.min(Math.max(Math.round(x.toPixels(E(d.value,A.max), +!0)),0),m);J&&(e=f=x.toPixels(A.max));F=Math.abs(e-f);C=Math.min(e,f);t=Math.max(e,f);x.isXAxis?(n={x:p?t:C,y:0,width:F,height:m},r||(n.x=b.plotHeight-n.x)):(n={x:0,y:p?t:C,width:m,height:F},r&&(n.y=b.plotWidth-n.y));p&&c.isVML&&(n=x.isXAxis?{x:0,y:l?C:t,height:n.width,width:b.chartWidth}:{x:n.y-b.plotLeft-b.spacingBox.x,y:0,width:n.height,height:b.chartHeight});g[u]?g[u].animate(n):(g[u]=c.clipRect(n),q&&a["zone-graph-"+u].clip(g[u]),h&&a["zone-area-"+u].clip(g[u]));J=d.value>A.max}),this.clips= +g)},invertGroups:function(a){function b(){var b={width:c.yAxis.len,height:c.xAxis.len};k(["group","markerGroup"],function(d){c[d]&&c[d].attr(b).invert(a)})}var c=this,d;c.xAxis&&(d=D(c.chart,"resize",b),D(c,"destroy",d),b(a),c.invertGroups=b)},plotGroup:function(a,b,c,d,e){var f=this[a],g=!f;g&&(this[a]=f=this.chart.renderer.g(b).attr({zIndex:d||.1}).add(e),f.addClass("highcharts-series-"+this.index+" highcharts-"+this.type+"-series highcharts-color-"+this.colorIndex+" "+(this.options.className|| +"")));f.attr({visibility:c})[g?"attr":"animate"](this.getPlotBox());return f},getPlotBox:function(){var a=this.chart,b=this.xAxis,c=this.yAxis;a.inverted&&(b=c,c=this.xAxis);return{translateX:b?b.left:a.plotLeft,translateY:c?c.top:a.plotTop,scaleX:1,scaleY:1}},render:function(){var a=this,b=a.chart,c,d=a.options,e=!!a.animate&&b.renderer.isSVG&&B(d.animation).duration,f=a.visible?"inherit":"hidden",g=d.zIndex,n=a.hasRendered,q=b.seriesGroup,h=b.inverted;c=a.plotGroup("group","series",f,g,q);a.markerGroup= +a.plotGroup("markerGroup","markers",f,g,q);e&&a.animate(!0);c.inverted=a.isCartesian?h:!1;a.drawGraph&&(a.drawGraph(),a.applyZones());a.drawDataLabels&&a.drawDataLabels();a.visible&&a.drawPoints();a.drawTracker&&!1!==a.options.enableMouseTracking&&a.drawTracker();a.invertGroups(h);!1===d.clip||a.sharedClipKey||n||c.clip(b.clipRect);e&&a.animate();n||(a.animationTimeout=x(function(){a.afterAnimate()},e));a.isDirty=a.isDirtyData=!1;a.hasRendered=!0},redraw:function(){var a=this.chart,b=this.isDirty|| +this.isDirtyData,c=this.group,d=this.xAxis,e=this.yAxis;c&&(a.inverted&&c.attr({width:a.plotWidth,height:a.plotHeight}),c.animate({translateX:E(d&&d.left,a.plotLeft),translateY:E(e&&e.top,a.plotTop)}));this.translate();this.render();b&&delete this.kdTree},kdDimensions:1,kdAxisArray:["clientX","plotY"],searchPoint:function(a,b){var c=this.xAxis,d=this.yAxis,e=this.chart.inverted;return this.searchKDTree({clientX:e?c.len-a.chartY+c.pos:a.chartX-c.pos,plotY:e?d.len-a.chartX+d.pos:a.chartY-d.pos},b)}, +buildKDTree:function(){function a(c,d,e){var f,g;if(g=c&&c.length)return f=b.kdAxisArray[d%e],c.sort(function(a,b){return a[f]-b[f]}),g=Math.floor(g/2),{point:c[g],left:a(c.slice(0,g),d+1,e),right:a(c.slice(g+1),d+1,e)}}var b=this,c=b.kdDimensions;delete b.kdTree;x(function(){b.kdTree=a(b.getValidPoints(null,!b.directTouch),c,c)},b.options.kdNow?0:1)},searchKDTree:function(a,b){function c(a,b,n,q){var h=b.point,u=d.kdAxisArray[n%q],k,m,x=h;m=t(a[e])&&t(h[e])?Math.pow(a[e]-h[e],2):null;k=t(a[f])&& +t(h[f])?Math.pow(a[f]-h[f],2):null;k=(m||0)+(k||0);h.dist=t(k)?Math.sqrt(k):Number.MAX_VALUE;h.distX=t(m)?Math.sqrt(m):Number.MAX_VALUE;u=a[u]-h[u];k=0>u?"left":"right";m=0>u?"right":"left";b[k]&&(k=c(a,b[k],n+1,q),x=k[g]A;)l--;this.updateParallelArrays(h,"splice",l,0,0);this.updateParallelArrays(h,l);n&&h.name&&(n[A]=h.name);q.splice(l,0,a);m&&(this.data.splice(l,0,null),this.processData());"point"===c.legendType&&this.generatePoints();d&&(f[0]&&f[0].remove?f[0].remove(!1):(f.shift(),this.updateParallelArrays(h,"shift"),q.shift()));this.isDirtyData=this.isDirty=!0;b&&g.redraw(e)},removePoint:function(a, +b,d){var c=this,e=c.data,f=e[a],g=c.points,n=c.chart,h=function(){g&&g.length===e.length&&g.splice(a,1);e.splice(a,1);c.options.data.splice(a,1);c.updateParallelArrays(f||{series:c},"splice",a,1);f&&f.destroy();c.isDirty=!0;c.isDirtyData=!0;b&&n.redraw()};q(d,n);b=C(b,!0);f?f.firePointEvent("remove",null,h):h()},remove:function(a,b,d){function c(){e.destroy();f.isDirtyLegend=f.isDirtyBox=!0;f.linkSeries();C(a,!0)&&f.redraw(b)}var e=this,f=e.chart;!1!==d?k(e,"remove",null,c):c()},update:function(a, +d){var c=this,e=this.chart,f=this.userOptions,g=this.type,q=a.type||f.type||e.options.chart.type,u=b[g].prototype,m=["group","markerGroup","dataLabelsGroup"],k;if(q&&q!==g||void 0!==a.zIndex)m.length=0;r(m,function(a){m[a]=c[a];delete c[a]});a=h(f,{animation:!1,index:this.index,pointStart:this.xData[0]},{data:this.options.data},a);this.remove(!1,null,!1);for(k in u)this[k]=void 0;t(this,b[q||g].prototype);r(m,function(a){c[a]=m[a]});this.init(e,a);e.linkSeries();C(d,!0)&&e.redraw(!1)}});t(G.prototype, +{update:function(a,b){var c=this.chart;a=c.options[this.coll][this.options.index]=h(this.userOptions,a);this.destroy(!0);this.init(c,t(a,{events:void 0}));c.isDirtyBox=!0;C(b,!0)&&c.redraw()},remove:function(a){for(var b=this.chart,c=this.coll,d=this.series,e=d.length;e--;)d[e]&&d[e].remove(!1);w(b.axes,this);w(b[c],this);b.options[c].splice(this.options.index,1);r(b[c],function(a,b){a.options.index=b});this.destroy();b.isDirtyBox=!0;C(a,!0)&&b.redraw()},setTitle:function(a,b){this.update({title:a}, +b)},setCategories:function(a,b){this.update({categories:a},b)}})})(N);(function(a){var D=a.color,B=a.each,G=a.map,H=a.pick,p=a.Series,l=a.seriesType;l("area","line",{softThreshold:!1,threshold:0},{singleStacks:!1,getStackPoints:function(){var a=[],l=[],p=this.xAxis,k=this.yAxis,m=k.stacks[this.stackKey],e={},g=this.points,h=this.index,C=k.series,f=C.length,d,b=H(k.options.reversedStacks,!0)?1:-1,q,E;if(this.options.stacking){for(q=0;qa&&t>l?(t=Math.max(a,l),m=2*l-t):tH&& +m>l?(m=Math.max(H,l),t=2*l-m):m=Math.abs(g)&&.5a.closestPointRange*a.xAxis.transA,k=a.borderWidth=r(h.borderWidth,k?0:1),f=a.yAxis,d=a.translatedThreshold=f.getThreshold(h.threshold),b=r(h.minPointLength,5),q=a.getColumnMetrics(),m=q.width,c=a.barW=Math.max(m,1+2*k),l=a.pointXOffset= +q.offset;g.inverted&&(d-=.5);h.pointPadding&&(c=Math.ceil(c));w.prototype.translate.apply(a);G(a.points,function(e){var n=r(e.yBottom,d),q=999+Math.abs(n),q=Math.min(Math.max(-q,e.plotY),f.len+q),h=e.plotX+l,k=c,u=Math.min(q,n),p,t=Math.max(q,n)-u;Math.abs(t)b?n-b:d-(p?b:0));e.barX=h;e.pointWidth=m;e.tooltipPos=g.inverted?[f.len+f.pos-g.plotLeft-q,a.xAxis.len-h-k/2,t]:[h+k/2,q+f.pos-g.plotTop,t];e.shapeType="rect";e.shapeArgs= +a.crispCol.apply(a,e.isNull?[e.plotX,f.len/2,0,0]:[h,u,k,t])})},getSymbol:a.noop,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,drawGraph:function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},pointAttribs:function(a,g){var e=this.options,k=this.pointAttrToOptions||{},f=k.stroke||"borderColor",d=k["stroke-width"]||"borderWidth",b=a&&a.color||this.color,q=a[f]||e[f]||this.color||b,k=e.dashStyle,m;a&&this.zones.length&&(b=(b=a.getZone())&&b.color||a.options.color|| +this.color);g&&(g=e.states[g],m=g.brightness,b=g.color||void 0!==m&&B(b).brighten(g.brightness).get()||b,q=g[f]||q,k=g.dashStyle||k);a={fill:b,stroke:q,"stroke-width":a[d]||e[d]||this[d]||0};e.borderRadius&&(a.r=e.borderRadius);k&&(a.dashstyle=k);return a},drawPoints:function(){var a=this,g=this.chart,h=a.options,m=g.renderer,f=h.animationLimit||250,d;G(a.points,function(b){var e=b.graphic;p(b.plotY)&&null!==b.y?(d=b.shapeArgs,e?(k(e),e[g.pointCountt;++t)k=r[t],a=2>t||2===t&&/%$/.test(k),r[t]=B(k,[l,H,w,r[2]][t])+(a?p:0);r[3]>r[2]&&(r[3]=r[2]);return r}}})(N);(function(a){var D=a.addEvent,B=a.defined,G=a.each,H=a.extend,p=a.inArray,l=a.noop,r=a.pick,w=a.Point,t=a.Series,k=a.seriesType,m=a.setAnimation;k("pie","line",{center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){return null===this.y? +void 0:this.point.name},x:0},ignoreHiddenPoint:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,states:{hover:{brightness:.1,shadow:!1}}},{isCartesian:!1,requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],axisTypes:[],pointAttribs:a.seriesTypes.column.prototype.pointAttribs,animate:function(a){var e=this,h=e.points,k=e.startAngleRad;a||(G(h,function(a){var d= +a.graphic,b=a.shapeArgs;d&&(d.attr({r:a.startR||e.center[3]/2,start:k,end:k}),d.animate({r:b.r,start:b.start,end:b.end},e.options.animation))}),e.animate=null)},updateTotals:function(){var a,g=0,h=this.points,k=h.length,f,d=this.options.ignoreHiddenPoint;for(a=0;af.y&&(f.y=null),g+=d&&!f.visible?0:f.y;this.total=g;for(a=0;a1.5*Math.PI?q-=2*Math.PI:q<-Math.PI/2&&(q+=2*Math.PI);t.slicedTranslation={translateX:Math.round(Math.cos(q)*k),translateY:Math.round(Math.sin(q)*k)};d=Math.cos(q)*a[2]/2;b=Math.sin(q)*a[2]/2;t.tooltipPos=[a[0]+.7*d,a[1]+.7*b];t.half=q<-Math.PI/2||q>Math.PI/2?1:0;t.angle=q;f=Math.min(f,n/5);t.labelPos=[a[0]+d+Math.cos(q)*n,a[1]+b+Math.sin(q)*n,a[0]+d+Math.cos(q)*f,a[1]+b+Math.sin(q)* +f,a[0]+d,a[1]+b,0>n?"center":t.half?"right":"left",q]}},drawGraph:null,drawPoints:function(){var a=this,g=a.chart.renderer,h,k,f,d,b=a.options.shadow;b&&!a.shadowGroup&&(a.shadowGroup=g.g("shadow").add(a.group));G(a.points,function(e){if(null!==e.y){k=e.graphic;d=e.shapeArgs;h=e.sliced?e.slicedTranslation:{};var q=e.shadowGroup;b&&!q&&(q=e.shadowGroup=g.g("shadow").add(a.shadowGroup));q&&q.attr(h);f=a.pointAttribs(e,e.selected&&"select");k?k.setRadialReference(a.center).attr(f).animate(H(d,h)):(e.graphic= +k=g[e.shapeType](d).addClass(e.getClassName()).setRadialReference(a.center).attr(h).add(a.group),e.visible||k.attr({visibility:"hidden"}),k.attr(f).attr({"stroke-linejoin":"round"}).shadow(b,q))}})},searchPoint:l,sortByAngle:function(a,g){a.sort(function(a,e){return void 0!==a.angle&&(e.angle-a.angle)*g})},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,getCenter:a.CenteredSeriesMixin.getCenter,getSymbol:l},{init:function(){w.prototype.init.apply(this,arguments);var a=this,g;a.name=r(a.name,"Slice"); +g=function(e){a.slice("select"===e.type)};D(a,"select",g);D(a,"unselect",g);return a},setVisible:function(a,g){var e=this,k=e.series,f=k.chart,d=k.options.ignoreHiddenPoint;g=r(g,d);a!==e.visible&&(e.visible=e.options.visible=a=void 0===a?!e.visible:a,k.options.data[p(e,k.data)]=e.options,G(["graphic","dataLabel","connector","shadowGroup"],function(b){if(e[b])e[b][a?"show":"hide"](!0)}),e.legendItem&&f.legend.colorizeItem(e,a),a||"hover"!==e.state||e.setState(""),d&&(k.isDirty=!0),g&&f.redraw())}, +slice:function(a,g,h){var e=this.series;m(h,e.chart);r(g,!0);this.sliced=this.options.sliced=a=B(a)?a:!this.sliced;e.options.data[p(this,e.data)]=this.options;a=a?this.slicedTranslation:{translateX:0,translateY:0};this.graphic.animate(a);this.shadowGroup&&this.shadowGroup.animate(a)},haloPath:function(a){var e=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(e.x,e.y,e.r+a,e.r+a,{innerR:this.shapeArgs.r,start:e.start,end:e.end})}})})(N);(function(a){var D= +a.addEvent,B=a.arrayMax,G=a.defined,H=a.each,p=a.extend,l=a.format,r=a.map,w=a.merge,t=a.noop,k=a.pick,m=a.relativeLength,e=a.Series,g=a.seriesTypes,h=a.stableSort,C=a.stop;a.distribute=function(a,d){function b(a,b){return a.target-b.target}var e,f=!0,c=a,g=[],n;n=0;for(e=a.length;e--;)n+=a[e].size;if(n>d){h(a,function(a,b){return(b.rank||0)-(a.rank||0)});for(n=e=0;n<=d;)n+=a[e].size,e++;g=a.splice(e-1,a.length)}h(a,b);for(a=r(a,function(a){return{size:a.size,targets:[a.target]}});f;){for(e=a.length;e--;)f= +a[e],n=(Math.min.apply(0,f.targets)+Math.max.apply(0,f.targets))/2,f.pos=Math.min(Math.max(0,n-f.size/2),d-f.size);e=a.length;for(f=!1;e--;)0a[e].pos&&(a[e-1].size+=a[e].size,a[e-1].targets=a[e-1].targets.concat(a[e].targets),a[e-1].pos+a[e-1].size>d&&(a[e-1].pos=d-a[e-1].size),a.splice(e,1),f=!0)}e=0;H(a,function(a){var b=0;H(a.targets,function(){c[e].pos=a.pos+b;b+=c[e].size;e++})});c.push.apply(c,g);h(c,b)};e.prototype.drawDataLabels=function(){var a=this,d=a.options, +b=d.dataLabels,e=a.points,g,c,h=a.hasRendered||0,n,m,x=k(b.defer,!0),r=a.chart.renderer;if(b.enabled||a._hasPointLabels)a.dlProcessOptions&&a.dlProcessOptions(b),m=a.plotGroup("dataLabelsGroup","data-labels",x&&!h?"hidden":"visible",b.zIndex||6),x&&(m.attr({opacity:+h}),h||D(a,"afterAnimate",function(){a.visible&&m.show(!0);m[d.animation?"animate":"attr"]({opacity:1},{duration:200})})),c=b,H(e,function(e){var f,q=e.dataLabel,h,x,A=e.connector,y=!0,t,z={};g=e.dlOptions||e.options&&e.options.dataLabels; +f=k(g&&g.enabled,c.enabled)&&null!==e.y;if(q&&!f)e.dataLabel=q.destroy();else if(f){b=w(c,g);t=b.style;f=b.rotation;h=e.getLabelConfig();n=b.format?l(b.format,h):b.formatter.call(h,b);t.color=k(b.color,t.color,a.color,"#000000");if(q)G(n)?(q.attr({text:n}),y=!1):(e.dataLabel=q=q.destroy(),A&&(e.connector=A.destroy()));else if(G(n)){q={fill:b.backgroundColor,stroke:b.borderColor,"stroke-width":b.borderWidth,r:b.borderRadius||0,rotation:f,padding:b.padding,zIndex:1};"contrast"===t.color&&(z.color=b.inside|| +0>b.distance||d.stacking?r.getContrast(e.color||a.color):"#000000");d.cursor&&(z.cursor=d.cursor);for(x in q)void 0===q[x]&&delete q[x];q=e.dataLabel=r[f?"text":"label"](n,0,-9999,b.shape,null,null,b.useHTML,null,"data-label").attr(q);q.addClass("highcharts-data-label-color-"+e.colorIndex+" "+(b.className||""));q.css(p(t,z));q.add(m);q.shadow(b.shadow)}q&&a.alignDataLabel(e,q,b,null,y)}})};e.prototype.alignDataLabel=function(a,d,b,e,g){var c=this.chart,f=c.inverted,n=k(a.plotX,-9999),q=k(a.plotY, +-9999),h=d.getBBox(),m,l=b.rotation,u=b.align,r=this.visible&&(a.series.forceDL||c.isInsidePlot(n,Math.round(q),f)||e&&c.isInsidePlot(n,f?e.x+1:e.y+e.height-1,f)),t="justify"===k(b.overflow,"justify");r&&(m=b.style.fontSize,m=c.renderer.fontMetrics(m,d).b,e=p({x:f?c.plotWidth-q:n,y:Math.round(f?c.plotHeight-n:q),width:0,height:0},e),p(b,{width:h.width,height:h.height}),l?(t=!1,f=c.renderer.rotCorr(m,l),f={x:e.x+b.x+e.width/2+f.x,y:e.y+b.y+{top:0,middle:.5,bottom:1}[b.verticalAlign]*e.height},d[g? +"attr":"animate"](f).attr({align:u}),n=(l+720)%360,n=180n,"left"===u?f.y-=n?h.height:0:"center"===u?(f.x-=h.width/2,f.y-=h.height/2):"right"===u&&(f.x-=h.width,f.y-=n?0:h.height)):(d.align(b,null,e),f=d.alignAttr),t?this.justifyDataLabel(d,b,f,h,e,g):k(b.crop,!0)&&(r=c.isInsidePlot(f.x,f.y)&&c.isInsidePlot(f.x+h.width,f.y+h.height)),b.shape&&!l&&d.attr({anchorX:a.plotX,anchorY:a.plotY}));r||(C(d),d.attr({y:-9999}),d.placed=!1)};e.prototype.justifyDataLabel=function(a,d,b,e,g,c){var f=this.chart, +n=d.align,h=d.verticalAlign,q,k,m=a.box?0:a.padding||0;q=b.x+m;0>q&&("right"===n?d.align="left":d.x=-q,k=!0);q=b.x+e.width-m;q>f.plotWidth&&("left"===n?d.align="right":d.x=f.plotWidth-q,k=!0);q=b.y+m;0>q&&("bottom"===h?d.verticalAlign="top":d.y=-q,k=!0);q=b.y+e.height-m;q>f.plotHeight&&("top"===h?d.verticalAlign="bottom":d.y=f.plotHeight-q,k=!0);k&&(a.placed=!c,a.align(d,null,g))};g.pie&&(g.pie.prototype.drawDataLabels=function(){var f=this,d=f.data,b,g=f.chart,h=f.options.dataLabels,c=k(h.connectorPadding, +10),m=k(h.connectorWidth,1),n=g.plotWidth,l=g.plotHeight,x,p=h.distance,y=f.center,u=y[2]/2,t=y[1],w=0k-2?A:P,e),v._attr={visibility:S,align:D[6]},v._pos={x:L+h.x+({left:c,right:-c}[D[6]]||0),y:P+h.y-10},D.x=L,D.y=P,null===f.options.size&&(C=v.width,L-Cn-c&&(T[1]=Math.max(Math.round(L+ +C-n+c),T[1])),0>P-G/2?T[0]=Math.max(Math.round(-P+G/2),T[0]):P+G/2>l&&(T[2]=Math.max(Math.round(P+G/2-l),T[2])))}),0===B(T)||this.verifyDataLabelOverflow(T))&&(this.placeDataLabels(),w&&m&&H(this.points,function(a){var b;x=a.connector;if((v=a.dataLabel)&&v._pos&&a.visible){S=v._attr.visibility;if(b=!x)a.connector=x=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+a.colorIndex).add(f.dataLabelsGroup),x.attr({"stroke-width":m,stroke:h.connectorColor||a.color||"#666666"}); +x[b?"attr":"animate"]({d:f.connectorPath(a.labelPos)});x.attr("visibility",S)}else x&&(a.connector=x.destroy())}))},g.pie.prototype.connectorPath=function(a){var d=a.x,b=a.y;return k(this.options.dataLabels.softConnector,!0)?["M",d+("left"===a[6]?5:-5),b,"C",d,b,2*a[2]-a[4],2*a[3]-a[5],a[2],a[3],"L",a[4],a[5]]:["M",d+("left"===a[6]?5:-5),b,"L",a[2],a[3],"L",a[4],a[5]]},g.pie.prototype.placeDataLabels=function(){H(this.points,function(a){var d=a.dataLabel;d&&a.visible&&((a=d._pos)?(d.attr(d._attr), +d[d.moved?"animate":"attr"](a),d.moved=!0):d&&d.attr({y:-9999}))})},g.pie.prototype.alignDataLabel=t,g.pie.prototype.verifyDataLabelOverflow=function(a){var d=this.center,b=this.options,e=b.center,f=b.minSize||80,c,g;null!==e[0]?c=Math.max(d[2]-Math.max(a[1],a[3]),f):(c=Math.max(d[2]-a[1]-a[3],f),d[0]+=(a[3]-a[1])/2);null!==e[1]?c=Math.max(Math.min(c,d[2]-Math.max(a[0],a[2])),f):(c=Math.max(Math.min(c,d[2]-a[0]-a[2]),f),d[1]+=(a[0]-a[2])/2);ck(this.translatedThreshold,f.yAxis.len)),m=k(b.inside,!!this.options.stacking);n&&(g=w(n),0>g.y&&(g.height+=g.y,g.y=0),n=g.y+g.height-f.yAxis.len,0a+e||c+nb+f||g+hthis.pointCount))},pan:function(a,b){var c=this,d=c.hoverPoints, +e;d&&r(d,function(a){a.setState()});r("xy"===b?[1,0]:[1],function(b){b=c[b?"xAxis":"yAxis"][0];var d=b.horiz,f=a[d?"chartX":"chartY"],d=d?"mouseDownX":"mouseDownY",g=c[d],n=(b.pointRange||0)/2,h=b.getExtremes(),q=b.toValue(g-f,!0)+n,n=b.toValue(g+b.len-f,!0)-n,g=g>f;b.series.length&&(g||q>Math.min(h.dataMin,h.min))&&(!g||n=p(k.minWidth,0)&&this.chartHeight>=p(k.minHeight,0)};void 0===l._id&&(l._id=a.uniqueKey());m=m.call(this);!r[l._id]&&m?l.chartOptions&&(r[l._id]=this.currentOptions(l.chartOptions),this.update(l.chartOptions,w)):r[l._id]&&!m&&(this.update(r[l._id],w),delete r[l._id])};D.prototype.currentOptions=function(a){function p(a,m,e){var g,h;for(g in a)if(-1< +G(g,["series","xAxis","yAxis"]))for(a[g]=l(a[g]),e[g]=[],h=0;hd.length||void 0===h)return a.call(this,g,h,k,f);x=d.length;for(c=0;ck;d[c]5*b||w){if(d[c]>u){for(r=a.call(this,g,d[e],d[c],f);r.length&&r[0]<=u;)r.shift();r.length&&(u=r[r.length-1]);y=y.concat(r)}e=c+1}if(w)break}a= +r.info;if(q&&a.unitRange<=m.hour){c=y.length-1;for(e=1;ek?a-1:a;for(M=void 0;q--;)e=c[q],k=M-e,M&&k<.8*C&&(null===t||k<.8*t)?(n[y[q]]&&!n[y[q+1]]?(k=q+1,M=e):k=q,y.splice(k,1)):M=e}return y});w(B.prototype,{beforeSetTickPositions:function(){var a, +g=[],h=!1,k,f=this.getExtremes(),d=f.min,b=f.max,q,m=this.isXAxis&&!!this.options.breaks,f=this.options.ordinal,c=this.chart.options.chart.ignoreHiddenSeries;if(f||m){r(this.series,function(b,d){if(!(c&&!1===b.visible||!1===b.takeOrdinalPosition&&!m)&&(g=g.concat(b.processedXData),a=g.length,g.sort(function(a,b){return a-b}),a))for(d=a-1;d--;)g[d]===g[d+1]&&g.splice(d,1)});a=g.length;if(2k||b-g[g.length- +1]>k)&&(h=!0)}h?(this.ordinalPositions=g,k=this.val2lin(Math.max(d,g[0]),!0),q=Math.max(this.val2lin(Math.min(b,g[g.length-1]),!0),1),this.ordinalSlope=b=(b-d)/(q-k),this.ordinalOffset=d-k*b):this.ordinalPositions=this.ordinalSlope=this.ordinalOffset=void 0}this.isOrdinal=f&&h;this.groupIntervalFactor=null},val2lin:function(a,g){var e=this.ordinalPositions;if(e){var k=e.length,f,d;for(f=k;f--;)if(e[f]===a){d=f;break}for(f=k-1;f--;)if(a>e[f]||0===f){a=(a-e[f])/(e[f+1]-e[f]);d=f+a;break}g=g?d:this.ordinalSlope* +(d||0)+this.ordinalOffset}else g=a;return g},lin2val:function(a,g){var e=this.ordinalPositions;if(e){var k=this.ordinalSlope,f=this.ordinalOffset,d=e.length-1,b;if(g)0>a?a=e[0]:a>d?a=e[d]:(d=Math.floor(a),b=a-d);else for(;d--;)if(g=k*d+f,a>=g){k=k*(d+1)+f;b=(a-g)/(k-g);break}return void 0!==b&&void 0!==e[d]?e[d]+(b?b*(e[d+1]-e[d]):0):a}return a},getExtendedPositions:function(){var a=this.chart,g=this.series[0].currentDataGrouping,h=this.ordinalIndex,k=g?g.count+g.unitName:"raw",f=this.getExtremes(), +d,b;h||(h=this.ordinalIndex={});h[k]||(d={series:[],chart:a,getExtremes:function(){return{min:f.dataMin,max:f.dataMax}},options:{ordinal:!0},val2lin:B.prototype.val2lin},r(this.series,function(e){b={xAxis:d,xData:e.xData,chart:a,destroyGroupedData:t};b.options={dataGrouping:g?{enabled:!0,forced:!0,approximation:"open",units:[[g.unitName,[g.count]]]}:{enabled:!1}};e.processData.apply(b);d.series.push(b)}),this.beforeSetTickPositions.apply(d),h[k]=d.ordinalPositions);return h[k]},getGroupIntervalFactor:function(a, +g,h){var e;h=h.processedXData;var f=h.length,d=[];e=this.groupIntervalFactor;if(!e){for(e=0;ed?(l=p,t=e.ordinalPositions?e:p):(l=e.ordinalPositions?e:p,t=p),p=t.ordinalPositions,q>p[p.length-1]&&p.push(q),this.fixedRange=c-m,d=e.toFixedRange(null,null,n.apply(l,[x.apply(l,[m,!0])+d,!0]),n.apply(t,[x.apply(t, +[c,!0])+d,!0])),d.min>=Math.min(b.dataMin,m)&&d.max<=Math.max(q,c)&&e.setExtremes(d.min,d.max,!0,!1,{trigger:"pan"}),this.mouseDownX=k,H(this.container,{cursor:"move"})):f=!0}else f=!0;f&&a.apply(this,Array.prototype.slice.call(arguments,1))});k.prototype.gappedPath=function(){var a=this.options.gapSize,g=this.points.slice(),h=g.length-1;if(a&&0this.closestPointRange*a&&g.splice(h+1,0,{isNull:!0});return this.getGraphPath(g)}})(N);(function(a){function D(){return Array.prototype.slice.call(arguments, +1)}function B(a){a.apply(this);this.drawBreaks(this.xAxis,["x"]);this.drawBreaks(this.yAxis,G(this.pointArrayMap,["y"]))}var G=a.pick,H=a.wrap,p=a.each,l=a.extend,r=a.fireEvent,w=a.Axis,t=a.Series;l(w.prototype,{isInBreak:function(a,m){var e=a.repeat||Infinity,g=a.from,h=a.to-a.from;m=m>=g?(m-g)%e:e-(g-m)%e;return a.inclusive?m<=h:m=a)break;else if(g.isInBreak(f,a)){e-=a-f.from;break}return e};this.lin2val=function(a){var e,f;for(f=0;f=a);f++)e.toh;)m-=b;for(;mb.to||l>b.from&&db.from&&db.from&&d>b.to&&d=c[0]);A++);for(A;A<=q;A++){for(;(void 0!==c[w+1]&&a[A]>=c[w+1]||A===q)&&(l=c[w],this.dataGroupInfo={start:p,length:t[0].length},p=d.apply(this,t),void 0!==p&&(g.push(l),h.push(p),m.push(this.dataGroupInfo)),p=A,t[0]=[],t[1]=[],t[2]=[],t[3]=[],w+=1,A!==q););if(A===q)break;if(x){l=this.cropStart+A;l=e&&e[l]|| +this.pointClass.prototype.applyOptions.apply({series:this},[f[l]]);var E,C;for(E=0;Ethis.chart.plotSizeX/d||b&&f.forced)&&(e=!0);return e?d:0};G.prototype.setDataGrouping=function(a,b){var c;b=e(b,!0);a||(a={forced:!1,units:null});if(this instanceof G)for(c=this.series.length;c--;)this.series[c].update({dataGrouping:a},!1);else l(this.chart.options.series,function(b){b.dataGrouping=a},!1);b&&this.chart.redraw()}})(N);(function(a){var D=a.each,B=a.Point,G=a.seriesType,H=a.seriesTypes;G("ohlc","column",{lineWidth:1,tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eOpen: {point.open}\x3cbr/\x3eHigh: {point.high}\x3cbr/\x3eLow: {point.low}\x3cbr/\x3eClose: {point.close}\x3cbr/\x3e'}, +threshold:null,states:{hover:{lineWidth:3}}},{pointArrayMap:["open","high","low","close"],toYData:function(a){return[a.open,a.high,a.low,a.close]},pointValKey:"high",pointAttribs:function(a,l){l=H.column.prototype.pointAttribs.call(this,a,l);var p=this.options;delete l.fill;l["stroke-width"]=p.lineWidth;l.stroke=a.options.color||(a.openk)););B(g,function(a,b){var d;void 0===a.plotY&&(a.x>=c.min&&a.x<=c.max?a.plotY=e.chartHeight-p.bottom-(p.opposite?p.height:0)+p.offset-e.plotTop:a.shapeArgs={});a.plotX+=t;(f=g[b-1])&&f.plotX===a.plotX&&(void 0===f.stackIndex&&(f.stackIndex=0),d=f.stackIndex+1);a.stackIndex=d})},drawPoints:function(){var a=this.points,e=this.chart,g=e.renderer,k,l,f=this.options,d=f.y,b,q,p,c,r,n,t,x=this.yAxis;for(q=a.length;q--;)p=a[q],t=p.plotX>this.xAxis.len,k=p.plotX,c=p.stackIndex,b= +p.options.shape||f.shape,l=p.plotY,void 0!==l&&(l=p.plotY+d-(void 0!==c&&c*f.stackDistance)),r=c?void 0:p.plotX,n=c?void 0:p.plotY,c=p.graphic,void 0!==l&&0<=k&&!t?(c||(c=p.graphic=g.label("",null,null,b,null,null,f.useHTML).attr(this.pointAttribs(p)).css(G(f.style,p.style)).attr({align:"flag"===b?"left":"center",width:f.width,height:f.height,"text-align":f.textAlign}).addClass("highcharts-point").add(this.markerGroup),c.shadow(f.shadow)),0h&&(e-=Math.round((l-h)/2),h=l);e=k[a](e,g,h,l);d&&f&&e.push("M",d,g>f?g:g+l,"L",d,f);return e}});p===t&&B(["flag","circlepin","squarepin"],function(a){t.prototype.symbols[a]=k[a]})})(N);(function(a){function D(a,d,e){this.init(a,d,e)}var B=a.addEvent,G=a.Axis,H=a.correctFloat,p=a.defaultOptions, +l=a.defined,r=a.destroyObjectProperties,w=a.doc,t=a.each,k=a.fireEvent,m=a.hasTouch,e=a.isTouchDevice,g=a.merge,h=a.pick,C=a.removeEvent,f=a.wrap,d={height:e?20:14,barBorderRadius:0,buttonBorderRadius:0,liveRedraw:a.svg&&!e,margin:10,minWidth:6,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:1,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"#333333",trackBackgroundColor:"#f2f2f2",trackBorderColor:"#f2f2f2", +trackBorderWidth:1};p.scrollbar=g(!0,d,p.scrollbar);D.prototype={init:function(a,e,f){this.scrollbarButtons=[];this.renderer=a;this.userOptions=e;this.options=g(d,e);this.chart=f;this.size=h(this.options.size,this.options.height);e.enabled&&(this.render(),this.initEvents(),this.addEvents())},render:function(){var a=this.renderer,d=this.options,e=this.size,c;this.group=c=a.g("scrollbar").attr({zIndex:d.zIndex,translateY:-99999}).add();this.track=a.rect().addClass("highcharts-scrollbar-track").attr({x:0, +r:d.trackBorderRadius||0,height:e,width:e}).add(c);this.track.attr({fill:d.trackBackgroundColor,stroke:d.trackBorderColor,"stroke-width":d.trackBorderWidth});this.trackBorderWidth=this.track.strokeWidth();this.track.attr({y:-this.trackBorderWidth%2/2});this.scrollbarGroup=a.g().add(c);this.scrollbar=a.rect().addClass("highcharts-scrollbar-thumb").attr({height:e,width:e,r:d.barBorderRadius||0}).add(this.scrollbarGroup);this.scrollbarRifles=a.path(this.swapXY(["M",-3,e/4,"L",-3,2*e/3,"M",0,e/4,"L", +0,2*e/3,"M",3,e/4,"L",3,2*e/3],d.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup);this.scrollbar.attr({fill:d.barBackgroundColor,stroke:d.barBorderColor,"stroke-width":d.barBorderWidth});this.scrollbarRifles.attr({stroke:d.rifleColor,"stroke-width":1});this.scrollbarStrokeWidth=this.scrollbar.strokeWidth();this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2);this.drawScrollbarButton(0);this.drawScrollbarButton(1)},position:function(a, +d,e,c){var b=this.options.vertical,f=0,g=this.rendered?"animate":"attr";this.x=a;this.y=d+this.trackBorderWidth;this.width=e;this.xOffset=this.height=c;this.yOffset=f;b?(this.width=this.yOffset=e=f=this.size,this.xOffset=d=0,this.barWidth=c-2*e,this.x=a+=this.options.margin):(this.height=this.xOffset=c=d=this.size,this.barWidth=e-2*c,this.y+=this.options.margin);this.group[g]({translateX:a,translateY:this.y});this.track[g]({width:e,height:c});this.scrollbarButtons[1].attr({translateX:b?0:e-d,translateY:b? +c-f:0})},drawScrollbarButton:function(a){var b=this.renderer,d=this.scrollbarButtons,c=this.options,e=this.size,f;f=b.g().add(this.group);d.push(f);f=b.rect().addClass("highcharts-scrollbar-button").add(f);f.attr({stroke:c.buttonBorderColor,"stroke-width":c.buttonBorderWidth,fill:c.buttonBackgroundColor});f.attr(f.crisp({x:-.5,y:-.5,width:e+1,height:e+1,r:c.buttonBorderRadius},f.strokeWidth()));f=b.path(this.swapXY(["M",e/2+(a?-1:1),e/2-3,"L",e/2+(a?-1:1),e/2+3,"L",e/2+(a?2:-2),e/2],c.vertical)).addClass("highcharts-scrollbar-arrow").add(d[a]); +f.attr({fill:c.buttonArrowColor})},swapXY:function(a,d){var b=a.length,c;if(d)for(d=0;d=k?this.scrollbarRifles.hide():this.scrollbarRifles.show(!0),!1===b.showFull&&(0>=a&&1<=d?this.group.hide():this.group.show()),this.rendered=!0)},initEvents:function(){var a=this;a.mouseMoveHandler=function(b){var d=a.chart.pointer.normalize(b),c=a.options.vertical? +"chartY":"chartX",e=a.initPositions;!a.grabbedCenter||b.touches&&0===b.touches[0][c]||(d=a.cursorToScrollbarPosition(d)[c],c=a[c],c=d-c,a.hasDragged=!0,a.updatePosition(e[0]+c,e[1]+c),a.hasDragged&&k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMType:b.type,DOMEvent:b}))};a.mouseUpHandler=function(b){a.hasDragged&&k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMType:b.type,DOMEvent:b});a.grabbedCenter=a.hasDragged=a.chartX=a.chartY=null};a.mouseDownHandler=function(b){b=a.chart.pointer.normalize(b); +b=a.cursorToScrollbarPosition(b);a.chartX=b.chartX;a.chartY=b.chartY;a.initPositions=[a.from,a.to];a.grabbedCenter=!0};a.buttonToMinClick=function(b){var d=H(a.to-a.from)*a.options.step;a.updatePosition(H(a.from-d),H(a.to-d));k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})};a.buttonToMaxClick=function(b){var d=(a.to-a.from)*a.options.step;a.updatePosition(a.from+d,a.to+d);k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})};a.trackClick=function(b){var d=a.chart.pointer.normalize(b), +c=a.to-a.from,e=a.y+a.scrollbarTop,f=a.x+a.scrollbarLeft;a.options.vertical&&d.chartY>e||!a.options.vertical&&d.chartX>f?a.updatePosition(a.from+c,a.to+c):a.updatePosition(a.from-c,a.to-c);k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})}},cursorToScrollbarPosition:function(a){var b=this.options,b=b.minWidth>this.calculatedWidth?b.minWidth:0;return{chartX:(a.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(a.chartY-this.y-this.yOffset)/(this.barWidth-b)}},updatePosition:function(a, +d){1a&&(d=H(d-a),a=0);this.from=a;this.to=d},update:function(a){this.destroy();this.init(this.chart.renderer,g(!0,this.options,a),this.chart)},addEvents:function(){var a=this.options.inverted?[1,0]:[0,1],d=this.scrollbarButtons,e=this.scrollbarGroup.element,c=this.mouseDownHandler,f=this.mouseMoveHandler,g=this.mouseUpHandler,a=[[d[a[0]].element,"click",this.buttonToMinClick],[d[a[1]].element,"click",this.buttonToMaxClick],[this.track.element,"click",this.trackClick],[e, +"mousedown",c],[w,"mousemove",f],[w,"mouseup",g]];m&&a.push([e,"touchstart",c],[w,"touchmove",f],[w,"touchend",g]);t(a,function(a){B.apply(null,a)});this._events=a},removeEvents:function(){t(this._events,function(a){C.apply(null,a)});this._events=void 0},destroy:function(){var a=this.chart.scroller;this.removeEvents();t(["track","scrollbarRifles","scrollbar","scrollbarGroup","group"],function(a){this[a]&&this[a].destroy&&(this[a]=this[a].destroy())},this);a&&(a.scrollbar=null,r(a.scrollbarButtons))}}; +f(G.prototype,"init",function(a){var b=this;a.apply(b,[].slice.call(arguments,1));b.options.scrollbar&&b.options.scrollbar.enabled&&(b.options.scrollbar.vertical=!b.horiz,b.options.startOnTick=b.options.endOnTick=!1,b.scrollbar=new D(b.chart.renderer,b.options.scrollbar,b.chart),B(b.scrollbar,"changed",function(a){var c=Math.min(h(b.options.min,b.min),b.min,b.dataMin),d=Math.max(h(b.options.max,b.max),b.max,b.dataMax)-c,e;b.horiz&&!b.reversed||!b.horiz&&b.reversed?(e=c+d*this.to,c+=d*this.from):(e= +c+d*(1-this.from),c+=d*(1-this.to));b.setExtremes(c,e,!0,!1,a)}))});f(G.prototype,"render",function(a){var b=Math.min(h(this.options.min,this.min),this.min,this.dataMin),d=Math.max(h(this.options.max,this.max),this.max,this.dataMax),c=this.scrollbar,e;a.apply(this,[].slice.call(arguments,1));c&&(this.horiz?c.position(this.left,this.top+this.height+this.offset+2+(this.opposite?0:this.axisTitleMargin),this.width,this.height):c.position(this.left+this.width+2+this.offset+(this.opposite?this.axisTitleMargin: +0),this.top,this.width,this.height),isNaN(b)||isNaN(d)||!l(this.min)||!l(this.max)?c.setRange(0,0):(e=(this.min-b)/(d-b),b=(this.max-b)/(d-b),this.horiz&&!this.reversed||!this.horiz&&this.reversed?c.setRange(e,b):c.setRange(1-b,1-e)))});f(G.prototype,"getOffset",function(a){var b=this.horiz?2:1,d=this.scrollbar;a.apply(this,[].slice.call(arguments,1));d&&(this.chart.axisOffset[b]+=d.size+d.options.margin)});f(G.prototype,"destroy",function(a){this.scrollbar&&(this.scrollbar=this.scrollbar.destroy()); +a.apply(this,[].slice.call(arguments,1))});a.Scrollbar=D})(N);(function(a){function D(a){this.init(a)}var B=a.addEvent,G=a.Axis,H=a.Chart,p=a.color,l=a.defaultOptions,r=a.defined,w=a.destroyObjectProperties,t=a.doc,k=a.each,m=a.erase,e=a.error,g=a.extend,h=a.grep,C=a.hasTouch,f=a.isNumber,d=a.isObject,b=a.isTouchDevice,q=a.merge,E=a.pick,c=a.removeEvent,F=a.Scrollbar,n=a.Series,A=a.seriesTypes,x=a.wrap,J=[].concat(a.defaultDataGroupingUnits),y=function(a){var b=h(arguments,f);if(b.length)return Math[a].apply(0, +b)};J[4]=["day",[1,2,3,4]];J[5]=["week",[1,2,3]];A=void 0===A.areaspline?"line":"areaspline";g(l,{navigator:{height:40,margin:25,maskInside:!0,handles:{backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:p("#6685c2").setOpacity(.3).get(),outlineColor:"#cccccc",outlineWidth:1,series:{type:A,color:"#335cad",fillOpacity:.05,lineWidth:1,compare:null,dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,smoothed:!0,units:J},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series", +className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},pointRange:0,shadow:!1,threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#999999"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}); +D.prototype={drawHandle:function(a,b){var c=this.chart.renderer,d=this.handles;this.rendered||(d[b]=c.path(["M",-4.5,.5,"L",3.5,.5,3.5,15.5,-4.5,15.5,-4.5,.5,"M",-1.5,4,"L",-1.5,12,"M",.5,4,"L",.5,12]).attr({zIndex:10-b}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][b]).add(),c=this.navigatorOptions.handles,d[b].attr({fill:c.backgroundColor,stroke:c.borderColor,"stroke-width":1}).css({cursor:"ew-resize"}));d[b][this.rendered&&!this.hasDragged?"animate":"attr"]({translateX:Math.round(this.scrollerLeft+ +this.scrollbarHeight+parseInt(a,10)),translateY:Math.round(this.top+this.height/2-8)})},update:function(a){this.destroy();q(!0,this.chart.options.navigator,this.options,a);this.init(this.chart)},render:function(a,b,c,d){var e=this.chart,g=e.renderer,k,h,l,n;n=this.scrollbarHeight;var m=this.xAxis,p=this.navigatorOptions,u=p.maskInside,q=this.height,v=this.top,t=this.navigatorEnabled,x=this.outlineHeight,y;y=this.rendered;if(f(a)&&f(b)&&(!this.hasDragged||r(c))&&(this.navigatorLeft=k=E(m.left,e.plotLeft+ +n),this.navigatorWidth=h=E(m.len,e.plotWidth-2*n),this.scrollerLeft=l=k-n,this.scrollerWidth=n=n=h+2*n,c=E(c,m.translate(a)),d=E(d,m.translate(b)),f(c)&&Infinity!==Math.abs(c)||(c=0,d=n),!(m.translate(d,!0)-m.translate(c,!0)f&&tp+d-u&&rk&&re?e=0:e+v>=q&&(e=q-v,x=h.getUnionExtremes().dataMax),e!==d&&(h.fixedWidth=v,d=l.toFixedRange(e, +e+v,null,x),c.setExtremes(d.min,d.max,!0,null,{trigger:"navigator"}))))};h.mouseMoveHandler=function(b){var c=h.scrollbarHeight,d=h.navigatorLeft,e=h.navigatorWidth,f=h.scrollerLeft,g=h.scrollerWidth,k=h.range,l;b.touches&&0===b.touches[0].pageX||(b=a.pointer.normalize(b),l=b.chartX,lf+g-c&&(l=f+g-c),h.grabbedLeft?(h.hasDragged=!0,h.render(0,0,l-d,h.otherHandlePos)):h.grabbedRight?(h.hasDragged=!0,h.render(0,0,h.otherHandlePos,l-d)):h.grabbedCenter&&(h.hasDragged=!0,le+n-k&&(l=e+ +n-k),h.render(0,0,l-n,l-n+k)),h.hasDragged&&h.scrollbar&&h.scrollbar.options.liveRedraw&&(b.DOMType=b.type,setTimeout(function(){h.mouseUpHandler(b)},0)))};h.mouseUpHandler=function(b){var c,d,e=b.DOMEvent||b;if(h.hasDragged||"scrollbar"===b.trigger)h.zoomedMin===h.otherHandlePos?c=h.fixedExtreme:h.zoomedMax===h.otherHandlePos&&(d=h.fixedExtreme),h.zoomedMax===h.navigatorWidth&&(d=h.getUnionExtremes().dataMax),c=l.toFixedRange(h.zoomedMin,h.zoomedMax,c,d),r(c.min)&&a.xAxis[0].setExtremes(c.min,c.max, +!0,h.hasDragged?!1:null,{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:e});"mousemove"!==b.DOMType&&(h.grabbedLeft=h.grabbedRight=h.grabbedCenter=h.fixedWidth=h.fixedExtreme=h.otherHandlePos=h.hasDragged=n=null)};var c=a.xAxis.length,f=a.yAxis.length,m=e&&e[0]&&e[0].xAxis||a.xAxis[0];a.extraBottomMargin=h.outlineHeight+d.margin;a.isDirtyBox=!0;h.navigatorEnabled?(h.xAxis=l=new G(a,q({breaks:m.options.breaks,ordinal:m.options.ordinal},d.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis", +isX:!0,type:"datetime",index:c,height:g,offset:0,offsetLeft:k,offsetRight:-k,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1})),h.yAxis=new G(a,q(d.yAxis,{id:"navigator-y-axis",alignTicks:!1,height:g,offset:0,index:f,zoomEnabled:!1})),e||d.series.data?h.addBaseSeries():0===a.series.length&&x(a,"redraw",function(b,c){0=Math.round(a.navigatorWidth);b&&!a.hasNavigatorData&&(b.options.pointStart=this.xData[0],b.setData(this.options.data,!1,null,!1))},destroy:function(){this.removeEvents();this.xAxis&&(m(this.chart.xAxis,this.xAxis),m(this.chart.axes,this.xAxis));this.yAxis&&(m(this.chart.yAxis,this.yAxis),m(this.chart.axes,this.yAxis));k(this.series||[],function(a){a.destroy&&a.destroy()});k("series xAxis yAxis leftShade rightShade outline scrollbarTrack scrollbarRifles scrollbarGroup scrollbar navigatorGroup rendered".split(" "), +function(a){this[a]&&this[a].destroy&&this[a].destroy();this[a]=null},this);k([this.handles,this.elementsToDestroy],function(a){w(a)},this)}};a.Navigator=D;x(G.prototype,"zoom",function(a,b,c){var d=this.chart,e=d.options,f=e.chart.zoomType,g=e.navigator,e=e.rangeSelector,h;this.isXAxis&&(g&&g.enabled||e&&e.enabled)&&("x"===f?d.resetZoomButton="blocked":"y"===f?h=!1:"xy"===f&&(d=this.previousZoom,r(b)?this.previousZoom=[this.min,this.max]:d&&(b=d[0],c=d[1],delete this.previousZoom)));return void 0!== +h?h:a.call(this,b,c)});x(H.prototype,"init",function(a,b,c){B(this,"beforeRender",function(){var a=this.options;if(a.navigator.enabled||a.scrollbar.enabled)this.scroller=this.navigator=new D(this)});a.call(this,b,c)});x(H.prototype,"getMargins",function(a){var b=this.legend,c=b.options,d=this.scroller,e,f;a.apply(this,[].slice.call(arguments,1));d&&(e=d.xAxis,f=d.yAxis,d.top=d.navigatorOptions.top||this.chartHeight-d.height-d.scrollbarHeight-this.spacing[2]-("bottom"===c.verticalAlign&&c.enabled&& +!c.floating?b.legendHeight+E(c.margin,10):0),e&&f&&(e.options.top=f.options.top=d.top,e.setAxisSize(),f.setAxisSize()))});x(n.prototype,"addPoint",function(a,b,c,f,g){var h=this.options.turboThreshold;h&&this.xData.length>h&&d(b,!0)&&this.chart.scroller&&e(20,!0);a.call(this,b,c,f,g)});x(H.prototype,"addSeries",function(a,b,c,d){a=a.call(this,b,!1,d);this.scroller&&this.scroller.setBaseSeries();E(c,!0)&&this.redraw();return a});x(n.prototype,"update",function(a,b,c){a.call(this,b,!1);this.chart.scroller&& +this.chart.scroller.setBaseSeries();E(c,!0)&&this.chart.redraw()})})(N);(function(a){function D(a){this.init(a)}var B=a.addEvent,G=a.Axis,H=a.Chart,p=a.css,l=a.createElement,r=a.dateFormat,w=a.defaultOptions,t=w.global.useUTC,k=a.defined,m=a.destroyObjectProperties,e=a.discardElement,g=a.each,h=a.extend,C=a.fireEvent,f=a.Date,d=a.isNumber,b=a.merge,q=a.pick,E=a.pInt,c=a.splat,F=a.wrap;h(w,{rangeSelector:{buttonTheme:{"stroke-width":0,width:28,height:18,padding:2,zIndex:7},height:35,inputPosition:{align:"right"}, +labelStyle:{color:"#666666"}}});w.lang=b(w.lang,{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"From",rangeSelectorTo:"To"});D.prototype={clickButton:function(a,b){var e=this,f=e.chart,h=e.buttonOptions[a],k=f.xAxis[0],l=f.scroller&&f.scroller.getUnionExtremes()||k||{},n=l.dataMin,m=l.dataMax,p,r=k&&Math.round(Math.min(k.max,q(m,k.max))),w=h.type,z,l=h._range,A,C,D,E=h.dataGrouping;if(null!==n&&null!==m){f.fixedRange=l;E&&(this.forcedDataGrouping=!0,G.prototype.setDataGrouping.call(k||{chart:this.chart}, +E,!1));if("month"===w||"year"===w)k?(w={range:h,max:r,dataMin:n,dataMax:m},p=k.minFromRange.call(w),d(w.newMax)&&(r=w.newMax)):l=h;else if(l)p=Math.max(r-l,n),r=Math.min(p+l,m);else if("ytd"===w)if(k)void 0===m&&(n=Number.MAX_VALUE,m=Number.MIN_VALUE,g(f.series,function(a){a=a.xData;n=Math.min(a[0],n);m=Math.max(a[a.length-1],m)}),b=!1),r=e.getYTDExtremes(m,n,t),p=A=r.min,r=r.max;else{B(f,"beforeRender",function(){e.clickButton(a)});return}else"all"===w&&k&&(p=n,r=m);e.setSelected(a);k?k.setExtremes(p, +r,q(b,1),null,{trigger:"rangeSelectorButton",rangeSelectorButton:h}):(z=c(f.options.xAxis)[0],D=z.range,z.range=l,C=z.min,z.min=A,B(f,"load",function(){z.range=D;z.min=C}))}},setSelected:function(a){this.selected=this.options.selected=a},defaultButtons:[{type:"month",count:1,text:"1m"},{type:"month",count:3,text:"3m"},{type:"month",count:6,text:"6m"},{type:"ytd",text:"YTD"},{type:"year",count:1,text:"1y"},{type:"all",text:"All"}],init:function(a){var b=this,c=a.options.rangeSelector,d=c.buttons|| +[].concat(b.defaultButtons),e=c.selected,f=function(){var a=b.minInput,c=b.maxInput;a&&a.blur&&C(a,"blur");c&&c.blur&&C(c,"blur")};b.chart=a;b.options=c;b.buttons=[];a.extraTopMargin=c.height;b.buttonOptions=d;this.unMouseDown=B(a.container,"mousedown",f);this.unResize=B(a,"resize",f);g(d,b.computeButtonRange);void 0!==e&&d[e]&&this.clickButton(e,!1);B(a,"load",function(){B(a.xAxis[0],"setExtremes",function(c){this.max-this.min!==a.fixedRange&&"rangeSelectorButton"!==c.trigger&&"updatedData"!==c.trigger&& +b.forcedDataGrouping&&this.setDataGrouping(!1,!1)})})},updateButtonStates:function(){var a=this.chart,b=a.xAxis[0],c=Math.round(b.max-b.min),e=!b.hasVisibleSeries,a=a.scroller&&a.scroller.getUnionExtremes()||b,f=a.dataMin,h=a.dataMax,a=this.getYTDExtremes(h,f,t),k=a.min,l=a.max,m=this.selected,p=d(m),q=this.options.allButtonsEnabled,r=this.buttons;g(this.buttonOptions,function(a,d){var g=a._range,n=a.type,u=a.count||1;a=r[d];var t=0;d=d===m;var v=g>h-f,x=g=864E5*{month:28,year:365}[n]*u&&c<=864E5*{month:31,year:366}[n]*u?g=!0:"ytd"===n?(g=l-k===c,y=!d):"all"===n&&(g=b.max-b.min>=h-f,w=!d&&p&&g);n=!q&&(v||x||w||e);g=d&&g||g&&!p&&!y;n?t=3:g&&(p=!0,t=2);a.state!==t&&a.setState(t)})},computeButtonRange:function(a){var b=a.type,c=a.count||1,d={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5};if(d[b])a._range=d[b]*c;else if("month"===b||"year"===b)a._range=864E5*{month:30,year:365}[b]*c},setInputValue:function(a,b){var c= +this.chart.options.rangeSelector,d=this[a+"Input"];k(b)&&(d.previousValue=d.HCTime,d.HCTime=b);d.value=r(c.inputEditDateFormat||"%Y-%m-%d",d.HCTime);this[a+"DateBox"].attr({text:r(c.inputDateFormat||"%b %e, %Y",d.HCTime)})},showInput:function(a){var b=this.inputGroup,c=this[a+"DateBox"];p(this[a+"Input"],{left:b.translateX+c.x+"px",top:b.translateY+"px",width:c.width-2+"px",height:c.height-2+"px",border:"2px solid silver"})},hideInput:function(a){p(this[a+"Input"],{border:0,width:"1px",height:"1px"}); +this.setInputValue(a)},drawInput:function(a){function c(){var a=r.value,b=(m.inputDateParser||Date.parse)(a),c=f.xAxis[0],g=f.scroller&&f.scroller.xAxis?f.scroller.xAxis:c,h=g.dataMin,g=g.dataMax;b!==r.previousValue&&(r.previousValue=b,d(b)||(b=a.split("-"),b=Date.UTC(E(b[0]),E(b[1])-1,E(b[2]))),d(b)&&(t||(b+=6E4*(new Date).getTimezoneOffset()),q?b>e.maxInput.HCTime?b=void 0:bg&&(b=g),void 0!==b&&c.setExtremes(q?b:c.min,q?c.max:b,void 0,void 0,{trigger:"rangeSelectorInput"})))} +var e=this,f=e.chart,g=f.renderer.style||{},k=f.renderer,m=f.options.rangeSelector,n=e.div,q="min"===a,r,B,C=this.inputGroup;this[a+"Label"]=B=k.label(w.lang[q?"rangeSelectorFrom":"rangeSelectorTo"],this.inputGroup.offset).addClass("highcharts-range-label").attr({padding:2}).add(C);C.offset+=B.width+5;this[a+"DateBox"]=k=k.label("",C.offset).addClass("highcharts-range-input").attr({padding:2,width:m.inputBoxWidth||90,height:m.inputBoxHeight||17,stroke:m.inputBoxBorderColor||"#cccccc","stroke-width":1, +"text-align":"center"}).on("click",function(){e.showInput(a);e[a+"Input"].focus()}).add(C);C.offset+=k.width+(q?10:0);this[a+"Input"]=r=l("input",{name:a,className:"highcharts-range-selector",type:"text"},{top:f.plotTop+"px"},n);B.css(b(g,m.labelStyle));k.css(b({color:"#333333"},g,m.inputStyle));p(r,h({position:"absolute",border:0,width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:g.fontSize,fontFamily:g.fontFamily,left:"-9em"},m.inputStyle));r.onfocus=function(){e.showInput(a)};r.onblur= +function(){e.hideInput(a)};r.onchange=c;r.onkeypress=function(a){13===a.keyCode&&c()}},getPosition:function(){var a=this.chart,b=a.options.rangeSelector,a=q((b.buttonPosition||{}).y,a.plotTop-a.axisOffset[0]-b.height);return{buttonTop:a,inputTop:a-10}},getYTDExtremes:function(a,b,c){var d=new f(a),e=d[f.hcGetFullYear]();c=c?f.UTC(e,0,1):+new f(e,0,1);b=Math.max(b||0,c);d=d.getTime();return{max:Math.min(a||d,d),min:b}},render:function(a,b){var c=this,d=c.chart,e=d.renderer,f=d.container,m=d.options, +n=m.exporting&&!1!==m.exporting.enabled&&m.navigation&&m.navigation.buttonOptions,p=m.rangeSelector,r=c.buttons,m=w.lang,t=c.div,t=c.inputGroup,A=p.buttonTheme,z=p.buttonPosition||{},B=p.inputEnabled,C=A&&A.states,D=d.plotLeft,E,G=this.getPosition(),F=c.group,H=c.rendered;!1!==p.enabled&&(H||(c.group=F=e.g("range-selector-buttons").add(),c.zoomText=e.text(m.rangeSelectorZoom,q(z.x,D),15).css(p.labelStyle).add(F),E=q(z.x,D)+c.zoomText.getBBox().width+5,g(c.buttonOptions,function(a,b){r[b]=e.button(a.text, +E,0,function(){c.clickButton(b);c.isActive=!0},A,C&&C.hover,C&&C.select,C&&C.disabled).attr({"text-align":"center"}).add(F);E+=r[b].width+q(p.buttonSpacing,5)}),!1!==B&&(c.div=t=l("div",null,{position:"relative",height:0,zIndex:1}),f.parentNode.insertBefore(t,f),c.inputGroup=t=e.g("input-group").add(),t.offset=0,c.drawInput("min"),c.drawInput("max"))),c.updateButtonStates(),F[H?"animate":"attr"]({translateY:G.buttonTop}),!1!==B&&(t.align(h({y:G.inputTop,width:t.offset,x:n&&G.inputTop<(n.y||0)+n.height- +d.spacing[0]?-40:0},p.inputPosition),!0,d.spacingBox),k(B)||(d=F.getBBox(),t[t.alignAttr.translateXc&&(e?a=b-f:b=a+f);d(a)||(a=b=void 0);return{min:a,max:b}};G.prototype.minFromRange=function(){var a=this.range,b={month:"Month",year:"FullYear"}[a.type],c,e=this.max,f,g,h=function(a,c){var d=new Date(a);d["set"+b](d["get"+ +b]()+c);return d.getTime()-a};d(a)?(c=e-a,g=a):(c=e+h(e,-a.count),this.chart&&(this.chart.fixedRange=e-c));f=q(this.dataMin,Number.MIN_VALUE);d(c)||(c=f);c<=f&&(c=f,void 0===g&&(g=h(c,a.count)),this.newMax=Math.min(c+g,this.dataMax));d(e)||(c=void 0);return c};F(H.prototype,"init",function(a,b,c){B(this,"init",function(){this.options.rangeSelector.enabled&&(this.rangeSelector=new D(this))});a.call(this,b,c)});a.RangeSelector=D})(N);(function(a){var D=a.addEvent,B=a.isNumber;a.Chart.prototype.callbacks.push(function(a){function G(){p= +a.xAxis[0].getExtremes();B(p.min)&&r.render(p.min,p.max)}var p,l=a.scroller,r=a.rangeSelector,w,t;l&&(p=a.xAxis[0].getExtremes(),l.render(p.min,p.max));r&&(t=D(a.xAxis[0],"afterSetExtremes",function(a){r.render(a.min,a.max)}),w=D(a,"redraw",G),G());D(a,"destroy",function(){r&&(w(),t())})})})(N);(function(a){var D=a.arrayMax,B=a.arrayMin,G=a.Axis,H=a.Chart,p=a.defined,l=a.each,r=a.extend,w=a.format,t=a.inArray,k=a.isNumber,m=a.isString,e=a.map,g=a.merge,h=a.pick,C=a.Point,f=a.Renderer,d=a.Series,b= +a.splat,q=a.stop,E=a.SVGRenderer,c=a.VMLRenderer,F=a.wrap,n=d.prototype,A=n.init,x=n.processData,J=C.prototype.tooltipFormatter;a.StockChart=a.stockChart=function(c,d,f){var k=m(c)||c.nodeName,l=arguments[k?1:0],n=l.series,p=a.getOptions(),q,r=h(l.navigator&&l.navigator.enabled,!0)?{startOnTick:!1,endOnTick:!1}:null,t={marker:{enabled:!1,radius:2}},u={shadow:!1,borderWidth:0};l.xAxis=e(b(l.xAxis||{}),function(a){return g({minPadding:0,maxPadding:0,ordinal:!0,title:{text:null},labels:{overflow:"justify"}, +showLastLabel:!0},p.xAxis,a,{type:"datetime",categories:null},r)});l.yAxis=e(b(l.yAxis||{}),function(a){q=h(a.opposite,!0);return g({labels:{y:-2},opposite:q,showLastLabel:!1,title:{text:null}},p.yAxis,a)});l.series=null;l=g({chart:{panning:!0,pinchType:"x"},navigator:{enabled:!0},scrollbar:{enabled:!0},rangeSelector:{enabled:!0},title:{text:null,style:{fontSize:"16px"}},tooltip:{shared:!0,crosshairs:!0},legend:{enabled:!1},plotOptions:{line:t,spline:t,area:t,areaspline:t,arearange:t,areasplinerange:t, +column:u,columnrange:u,candlestick:u,ohlc:u}},l,{_stock:!0,chart:{inverted:!1}});l.series=n;return k?new H(c,l,f):new H(l,d)};F(G.prototype,"autoLabelAlign",function(a){var b=this.chart,c=this.options,b=b._labelPanes=b._labelPanes||{},d=this.options.labels;return this.chart.options._stock&&"yAxis"===this.coll&&(c=c.top+","+c.height,!b[c]&&d.enabled)?(15===d.x&&(d.x=0),void 0===d.align&&(d.align="right"),b[c]=1,"right"):a.call(this,[].slice.call(arguments,1))});F(G.prototype,"getPlotLinePath",function(a, +b,c,d,f,g){var n=this,q=this.isLinked&&!this.series?this.linkedParent.series:this.series,r=n.chart,u=r.renderer,v=n.left,w=n.top,y,x,A,B,C=[],D=[],E,F;if("colorAxis"===n.coll)return a.apply(this,[].slice.call(arguments,1));D=function(a){var b="xAxis"===a?"yAxis":"xAxis";a=n.options[b];return k(a)?[r[b][a]]:m(a)?[r.get(a)]:e(q,function(a){return a[b]})}(n.coll);l(n.isXAxis?r.yAxis:r.xAxis,function(a){if(p(a.options.id)?-1===a.options.id.indexOf("navigator"):1){var b=a.isXAxis?"yAxis":"xAxis",b=p(a.options[b])? +r[b][a.options[b]]:r[b][0];n===b&&D.push(a)}});E=D.length?[]:[n.isXAxis?r.yAxis[0]:r.xAxis[0]];l(D,function(a){-1===t(a,E)&&E.push(a)});F=h(g,n.translate(b,null,null,d));k(F)&&(n.horiz?l(E,function(a){var b;x=a.pos;B=x+a.len;y=A=Math.round(F+n.transB);if(yv+n.width)f?y=A=Math.min(Math.max(v,y),v+n.width):b=!0;b||C.push("M",y,x,"L",A,B)}):l(E,function(a){var b;y=a.pos;A=y+a.len;x=B=Math.round(w+n.height-F);if(xw+n.height)f?x=B=Math.min(Math.max(w,x),n.top+n.height):b=!0;b||C.push("M",y, +x,"L",A,B)}));return 0=e&&(x=-(l.translateX+b.width-e));l.attr({x:m+x,y:k,anchorX:g?m:this.opposite?0:a.chartWidth,anchorY:g?this.opposite?a.chartHeight:0:k+b.height/2})}});n.init=function(){A.apply(this,arguments);this.setCompare(this.options.compare)};n.setCompare=function(a){this.modifyValue= +"value"===a||"percent"===a?function(b,c){var d=this.compareValue;if(void 0!==b&&void 0!==d)return b="value"===a?b-d:b=b/d*100-100,c&&(c.change=b),b}:null;this.userOptions.compare=a;this.chart.hasRendered&&(this.isDirty=!0)};n.processData=function(){var a,b=-1,c,d,e,f;x.apply(this,arguments);if(this.xAxis&&this.processedYData)for(c=this.processedXData,d=this.processedYData,e=d.length,this.pointArrayMap&&(b=t("close",this.pointArrayMap),-1===b&&(b=t(this.pointValKey||"y",this.pointArrayMap))),a=0;a< +e-1;a++)if(f=-1=this.xAxis.min&&0!==f){this.compareValue=f;break}};F(n,"getExtremes",function(a){var b;a.apply(this,[].slice.call(arguments,1));this.modifyValue&&(b=[this.modifyValue(this.dataMin),this.modifyValue(this.dataMax)],this.dataMin=B(b),this.dataMax=D(b))});G.prototype.setCompare=function(a,b){this.isXAxis||(l(this.series,function(b){b.setCompare(a)}),h(b,!0)&&this.chart.redraw())};C.prototype.tooltipFormatter=function(b){b=b.replace("{point.change}",(0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=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))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(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&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(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&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(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 ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);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&&E){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=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(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(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===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]||se.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]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(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(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(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=se.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 D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.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 S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(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 qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.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)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.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),m(t)&&(t=t.call(e,n,S.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):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.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"===S.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"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(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)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(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?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.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)}}),S.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){S.fn[n]=function(e,t){return 0 '; + else + var expandButton = ''; + + return '' + expandButton + '' + ellipsedLabel({ name: item.name, parentClass: "nav-tooltip", childClass: "nav-label" }) + ''; +} + +function menuItemsForGroup(group, level, parent) { + var items = ''; + + if (level > 0) + items += menuItem(group, level - 1, parent, true); + + $.each(group.contents, function (contentName, content) { + if (content.type == 'GROUP') + items += menuItemsForGroup(content, level + 1, group.pathFormatted); + else if (content.type == 'REQUEST') + items += menuItem(content, level, group.pathFormatted); + }); + + return items; +} + +function setDetailsMenu(){ + $('.nav ul').append(menuItemsForGroup(stats, 0)); + $('.nav').expandable(); + $('.nav-tooltip').popover({trigger:'hover'}); +} + +function setGlobalMenu(){ + $('.nav ul') + .append('
  • Ranges
  • ') + .append('
  • Stats
  • ') + .append('
  • Active Users
  • ') + .append('
  • Requests / sec
  • ') + .append('
  • Responses / sec
  • '); +} + +function getLink(link){ + var a = link.split('/'); + return (a.length<=1)? link : a[a.length-1]; +} + +function expandUp(li) { + const parentId = li.attr("data-parent"); + if (parentId != "ROOT") { + const span = $('#' + parentId); + const parentLi = span.parents('li').first(); + span.expand(parentLi, false); + expandUp(parentLi); + } +} + +function setActiveMenu(){ + $('.nav a').each(function() { + const navA = $(this) + if(!navA.hasClass('expand-button') && navA.attr('href') == getLink(window.location.pathname)) { + const li = $(this).parents('li').first(); + li.addClass('on'); + expandUp(li); + return false; + } + }); +} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/stats.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/stats.js new file mode 100644 index 0000000..84ffcf9 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/stats.js @@ -0,0 +1,1523 @@ +var stats = { + type: "GROUP", +name: "All Requests", +path: "", +pathFormatted: "group_missing-name--1146707516", +stats: { + "name": "All Requests", + "numberOfRequests": { + "total": "5246", + "ok": "5243", + "ko": "3" + }, + "minResponseTime": { + "total": "24", + "ok": "24", + "ko": "10009" + }, + "maxResponseTime": { + "total": "10010", + "ok": "8436", + "ko": "10010" + }, + "meanResponseTime": { + "total": "392", + "ok": "386", + "ko": "10010" + }, + "standardDeviation": { + "total": "737", + "ok": "701", + "ko": "0" + }, + "percentiles1": { + "total": "84", + "ok": "84", + "ko": "10010" + }, + "percentiles2": { + "total": "369", + "ok": "368", + "ko": "10010" + }, + "percentiles3": { + "total": "1734", + "ok": "1722", + "ko": "10010" + }, + "percentiles4": { + "total": "3410", + "ok": "3340", + "ko": "10010" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 4364, + "percentage": 83 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 451, + "percentage": 9 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 428, + "percentage": 8 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 3, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "37.471", + "ok": "37.45", + "ko": "0.021" + } +}, +contents: { +"req_request-0-693933696": { + type: "REQUEST", + name: "request_0", +path: "request_0", +pathFormatted: "req_request-0-693933696", +stats: { + "name": "request_0", + "numberOfRequests": { + "total": "309", + "ok": "307", + "ko": "2" + }, + "minResponseTime": { + "total": "74", + "ok": "74", + "ko": "10009" + }, + "maxResponseTime": { + "total": "10010", + "ok": "3183", + "ko": "10010" + }, + "meanResponseTime": { + "total": "479", + "ok": "417", + "ko": "10010" + }, + "standardDeviation": { + "total": "1007", + "ok": "651", + "ko": "1" + }, + "percentiles1": { + "total": "142", + "ok": "139", + "ko": "10010" + }, + "percentiles2": { + "total": "378", + "ok": "377", + "ko": "10010" + }, + "percentiles3": { + "total": "1712", + "ok": "1488", + "ko": "10010" + }, + "percentiles4": { + "total": "3153", + "ok": "3142", + "ko": "10010" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 258, + "percentage": 83 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 21, + "percentage": 7 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 28, + "percentage": 9 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 2, + "percentage": 1 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.207", + "ok": "2.193", + "ko": "0.014" + } +} + },"req_request-1-693933697": { + type: "REQUEST", + name: "request_1", +path: "request_1", +pathFormatted: "req_request-1-693933697", +stats: { + "name": "request_1", + "numberOfRequests": { + "total": "307", + "ok": "307", + "ko": "0" + }, + "minResponseTime": { + "total": "36", + "ok": "36", + "ko": "-" + }, + "maxResponseTime": { + "total": "970", + "ok": "970", + "ko": "-" + }, + "meanResponseTime": { + "total": "97", + "ok": "97", + "ko": "-" + }, + "standardDeviation": { + "total": "123", + "ok": "123", + "ko": "-" + }, + "percentiles1": { + "total": "56", + "ok": "56", + "ko": "-" + }, + "percentiles2": { + "total": "101", + "ok": "101", + "ko": "-" + }, + "percentiles3": { + "total": "327", + "ok": "327", + "ko": "-" + }, + "percentiles4": { + "total": "700", + "ok": "700", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 305, + "percentage": 99 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 2, + "percentage": 1 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.193", + "ok": "2.193", + "ko": "-" + } +} + },"req_request-2-693933698": { + type: "REQUEST", + name: "request_2", +path: "request_2", +pathFormatted: "req_request-2-693933698", +stats: { + "name": "request_2", + "numberOfRequests": { + "total": "307", + "ok": "307", + "ko": "0" + }, + "minResponseTime": { + "total": "73", + "ok": "73", + "ko": "-" + }, + "maxResponseTime": { + "total": "3540", + "ok": "3540", + "ko": "-" + }, + "meanResponseTime": { + "total": "334", + "ok": "334", + "ko": "-" + }, + "standardDeviation": { + "total": "501", + "ok": "501", + "ko": "-" + }, + "percentiles1": { + "total": "127", + "ok": "127", + "ko": "-" + }, + "percentiles2": { + "total": "372", + "ok": "372", + "ko": "-" + }, + "percentiles3": { + "total": "1145", + "ok": "1145", + "ko": "-" + }, + "percentiles4": { + "total": "3123", + "ok": "3123", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 271, + "percentage": 88 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 24, + "percentage": 8 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 12, + "percentage": 4 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.193", + "ok": "2.193", + "ko": "-" + } +} + },"req_request-3-693933699": { + type: "REQUEST", + name: "request_3", +path: "request_3", +pathFormatted: "req_request-3-693933699", +stats: { + "name": "request_3", + "numberOfRequests": { + "total": "309", + "ok": "308", + "ko": "1" + }, + "minResponseTime": { + "total": "74", + "ok": "74", + "ko": "10010" + }, + "maxResponseTime": { + "total": "10010", + "ok": "3169", + "ko": "10010" + }, + "meanResponseTime": { + "total": "479", + "ok": "448", + "ko": "10010" + }, + "standardDeviation": { + "total": "823", + "ok": "620", + "ko": "0" + }, + "percentiles1": { + "total": "200", + "ok": "198", + "ko": "10010" + }, + "percentiles2": { + "total": "413", + "ok": "413", + "ko": "10010" + }, + "percentiles3": { + "total": "1478", + "ok": "1427", + "ko": "10010" + }, + "percentiles4": { + "total": "3123", + "ok": "3118", + "ko": "10010" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 251, + "percentage": 81 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 32, + "percentage": 10 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 25, + "percentage": 8 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 1, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.207", + "ok": "2.2", + "ko": "0.007" + } +} + },"req_request-5-693933701": { + type: "REQUEST", + name: "request_5", +path: "request_5", +pathFormatted: "req_request-5-693933701", +stats: { + "name": "request_5", + "numberOfRequests": { + "total": "308", + "ok": "308", + "ko": "0" + }, + "minResponseTime": { + "total": "296", + "ok": "296", + "ko": "-" + }, + "maxResponseTime": { + "total": "4512", + "ok": "4512", + "ko": "-" + }, + "meanResponseTime": { + "total": "1059", + "ok": "1059", + "ko": "-" + }, + "standardDeviation": { + "total": "702", + "ok": "702", + "ko": "-" + }, + "percentiles1": { + "total": "887", + "ok": "887", + "ko": "-" + }, + "percentiles2": { + "total": "1344", + "ok": "1344", + "ko": "-" + }, + "percentiles3": { + "total": "2300", + "ok": "2300", + "ko": "-" + }, + "percentiles4": { + "total": "3613", + "ok": "3613", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 139, + "percentage": 45 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 76, + "percentage": 25 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 93, + "percentage": 30 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.2", + "ok": "2.2", + "ko": "-" + } +} + },"req_request-6-693933702": { + type: "REQUEST", + name: "request_6", +path: "request_6", +pathFormatted: "req_request-6-693933702", +stats: { + "name": "request_6", + "numberOfRequests": { + "total": "308", + "ok": "308", + "ko": "0" + }, + "minResponseTime": { + "total": "391", + "ok": "391", + "ko": "-" + }, + "maxResponseTime": { + "total": "8436", + "ok": "8436", + "ko": "-" + }, + "meanResponseTime": { + "total": "1962", + "ok": "1962", + "ko": "-" + }, + "standardDeviation": { + "total": "1312", + "ok": "1312", + "ko": "-" + }, + "percentiles1": { + "total": "1611", + "ok": "1611", + "ko": "-" + }, + "percentiles2": { + "total": "2445", + "ok": "2445", + "ko": "-" + }, + "percentiles3": { + "total": "4528", + "ok": "4528", + "ko": "-" + }, + "percentiles4": { + "total": "6239", + "ok": "6239", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 45, + "percentage": 15 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 55, + "percentage": 18 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 208, + "percentage": 68 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.2", + "ok": "2.2", + "ko": "-" + } +} + },"req_request-4-693933700": { + type: "REQUEST", + name: "request_4", +path: "request_4", +pathFormatted: "req_request-4-693933700", +stats: { + "name": "request_4", + "numberOfRequests": { + "total": "308", + "ok": "308", + "ko": "0" + }, + "minResponseTime": { + "total": "112", + "ok": "112", + "ko": "-" + }, + "maxResponseTime": { + "total": "1979", + "ok": "1979", + "ko": "-" + }, + "meanResponseTime": { + "total": "365", + "ok": "365", + "ko": "-" + }, + "standardDeviation": { + "total": "249", + "ok": "249", + "ko": "-" + }, + "percentiles1": { + "total": "289", + "ok": "289", + "ko": "-" + }, + "percentiles2": { + "total": "455", + "ok": "455", + "ko": "-" + }, + "percentiles3": { + "total": "835", + "ok": "835", + "ko": "-" + }, + "percentiles4": { + "total": "1133", + "ok": "1133", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 286, + "percentage": 93 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 20, + "percentage": 6 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 2, + "percentage": 1 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.2", + "ok": "2.2", + "ko": "-" + } +} + },"req_request-7-693933703": { + type: "REQUEST", + name: "request_7", +path: "request_7", +pathFormatted: "req_request-7-693933703", +stats: { + "name": "request_7", + "numberOfRequests": { + "total": "309", + "ok": "309", + "ko": "0" + }, + "minResponseTime": { + "total": "37", + "ok": "37", + "ko": "-" + }, + "maxResponseTime": { + "total": "3126", + "ok": "3126", + "ko": "-" + }, + "meanResponseTime": { + "total": "295", + "ok": "295", + "ko": "-" + }, + "standardDeviation": { + "total": "502", + "ok": "502", + "ko": "-" + }, + "percentiles1": { + "total": "91", + "ok": "91", + "ko": "-" + }, + "percentiles2": { + "total": "329", + "ok": "329", + "ko": "-" + }, + "percentiles3": { + "total": "1394", + "ok": "1394", + "ko": "-" + }, + "percentiles4": { + "total": "3016", + "ok": "3016", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 270, + "percentage": 87 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 21, + "percentage": 7 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 18, + "percentage": 6 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.207", + "ok": "2.207", + "ko": "-" + } +} + },"req_request-8-693933704": { + type: "REQUEST", + name: "request_8", +path: "request_8", +pathFormatted: "req_request-8-693933704", +stats: { + "name": "request_8", + "numberOfRequests": { + "total": "309", + "ok": "309", + "ko": "0" + }, + "minResponseTime": { + "total": "74", + "ok": "74", + "ko": "-" + }, + "maxResponseTime": { + "total": "3142", + "ok": "3142", + "ko": "-" + }, + "meanResponseTime": { + "total": "279", + "ok": "279", + "ko": "-" + }, + "standardDeviation": { + "total": "493", + "ok": "493", + "ko": "-" + }, + "percentiles1": { + "total": "85", + "ok": "85", + "ko": "-" + }, + "percentiles2": { + "total": "132", + "ok": "132", + "ko": "-" + }, + "percentiles3": { + "total": "1103", + "ok": "1103", + "ko": "-" + }, + "percentiles4": { + "total": "3052", + "ok": "3052", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 270, + "percentage": 87 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 29, + "percentage": 9 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 10, + "percentage": 3 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.207", + "ok": "2.207", + "ko": "-" + } +} + },"req_request-9-693933705": { + type: "REQUEST", + name: "request_9", +path: "request_9", +pathFormatted: "req_request-9-693933705", +stats: { + "name": "request_9", + "numberOfRequests": { + "total": "309", + "ok": "309", + "ko": "0" + }, + "minResponseTime": { + "total": "74", + "ok": "74", + "ko": "-" + }, + "maxResponseTime": { + "total": "3125", + "ok": "3125", + "ko": "-" + }, + "meanResponseTime": { + "total": "280", + "ok": "280", + "ko": "-" + }, + "standardDeviation": { + "total": "418", + "ok": "418", + "ko": "-" + }, + "percentiles1": { + "total": "83", + "ok": "83", + "ko": "-" + }, + "percentiles2": { + "total": "128", + "ok": "128", + "ko": "-" + }, + "percentiles3": { + "total": "1098", + "ok": "1098", + "ko": "-" + }, + "percentiles4": { + "total": "1212", + "ok": "1212", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 257, + "percentage": 83 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 48, + "percentage": 16 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 4, + "percentage": 1 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.207", + "ok": "2.207", + "ko": "-" + } +} + },"req_request-10-37108175": { + type: "REQUEST", + name: "request_10", +path: "request_10", +pathFormatted: "req_request-10-37108175", +stats: { + "name": "request_10", + "numberOfRequests": { + "total": "309", + "ok": "309", + "ko": "0" + }, + "minResponseTime": { + "total": "76", + "ok": "76", + "ko": "-" + }, + "maxResponseTime": { + "total": "3337", + "ok": "3337", + "ko": "-" + }, + "meanResponseTime": { + "total": "278", + "ok": "278", + "ko": "-" + }, + "standardDeviation": { + "total": "513", + "ok": "513", + "ko": "-" + }, + "percentiles1": { + "total": "84", + "ok": "84", + "ko": "-" + }, + "percentiles2": { + "total": "104", + "ok": "104", + "ko": "-" + }, + "percentiles3": { + "total": "1096", + "ok": "1096", + "ko": "-" + }, + "percentiles4": { + "total": "3087", + "ok": "3087", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 264, + "percentage": 85 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 38, + "percentage": 12 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 7, + "percentage": 2 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.207", + "ok": "2.207", + "ko": "-" + } +} + },"req_request-11-37108176": { + type: "REQUEST", + name: "request_11", +path: "request_11", +pathFormatted: "req_request-11-37108176", +stats: { + "name": "request_11", + "numberOfRequests": { + "total": "309", + "ok": "309", + "ko": "0" + }, + "minResponseTime": { + "total": "38", + "ok": "38", + "ko": "-" + }, + "maxResponseTime": { + "total": "439", + "ok": "439", + "ko": "-" + }, + "meanResponseTime": { + "total": "49", + "ok": "49", + "ko": "-" + }, + "standardDeviation": { + "total": "41", + "ok": "41", + "ko": "-" + }, + "percentiles1": { + "total": "42", + "ok": "42", + "ko": "-" + }, + "percentiles2": { + "total": "45", + "ok": "45", + "ko": "-" + }, + "percentiles3": { + "total": "67", + "ok": "67", + "ko": "-" + }, + "percentiles4": { + "total": "327", + "ok": "327", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 309, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.207", + "ok": "2.207", + "ko": "-" + } +} + },"req_request-12-37108177": { + type: "REQUEST", + name: "request_12", +path: "request_12", +pathFormatted: "req_request-12-37108177", +stats: { + "name": "request_12", + "numberOfRequests": { + "total": "309", + "ok": "309", + "ko": "0" + }, + "minResponseTime": { + "total": "24", + "ok": "24", + "ko": "-" + }, + "maxResponseTime": { + "total": "3111", + "ok": "3111", + "ko": "-" + }, + "meanResponseTime": { + "total": "186", + "ok": "186", + "ko": "-" + }, + "standardDeviation": { + "total": "528", + "ok": "528", + "ko": "-" + }, + "percentiles1": { + "total": "30", + "ok": "30", + "ko": "-" + }, + "percentiles2": { + "total": "31", + "ok": "31", + "ko": "-" + }, + "percentiles3": { + "total": "1575", + "ok": "1575", + "ko": "-" + }, + "percentiles4": { + "total": "2760", + "ok": "2760", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 284, + "percentage": 92 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 6, + "percentage": 2 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 19, + "percentage": 6 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.207", + "ok": "2.207", + "ko": "-" + } +} + },"req_request-14-37108179": { + type: "REQUEST", + name: "request_14", +path: "request_14", +pathFormatted: "req_request-14-37108179", +stats: { + "name": "request_14", + "numberOfRequests": { + "total": "309", + "ok": "309", + "ko": "0" + }, + "minResponseTime": { + "total": "35", + "ok": "35", + "ko": "-" + }, + "maxResponseTime": { + "total": "1129", + "ok": "1129", + "ko": "-" + }, + "meanResponseTime": { + "total": "62", + "ok": "62", + "ko": "-" + }, + "standardDeviation": { + "total": "146", + "ok": "146", + "ko": "-" + }, + "percentiles1": { + "total": "39", + "ok": "39", + "ko": "-" + }, + "percentiles2": { + "total": "40", + "ok": "40", + "ko": "-" + }, + "percentiles3": { + "total": "82", + "ok": "82", + "ko": "-" + }, + "percentiles4": { + "total": "1094", + "ok": "1094", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 303, + "percentage": 98 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 6, + "percentage": 2 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.207", + "ok": "2.207", + "ko": "-" + } +} + },"req_request-15-37108180": { + type: "REQUEST", + name: "request_15", +path: "request_15", +pathFormatted: "req_request-15-37108180", +stats: { + "name": "request_15", + "numberOfRequests": { + "total": "309", + "ok": "309", + "ko": "0" + }, + "minResponseTime": { + "total": "38", + "ok": "38", + "ko": "-" + }, + "maxResponseTime": { + "total": "346", + "ok": "346", + "ko": "-" + }, + "meanResponseTime": { + "total": "45", + "ok": "45", + "ko": "-" + }, + "standardDeviation": { + "total": "18", + "ok": "18", + "ko": "-" + }, + "percentiles1": { + "total": "43", + "ok": "43", + "ko": "-" + }, + "percentiles2": { + "total": "45", + "ok": "45", + "ko": "-" + }, + "percentiles3": { + "total": "60", + "ok": "60", + "ko": "-" + }, + "percentiles4": { + "total": "76", + "ok": "76", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 309, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.207", + "ok": "2.207", + "ko": "-" + } +} + },"req_request-16-37108181": { + type: "REQUEST", + name: "request_16", +path: "request_16", +pathFormatted: "req_request-16-37108181", +stats: { + "name": "request_16", + "numberOfRequests": { + "total": "309", + "ok": "309", + "ko": "0" + }, + "minResponseTime": { + "total": "75", + "ok": "75", + "ko": "-" + }, + "maxResponseTime": { + "total": "2744", + "ok": "2744", + "ko": "-" + }, + "meanResponseTime": { + "total": "213", + "ok": "213", + "ko": "-" + }, + "standardDeviation": { + "total": "379", + "ok": "379", + "ko": "-" + }, + "percentiles1": { + "total": "82", + "ok": "82", + "ko": "-" + }, + "percentiles2": { + "total": "85", + "ok": "85", + "ko": "-" + }, + "percentiles3": { + "total": "1091", + "ok": "1091", + "ko": "-" + }, + "percentiles4": { + "total": "1099", + "ok": "1099", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 272, + "percentage": 88 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 35, + "percentage": 11 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 2, + "percentage": 1 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.207", + "ok": "2.207", + "ko": "-" + } +} + },"req_request-17-37108182": { + type: "REQUEST", + name: "request_17", +path: "request_17", +pathFormatted: "req_request-17-37108182", +stats: { + "name": "request_17", + "numberOfRequests": { + "total": "309", + "ok": "309", + "ko": "0" + }, + "minResponseTime": { + "total": "74", + "ok": "74", + "ko": "-" + }, + "maxResponseTime": { + "total": "1103", + "ok": "1103", + "ko": "-" + }, + "meanResponseTime": { + "total": "205", + "ok": "205", + "ko": "-" + }, + "standardDeviation": { + "total": "332", + "ok": "332", + "ko": "-" + }, + "percentiles1": { + "total": "81", + "ok": "81", + "ko": "-" + }, + "percentiles2": { + "total": "83", + "ok": "83", + "ko": "-" + }, + "percentiles3": { + "total": "1092", + "ok": "1092", + "ko": "-" + }, + "percentiles4": { + "total": "1097", + "ok": "1097", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 271, + "percentage": 88 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 38, + "percentage": 12 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.207", + "ok": "2.207", + "ko": "-" + } +} + } +} + +} + +function fillStats(stat){ + $("#numberOfRequests").append(stat.numberOfRequests.total); + $("#numberOfRequestsOK").append(stat.numberOfRequests.ok); + $("#numberOfRequestsKO").append(stat.numberOfRequests.ko); + + $("#minResponseTime").append(stat.minResponseTime.total); + $("#minResponseTimeOK").append(stat.minResponseTime.ok); + $("#minResponseTimeKO").append(stat.minResponseTime.ko); + + $("#maxResponseTime").append(stat.maxResponseTime.total); + $("#maxResponseTimeOK").append(stat.maxResponseTime.ok); + $("#maxResponseTimeKO").append(stat.maxResponseTime.ko); + + $("#meanResponseTime").append(stat.meanResponseTime.total); + $("#meanResponseTimeOK").append(stat.meanResponseTime.ok); + $("#meanResponseTimeKO").append(stat.meanResponseTime.ko); + + $("#standardDeviation").append(stat.standardDeviation.total); + $("#standardDeviationOK").append(stat.standardDeviation.ok); + $("#standardDeviationKO").append(stat.standardDeviation.ko); + + $("#percentiles1").append(stat.percentiles1.total); + $("#percentiles1OK").append(stat.percentiles1.ok); + $("#percentiles1KO").append(stat.percentiles1.ko); + + $("#percentiles2").append(stat.percentiles2.total); + $("#percentiles2OK").append(stat.percentiles2.ok); + $("#percentiles2KO").append(stat.percentiles2.ko); + + $("#percentiles3").append(stat.percentiles3.total); + $("#percentiles3OK").append(stat.percentiles3.ok); + $("#percentiles3KO").append(stat.percentiles3.ko); + + $("#percentiles4").append(stat.percentiles4.total); + $("#percentiles4OK").append(stat.percentiles4.ok); + $("#percentiles4KO").append(stat.percentiles4.ko); + + $("#meanNumberOfRequestsPerSecond").append(stat.meanNumberOfRequestsPerSecond.total); + $("#meanNumberOfRequestsPerSecondOK").append(stat.meanNumberOfRequestsPerSecond.ok); + $("#meanNumberOfRequestsPerSecondKO").append(stat.meanNumberOfRequestsPerSecond.ko); +} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/stats.json b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/stats.json new file mode 100644 index 0000000..a602e15 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/stats.json @@ -0,0 +1,1481 @@ +{ + "type": "GROUP", +"name": "All Requests", +"path": "", +"pathFormatted": "group_missing-name--1146707516", +"stats": { + "name": "All Requests", + "numberOfRequests": { + "total": 5246, + "ok": 5243, + "ko": 3 + }, + "minResponseTime": { + "total": 24, + "ok": 24, + "ko": 10009 + }, + "maxResponseTime": { + "total": 10010, + "ok": 8436, + "ko": 10010 + }, + "meanResponseTime": { + "total": 392, + "ok": 386, + "ko": 10010 + }, + "standardDeviation": { + "total": 737, + "ok": 701, + "ko": 0 + }, + "percentiles1": { + "total": 84, + "ok": 84, + "ko": 10010 + }, + "percentiles2": { + "total": 369, + "ok": 368, + "ko": 10010 + }, + "percentiles3": { + "total": 1734, + "ok": 1722, + "ko": 10010 + }, + "percentiles4": { + "total": 3410, + "ok": 3340, + "ko": 10010 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 4364, + "percentage": 83 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 451, + "percentage": 9 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 428, + "percentage": 8 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 3, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 37.47142857142857, + "ok": 37.45, + "ko": 0.02142857142857143 + } +}, +"contents": { +"req_request-0-693933696": { + "type": "REQUEST", + "name": "request_0", +"path": "request_0", +"pathFormatted": "req_request-0-693933696", +"stats": { + "name": "request_0", + "numberOfRequests": { + "total": 309, + "ok": 307, + "ko": 2 + }, + "minResponseTime": { + "total": 74, + "ok": 74, + "ko": 10009 + }, + "maxResponseTime": { + "total": 10010, + "ok": 3183, + "ko": 10010 + }, + "meanResponseTime": { + "total": 479, + "ok": 417, + "ko": 10010 + }, + "standardDeviation": { + "total": 1007, + "ok": 651, + "ko": 1 + }, + "percentiles1": { + "total": 142, + "ok": 139, + "ko": 10010 + }, + "percentiles2": { + "total": 378, + "ok": 377, + "ko": 10010 + }, + "percentiles3": { + "total": 1712, + "ok": 1488, + "ko": 10010 + }, + "percentiles4": { + "total": 3153, + "ok": 3142, + "ko": 10010 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 258, + "percentage": 83 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 21, + "percentage": 7 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 28, + "percentage": 9 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 2, + "percentage": 1 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.2071428571428573, + "ok": 2.192857142857143, + "ko": 0.014285714285714285 + } +} + },"req_request-1-693933697": { + "type": "REQUEST", + "name": "request_1", +"path": "request_1", +"pathFormatted": "req_request-1-693933697", +"stats": { + "name": "request_1", + "numberOfRequests": { + "total": 307, + "ok": 307, + "ko": 0 + }, + "minResponseTime": { + "total": 36, + "ok": 36, + "ko": 0 + }, + "maxResponseTime": { + "total": 970, + "ok": 970, + "ko": 0 + }, + "meanResponseTime": { + "total": 97, + "ok": 97, + "ko": 0 + }, + "standardDeviation": { + "total": 123, + "ok": 123, + "ko": 0 + }, + "percentiles1": { + "total": 56, + "ok": 56, + "ko": 0 + }, + "percentiles2": { + "total": 101, + "ok": 101, + "ko": 0 + }, + "percentiles3": { + "total": 327, + "ok": 327, + "ko": 0 + }, + "percentiles4": { + "total": 700, + "ok": 700, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 305, + "percentage": 99 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 2, + "percentage": 1 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.192857142857143, + "ok": 2.192857142857143, + "ko": 0 + } +} + },"req_request-2-693933698": { + "type": "REQUEST", + "name": "request_2", +"path": "request_2", +"pathFormatted": "req_request-2-693933698", +"stats": { + "name": "request_2", + "numberOfRequests": { + "total": 307, + "ok": 307, + "ko": 0 + }, + "minResponseTime": { + "total": 73, + "ok": 73, + "ko": 0 + }, + "maxResponseTime": { + "total": 3540, + "ok": 3540, + "ko": 0 + }, + "meanResponseTime": { + "total": 334, + "ok": 334, + "ko": 0 + }, + "standardDeviation": { + "total": 501, + "ok": 501, + "ko": 0 + }, + "percentiles1": { + "total": 127, + "ok": 127, + "ko": 0 + }, + "percentiles2": { + "total": 372, + "ok": 372, + "ko": 0 + }, + "percentiles3": { + "total": 1145, + "ok": 1145, + "ko": 0 + }, + "percentiles4": { + "total": 3123, + "ok": 3123, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 271, + "percentage": 88 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 24, + "percentage": 8 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 12, + "percentage": 4 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.192857142857143, + "ok": 2.192857142857143, + "ko": 0 + } +} + },"req_request-3-693933699": { + "type": "REQUEST", + "name": "request_3", +"path": "request_3", +"pathFormatted": "req_request-3-693933699", +"stats": { + "name": "request_3", + "numberOfRequests": { + "total": 309, + "ok": 308, + "ko": 1 + }, + "minResponseTime": { + "total": 74, + "ok": 74, + "ko": 10010 + }, + "maxResponseTime": { + "total": 10010, + "ok": 3169, + "ko": 10010 + }, + "meanResponseTime": { + "total": 479, + "ok": 448, + "ko": 10010 + }, + "standardDeviation": { + "total": 823, + "ok": 620, + "ko": 0 + }, + "percentiles1": { + "total": 200, + "ok": 198, + "ko": 10010 + }, + "percentiles2": { + "total": 413, + "ok": 413, + "ko": 10010 + }, + "percentiles3": { + "total": 1478, + "ok": 1427, + "ko": 10010 + }, + "percentiles4": { + "total": 3123, + "ok": 3118, + "ko": 10010 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 251, + "percentage": 81 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 32, + "percentage": 10 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 25, + "percentage": 8 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 1, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.2071428571428573, + "ok": 2.2, + "ko": 0.007142857142857143 + } +} + },"req_request-5-693933701": { + "type": "REQUEST", + "name": "request_5", +"path": "request_5", +"pathFormatted": "req_request-5-693933701", +"stats": { + "name": "request_5", + "numberOfRequests": { + "total": 308, + "ok": 308, + "ko": 0 + }, + "minResponseTime": { + "total": 296, + "ok": 296, + "ko": 0 + }, + "maxResponseTime": { + "total": 4512, + "ok": 4512, + "ko": 0 + }, + "meanResponseTime": { + "total": 1059, + "ok": 1059, + "ko": 0 + }, + "standardDeviation": { + "total": 702, + "ok": 702, + "ko": 0 + }, + "percentiles1": { + "total": 887, + "ok": 887, + "ko": 0 + }, + "percentiles2": { + "total": 1344, + "ok": 1344, + "ko": 0 + }, + "percentiles3": { + "total": 2300, + "ok": 2300, + "ko": 0 + }, + "percentiles4": { + "total": 3613, + "ok": 3613, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 139, + "percentage": 45 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 76, + "percentage": 25 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 93, + "percentage": 30 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.2, + "ok": 2.2, + "ko": 0 + } +} + },"req_request-6-693933702": { + "type": "REQUEST", + "name": "request_6", +"path": "request_6", +"pathFormatted": "req_request-6-693933702", +"stats": { + "name": "request_6", + "numberOfRequests": { + "total": 308, + "ok": 308, + "ko": 0 + }, + "minResponseTime": { + "total": 391, + "ok": 391, + "ko": 0 + }, + "maxResponseTime": { + "total": 8436, + "ok": 8436, + "ko": 0 + }, + "meanResponseTime": { + "total": 1962, + "ok": 1962, + "ko": 0 + }, + "standardDeviation": { + "total": 1312, + "ok": 1312, + "ko": 0 + }, + "percentiles1": { + "total": 1611, + "ok": 1611, + "ko": 0 + }, + "percentiles2": { + "total": 2445, + "ok": 2445, + "ko": 0 + }, + "percentiles3": { + "total": 4528, + "ok": 4528, + "ko": 0 + }, + "percentiles4": { + "total": 6239, + "ok": 6239, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 45, + "percentage": 15 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 55, + "percentage": 18 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 208, + "percentage": 68 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.2, + "ok": 2.2, + "ko": 0 + } +} + },"req_request-4-693933700": { + "type": "REQUEST", + "name": "request_4", +"path": "request_4", +"pathFormatted": "req_request-4-693933700", +"stats": { + "name": "request_4", + "numberOfRequests": { + "total": 308, + "ok": 308, + "ko": 0 + }, + "minResponseTime": { + "total": 112, + "ok": 112, + "ko": 0 + }, + "maxResponseTime": { + "total": 1979, + "ok": 1979, + "ko": 0 + }, + "meanResponseTime": { + "total": 365, + "ok": 365, + "ko": 0 + }, + "standardDeviation": { + "total": 249, + "ok": 249, + "ko": 0 + }, + "percentiles1": { + "total": 289, + "ok": 289, + "ko": 0 + }, + "percentiles2": { + "total": 455, + "ok": 455, + "ko": 0 + }, + "percentiles3": { + "total": 835, + "ok": 835, + "ko": 0 + }, + "percentiles4": { + "total": 1133, + "ok": 1133, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 286, + "percentage": 93 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 20, + "percentage": 6 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 2, + "percentage": 1 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.2, + "ok": 2.2, + "ko": 0 + } +} + },"req_request-7-693933703": { + "type": "REQUEST", + "name": "request_7", +"path": "request_7", +"pathFormatted": "req_request-7-693933703", +"stats": { + "name": "request_7", + "numberOfRequests": { + "total": 309, + "ok": 309, + "ko": 0 + }, + "minResponseTime": { + "total": 37, + "ok": 37, + "ko": 0 + }, + "maxResponseTime": { + "total": 3126, + "ok": 3126, + "ko": 0 + }, + "meanResponseTime": { + "total": 295, + "ok": 295, + "ko": 0 + }, + "standardDeviation": { + "total": 502, + "ok": 502, + "ko": 0 + }, + "percentiles1": { + "total": 91, + "ok": 91, + "ko": 0 + }, + "percentiles2": { + "total": 329, + "ok": 329, + "ko": 0 + }, + "percentiles3": { + "total": 1394, + "ok": 1394, + "ko": 0 + }, + "percentiles4": { + "total": 3016, + "ok": 3016, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 270, + "percentage": 87 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 21, + "percentage": 7 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 18, + "percentage": 6 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.2071428571428573, + "ok": 2.2071428571428573, + "ko": 0 + } +} + },"req_request-8-693933704": { + "type": "REQUEST", + "name": "request_8", +"path": "request_8", +"pathFormatted": "req_request-8-693933704", +"stats": { + "name": "request_8", + "numberOfRequests": { + "total": 309, + "ok": 309, + "ko": 0 + }, + "minResponseTime": { + "total": 74, + "ok": 74, + "ko": 0 + }, + "maxResponseTime": { + "total": 3142, + "ok": 3142, + "ko": 0 + }, + "meanResponseTime": { + "total": 279, + "ok": 279, + "ko": 0 + }, + "standardDeviation": { + "total": 493, + "ok": 493, + "ko": 0 + }, + "percentiles1": { + "total": 85, + "ok": 85, + "ko": 0 + }, + "percentiles2": { + "total": 132, + "ok": 132, + "ko": 0 + }, + "percentiles3": { + "total": 1103, + "ok": 1103, + "ko": 0 + }, + "percentiles4": { + "total": 3052, + "ok": 3052, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 270, + "percentage": 87 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 29, + "percentage": 9 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 10, + "percentage": 3 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.2071428571428573, + "ok": 2.2071428571428573, + "ko": 0 + } +} + },"req_request-9-693933705": { + "type": "REQUEST", + "name": "request_9", +"path": "request_9", +"pathFormatted": "req_request-9-693933705", +"stats": { + "name": "request_9", + "numberOfRequests": { + "total": 309, + "ok": 309, + "ko": 0 + }, + "minResponseTime": { + "total": 74, + "ok": 74, + "ko": 0 + }, + "maxResponseTime": { + "total": 3125, + "ok": 3125, + "ko": 0 + }, + "meanResponseTime": { + "total": 280, + "ok": 280, + "ko": 0 + }, + "standardDeviation": { + "total": 418, + "ok": 418, + "ko": 0 + }, + "percentiles1": { + "total": 83, + "ok": 83, + "ko": 0 + }, + "percentiles2": { + "total": 128, + "ok": 128, + "ko": 0 + }, + "percentiles3": { + "total": 1098, + "ok": 1098, + "ko": 0 + }, + "percentiles4": { + "total": 1212, + "ok": 1212, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 257, + "percentage": 83 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 48, + "percentage": 16 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 4, + "percentage": 1 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.2071428571428573, + "ok": 2.2071428571428573, + "ko": 0 + } +} + },"req_request-10-37108175": { + "type": "REQUEST", + "name": "request_10", +"path": "request_10", +"pathFormatted": "req_request-10-37108175", +"stats": { + "name": "request_10", + "numberOfRequests": { + "total": 309, + "ok": 309, + "ko": 0 + }, + "minResponseTime": { + "total": 76, + "ok": 76, + "ko": 0 + }, + "maxResponseTime": { + "total": 3337, + "ok": 3337, + "ko": 0 + }, + "meanResponseTime": { + "total": 278, + "ok": 278, + "ko": 0 + }, + "standardDeviation": { + "total": 513, + "ok": 513, + "ko": 0 + }, + "percentiles1": { + "total": 84, + "ok": 84, + "ko": 0 + }, + "percentiles2": { + "total": 104, + "ok": 104, + "ko": 0 + }, + "percentiles3": { + "total": 1096, + "ok": 1096, + "ko": 0 + }, + "percentiles4": { + "total": 3087, + "ok": 3087, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 264, + "percentage": 85 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 38, + "percentage": 12 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 7, + "percentage": 2 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.2071428571428573, + "ok": 2.2071428571428573, + "ko": 0 + } +} + },"req_request-11-37108176": { + "type": "REQUEST", + "name": "request_11", +"path": "request_11", +"pathFormatted": "req_request-11-37108176", +"stats": { + "name": "request_11", + "numberOfRequests": { + "total": 309, + "ok": 309, + "ko": 0 + }, + "minResponseTime": { + "total": 38, + "ok": 38, + "ko": 0 + }, + "maxResponseTime": { + "total": 439, + "ok": 439, + "ko": 0 + }, + "meanResponseTime": { + "total": 49, + "ok": 49, + "ko": 0 + }, + "standardDeviation": { + "total": 41, + "ok": 41, + "ko": 0 + }, + "percentiles1": { + "total": 42, + "ok": 42, + "ko": 0 + }, + "percentiles2": { + "total": 45, + "ok": 45, + "ko": 0 + }, + "percentiles3": { + "total": 67, + "ok": 67, + "ko": 0 + }, + "percentiles4": { + "total": 327, + "ok": 327, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 309, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.2071428571428573, + "ok": 2.2071428571428573, + "ko": 0 + } +} + },"req_request-12-37108177": { + "type": "REQUEST", + "name": "request_12", +"path": "request_12", +"pathFormatted": "req_request-12-37108177", +"stats": { + "name": "request_12", + "numberOfRequests": { + "total": 309, + "ok": 309, + "ko": 0 + }, + "minResponseTime": { + "total": 24, + "ok": 24, + "ko": 0 + }, + "maxResponseTime": { + "total": 3111, + "ok": 3111, + "ko": 0 + }, + "meanResponseTime": { + "total": 186, + "ok": 186, + "ko": 0 + }, + "standardDeviation": { + "total": 528, + "ok": 528, + "ko": 0 + }, + "percentiles1": { + "total": 30, + "ok": 30, + "ko": 0 + }, + "percentiles2": { + "total": 31, + "ok": 31, + "ko": 0 + }, + "percentiles3": { + "total": 1575, + "ok": 1575, + "ko": 0 + }, + "percentiles4": { + "total": 2760, + "ok": 2760, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 284, + "percentage": 92 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 6, + "percentage": 2 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 19, + "percentage": 6 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.2071428571428573, + "ok": 2.2071428571428573, + "ko": 0 + } +} + },"req_request-14-37108179": { + "type": "REQUEST", + "name": "request_14", +"path": "request_14", +"pathFormatted": "req_request-14-37108179", +"stats": { + "name": "request_14", + "numberOfRequests": { + "total": 309, + "ok": 309, + "ko": 0 + }, + "minResponseTime": { + "total": 35, + "ok": 35, + "ko": 0 + }, + "maxResponseTime": { + "total": 1129, + "ok": 1129, + "ko": 0 + }, + "meanResponseTime": { + "total": 62, + "ok": 62, + "ko": 0 + }, + "standardDeviation": { + "total": 146, + "ok": 146, + "ko": 0 + }, + "percentiles1": { + "total": 39, + "ok": 39, + "ko": 0 + }, + "percentiles2": { + "total": 40, + "ok": 40, + "ko": 0 + }, + "percentiles3": { + "total": 82, + "ok": 82, + "ko": 0 + }, + "percentiles4": { + "total": 1094, + "ok": 1094, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 303, + "percentage": 98 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 6, + "percentage": 2 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.2071428571428573, + "ok": 2.2071428571428573, + "ko": 0 + } +} + },"req_request-15-37108180": { + "type": "REQUEST", + "name": "request_15", +"path": "request_15", +"pathFormatted": "req_request-15-37108180", +"stats": { + "name": "request_15", + "numberOfRequests": { + "total": 309, + "ok": 309, + "ko": 0 + }, + "minResponseTime": { + "total": 38, + "ok": 38, + "ko": 0 + }, + "maxResponseTime": { + "total": 346, + "ok": 346, + "ko": 0 + }, + "meanResponseTime": { + "total": 45, + "ok": 45, + "ko": 0 + }, + "standardDeviation": { + "total": 18, + "ok": 18, + "ko": 0 + }, + "percentiles1": { + "total": 43, + "ok": 43, + "ko": 0 + }, + "percentiles2": { + "total": 45, + "ok": 45, + "ko": 0 + }, + "percentiles3": { + "total": 60, + "ok": 60, + "ko": 0 + }, + "percentiles4": { + "total": 76, + "ok": 76, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 309, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.2071428571428573, + "ok": 2.2071428571428573, + "ko": 0 + } +} + },"req_request-16-37108181": { + "type": "REQUEST", + "name": "request_16", +"path": "request_16", +"pathFormatted": "req_request-16-37108181", +"stats": { + "name": "request_16", + "numberOfRequests": { + "total": 309, + "ok": 309, + "ko": 0 + }, + "minResponseTime": { + "total": 75, + "ok": 75, + "ko": 0 + }, + "maxResponseTime": { + "total": 2744, + "ok": 2744, + "ko": 0 + }, + "meanResponseTime": { + "total": 213, + "ok": 213, + "ko": 0 + }, + "standardDeviation": { + "total": 379, + "ok": 379, + "ko": 0 + }, + "percentiles1": { + "total": 82, + "ok": 82, + "ko": 0 + }, + "percentiles2": { + "total": 85, + "ok": 85, + "ko": 0 + }, + "percentiles3": { + "total": 1091, + "ok": 1091, + "ko": 0 + }, + "percentiles4": { + "total": 1099, + "ok": 1099, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 272, + "percentage": 88 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 35, + "percentage": 11 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 2, + "percentage": 1 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.2071428571428573, + "ok": 2.2071428571428573, + "ko": 0 + } +} + },"req_request-17-37108182": { + "type": "REQUEST", + "name": "request_17", +"path": "request_17", +"pathFormatted": "req_request-17-37108182", +"stats": { + "name": "request_17", + "numberOfRequests": { + "total": 309, + "ok": 309, + "ko": 0 + }, + "minResponseTime": { + "total": 74, + "ok": 74, + "ko": 0 + }, + "maxResponseTime": { + "total": 1103, + "ok": 1103, + "ko": 0 + }, + "meanResponseTime": { + "total": 205, + "ok": 205, + "ko": 0 + }, + "standardDeviation": { + "total": 332, + "ok": 332, + "ko": 0 + }, + "percentiles1": { + "total": 81, + "ok": 81, + "ko": 0 + }, + "percentiles2": { + "total": 83, + "ok": 83, + "ko": 0 + }, + "percentiles3": { + "total": 1092, + "ok": 1092, + "ko": 0 + }, + "percentiles4": { + "total": 1097, + "ok": 1097, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 271, + "percentage": 88 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 38, + "percentage": 12 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.2071428571428573, + "ok": 2.2071428571428573, + "ko": 0 + } +} + } +} + +} \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/theme.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/theme.js new file mode 100644 index 0000000..b95a7b3 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/theme.js @@ -0,0 +1,127 @@ +/* + * Copyright 2011-2022 Gatling Corp + * + * Licensed under the Gatling Highcharts License + */ +Highcharts.theme = { + chart: { + backgroundColor: '#f7f7f7', + borderWidth: 0, + borderRadius: 8, + plotBackgroundColor: null, + plotShadow: false, + plotBorderWidth: 0 + }, + xAxis: { + gridLineWidth: 0, + lineColor: '#666', + tickColor: '#666', + labels: { + style: { + color: '#666' + } + }, + title: { + style: { + color: '#666' + } + } + }, + yAxis: { + alternateGridColor: null, + minorTickInterval: null, + gridLineColor: '#999', + lineWidth: 0, + tickWidth: 0, + labels: { + style: { + color: '#666', + fontWeight: 'bold' + } + }, + title: { + style: { + color: '#666', + font: 'bold 12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif' + } + } + }, + labels: { + style: { + color: '#CCC' + } + }, + + + rangeSelector: { + buttonTheme: { + fill: '#cfc9c6', + stroke: '#000000', + style: { + color: '#34332e', + fontWeight: 'bold', + borderColor: '#b2b2a9' + }, + states: { + hover: { + fill: '#92918C', + stroke: '#000000', + style: { + color: '#34332e', + fontWeight: 'bold', + borderColor: '#8b897d' + } + }, + select: { + fill: '#E37400', + stroke: '#000000', + style: { + color: '#FFF' + } + } + } + }, + inputStyle: { + backgroundColor: '#333', + color: 'silver' + }, + labelStyle: { + color: '#8b897d' + } + }, + + navigator: { + handles: { + backgroundColor: '#f7f7f7', + borderColor: '#92918C' + }, + outlineColor: '#92918C', + outlineWidth: 1, + maskFill: 'rgba(146, 145, 140, 0.5)', + series: { + color: '#5E7BE2', + lineColor: '#5E7BE2' + } + }, + + scrollbar: { + buttonBackgroundColor: '#f7f7f7', + buttonBorderWidth: 1, + buttonBorderColor: '#92918C', + buttonArrowColor: '#92918C', + buttonBorderRadius: 2, + + barBorderWidth: 1, + barBorderRadius: 0, + barBackgroundColor: '#92918C', + barBorderColor: '#92918C', + + rifleColor: '#92918C', + + trackBackgroundColor: '#b0b0a8', + trackBorderWidth: 1, + trackBorderColor: '#b0b0a8' + } +}; + +Highcharts.setOptions(Highcharts.theme); diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/unpack.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/unpack.js new file mode 100644 index 0000000..883c33e --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/js/unpack.js @@ -0,0 +1,38 @@ +'use strict'; + +var unpack = function (array) { + var findNbSeries = function (array) { + var currentPlotPack; + var length = array.length; + + for (var i = 0; i < length; i++) { + currentPlotPack = array[i][1]; + if(currentPlotPack !== null) { + return currentPlotPack.length; + } + } + return 0; + }; + + var i, j; + var nbPlots = array.length; + var nbSeries = findNbSeries(array); + + // Prepare unpacked array + var unpackedArray = new Array(nbSeries); + + for (i = 0; i < nbSeries; i++) { + unpackedArray[i] = new Array(nbPlots); + } + + // Unpack the array + for (i = 0; i < nbPlots; i++) { + var timestamp = array[i][0]; + var values = array[i][1]; + for (j = 0; j < nbSeries; j++) { + unpackedArray[j][i] = [timestamp * 1000, values === null ? null : values[j]]; + } + } + + return unpackedArray; +}; diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-0-693933696.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-0-693933696.html new file mode 100644 index 0000000..d073902 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-0-693933696.html @@ -0,0 +1,925 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_0 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-1-693933697.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-1-693933697.html new file mode 100644 index 0000000..ba7319f --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-1-693933697.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_1 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-10-37108175.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-10-37108175.html new file mode 100644 index 0000000..987853b --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-10-37108175.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_10 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-11-37108176.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-11-37108176.html new file mode 100644 index 0000000..671ca8f --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-11-37108176.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_11 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-12-37108177.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-12-37108177.html new file mode 100644 index 0000000..96043a3 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-12-37108177.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_12 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-14-37108179.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-14-37108179.html new file mode 100644 index 0000000..a623b7a --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-14-37108179.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_14 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-15-37108180.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-15-37108180.html new file mode 100644 index 0000000..e961e61 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-15-37108180.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_15 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-16-37108181.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-16-37108181.html new file mode 100644 index 0000000..20d78ed --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-16-37108181.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_16 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-17-37108182.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-17-37108182.html new file mode 100644 index 0000000..d73bfbc --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-17-37108182.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_17 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-2-693933698.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-2-693933698.html new file mode 100644 index 0000000..9c5d25e --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-2-693933698.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_2 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-3-693933699.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-3-693933699.html new file mode 100644 index 0000000..de3d6f8 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-3-693933699.html @@ -0,0 +1,925 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_3 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-4-693933700.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-4-693933700.html new file mode 100644 index 0000000..23aacc9 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-4-693933700.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_4 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-5-693933701.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-5-693933701.html new file mode 100644 index 0000000..3f2822c --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-5-693933701.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_5 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-6-693933702.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-6-693933702.html new file mode 100644 index 0000000..89205ec --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-6-693933702.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_6 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-7-693933703.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-7-693933703.html new file mode 100644 index 0000000..9a00c24 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-7-693933703.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_7 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-8-693933704.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-8-693933704.html new file mode 100644 index 0000000..7d1febf --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-8-693933704.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_8 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-9-693933705.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-9-693933705.html new file mode 100644 index 0000000..878ed1c --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/req_request-9-693933705.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_9 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/bootstrap.min.css b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/bootstrap.min.css new file mode 100644 index 0000000..76a2b9b --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/bootstrap.min.css @@ -0,0 +1,27 @@ +.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;} +.clearfix:after{clear:both;} +.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;} +.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} +.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);} +.tooltip.top{margin-top:-3px;} +.tooltip.right{margin-left:3px;} +.tooltip.bottom{margin-top:3px;} +.tooltip.left{margin-left:-3px;} +.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;} +.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000;} +.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000;} +.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000;} +.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000;} +.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:750px;padding:1px;background-color:#ffffff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);}.popover.top{margin-top:-10px;} +.popover.right{margin-left:10px;} +.popover.bottom{margin-top:10px;} +.popover.left{margin-left:-10px;} +.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;} +.popover-content{padding:9px 14px;}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0;} +.popover .arrow,.popover .arrow:after{position:absolute;display:inline-block;width:0;height:0;border-color:transparent;border-style:solid;} +.popover .arrow:after{content:"";z-index:-1;} +.popover.top .arrow{bottom:-10px;left:50%;margin-left:-10px;border-width:10px 10px 0;border-top-color:#ffffff;}.popover.top .arrow:after{border-width:11px 11px 0;border-top-color:rgba(0, 0, 0, 0.25);bottom:-1px;left:-11px;} +.popover.right .arrow{top:50%;left:-10px;margin-top:-10px;border-width:10px 10px 10px 0;border-right-color:#ffffff;}.popover.right .arrow:after{border-width:11px 11px 11px 0;border-right-color:rgba(0, 0, 0, 0.25);bottom:-11px;left:-1px;} +.popover.bottom .arrow{top:-10px;left:50%;margin-left:-10px;border-width:0 10px 10px;border-bottom-color:#ffffff;}.popover.bottom .arrow:after{border-width:0 11px 11px;border-bottom-color:rgba(0, 0, 0, 0.25);top:-1px;left:-11px;} +.popover.left .arrow{top:50%;right:-10px;margin-top:-10px;border-width:10px 0 10px 10px;border-left-color:#ffffff;}.popover.left .arrow:after{border-width:11px 0 11px 11px;border-left-color:rgba(0, 0, 0, 0.25);bottom:-11px;right:-1px;} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/close.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/close.svg new file mode 100644 index 0000000..c161bb9 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/close.svg @@ -0,0 +1,3 @@ + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/executions.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/executions.svg new file mode 100644 index 0000000..84068cd --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/executions.svg @@ -0,0 +1,3 @@ + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/expand.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/expand.svg new file mode 100644 index 0000000..f6e75e0 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/expand.svg @@ -0,0 +1,38 @@ + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/favicon.ico b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/favicon.ico new file mode 100644 index 0000000..d2d20e1 Binary files /dev/null and b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/favicon.ico differ diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/fullscreen.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/fullscreen.svg new file mode 100644 index 0000000..91f3b27 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/fullscreen.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/logo-dark.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/logo-dark.svg new file mode 100644 index 0000000..7eb4d51 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/logo-dark.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/logo-enterprise-dark.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/logo-enterprise-dark.svg new file mode 100644 index 0000000..1127d75 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/logo-enterprise-dark.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/logo-enterprise-light.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/logo-enterprise-light.svg new file mode 100644 index 0000000..4a6e1de --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/logo-enterprise-light.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/logo-light.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/logo-light.svg new file mode 100644 index 0000000..f519eef --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/logo-light.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/sort-down.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/sort-down.svg new file mode 100644 index 0000000..db58a09 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/sort-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/sort-up.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/sort-up.svg new file mode 100644 index 0000000..bba9d84 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/sort-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/sort.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/sort.svg new file mode 100644 index 0000000..43b658e --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/sort.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/style.css b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/style.css new file mode 100644 index 0000000..edc9626 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-1cpu/style/style.css @@ -0,0 +1,1199 @@ +/* + * Copyright 2011-2024 GatlingCorp (https://gatling.io) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +:root { + --gatling-background-color: #f2f2f2; + --gatling-background-light-color: #f7f7f7; + --gatling-border-color: #dddddd; + --gatling-blue-color: #4a9fe5; + --gatling-dark-blue-color: #24275e; + --gatling-danger-color: #f15b4f; + --gatling-danger-light-color: #f5d1ce; + --gatling-enterprise-color: #6161d6; + --gatling-enterprise-light-color: #c4c4ed; + --gatling-gray-medium-color: #bbb; + --gatling-hover-color: #e6e6e6; + --gatling-hover-background-color: #e6e6e6; + --gatling-light-color: #ffffff; + --gatling-orange-color: #f78557; + --gatling-success-color: #68b65c; + --gatling-text-color: #1f2024; + --gatling-total-color: #ffa900; + + --gatling-border-radius: 2px; + --gatling-spacing-small: 5px; + --gatling-spacing: 10px; + --gatling-spacing-layout: 20px; + + --gatling-font-weight-normal: 400; + --gatling-font-weight-medium: 500; + --gatling-font-weight-bold: 700; + --gatling-font-size-secondary: 12px; + --gatling-font-size-default: 14px; + --gatling-font-size-heading: 16px; + --gatling-font-size-section: 22px; + --gatling-font-size-header: 34px; + + --gatling-media-desktop-large: 1920px; +} + +html[data-theme="dark"] { + --gatling-background-color: #1e2225; + --gatling-background-light-color: #272c30; + --gatling-border-color: #555555; + --gatling-blue-color: #1188ff; + --gatling-dark-blue-color: #17223B; + --gatling-danger-color: #d9534f; + --gatling-danger-light-color: #c9302c; + --gatling-enterprise-color: #b2a2ea; + --gatling-enterprise-light-color: #343479; + --gatling-gray-medium-color: #999; + --gatling-hover-color: #30363b; + --gatling-hover-background-color: #2c2c2c; + --gatling-light-color: #394046; + --gatling-orange-color: #fe8e5f; + --gatling-success-color: #5cb85c; + --gatling-text-color: #dee2e6; + --gatling-total-color: #ffa900; +} + +* { + min-height: 0; + min-width: 0; +} + +html, +body { + height: 100%; + width: 100%; +} + +body { + color: var(--gatling-text-color); + font-family: arial; + font-size: var(--gatling-font-size-secondary); + margin: 0; +} + +.app-container { + display: flex; + flex-direction: column; + + height: 100%; + width: 100%; +} + +.head { + display: flex; + align-items: center; + justify-content: space-between; + flex-direction: row; + + flex: 1; + + background-color: var(--gatling-light-color); + border-bottom: 1px solid var(--gatling-border-color); + min-height: 69px; + padding: 0 var(--gatling-spacing-layout); +} + +.head .spacer { + flex-grow: 1; +} + +.head .theme-toggle { + margin-left: 20px; + background: none; + color: var(--gatling-text-color); + border: none; +} + +.head .theme-toggle:hover { + color: var(--gatling-gray-medium-color); + cursor: pointer; +} + +body .toggle-dark, body .toggle-light { + display: block; +} + +[data-theme="dark"] body .toggle-dark { + display: none; +} + +[data-theme="light"] body .toggle-light { + display: none; +} + +[data-theme="dark"] body .logo-enterprise-light { + display: none; +} + +[data-theme="light"] body .logo-enterprise-dark { + display: none; +} + +.gatling-open-source { + display: flex; + align-items: center; + justify-content: space-between; + flex-direction: row; + gap: var(--gatling-spacing-layout); +} + +.gatling-documentation { + display: flex; + align-items: center; + + background-color: var(--gatling-light-color); + border-radius: var(--gatling-border-radius); + color: var(--gatling-orange-color); + border: 1px solid var(--gatling-orange-color); + text-align: center; + padding: var(--gatling-spacing-small) var(--gatling-spacing); + height: 23px; + + font-size: var(--gatling-font-size-default); +} + +.gatling-documentation:hover { + background-color: var(--gatling-orange-color); + color: var(--gatling-light-color); +} + +.gatling-logo { + height: 35px; +} + +.gatling-logo img { + height: 100%; +} + +[data-theme="dark"] .gatling-logo-light { + display: none; +} + +[data-theme="light"] .gatling-logo-dark { + display: none; +} + +.container { + display: flex; + align-items: stretch; + height: 100%; +} + +.nav { + min-width: 210px; + width: 210px; + max-height: calc(100vh - var(--gatling-spacing-layout) - var(--gatling-spacing-layout)); + background: var(--gatling-light-color); + border-right: 1px solid var(--gatling-border-color); + overflow-y: auto; +} + +@media print { + .nav { + display: none; + } +} + +@media screen and (min-width: 1920px) { + .nav { + min-width: 310px; + width: 310px; + } +} + +.nav ul { + display: flex; + flex-direction: column; + + padding: 0; + margin: 0; +} + +.nav li { + display: flex; + list-style: none; + width: 100%; + padding: 0; +} + +.nav .item { + display: inline-flex; + align-items: center; + margin: 0 auto; + white-space: nowrap; + color: var(--gatling-text-color); + font-size: var(--gatling-font-size-default); + font-weight: var(--gatling-font-weight-bold); + margin: 0; + width: 100%; +} + +.nav .item .nav-label { + padding: var(--gatling-spacing) var(--gatling-spacing-layout); +} + +.nav .item:hover { + background-color: var(--gatling-hover-color); +} + +.nav .on .item { + background-color: var(--gatling-orange-color); +} + +.nav .on .item span { + color: var(--gatling-light-color); +} + +.cadre { + width: 100%; + height: 100%; + overflow-y: scroll; + scroll-behavior: smooth; +} + +@media print { + .cadre { + overflow-y: unset; + } +} + +.frise { + position: absolute; + top: 60px; + z-index: -1; + + background-color: var(--gatling-background-color); + height: 530px; +} + +.global { + height: 650px +} + +a { + text-decoration: none; +} + +a:hover { + color: var(--gatling-hover-color); +} + +img { + border: 0; +} + +h1 { + color: var(--gatling-dark-blue-color); + font-size: var(--gatling-font-size-section); + font-weight: var(--gatling-font-weight-medium); + text-align: center; + margin: 0; +} + +h1 span { + color: var(--gatling-hover-color); +} + +.enterprise { + display: flex; + align-items: center; + justify-content: center; + gap: var(--gatling-spacing-small); + + background-color: var(--gatling-light-color); + border-radius: var(--gatling-border-radius); + border: 1px solid var(--gatling-enterprise-color); + color: var(--gatling-enterprise-color); + text-align: center; + padding: var(--gatling-spacing-small) var(--gatling-spacing); + height: 25px; +} + +.enterprise:hover { + background-color: var(--gatling-hover-color); + color: var(--gatling-enterprise-color); +} + +.enterprise img { + display: block; + width: 160px; +} + +.simulation-card { + display: flex; + flex-direction: column; + align-self: stretch; + flex: 1; + gap: var(--gatling-spacing-layout); + max-height: 375px; +} + +#simulation-information { + flex: 1; +} + +.simulation-version-information { + display: flex; + flex-direction: column; + + gap: var(--gatling-spacing); + font-size: var(--gatling-font-size-default); + + background-color: var(--gatling-background-light-color); + border: 1px solid var(--gatling-border-color); + border-radius: var(--gatling-border-radius); + padding: var(--gatling-spacing); +} + +.simulation-information-container { + display: flex; + flex-direction: column; + gap: var(--gatling-spacing); +} + +.withTooltip .popover-title { + display: none; +} + +.popover-content p { + margin: 0; +} + +html[data-theme="dark"] div.popover { + background-color: var(--gatling-light-color); + border-bottom: none; +} + +html[data-theme="dark"] div.popover.right .arrow { + border-right-color: var(--gatling-light-color); +} + +.ellipsed-name { + display: block; + + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.simulation-information-item { + display: flex; + flex-direction: row; + align-items: flex-start; + gap: var(--gatling-spacing-small); +} + +.simulation-information-item.description { + flex-direction: column; +} + +.simulation-information-label { + display: inline-block; + font-weight: var(--gatling-font-weight-bold); + min-width: fit-content; +} + +.simulation-information-title { + display: block; + text-align: center; + color: var(--gatling-text-color); + font-weight: var(--gatling-font-weight-bold); + font-size: var(--gatling-font-size-heading); + width: 100%; +} + +.simulation-tooltip span { + display: inline-block; + word-wrap: break-word; + overflow: hidden; + text-overflow: ellipsis; +} + +.content { + display: flex; + flex-direction: column; +} + +.content-in { + width: 100%; + height: 100%; + + overflow-x: scroll; +} + +html[data-theme="dark"] .content-in { + background-color: var(--gatling-background-color); +} + +@media print { + .content-in { + overflow-x: unset; + } +} + +.container-article { + display: flex; + flex-direction: column; + gap: var(--gatling-spacing-layout); + + min-width: 1050px; + width: 1050px; + margin: 0 auto; + padding: var(--gatling-spacing-layout); + box-sizing: border-box; +} + +@media screen and (min-width: 1920px) { + .container-article { + min-width: 1350px; + width: 1350px; + } + + #responses * .highcharts-tracker { + transform: translate(400px, 70px); + } +} + +.content-header { + display: flex; + flex-direction: column; + gap: var(--gatling-spacing-layout); + + background-color: var(--gatling-background-light-color); + border-bottom: 1px solid var(--gatling-border-color); + padding: var(--gatling-spacing-layout) var(--gatling-spacing-layout) 0; +} + +.onglet { + font-size: var(--gatling-font-size-header); + font-weight: var(--gatling-font-weight-medium); + text-align: center; +} + +.sous-menu { + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; +} + +.sous-menu-spacer { + display: flex; + align-items: center; + flex-direction: row; +} + +.sous-menu .item { + margin-bottom: -1px; +} + +.sous-menu a { + display: block; + + font-size: var(--gatling-font-size-heading); + font-weight: var(--gatling-font-weight-normal); + padding: var(--gatling-spacing-small) var(--gatling-spacing) var(--gatling-spacing); + border-bottom: 2px solid transparent; + color: var(--gatling-text-color); + text-align: center; + width: 100px; +} + +.sous-menu a:hover { + border-bottom-color: var(--gatling-text-color); +} + +.sous-menu .ouvert a { + border-bottom-color: var(--gatling-orange-color); + font-weight: var(--gatling-font-weight-bold); +} + +.article { + position: relative; + + display: flex; + flex-direction: column; + gap: var(--gatling-spacing-layout); +} + +.infos { + width: 340px; + color: var(--gatling-light-color); +} + +.infos-title { + background-color: var(--gatling-background-light-color); + border: 1px solid var(--gatling-border-color); + border-bottom: 0; + border-top-left-radius: var(--gatling-border-radius); + border-top-right-radius: var(--gatling-border-radius); + color: var(--gatling-text-color); + font-size: var(--gatling-font-size-heading); + font-weight: var(--gatling-font-weight-bold); + text-align: center; + padding: var(--gatling-spacing-small) var(--gatling-spacing); +} + +.info { + background-color: var(--gatling-background-light-color); + border-bottom-left-radius: var(--gatling-border-radius); + border-bottom-right-radius: var(--gatling-border-radius); + border: 1px solid var(--gatling-border-color); + color: var(--gatling-text-color); + height: 100%; + margin: 0; +} + +.info table { + margin: auto; + padding-right: 15px; +} + +.alert-danger { + background-color: var(--gatling-danger-light-color); + border: 1px solid var(--gatling-danger-color); + border-radius: var(--gatling-border-radius); + color: var(--gatling-text-color); + padding: var(--gatling-spacing-layout); + font-weight: var(--gatling-font-weight-bold); +} + +.infos h2 { + color: var(--gatling-text-color); + font-size: var(--gatling-font-size-default); + font-weight: var(--gatling-font-weight-bold); + height: 19px; + margin: 0; + padding: 3.5px 0 0 35px; +} + +.infos .first::before { + content: ''; + display: inline-block; + margin-right: 5px; + margin-bottom: 2px; + vertical-align: middle; + width: 14px; + height: 14px; + background: url('executions.svg'); + background-size: contain; +} + +.infos .second::before { + content: ''; + display: inline-block; + margin-right: 5px; + margin-bottom: 2px; + vertical-align: middle; + width: 16px; + height: 16px; + background: url('time.svg'); + background-size: contain; +} + +html[data-theme="dark"] .infos .first::before, +html[data-theme="dark"] .infos .second::before { + filter: invert(0.9); +} + +.infos th { + text-align: center; +} + +.infos td { + font-weight: var(--gatling-font-weight-bold); + padding: var(--gatling-spacing-small); + -webkit-border-radius: var(--gatling-border-radius); + -moz-border-radius: var(--gatling-border-radius); + -ms-border-radius: var(--gatling-border-radius); + -o-border-radius: var(--gatling-border-radius); + border-radius: var(--gatling-border-radius); + text-align: right; + width: 50px; +} + +.infos .title { + width: 120px; +} + +.infos .ok { + background-color: var(--gatling-success-color); + color: var(--gatling-light-color); +} + +.infos .total { + background-color: var(--gatling-total-color); + color: var(--gatling-light-color); +} + +.infos .ko { + background-color: var(--gatling-danger-color); + -webkit-border-radius: var(--gatling-border-radius); + border-radius: var(--gatling-border-radius); + color: var(--gatling-light-color); +} + +.schema-container { + display: flex; + align-items: center; + justify-content: space-between; + gap: var(--gatling-spacing-layout); +} + +.schema { + background: var(--gatling-background-light-color); + border-radius: var(--gatling-border-radius); + border: 1px solid var(--gatling-border-color); +} + +.ranges { + height: 375px; + width: 500px; +} + +.ranges-large { + height: 375px; + width: 530px; +} + +.geant { + height: 362px; +} + +.extensible-geant { + width: 100%; +} + +.polar { + height: 375px; + width: 230px; +} + +.chart_title { + color: var(--gatling-text-color); + font-weight: var(--gatling-font-weight-bold); + font-size: var(--gatling-font-size-heading); + padding: 2px var(--gatling-spacing); +} + +html[data-theme="dark"] .chart_title { + color: var(--gatling-text-color); + font-weight: var(--gatling-font-weight-bold); + font-size: var(--gatling-font-size-heading); + padding: 2px var(--gatling-spacing); +} + +html[data-theme="dark"] .highcharts-background { + fill: var(--gatling-background-light-color); +} + +html[data-theme="dark"] .highcharts-button-normal rect { + fill: var(--gatling-background-color) !important; +} + +html[data-theme="dark"] .highcharts-button-disabled rect { + fill: var(--gatling-background-light-color) !important; +} + +html[data-theme="dark"] .highcharts-button-pressed rect { + fill: var(--gatling-orange-color) !important; +} + +html[data-theme="dark"] .highcharts-axis text, +html[data-theme="dark"] .highcharts-axis-labels text, +html[data-theme="dark"] .highcharts-button text, +html[data-theme="dark"] .highcharts-legend-item text, +html[data-theme="dark"] .highcharts-range-selector-buttons text { + fill: var(--gatling-text-color) !important; +} + +.statistics { + display: flex; + flex-direction: column; + + background-color: var(--gatling-background-light-color); + border-radius: var(--gatling-border-radius); + border-collapse: collapse; + color: var(--gatling-text-color); + max-height: 100%; +} + +.statistics .title { + display: flex; + text-align: center; + justify-content: space-between; + + min-height: 49.5px; + box-sizing: border-box; + + border: 1px solid var(--gatling-border-color); + color: var(--gatling-text-color); + font-size: var(--gatling-font-size-heading); + font-weight: var(--gatling-font-weight-bold); + padding: var(--gatling-spacing); +} + +.title_base { + display: flex; + align-items: center; + text-align: left; + user-select: none; +} + +.title_base_stats { + color: var(--gatling-text-color); + margin-right: 20px; +} + +.toggle-table { + position: relative; + border: 1px solid var(--gatling-border-color); + background-color: var(--gatling-light-color); + border-radius: 25px; + width: 40px; + height: 20px; + margin: 0 var(--gatling-spacing-small); +} + +.toggle-table::before { + position: absolute; + top: calc(50% - 9px); + left: 1px; + content: ""; + width: 50%; + height: 18px; + border-radius: 50%; + background-color: var(--gatling-text-color); +} + +.toggle-table.off::before { + left: unset; + right: 1px; +} + +.title_expanded { + cursor: pointer; + color: var(--gatling-text-color); +} + +.expand-table, +.collapse-table { + font-size: var(--gatling-font-size-secondary); + font-weight: var(--gatling-font-weight-normal); +} + +.title_expanded span.expand-table { + color: var(--gatling-gray-medium-color); +} + +.title_collapsed { + cursor: pointer; + color: var(--gatling-text-color); +} + +.title_collapsed span.collapse-table { + color: var(--gatling-gray-medium-color); +} + +#container_statistics_head { + position: sticky; + top: -1px; + + background: var(--gatling-background-light-color); + margin-top: -1px; + padding: var(--gatling-spacing-small) var(--gatling-spacing-small) 0px var(--gatling-spacing-small); +} + +#container_statistics_body { + border-bottom-left-radius: var(--gatling-border-radius); + border-bottom-right-radius: var(--gatling-border-radius); + margin-top: -1px; + padding: 0px var(--gatling-spacing-small) var(--gatling-spacing-small) var(--gatling-spacing-small); +} + +#container_errors { + border-bottom-left-radius: var(--gatling-border-radius); + border-bottom-right-radius: var(--gatling-border-radius); + padding: var(--gatling-spacing-small) var(--gatling-spacing-small) 0px var(--gatling-spacing-small); + margin-top: -1px; +} + +#container_assertions { + background-color: var(--gatling-background-light-color); + border-bottom-left-radius: var(--gatling-border-radius); + border-bottom-right-radius: var(--gatling-border-radius); + padding: var(--gatling-spacing-small); + margin-top: -1px; +} + +.statistics-in { + border-spacing: var(--gatling-spacing-small); + border-collapse: collapse; + margin: 0; +} + +.statistics .scrollable { + max-height: 100%; + overflow-y: auto; +} + +#statistics_table_container .statistics .scrollable { + max-height: 785px; +} + +.statistics-in a { + color: var(--gatling-text-color); + font-weight: var(--gatling-font-weight-bold); +} + +.statistics-in .header { + border-radius: var(--gatling-border-radius); + border: 1px solid var(--gatling-border-color); + font-size: var(--gatling-font-size-default); + font-weight: var(--gatling-font-weight-bold); + text-align: center; + padding: var(--gatling-spacing-small); +} + +.sortable { + cursor: pointer; +} + +.sortable span::after { + content: ''; + display: inline-block; + margin-left: 5px; + vertical-align: middle; + width: 12px; + height: 12px; + background: url('sort.svg'); + background-size: contain; +} + +.sorted-up span::after { + background: url('sort-up.svg'); + background-size: contain; +} + +.sorted-down span::after { + background: url('sort-down.svg'); + background-size: contain; +} + +html[data-theme="dark"] .sortable span::after { + filter: invert(0.9); +} + +.executions::before { + content: ''; + display: inline-block; + margin-right: 5px; + margin-bottom: 2px; + vertical-align: middle; + width: 14px; + height: 14px; + background: url('executions.svg'); + background-size: contain; +} + +.response-time::before { + content: ''; + display: inline-block; + margin-right: 5px; + margin-bottom: 2px; + vertical-align: middle; + width: 16px; + height: 16px; + background: url('time.svg'); + background-size: contain; +} + +html[data-theme="dark"] .executions::before, +html[data-theme="dark"] .response-time::before { + filter: invert(0.9); +} + +.statistics-in td { + background-color: var(--gatling-light-color); + border: 1px solid var(--gatling-border-color); + padding: var(--gatling-spacing-small); + min-width: 50px; +} + +.statistics-in .col-1 { + width: 175px; + max-width: 175px; +} +@media screen and (min-width: 1200px) { + .statistics-in .col-1 { + width: 50%; + } +} + +.expandable-container { + display: flex; + flex-direction: row; + box-sizing: border-box; + max-width: 100%; +} + +.statistics-in .value { + text-align: right; + width: 50px; +} + +.statistics-in .total { + color: var(--gatling-text-color); +} + +.statistics-in .col-2 { + background-color: var(--gatling-total-color); + color: var(--gatling-light-color); + font-weight: var(--gatling-font-weight-bold); +} + +.statistics-in .error-col-1 { + background-color: var(--gatling-light-color); + color: var(--gatling-text-color); +} + +.statistics-in .error-col-2 { + text-align: center; +} + +.statistics-in .ok { + background-color: var(--gatling-success-color); + color: var(--gatling-light-color); + font-weight: var(--gatling-font-weight-bold); +} + +.statistics-in .ko { + background-color: var(--gatling-danger-color); + color: var(--gatling-light-color); + font-weight: var(--gatling-font-weight-bold); +} + +.statistics-in .expand-button { + padding-left: var(--gatling-spacing); + cursor: pointer; +} + +.expand-button.hidden { + background: none; + cursor: default; +} + +.statistics-button { + background-color: var(--gatling-light-color); + color: var(--gatling-text-color); + padding: var(--gatling-spacing-small) var(--gatling-spacing); + border: 1px solid var(--gatling-border-color); + border-radius: var(--gatling-border-radius); +} + +#statistics_full_screen{ + padding: var(--gatling-spacing-small); +} + +#statistics_full_screen > img { + width: 14px; + height: 14px; +} + +html[data-theme="dark"] #statistics_full_screen > img { + filter: invert(0.9); +} + +#statistics_full_screen:disabled { + display: none; +} + +.statistics-button:hover:not(:disabled) { + cursor: pointer; + background-color: var(--gatling-hover-color); +} + +.statistics-in .expand-button.expand { + content: ''; + display: inline-block; + vertical-align: middle; + width: 2px; + height: 10px; + background: url('expand.svg'); + background-size: contain; +} + +.statistics-in .expand-button.collapse { + content: ''; + display: inline-block; + vertical-align: middle; + width: 2px; + height: 10px; + background: url('sort-down.svg'); + background-size: contain; +} + +html[data-theme="dark"] .statistics-in .expand-button.collapse, +html[data-theme="dark"] .statistics-in .expand-button.expand { + filter: invert(0.9); +} + +.nav .expand-button { + padding: var(--gatling-spacing-small) var(--gatling-spacing); +} + +.nav .expand-button.expand { + content: ''; + display: inline-block; + vertical-align: middle; + height: 8px; + background: url('expand.svg') no-repeat; + background-size: contain; + cursor: pointer; + margin-top: 6px; +} + +.nav .expand-button.collapse { + content: ''; + display: inline-block; + vertical-align: middle; + height: 8px; + background: url('sort-down.svg') no-repeat; + background-size: contain; + cursor: pointer; + margin-top: 6px; +} + +html[data-theme="dark"] .nav .expand-button.expand, +html[data-theme="dark"] .nav .expand-button.collapse { + filter: invert(0.9); +} + +.right { + display: flex; + align-items: center; + gap: var(--gatling-spacing); + float: right; + font-size: var(--gatling-font-size-default); +} + +.withTooltip { + outline: none; +} + +.withTooltip:hover { + text-decoration: none; +} + +.withTooltip .tooltipContent { + position: absolute; + z-index: 10; + display: none; + + background: var(--gatling-orange-color); + -webkit-box-shadow: 1px 2px 4px 0px rgba(47, 47, 47, 0.2); + -moz-box-shadow: 1px 2px 4px 0px rgba(47, 47, 47, 0.2); + box-shadow: 1px 2px 4px 0px rgba(47, 47, 47, 0.2); + border-radius: var(--gatling-border-radius); + color: var(--gatling-light-color); + margin-top: -5px; + padding: var(--gatling-spacing-small); +} + +.withTooltip:hover .tooltipContent { + display: inline; +} + +.button-modal { + padding: var(--gatling-spacing-small); +} + +.button-modal > img { + width: 14px; + height: 14px; +} + +html[data-theme="dark"] .button-modal > img { + filter: invert(0.9); +} + +.statistics-table-modal { + background-color: var(--gatling-background-color); + height: calc(100% - 60px); + width: calc(100% - 60px); + border-radius: var(--gatling-border-radius); +} + +.statistics-table-modal::backdrop { + position: fixed; + top: 0px; + right: 0px; + bottom: 0px; + left: 0px; + + background-color: rgba(100, 100, 100, 0.9); +} + +.statistics-table-modal-container { + display: flex; + flex-direction: column; + + width: 100%; + height: calc(100% - 35px); + overflow-x: auto; +} + +.button-modal { + cursor: pointer; + + height: 25px; + width: 25px; + + border: 1px solid var(--gatling-border-color); + background-color: var(--gatling-light-color); + border-radius: var(--gatling-border-radius); + color: var(--gatling-text-color); +} + +.button-modal:hover { + background-color: var(--gatling-background-color); +} + +.statistics-table-modal-header { + display: flex; + align-items: flex-end; + justify-content: flex-end; + + padding-bottom: var(--gatling-spacing); +} + +.statistics-table-modal-content { + flex: 1; + overflow-y: auto; + min-width: 1050px; +} + +.statistics-table-modal-footer { + display: flex; + align-items: flex-end; + justify-content: flex-end; + + padding-top: var(--gatling-spacing); +} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/index.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/index.html new file mode 100644 index 0000000..688d678 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/index.html @@ -0,0 +1,1139 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - Global Information + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    +
    +
    + Gatling Version + + Version: + 3.10.5 + + + Released: + 2024-03-22 + +
    +
    + Run Information +
    + + Date: + 2024-04-25 17:51:20 GMT + + + Duration: + 2m 20s + + + Description: + Load testing (5 users/sec in 60sec - 2 cpu) + + +
    +
    +
    +
    + +
    + +
    + +
    +
    +
    +
    +
    + + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/all_sessions.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/all_sessions.js new file mode 100644 index 0000000..dfca966 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/all_sessions.js @@ -0,0 +1,11 @@ +allUsersData = { + +color: '#FFA900', +name: 'Active Users', +data: [ + [1714067481000,9],[1714067482000,12],[1714067483000,17],[1714067484000,23],[1714067485000,29],[1714067486000,31],[1714067487000,35],[1714067488000,41],[1714067489000,45],[1714067490000,50],[1714067491000,52],[1714067492000,55],[1714067493000,62],[1714067494000,69],[1714067495000,74],[1714067496000,79],[1714067497000,89],[1714067498000,95],[1714067499000,98],[1714067500000,106],[1714067501000,108],[1714067502000,114],[1714067503000,117],[1714067504000,123],[1714067505000,129],[1714067506000,134],[1714067507000,137],[1714067508000,142],[1714067509000,144],[1714067510000,149],[1714067511000,150],[1714067512000,152],[1714067513000,158],[1714067514000,164],[1714067515000,167],[1714067516000,173],[1714067517000,179],[1714067518000,183],[1714067519000,187],[1714067520000,193],[1714067521000,200],[1714067522000,204],[1714067523000,207],[1714067524000,211],[1714067525000,216],[1714067526000,224],[1714067527000,229],[1714067528000,233],[1714067529000,238],[1714067530000,242],[1714067531000,247],[1714067532000,255],[1714067533000,260],[1714067534000,266],[1714067535000,278],[1714067536000,279],[1714067537000,287],[1714067538000,296],[1714067539000,301],[1714067540000,302],[1714067541000,302],[1714067542000,302],[1714067543000,302],[1714067544000,302],[1714067545000,302],[1714067546000,302],[1714067547000,302],[1714067548000,302],[1714067549000,302],[1714067550000,302],[1714067551000,302],[1714067552000,302],[1714067553000,302],[1714067554000,302],[1714067555000,302],[1714067556000,301],[1714067557000,297],[1714067558000,294],[1714067559000,294],[1714067560000,293],[1714067561000,289],[1714067562000,285],[1714067563000,278],[1714067564000,273],[1714067565000,267],[1714067566000,262],[1714067567000,256],[1714067568000,251],[1714067569000,247],[1714067570000,245],[1714067571000,239],[1714067572000,234],[1714067573000,232],[1714067574000,225],[1714067575000,218],[1714067576000,216],[1714067577000,210],[1714067578000,203],[1714067579000,197],[1714067580000,190],[1714067581000,180],[1714067582000,173],[1714067583000,170],[1714067584000,167],[1714067585000,165],[1714067586000,163],[1714067587000,159],[1714067588000,157],[1714067589000,153],[1714067590000,149],[1714067591000,143],[1714067592000,138],[1714067593000,136],[1714067594000,130],[1714067595000,123],[1714067596000,118],[1714067597000,112],[1714067598000,110],[1714067599000,105],[1714067600000,96],[1714067601000,91],[1714067602000,86],[1714067603000,82],[1714067604000,75],[1714067605000,71],[1714067606000,67],[1714067607000,63],[1714067608000,58],[1714067609000,55],[1714067610000,51],[1714067611000,46],[1714067612000,41],[1714067613000,37],[1714067614000,32],[1714067615000,23],[1714067616000,16],[1714067617000,7],[1714067618000,2],[1714067619000,1],[1714067620000,1],[1714067621000,1] +], +tooltip: { yDecimals: 0, ySuffix: '', valueDecimals: 0 } + , zIndex: 20 + , yAxis: 1 +}; \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/assertions.xml b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/assertions.xml new file mode 100644 index 0000000..c562e00 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/assertions.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/bootstrap.min.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/bootstrap.min.js new file mode 100644 index 0000000..ea41042 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/bootstrap.min.js @@ -0,0 +1,7 @@ +/** +* Bootstrap.js by @fat & @mdo +* plugins: bootstrap-tooltip.js, bootstrap-popover.js +* Copyright 2012 Twitter, Inc. +* http://www.apache.org/licenses/LICENSE-2.0.txt +*/ +!function(a){var b=function(a,b){this.init("tooltip",a,b)};b.prototype={constructor:b,init:function(b,c,d){var e,f;this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.enabled=!0,this.options.trigger=="click"?this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this)):this.options.trigger!="manual"&&(e=this.options.trigger=="hover"?"mouseenter":"focus",f=this.options.trigger=="hover"?"mouseleave":"blur",this.$element.on(e+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(f+"."+this.type,this.options.selector,a.proxy(this.leave,this))),this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},getOptions:function(b){return b=a.extend({},a.fn[this.type].defaults,b,this.$element.data()),b.delay&&typeof b.delay=="number"&&(b.delay={show:b.delay,hide:b.delay}),b},enter:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);if(!c.options.delay||!c.options.delay.show)return c.show();clearTimeout(this.timeout),c.hoverState="in",this.timeout=setTimeout(function(){c.hoverState=="in"&&c.show()},c.options.delay.show)},leave:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);this.timeout&&clearTimeout(this.timeout);if(!c.options.delay||!c.options.delay.hide)return c.hide();c.hoverState="out",this.timeout=setTimeout(function(){c.hoverState=="out"&&c.hide()},c.options.delay.hide)},show:function(){var a,b,c,d,e,f,g;if(this.hasContent()&&this.enabled){a=this.tip(),this.setContent(),this.options.animation&&a.addClass("fade"),f=typeof this.options.placement=="function"?this.options.placement.call(this,a[0],this.$element[0]):this.options.placement,b=/in/.test(f),a.detach().css({top:0,left:0,display:"block"}).insertAfter(this.$element),c=this.getPosition(b),d=a[0].offsetWidth,e=a[0].offsetHeight;switch(b?f.split(" ")[1]:f){case"bottom":g={top:c.top+c.height,left:c.left+c.width/2-d/2};break;case"top":g={top:c.top-e,left:c.left+c.width/2-d/2};break;case"left":g={top:c.top+c.height/2-e/2,left:c.left-d};break;case"right":g={top:c.top+c.height/2-e/2,left:c.left+c.width}}a.offset(g).addClass(f).addClass("in")}},setContent:function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},hide:function(){function d(){var b=setTimeout(function(){c.off(a.support.transition.end).detach()},500);c.one(a.support.transition.end,function(){clearTimeout(b),c.detach()})}var b=this,c=this.tip();return c.removeClass("in"),a.support.transition&&this.$tip.hasClass("fade")?d():c.detach(),this},fixTitle:function(){var a=this.$element;(a.attr("title")||typeof a.attr("data-original-title")!="string")&&a.attr("data-original-title",a.attr("title")||"").removeAttr("title")},hasContent:function(){return this.getTitle()},getPosition:function(b){return a.extend({},b?{top:0,left:0}:this.$element.offset(),{width:this.$element[0].offsetWidth,height:this.$element[0].offsetHeight})},getTitle:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||(typeof c.title=="function"?c.title.call(b[0]):c.title),a},tip:function(){return this.$tip=this.$tip||a(this.options.template)},validate:function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},enable:function(){this.enabled=!0},disable:function(){this.enabled=!1},toggleEnabled:function(){this.enabled=!this.enabled},toggle:function(b){var c=a(b.currentTarget)[this.type](this._options).data(this.type);c[c.tip().hasClass("in")?"hide":"show"]()},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}},a.fn.tooltip=function(c){return this.each(function(){var d=a(this),e=d.data("tooltip"),f=typeof c=="object"&&c;e||d.data("tooltip",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.tooltip.Constructor=b,a.fn.tooltip.defaults={animation:!0,placement:"top",selector:!1,template:'
    ',trigger:"hover",title:"",delay:0,html:!1}}(window.jQuery),!function(a){var b=function(a,b){this.init("popover",a,b)};b.prototype=a.extend({},a.fn.tooltip.Constructor.prototype,{constructor:b,setContent:function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content > *")[this.options.html?"html":"text"](c),a.removeClass("fade top bottom left right in")},hasContent:function(){return this.getTitle()||this.getContent()},getContent:function(){var a,b=this.$element,c=this.options;return a=b.attr("data-content")||(typeof c.content=="function"?c.content.call(b[0]):c.content),a},tip:function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip},destroy:function(){this.hide().$element.off("."+this.type).removeData(this.type)}}),a.fn.popover=function(c){return this.each(function(){var d=a(this),e=d.data("popover"),f=typeof c=="object"&&c;e||d.data("popover",e=new b(this,f)),typeof c=="string"&&e[c]()})},a.fn.popover.Constructor=b,a.fn.popover.defaults=a.extend({},a.fn.tooltip.defaults,{placement:"right",trigger:"click",content:"",template:'

    '})}(window.jQuery) \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/ellipsis.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/ellipsis.js new file mode 100644 index 0000000..781d0de --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/ellipsis.js @@ -0,0 +1,26 @@ +function parentId(name) { + return "parent-" + name; +} + +function isEllipsed(name) { + const child = document.getElementById(name); + const parent = document.getElementById(parentId(name)); + const emptyData = parent.getAttribute("data-content") === ""; + const hasOverflow = child.clientWidth < child.scrollWidth; + + if (hasOverflow) { + if (emptyData) { + parent.setAttribute("data-content", name); + } + } else { + if (!emptyData) { + parent.setAttribute("data-content", ""); + } + } +} + +function ellipsedLabel ({ name, parentClass = "", childClass = "" }) { + const child = "" + name + ""; + + return "" + child + ""; +} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/gatling.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/gatling.js new file mode 100644 index 0000000..5b9e992 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/gatling.js @@ -0,0 +1,137 @@ +/* + * Copyright 2011-2024 GatlingCorp (https://gatling.io) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +(function ($) { + $.fn.expandable = function () { + var scope = this; + + this.find('.expand-button:not([class*=hidden])').addClass('collapse').on('click', function () { + var $this = $(this); + + if ($this.hasClass('expand')) + $this.expand(scope); + else + $this.collapse(scope); + }); + + this.find('.expand-all-button').on('click', function () { + $(this).expandAll(scope); + }); + + this.find('.collapse-all-button').on('click', function () { + $(this).collapseAll(scope); + }); + + this.collapseAll(this); + + return this; + }; + + $.fn.expand = function (scope, recursive) { + return this.each(function () { + var $this = $(this); + + if (recursive) { + scope.find('*[data-parent=' + $this.attr('id') + ']').find('.expand-button.expand').expand(scope, true); + scope.find('*[data-parent=' + $this.attr('id') + ']').find('.expand-button.expand').expand(scope, true); + } + + if ($this.hasClass('expand')) { + $('*[data-parent=' + $this.attr('id') + ']').toggle(true); + $this.toggleClass('expand').toggleClass('collapse'); + } + }); + }; + + $.fn.expandAll = function (scope) { + $('*[data-parent=ROOT]').find('.expand-button.expand').expand(scope, true); + $('*[data-parent=ROOT]').find('.expand-button.collapse').expand(scope, true); + }; + + $.fn.collapse = function (scope) { + return this.each(function () { + var $this = $(this); + + scope.find('*[data-parent=' + $this.attr('id') + '] .expand-button.collapse').collapse(scope); + scope.find('*[data-parent=' + $this.attr('id') + ']').toggle(false); + $this.toggleClass('expand').toggleClass('collapse'); + }); + }; + + $.fn.collapseAll = function (scope) { + $('*[data-parent=ROOT]').find('.expand-button.collapse').collapse(scope); + }; + + $.fn.sortable = function (target) { + var table = this; + + this.find('thead .sortable').on('click', function () { + var $this = $(this); + + if ($this.hasClass('sorted-down')) { + var desc = false; + var style = 'sorted-up'; + } + else { + var desc = true; + var style = 'sorted-down'; + } + + $(target).sortTable($this.attr('id'), desc); + + table.find('thead .sortable').removeClass('sorted-up sorted-down'); + $this.addClass(style); + + return false; + }); + + return this; + }; + + $.fn.sortTable = function (col, desc) { + function getValue(line) { + var cell = $(line).find('.' + col); + + if (cell.hasClass('value')) + var value = cell.text(); + else + var value = cell.find('.value').text(); + + return parseFloat(value); + } + + function sortLines (lines, group) { + var notErrorTable = col.search("error") == -1; + var linesToSort = notErrorTable ? lines.filter('*[data-parent=' + group + ']') : lines; + + var sortedLines = linesToSort.sort(function (a, b) { + return desc ? getValue(b) - getValue(a): getValue(a) - getValue(b); + }).toArray(); + + var result = []; + $.each(sortedLines, function (i, line) { + result.push(line); + if (notErrorTable) + result = result.concat(sortLines(lines, $(line).attr('id'))); + }); + + return result; + } + + this.find('tbody').append(sortLines(this.find('tbody tr').detach(), 'ROOT')); + + return this; + }; +})(jQuery); diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/global_stats.json b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/global_stats.json new file mode 100644 index 0000000..38918c4 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/global_stats.json @@ -0,0 +1,77 @@ +{ + "name": "All Requests", + "numberOfRequests": { + "total": 5134, + "ok": 5133, + "ko": 1 + }, + "minResponseTime": { + "total": 23, + "ok": 23, + "ko": 10012 + }, + "maxResponseTime": { + "total": 10012, + "ok": 9288, + "ko": 10012 + }, + "meanResponseTime": { + "total": 383, + "ok": 381, + "ko": 10012 + }, + "standardDeviation": { + "total": 764, + "ok": 752, + "ko": 0 + }, + "percentiles1": { + "total": 82, + "ok": 82, + "ko": 10012 + }, + "percentiles2": { + "total": 300, + "ok": 299, + "ko": 10012 + }, + "percentiles3": { + "total": 1688, + "ok": 1685, + "ko": 10012 + }, + "percentiles4": { + "total": 3508, + "ok": 3495, + "ko": 10012 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 4290, + "percentage": 84 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 433, + "percentage": 8 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 410, + "percentage": 8 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 1, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 36.4113475177305, + "ok": 36.40425531914894, + "ko": 0.0070921985815602835 + } +} \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/highcharts-more.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/highcharts-more.js new file mode 100644 index 0000000..2d78893 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/highcharts-more.js @@ -0,0 +1,60 @@ +/* + Highcharts JS v5.0.3 (2016-11-18) + + (c) 2009-2016 Torstein Honsi + + License: www.highcharts.com/license +*/ +(function(x){"object"===typeof module&&module.exports?module.exports=x:x(Highcharts)})(function(x){(function(b){function r(b,a,d){this.init(b,a,d)}var t=b.each,w=b.extend,m=b.merge,q=b.splat;w(r.prototype,{init:function(b,a,d){var f=this,h=f.defaultOptions;f.chart=a;f.options=b=m(h,a.angular?{background:{}}:void 0,b);(b=b.background)&&t([].concat(q(b)).reverse(),function(a){var c,h=d.userOptions;c=m(f.defaultBackgroundOptions,a);a.backgroundColor&&(c.backgroundColor=a.backgroundColor);c.color=c.backgroundColor; +d.options.plotBands.unshift(c);h.plotBands=h.plotBands||[];h.plotBands!==d.options.plotBands&&h.plotBands.unshift(c)})},defaultOptions:{center:["50%","50%"],size:"85%",startAngle:0},defaultBackgroundOptions:{className:"highcharts-pane",shape:"circle",borderWidth:1,borderColor:"#cccccc",backgroundColor:{linearGradient:{x1:0,y1:0,x2:0,y2:1},stops:[[0,"#ffffff"],[1,"#e6e6e6"]]},from:-Number.MAX_VALUE,innerRadius:0,to:Number.MAX_VALUE,outerRadius:"105%"}});b.Pane=r})(x);(function(b){var r=b.CenteredSeriesMixin, +t=b.each,w=b.extend,m=b.map,q=b.merge,e=b.noop,a=b.Pane,d=b.pick,f=b.pInt,h=b.splat,u=b.wrap,c,l,k=b.Axis.prototype;b=b.Tick.prototype;c={getOffset:e,redraw:function(){this.isDirty=!1},render:function(){this.isDirty=!1},setScale:e,setCategories:e,setTitle:e};l={defaultRadialGaugeOptions:{labels:{align:"center",x:0,y:null},minorGridLineWidth:0,minorTickInterval:"auto",minorTickLength:10,minorTickPosition:"inside",minorTickWidth:1,tickLength:10,tickPosition:"inside",tickWidth:2,title:{rotation:0},zIndex:2}, +defaultRadialXOptions:{gridLineWidth:1,labels:{align:null,distance:15,x:0,y:null},maxPadding:0,minPadding:0,showLastLabel:!1,tickLength:0},defaultRadialYOptions:{gridLineInterpolation:"circle",labels:{align:"right",x:-3,y:-2},showLastLabel:!1,title:{x:4,text:null,rotation:90}},setOptions:function(a){a=this.options=q(this.defaultOptions,this.defaultRadialOptions,a);a.plotBands||(a.plotBands=[])},getOffset:function(){k.getOffset.call(this);this.chart.axisOffset[this.side]=0;this.center=this.pane.center= +r.getCenter.call(this.pane)},getLinePath:function(a,g){a=this.center;var c=this.chart,f=d(g,a[2]/2-this.offset);this.isCircular||void 0!==g?g=this.chart.renderer.symbols.arc(this.left+a[0],this.top+a[1],f,f,{start:this.startAngleRad,end:this.endAngleRad,open:!0,innerR:0}):(g=this.postTranslate(this.angleRad,f),g=["M",a[0]+c.plotLeft,a[1]+c.plotTop,"L",g.x,g.y]);return g},setAxisTranslation:function(){k.setAxisTranslation.call(this);this.center&&(this.transA=this.isCircular?(this.endAngleRad-this.startAngleRad)/ +(this.max-this.min||1):this.center[2]/2/(this.max-this.min||1),this.minPixelPadding=this.isXAxis?this.transA*this.minPointOffset:0)},beforeSetTickPositions:function(){if(this.autoConnect=this.isCircular&&void 0===d(this.userMax,this.options.max)&&this.endAngleRad-this.startAngleRad===2*Math.PI)this.max+=this.categories&&1||this.pointRange||this.closestPointRange||0},setAxisSize:function(){k.setAxisSize.call(this);this.isRadial&&(this.center=this.pane.center=r.getCenter.call(this.pane),this.isCircular&& +(this.sector=this.endAngleRad-this.startAngleRad),this.len=this.width=this.height=this.center[2]*d(this.sector,1)/2)},getPosition:function(a,g){return this.postTranslate(this.isCircular?this.translate(a):this.angleRad,d(this.isCircular?g:this.translate(a),this.center[2]/2)-this.offset)},postTranslate:function(a,g){var d=this.chart,c=this.center;a=this.startAngleRad+a;return{x:d.plotLeft+c[0]+Math.cos(a)*g,y:d.plotTop+c[1]+Math.sin(a)*g}},getPlotBandPath:function(a,g,c){var h=this.center,p=this.startAngleRad, +k=h[2]/2,n=[d(c.outerRadius,"100%"),c.innerRadius,d(c.thickness,10)],b=Math.min(this.offset,0),l=/%$/,u,e=this.isCircular;"polygon"===this.options.gridLineInterpolation?h=this.getPlotLinePath(a).concat(this.getPlotLinePath(g,!0)):(a=Math.max(a,this.min),g=Math.min(g,this.max),e||(n[0]=this.translate(a),n[1]=this.translate(g)),n=m(n,function(a){l.test(a)&&(a=f(a,10)*k/100);return a}),"circle"!==c.shape&&e?(a=p+this.translate(a),g=p+this.translate(g)):(a=-Math.PI/2,g=1.5*Math.PI,u=!0),n[0]-=b,n[2]-= +b,h=this.chart.renderer.symbols.arc(this.left+h[0],this.top+h[1],n[0],n[0],{start:Math.min(a,g),end:Math.max(a,g),innerR:d(n[1],n[0]-n[2]),open:u}));return h},getPlotLinePath:function(a,g){var d=this,c=d.center,f=d.chart,h=d.getPosition(a),k,b,p;d.isCircular?p=["M",c[0]+f.plotLeft,c[1]+f.plotTop,"L",h.x,h.y]:"circle"===d.options.gridLineInterpolation?(a=d.translate(a))&&(p=d.getLinePath(0,a)):(t(f.xAxis,function(a){a.pane===d.pane&&(k=a)}),p=[],a=d.translate(a),c=k.tickPositions,k.autoConnect&&(c= +c.concat([c[0]])),g&&(c=[].concat(c).reverse()),t(c,function(g,d){b=k.getPosition(g,a);p.push(d?"L":"M",b.x,b.y)}));return p},getTitlePosition:function(){var a=this.center,g=this.chart,d=this.options.title;return{x:g.plotLeft+a[0]+(d.x||0),y:g.plotTop+a[1]-{high:.5,middle:.25,low:0}[d.align]*a[2]+(d.y||0)}}};u(k,"init",function(f,g,k){var b=g.angular,p=g.polar,n=k.isX,u=b&&n,e,A=g.options,m=k.pane||0;if(b){if(w(this,u?c:l),e=!n)this.defaultRadialOptions=this.defaultRadialGaugeOptions}else p&&(w(this, +l),this.defaultRadialOptions=(e=n)?this.defaultRadialXOptions:q(this.defaultYAxisOptions,this.defaultRadialYOptions));b||p?(this.isRadial=!0,g.inverted=!1,A.chart.zoomType=null):this.isRadial=!1;f.call(this,g,k);u||!b&&!p||(f=this.options,g.panes||(g.panes=[]),this.pane=g=g.panes[m]=g.panes[m]||new a(h(A.pane)[m],g,this),g=g.options,this.angleRad=(f.angle||0)*Math.PI/180,this.startAngleRad=(g.startAngle-90)*Math.PI/180,this.endAngleRad=(d(g.endAngle,g.startAngle+360)-90)*Math.PI/180,this.offset=f.offset|| +0,this.isCircular=e)});u(k,"autoLabelAlign",function(a){if(!this.isRadial)return a.apply(this,[].slice.call(arguments,1))});u(b,"getPosition",function(a,d,c,f,h){var g=this.axis;return g.getPosition?g.getPosition(c):a.call(this,d,c,f,h)});u(b,"getLabelPosition",function(a,g,c,f,h,k,b,l,u){var n=this.axis,p=k.y,e=20,y=k.align,v=(n.translate(this.pos)+n.startAngleRad+Math.PI/2)/Math.PI*180%360;n.isRadial?(a=n.getPosition(this.pos,n.center[2]/2+d(k.distance,-25)),"auto"===k.rotation?f.attr({rotation:v}): +null===p&&(p=n.chart.renderer.fontMetrics(f.styles.fontSize).b-f.getBBox().height/2),null===y&&(n.isCircular?(this.label.getBBox().width>n.len*n.tickInterval/(n.max-n.min)&&(e=0),y=v>e&&v<180-e?"left":v>180+e&&v<360-e?"right":"center"):y="center",f.attr({align:y})),a.x+=k.x,a.y+=p):a=a.call(this,g,c,f,h,k,b,l,u);return a});u(b,"getMarkPath",function(a,d,c,f,h,k,b){var g=this.axis;g.isRadial?(a=g.getPosition(this.pos,g.center[2]/2+f),d=["M",d,c,"L",a.x,a.y]):d=a.call(this,d,c,f,h,k,b);return d})})(x); +(function(b){var r=b.each,t=b.noop,w=b.pick,m=b.Series,q=b.seriesType,e=b.seriesTypes;q("arearange","area",{lineWidth:1,marker:null,threshold:null,tooltip:{pointFormat:'\x3cspan style\x3d"color:{series.color}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cb\x3e{point.low}\x3c/b\x3e - \x3cb\x3e{point.high}\x3c/b\x3e\x3cbr/\x3e'},trackByArea:!0,dataLabels:{align:null,verticalAlign:null,xLow:0,xHigh:0,yLow:0,yHigh:0},states:{hover:{halo:!1}}},{pointArrayMap:["low","high"],dataLabelCollections:["dataLabel", +"dataLabelUpper"],toYData:function(a){return[a.low,a.high]},pointValKey:"low",deferTranslatePolar:!0,highToXY:function(a){var d=this.chart,f=this.xAxis.postTranslate(a.rectPlotX,this.yAxis.len-a.plotHigh);a.plotHighX=f.x-d.plotLeft;a.plotHigh=f.y-d.plotTop},translate:function(){var a=this,d=a.yAxis,f=!!a.modifyValue;e.area.prototype.translate.apply(a);r(a.points,function(h){var b=h.low,c=h.high,l=h.plotY;null===c||null===b?h.isNull=!0:(h.plotLow=l,h.plotHigh=d.translate(f?a.modifyValue(c,h):c,0,1, +0,1),f&&(h.yBottom=h.plotHigh))});this.chart.polar&&r(this.points,function(d){a.highToXY(d)})},getGraphPath:function(a){var d=[],f=[],h,b=e.area.prototype.getGraphPath,c,l,k;k=this.options;var p=k.step;a=a||this.points;for(h=a.length;h--;)c=a[h],c.isNull||k.connectEnds||a[h+1]&&!a[h+1].isNull||f.push({plotX:c.plotX,plotY:c.plotY,doCurve:!1}),l={polarPlotY:c.polarPlotY,rectPlotX:c.rectPlotX,yBottom:c.yBottom,plotX:w(c.plotHighX,c.plotX),plotY:c.plotHigh,isNull:c.isNull},f.push(l),d.push(l),c.isNull|| +k.connectEnds||a[h-1]&&!a[h-1].isNull||f.push({plotX:c.plotX,plotY:c.plotY,doCurve:!1});a=b.call(this,a);p&&(!0===p&&(p="left"),k.step={left:"right",center:"center",right:"left"}[p]);d=b.call(this,d);f=b.call(this,f);k.step=p;k=[].concat(a,d);this.chart.polar||"M"!==f[0]||(f[0]="L");this.graphPath=k;this.areaPath=this.areaPath.concat(a,f);k.isArea=!0;k.xMap=a.xMap;this.areaPath.xMap=a.xMap;return k},drawDataLabels:function(){var a=this.data,d=a.length,f,h=[],b=m.prototype,c=this.options.dataLabels, +l=c.align,k=c.verticalAlign,p=c.inside,g,n,e=this.chart.inverted;if(c.enabled||this._hasPointLabels){for(f=d;f--;)if(g=a[f])n=p?g.plotHighg.plotLow,g.y=g.high,g._plotY=g.plotY,g.plotY=g.plotHigh,h[f]=g.dataLabel,g.dataLabel=g.dataLabelUpper,g.below=n,e?l||(c.align=n?"right":"left"):k||(c.verticalAlign=n?"top":"bottom"),c.x=c.xHigh,c.y=c.yHigh;b.drawDataLabels&&b.drawDataLabels.apply(this,arguments);for(f=d;f--;)if(g=a[f])n=p?g.plotHighg.plotLow,g.dataLabelUpper= +g.dataLabel,g.dataLabel=h[f],g.y=g.low,g.plotY=g._plotY,g.below=!n,e?l||(c.align=n?"left":"right"):k||(c.verticalAlign=n?"bottom":"top"),c.x=c.xLow,c.y=c.yLow;b.drawDataLabels&&b.drawDataLabels.apply(this,arguments)}c.align=l;c.verticalAlign=k},alignDataLabel:function(){e.column.prototype.alignDataLabel.apply(this,arguments)},setStackedPoints:t,getSymbol:t,drawPoints:t})})(x);(function(b){var r=b.seriesType;r("areasplinerange","arearange",null,{getPointSpline:b.seriesTypes.spline.prototype.getPointSpline})})(x); +(function(b){var r=b.defaultPlotOptions,t=b.each,w=b.merge,m=b.noop,q=b.pick,e=b.seriesType,a=b.seriesTypes.column.prototype;e("columnrange","arearange",w(r.column,r.arearange,{lineWidth:1,pointRange:null}),{translate:function(){var d=this,f=d.yAxis,b=d.xAxis,u=b.startAngleRad,c,l=d.chart,k=d.xAxis.isRadial,p;a.translate.apply(d);t(d.points,function(a){var g=a.shapeArgs,h=d.options.minPointLength,e,v;a.plotHigh=p=f.translate(a.high,0,1,0,1);a.plotLow=a.plotY;v=p;e=q(a.rectPlotY,a.plotY)-p;Math.abs(e)< +h?(h-=e,e+=h,v-=h/2):0>e&&(e*=-1,v-=e);k?(c=a.barX+u,a.shapeType="path",a.shapeArgs={d:d.polarArc(v+e,v,c,c+a.pointWidth)}):(g.height=e,g.y=v,a.tooltipPos=l.inverted?[f.len+f.pos-l.plotLeft-v-e/2,b.len+b.pos-l.plotTop-g.x-g.width/2,e]:[b.left-l.plotLeft+g.x+g.width/2,f.pos-l.plotTop+v+e/2,e])})},directTouch:!0,trackerGroups:["group","dataLabelsGroup"],drawGraph:m,crispCol:a.crispCol,drawPoints:a.drawPoints,drawTracker:a.drawTracker,getColumnMetrics:a.getColumnMetrics,animate:function(){return a.animate.apply(this, +arguments)},polarArc:function(){return a.polarArc.apply(this,arguments)},pointAttribs:a.pointAttribs})})(x);(function(b){var r=b.each,t=b.isNumber,w=b.merge,m=b.pick,q=b.pInt,e=b.Series,a=b.seriesType,d=b.TrackerMixin;a("gauge","line",{dataLabels:{enabled:!0,defer:!1,y:15,borderRadius:3,crop:!1,verticalAlign:"top",zIndex:2,borderWidth:1,borderColor:"#cccccc"},dial:{},pivot:{},tooltip:{headerFormat:""},showInLegend:!1},{angular:!0,directTouch:!0,drawGraph:b.noop,fixedBox:!0,forceDL:!0,noSharedTooltip:!0, +trackerGroups:["group","dataLabelsGroup"],translate:function(){var a=this.yAxis,d=this.options,b=a.center;this.generatePoints();r(this.points,function(c){var f=w(d.dial,c.dial),k=q(m(f.radius,80))*b[2]/200,h=q(m(f.baseLength,70))*k/100,g=q(m(f.rearLength,10))*k/100,n=f.baseWidth||3,u=f.topWidth||1,e=d.overshoot,v=a.startAngleRad+a.translate(c.y,null,null,null,!0);t(e)?(e=e/180*Math.PI,v=Math.max(a.startAngleRad-e,Math.min(a.endAngleRad+e,v))):!1===d.wrap&&(v=Math.max(a.startAngleRad,Math.min(a.endAngleRad, +v)));v=180*v/Math.PI;c.shapeType="path";c.shapeArgs={d:f.path||["M",-g,-n/2,"L",h,-n/2,k,-u/2,k,u/2,h,n/2,-g,n/2,"z"],translateX:b[0],translateY:b[1],rotation:v};c.plotX=b[0];c.plotY=b[1]})},drawPoints:function(){var a=this,d=a.yAxis.center,b=a.pivot,c=a.options,l=c.pivot,k=a.chart.renderer;r(a.points,function(d){var g=d.graphic,b=d.shapeArgs,f=b.d,h=w(c.dial,d.dial);g?(g.animate(b),b.d=f):(d.graphic=k[d.shapeType](b).attr({rotation:b.rotation,zIndex:1}).addClass("highcharts-dial").add(a.group),d.graphic.attr({stroke:h.borderColor|| +"none","stroke-width":h.borderWidth||0,fill:h.backgroundColor||"#000000"}))});b?b.animate({translateX:d[0],translateY:d[1]}):(a.pivot=k.circle(0,0,m(l.radius,5)).attr({zIndex:2}).addClass("highcharts-pivot").translate(d[0],d[1]).add(a.group),a.pivot.attr({"stroke-width":l.borderWidth||0,stroke:l.borderColor||"#cccccc",fill:l.backgroundColor||"#000000"}))},animate:function(a){var d=this;a||(r(d.points,function(a){var c=a.graphic;c&&(c.attr({rotation:180*d.yAxis.startAngleRad/Math.PI}),c.animate({rotation:a.shapeArgs.rotation}, +d.options.animation))}),d.animate=null)},render:function(){this.group=this.plotGroup("group","series",this.visible?"visible":"hidden",this.options.zIndex,this.chart.seriesGroup);e.prototype.render.call(this);this.group.clip(this.chart.clipRect)},setData:function(a,d){e.prototype.setData.call(this,a,!1);this.processData();this.generatePoints();m(d,!0)&&this.chart.redraw()},drawTracker:d&&d.drawTrackerPoint},{setState:function(a){this.state=a}})})(x);(function(b){var r=b.each,t=b.noop,w=b.pick,m=b.seriesType, +q=b.seriesTypes;m("boxplot","column",{threshold:null,tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eMaximum: {point.high}\x3cbr/\x3eUpper quartile: {point.q3}\x3cbr/\x3eMedian: {point.median}\x3cbr/\x3eLower quartile: {point.q1}\x3cbr/\x3eMinimum: {point.low}\x3cbr/\x3e'},whiskerLength:"50%",fillColor:"#ffffff",lineWidth:1,medianWidth:2,states:{hover:{brightness:-.3}},whiskerWidth:2},{pointArrayMap:["low","q1","median", +"q3","high"],toYData:function(b){return[b.low,b.q1,b.median,b.q3,b.high]},pointValKey:"high",pointAttribs:function(b){var a=this.options,d=b&&b.color||this.color;return{fill:b.fillColor||a.fillColor||d,stroke:a.lineColor||d,"stroke-width":a.lineWidth||0}},drawDataLabels:t,translate:function(){var b=this.yAxis,a=this.pointArrayMap;q.column.prototype.translate.apply(this);r(this.points,function(d){r(a,function(a){null!==d[a]&&(d[a+"Plot"]=b.translate(d[a],0,1,0,1))})})},drawPoints:function(){var b= +this,a=b.options,d=b.chart.renderer,f,h,u,c,l,k,p=0,g,n,m,q,v=!1!==b.doQuartiles,t,x=b.options.whiskerLength;r(b.points,function(e){var r=e.graphic,y=r?"animate":"attr",I=e.shapeArgs,z={},B={},G={},H=e.color||b.color;void 0!==e.plotY&&(g=I.width,n=Math.floor(I.x),m=n+g,q=Math.round(g/2),f=Math.floor(v?e.q1Plot:e.lowPlot),h=Math.floor(v?e.q3Plot:e.lowPlot),u=Math.floor(e.highPlot),c=Math.floor(e.lowPlot),r||(e.graphic=r=d.g("point").add(b.group),e.stem=d.path().addClass("highcharts-boxplot-stem").add(r), +x&&(e.whiskers=d.path().addClass("highcharts-boxplot-whisker").add(r)),v&&(e.box=d.path(void 0).addClass("highcharts-boxplot-box").add(r)),e.medianShape=d.path(void 0).addClass("highcharts-boxplot-median").add(r),z.stroke=e.stemColor||a.stemColor||H,z["stroke-width"]=w(e.stemWidth,a.stemWidth,a.lineWidth),z.dashstyle=e.stemDashStyle||a.stemDashStyle,e.stem.attr(z),x&&(B.stroke=e.whiskerColor||a.whiskerColor||H,B["stroke-width"]=w(e.whiskerWidth,a.whiskerWidth,a.lineWidth),e.whiskers.attr(B)),v&&(r= +b.pointAttribs(e),e.box.attr(r)),G.stroke=e.medianColor||a.medianColor||H,G["stroke-width"]=w(e.medianWidth,a.medianWidth,a.lineWidth),e.medianShape.attr(G)),k=e.stem.strokeWidth()%2/2,p=n+q+k,e.stem[y]({d:["M",p,h,"L",p,u,"M",p,f,"L",p,c]}),v&&(k=e.box.strokeWidth()%2/2,f=Math.floor(f)+k,h=Math.floor(h)+k,n+=k,m+=k,e.box[y]({d:["M",n,h,"L",n,f,"L",m,f,"L",m,h,"L",n,h,"z"]})),x&&(k=e.whiskers.strokeWidth()%2/2,u+=k,c+=k,t=/%$/.test(x)?q*parseFloat(x)/100:x/2,e.whiskers[y]({d:["M",p-t,u,"L",p+t,u, +"M",p-t,c,"L",p+t,c]})),l=Math.round(e.medianPlot),k=e.medianShape.strokeWidth()%2/2,l+=k,e.medianShape[y]({d:["M",n,l,"L",m,l]}))})},setStackedPoints:t})})(x);(function(b){var r=b.each,t=b.noop,w=b.seriesType,m=b.seriesTypes;w("errorbar","boxplot",{color:"#000000",grouping:!1,linkedTo:":previous",tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e {series.name}: \x3cb\x3e{point.low}\x3c/b\x3e - \x3cb\x3e{point.high}\x3c/b\x3e\x3cbr/\x3e'},whiskerWidth:null},{type:"errorbar", +pointArrayMap:["low","high"],toYData:function(b){return[b.low,b.high]},pointValKey:"high",doQuartiles:!1,drawDataLabels:m.arearange?function(){var b=this.pointValKey;m.arearange.prototype.drawDataLabels.call(this);r(this.data,function(e){e.y=e[b]})}:t,getColumnMetrics:function(){return this.linkedParent&&this.linkedParent.columnMetrics||m.column.prototype.getColumnMetrics.call(this)}})})(x);(function(b){var r=b.correctFloat,t=b.isNumber,w=b.pick,m=b.Point,q=b.Series,e=b.seriesType,a=b.seriesTypes; +e("waterfall","column",{dataLabels:{inside:!0},lineWidth:1,lineColor:"#333333",dashStyle:"dot",borderColor:"#333333",states:{hover:{lineWidthPlus:0}}},{pointValKey:"y",translate:function(){var d=this.options,b=this.yAxis,h,e,c,l,k,p,g,n,m,q=w(d.minPointLength,5),v=d.threshold,t=d.stacking;a.column.prototype.translate.apply(this);this.minPointLengthOffset=0;g=n=v;e=this.points;h=0;for(d=e.length;hl.height&&(l.y+=l.height,l.height*=-1),c.plotY=l.y=Math.round(l.y)- +this.borderWidth%2/2,l.height=Math.max(Math.round(l.height),.001),c.yBottom=l.y+l.height,l.height<=q&&(l.height=q,this.minPointLengthOffset+=q),l.y-=this.minPointLengthOffset,l=c.plotY+(c.negative?l.height:0)-this.minPointLengthOffset,this.chart.inverted?c.tooltipPos[0]=b.len-l:c.tooltipPos[1]=l},processData:function(a){var b=this.yData,d=this.options.data,e,c=b.length,l,k,p,g,n,m;k=l=p=g=this.options.threshold||0;for(m=0;ma[k-1].y&&(l[2]+=c.height,l[5]+=c.height),e=e.concat(l);return e},drawGraph:function(){q.prototype.drawGraph.call(this);this.graph.attr({d:this.getCrispPath()})},getExtremes:b.noop},{getClassName:function(){var a=m.prototype.getClassName.call(this);this.isSum?a+=" highcharts-sum":this.isIntermediateSum&&(a+=" highcharts-intermediate-sum"); +return a},isValid:function(){return t(this.y,!0)||this.isSum||this.isIntermediateSum}})})(x);(function(b){var r=b.Series,t=b.seriesType,w=b.seriesTypes;t("polygon","scatter",{marker:{enabled:!1,states:{hover:{enabled:!1}}},stickyTracking:!1,tooltip:{followPointer:!0,pointFormat:""},trackByArea:!0},{type:"polygon",getGraphPath:function(){for(var b=r.prototype.getGraphPath.call(this),q=b.length+1;q--;)(q===b.length||"M"===b[q])&&0=this.minPxSize/2?(d.shapeType="circle",d.shapeArgs={x:d.plotX,y:d.plotY,r:c},d.dlBox={x:d.plotX-c,y:d.plotY-c,width:2*c,height:2*c}):d.shapeArgs=d.plotY=d.dlBox=void 0},drawLegendSymbol:function(a,b){var d=this.chart.renderer,c=d.fontMetrics(a.itemStyle.fontSize).f/2;b.legendSymbol=d.circle(c,a.baseline-c,c).attr({zIndex:3}).add(b.legendGroup);b.legendSymbol.isMarker= +!0},drawPoints:l.column.prototype.drawPoints,alignDataLabel:l.column.prototype.alignDataLabel,buildKDTree:a,applyZones:a},{haloPath:function(a){return h.prototype.haloPath.call(this,this.shapeArgs.r+a)},ttBelow:!1});w.prototype.beforePadding=function(){var a=this,b=this.len,c=this.chart,h=0,l=b,u=this.isXAxis,m=u?"xData":"yData",w=this.min,x={},A=Math.min(c.plotWidth,c.plotHeight),C=Number.MAX_VALUE,D=-Number.MAX_VALUE,E=this.max-w,z=b/E,F=[];q(this.series,function(b){var g=b.options;!b.bubblePadding|| +!b.visible&&c.options.chart.ignoreHiddenSeries||(a.allowZoomOutside=!0,F.push(b),u&&(q(["minSize","maxSize"],function(a){var b=g[a],d=/%$/.test(b),b=f(b);x[a]=d?A*b/100:b}),b.minPxSize=x.minSize,b.maxPxSize=Math.max(x.maxSize,x.minSize),b=b.zData,b.length&&(C=d(g.zMin,Math.min(C,Math.max(t(b),!1===g.displayNegative?g.zThreshold:-Number.MAX_VALUE))),D=d(g.zMax,Math.max(D,r(b))))))});q(F,function(b){var d=b[m],c=d.length,f;u&&b.getRadii(C,D,b.minPxSize,b.maxPxSize);if(0f&&(f+=360),a.clientX=f):a.clientX=a.plotX};m.spline&&q(m.spline.prototype,"getPointSpline",function(a,b,f,h){var d,c,e,k,p,g,n;this.chart.polar?(d=f.plotX, +c=f.plotY,a=b[h-1],e=b[h+1],this.connectEnds&&(a||(a=b[b.length-2]),e||(e=b[1])),a&&e&&(k=a.plotX,p=a.plotY,b=e.plotX,g=e.plotY,k=(1.5*d+k)/2.5,p=(1.5*c+p)/2.5,e=(1.5*d+b)/2.5,n=(1.5*c+g)/2.5,b=Math.sqrt(Math.pow(k-d,2)+Math.pow(p-c,2)),g=Math.sqrt(Math.pow(e-d,2)+Math.pow(n-c,2)),k=Math.atan2(p-c,k-d),p=Math.atan2(n-c,e-d),n=Math.PI/2+(k+p)/2,Math.abs(k-n)>Math.PI/2&&(n-=Math.PI),k=d+Math.cos(n)*b,p=c+Math.sin(n)*b,e=d+Math.cos(Math.PI+n)*g,n=c+Math.sin(Math.PI+n)*g,f.rightContX=e,f.rightContY=n), +h?(f=["C",a.rightContX||a.plotX,a.rightContY||a.plotY,k||d,p||c,d,c],a.rightContX=a.rightContY=null):f=["M",d,c]):f=a.call(this,b,f,h);return f});q(e,"translate",function(a){var b=this.chart;a.call(this);if(b.polar&&(this.kdByAngle=b.tooltip&&b.tooltip.shared,!this.preventPostTranslate))for(a=this.points,b=a.length;b--;)this.toXY(a[b])});q(e,"getGraphPath",function(a,b){var d=this,e,m;if(this.chart.polar){b=b||this.points;for(e=0;eb.center[1]}),q(m,"alignDataLabel",function(a,b,f,h,m,c){this.chart.polar?(a=b.rectPlotX/Math.PI*180,null===h.align&&(h.align=20a?"left":200a?"right":"center"),null===h.verticalAlign&&(h.verticalAlign=45>a||315a?"top":"middle"),e.alignDataLabel.call(this,b,f,h,m,c)):a.call(this, +b,f,h,m,c)}));q(b,"getCoordinates",function(a,b){var d=this.chart,e={xAxis:[],yAxis:[]};d.polar?t(d.axes,function(a){var c=a.isXAxis,f=a.center,h=b.chartX-f[0]-d.plotLeft,f=b.chartY-f[1]-d.plotTop;e[c?"xAxis":"yAxis"].push({axis:a,value:a.translate(c?Math.PI-Math.atan2(h,f):Math.sqrt(Math.pow(h,2)+Math.pow(f,2)),!0)})}):e=a.call(this,b);return e})})(x)}); diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/highstock.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/highstock.js new file mode 100644 index 0000000..34a3f91 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/highstock.js @@ -0,0 +1,496 @@ +/* + Highstock JS v5.0.3 (2016-11-18) + + (c) 2009-2016 Torstein Honsi + + License: www.highcharts.com/license +*/ +(function(N,a){"object"===typeof module&&module.exports?module.exports=N.document?a(N):a:N.Highcharts=a(N)})("undefined"!==typeof window?window:this,function(N){N=function(){var a=window,D=a.document,B=a.navigator&&a.navigator.userAgent||"",G=D&&D.createElementNS&&!!D.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect,H=/(edge|msie|trident)/i.test(B)&&!window.opera,p=!G,l=/Firefox/.test(B),r=l&&4>parseInt(B.split("Firefox/")[1],10);return a.Highcharts?a.Highcharts.error(16,!0):{product:"Highstock", +version:"5.0.3",deg2rad:2*Math.PI/360,doc:D,hasBidiBug:r,hasTouch:D&&void 0!==D.documentElement.ontouchstart,isMS:H,isWebKit:/AppleWebKit/.test(B),isFirefox:l,isTouchDevice:/(Mobile|Android|Windows Phone)/.test(B),SVG_NS:"http://www.w3.org/2000/svg",chartCount:0,seriesTypes:{},symbolSizes:{},svg:G,vml:p,win:a,charts:[],marginNames:["plotTop","marginRight","marginBottom","plotLeft"],noop:function(){}}}();(function(a){var D=[],B=a.charts,G=a.doc,H=a.win;a.error=function(a,l){a="Highcharts error #"+ +a+": www.highcharts.com/errors/"+a;if(l)throw Error(a);H.console&&console.log(a)};a.Fx=function(a,l,r){this.options=l;this.elem=a;this.prop=r};a.Fx.prototype={dSetter:function(){var a=this.paths[0],l=this.paths[1],r=[],w=this.now,t=a.length,k;if(1===w)r=this.toD;else if(t===l.length&&1>w)for(;t--;)k=parseFloat(a[t]),r[t]=isNaN(k)?a[t]:w*parseFloat(l[t]-k)+k;else r=l;this.elem.attr("d",r)},update:function(){var a=this.elem,l=this.prop,r=this.now,w=this.options.step;if(this[l+"Setter"])this[l+"Setter"](); +else a.attr?a.element&&a.attr(l,r):a.style[l]=r+this.unit;w&&w.call(a,r,this)},run:function(a,l,r){var p=this,t=function(a){return t.stopped?!1:p.step(a)},k;this.startTime=+new Date;this.start=a;this.end=l;this.unit=r;this.now=this.start;this.pos=0;t.elem=this.elem;t()&&1===D.push(t)&&(t.timerId=setInterval(function(){for(k=0;k=k+this.startTime){this.now=this.end;this.pos=1;this.update();a=m[this.prop]=!0;for(e in m)!0!==m[e]&&(a=!1);a&&t&&t.call(p);p=!1}else this.pos=w.easing((l-this.startTime)/k),this.now=this.start+(this.end-this.start)*this.pos,this.update(),p=!0;return p},initPath:function(p,l,r){function w(a){for(b=a.length;b--;)"M"!==a[b]&&"L"!==a[b]||a.splice(b+1,0,a[b+1],a[b+2],a[b+1],a[b+2])}function t(a,c){for(;a.lengthm?"AM":"PM",P:12>m?"am":"pm",S:q(t.getSeconds()),L:q(Math.round(l%1E3),3)},a.dateFormats);for(k in w)for(;-1!==p.indexOf("%"+k);)p= +p.replace("%"+k,"function"===typeof w[k]?w[k](l):w[k]);return r?p.substr(0,1).toUpperCase()+p.substr(1):p};a.formatSingle=function(p,l){var r=/\.([0-9])/,w=a.defaultOptions.lang;/f$/.test(p)?(r=(r=p.match(r))?r[1]:-1,null!==l&&(l=a.numberFormat(l,r,w.decimalPoint,-1=r&&(l=[1/r])));for(w=0;w=p||!t&&k<=(l[w]+(l[w+1]||l[w]))/ +2);w++);return m*r};a.stableSort=function(a,l){var r=a.length,p,t;for(t=0;tr&&(r=a[l]);return r};a.destroyObjectProperties=function(a,l){for(var r in a)a[r]&&a[r]!==l&&a[r].destroy&&a[r].destroy(),delete a[r]};a.discardElement=function(p){var l= +a.garbageBin;l||(l=a.createElement("div"));p&&l.appendChild(p);l.innerHTML=""};a.correctFloat=function(a,l){return parseFloat(a.toPrecision(l||14))};a.setAnimation=function(p,l){l.renderer.globalAnimation=a.pick(p,l.options.chart.animation,!0)};a.animObject=function(p){return a.isObject(p)?a.merge(p):{duration:p?500:0}};a.timeUnits={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5,month:24192E5,year:314496E5};a.numberFormat=function(p,l,r,w){p=+p||0;l=+l;var t=a.defaultOptions.lang, +k=(p.toString().split(".")[1]||"").length,m,e,g=Math.abs(p);-1===l?l=Math.min(k,20):a.isNumber(l)||(l=2);m=String(a.pInt(g.toFixed(l)));e=3p?"-":"")+(e?m.substr(0,e)+w:"");p+=m.substr(e).replace(/(\d{3})(?=\d)/g,"$1"+w);l&&(w=Math.abs(g-m+Math.pow(10,-Math.max(l,k)-1)),p+=r+w.toFixed(l).slice(2));return p};Math.easeInOutSine=function(a){return-.5*(Math.cos(Math.PI*a)-1)};a.getStyle=function(p,l){return"width"===l?Math.min(p.offsetWidth, +p.scrollWidth)-a.getStyle(p,"padding-left")-a.getStyle(p,"padding-right"):"height"===l?Math.min(p.offsetHeight,p.scrollHeight)-a.getStyle(p,"padding-top")-a.getStyle(p,"padding-bottom"):(p=H.getComputedStyle(p,void 0))&&a.pInt(p.getPropertyValue(l))};a.inArray=function(a,l){return l.indexOf?l.indexOf(a):[].indexOf.call(l,a)};a.grep=function(a,l){return[].filter.call(a,l)};a.map=function(a,l){for(var r=[],p=0,t=a.length;pl;l++)w[l]+=p(255*a),0>w[l]&&(w[l]=0),255z.width)z={width:0,height:0}}else z=this.htmlGetBBox();b.isSVG&&(a=z.width, +b=z.height,c&&L&&"11px"===L.fontSize&&"16.9"===b.toPrecision(3)&&(z.height=b=14),v&&(z.width=Math.abs(b*Math.sin(d))+Math.abs(a*Math.cos(d)),z.height=Math.abs(b*Math.cos(d))+Math.abs(a*Math.sin(d))));if(g&&0]*>/g,"")))},textSetter:function(a){a!==this.textStr&&(delete this.bBox,this.textStr=a,this.added&&this.renderer.buildText(this))},fillSetter:function(a,c,v){"string"===typeof a?v.setAttribute(c, +a):a&&this.colorGradient(a,c,v)},visibilitySetter:function(a,c,v){"inherit"===a?v.removeAttribute(c):v.setAttribute(c,a)},zIndexSetter:function(a,c){var v=this.renderer,z=this.parentGroup,b=(z||v).element||v.box,d,n=this.element,f;d=this.added;var e;k(a)&&(n.zIndex=a,a=+a,this[c]===a&&(d=!1),this[c]=a);if(d){(a=this.zIndex)&&z&&(z.handleZ=!0);c=b.childNodes;for(e=0;ea||!k(a)&&k(d)||0>a&&!k(d)&&b!==v.box)&&(b.insertBefore(n,z),f=!0);f||b.appendChild(n)}return f}, +_defaultSetter:function(a,c,v){v.setAttribute(c,a)}};D.prototype.yGetter=D.prototype.xGetter;D.prototype.translateXSetter=D.prototype.translateYSetter=D.prototype.rotationSetter=D.prototype.verticalAlignSetter=D.prototype.scaleXSetter=D.prototype.scaleYSetter=function(a,c){this[c]=a;this.doTransform=!0};D.prototype["stroke-widthSetter"]=D.prototype.strokeSetter=function(a,c,v){this[c]=a;this.stroke&&this["stroke-width"]?(D.prototype.fillSetter.call(this,this.stroke,"stroke",v),v.setAttribute("stroke-width", +this["stroke-width"]),this.hasStroke=!0):"stroke-width"===c&&0===a&&this.hasStroke&&(v.removeAttribute("stroke"),this.hasStroke=!1)};B=a.SVGRenderer=function(){this.init.apply(this,arguments)};B.prototype={Element:D,SVG_NS:K,init:function(a,c,v,b,d,n){var z;b=this.createElement("svg").attr({version:"1.1","class":"highcharts-root"}).css(this.getStyle(b));z=b.element;a.appendChild(z);-1===a.innerHTML.indexOf("xmlns")&&p(z,"xmlns",this.SVG_NS);this.isSVG=!0;this.box=z;this.boxWrapper=b;this.alignedObjects= +[];this.url=(E||A)&&g.getElementsByTagName("base").length?R.location.href.replace(/#.*?$/,"").replace(/([\('\)])/g,"\\$1").replace(/ /g,"%20"):"";this.createElement("desc").add().element.appendChild(g.createTextNode("Created with Highstock 5.0.3"));this.defs=this.createElement("defs").add();this.allowHTML=n;this.forExport=d;this.gradients={};this.cache={};this.cacheKeys=[];this.imgCount=0;this.setSize(c,v,!1);var f;E&&a.getBoundingClientRect&&(c=function(){w(a,{left:0,top:0});f=a.getBoundingClientRect(); +w(a,{left:Math.ceil(f.left)-f.left+"px",top:Math.ceil(f.top)-f.top+"px"})},c(),this.unSubPixelFix=G(R,"resize",c))},getStyle:function(a){return this.style=C({fontFamily:'"Lucida Grande", "Lucida Sans Unicode", Arial, Helvetica, sans-serif',fontSize:"12px"},a)},setStyle:function(a){this.boxWrapper.css(this.getStyle(a))},isHidden:function(){return!this.boxWrapper.getBBox().width},destroy:function(){var a=this.defs;this.box=null;this.boxWrapper=this.boxWrapper.destroy();e(this.gradients||{});this.gradients= +null;a&&(this.defs=a.destroy());this.unSubPixelFix&&this.unSubPixelFix();return this.alignedObjects=null},createElement:function(a){var c=new this.Element;c.init(this,a);return c},draw:J,getRadialAttr:function(a,c){return{cx:a[0]-a[2]/2+c.cx*a[2],cy:a[1]-a[2]/2+c.cy*a[2],r:c.r*a[2]}},buildText:function(a){for(var c=a.element,z=this,b=z.forExport,n=y(a.textStr,"").toString(),f=-1!==n.indexOf("\x3c"),e=c.childNodes,q,F,x,A,I=p(c,"x"),m=a.styles,k=a.textWidth,C=m&&m.lineHeight,M=m&&m.textOutline,J=m&& +"ellipsis"===m.textOverflow,E=e.length,O=k&&!a.added&&this.box,t=function(a){var v;v=/(px|em)$/.test(a&&a.style.fontSize)?a.style.fontSize:m&&m.fontSize||z.style.fontSize||12;return C?u(C):z.fontMetrics(v,a.getAttribute("style")?a:c).h};E--;)c.removeChild(e[E]);f||M||J||k||-1!==n.indexOf(" ")?(q=/<.*class="([^"]+)".*>/,F=/<.*style="([^"]+)".*>/,x=/<.*href="(http[^"]+)".*>/,O&&O.appendChild(c),n=f?n.replace(/<(b|strong)>/g,'\x3cspan style\x3d"font-weight:bold"\x3e').replace(/<(i|em)>/g,'\x3cspan style\x3d"font-style:italic"\x3e').replace(//g,"\x3c/span\x3e").split(//g):[n],n=d(n,function(a){return""!==a}),h(n,function(d,n){var f,e=0;d=d.replace(/^\s+|\s+$/g,"").replace(//g,"\x3c/span\x3e|||");f=d.split("|||");h(f,function(d){if(""!==d||1===f.length){var u={},y=g.createElementNS(z.SVG_NS,"tspan"),L,h;q.test(d)&&(L=d.match(q)[1],p(y,"class",L));F.test(d)&&(h=d.match(F)[1].replace(/(;| |^)color([ :])/,"$1fill$2"),p(y,"style",h));x.test(d)&&!b&&(p(y, +"onclick",'location.href\x3d"'+d.match(x)[1]+'"'),w(y,{cursor:"pointer"}));d=(d.replace(/<(.|\n)*?>/g,"")||" ").replace(/</g,"\x3c").replace(/>/g,"\x3e");if(" "!==d){y.appendChild(g.createTextNode(d));e?u.dx=0:n&&null!==I&&(u.x=I);p(y,u);c.appendChild(y);!e&&n&&(!v&&b&&w(y,{display:"block"}),p(y,"dy",t(y)));if(k){u=d.replace(/([^\^])-/g,"$1- ").split(" ");L="nowrap"===m.whiteSpace;for(var C=1k,void 0===A&&(A=M),J&&A?(Q/=2,""===l||!M&&.5>Q?u=[]:(l=d.substring(0,l.length+(M?-1:1)*Math.ceil(Q)),u=[l+(3k&&(k=P)),u.length&&y.appendChild(g.createTextNode(u.join(" ").replace(/- /g, +"-")));a.rotation=R}e++}}})}),A&&a.attr("title",a.textStr),O&&O.removeChild(c),M&&a.applyTextOutline&&a.applyTextOutline(M)):c.appendChild(g.createTextNode(n.replace(/</g,"\x3c").replace(/>/g,"\x3e")))},getContrast:function(a){a=r(a).rgba;return 510v?d>c+f&&de?d>c+f&&db&&e>a+f&&ed&&e>a+f&&ea?a+3:Math.round(1.2*a);return{h:c,b:Math.round(.8*c),f:a}},rotCorr:function(a, +c,v){var b=a;c&&v&&(b=Math.max(b*Math.cos(c*m),4));return{x:-a/3*Math.sin(c*m),y:b}},label:function(a,c,v,b,d,n,f,e,K){var q=this,u=q.g("button"!==K&&"label"),y=u.text=q.text("",0,0,f).attr({zIndex:1}),g,F,z=0,A=3,L=0,m,M,J,E,O,t={},l,R,r=/^url\((.*?)\)$/.test(b),p=r,P,w,Q,S;K&&u.addClass("highcharts-"+K);p=r;P=function(){return(l||0)%2/2};w=function(){var a=y.element.style,c={};F=(void 0===m||void 0===M||O)&&k(y.textStr)&&y.getBBox();u.width=(m||F.width||0)+2*A+L;u.height=(M||F.height||0)+2*A;R= +A+q.fontMetrics(a&&a.fontSize,y).b;p&&(g||(u.box=g=q.symbols[b]||r?q.symbol(b):q.rect(),g.addClass(("button"===K?"":"highcharts-label-box")+(K?" highcharts-"+K+"-box":"")),g.add(u),a=P(),c.x=a,c.y=(e?-R:0)+a),c.width=Math.round(u.width),c.height=Math.round(u.height),g.attr(C(c,t)),t={})};Q=function(){var a=L+A,c;c=e?0:R;k(m)&&F&&("center"===O||"right"===O)&&(a+={center:.5,right:1}[O]*(m-F.width));if(a!==y.x||c!==y.y)y.attr("x",a),void 0!==c&&y.attr("y",c);y.x=a;y.y=c};S=function(a,c){g?g.attr(a,c): +t[a]=c};u.onAdd=function(){y.add(u);u.attr({text:a||0===a?a:"",x:c,y:v});g&&k(d)&&u.attr({anchorX:d,anchorY:n})};u.widthSetter=function(a){m=a};u.heightSetter=function(a){M=a};u["text-alignSetter"]=function(a){O=a};u.paddingSetter=function(a){k(a)&&a!==A&&(A=u.padding=a,Q())};u.paddingLeftSetter=function(a){k(a)&&a!==L&&(L=a,Q())};u.alignSetter=function(a){a={left:0,center:.5,right:1}[a];a!==z&&(z=a,F&&u.attr({x:J}))};u.textSetter=function(a){void 0!==a&&y.textSetter(a);w();Q()};u["stroke-widthSetter"]= +function(a,c){a&&(p=!0);l=this["stroke-width"]=a;S(c,a)};u.strokeSetter=u.fillSetter=u.rSetter=function(a,c){"fill"===c&&a&&(p=!0);S(c,a)};u.anchorXSetter=function(a,c){d=a;S(c,Math.round(a)-P()-J)};u.anchorYSetter=function(a,c){n=a;S(c,a-E)};u.xSetter=function(a){u.x=a;z&&(a-=z*((m||F.width)+2*A));J=Math.round(a);u.attr("translateX",J)};u.ySetter=function(a){E=u.y=Math.round(a);u.attr("translateY",E)};var T=u.css;return C(u,{css:function(a){if(a){var c={};a=x(a);h(u.textProps,function(v){void 0!== +a[v]&&(c[v]=a[v],delete a[v])});y.css(c)}return T.call(u,a)},getBBox:function(){return{width:F.width+2*A,height:F.height+2*A,x:F.x-A,y:F.y-A}},shadow:function(a){a&&(w(),g&&g.shadow(a));return u},destroy:function(){I(u.element,"mouseenter");I(u.element,"mouseleave");y&&(y=y.destroy());g&&(g=g.destroy());D.prototype.destroy.call(u);u=q=w=Q=S=null}})}};a.Renderer=B})(N);(function(a){var D=a.attr,B=a.createElement,G=a.css,H=a.defined,p=a.each,l=a.extend,r=a.isFirefox,w=a.isMS,t=a.isWebKit,k=a.pInt,m= +a.SVGRenderer,e=a.win,g=a.wrap;l(a.SVGElement.prototype,{htmlCss:function(a){var e=this.element;if(e=a&&"SPAN"===e.tagName&&a.width)delete a.width,this.textWidth=e,this.updateTransform();a&&"ellipsis"===a.textOverflow&&(a.whiteSpace="nowrap",a.overflow="hidden");this.styles=l(this.styles,a);G(this.element,a);return this},htmlGetBBox:function(){var a=this.element;"text"===a.nodeName&&(a.style.position="absolute");return{x:a.offsetLeft,y:a.offsetTop,width:a.offsetWidth,height:a.offsetHeight}},htmlUpdateTransform:function(){if(this.added){var a= +this.renderer,e=this.element,f=this.translateX||0,d=this.translateY||0,b=this.x||0,q=this.y||0,g=this.textAlign||"left",c={left:0,center:.5,right:1}[g],F=this.styles;G(e,{marginLeft:f,marginTop:d});this.shadows&&p(this.shadows,function(a){G(a,{marginLeft:f+1,marginTop:d+1})});this.inverted&&p(e.childNodes,function(c){a.invertChild(c,e)});if("SPAN"===e.tagName){var n=this.rotation,A=k(this.textWidth),x=F&&F.whiteSpace,m=[n,g,e.innerHTML,this.textWidth,this.textAlign].join();m!==this.cTT&&(F=a.fontMetrics(e.style.fontSize).b, +H(n)&&this.setSpanRotation(n,c,F),G(e,{width:"",whiteSpace:x||"nowrap"}),e.offsetWidth>A&&/[ \-]/.test(e.textContent||e.innerText)&&G(e,{width:A+"px",display:"block",whiteSpace:x||"normal"}),this.getSpanCorrection(e.offsetWidth,F,c,n,g));G(e,{left:b+(this.xCorr||0)+"px",top:q+(this.yCorr||0)+"px"});t&&(F=e.offsetHeight);this.cTT=m}}else this.alignOnAdd=!0},setSpanRotation:function(a,g,f){var d={},b=w?"-ms-transform":t?"-webkit-transform":r?"MozTransform":e.opera?"-o-transform":"";d[b]=d.transform= +"rotate("+a+"deg)";d[b+(r?"Origin":"-origin")]=d.transformOrigin=100*g+"% "+f+"px";G(this.element,d)},getSpanCorrection:function(a,e,f){this.xCorr=-a*f;this.yCorr=-e}});l(m.prototype,{html:function(a,e,f){var d=this.createElement("span"),b=d.element,q=d.renderer,h=q.isSVG,c=function(a,c){p(["opacity","visibility"],function(b){g(a,b+"Setter",function(a,b,d,n){a.call(this,b,d,n);c[d]=b})})};d.textSetter=function(a){a!==b.innerHTML&&delete this.bBox;b.innerHTML=this.textStr=a;d.htmlUpdateTransform()}; +h&&c(d,d.element.style);d.xSetter=d.ySetter=d.alignSetter=d.rotationSetter=function(a,c){"align"===c&&(c="textAlign");d[c]=a;d.htmlUpdateTransform()};d.attr({text:a,x:Math.round(e),y:Math.round(f)}).css({fontFamily:this.style.fontFamily,fontSize:this.style.fontSize,position:"absolute"});b.style.whiteSpace="nowrap";d.css=d.htmlCss;h&&(d.add=function(a){var n,f=q.box.parentNode,e=[];if(this.parentGroup=a){if(n=a.div,!n){for(;a;)e.push(a),a=a.parentGroup;p(e.reverse(),function(a){var b,d=D(a.element, +"class");d&&(d={className:d});n=a.div=a.div||B("div",d,{position:"absolute",left:(a.translateX||0)+"px",top:(a.translateY||0)+"px",display:a.display,opacity:a.opacity,pointerEvents:a.styles&&a.styles.pointerEvents},n||f);b=n.style;l(a,{translateXSetter:function(c,d){b.left=c+"px";a[d]=c;a.doTransform=!0},translateYSetter:function(c,d){b.top=c+"px";a[d]=c;a.doTransform=!0}});c(a,b)})}}else n=f;n.appendChild(b);d.added=!0;d.alignOnAdd&&d.htmlUpdateTransform();return d});return d}})})(N);(function(a){var D, +B,G=a.createElement,H=a.css,p=a.defined,l=a.deg2rad,r=a.discardElement,w=a.doc,t=a.each,k=a.erase,m=a.extend;D=a.extendClass;var e=a.isArray,g=a.isNumber,h=a.isObject,C=a.merge;B=a.noop;var f=a.pick,d=a.pInt,b=a.SVGElement,q=a.SVGRenderer,E=a.win;a.svg||(B={docMode8:w&&8===w.documentMode,init:function(a,b){var c=["\x3c",b,' filled\x3d"f" stroked\x3d"f"'],d=["position: ","absolute",";"],f="div"===b;("shape"===b||f)&&d.push("left:0;top:0;width:1px;height:1px;");d.push("visibility: ",f?"hidden":"visible"); +c.push(' style\x3d"',d.join(""),'"/\x3e');b&&(c=f||"span"===b||"img"===b?c.join(""):a.prepVML(c),this.element=G(c));this.renderer=a},add:function(a){var c=this.renderer,b=this.element,d=c.box,f=a&&a.inverted,d=a?a.element||a:d;a&&(this.parentGroup=a);f&&c.invertChild(b,d);d.appendChild(b);this.added=!0;this.alignOnAdd&&!this.deferUpdateTransform&&this.updateTransform();if(this.onAdd)this.onAdd();this.className&&this.attr("class",this.className);return this},updateTransform:b.prototype.htmlUpdateTransform, +setSpanRotation:function(){var a=this.rotation,b=Math.cos(a*l),d=Math.sin(a*l);H(this.element,{filter:a?["progid:DXImageTransform.Microsoft.Matrix(M11\x3d",b,", M12\x3d",-d,", M21\x3d",d,", M22\x3d",b,", sizingMethod\x3d'auto expand')"].join(""):"none"})},getSpanCorrection:function(a,b,d,e,q){var c=e?Math.cos(e*l):1,n=e?Math.sin(e*l):0,u=f(this.elemHeight,this.element.offsetHeight),g;this.xCorr=0>c&&-a;this.yCorr=0>n&&-u;g=0>c*n;this.xCorr+=n*b*(g?1-d:d);this.yCorr-=c*b*(e?g?d:1-d:1);q&&"left"!== +q&&(this.xCorr-=a*d*(0>c?-1:1),e&&(this.yCorr-=u*d*(0>n?-1:1)),H(this.element,{textAlign:q}))},pathToVML:function(a){for(var c=a.length,b=[];c--;)g(a[c])?b[c]=Math.round(10*a[c])-5:"Z"===a[c]?b[c]="x":(b[c]=a[c],!a.isArc||"wa"!==a[c]&&"at"!==a[c]||(b[c+5]===b[c+7]&&(b[c+7]+=a[c+7]>a[c+5]?1:-1),b[c+6]===b[c+8]&&(b[c+8]+=a[c+8]>a[c+6]?1:-1)));return b.join(" ")||"x"},clip:function(a){var c=this,b;a?(b=a.members,k(b,c),b.push(c),c.destroyClip=function(){k(b,c)},a=a.getCSS(c)):(c.destroyClip&&c.destroyClip(), +a={clip:c.docMode8?"inherit":"rect(auto)"});return c.css(a)},css:b.prototype.htmlCss,safeRemoveChild:function(a){a.parentNode&&r(a)},destroy:function(){this.destroyClip&&this.destroyClip();return b.prototype.destroy.apply(this)},on:function(a,b){this.element["on"+a]=function(){var a=E.event;a.target=a.srcElement;b(a)};return this},cutOffPath:function(a,b){var c;a=a.split(/[ ,]/);c=a.length;if(9===c||11===c)a[c-4]=a[c-2]=d(a[c-2])-10*b;return a.join(" ")},shadow:function(a,b,e){var c=[],n,q=this.element, +g=this.renderer,u,I=q.style,F,v=q.path,K,h,m,z;v&&"string"!==typeof v.value&&(v="x");h=v;if(a){m=f(a.width,3);z=(a.opacity||.15)/m;for(n=1;3>=n;n++)K=2*m+1-2*n,e&&(h=this.cutOffPath(v.value,K+.5)),F=['\x3cshape isShadow\x3d"true" strokeweight\x3d"',K,'" filled\x3d"false" path\x3d"',h,'" coordsize\x3d"10 10" style\x3d"',q.style.cssText,'" /\x3e'],u=G(g.prepVML(F),null,{left:d(I.left)+f(a.offsetX,1),top:d(I.top)+f(a.offsetY,1)}),e&&(u.cutOff=K+1),F=['\x3cstroke color\x3d"',a.color||"#000000",'" opacity\x3d"', +z*n,'"/\x3e'],G(g.prepVML(F),null,null,u),b?b.element.appendChild(u):q.parentNode.insertBefore(u,q),c.push(u);this.shadows=c}return this},updateShadows:B,setAttr:function(a,b){this.docMode8?this.element[a]=b:this.element.setAttribute(a,b)},classSetter:function(a){(this.added?this.element:this).className=a},dashstyleSetter:function(a,b,d){(d.getElementsByTagName("stroke")[0]||G(this.renderer.prepVML(["\x3cstroke/\x3e"]),null,null,d))[b]=a||"solid";this[b]=a},dSetter:function(a,b,d){var c=this.shadows; +a=a||[];this.d=a.join&&a.join(" ");d.path=a=this.pathToVML(a);if(c)for(d=c.length;d--;)c[d].path=c[d].cutOff?this.cutOffPath(a,c[d].cutOff):a;this.setAttr(b,a)},fillSetter:function(a,b,d){var c=d.nodeName;"SPAN"===c?d.style.color=a:"IMG"!==c&&(d.filled="none"!==a,this.setAttr("fillcolor",this.renderer.color(a,d,b,this)))},"fill-opacitySetter":function(a,b,d){G(this.renderer.prepVML(["\x3c",b.split("-")[0],' opacity\x3d"',a,'"/\x3e']),null,null,d)},opacitySetter:B,rotationSetter:function(a,b,d){d= +d.style;this[b]=d[b]=a;d.left=-Math.round(Math.sin(a*l)+1)+"px";d.top=Math.round(Math.cos(a*l))+"px"},strokeSetter:function(a,b,d){this.setAttr("strokecolor",this.renderer.color(a,d,b,this))},"stroke-widthSetter":function(a,b,d){d.stroked=!!a;this[b]=a;g(a)&&(a+="px");this.setAttr("strokeweight",a)},titleSetter:function(a,b){this.setAttr(b,a)},visibilitySetter:function(a,b,d){"inherit"===a&&(a="visible");this.shadows&&t(this.shadows,function(c){c.style[b]=a});"DIV"===d.nodeName&&(a="hidden"===a?"-999em": +0,this.docMode8||(d.style[b]=a?"visible":"hidden"),b="top");d.style[b]=a},xSetter:function(a,b,d){this[b]=a;"x"===b?b="left":"y"===b&&(b="top");this.updateClipping?(this[b]=a,this.updateClipping()):d.style[b]=a},zIndexSetter:function(a,b,d){d.style[b]=a}},B["stroke-opacitySetter"]=B["fill-opacitySetter"],a.VMLElement=B=D(b,B),B.prototype.ySetter=B.prototype.widthSetter=B.prototype.heightSetter=B.prototype.xSetter,B={Element:B,isIE8:-1l[0]&&c.push([1,l[1]]);t(c,function(c,b){q.test(c[1])?(n=a.color(c[1]),v=n.get("rgb"),K=n.get("a")):(v=c[1],K=1);r.push(100*c[0]+"% "+v);b?(m=K,k=v):(z=K,E=v)});if("fill"===d)if("gradient"===g)d=A.x1||A[0]||0,c=A.y1||A[1]||0,F=A.x2||A[2]||0,A=A.y2||A[3]||0,C='angle\x3d"'+(90-180*Math.atan((A-c)/(F-d))/Math.PI)+'"',p();else{var h=A.r,w=2*h,B=2*h,D=A.cx,H=A.cy,V=b.radialReference,U,h=function(){V&&(U=f.getBBox(),D+=(V[0]- +U.x)/U.width-.5,H+=(V[1]-U.y)/U.height-.5,w*=V[2]/U.width,B*=V[2]/U.height);C='src\x3d"'+a.getOptions().global.VMLRadialGradientURL+'" size\x3d"'+w+","+B+'" origin\x3d"0.5,0.5" position\x3d"'+D+","+H+'" color2\x3d"'+E+'" ';p()};f.added?h():f.onAdd=h;h=k}else h=v}else q.test(c)&&"IMG"!==b.tagName?(n=a.color(c),f[d+"-opacitySetter"](n.get("a"),d,b),h=n.get("rgb")):(h=b.getElementsByTagName(d),h.length&&(h[0].opacity=1,h[0].type="solid"),h=c);return h},prepVML:function(a){var c=this.isIE8;a=a.join(""); +c?(a=a.replace("/\x3e",' xmlns\x3d"urn:schemas-microsoft-com:vml" /\x3e'),a=-1===a.indexOf('style\x3d"')?a.replace("/\x3e",' style\x3d"display:inline-block;behavior:url(#default#VML);" /\x3e'):a.replace('style\x3d"','style\x3d"display:inline-block;behavior:url(#default#VML);')):a=a.replace("\x3c","\x3chcv:");return a},text:q.prototype.html,path:function(a){var c={coordsize:"10 10"};e(a)?c.d=a:h(a)&&m(c,a);return this.createElement("shape").attr(c)},circle:function(a,b,d){var c=this.symbol("circle"); +h(a)&&(d=a.r,b=a.y,a=a.x);c.isCircle=!0;c.r=d;return c.attr({x:a,y:b})},g:function(a){var c;a&&(c={className:"highcharts-"+a,"class":"highcharts-"+a});return this.createElement("div").attr(c)},image:function(a,b,d,f,e){var c=this.createElement("img").attr({src:a});1f&&m-d*bg&&(F=Math.round((e-m)/Math.cos(f*w)));else if(e=m+(1-d)*b,m-d*bg&&(E=g-a.x+E*d,c=-1),E=Math.min(q, +E),EE||k.autoRotation&&(C.styles||{}).width)F=E;F&&(n.width=F,(k.options.labels.style||{}).textOverflow||(n.textOverflow="ellipsis"),C.css(n))},getPosition:function(a,k,m,e){var g=this.axis,h=g.chart,l=e&&h.oldChartHeight||h.chartHeight;return{x:a?g.translate(k+m,null,null,e)+g.transB:g.left+g.offset+(g.opposite?(e&&h.oldChartWidth||h.chartWidth)-g.right-g.left:0),y:a?l-g.bottom+g.offset-(g.opposite?g.height:0):l-g.translate(k+m,null, +null,e)-g.transB}},getLabelPosition:function(a,k,m,e,g,h,l,f){var d=this.axis,b=d.transA,q=d.reversed,E=d.staggerLines,c=d.tickRotCorr||{x:0,y:0},F=g.y;B(F)||(F=0===d.side?m.rotation?-8:-m.getBBox().height:2===d.side?c.y+8:Math.cos(m.rotation*w)*(c.y-m.getBBox(!1,0).height/2));a=a+g.x+c.x-(h&&e?h*b*(q?-1:1):0);k=k+F-(h&&!e?h*b*(q?1:-1):0);E&&(m=l/(f||1)%E,d.opposite&&(m=E-m-1),k+=d.labelOffset/E*m);return{x:a,y:Math.round(k)}},getMarkPath:function(a,k,m,e,g,h){return h.crispLine(["M",a,k,"L",a+(g? +0:-m),k+(g?m:0)],e)},render:function(a,k,m){var e=this.axis,g=e.options,h=e.chart.renderer,C=e.horiz,f=this.type,d=this.label,b=this.pos,q=g.labels,E=this.gridLine,c=f?f+"Tick":"tick",F=e.tickSize(c),n=this.mark,A=!n,x=q.step,p={},y=!0,u=e.tickmarkOffset,I=this.getPosition(C,b,u,k),M=I.x,I=I.y,v=C&&M===e.pos+e.len||!C&&I===e.pos?-1:1,K=f?f+"Grid":"grid",O=g[K+"LineWidth"],R=g[K+"LineColor"],z=g[K+"LineDashStyle"],K=l(g[c+"Width"],!f&&e.isXAxis?1:0),c=g[c+"Color"];m=l(m,1);this.isActive=!0;E||(p.stroke= +R,p["stroke-width"]=O,z&&(p.dashstyle=z),f||(p.zIndex=1),k&&(p.opacity=0),this.gridLine=E=h.path().attr(p).addClass("highcharts-"+(f?f+"-":"")+"grid-line").add(e.gridGroup));if(!k&&E&&(b=e.getPlotLinePath(b+u,E.strokeWidth()*v,k,!0)))E[this.isNew?"attr":"animate"]({d:b,opacity:m});F&&(e.opposite&&(F[0]=-F[0]),A&&(this.mark=n=h.path().addClass("highcharts-"+(f?f+"-":"")+"tick").add(e.axisGroup),n.attr({stroke:c,"stroke-width":K})),n[A?"attr":"animate"]({d:this.getMarkPath(M,I,F[0],n.strokeWidth()* +v,C,h),opacity:m}));d&&H(M)&&(d.xy=I=this.getLabelPosition(M,I,d,C,q,u,a,x),this.isFirst&&!this.isLast&&!l(g.showFirstLabel,1)||this.isLast&&!this.isFirst&&!l(g.showLastLabel,1)?y=!1:!C||e.isRadial||q.step||q.rotation||k||0===m||this.handleOverflow(I),x&&a%x&&(y=!1),y&&H(I.y)?(I.opacity=m,d[this.isNew?"attr":"animate"](I)):(r(d),d.attr("y",-9999)),this.isNew=!1)},destroy:function(){G(this,this.axis)}}})(N);(function(a){var D=a.addEvent,B=a.animObject,G=a.arrayMax,H=a.arrayMin,p=a.AxisPlotLineOrBandExtension, +l=a.color,r=a.correctFloat,w=a.defaultOptions,t=a.defined,k=a.deg2rad,m=a.destroyObjectProperties,e=a.each,g=a.error,h=a.extend,C=a.fireEvent,f=a.format,d=a.getMagnitude,b=a.grep,q=a.inArray,E=a.isArray,c=a.isNumber,F=a.isString,n=a.merge,A=a.normalizeTickInterval,x=a.pick,J=a.PlotLineOrBand,y=a.removeEvent,u=a.splat,I=a.syncTimeout,M=a.Tick;a.Axis=function(){this.init.apply(this,arguments)};a.Axis.prototype={defaultOptions:{dateTimeLabelFormats:{millisecond:"%H:%M:%S.%L",second:"%H:%M:%S",minute:"%H:%M", +hour:"%H:%M",day:"%e. %b",week:"%e. %b",month:"%b '%y",year:"%Y"},endOnTick:!1,labels:{enabled:!0,style:{color:"#666666",cursor:"default",fontSize:"11px"},x:0},minPadding:.01,maxPadding:.01,minorTickLength:2,minorTickPosition:"outside",startOfWeek:1,startOnTick:!1,tickLength:10,tickmarkPlacement:"between",tickPixelInterval:100,tickPosition:"outside",title:{align:"middle",style:{color:"#666666"}},type:"linear",minorGridLineColor:"#f2f2f2",minorGridLineWidth:1,minorTickColor:"#999999",lineColor:"#ccd6eb", +lineWidth:1,gridLineColor:"#e6e6e6",tickColor:"#ccd6eb"},defaultYAxisOptions:{endOnTick:!0,tickPixelInterval:72,showLastLabel:!0,labels:{x:-8},maxPadding:.05,minPadding:.05,startOnTick:!0,title:{rotation:270,text:"Values"},stackLabels:{enabled:!1,formatter:function(){return a.numberFormat(this.total,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"#000000",textOutline:"1px contrast"}},gridLineWidth:1,lineWidth:0},defaultLeftAxisOptions:{labels:{x:-15},title:{rotation:270}},defaultRightAxisOptions:{labels:{x:15}, +title:{rotation:90}},defaultBottomAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},defaultTopAxisOptions:{labels:{autoRotation:[-45],x:0},title:{rotation:0}},init:function(a,c){var b=c.isX;this.chart=a;this.horiz=a.inverted?!b:b;this.isXAxis=b;this.coll=this.coll||(b?"xAxis":"yAxis");this.opposite=c.opposite;this.side=c.side||(this.horiz?this.opposite?0:2:this.opposite?1:3);this.setOptions(c);var d=this.options,v=d.type;this.labelFormatter=d.labels.formatter||this.defaultLabelFormatter; +this.userOptions=c;this.minPixelPadding=0;this.reversed=d.reversed;this.visible=!1!==d.visible;this.zoomEnabled=!1!==d.zoomEnabled;this.hasNames="category"===v||!0===d.categories;this.categories=d.categories||this.hasNames;this.names=this.names||[];this.isLog="logarithmic"===v;this.isDatetimeAxis="datetime"===v;this.isLinked=t(d.linkedTo);this.ticks={};this.labelEdge=[];this.minorTicks={};this.plotLinesAndBands=[];this.alternateBands={};this.len=0;this.minRange=this.userMinRange=d.minRange||d.maxZoom; +this.range=d.range;this.offset=d.offset||0;this.stacks={};this.oldStacks={};this.stacksTouched=0;this.min=this.max=null;this.crosshair=x(d.crosshair,u(a.options.tooltip.crosshairs)[b?0:1],!1);var f;c=this.options.events;-1===q(this,a.axes)&&(b?a.axes.splice(a.xAxis.length,0,this):a.axes.push(this),a[this.coll].push(this));this.series=this.series||[];a.inverted&&b&&void 0===this.reversed&&(this.reversed=!0);this.removePlotLine=this.removePlotBand=this.removePlotBandOrLine;for(f in c)D(this,f,c[f]); +this.isLog&&(this.val2lin=this.log2lin,this.lin2val=this.lin2log)},setOptions:function(a){this.options=n(this.defaultOptions,"yAxis"===this.coll&&this.defaultYAxisOptions,[this.defaultTopAxisOptions,this.defaultRightAxisOptions,this.defaultBottomAxisOptions,this.defaultLeftAxisOptions][this.side],n(w[this.coll],a))},defaultLabelFormatter:function(){var c=this.axis,b=this.value,d=c.categories,e=this.dateTimeLabelFormat,q=w.lang,u=q.numericSymbols,q=q.numericSymbolMagnitude||1E3,n=u&&u.length,g,y=c.options.labels.format, +c=c.isLog?b:c.tickInterval;if(y)g=f(y,this);else if(d)g=b;else if(e)g=a.dateFormat(e,b);else if(n&&1E3<=c)for(;n--&&void 0===g;)d=Math.pow(q,n+1),c>=d&&0===10*b%d&&null!==u[n]&&0!==b&&(g=a.numberFormat(b/d,-1)+u[n]);void 0===g&&(g=1E4<=Math.abs(b)?a.numberFormat(b,-1):a.numberFormat(b,-1,void 0,""));return g},getSeriesExtremes:function(){var a=this,d=a.chart;a.hasVisibleSeries=!1;a.dataMin=a.dataMax=a.threshold=null;a.softThreshold=!a.isXAxis;a.buildStacks&&a.buildStacks();e(a.series,function(v){if(v.visible|| +!d.options.chart.ignoreHiddenSeries){var f=v.options,e=f.threshold,q;a.hasVisibleSeries=!0;a.isLog&&0>=e&&(e=null);if(a.isXAxis)f=v.xData,f.length&&(v=H(f),c(v)||v instanceof Date||(f=b(f,function(a){return c(a)}),v=H(f)),a.dataMin=Math.min(x(a.dataMin,f[0]),v),a.dataMax=Math.max(x(a.dataMax,f[0]),G(f)));else if(v.getExtremes(),q=v.dataMax,v=v.dataMin,t(v)&&t(q)&&(a.dataMin=Math.min(x(a.dataMin,v),v),a.dataMax=Math.max(x(a.dataMax,q),q)),t(e)&&(a.threshold=e),!f.softThreshold||a.isLog)a.softThreshold= +!1}})},translate:function(a,b,d,f,e,q){var v=this.linkedParent||this,u=1,n=0,g=f?v.oldTransA:v.transA;f=f?v.oldMin:v.min;var K=v.minPixelPadding;e=(v.isOrdinal||v.isBroken||v.isLog&&e)&&v.lin2val;g||(g=v.transA);d&&(u*=-1,n=v.len);v.reversed&&(u*=-1,n-=u*(v.sector||v.len));b?(a=(a*u+n-K)/g+f,e&&(a=v.lin2val(a))):(e&&(a=v.val2lin(a)),a=u*(a-f)*g+n+u*K+(c(q)?g*q:0));return a},toPixels:function(a,c){return this.translate(a,!1,!this.horiz,null,!0)+(c?0:this.pos)},toValue:function(a,c){return this.translate(a- +(c?0:this.pos),!0,!this.horiz,null,!0)},getPlotLinePath:function(a,b,d,f,e){var v=this.chart,q=this.left,u=this.top,n,g,K=d&&v.oldChartHeight||v.chartHeight,y=d&&v.oldChartWidth||v.chartWidth,z;n=this.transB;var h=function(a,c,b){if(ab)f?a=Math.min(Math.max(c,a),b):z=!0;return a};e=x(e,this.translate(a,null,null,d));a=d=Math.round(e+n);n=g=Math.round(K-e-n);c(e)?this.horiz?(n=u,g=K-this.bottom,a=d=h(a,q,q+this.width)):(a=q,d=y-this.right,n=g=h(n,u,u+this.height)):z=!0;return z&&!f?null:v.renderer.crispLine(["M", +a,n,"L",d,g],b||1)},getLinearTickPositions:function(a,b,d){var v,f=r(Math.floor(b/a)*a),e=r(Math.ceil(d/a)*a),q=[];if(b===d&&c(b))return[b];for(b=f;b<=e;){q.push(b);b=r(b+a);if(b===v)break;v=b}return q},getMinorTickPositions:function(){var a=this.options,c=this.tickPositions,b=this.minorTickInterval,d=[],f,e=this.pointRangePadding||0;f=this.min-e;var e=this.max+e,q=e-f;if(q&&q/b=this.minRange,q,u,n,g,y,h;this.isXAxis&&void 0===this.minRange&&!this.isLog&&(t(a.min)||t(a.max)?this.minRange=null:(e(this.series,function(a){g=a.xData;for(u=y=a.xIncrement? +1:g.length-1;0=E?(p=E,m=0):b.dataMax<=E&&(J=E,I=0)),b.min=x(w,p,b.dataMin),b.max=x(B,J,b.dataMax));q&&(!a&&0>=Math.min(b.min, +x(b.dataMin,b.min))&&g(10,1),b.min=r(u(b.min),15),b.max=r(u(b.max),15));b.range&&t(b.max)&&(b.userMin=b.min=w=Math.max(b.min,b.minFromRange()),b.userMax=B=b.max,b.range=null);C(b,"foundExtremes");b.beforePadding&&b.beforePadding();b.adjustForMinRange();!(l||b.axisPointRange||b.usePercentage||h)&&t(b.min)&&t(b.max)&&(u=b.max-b.min)&&(!t(w)&&m&&(b.min-=u*m),!t(B)&&I&&(b.max+=u*I));c(f.floor)?b.min=Math.max(b.min,f.floor):c(f.softMin)&&(b.min=Math.min(b.min,f.softMin));c(f.ceiling)?b.max=Math.min(b.max, +f.ceiling):c(f.softMax)&&(b.max=Math.max(b.max,f.softMax));M&&t(b.dataMin)&&(E=E||0,!t(w)&&b.min=E?b.min=E:!t(B)&&b.max>E&&b.dataMax<=E&&(b.max=E));b.tickInterval=b.min===b.max||void 0===b.min||void 0===b.max?1:h&&!k&&F===b.linkedParent.options.tickPixelInterval?k=b.linkedParent.tickInterval:x(k,this.tickAmount?(b.max-b.min)/Math.max(this.tickAmount-1,1):void 0,l?1:(b.max-b.min)*F/Math.max(b.len,F));y&&!a&&e(b.series,function(a){a.processData(b.min!==b.oldMin||b.max!==b.oldMax)});b.setAxisTranslation(!0); +b.beforeSetTickPositions&&b.beforeSetTickPositions();b.postProcessTickInterval&&(b.tickInterval=b.postProcessTickInterval(b.tickInterval));b.pointRange&&!k&&(b.tickInterval=Math.max(b.pointRange,b.tickInterval));a=x(f.minTickInterval,b.isDatetimeAxis&&b.closestPointRange);!k&&b.tickIntervalb.tickInterval&&1E3b.max)),!!this.tickAmount));this.tickAmount||(b.tickInterval= +b.unsquish());this.setTickPositions()},setTickPositions:function(){var a=this.options,b,c=a.tickPositions,d=a.tickPositioner,f=a.startOnTick,e=a.endOnTick,q;this.tickmarkOffset=this.categories&&"between"===a.tickmarkPlacement&&1===this.tickInterval?.5:0;this.minorTickInterval="auto"===a.minorTickInterval&&this.tickInterval?this.tickInterval/5:a.minorTickInterval;this.tickPositions=b=c&&c.slice();!b&&(b=this.isDatetimeAxis?this.getTimeTicks(this.normalizeTimeTickInterval(this.tickInterval,a.units), +this.min,this.max,a.startOfWeek,this.ordinalPositions,this.closestPointRange,!0):this.isLog?this.getLogTickPositions(this.tickInterval,this.min,this.max):this.getLinearTickPositions(this.tickInterval,this.min,this.max),b.length>this.len&&(b=[b[0],b.pop()]),this.tickPositions=b,d&&(d=d.apply(this,[this.min,this.max])))&&(this.tickPositions=b=d);this.isLinked||(this.trimTicks(b,f,e),this.min===this.max&&t(this.min)&&!this.tickAmount&&(q=!0,this.min-=.5,this.max+=.5),this.single=q,c||d||this.adjustTickAmount())}, +trimTicks:function(a,b,c){var d=a[0],f=a[a.length-1],v=this.minPointOffset||0;if(b)this.min=d;else for(;this.min-v>a[0];)a.shift();if(c)this.max=f;else for(;this.max+vb&&(this.finalTickAmt=b,b=5);this.tickAmount=b},adjustTickAmount:function(){var a=this.tickInterval,b=this.tickPositions,c=this.tickAmount,d=this.finalTickAmt,f=b&&b.length;if(fc&&(this.tickInterval*= +2,this.setTickPositions());if(t(d)){for(a=c=b.length;a--;)(3===d&&1===a%2||2>=d&&0=f&&(b=f)),this.displayBtn=void 0!==a||void 0!==b,this.setExtremes(a,b,!1,void 0,{trigger:"zoom"});return!0},setAxisSize:function(){var a=this.chart,b=this.options,c=b.offsetLeft||0,d=this.horiz,f=x(b.width,a.plotWidth-c+(b.offsetRight||0)),e=x(b.height,a.plotHeight),q=x(b.top,a.plotTop),b=x(b.left,a.plotLeft+c),c=/%$/;c.test(e)&&(e=Math.round(parseFloat(e)/ +100*a.plotHeight));c.test(q)&&(q=Math.round(parseFloat(q)/100*a.plotHeight+a.plotTop));this.left=b;this.top=q;this.width=f;this.height=e;this.bottom=a.chartHeight-e-q;this.right=a.chartWidth-f-b;this.len=Math.max(d?f:e,0);this.pos=d?b:q},getExtremes:function(){var a=this.isLog,b=this.lin2log;return{min:a?r(b(this.min)):this.min,max:a?r(b(this.max)):this.max,dataMin:this.dataMin,dataMax:this.dataMax,userMin:this.userMin,userMax:this.userMax}},getThreshold:function(a){var b=this.isLog,c=this.lin2log, +d=b?c(this.min):this.min,b=b?c(this.max):this.max;null===a?a=d:d>a?a=d:ba?"right":195a?"left":"center"},tickSize:function(a){var b=this.options,c=b[a+"Length"],d=x(b[a+"Width"],"tick"===a&&this.isXAxis?1:0);if(d&&c)return"inside"===b[a+"Position"]&&(c=-c),[c,d]},labelMetrics:function(){return this.chart.renderer.fontMetrics(this.options.labels.style&&this.options.labels.style.fontSize, +this.ticks[0]&&this.ticks[0].label)},unsquish:function(){var a=this.options.labels,b=this.horiz,c=this.tickInterval,d=c,f=this.len/(((this.categories?1:0)+this.max-this.min)/c),q,u=a.rotation,n=this.labelMetrics(),g,y=Number.MAX_VALUE,h,I=function(a){a/=f||1;a=1=a)g=I(Math.abs(n.h/Math.sin(k*a))),b=g+Math.abs(a/360),b(c.step||0)&&!c.rotation&&(this.staggerLines||1)*a.plotWidth/d||!b&&(f&&f-a.spacing[3]||.33*a.chartWidth)},renderUnsquish:function(){var a=this.chart,b=a.renderer,c=this.tickPositions,d=this.ticks,f=this.options.labels,q=this.horiz,u=this.getSlotWidth(),g=Math.max(1, +Math.round(u-2*(f.padding||5))),y={},h=this.labelMetrics(),I=f.style&&f.style.textOverflow,A,x=0,m,k;F(f.rotation)||(y.rotation=f.rotation||0);e(c,function(a){(a=d[a])&&a.labelLength>x&&(x=a.labelLength)});this.maxLabelLength=x;if(this.autoRotation)x>g&&x>h.h?y.rotation=this.labelRotation:this.labelRotation=0;else if(u&&(A={width:g+"px"},!I))for(A.textOverflow="clip",m=c.length;!q&&m--;)if(k=c[m],g=d[k].label)g.styles&&"ellipsis"===g.styles.textOverflow?g.css({textOverflow:"clip"}):d[k].labelLength> +u&&g.css({width:u+"px"}),g.getBBox().height>this.len/c.length-(h.h-h.f)&&(g.specCss={textOverflow:"ellipsis"});y.rotation&&(A={width:(x>.5*a.chartHeight?.33*a.chartHeight:a.chartHeight)+"px"},I||(A.textOverflow="ellipsis"));if(this.labelAlign=f.align||this.autoLabelAlign(this.labelRotation))y.align=this.labelAlign;e(c,function(a){var b=(a=d[a])&&a.label;b&&(b.attr(y),A&&b.css(n(A,b.specCss)),delete b.specCss,a.rotation=y.rotation)});this.tickRotCorr=b.rotCorr(h.b,this.labelRotation||0,0!==this.side)}, +hasData:function(){return this.hasVisibleSeries||t(this.min)&&t(this.max)&&!!this.tickPositions},getOffset:function(){var a=this,b=a.chart,c=b.renderer,d=a.options,f=a.tickPositions,q=a.ticks,u=a.horiz,n=a.side,g=b.inverted?[1,0,3,2][n]:n,y,h,I=0,A,m=0,k=d.title,F=d.labels,E=0,l=a.opposite,C=b.axisOffset,b=b.clipOffset,p=[-1,1,1,-1][n],r,J=d.className,w=a.axisParent,B=this.tickSize("tick");y=a.hasData();a.showAxis=h=y||x(d.showEmpty,!0);a.staggerLines=a.horiz&&F.staggerLines;a.axisGroup||(a.gridGroup= +c.g("grid").attr({zIndex:d.gridZIndex||1}).addClass("highcharts-"+this.coll.toLowerCase()+"-grid "+(J||"")).add(w),a.axisGroup=c.g("axis").attr({zIndex:d.zIndex||2}).addClass("highcharts-"+this.coll.toLowerCase()+" "+(J||"")).add(w),a.labelGroup=c.g("axis-labels").attr({zIndex:F.zIndex||7}).addClass("highcharts-"+a.coll.toLowerCase()+"-labels "+(J||"")).add(w));if(y||a.isLinked)e(f,function(b){q[b]?q[b].addLabel():q[b]=new M(a,b)}),a.renderUnsquish(),!1===F.reserveSpace||0!==n&&2!==n&&{1:"left",3:"right"}[n]!== +a.labelAlign&&"center"!==a.labelAlign||e(f,function(a){E=Math.max(q[a].getLabelSize(),E)}),a.staggerLines&&(E*=a.staggerLines,a.labelOffset=E*(a.opposite?-1:1));else for(r in q)q[r].destroy(),delete q[r];k&&k.text&&!1!==k.enabled&&(a.axisTitle||((r=k.textAlign)||(r=(u?{low:"left",middle:"center",high:"right"}:{low:l?"right":"left",middle:"center",high:l?"left":"right"})[k.align]),a.axisTitle=c.text(k.text,0,0,k.useHTML).attr({zIndex:7,rotation:k.rotation||0,align:r}).addClass("highcharts-axis-title").css(k.style).add(a.axisGroup), +a.axisTitle.isNew=!0),h&&(I=a.axisTitle.getBBox()[u?"height":"width"],A=k.offset,m=t(A)?0:x(k.margin,u?5:10)),a.axisTitle[h?"show":"hide"](!0));a.renderLine();a.offset=p*x(d.offset,C[n]);a.tickRotCorr=a.tickRotCorr||{x:0,y:0};c=0===n?-a.labelMetrics().h:2===n?a.tickRotCorr.y:0;m=Math.abs(E)+m;E&&(m=m-c+p*(u?x(F.y,a.tickRotCorr.y+8*p):F.x));a.axisTitleMargin=x(A,m);C[n]=Math.max(C[n],a.axisTitleMargin+I+p*a.offset,m,y&&f.length&&B?B[0]:0);d=d.offset?0:2*Math.floor(a.axisLine.strokeWidth()/2);b[g]= +Math.max(b[g],d)},getLinePath:function(a){var b=this.chart,c=this.opposite,d=this.offset,f=this.horiz,e=this.left+(c?this.width:0)+d,d=b.chartHeight-this.bottom-(c?this.height:0)+d;c&&(a*=-1);return b.renderer.crispLine(["M",f?this.left:e,f?d:this.top,"L",f?b.chartWidth-this.right:e,f?d:b.chartHeight-this.bottom],a)},renderLine:function(){this.axisLine||(this.axisLine=this.chart.renderer.path().addClass("highcharts-axis-line").add(this.axisGroup),this.axisLine.attr({stroke:this.options.lineColor, +"stroke-width":this.options.lineWidth,zIndex:7}))},getTitlePosition:function(){var a=this.horiz,b=this.left,c=this.top,d=this.len,f=this.options.title,e=a?b:c,q=this.opposite,u=this.offset,n=f.x||0,g=f.y||0,y=this.chart.renderer.fontMetrics(f.style&&f.style.fontSize,this.axisTitle).f,d={low:e+(a?0:d),middle:e+d/2,high:e+(a?d:0)}[f.align],b=(a?c+this.height:b)+(a?1:-1)*(q?-1:1)*this.axisTitleMargin+(2===this.side?y:0);return{x:a?d+n:b+(q?this.width:0)+u+n,y:a?b+g-(q?this.height:0)+u:d+g}},render:function(){var a= +this,b=a.chart,d=b.renderer,f=a.options,q=a.isLog,u=a.lin2log,n=a.isLinked,g=a.tickPositions,y=a.axisTitle,h=a.ticks,A=a.minorTicks,x=a.alternateBands,m=f.stackLabels,k=f.alternateGridColor,F=a.tickmarkOffset,E=a.axisLine,l=b.hasRendered&&c(a.oldMin),C=a.showAxis,p=B(d.globalAnimation),r,t;a.labelEdge.length=0;a.overlap=!1;e([h,A,x],function(a){for(var b in a)a[b].isActive=!1});if(a.hasData()||n)a.minorTickInterval&&!a.categories&&e(a.getMinorTickPositions(),function(b){A[b]||(A[b]=new M(a,b,"minor")); +l&&A[b].isNew&&A[b].render(null,!0);A[b].render(null,!1,1)}),g.length&&(e(g,function(b,c){if(!n||b>=a.min&&b<=a.max)h[b]||(h[b]=new M(a,b)),l&&h[b].isNew&&h[b].render(c,!0,.1),h[b].render(c)}),F&&(0===a.min||a.single)&&(h[-1]||(h[-1]=new M(a,-1,null,!0)),h[-1].render(-1))),k&&e(g,function(c,d){t=void 0!==g[d+1]?g[d+1]+F:a.max-F;0===d%2&&c=e.second?0:A*Math.floor(c.getMilliseconds()/A));if(n>=e.second)c[B.hcSetSeconds](n>=e.minute?0:A*Math.floor(c.getSeconds()/ +A));if(n>=e.minute)c[B.hcSetMinutes](n>=e.hour?0:A*Math.floor(c[B.hcGetMinutes]()/A));if(n>=e.hour)c[B.hcSetHours](n>=e.day?0:A*Math.floor(c[B.hcGetHours]()/A));if(n>=e.day)c[B.hcSetDate](n>=e.month?1:A*Math.floor(c[B.hcGetDate]()/A));n>=e.month&&(c[B.hcSetMonth](n>=e.year?0:A*Math.floor(c[B.hcGetMonth]()/A)),g=c[B.hcGetFullYear]());if(n>=e.year)c[B.hcSetFullYear](g-g%A);if(n===e.week)c[B.hcSetDate](c[B.hcGetDate]()-c[B.hcGetDay]()+m(f,1));g=c[B.hcGetFullYear]();f=c[B.hcGetMonth]();var C=c[B.hcGetDate](), +y=c[B.hcGetHours]();if(B.hcTimezoneOffset||B.hcGetTimezoneOffset)x=(!q||!!B.hcGetTimezoneOffset)&&(k-h>4*e.month||t(h)!==t(k)),c=c.getTime(),c=new B(c+t(c));q=c.getTime();for(h=1;qr&&(!t||b<=w)&&void 0!==b&&h.push(b),b>w&&(q=!0),b=d;else r=e(r),w= +e(w),a=k[t?"minorTickInterval":"tickInterval"],a=p("auto"===a?null:a,this._minorAutoInterval,k.tickPixelInterval/(t?5:1)*(w-r)/((t?m/this.tickPositions.length:m)||1)),a=H(a,null,B(a)),h=G(this.getLinearTickPositions(a,r,w),g),t||(this._minorAutoInterval=a/5);t||(this.tickInterval=a);return h};D.prototype.log2lin=function(a){return Math.log(a)/Math.LN10};D.prototype.lin2log=function(a){return Math.pow(10,a)}})(N);(function(a){var D=a.dateFormat,B=a.each,G=a.extend,H=a.format,p=a.isNumber,l=a.map,r= +a.merge,w=a.pick,t=a.splat,k=a.stop,m=a.syncTimeout,e=a.timeUnits;a.Tooltip=function(){this.init.apply(this,arguments)};a.Tooltip.prototype={init:function(a,e){this.chart=a;this.options=e;this.crosshairs=[];this.now={x:0,y:0};this.isHidden=!0;this.split=e.split&&!a.inverted;this.shared=e.shared||this.split},cleanSplit:function(a){B(this.chart.series,function(e){var g=e&&e.tt;g&&(!g.isActive||a?e.tt=g.destroy():g.isActive=!1)})},getLabel:function(){var a=this.chart.renderer,e=this.options;this.label|| +(this.split?this.label=a.g("tooltip"):(this.label=a.label("",0,0,e.shape||"callout",null,null,e.useHTML,null,"tooltip").attr({padding:e.padding,r:e.borderRadius}),this.label.attr({fill:e.backgroundColor,"stroke-width":e.borderWidth}).css(e.style).shadow(e.shadow)),this.label.attr({zIndex:8}).add());return this.label},update:function(a){this.destroy();this.init(this.chart,r(!0,this.options,a))},destroy:function(){this.label&&(this.label=this.label.destroy());this.split&&this.tt&&(this.cleanSplit(this.chart, +!0),this.tt=this.tt.destroy());clearTimeout(this.hideTimer);clearTimeout(this.tooltipTimeout)},move:function(a,e,m,f){var d=this,b=d.now,q=!1!==d.options.animation&&!d.isHidden&&(1h-q?h:h-q);else if(v)b[a]=Math.max(g,e+q+f>c?e:e+q);else return!1},x=function(a,c,f,e){var q;ec-d?q=!1:b[a]=ec-f/2?c-f-2:e-f/2;return q},k=function(a){var b=c;c=h;h=b;g=a},y=function(){!1!==A.apply(0,c)?!1!==x.apply(0,h)||g||(k(!0),y()):g?b.x=b.y=0:(k(!0),y())};(f.inverted||1y&&(q=!1);a=(e.series&&e.series.yAxis&&e.series.yAxis.pos)+(e.plotY||0);a-=d.plotTop;f.push({target:e.isHeader?d.plotHeight+c:a,rank:e.isHeader?1:0,size:n.tt.getBBox().height+1,point:e,x:y,tt:A})});this.cleanSplit(); +a.distribute(f,d.plotHeight+c);B(f,function(a){var b=a.point;a.tt.attr({visibility:void 0===a.pos?"hidden":"inherit",x:q||b.isHeader?a.x:b.plotX+d.plotLeft+w(m.distance,16),y:a.pos+d.plotTop,anchorX:b.plotX+d.plotLeft,anchorY:b.isHeader?a.pos+d.plotTop-15:b.plotY+d.plotTop})})},updatePosition:function(a){var e=this.chart,g=this.getLabel(),g=(this.options.positioner||this.getPosition).call(this,g.width,g.height,a);this.move(Math.round(g.x),Math.round(g.y||0),a.plotX+e.plotLeft,a.plotY+e.plotTop)}, +getXDateFormat:function(a,h,m){var f;h=h.dateTimeLabelFormats;var d=m&&m.closestPointRange,b,q={millisecond:15,second:12,minute:9,hour:6,day:3},g,c="millisecond";if(d){g=D("%m-%d %H:%M:%S.%L",a.x);for(b in e){if(d===e.week&&+D("%w",a.x)===m.options.startOfWeek&&"00:00:00.000"===g.substr(6)){b="week";break}if(e[b]>d){b=c;break}if(q[b]&&g.substr(q[b])!=="01-01 00:00:00.000".substr(q[b]))break;"week"!==b&&(c=b)}b&&(f=h[b])}else f=h.day;return f||h.year},tooltipFooterHeaderFormatter:function(a,e){var g= +e?"footer":"header";e=a.series;var f=e.tooltipOptions,d=f.xDateFormat,b=e.xAxis,q=b&&"datetime"===b.options.type&&p(a.key),g=f[g+"Format"];q&&!d&&(d=this.getXDateFormat(a,f,b));q&&d&&(g=g.replace("{point.key}","{point.key:"+d+"}"));return H(g,{point:a,series:e})},bodyFormatter:function(a){return l(a,function(a){var e=a.series.tooltipOptions;return(e.pointFormatter||a.point.tooltipFormatter).call(a.point,e.pointFormat)})}}})(N);(function(a){var D=a.addEvent,B=a.attr,G=a.charts,H=a.color,p=a.css,l= +a.defined,r=a.doc,w=a.each,t=a.extend,k=a.fireEvent,m=a.offset,e=a.pick,g=a.removeEvent,h=a.splat,C=a.Tooltip,f=a.win;a.Pointer=function(a,b){this.init(a,b)};a.Pointer.prototype={init:function(a,b){this.options=b;this.chart=a;this.runChartClick=b.chart.events&&!!b.chart.events.click;this.pinchDown=[];this.lastValidTouch={};C&&b.tooltip.enabled&&(a.tooltip=new C(a,b.tooltip),this.followTouchMove=e(b.tooltip.followTouchMove,!0));this.setDOMEvents()},zoomOption:function(a){var b=this.chart,d=b.options.chart, +f=d.zoomType||"",b=b.inverted;/touch/.test(a.type)&&(f=e(d.pinchType,f));this.zoomX=a=/x/.test(f);this.zoomY=f=/y/.test(f);this.zoomHor=a&&!b||f&&b;this.zoomVert=f&&!b||a&&b;this.hasZoom=a||f},normalize:function(a,b){var d,e;a=a||f.event;a.target||(a.target=a.srcElement);e=a.touches?a.touches.length?a.touches.item(0):a.changedTouches[0]:a;b||(this.chartPosition=b=m(this.chart.container));void 0===e.pageX?(d=Math.max(a.x,a.clientX-b.left),b=a.y):(d=e.pageX-b.left,b=e.pageY-b.top);return t(a,{chartX:Math.round(d), +chartY:Math.round(b)})},getCoordinates:function(a){var b={xAxis:[],yAxis:[]};w(this.chart.axes,function(d){b[d.isXAxis?"xAxis":"yAxis"].push({axis:d,value:d.toValue(a[d.horiz?"chartX":"chartY"])})});return b},runPointActions:function(d){var b=this.chart,f=b.series,g=b.tooltip,c=g?g.shared:!1,h=!0,n=b.hoverPoint,m=b.hoverSeries,x,k,y,u=[],I;if(!c&&!m)for(x=0;xb.series.index?-1:1}));if(c)for(x=u.length;x--;)(u[x].x!==u[0].x||u[x].series.noSharedTooltip)&&u.splice(x,1);if(u[0]&&(u[0]!==this.prevKDPoint||g&&g.isHidden)){if(c&& +!u[0].series.noSharedTooltip){for(x=0;xh+k&&(f=h+k),cm+y&&(c=m+y),this.hasDragged=Math.sqrt(Math.pow(l-f,2)+Math.pow(v-c,2)),10x.max&&(l=x.max-c,v=!0);v?(u-=.8*(u-g[f][0]),J||(M-=.8*(M-g[f][1])),p()):g[f]=[u,M];A||(e[f]=F-E,e[q]=c);e=A?1/n:n;m[q]=c;m[f]=l;k[A?a?"scaleY":"scaleX":"scale"+d]=n;k["translate"+d]=e* +E+(u-e*y)},pinch:function(a){var r=this,t=r.chart,k=r.pinchDown,m=a.touches,e=m.length,g=r.lastValidTouch,h=r.hasZoom,C=r.selectionMarker,f={},d=1===e&&(r.inClass(a.target,"highcharts-tracker")&&t.runTrackerClick||r.runChartClick),b={};1b-6&&n(u||d.chartWidth- +2*x-v-e.x)&&(this.itemX=v,this.itemY+=p+this.lastLineHeight+I,this.lastLineHeight=0);this.maxItemWidth=Math.max(this.maxItemWidth,c);this.lastItemY=p+this.itemY+I;this.lastLineHeight=Math.max(g,this.lastLineHeight);a._legendItemPos=[this.itemX,this.itemY];f?this.itemX+=c:(this.itemY+=p+g+I,this.lastLineHeight=g);this.offsetWidth=u||Math.max((f?this.itemX-v-l:c)+x,this.offsetWidth)},getAllItems:function(){var a=[];l(this.chart.series,function(d){var b=d&&d.options;d&&m(b.showInLegend,p(b.linkedTo)? +!1:void 0,!0)&&(a=a.concat(d.legendItems||("point"===b.legendType?d.data:d)))});return a},adjustMargins:function(a,d){var b=this.chart,e=this.options,f=e.align.charAt(0)+e.verticalAlign.charAt(0)+e.layout.charAt(0);e.floating||l([/(lth|ct|rth)/,/(rtv|rm|rbv)/,/(rbh|cb|lbh)/,/(lbv|lm|ltv)/],function(c,g){c.test(f)&&!p(a[g])&&(b[t[g]]=Math.max(b[t[g]],b.legend[(g+1)%2?"legendHeight":"legendWidth"]+[1,-1,-1,1][g]*e[g%2?"x":"y"]+m(e.margin,12)+d[g]))})},render:function(){var a=this,d=a.chart,b=d.renderer, +e=a.group,h,c,m,n,k=a.box,x=a.options,p=a.padding;a.itemX=a.initialItemX;a.itemY=a.initialItemY;a.offsetWidth=0;a.lastItemY=0;e||(a.group=e=b.g("legend").attr({zIndex:7}).add(),a.contentGroup=b.g().attr({zIndex:1}).add(e),a.scrollGroup=b.g().add(a.contentGroup));a.renderTitle();h=a.getAllItems();g(h,function(a,b){return(a.options&&a.options.legendIndex||0)-(b.options&&b.options.legendIndex||0)});x.reversed&&h.reverse();a.allItems=h;a.display=c=!!h.length;a.lastLineHeight=0;l(h,function(b){a.renderItem(b)}); +m=(x.width||a.offsetWidth)+p;n=a.lastItemY+a.lastLineHeight+a.titleHeight;n=a.handleOverflow(n);n+=p;k||(a.box=k=b.rect().addClass("highcharts-legend-box").attr({r:x.borderRadius}).add(e),k.isNew=!0);k.attr({stroke:x.borderColor,"stroke-width":x.borderWidth||0,fill:x.backgroundColor||"none"}).shadow(x.shadow);0b&&!1!==h.enabled?(this.clipHeight=g=Math.max(b-20-this.titleHeight-I,0),this.currentPage=m(this.currentPage,1),this.fullHeight=a,l(v,function(a,b){var c=a._legendItemPos[1];a=Math.round(a.legendItem.getBBox().height);var d=u.length;if(!d||c-u[d-1]>g&&(r||c)!==u[d-1])u.push(r||c),d++;b===v.length-1&&c+a-u[d-1]>g&&u.push(c);c!==r&&(r=c)}),n||(n=d.clipRect= +e.clipRect(0,I,9999,0),d.contentGroup.clip(n)),t(g),y||(this.nav=y=e.g().attr({zIndex:1}).add(this.group),this.up=e.symbol("triangle",0,0,p,p).on("click",function(){d.scroll(-1,k)}).add(y),this.pager=e.text("",15,10).addClass("highcharts-legend-navigation").css(h.style).add(y),this.down=e.symbol("triangle-down",0,0,p,p).on("click",function(){d.scroll(1,k)}).add(y)),d.scroll(0),a=b):y&&(t(),y.hide(),this.scrollGroup.attr({translateY:1}),this.clipHeight=0);return a},scroll:function(a,d){var b=this.pages, +f=b.length;a=this.currentPage+a;var g=this.clipHeight,c=this.options.navigation,h=this.pager,n=this.padding;a>f&&(a=f);0f&&(g=typeof a[0],"string"===g?e.name=a[0]:"number"===g&&(e.x=a[0]),d++);b=h.value;)h=e[++g];h&&h.color&&!this.options.color&&(this.color=h.color);return h},destroy:function(){var a=this.series.chart,e=a.hoverPoints,g;a.pointCount--;e&&(this.setState(),H(e,this),e.length||(a.hoverPoints=null));if(this===a.hoverPoint)this.onMouseOut();if(this.graphic||this.dataLabel)k(this), +this.destroyElements();this.legendItem&&a.legend.destroyItem(this);for(g in this)this[g]=null},destroyElements:function(){for(var a=["graphic","dataLabel","dataLabelUpper","connector","shadowGroup"],e,g=6;g--;)e=a[g],this[e]&&(this[e]=this[e].destroy())},getLabelConfig:function(){return{x:this.category,y:this.y,color:this.color,key:this.name||this.category,series:this.series,point:this,percentage:this.percentage,total:this.total||this.stackTotal}},tooltipFormatter:function(a){var e=this.series,g= +e.tooltipOptions,h=t(g.valueDecimals,""),k=g.valuePrefix||"",f=g.valueSuffix||"";B(e.pointArrayMap||["y"],function(d){d="{point."+d;if(k||f)a=a.replace(d+"}",k+d+"}"+f);a=a.replace(d+"}",d+":,."+h+"f}")});return l(a,{point:this,series:this.series})},firePointEvent:function(a,e,g){var h=this,k=this.series.options;(k.point.events[a]||h.options&&h.options.events&&h.options.events[a])&&this.importEvents();"click"===a&&k.allowPointSelect&&(g=function(a){h.select&&h.select(null,a.ctrlKey||a.metaKey||a.shiftKey)}); +p(this,a,e,g)},visible:!0}})(N);(function(a){var D=a.addEvent,B=a.animObject,G=a.arrayMax,H=a.arrayMin,p=a.correctFloat,l=a.Date,r=a.defaultOptions,w=a.defaultPlotOptions,t=a.defined,k=a.each,m=a.erase,e=a.error,g=a.extend,h=a.fireEvent,C=a.grep,f=a.isArray,d=a.isNumber,b=a.isString,q=a.merge,E=a.pick,c=a.removeEvent,F=a.splat,n=a.stableSort,A=a.SVGElement,x=a.syncTimeout,J=a.win;a.Series=a.seriesType("line",null,{lineWidth:2,allowPointSelect:!1,showCheckbox:!1,animation:{duration:1E3},events:{}, +marker:{lineWidth:0,lineColor:"#ffffff",radius:4,states:{hover:{animation:{duration:50},enabled:!0,radiusPlus:2,lineWidthPlus:1},select:{fillColor:"#cccccc",lineColor:"#000000",lineWidth:2}}},point:{events:{}},dataLabels:{align:"center",formatter:function(){return null===this.y?"":a.numberFormat(this.y,-1)},style:{fontSize:"11px",fontWeight:"bold",color:"contrast",textOutline:"1px contrast"},verticalAlign:"bottom",x:0,y:0,padding:5},cropThreshold:300,pointRange:0,softThreshold:!0,states:{hover:{lineWidthPlus:1, +marker:{},halo:{size:10,opacity:.25}},select:{marker:{}}},stickyTracking:!0,turboThreshold:1E3},{isCartesian:!0,pointClass:a.Point,sorted:!0,requireSorting:!0,directTouch:!1,axisTypes:["xAxis","yAxis"],colorCounter:0,parallelArrays:["x","y"],coll:"series",init:function(a,b){var c=this,d,e,f=a.series,u,y=function(a,b){return E(a.options.index,a._i)-E(b.options.index,b._i)};c.chart=a;c.options=b=c.setOptions(b);c.linkedSeries=[];c.bindAxes();g(c,{name:b.name,state:"",visible:!1!==b.visible,selected:!0=== +b.selected});e=b.events;for(d in e)D(c,d,e[d]);if(e&&e.click||b.point&&b.point.events&&b.point.events.click||b.allowPointSelect)a.runTrackerClick=!0;c.getColor();c.getSymbol();k(c.parallelArrays,function(a){c[a+"Data"]=[]});c.setData(b.data,!1);c.isCartesian&&(a.hasCartesianSeries=!0);f.length&&(u=f[f.length-1]);c._i=E(u&&u._i,-1)+1;f.push(c);n(f,y);this.yAxis&&n(this.yAxis.series,y);k(f,function(a,b){a.index=b;a.name=a.name||"Series "+(b+1)})},bindAxes:function(){var a=this,b=a.options,c=a.chart, +d;k(a.axisTypes||[],function(f){k(c[f],function(c){d=c.options;if(b[f]===d.index||void 0!==b[f]&&b[f]===d.id||void 0===b[f]&&0===d.index)c.series.push(a),a[f]=c,c.isDirty=!0});a[f]||a.optionalAxis===f||e(18,!0)})},updateParallelArrays:function(a,b){var c=a.series,e=arguments,f=d(b)?function(d){var e="y"===d&&c.toYData?c.toYData(a):a[d];c[d+"Data"][b]=e}:function(a){Array.prototype[b].apply(c[a+"Data"],Array.prototype.slice.call(e,2))};k(c.parallelArrays,f)},autoIncrement:function(){var a=this.options, +b=this.xIncrement,c,d=a.pointIntervalUnit,b=E(b,a.pointStart,0);this.pointInterval=c=E(this.pointInterval,a.pointInterval,1);d&&(a=new l(b),"day"===d?a=+a[l.hcSetDate](a[l.hcGetDate]()+c):"month"===d?a=+a[l.hcSetMonth](a[l.hcGetMonth]()+c):"year"===d&&(a=+a[l.hcSetFullYear](a[l.hcGetFullYear]()+c)),c=a-b);this.xIncrement=b+c;return b},setOptions:function(a){var b=this.chart,c=b.options.plotOptions,b=b.userOptions||{},d=b.plotOptions||{},e=c[this.type];this.userOptions=a;c=q(e,c.series,a);this.tooltipOptions= +q(r.tooltip,r.plotOptions[this.type].tooltip,b.tooltip,d.series&&d.series.tooltip,d[this.type]&&d[this.type].tooltip,a.tooltip);null===e.marker&&delete c.marker;this.zoneAxis=c.zoneAxis;a=this.zones=(c.zones||[]).slice();!c.negativeColor&&!c.negativeFillColor||c.zones||a.push({value:c[this.zoneAxis+"Threshold"]||c.threshold||0,className:"highcharts-negative",color:c.negativeColor,fillColor:c.negativeFillColor});a.length&&t(a[a.length-1].value)&&a.push({color:this.color,fillColor:this.fillColor}); +return c},getCyclic:function(a,b,c){var d,e=this.userOptions,f=a+"Index",g=a+"Counter",u=c?c.length:E(this.chart.options.chart[a+"Count"],this.chart[a+"Count"]);b||(d=E(e[f],e["_"+f]),t(d)||(e["_"+f]=d=this.chart[g]%u,this.chart[g]+=1),c&&(b=c[d]));void 0!==d&&(this[f]=d);this[a]=b},getColor:function(){this.options.colorByPoint?this.options.color=null:this.getCyclic("color",this.options.color||w[this.type].color,this.chart.options.colors)},getSymbol:function(){this.getCyclic("symbol",this.options.marker.symbol, +this.chart.options.symbols)},drawLegendSymbol:a.LegendSymbolMixin.drawLineMarker,setData:function(a,c,g,n){var u=this,q=u.points,h=q&&q.length||0,y,m=u.options,x=u.chart,A=null,I=u.xAxis,l=m.turboThreshold,p=this.xData,r=this.yData,F=(y=u.pointArrayMap)&&y.length;a=a||[];y=a.length;c=E(c,!0);if(!1!==n&&y&&h===y&&!u.cropped&&!u.hasGroupedData&&u.visible)k(a,function(a,b){q[b].update&&a!==m.data[b]&&q[b].update(a,!1,null,!1)});else{u.xIncrement=null;u.colorCounter=0;k(this.parallelArrays,function(a){u[a+ +"Data"].length=0});if(l&&y>l){for(g=0;null===A&&gh||this.forceCrop))if(b[d-1]l)b=[],c=[];else if(b[0]l)f=this.cropData(this.xData,this.yData,A,l),b=f.xData,c=f.yData,f=f.start,g=!0;for(h=b.length||1;--h;)d=x?y(b[h])-y(b[h-1]):b[h]-b[h-1],0d&&this.requireSorting&&e(15);this.cropped=g;this.cropStart=f;this.processedXData=b;this.processedYData=c;this.closestPointRange=n},cropData:function(a,b,c,d){var e=a.length,f=0,g=e,n=E(this.cropShoulder,1),u;for(u=0;u=c){f=Math.max(0,u- +n);break}for(c=u;cd){g=c+n;break}return{xData:a.slice(f,g),yData:b.slice(f,g),start:f,end:g}},generatePoints:function(){var a=this.options.data,b=this.data,c,d=this.processedXData,e=this.processedYData,f=this.pointClass,g=d.length,n=this.cropStart||0,q,h=this.hasGroupedData,k,m=[],x;b||h||(b=[],b.length=a.length,b=this.data=b);for(x=0;x=q&&(c[x-1]||k)<=h,y&&k)if(y=m.length)for(;y--;)null!==m[y]&&(g[n++]=m[y]);else g[n++]=m;this.dataMin=H(g);this.dataMax=G(g)},translate:function(){this.processedXData||this.processData();this.generatePoints();var a=this.options,b=a.stacking,c=this.xAxis,e=c.categories,f=this.yAxis,g=this.points,n=g.length,q=!!this.modifyValue,h=a.pointPlacement,k="between"===h||d(h),m=a.threshold,x=a.startFromThreshold?m:0,A,l,r,F,J=Number.MAX_VALUE;"between"===h&&(h=.5);d(h)&&(h*=E(a.pointRange||c.pointRange)); +for(a=0;a=B&&(C.isNull=!0);C.plotX=A=p(Math.min(Math.max(-1E5,c.translate(w,0,0,0,1,h,"flags"===this.type)),1E5));b&&this.visible&&!C.isNull&&D&&D[w]&&(F=this.getStackIndicator(F,w,this.index),G=D[w],B=G.points[F.key],l=B[0],B=B[1],l===x&&F.key===D[w].base&&(l=E(m,f.min)),f.isLog&&0>=l&&(l=null),C.total=C.stackTotal=G.total,C.percentage=G.total&&C.y/G.total*100,C.stackY= +B,G.setOffset(this.pointXOffset||0,this.barW||0));C.yBottom=t(l)?f.translate(l,0,1,0,1):null;q&&(B=this.modifyValue(B,C));C.plotY=l="number"===typeof B&&Infinity!==B?Math.min(Math.max(-1E5,f.translate(B,0,1,0,1)),1E5):void 0;C.isInside=void 0!==l&&0<=l&&l<=f.len&&0<=A&&A<=c.len;C.clientX=k?p(c.translate(w,0,0,0,1,h)):A;C.negative=C.y<(m||0);C.category=e&&void 0!==e[C.x]?e[C.x]:C.x;C.isNull||(void 0!==r&&(J=Math.min(J,Math.abs(A-r))),r=A)}this.closestPointRangePx=J},getValidPoints:function(a,b){var c= +this.chart;return C(a||this.points||[],function(a){return b&&!c.isInsidePlot(a.plotX,a.plotY,c.inverted)?!1:!a.isNull})},setClip:function(a){var b=this.chart,c=this.options,d=b.renderer,e=b.inverted,f=this.clipBox,g=f||b.clipBox,n=this.sharedClipKey||["_sharedClip",a&&a.duration,a&&a.easing,g.height,c.xAxis,c.yAxis].join(),q=b[n],h=b[n+"m"];q||(a&&(g.width=0,b[n+"m"]=h=d.clipRect(-99,e?-b.plotLeft:-b.plotTop,99,e?b.chartWidth:b.chartHeight)),b[n]=q=d.clipRect(g),q.count={length:0});a&&!q.count[this.index]&& +(q.count[this.index]=!0,q.count.length+=1);!1!==c.clip&&(this.group.clip(a||f?q:b.clipRect),this.markerGroup.clip(h),this.sharedClipKey=n);a||(q.count[this.index]&&(delete q.count[this.index],--q.count.length),0===q.count.length&&n&&b[n]&&(f||(b[n]=b[n].destroy()),b[n+"m"]&&(b[n+"m"]=b[n+"m"].destroy())))},animate:function(a){var b=this.chart,c=B(this.options.animation),d;a?this.setClip(c):(d=this.sharedClipKey,(a=b[d])&&a.animate({width:b.plotSizeX},c),b[d+"m"]&&b[d+"m"].animate({width:b.plotSizeX+ +99},c),this.animate=null)},afterAnimate:function(){this.setClip();h(this,"afterAnimate")},drawPoints:function(){var a=this.points,b=this.chart,c,e,f,g,n=this.options.marker,q,h,k,m,x=this.markerGroup,A=E(n.enabled,this.xAxis.isRadial?!0:null,this.closestPointRangePx>2*n.radius);if(!1!==n.enabled||this._hasPointMarkers)for(e=a.length;e--;)f=a[e],c=f.plotY,g=f.graphic,q=f.marker||{},h=!!f.marker,k=A&&void 0===q.enabled||q.enabled,m=f.isInside,k&&d(c)&&null!==f.y?(c=E(q.symbol,this.symbol),f.hasImage= +0===c.indexOf("url"),k=this.markerAttribs(f,f.selected&&"select"),g?g[m?"show":"hide"](!0).animate(k):m&&(0e&&b.shadow));g&&(g.startX=c.xMap, +g.isArea=c.isArea)})},applyZones:function(){var a=this,b=this.chart,c=b.renderer,d=this.zones,e,f,g=this.clips||[],n,q=this.graph,h=this.area,m=Math.max(b.chartWidth,b.chartHeight),x=this[(this.zoneAxis||"y")+"Axis"],A,l,p=b.inverted,r,F,C,t,J=!1;d.length&&(q||h)&&x&&void 0!==x.min&&(l=x.reversed,r=x.horiz,q&&q.hide(),h&&h.hide(),A=x.getExtremes(),k(d,function(d,u){e=l?r?b.plotWidth:0:r?0:x.toPixels(A.min);e=Math.min(Math.max(E(f,e),0),m);f=Math.min(Math.max(Math.round(x.toPixels(E(d.value,A.max), +!0)),0),m);J&&(e=f=x.toPixels(A.max));F=Math.abs(e-f);C=Math.min(e,f);t=Math.max(e,f);x.isXAxis?(n={x:p?t:C,y:0,width:F,height:m},r||(n.x=b.plotHeight-n.x)):(n={x:0,y:p?t:C,width:m,height:F},r&&(n.y=b.plotWidth-n.y));p&&c.isVML&&(n=x.isXAxis?{x:0,y:l?C:t,height:n.width,width:b.chartWidth}:{x:n.y-b.plotLeft-b.spacingBox.x,y:0,width:n.height,height:b.chartHeight});g[u]?g[u].animate(n):(g[u]=c.clipRect(n),q&&a["zone-graph-"+u].clip(g[u]),h&&a["zone-area-"+u].clip(g[u]));J=d.value>A.max}),this.clips= +g)},invertGroups:function(a){function b(){var b={width:c.yAxis.len,height:c.xAxis.len};k(["group","markerGroup"],function(d){c[d]&&c[d].attr(b).invert(a)})}var c=this,d;c.xAxis&&(d=D(c.chart,"resize",b),D(c,"destroy",d),b(a),c.invertGroups=b)},plotGroup:function(a,b,c,d,e){var f=this[a],g=!f;g&&(this[a]=f=this.chart.renderer.g(b).attr({zIndex:d||.1}).add(e),f.addClass("highcharts-series-"+this.index+" highcharts-"+this.type+"-series highcharts-color-"+this.colorIndex+" "+(this.options.className|| +"")));f.attr({visibility:c})[g?"attr":"animate"](this.getPlotBox());return f},getPlotBox:function(){var a=this.chart,b=this.xAxis,c=this.yAxis;a.inverted&&(b=c,c=this.xAxis);return{translateX:b?b.left:a.plotLeft,translateY:c?c.top:a.plotTop,scaleX:1,scaleY:1}},render:function(){var a=this,b=a.chart,c,d=a.options,e=!!a.animate&&b.renderer.isSVG&&B(d.animation).duration,f=a.visible?"inherit":"hidden",g=d.zIndex,n=a.hasRendered,q=b.seriesGroup,h=b.inverted;c=a.plotGroup("group","series",f,g,q);a.markerGroup= +a.plotGroup("markerGroup","markers",f,g,q);e&&a.animate(!0);c.inverted=a.isCartesian?h:!1;a.drawGraph&&(a.drawGraph(),a.applyZones());a.drawDataLabels&&a.drawDataLabels();a.visible&&a.drawPoints();a.drawTracker&&!1!==a.options.enableMouseTracking&&a.drawTracker();a.invertGroups(h);!1===d.clip||a.sharedClipKey||n||c.clip(b.clipRect);e&&a.animate();n||(a.animationTimeout=x(function(){a.afterAnimate()},e));a.isDirty=a.isDirtyData=!1;a.hasRendered=!0},redraw:function(){var a=this.chart,b=this.isDirty|| +this.isDirtyData,c=this.group,d=this.xAxis,e=this.yAxis;c&&(a.inverted&&c.attr({width:a.plotWidth,height:a.plotHeight}),c.animate({translateX:E(d&&d.left,a.plotLeft),translateY:E(e&&e.top,a.plotTop)}));this.translate();this.render();b&&delete this.kdTree},kdDimensions:1,kdAxisArray:["clientX","plotY"],searchPoint:function(a,b){var c=this.xAxis,d=this.yAxis,e=this.chart.inverted;return this.searchKDTree({clientX:e?c.len-a.chartY+c.pos:a.chartX-c.pos,plotY:e?d.len-a.chartX+d.pos:a.chartY-d.pos},b)}, +buildKDTree:function(){function a(c,d,e){var f,g;if(g=c&&c.length)return f=b.kdAxisArray[d%e],c.sort(function(a,b){return a[f]-b[f]}),g=Math.floor(g/2),{point:c[g],left:a(c.slice(0,g),d+1,e),right:a(c.slice(g+1),d+1,e)}}var b=this,c=b.kdDimensions;delete b.kdTree;x(function(){b.kdTree=a(b.getValidPoints(null,!b.directTouch),c,c)},b.options.kdNow?0:1)},searchKDTree:function(a,b){function c(a,b,n,q){var h=b.point,u=d.kdAxisArray[n%q],k,m,x=h;m=t(a[e])&&t(h[e])?Math.pow(a[e]-h[e],2):null;k=t(a[f])&& +t(h[f])?Math.pow(a[f]-h[f],2):null;k=(m||0)+(k||0);h.dist=t(k)?Math.sqrt(k):Number.MAX_VALUE;h.distX=t(m)?Math.sqrt(m):Number.MAX_VALUE;u=a[u]-h[u];k=0>u?"left":"right";m=0>u?"right":"left";b[k]&&(k=c(a,b[k],n+1,q),x=k[g]A;)l--;this.updateParallelArrays(h,"splice",l,0,0);this.updateParallelArrays(h,l);n&&h.name&&(n[A]=h.name);q.splice(l,0,a);m&&(this.data.splice(l,0,null),this.processData());"point"===c.legendType&&this.generatePoints();d&&(f[0]&&f[0].remove?f[0].remove(!1):(f.shift(),this.updateParallelArrays(h,"shift"),q.shift()));this.isDirtyData=this.isDirty=!0;b&&g.redraw(e)},removePoint:function(a, +b,d){var c=this,e=c.data,f=e[a],g=c.points,n=c.chart,h=function(){g&&g.length===e.length&&g.splice(a,1);e.splice(a,1);c.options.data.splice(a,1);c.updateParallelArrays(f||{series:c},"splice",a,1);f&&f.destroy();c.isDirty=!0;c.isDirtyData=!0;b&&n.redraw()};q(d,n);b=C(b,!0);f?f.firePointEvent("remove",null,h):h()},remove:function(a,b,d){function c(){e.destroy();f.isDirtyLegend=f.isDirtyBox=!0;f.linkSeries();C(a,!0)&&f.redraw(b)}var e=this,f=e.chart;!1!==d?k(e,"remove",null,c):c()},update:function(a, +d){var c=this,e=this.chart,f=this.userOptions,g=this.type,q=a.type||f.type||e.options.chart.type,u=b[g].prototype,m=["group","markerGroup","dataLabelsGroup"],k;if(q&&q!==g||void 0!==a.zIndex)m.length=0;r(m,function(a){m[a]=c[a];delete c[a]});a=h(f,{animation:!1,index:this.index,pointStart:this.xData[0]},{data:this.options.data},a);this.remove(!1,null,!1);for(k in u)this[k]=void 0;t(this,b[q||g].prototype);r(m,function(a){c[a]=m[a]});this.init(e,a);e.linkSeries();C(d,!0)&&e.redraw(!1)}});t(G.prototype, +{update:function(a,b){var c=this.chart;a=c.options[this.coll][this.options.index]=h(this.userOptions,a);this.destroy(!0);this.init(c,t(a,{events:void 0}));c.isDirtyBox=!0;C(b,!0)&&c.redraw()},remove:function(a){for(var b=this.chart,c=this.coll,d=this.series,e=d.length;e--;)d[e]&&d[e].remove(!1);w(b.axes,this);w(b[c],this);b.options[c].splice(this.options.index,1);r(b[c],function(a,b){a.options.index=b});this.destroy();b.isDirtyBox=!0;C(a,!0)&&b.redraw()},setTitle:function(a,b){this.update({title:a}, +b)},setCategories:function(a,b){this.update({categories:a},b)}})})(N);(function(a){var D=a.color,B=a.each,G=a.map,H=a.pick,p=a.Series,l=a.seriesType;l("area","line",{softThreshold:!1,threshold:0},{singleStacks:!1,getStackPoints:function(){var a=[],l=[],p=this.xAxis,k=this.yAxis,m=k.stacks[this.stackKey],e={},g=this.points,h=this.index,C=k.series,f=C.length,d,b=H(k.options.reversedStacks,!0)?1:-1,q,E;if(this.options.stacking){for(q=0;qa&&t>l?(t=Math.max(a,l),m=2*l-t):tH&& +m>l?(m=Math.max(H,l),t=2*l-m):m=Math.abs(g)&&.5a.closestPointRange*a.xAxis.transA,k=a.borderWidth=r(h.borderWidth,k?0:1),f=a.yAxis,d=a.translatedThreshold=f.getThreshold(h.threshold),b=r(h.minPointLength,5),q=a.getColumnMetrics(),m=q.width,c=a.barW=Math.max(m,1+2*k),l=a.pointXOffset= +q.offset;g.inverted&&(d-=.5);h.pointPadding&&(c=Math.ceil(c));w.prototype.translate.apply(a);G(a.points,function(e){var n=r(e.yBottom,d),q=999+Math.abs(n),q=Math.min(Math.max(-q,e.plotY),f.len+q),h=e.plotX+l,k=c,u=Math.min(q,n),p,t=Math.max(q,n)-u;Math.abs(t)b?n-b:d-(p?b:0));e.barX=h;e.pointWidth=m;e.tooltipPos=g.inverted?[f.len+f.pos-g.plotLeft-q,a.xAxis.len-h-k/2,t]:[h+k/2,q+f.pos-g.plotTop,t];e.shapeType="rect";e.shapeArgs= +a.crispCol.apply(a,e.isNull?[e.plotX,f.len/2,0,0]:[h,u,k,t])})},getSymbol:a.noop,drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,drawGraph:function(){this.group[this.dense?"addClass":"removeClass"]("highcharts-dense-data")},pointAttribs:function(a,g){var e=this.options,k=this.pointAttrToOptions||{},f=k.stroke||"borderColor",d=k["stroke-width"]||"borderWidth",b=a&&a.color||this.color,q=a[f]||e[f]||this.color||b,k=e.dashStyle,m;a&&this.zones.length&&(b=(b=a.getZone())&&b.color||a.options.color|| +this.color);g&&(g=e.states[g],m=g.brightness,b=g.color||void 0!==m&&B(b).brighten(g.brightness).get()||b,q=g[f]||q,k=g.dashStyle||k);a={fill:b,stroke:q,"stroke-width":a[d]||e[d]||this[d]||0};e.borderRadius&&(a.r=e.borderRadius);k&&(a.dashstyle=k);return a},drawPoints:function(){var a=this,g=this.chart,h=a.options,m=g.renderer,f=h.animationLimit||250,d;G(a.points,function(b){var e=b.graphic;p(b.plotY)&&null!==b.y?(d=b.shapeArgs,e?(k(e),e[g.pointCountt;++t)k=r[t],a=2>t||2===t&&/%$/.test(k),r[t]=B(k,[l,H,w,r[2]][t])+(a?p:0);r[3]>r[2]&&(r[3]=r[2]);return r}}})(N);(function(a){var D=a.addEvent,B=a.defined,G=a.each,H=a.extend,p=a.inArray,l=a.noop,r=a.pick,w=a.Point,t=a.Series,k=a.seriesType,m=a.setAnimation;k("pie","line",{center:[null,null],clip:!1,colorByPoint:!0,dataLabels:{distance:30,enabled:!0,formatter:function(){return null===this.y? +void 0:this.point.name},x:0},ignoreHiddenPoint:!0,legendType:"point",marker:null,size:null,showInLegend:!1,slicedOffset:10,stickyTracking:!1,tooltip:{followPointer:!0},borderColor:"#ffffff",borderWidth:1,states:{hover:{brightness:.1,shadow:!1}}},{isCartesian:!1,requireSorting:!1,directTouch:!0,noSharedTooltip:!0,trackerGroups:["group","dataLabelsGroup"],axisTypes:[],pointAttribs:a.seriesTypes.column.prototype.pointAttribs,animate:function(a){var e=this,h=e.points,k=e.startAngleRad;a||(G(h,function(a){var d= +a.graphic,b=a.shapeArgs;d&&(d.attr({r:a.startR||e.center[3]/2,start:k,end:k}),d.animate({r:b.r,start:b.start,end:b.end},e.options.animation))}),e.animate=null)},updateTotals:function(){var a,g=0,h=this.points,k=h.length,f,d=this.options.ignoreHiddenPoint;for(a=0;af.y&&(f.y=null),g+=d&&!f.visible?0:f.y;this.total=g;for(a=0;a1.5*Math.PI?q-=2*Math.PI:q<-Math.PI/2&&(q+=2*Math.PI);t.slicedTranslation={translateX:Math.round(Math.cos(q)*k),translateY:Math.round(Math.sin(q)*k)};d=Math.cos(q)*a[2]/2;b=Math.sin(q)*a[2]/2;t.tooltipPos=[a[0]+.7*d,a[1]+.7*b];t.half=q<-Math.PI/2||q>Math.PI/2?1:0;t.angle=q;f=Math.min(f,n/5);t.labelPos=[a[0]+d+Math.cos(q)*n,a[1]+b+Math.sin(q)*n,a[0]+d+Math.cos(q)*f,a[1]+b+Math.sin(q)* +f,a[0]+d,a[1]+b,0>n?"center":t.half?"right":"left",q]}},drawGraph:null,drawPoints:function(){var a=this,g=a.chart.renderer,h,k,f,d,b=a.options.shadow;b&&!a.shadowGroup&&(a.shadowGroup=g.g("shadow").add(a.group));G(a.points,function(e){if(null!==e.y){k=e.graphic;d=e.shapeArgs;h=e.sliced?e.slicedTranslation:{};var q=e.shadowGroup;b&&!q&&(q=e.shadowGroup=g.g("shadow").add(a.shadowGroup));q&&q.attr(h);f=a.pointAttribs(e,e.selected&&"select");k?k.setRadialReference(a.center).attr(f).animate(H(d,h)):(e.graphic= +k=g[e.shapeType](d).addClass(e.getClassName()).setRadialReference(a.center).attr(h).add(a.group),e.visible||k.attr({visibility:"hidden"}),k.attr(f).attr({"stroke-linejoin":"round"}).shadow(b,q))}})},searchPoint:l,sortByAngle:function(a,g){a.sort(function(a,e){return void 0!==a.angle&&(e.angle-a.angle)*g})},drawLegendSymbol:a.LegendSymbolMixin.drawRectangle,getCenter:a.CenteredSeriesMixin.getCenter,getSymbol:l},{init:function(){w.prototype.init.apply(this,arguments);var a=this,g;a.name=r(a.name,"Slice"); +g=function(e){a.slice("select"===e.type)};D(a,"select",g);D(a,"unselect",g);return a},setVisible:function(a,g){var e=this,k=e.series,f=k.chart,d=k.options.ignoreHiddenPoint;g=r(g,d);a!==e.visible&&(e.visible=e.options.visible=a=void 0===a?!e.visible:a,k.options.data[p(e,k.data)]=e.options,G(["graphic","dataLabel","connector","shadowGroup"],function(b){if(e[b])e[b][a?"show":"hide"](!0)}),e.legendItem&&f.legend.colorizeItem(e,a),a||"hover"!==e.state||e.setState(""),d&&(k.isDirty=!0),g&&f.redraw())}, +slice:function(a,g,h){var e=this.series;m(h,e.chart);r(g,!0);this.sliced=this.options.sliced=a=B(a)?a:!this.sliced;e.options.data[p(this,e.data)]=this.options;a=a?this.slicedTranslation:{translateX:0,translateY:0};this.graphic.animate(a);this.shadowGroup&&this.shadowGroup.animate(a)},haloPath:function(a){var e=this.shapeArgs;return this.sliced||!this.visible?[]:this.series.chart.renderer.symbols.arc(e.x,e.y,e.r+a,e.r+a,{innerR:this.shapeArgs.r,start:e.start,end:e.end})}})})(N);(function(a){var D= +a.addEvent,B=a.arrayMax,G=a.defined,H=a.each,p=a.extend,l=a.format,r=a.map,w=a.merge,t=a.noop,k=a.pick,m=a.relativeLength,e=a.Series,g=a.seriesTypes,h=a.stableSort,C=a.stop;a.distribute=function(a,d){function b(a,b){return a.target-b.target}var e,f=!0,c=a,g=[],n;n=0;for(e=a.length;e--;)n+=a[e].size;if(n>d){h(a,function(a,b){return(b.rank||0)-(a.rank||0)});for(n=e=0;n<=d;)n+=a[e].size,e++;g=a.splice(e-1,a.length)}h(a,b);for(a=r(a,function(a){return{size:a.size,targets:[a.target]}});f;){for(e=a.length;e--;)f= +a[e],n=(Math.min.apply(0,f.targets)+Math.max.apply(0,f.targets))/2,f.pos=Math.min(Math.max(0,n-f.size/2),d-f.size);e=a.length;for(f=!1;e--;)0a[e].pos&&(a[e-1].size+=a[e].size,a[e-1].targets=a[e-1].targets.concat(a[e].targets),a[e-1].pos+a[e-1].size>d&&(a[e-1].pos=d-a[e-1].size),a.splice(e,1),f=!0)}e=0;H(a,function(a){var b=0;H(a.targets,function(){c[e].pos=a.pos+b;b+=c[e].size;e++})});c.push.apply(c,g);h(c,b)};e.prototype.drawDataLabels=function(){var a=this,d=a.options, +b=d.dataLabels,e=a.points,g,c,h=a.hasRendered||0,n,m,x=k(b.defer,!0),r=a.chart.renderer;if(b.enabled||a._hasPointLabels)a.dlProcessOptions&&a.dlProcessOptions(b),m=a.plotGroup("dataLabelsGroup","data-labels",x&&!h?"hidden":"visible",b.zIndex||6),x&&(m.attr({opacity:+h}),h||D(a,"afterAnimate",function(){a.visible&&m.show(!0);m[d.animation?"animate":"attr"]({opacity:1},{duration:200})})),c=b,H(e,function(e){var f,q=e.dataLabel,h,x,A=e.connector,y=!0,t,z={};g=e.dlOptions||e.options&&e.options.dataLabels; +f=k(g&&g.enabled,c.enabled)&&null!==e.y;if(q&&!f)e.dataLabel=q.destroy();else if(f){b=w(c,g);t=b.style;f=b.rotation;h=e.getLabelConfig();n=b.format?l(b.format,h):b.formatter.call(h,b);t.color=k(b.color,t.color,a.color,"#000000");if(q)G(n)?(q.attr({text:n}),y=!1):(e.dataLabel=q=q.destroy(),A&&(e.connector=A.destroy()));else if(G(n)){q={fill:b.backgroundColor,stroke:b.borderColor,"stroke-width":b.borderWidth,r:b.borderRadius||0,rotation:f,padding:b.padding,zIndex:1};"contrast"===t.color&&(z.color=b.inside|| +0>b.distance||d.stacking?r.getContrast(e.color||a.color):"#000000");d.cursor&&(z.cursor=d.cursor);for(x in q)void 0===q[x]&&delete q[x];q=e.dataLabel=r[f?"text":"label"](n,0,-9999,b.shape,null,null,b.useHTML,null,"data-label").attr(q);q.addClass("highcharts-data-label-color-"+e.colorIndex+" "+(b.className||""));q.css(p(t,z));q.add(m);q.shadow(b.shadow)}q&&a.alignDataLabel(e,q,b,null,y)}})};e.prototype.alignDataLabel=function(a,d,b,e,g){var c=this.chart,f=c.inverted,n=k(a.plotX,-9999),q=k(a.plotY, +-9999),h=d.getBBox(),m,l=b.rotation,u=b.align,r=this.visible&&(a.series.forceDL||c.isInsidePlot(n,Math.round(q),f)||e&&c.isInsidePlot(n,f?e.x+1:e.y+e.height-1,f)),t="justify"===k(b.overflow,"justify");r&&(m=b.style.fontSize,m=c.renderer.fontMetrics(m,d).b,e=p({x:f?c.plotWidth-q:n,y:Math.round(f?c.plotHeight-n:q),width:0,height:0},e),p(b,{width:h.width,height:h.height}),l?(t=!1,f=c.renderer.rotCorr(m,l),f={x:e.x+b.x+e.width/2+f.x,y:e.y+b.y+{top:0,middle:.5,bottom:1}[b.verticalAlign]*e.height},d[g? +"attr":"animate"](f).attr({align:u}),n=(l+720)%360,n=180n,"left"===u?f.y-=n?h.height:0:"center"===u?(f.x-=h.width/2,f.y-=h.height/2):"right"===u&&(f.x-=h.width,f.y-=n?0:h.height)):(d.align(b,null,e),f=d.alignAttr),t?this.justifyDataLabel(d,b,f,h,e,g):k(b.crop,!0)&&(r=c.isInsidePlot(f.x,f.y)&&c.isInsidePlot(f.x+h.width,f.y+h.height)),b.shape&&!l&&d.attr({anchorX:a.plotX,anchorY:a.plotY}));r||(C(d),d.attr({y:-9999}),d.placed=!1)};e.prototype.justifyDataLabel=function(a,d,b,e,g,c){var f=this.chart, +n=d.align,h=d.verticalAlign,q,k,m=a.box?0:a.padding||0;q=b.x+m;0>q&&("right"===n?d.align="left":d.x=-q,k=!0);q=b.x+e.width-m;q>f.plotWidth&&("left"===n?d.align="right":d.x=f.plotWidth-q,k=!0);q=b.y+m;0>q&&("bottom"===h?d.verticalAlign="top":d.y=-q,k=!0);q=b.y+e.height-m;q>f.plotHeight&&("top"===h?d.verticalAlign="bottom":d.y=f.plotHeight-q,k=!0);k&&(a.placed=!c,a.align(d,null,g))};g.pie&&(g.pie.prototype.drawDataLabels=function(){var f=this,d=f.data,b,g=f.chart,h=f.options.dataLabels,c=k(h.connectorPadding, +10),m=k(h.connectorWidth,1),n=g.plotWidth,l=g.plotHeight,x,p=h.distance,y=f.center,u=y[2]/2,t=y[1],w=0k-2?A:P,e),v._attr={visibility:S,align:D[6]},v._pos={x:L+h.x+({left:c,right:-c}[D[6]]||0),y:P+h.y-10},D.x=L,D.y=P,null===f.options.size&&(C=v.width,L-Cn-c&&(T[1]=Math.max(Math.round(L+ +C-n+c),T[1])),0>P-G/2?T[0]=Math.max(Math.round(-P+G/2),T[0]):P+G/2>l&&(T[2]=Math.max(Math.round(P+G/2-l),T[2])))}),0===B(T)||this.verifyDataLabelOverflow(T))&&(this.placeDataLabels(),w&&m&&H(this.points,function(a){var b;x=a.connector;if((v=a.dataLabel)&&v._pos&&a.visible){S=v._attr.visibility;if(b=!x)a.connector=x=g.renderer.path().addClass("highcharts-data-label-connector highcharts-color-"+a.colorIndex).add(f.dataLabelsGroup),x.attr({"stroke-width":m,stroke:h.connectorColor||a.color||"#666666"}); +x[b?"attr":"animate"]({d:f.connectorPath(a.labelPos)});x.attr("visibility",S)}else x&&(a.connector=x.destroy())}))},g.pie.prototype.connectorPath=function(a){var d=a.x,b=a.y;return k(this.options.dataLabels.softConnector,!0)?["M",d+("left"===a[6]?5:-5),b,"C",d,b,2*a[2]-a[4],2*a[3]-a[5],a[2],a[3],"L",a[4],a[5]]:["M",d+("left"===a[6]?5:-5),b,"L",a[2],a[3],"L",a[4],a[5]]},g.pie.prototype.placeDataLabels=function(){H(this.points,function(a){var d=a.dataLabel;d&&a.visible&&((a=d._pos)?(d.attr(d._attr), +d[d.moved?"animate":"attr"](a),d.moved=!0):d&&d.attr({y:-9999}))})},g.pie.prototype.alignDataLabel=t,g.pie.prototype.verifyDataLabelOverflow=function(a){var d=this.center,b=this.options,e=b.center,f=b.minSize||80,c,g;null!==e[0]?c=Math.max(d[2]-Math.max(a[1],a[3]),f):(c=Math.max(d[2]-a[1]-a[3],f),d[0]+=(a[3]-a[1])/2);null!==e[1]?c=Math.max(Math.min(c,d[2]-Math.max(a[0],a[2])),f):(c=Math.max(Math.min(c,d[2]-a[0]-a[2]),f),d[1]+=(a[0]-a[2])/2);ck(this.translatedThreshold,f.yAxis.len)),m=k(b.inside,!!this.options.stacking);n&&(g=w(n),0>g.y&&(g.height+=g.y,g.y=0),n=g.y+g.height-f.yAxis.len,0a+e||c+nb+f||g+hthis.pointCount))},pan:function(a,b){var c=this,d=c.hoverPoints, +e;d&&r(d,function(a){a.setState()});r("xy"===b?[1,0]:[1],function(b){b=c[b?"xAxis":"yAxis"][0];var d=b.horiz,f=a[d?"chartX":"chartY"],d=d?"mouseDownX":"mouseDownY",g=c[d],n=(b.pointRange||0)/2,h=b.getExtremes(),q=b.toValue(g-f,!0)+n,n=b.toValue(g+b.len-f,!0)-n,g=g>f;b.series.length&&(g||q>Math.min(h.dataMin,h.min))&&(!g||n=p(k.minWidth,0)&&this.chartHeight>=p(k.minHeight,0)};void 0===l._id&&(l._id=a.uniqueKey());m=m.call(this);!r[l._id]&&m?l.chartOptions&&(r[l._id]=this.currentOptions(l.chartOptions),this.update(l.chartOptions,w)):r[l._id]&&!m&&(this.update(r[l._id],w),delete r[l._id])};D.prototype.currentOptions=function(a){function p(a,m,e){var g,h;for(g in a)if(-1< +G(g,["series","xAxis","yAxis"]))for(a[g]=l(a[g]),e[g]=[],h=0;hd.length||void 0===h)return a.call(this,g,h,k,f);x=d.length;for(c=0;ck;d[c]5*b||w){if(d[c]>u){for(r=a.call(this,g,d[e],d[c],f);r.length&&r[0]<=u;)r.shift();r.length&&(u=r[r.length-1]);y=y.concat(r)}e=c+1}if(w)break}a= +r.info;if(q&&a.unitRange<=m.hour){c=y.length-1;for(e=1;ek?a-1:a;for(M=void 0;q--;)e=c[q],k=M-e,M&&k<.8*C&&(null===t||k<.8*t)?(n[y[q]]&&!n[y[q+1]]?(k=q+1,M=e):k=q,y.splice(k,1)):M=e}return y});w(B.prototype,{beforeSetTickPositions:function(){var a, +g=[],h=!1,k,f=this.getExtremes(),d=f.min,b=f.max,q,m=this.isXAxis&&!!this.options.breaks,f=this.options.ordinal,c=this.chart.options.chart.ignoreHiddenSeries;if(f||m){r(this.series,function(b,d){if(!(c&&!1===b.visible||!1===b.takeOrdinalPosition&&!m)&&(g=g.concat(b.processedXData),a=g.length,g.sort(function(a,b){return a-b}),a))for(d=a-1;d--;)g[d]===g[d+1]&&g.splice(d,1)});a=g.length;if(2k||b-g[g.length- +1]>k)&&(h=!0)}h?(this.ordinalPositions=g,k=this.val2lin(Math.max(d,g[0]),!0),q=Math.max(this.val2lin(Math.min(b,g[g.length-1]),!0),1),this.ordinalSlope=b=(b-d)/(q-k),this.ordinalOffset=d-k*b):this.ordinalPositions=this.ordinalSlope=this.ordinalOffset=void 0}this.isOrdinal=f&&h;this.groupIntervalFactor=null},val2lin:function(a,g){var e=this.ordinalPositions;if(e){var k=e.length,f,d;for(f=k;f--;)if(e[f]===a){d=f;break}for(f=k-1;f--;)if(a>e[f]||0===f){a=(a-e[f])/(e[f+1]-e[f]);d=f+a;break}g=g?d:this.ordinalSlope* +(d||0)+this.ordinalOffset}else g=a;return g},lin2val:function(a,g){var e=this.ordinalPositions;if(e){var k=this.ordinalSlope,f=this.ordinalOffset,d=e.length-1,b;if(g)0>a?a=e[0]:a>d?a=e[d]:(d=Math.floor(a),b=a-d);else for(;d--;)if(g=k*d+f,a>=g){k=k*(d+1)+f;b=(a-g)/(k-g);break}return void 0!==b&&void 0!==e[d]?e[d]+(b?b*(e[d+1]-e[d]):0):a}return a},getExtendedPositions:function(){var a=this.chart,g=this.series[0].currentDataGrouping,h=this.ordinalIndex,k=g?g.count+g.unitName:"raw",f=this.getExtremes(), +d,b;h||(h=this.ordinalIndex={});h[k]||(d={series:[],chart:a,getExtremes:function(){return{min:f.dataMin,max:f.dataMax}},options:{ordinal:!0},val2lin:B.prototype.val2lin},r(this.series,function(e){b={xAxis:d,xData:e.xData,chart:a,destroyGroupedData:t};b.options={dataGrouping:g?{enabled:!0,forced:!0,approximation:"open",units:[[g.unitName,[g.count]]]}:{enabled:!1}};e.processData.apply(b);d.series.push(b)}),this.beforeSetTickPositions.apply(d),h[k]=d.ordinalPositions);return h[k]},getGroupIntervalFactor:function(a, +g,h){var e;h=h.processedXData;var f=h.length,d=[];e=this.groupIntervalFactor;if(!e){for(e=0;ed?(l=p,t=e.ordinalPositions?e:p):(l=e.ordinalPositions?e:p,t=p),p=t.ordinalPositions,q>p[p.length-1]&&p.push(q),this.fixedRange=c-m,d=e.toFixedRange(null,null,n.apply(l,[x.apply(l,[m,!0])+d,!0]),n.apply(t,[x.apply(t, +[c,!0])+d,!0])),d.min>=Math.min(b.dataMin,m)&&d.max<=Math.max(q,c)&&e.setExtremes(d.min,d.max,!0,!1,{trigger:"pan"}),this.mouseDownX=k,H(this.container,{cursor:"move"})):f=!0}else f=!0;f&&a.apply(this,Array.prototype.slice.call(arguments,1))});k.prototype.gappedPath=function(){var a=this.options.gapSize,g=this.points.slice(),h=g.length-1;if(a&&0this.closestPointRange*a&&g.splice(h+1,0,{isNull:!0});return this.getGraphPath(g)}})(N);(function(a){function D(){return Array.prototype.slice.call(arguments, +1)}function B(a){a.apply(this);this.drawBreaks(this.xAxis,["x"]);this.drawBreaks(this.yAxis,G(this.pointArrayMap,["y"]))}var G=a.pick,H=a.wrap,p=a.each,l=a.extend,r=a.fireEvent,w=a.Axis,t=a.Series;l(w.prototype,{isInBreak:function(a,m){var e=a.repeat||Infinity,g=a.from,h=a.to-a.from;m=m>=g?(m-g)%e:e-(g-m)%e;return a.inclusive?m<=h:m=a)break;else if(g.isInBreak(f,a)){e-=a-f.from;break}return e};this.lin2val=function(a){var e,f;for(f=0;f=a);f++)e.toh;)m-=b;for(;mb.to||l>b.from&&db.from&&db.from&&d>b.to&&d=c[0]);A++);for(A;A<=q;A++){for(;(void 0!==c[w+1]&&a[A]>=c[w+1]||A===q)&&(l=c[w],this.dataGroupInfo={start:p,length:t[0].length},p=d.apply(this,t),void 0!==p&&(g.push(l),h.push(p),m.push(this.dataGroupInfo)),p=A,t[0]=[],t[1]=[],t[2]=[],t[3]=[],w+=1,A!==q););if(A===q)break;if(x){l=this.cropStart+A;l=e&&e[l]|| +this.pointClass.prototype.applyOptions.apply({series:this},[f[l]]);var E,C;for(E=0;Ethis.chart.plotSizeX/d||b&&f.forced)&&(e=!0);return e?d:0};G.prototype.setDataGrouping=function(a,b){var c;b=e(b,!0);a||(a={forced:!1,units:null});if(this instanceof G)for(c=this.series.length;c--;)this.series[c].update({dataGrouping:a},!1);else l(this.chart.options.series,function(b){b.dataGrouping=a},!1);b&&this.chart.redraw()}})(N);(function(a){var D=a.each,B=a.Point,G=a.seriesType,H=a.seriesTypes;G("ohlc","column",{lineWidth:1,tooltip:{pointFormat:'\x3cspan style\x3d"color:{point.color}"\x3e\u25cf\x3c/span\x3e \x3cb\x3e {series.name}\x3c/b\x3e\x3cbr/\x3eOpen: {point.open}\x3cbr/\x3eHigh: {point.high}\x3cbr/\x3eLow: {point.low}\x3cbr/\x3eClose: {point.close}\x3cbr/\x3e'}, +threshold:null,states:{hover:{lineWidth:3}}},{pointArrayMap:["open","high","low","close"],toYData:function(a){return[a.open,a.high,a.low,a.close]},pointValKey:"high",pointAttribs:function(a,l){l=H.column.prototype.pointAttribs.call(this,a,l);var p=this.options;delete l.fill;l["stroke-width"]=p.lineWidth;l.stroke=a.options.color||(a.openk)););B(g,function(a,b){var d;void 0===a.plotY&&(a.x>=c.min&&a.x<=c.max?a.plotY=e.chartHeight-p.bottom-(p.opposite?p.height:0)+p.offset-e.plotTop:a.shapeArgs={});a.plotX+=t;(f=g[b-1])&&f.plotX===a.plotX&&(void 0===f.stackIndex&&(f.stackIndex=0),d=f.stackIndex+1);a.stackIndex=d})},drawPoints:function(){var a=this.points,e=this.chart,g=e.renderer,k,l,f=this.options,d=f.y,b,q,p,c,r,n,t,x=this.yAxis;for(q=a.length;q--;)p=a[q],t=p.plotX>this.xAxis.len,k=p.plotX,c=p.stackIndex,b= +p.options.shape||f.shape,l=p.plotY,void 0!==l&&(l=p.plotY+d-(void 0!==c&&c*f.stackDistance)),r=c?void 0:p.plotX,n=c?void 0:p.plotY,c=p.graphic,void 0!==l&&0<=k&&!t?(c||(c=p.graphic=g.label("",null,null,b,null,null,f.useHTML).attr(this.pointAttribs(p)).css(G(f.style,p.style)).attr({align:"flag"===b?"left":"center",width:f.width,height:f.height,"text-align":f.textAlign}).addClass("highcharts-point").add(this.markerGroup),c.shadow(f.shadow)),0h&&(e-=Math.round((l-h)/2),h=l);e=k[a](e,g,h,l);d&&f&&e.push("M",d,g>f?g:g+l,"L",d,f);return e}});p===t&&B(["flag","circlepin","squarepin"],function(a){t.prototype.symbols[a]=k[a]})})(N);(function(a){function D(a,d,e){this.init(a,d,e)}var B=a.addEvent,G=a.Axis,H=a.correctFloat,p=a.defaultOptions, +l=a.defined,r=a.destroyObjectProperties,w=a.doc,t=a.each,k=a.fireEvent,m=a.hasTouch,e=a.isTouchDevice,g=a.merge,h=a.pick,C=a.removeEvent,f=a.wrap,d={height:e?20:14,barBorderRadius:0,buttonBorderRadius:0,liveRedraw:a.svg&&!e,margin:10,minWidth:6,step:.2,zIndex:3,barBackgroundColor:"#cccccc",barBorderWidth:1,barBorderColor:"#cccccc",buttonArrowColor:"#333333",buttonBackgroundColor:"#e6e6e6",buttonBorderColor:"#cccccc",buttonBorderWidth:1,rifleColor:"#333333",trackBackgroundColor:"#f2f2f2",trackBorderColor:"#f2f2f2", +trackBorderWidth:1};p.scrollbar=g(!0,d,p.scrollbar);D.prototype={init:function(a,e,f){this.scrollbarButtons=[];this.renderer=a;this.userOptions=e;this.options=g(d,e);this.chart=f;this.size=h(this.options.size,this.options.height);e.enabled&&(this.render(),this.initEvents(),this.addEvents())},render:function(){var a=this.renderer,d=this.options,e=this.size,c;this.group=c=a.g("scrollbar").attr({zIndex:d.zIndex,translateY:-99999}).add();this.track=a.rect().addClass("highcharts-scrollbar-track").attr({x:0, +r:d.trackBorderRadius||0,height:e,width:e}).add(c);this.track.attr({fill:d.trackBackgroundColor,stroke:d.trackBorderColor,"stroke-width":d.trackBorderWidth});this.trackBorderWidth=this.track.strokeWidth();this.track.attr({y:-this.trackBorderWidth%2/2});this.scrollbarGroup=a.g().add(c);this.scrollbar=a.rect().addClass("highcharts-scrollbar-thumb").attr({height:e,width:e,r:d.barBorderRadius||0}).add(this.scrollbarGroup);this.scrollbarRifles=a.path(this.swapXY(["M",-3,e/4,"L",-3,2*e/3,"M",0,e/4,"L", +0,2*e/3,"M",3,e/4,"L",3,2*e/3],d.vertical)).addClass("highcharts-scrollbar-rifles").add(this.scrollbarGroup);this.scrollbar.attr({fill:d.barBackgroundColor,stroke:d.barBorderColor,"stroke-width":d.barBorderWidth});this.scrollbarRifles.attr({stroke:d.rifleColor,"stroke-width":1});this.scrollbarStrokeWidth=this.scrollbar.strokeWidth();this.scrollbarGroup.translate(-this.scrollbarStrokeWidth%2/2,-this.scrollbarStrokeWidth%2/2);this.drawScrollbarButton(0);this.drawScrollbarButton(1)},position:function(a, +d,e,c){var b=this.options.vertical,f=0,g=this.rendered?"animate":"attr";this.x=a;this.y=d+this.trackBorderWidth;this.width=e;this.xOffset=this.height=c;this.yOffset=f;b?(this.width=this.yOffset=e=f=this.size,this.xOffset=d=0,this.barWidth=c-2*e,this.x=a+=this.options.margin):(this.height=this.xOffset=c=d=this.size,this.barWidth=e-2*c,this.y+=this.options.margin);this.group[g]({translateX:a,translateY:this.y});this.track[g]({width:e,height:c});this.scrollbarButtons[1].attr({translateX:b?0:e-d,translateY:b? +c-f:0})},drawScrollbarButton:function(a){var b=this.renderer,d=this.scrollbarButtons,c=this.options,e=this.size,f;f=b.g().add(this.group);d.push(f);f=b.rect().addClass("highcharts-scrollbar-button").add(f);f.attr({stroke:c.buttonBorderColor,"stroke-width":c.buttonBorderWidth,fill:c.buttonBackgroundColor});f.attr(f.crisp({x:-.5,y:-.5,width:e+1,height:e+1,r:c.buttonBorderRadius},f.strokeWidth()));f=b.path(this.swapXY(["M",e/2+(a?-1:1),e/2-3,"L",e/2+(a?-1:1),e/2+3,"L",e/2+(a?2:-2),e/2],c.vertical)).addClass("highcharts-scrollbar-arrow").add(d[a]); +f.attr({fill:c.buttonArrowColor})},swapXY:function(a,d){var b=a.length,c;if(d)for(d=0;d=k?this.scrollbarRifles.hide():this.scrollbarRifles.show(!0),!1===b.showFull&&(0>=a&&1<=d?this.group.hide():this.group.show()),this.rendered=!0)},initEvents:function(){var a=this;a.mouseMoveHandler=function(b){var d=a.chart.pointer.normalize(b),c=a.options.vertical? +"chartY":"chartX",e=a.initPositions;!a.grabbedCenter||b.touches&&0===b.touches[0][c]||(d=a.cursorToScrollbarPosition(d)[c],c=a[c],c=d-c,a.hasDragged=!0,a.updatePosition(e[0]+c,e[1]+c),a.hasDragged&&k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMType:b.type,DOMEvent:b}))};a.mouseUpHandler=function(b){a.hasDragged&&k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMType:b.type,DOMEvent:b});a.grabbedCenter=a.hasDragged=a.chartX=a.chartY=null};a.mouseDownHandler=function(b){b=a.chart.pointer.normalize(b); +b=a.cursorToScrollbarPosition(b);a.chartX=b.chartX;a.chartY=b.chartY;a.initPositions=[a.from,a.to];a.grabbedCenter=!0};a.buttonToMinClick=function(b){var d=H(a.to-a.from)*a.options.step;a.updatePosition(H(a.from-d),H(a.to-d));k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})};a.buttonToMaxClick=function(b){var d=(a.to-a.from)*a.options.step;a.updatePosition(a.from+d,a.to+d);k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})};a.trackClick=function(b){var d=a.chart.pointer.normalize(b), +c=a.to-a.from,e=a.y+a.scrollbarTop,f=a.x+a.scrollbarLeft;a.options.vertical&&d.chartY>e||!a.options.vertical&&d.chartX>f?a.updatePosition(a.from+c,a.to+c):a.updatePosition(a.from-c,a.to-c);k(a,"changed",{from:a.from,to:a.to,trigger:"scrollbar",DOMEvent:b})}},cursorToScrollbarPosition:function(a){var b=this.options,b=b.minWidth>this.calculatedWidth?b.minWidth:0;return{chartX:(a.chartX-this.x-this.xOffset)/(this.barWidth-b),chartY:(a.chartY-this.y-this.yOffset)/(this.barWidth-b)}},updatePosition:function(a, +d){1a&&(d=H(d-a),a=0);this.from=a;this.to=d},update:function(a){this.destroy();this.init(this.chart.renderer,g(!0,this.options,a),this.chart)},addEvents:function(){var a=this.options.inverted?[1,0]:[0,1],d=this.scrollbarButtons,e=this.scrollbarGroup.element,c=this.mouseDownHandler,f=this.mouseMoveHandler,g=this.mouseUpHandler,a=[[d[a[0]].element,"click",this.buttonToMinClick],[d[a[1]].element,"click",this.buttonToMaxClick],[this.track.element,"click",this.trackClick],[e, +"mousedown",c],[w,"mousemove",f],[w,"mouseup",g]];m&&a.push([e,"touchstart",c],[w,"touchmove",f],[w,"touchend",g]);t(a,function(a){B.apply(null,a)});this._events=a},removeEvents:function(){t(this._events,function(a){C.apply(null,a)});this._events=void 0},destroy:function(){var a=this.chart.scroller;this.removeEvents();t(["track","scrollbarRifles","scrollbar","scrollbarGroup","group"],function(a){this[a]&&this[a].destroy&&(this[a]=this[a].destroy())},this);a&&(a.scrollbar=null,r(a.scrollbarButtons))}}; +f(G.prototype,"init",function(a){var b=this;a.apply(b,[].slice.call(arguments,1));b.options.scrollbar&&b.options.scrollbar.enabled&&(b.options.scrollbar.vertical=!b.horiz,b.options.startOnTick=b.options.endOnTick=!1,b.scrollbar=new D(b.chart.renderer,b.options.scrollbar,b.chart),B(b.scrollbar,"changed",function(a){var c=Math.min(h(b.options.min,b.min),b.min,b.dataMin),d=Math.max(h(b.options.max,b.max),b.max,b.dataMax)-c,e;b.horiz&&!b.reversed||!b.horiz&&b.reversed?(e=c+d*this.to,c+=d*this.from):(e= +c+d*(1-this.from),c+=d*(1-this.to));b.setExtremes(c,e,!0,!1,a)}))});f(G.prototype,"render",function(a){var b=Math.min(h(this.options.min,this.min),this.min,this.dataMin),d=Math.max(h(this.options.max,this.max),this.max,this.dataMax),c=this.scrollbar,e;a.apply(this,[].slice.call(arguments,1));c&&(this.horiz?c.position(this.left,this.top+this.height+this.offset+2+(this.opposite?0:this.axisTitleMargin),this.width,this.height):c.position(this.left+this.width+2+this.offset+(this.opposite?this.axisTitleMargin: +0),this.top,this.width,this.height),isNaN(b)||isNaN(d)||!l(this.min)||!l(this.max)?c.setRange(0,0):(e=(this.min-b)/(d-b),b=(this.max-b)/(d-b),this.horiz&&!this.reversed||!this.horiz&&this.reversed?c.setRange(e,b):c.setRange(1-b,1-e)))});f(G.prototype,"getOffset",function(a){var b=this.horiz?2:1,d=this.scrollbar;a.apply(this,[].slice.call(arguments,1));d&&(this.chart.axisOffset[b]+=d.size+d.options.margin)});f(G.prototype,"destroy",function(a){this.scrollbar&&(this.scrollbar=this.scrollbar.destroy()); +a.apply(this,[].slice.call(arguments,1))});a.Scrollbar=D})(N);(function(a){function D(a){this.init(a)}var B=a.addEvent,G=a.Axis,H=a.Chart,p=a.color,l=a.defaultOptions,r=a.defined,w=a.destroyObjectProperties,t=a.doc,k=a.each,m=a.erase,e=a.error,g=a.extend,h=a.grep,C=a.hasTouch,f=a.isNumber,d=a.isObject,b=a.isTouchDevice,q=a.merge,E=a.pick,c=a.removeEvent,F=a.Scrollbar,n=a.Series,A=a.seriesTypes,x=a.wrap,J=[].concat(a.defaultDataGroupingUnits),y=function(a){var b=h(arguments,f);if(b.length)return Math[a].apply(0, +b)};J[4]=["day",[1,2,3,4]];J[5]=["week",[1,2,3]];A=void 0===A.areaspline?"line":"areaspline";g(l,{navigator:{height:40,margin:25,maskInside:!0,handles:{backgroundColor:"#f2f2f2",borderColor:"#999999"},maskFill:p("#6685c2").setOpacity(.3).get(),outlineColor:"#cccccc",outlineWidth:1,series:{type:A,color:"#335cad",fillOpacity:.05,lineWidth:1,compare:null,dataGrouping:{approximation:"average",enabled:!0,groupPixelWidth:2,smoothed:!0,units:J},dataLabels:{enabled:!1,zIndex:2},id:"highcharts-navigator-series", +className:"highcharts-navigator-series",lineColor:null,marker:{enabled:!1},pointRange:0,shadow:!1,threshold:null},xAxis:{className:"highcharts-navigator-xaxis",tickLength:0,lineWidth:0,gridLineColor:"#e6e6e6",gridLineWidth:1,tickPixelInterval:200,labels:{align:"left",style:{color:"#999999"},x:3,y:-4},crosshair:!1},yAxis:{className:"highcharts-navigator-yaxis",gridLineWidth:0,startOnTick:!1,endOnTick:!1,minPadding:.1,maxPadding:.1,labels:{enabled:!1},crosshair:!1,title:{text:null},tickLength:0,tickWidth:0}}}); +D.prototype={drawHandle:function(a,b){var c=this.chart.renderer,d=this.handles;this.rendered||(d[b]=c.path(["M",-4.5,.5,"L",3.5,.5,3.5,15.5,-4.5,15.5,-4.5,.5,"M",-1.5,4,"L",-1.5,12,"M",.5,4,"L",.5,12]).attr({zIndex:10-b}).addClass("highcharts-navigator-handle highcharts-navigator-handle-"+["left","right"][b]).add(),c=this.navigatorOptions.handles,d[b].attr({fill:c.backgroundColor,stroke:c.borderColor,"stroke-width":1}).css({cursor:"ew-resize"}));d[b][this.rendered&&!this.hasDragged?"animate":"attr"]({translateX:Math.round(this.scrollerLeft+ +this.scrollbarHeight+parseInt(a,10)),translateY:Math.round(this.top+this.height/2-8)})},update:function(a){this.destroy();q(!0,this.chart.options.navigator,this.options,a);this.init(this.chart)},render:function(a,b,c,d){var e=this.chart,g=e.renderer,k,h,l,n;n=this.scrollbarHeight;var m=this.xAxis,p=this.navigatorOptions,u=p.maskInside,q=this.height,v=this.top,t=this.navigatorEnabled,x=this.outlineHeight,y;y=this.rendered;if(f(a)&&f(b)&&(!this.hasDragged||r(c))&&(this.navigatorLeft=k=E(m.left,e.plotLeft+ +n),this.navigatorWidth=h=E(m.len,e.plotWidth-2*n),this.scrollerLeft=l=k-n,this.scrollerWidth=n=n=h+2*n,c=E(c,m.translate(a)),d=E(d,m.translate(b)),f(c)&&Infinity!==Math.abs(c)||(c=0,d=n),!(m.translate(d,!0)-m.translate(c,!0)f&&tp+d-u&&rk&&re?e=0:e+v>=q&&(e=q-v,x=h.getUnionExtremes().dataMax),e!==d&&(h.fixedWidth=v,d=l.toFixedRange(e, +e+v,null,x),c.setExtremes(d.min,d.max,!0,null,{trigger:"navigator"}))))};h.mouseMoveHandler=function(b){var c=h.scrollbarHeight,d=h.navigatorLeft,e=h.navigatorWidth,f=h.scrollerLeft,g=h.scrollerWidth,k=h.range,l;b.touches&&0===b.touches[0].pageX||(b=a.pointer.normalize(b),l=b.chartX,lf+g-c&&(l=f+g-c),h.grabbedLeft?(h.hasDragged=!0,h.render(0,0,l-d,h.otherHandlePos)):h.grabbedRight?(h.hasDragged=!0,h.render(0,0,h.otherHandlePos,l-d)):h.grabbedCenter&&(h.hasDragged=!0,le+n-k&&(l=e+ +n-k),h.render(0,0,l-n,l-n+k)),h.hasDragged&&h.scrollbar&&h.scrollbar.options.liveRedraw&&(b.DOMType=b.type,setTimeout(function(){h.mouseUpHandler(b)},0)))};h.mouseUpHandler=function(b){var c,d,e=b.DOMEvent||b;if(h.hasDragged||"scrollbar"===b.trigger)h.zoomedMin===h.otherHandlePos?c=h.fixedExtreme:h.zoomedMax===h.otherHandlePos&&(d=h.fixedExtreme),h.zoomedMax===h.navigatorWidth&&(d=h.getUnionExtremes().dataMax),c=l.toFixedRange(h.zoomedMin,h.zoomedMax,c,d),r(c.min)&&a.xAxis[0].setExtremes(c.min,c.max, +!0,h.hasDragged?!1:null,{trigger:"navigator",triggerOp:"navigator-drag",DOMEvent:e});"mousemove"!==b.DOMType&&(h.grabbedLeft=h.grabbedRight=h.grabbedCenter=h.fixedWidth=h.fixedExtreme=h.otherHandlePos=h.hasDragged=n=null)};var c=a.xAxis.length,f=a.yAxis.length,m=e&&e[0]&&e[0].xAxis||a.xAxis[0];a.extraBottomMargin=h.outlineHeight+d.margin;a.isDirtyBox=!0;h.navigatorEnabled?(h.xAxis=l=new G(a,q({breaks:m.options.breaks,ordinal:m.options.ordinal},d.xAxis,{id:"navigator-x-axis",yAxis:"navigator-y-axis", +isX:!0,type:"datetime",index:c,height:g,offset:0,offsetLeft:k,offsetRight:-k,keepOrdinalPadding:!0,startOnTick:!1,endOnTick:!1,minPadding:0,maxPadding:0,zoomEnabled:!1})),h.yAxis=new G(a,q(d.yAxis,{id:"navigator-y-axis",alignTicks:!1,height:g,offset:0,index:f,zoomEnabled:!1})),e||d.series.data?h.addBaseSeries():0===a.series.length&&x(a,"redraw",function(b,c){0=Math.round(a.navigatorWidth);b&&!a.hasNavigatorData&&(b.options.pointStart=this.xData[0],b.setData(this.options.data,!1,null,!1))},destroy:function(){this.removeEvents();this.xAxis&&(m(this.chart.xAxis,this.xAxis),m(this.chart.axes,this.xAxis));this.yAxis&&(m(this.chart.yAxis,this.yAxis),m(this.chart.axes,this.yAxis));k(this.series||[],function(a){a.destroy&&a.destroy()});k("series xAxis yAxis leftShade rightShade outline scrollbarTrack scrollbarRifles scrollbarGroup scrollbar navigatorGroup rendered".split(" "), +function(a){this[a]&&this[a].destroy&&this[a].destroy();this[a]=null},this);k([this.handles,this.elementsToDestroy],function(a){w(a)},this)}};a.Navigator=D;x(G.prototype,"zoom",function(a,b,c){var d=this.chart,e=d.options,f=e.chart.zoomType,g=e.navigator,e=e.rangeSelector,h;this.isXAxis&&(g&&g.enabled||e&&e.enabled)&&("x"===f?d.resetZoomButton="blocked":"y"===f?h=!1:"xy"===f&&(d=this.previousZoom,r(b)?this.previousZoom=[this.min,this.max]:d&&(b=d[0],c=d[1],delete this.previousZoom)));return void 0!== +h?h:a.call(this,b,c)});x(H.prototype,"init",function(a,b,c){B(this,"beforeRender",function(){var a=this.options;if(a.navigator.enabled||a.scrollbar.enabled)this.scroller=this.navigator=new D(this)});a.call(this,b,c)});x(H.prototype,"getMargins",function(a){var b=this.legend,c=b.options,d=this.scroller,e,f;a.apply(this,[].slice.call(arguments,1));d&&(e=d.xAxis,f=d.yAxis,d.top=d.navigatorOptions.top||this.chartHeight-d.height-d.scrollbarHeight-this.spacing[2]-("bottom"===c.verticalAlign&&c.enabled&& +!c.floating?b.legendHeight+E(c.margin,10):0),e&&f&&(e.options.top=f.options.top=d.top,e.setAxisSize(),f.setAxisSize()))});x(n.prototype,"addPoint",function(a,b,c,f,g){var h=this.options.turboThreshold;h&&this.xData.length>h&&d(b,!0)&&this.chart.scroller&&e(20,!0);a.call(this,b,c,f,g)});x(H.prototype,"addSeries",function(a,b,c,d){a=a.call(this,b,!1,d);this.scroller&&this.scroller.setBaseSeries();E(c,!0)&&this.redraw();return a});x(n.prototype,"update",function(a,b,c){a.call(this,b,!1);this.chart.scroller&& +this.chart.scroller.setBaseSeries();E(c,!0)&&this.chart.redraw()})})(N);(function(a){function D(a){this.init(a)}var B=a.addEvent,G=a.Axis,H=a.Chart,p=a.css,l=a.createElement,r=a.dateFormat,w=a.defaultOptions,t=w.global.useUTC,k=a.defined,m=a.destroyObjectProperties,e=a.discardElement,g=a.each,h=a.extend,C=a.fireEvent,f=a.Date,d=a.isNumber,b=a.merge,q=a.pick,E=a.pInt,c=a.splat,F=a.wrap;h(w,{rangeSelector:{buttonTheme:{"stroke-width":0,width:28,height:18,padding:2,zIndex:7},height:35,inputPosition:{align:"right"}, +labelStyle:{color:"#666666"}}});w.lang=b(w.lang,{rangeSelectorZoom:"Zoom",rangeSelectorFrom:"From",rangeSelectorTo:"To"});D.prototype={clickButton:function(a,b){var e=this,f=e.chart,h=e.buttonOptions[a],k=f.xAxis[0],l=f.scroller&&f.scroller.getUnionExtremes()||k||{},n=l.dataMin,m=l.dataMax,p,r=k&&Math.round(Math.min(k.max,q(m,k.max))),w=h.type,z,l=h._range,A,C,D,E=h.dataGrouping;if(null!==n&&null!==m){f.fixedRange=l;E&&(this.forcedDataGrouping=!0,G.prototype.setDataGrouping.call(k||{chart:this.chart}, +E,!1));if("month"===w||"year"===w)k?(w={range:h,max:r,dataMin:n,dataMax:m},p=k.minFromRange.call(w),d(w.newMax)&&(r=w.newMax)):l=h;else if(l)p=Math.max(r-l,n),r=Math.min(p+l,m);else if("ytd"===w)if(k)void 0===m&&(n=Number.MAX_VALUE,m=Number.MIN_VALUE,g(f.series,function(a){a=a.xData;n=Math.min(a[0],n);m=Math.max(a[a.length-1],m)}),b=!1),r=e.getYTDExtremes(m,n,t),p=A=r.min,r=r.max;else{B(f,"beforeRender",function(){e.clickButton(a)});return}else"all"===w&&k&&(p=n,r=m);e.setSelected(a);k?k.setExtremes(p, +r,q(b,1),null,{trigger:"rangeSelectorButton",rangeSelectorButton:h}):(z=c(f.options.xAxis)[0],D=z.range,z.range=l,C=z.min,z.min=A,B(f,"load",function(){z.range=D;z.min=C}))}},setSelected:function(a){this.selected=this.options.selected=a},defaultButtons:[{type:"month",count:1,text:"1m"},{type:"month",count:3,text:"3m"},{type:"month",count:6,text:"6m"},{type:"ytd",text:"YTD"},{type:"year",count:1,text:"1y"},{type:"all",text:"All"}],init:function(a){var b=this,c=a.options.rangeSelector,d=c.buttons|| +[].concat(b.defaultButtons),e=c.selected,f=function(){var a=b.minInput,c=b.maxInput;a&&a.blur&&C(a,"blur");c&&c.blur&&C(c,"blur")};b.chart=a;b.options=c;b.buttons=[];a.extraTopMargin=c.height;b.buttonOptions=d;this.unMouseDown=B(a.container,"mousedown",f);this.unResize=B(a,"resize",f);g(d,b.computeButtonRange);void 0!==e&&d[e]&&this.clickButton(e,!1);B(a,"load",function(){B(a.xAxis[0],"setExtremes",function(c){this.max-this.min!==a.fixedRange&&"rangeSelectorButton"!==c.trigger&&"updatedData"!==c.trigger&& +b.forcedDataGrouping&&this.setDataGrouping(!1,!1)})})},updateButtonStates:function(){var a=this.chart,b=a.xAxis[0],c=Math.round(b.max-b.min),e=!b.hasVisibleSeries,a=a.scroller&&a.scroller.getUnionExtremes()||b,f=a.dataMin,h=a.dataMax,a=this.getYTDExtremes(h,f,t),k=a.min,l=a.max,m=this.selected,p=d(m),q=this.options.allButtonsEnabled,r=this.buttons;g(this.buttonOptions,function(a,d){var g=a._range,n=a.type,u=a.count||1;a=r[d];var t=0;d=d===m;var v=g>h-f,x=g=864E5*{month:28,year:365}[n]*u&&c<=864E5*{month:31,year:366}[n]*u?g=!0:"ytd"===n?(g=l-k===c,y=!d):"all"===n&&(g=b.max-b.min>=h-f,w=!d&&p&&g);n=!q&&(v||x||w||e);g=d&&g||g&&!p&&!y;n?t=3:g&&(p=!0,t=2);a.state!==t&&a.setState(t)})},computeButtonRange:function(a){var b=a.type,c=a.count||1,d={millisecond:1,second:1E3,minute:6E4,hour:36E5,day:864E5,week:6048E5};if(d[b])a._range=d[b]*c;else if("month"===b||"year"===b)a._range=864E5*{month:30,year:365}[b]*c},setInputValue:function(a,b){var c= +this.chart.options.rangeSelector,d=this[a+"Input"];k(b)&&(d.previousValue=d.HCTime,d.HCTime=b);d.value=r(c.inputEditDateFormat||"%Y-%m-%d",d.HCTime);this[a+"DateBox"].attr({text:r(c.inputDateFormat||"%b %e, %Y",d.HCTime)})},showInput:function(a){var b=this.inputGroup,c=this[a+"DateBox"];p(this[a+"Input"],{left:b.translateX+c.x+"px",top:b.translateY+"px",width:c.width-2+"px",height:c.height-2+"px",border:"2px solid silver"})},hideInput:function(a){p(this[a+"Input"],{border:0,width:"1px",height:"1px"}); +this.setInputValue(a)},drawInput:function(a){function c(){var a=r.value,b=(m.inputDateParser||Date.parse)(a),c=f.xAxis[0],g=f.scroller&&f.scroller.xAxis?f.scroller.xAxis:c,h=g.dataMin,g=g.dataMax;b!==r.previousValue&&(r.previousValue=b,d(b)||(b=a.split("-"),b=Date.UTC(E(b[0]),E(b[1])-1,E(b[2]))),d(b)&&(t||(b+=6E4*(new Date).getTimezoneOffset()),q?b>e.maxInput.HCTime?b=void 0:bg&&(b=g),void 0!==b&&c.setExtremes(q?b:c.min,q?c.max:b,void 0,void 0,{trigger:"rangeSelectorInput"})))} +var e=this,f=e.chart,g=f.renderer.style||{},k=f.renderer,m=f.options.rangeSelector,n=e.div,q="min"===a,r,B,C=this.inputGroup;this[a+"Label"]=B=k.label(w.lang[q?"rangeSelectorFrom":"rangeSelectorTo"],this.inputGroup.offset).addClass("highcharts-range-label").attr({padding:2}).add(C);C.offset+=B.width+5;this[a+"DateBox"]=k=k.label("",C.offset).addClass("highcharts-range-input").attr({padding:2,width:m.inputBoxWidth||90,height:m.inputBoxHeight||17,stroke:m.inputBoxBorderColor||"#cccccc","stroke-width":1, +"text-align":"center"}).on("click",function(){e.showInput(a);e[a+"Input"].focus()}).add(C);C.offset+=k.width+(q?10:0);this[a+"Input"]=r=l("input",{name:a,className:"highcharts-range-selector",type:"text"},{top:f.plotTop+"px"},n);B.css(b(g,m.labelStyle));k.css(b({color:"#333333"},g,m.inputStyle));p(r,h({position:"absolute",border:0,width:"1px",height:"1px",padding:0,textAlign:"center",fontSize:g.fontSize,fontFamily:g.fontFamily,left:"-9em"},m.inputStyle));r.onfocus=function(){e.showInput(a)};r.onblur= +function(){e.hideInput(a)};r.onchange=c;r.onkeypress=function(a){13===a.keyCode&&c()}},getPosition:function(){var a=this.chart,b=a.options.rangeSelector,a=q((b.buttonPosition||{}).y,a.plotTop-a.axisOffset[0]-b.height);return{buttonTop:a,inputTop:a-10}},getYTDExtremes:function(a,b,c){var d=new f(a),e=d[f.hcGetFullYear]();c=c?f.UTC(e,0,1):+new f(e,0,1);b=Math.max(b||0,c);d=d.getTime();return{max:Math.min(a||d,d),min:b}},render:function(a,b){var c=this,d=c.chart,e=d.renderer,f=d.container,m=d.options, +n=m.exporting&&!1!==m.exporting.enabled&&m.navigation&&m.navigation.buttonOptions,p=m.rangeSelector,r=c.buttons,m=w.lang,t=c.div,t=c.inputGroup,A=p.buttonTheme,z=p.buttonPosition||{},B=p.inputEnabled,C=A&&A.states,D=d.plotLeft,E,G=this.getPosition(),F=c.group,H=c.rendered;!1!==p.enabled&&(H||(c.group=F=e.g("range-selector-buttons").add(),c.zoomText=e.text(m.rangeSelectorZoom,q(z.x,D),15).css(p.labelStyle).add(F),E=q(z.x,D)+c.zoomText.getBBox().width+5,g(c.buttonOptions,function(a,b){r[b]=e.button(a.text, +E,0,function(){c.clickButton(b);c.isActive=!0},A,C&&C.hover,C&&C.select,C&&C.disabled).attr({"text-align":"center"}).add(F);E+=r[b].width+q(p.buttonSpacing,5)}),!1!==B&&(c.div=t=l("div",null,{position:"relative",height:0,zIndex:1}),f.parentNode.insertBefore(t,f),c.inputGroup=t=e.g("input-group").add(),t.offset=0,c.drawInput("min"),c.drawInput("max"))),c.updateButtonStates(),F[H?"animate":"attr"]({translateY:G.buttonTop}),!1!==B&&(t.align(h({y:G.inputTop,width:t.offset,x:n&&G.inputTop<(n.y||0)+n.height- +d.spacing[0]?-40:0},p.inputPosition),!0,d.spacingBox),k(B)||(d=F.getBBox(),t[t.alignAttr.translateXc&&(e?a=b-f:b=a+f);d(a)||(a=b=void 0);return{min:a,max:b}};G.prototype.minFromRange=function(){var a=this.range,b={month:"Month",year:"FullYear"}[a.type],c,e=this.max,f,g,h=function(a,c){var d=new Date(a);d["set"+b](d["get"+ +b]()+c);return d.getTime()-a};d(a)?(c=e-a,g=a):(c=e+h(e,-a.count),this.chart&&(this.chart.fixedRange=e-c));f=q(this.dataMin,Number.MIN_VALUE);d(c)||(c=f);c<=f&&(c=f,void 0===g&&(g=h(c,a.count)),this.newMax=Math.min(c+g,this.dataMax));d(e)||(c=void 0);return c};F(H.prototype,"init",function(a,b,c){B(this,"init",function(){this.options.rangeSelector.enabled&&(this.rangeSelector=new D(this))});a.call(this,b,c)});a.RangeSelector=D})(N);(function(a){var D=a.addEvent,B=a.isNumber;a.Chart.prototype.callbacks.push(function(a){function G(){p= +a.xAxis[0].getExtremes();B(p.min)&&r.render(p.min,p.max)}var p,l=a.scroller,r=a.rangeSelector,w,t;l&&(p=a.xAxis[0].getExtremes(),l.render(p.min,p.max));r&&(t=D(a.xAxis[0],"afterSetExtremes",function(a){r.render(a.min,a.max)}),w=D(a,"redraw",G),G());D(a,"destroy",function(){r&&(w(),t())})})})(N);(function(a){var D=a.arrayMax,B=a.arrayMin,G=a.Axis,H=a.Chart,p=a.defined,l=a.each,r=a.extend,w=a.format,t=a.inArray,k=a.isNumber,m=a.isString,e=a.map,g=a.merge,h=a.pick,C=a.Point,f=a.Renderer,d=a.Series,b= +a.splat,q=a.stop,E=a.SVGRenderer,c=a.VMLRenderer,F=a.wrap,n=d.prototype,A=n.init,x=n.processData,J=C.prototype.tooltipFormatter;a.StockChart=a.stockChart=function(c,d,f){var k=m(c)||c.nodeName,l=arguments[k?1:0],n=l.series,p=a.getOptions(),q,r=h(l.navigator&&l.navigator.enabled,!0)?{startOnTick:!1,endOnTick:!1}:null,t={marker:{enabled:!1,radius:2}},u={shadow:!1,borderWidth:0};l.xAxis=e(b(l.xAxis||{}),function(a){return g({minPadding:0,maxPadding:0,ordinal:!0,title:{text:null},labels:{overflow:"justify"}, +showLastLabel:!0},p.xAxis,a,{type:"datetime",categories:null},r)});l.yAxis=e(b(l.yAxis||{}),function(a){q=h(a.opposite,!0);return g({labels:{y:-2},opposite:q,showLastLabel:!1,title:{text:null}},p.yAxis,a)});l.series=null;l=g({chart:{panning:!0,pinchType:"x"},navigator:{enabled:!0},scrollbar:{enabled:!0},rangeSelector:{enabled:!0},title:{text:null,style:{fontSize:"16px"}},tooltip:{shared:!0,crosshairs:!0},legend:{enabled:!1},plotOptions:{line:t,spline:t,area:t,areaspline:t,arearange:t,areasplinerange:t, +column:u,columnrange:u,candlestick:u,ohlc:u}},l,{_stock:!0,chart:{inverted:!1}});l.series=n;return k?new H(c,l,f):new H(l,d)};F(G.prototype,"autoLabelAlign",function(a){var b=this.chart,c=this.options,b=b._labelPanes=b._labelPanes||{},d=this.options.labels;return this.chart.options._stock&&"yAxis"===this.coll&&(c=c.top+","+c.height,!b[c]&&d.enabled)?(15===d.x&&(d.x=0),void 0===d.align&&(d.align="right"),b[c]=1,"right"):a.call(this,[].slice.call(arguments,1))});F(G.prototype,"getPlotLinePath",function(a, +b,c,d,f,g){var n=this,q=this.isLinked&&!this.series?this.linkedParent.series:this.series,r=n.chart,u=r.renderer,v=n.left,w=n.top,y,x,A,B,C=[],D=[],E,F;if("colorAxis"===n.coll)return a.apply(this,[].slice.call(arguments,1));D=function(a){var b="xAxis"===a?"yAxis":"xAxis";a=n.options[b];return k(a)?[r[b][a]]:m(a)?[r.get(a)]:e(q,function(a){return a[b]})}(n.coll);l(n.isXAxis?r.yAxis:r.xAxis,function(a){if(p(a.options.id)?-1===a.options.id.indexOf("navigator"):1){var b=a.isXAxis?"yAxis":"xAxis",b=p(a.options[b])? +r[b][a.options[b]]:r[b][0];n===b&&D.push(a)}});E=D.length?[]:[n.isXAxis?r.yAxis[0]:r.xAxis[0]];l(D,function(a){-1===t(a,E)&&E.push(a)});F=h(g,n.translate(b,null,null,d));k(F)&&(n.horiz?l(E,function(a){var b;x=a.pos;B=x+a.len;y=A=Math.round(F+n.transB);if(yv+n.width)f?y=A=Math.min(Math.max(v,y),v+n.width):b=!0;b||C.push("M",y,x,"L",A,B)}):l(E,function(a){var b;y=a.pos;A=y+a.len;x=B=Math.round(w+n.height-F);if(xw+n.height)f?x=B=Math.min(Math.max(w,x),n.top+n.height):b=!0;b||C.push("M",y, +x,"L",A,B)}));return 0=e&&(x=-(l.translateX+b.width-e));l.attr({x:m+x,y:k,anchorX:g?m:this.opposite?0:a.chartWidth,anchorY:g?this.opposite?a.chartHeight:0:k+b.height/2})}});n.init=function(){A.apply(this,arguments);this.setCompare(this.options.compare)};n.setCompare=function(a){this.modifyValue= +"value"===a||"percent"===a?function(b,c){var d=this.compareValue;if(void 0!==b&&void 0!==d)return b="value"===a?b-d:b=b/d*100-100,c&&(c.change=b),b}:null;this.userOptions.compare=a;this.chart.hasRendered&&(this.isDirty=!0)};n.processData=function(){var a,b=-1,c,d,e,f;x.apply(this,arguments);if(this.xAxis&&this.processedYData)for(c=this.processedXData,d=this.processedYData,e=d.length,this.pointArrayMap&&(b=t("close",this.pointArrayMap),-1===b&&(b=t(this.pointValKey||"y",this.pointArrayMap))),a=0;a< +e-1;a++)if(f=-1=this.xAxis.min&&0!==f){this.compareValue=f;break}};F(n,"getExtremes",function(a){var b;a.apply(this,[].slice.call(arguments,1));this.modifyValue&&(b=[this.modifyValue(this.dataMin),this.modifyValue(this.dataMax)],this.dataMin=B(b),this.dataMax=D(b))});G.prototype.setCompare=function(a,b){this.isXAxis||(l(this.series,function(b){b.setCompare(a)}),h(b,!0)&&this.chart.redraw())};C.prototype.tooltipFormatter=function(b){b=b.replace("{point.change}",(0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=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))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(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&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(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&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(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 ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);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&&E){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=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(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(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===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]||se.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]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(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(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(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=se.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 D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.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 S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(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 qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.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)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
    ",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.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),m(t)&&(t=t.call(e,n,S.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):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.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"===S.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"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(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)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(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?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.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)}}),S.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){S.fn[n]=function(e,t){return 0 '; + else + var expandButton = ''; + + return '' + expandButton + '' + ellipsedLabel({ name: item.name, parentClass: "nav-tooltip", childClass: "nav-label" }) + ''; +} + +function menuItemsForGroup(group, level, parent) { + var items = ''; + + if (level > 0) + items += menuItem(group, level - 1, parent, true); + + $.each(group.contents, function (contentName, content) { + if (content.type == 'GROUP') + items += menuItemsForGroup(content, level + 1, group.pathFormatted); + else if (content.type == 'REQUEST') + items += menuItem(content, level, group.pathFormatted); + }); + + return items; +} + +function setDetailsMenu(){ + $('.nav ul').append(menuItemsForGroup(stats, 0)); + $('.nav').expandable(); + $('.nav-tooltip').popover({trigger:'hover'}); +} + +function setGlobalMenu(){ + $('.nav ul') + .append('
  • Ranges
  • ') + .append('
  • Stats
  • ') + .append('
  • Active Users
  • ') + .append('
  • Requests / sec
  • ') + .append('
  • Responses / sec
  • '); +} + +function getLink(link){ + var a = link.split('/'); + return (a.length<=1)? link : a[a.length-1]; +} + +function expandUp(li) { + const parentId = li.attr("data-parent"); + if (parentId != "ROOT") { + const span = $('#' + parentId); + const parentLi = span.parents('li').first(); + span.expand(parentLi, false); + expandUp(parentLi); + } +} + +function setActiveMenu(){ + $('.nav a').each(function() { + const navA = $(this) + if(!navA.hasClass('expand-button') && navA.attr('href') == getLink(window.location.pathname)) { + const li = $(this).parents('li').first(); + li.addClass('on'); + expandUp(li); + return false; + } + }); +} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/stats.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/stats.js new file mode 100644 index 0000000..3662121 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/stats.js @@ -0,0 +1,1523 @@ +var stats = { + type: "GROUP", +name: "All Requests", +path: "", +pathFormatted: "group_missing-name--1146707516", +stats: { + "name": "All Requests", + "numberOfRequests": { + "total": "5134", + "ok": "5133", + "ko": "1" + }, + "minResponseTime": { + "total": "23", + "ok": "23", + "ko": "10012" + }, + "maxResponseTime": { + "total": "10012", + "ok": "9288", + "ko": "10012" + }, + "meanResponseTime": { + "total": "383", + "ok": "381", + "ko": "10012" + }, + "standardDeviation": { + "total": "764", + "ok": "752", + "ko": "0" + }, + "percentiles1": { + "total": "82", + "ok": "82", + "ko": "10012" + }, + "percentiles2": { + "total": "300", + "ok": "299", + "ko": "10012" + }, + "percentiles3": { + "total": "1688", + "ok": "1685", + "ko": "10012" + }, + "percentiles4": { + "total": "3508", + "ok": "3495", + "ko": "10012" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 4290, + "percentage": 84 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 433, + "percentage": 8 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 410, + "percentage": 8 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 1, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "36.411", + "ok": "36.404", + "ko": "0.007" + } +}, +contents: { +"req_request-0-693933696": { + type: "REQUEST", + name: "request_0", +path: "request_0", +pathFormatted: "req_request-0-693933696", +stats: { + "name": "request_0", + "numberOfRequests": { + "total": "302", + "ok": "302", + "ko": "0" + }, + "minResponseTime": { + "total": "73", + "ok": "73", + "ko": "-" + }, + "maxResponseTime": { + "total": "7142", + "ok": "7142", + "ko": "-" + }, + "meanResponseTime": { + "total": "466", + "ok": "466", + "ko": "-" + }, + "standardDeviation": { + "total": "745", + "ok": "745", + "ko": "-" + }, + "percentiles1": { + "total": "198", + "ok": "198", + "ko": "-" + }, + "percentiles2": { + "total": "411", + "ok": "411", + "ko": "-" + }, + "percentiles3": { + "total": "1595", + "ok": "1595", + "ko": "-" + }, + "percentiles4": { + "total": "3146", + "ok": "3146", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 246, + "percentage": 81 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 31, + "percentage": 10 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 25, + "percentage": 8 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.142", + "ok": "2.142", + "ko": "-" + } +} + },"req_request-1-693933697": { + type: "REQUEST", + name: "request_1", +path: "request_1", +pathFormatted: "req_request-1-693933697", +stats: { + "name": "request_1", + "numberOfRequests": { + "total": "302", + "ok": "302", + "ko": "0" + }, + "minResponseTime": { + "total": "36", + "ok": "36", + "ko": "-" + }, + "maxResponseTime": { + "total": "1234", + "ok": "1234", + "ko": "-" + }, + "meanResponseTime": { + "total": "96", + "ok": "96", + "ko": "-" + }, + "standardDeviation": { + "total": "146", + "ok": "146", + "ko": "-" + }, + "percentiles1": { + "total": "56", + "ok": "56", + "ko": "-" + }, + "percentiles2": { + "total": "88", + "ok": "88", + "ko": "-" + }, + "percentiles3": { + "total": "350", + "ok": "350", + "ko": "-" + }, + "percentiles4": { + "total": "676", + "ok": "676", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 300, + "percentage": 99 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 2, + "percentage": 1 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.142", + "ok": "2.142", + "ko": "-" + } +} + },"req_request-2-693933698": { + type: "REQUEST", + name: "request_2", +path: "request_2", +pathFormatted: "req_request-2-693933698", +stats: { + "name": "request_2", + "numberOfRequests": { + "total": "302", + "ok": "302", + "ko": "0" + }, + "minResponseTime": { + "total": "73", + "ok": "73", + "ko": "-" + }, + "maxResponseTime": { + "total": "7113", + "ok": "7113", + "ko": "-" + }, + "meanResponseTime": { + "total": "320", + "ok": "320", + "ko": "-" + }, + "standardDeviation": { + "total": "567", + "ok": "567", + "ko": "-" + }, + "percentiles1": { + "total": "130", + "ok": "130", + "ko": "-" + }, + "percentiles2": { + "total": "340", + "ok": "340", + "ko": "-" + }, + "percentiles3": { + "total": "1187", + "ok": "1187", + "ko": "-" + }, + "percentiles4": { + "total": "2031", + "ok": "2031", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 269, + "percentage": 89 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 19, + "percentage": 6 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 14, + "percentage": 5 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.142", + "ok": "2.142", + "ko": "-" + } +} + },"req_request-3-693933699": { + type: "REQUEST", + name: "request_3", +path: "request_3", +pathFormatted: "req_request-3-693933699", +stats: { + "name": "request_3", + "numberOfRequests": { + "total": "302", + "ok": "302", + "ko": "0" + }, + "minResponseTime": { + "total": "73", + "ok": "73", + "ko": "-" + }, + "maxResponseTime": { + "total": "3971", + "ok": "3971", + "ko": "-" + }, + "meanResponseTime": { + "total": "417", + "ok": "417", + "ko": "-" + }, + "standardDeviation": { + "total": "613", + "ok": "613", + "ko": "-" + }, + "percentiles1": { + "total": "165", + "ok": "165", + "ko": "-" + }, + "percentiles2": { + "total": "386", + "ok": "386", + "ko": "-" + }, + "percentiles3": { + "total": "1422", + "ok": "1422", + "ko": "-" + }, + "percentiles4": { + "total": "3181", + "ok": "3181", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 248, + "percentage": 82 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 31, + "percentage": 10 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 23, + "percentage": 8 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.142", + "ok": "2.142", + "ko": "-" + } +} + },"req_request-4-693933700": { + type: "REQUEST", + name: "request_4", +path: "request_4", +pathFormatted: "req_request-4-693933700", +stats: { + "name": "request_4", + "numberOfRequests": { + "total": "302", + "ok": "302", + "ko": "0" + }, + "minResponseTime": { + "total": "109", + "ok": "109", + "ko": "-" + }, + "maxResponseTime": { + "total": "710", + "ok": "710", + "ko": "-" + }, + "meanResponseTime": { + "total": "204", + "ok": "204", + "ko": "-" + }, + "standardDeviation": { + "total": "112", + "ok": "112", + "ko": "-" + }, + "percentiles1": { + "total": "166", + "ok": "166", + "ko": "-" + }, + "percentiles2": { + "total": "213", + "ok": "213", + "ko": "-" + }, + "percentiles3": { + "total": "418", + "ok": "418", + "ko": "-" + }, + "percentiles4": { + "total": "680", + "ok": "680", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 302, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.142", + "ok": "2.142", + "ko": "-" + } +} + },"req_request-5-693933701": { + type: "REQUEST", + name: "request_5", +path: "request_5", +pathFormatted: "req_request-5-693933701", +stats: { + "name": "request_5", + "numberOfRequests": { + "total": "302", + "ok": "302", + "ko": "0" + }, + "minResponseTime": { + "total": "296", + "ok": "296", + "ko": "-" + }, + "maxResponseTime": { + "total": "6063", + "ok": "6063", + "ko": "-" + }, + "meanResponseTime": { + "total": "1097", + "ok": "1097", + "ko": "-" + }, + "standardDeviation": { + "total": "806", + "ok": "806", + "ko": "-" + }, + "percentiles1": { + "total": "886", + "ok": "886", + "ko": "-" + }, + "percentiles2": { + "total": "1324", + "ok": "1324", + "ko": "-" + }, + "percentiles3": { + "total": "2571", + "ok": "2571", + "ko": "-" + }, + "percentiles4": { + "total": "4207", + "ok": "4207", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 131, + "percentage": 43 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 83, + "percentage": 27 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 88, + "percentage": 29 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.142", + "ok": "2.142", + "ko": "-" + } +} + },"req_request-6-693933702": { + type: "REQUEST", + name: "request_6", +path: "request_6", +pathFormatted: "req_request-6-693933702", +stats: { + "name": "request_6", + "numberOfRequests": { + "total": "302", + "ok": "302", + "ko": "0" + }, + "minResponseTime": { + "total": "390", + "ok": "390", + "ko": "-" + }, + "maxResponseTime": { + "total": "9288", + "ok": "9288", + "ko": "-" + }, + "meanResponseTime": { + "total": "2174", + "ok": "2174", + "ko": "-" + }, + "standardDeviation": { + "total": "1486", + "ok": "1486", + "ko": "-" + }, + "percentiles1": { + "total": "1783", + "ok": "1783", + "ko": "-" + }, + "percentiles2": { + "total": "2740", + "ok": "2740", + "ko": "-" + }, + "percentiles3": { + "total": "5240", + "ok": "5240", + "ko": "-" + }, + "percentiles4": { + "total": "7322", + "ok": "7322", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 37, + "percentage": 12 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 38, + "percentage": 13 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 227, + "percentage": 75 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.142", + "ok": "2.142", + "ko": "-" + } +} + },"req_request-7-693933703": { + type: "REQUEST", + name: "request_7", +path: "request_7", +pathFormatted: "req_request-7-693933703", +stats: { + "name": "request_7", + "numberOfRequests": { + "total": "302", + "ok": "302", + "ko": "0" + }, + "minResponseTime": { + "total": "37", + "ok": "37", + "ko": "-" + }, + "maxResponseTime": { + "total": "3149", + "ok": "3149", + "ko": "-" + }, + "meanResponseTime": { + "total": "286", + "ok": "286", + "ko": "-" + }, + "standardDeviation": { + "total": "473", + "ok": "473", + "ko": "-" + }, + "percentiles1": { + "total": "92", + "ok": "92", + "ko": "-" + }, + "percentiles2": { + "total": "274", + "ok": "274", + "ko": "-" + }, + "percentiles3": { + "total": "1159", + "ok": "1159", + "ko": "-" + }, + "percentiles4": { + "total": "2464", + "ok": "2464", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 266, + "percentage": 88 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 21, + "percentage": 7 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 15, + "percentage": 5 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.142", + "ok": "2.142", + "ko": "-" + } +} + },"req_request-8-693933704": { + type: "REQUEST", + name: "request_8", +path: "request_8", +pathFormatted: "req_request-8-693933704", +stats: { + "name": "request_8", + "numberOfRequests": { + "total": "302", + "ok": "301", + "ko": "1" + }, + "minResponseTime": { + "total": "74", + "ok": "74", + "ko": "10012" + }, + "maxResponseTime": { + "total": "10012", + "ok": "3184", + "ko": "10012" + }, + "meanResponseTime": { + "total": "321", + "ok": "289", + "ko": "10012" + }, + "standardDeviation": { + "total": "715", + "ok": "447", + "ko": "0" + }, + "percentiles1": { + "total": "83", + "ok": "83", + "ko": "10012" + }, + "percentiles2": { + "total": "137", + "ok": "137", + "ko": "10012" + }, + "percentiles3": { + "total": "1107", + "ok": "1106", + "ko": "10012" + }, + "percentiles4": { + "total": "1582", + "ok": "1477", + "ko": "10012" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 252, + "percentage": 83 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 43, + "percentage": 14 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 6, + "percentage": 2 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 1, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.142", + "ok": "2.135", + "ko": "0.007" + } +} + },"req_request-9-693933705": { + type: "REQUEST", + name: "request_9", +path: "request_9", +pathFormatted: "req_request-9-693933705", +stats: { + "name": "request_9", + "numberOfRequests": { + "total": "302", + "ok": "302", + "ko": "0" + }, + "minResponseTime": { + "total": "74", + "ok": "74", + "ko": "-" + }, + "maxResponseTime": { + "total": "3122", + "ok": "3122", + "ko": "-" + }, + "meanResponseTime": { + "total": "264", + "ok": "264", + "ko": "-" + }, + "standardDeviation": { + "total": "404", + "ok": "404", + "ko": "-" + }, + "percentiles1": { + "total": "82", + "ok": "82", + "ko": "-" + }, + "percentiles2": { + "total": "126", + "ok": "126", + "ko": "-" + }, + "percentiles3": { + "total": "1094", + "ok": "1094", + "ko": "-" + }, + "percentiles4": { + "total": "1126", + "ok": "1126", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 254, + "percentage": 84 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 46, + "percentage": 15 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 2, + "percentage": 1 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.142", + "ok": "2.142", + "ko": "-" + } +} + },"req_request-10-37108175": { + type: "REQUEST", + name: "request_10", +path: "request_10", +pathFormatted: "req_request-10-37108175", +stats: { + "name": "request_10", + "numberOfRequests": { + "total": "302", + "ok": "302", + "ko": "0" + }, + "minResponseTime": { + "total": "74", + "ok": "74", + "ko": "-" + }, + "maxResponseTime": { + "total": "3122", + "ok": "3122", + "ko": "-" + }, + "meanResponseTime": { + "total": "252", + "ok": "252", + "ko": "-" + }, + "standardDeviation": { + "total": "429", + "ok": "429", + "ko": "-" + }, + "percentiles1": { + "total": "83", + "ok": "83", + "ko": "-" + }, + "percentiles2": { + "total": "101", + "ok": "101", + "ko": "-" + }, + "percentiles3": { + "total": "1097", + "ok": "1097", + "ko": "-" + }, + "percentiles4": { + "total": "1443", + "ok": "1443", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 258, + "percentage": 85 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 39, + "percentage": 13 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 5, + "percentage": 2 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.142", + "ok": "2.142", + "ko": "-" + } +} + },"req_request-11-37108176": { + type: "REQUEST", + name: "request_11", +path: "request_11", +pathFormatted: "req_request-11-37108176", +stats: { + "name": "request_11", + "numberOfRequests": { + "total": "302", + "ok": "302", + "ko": "0" + }, + "minResponseTime": { + "total": "38", + "ok": "38", + "ko": "-" + }, + "maxResponseTime": { + "total": "372", + "ok": "372", + "ko": "-" + }, + "meanResponseTime": { + "total": "47", + "ok": "47", + "ko": "-" + }, + "standardDeviation": { + "total": "28", + "ok": "28", + "ko": "-" + }, + "percentiles1": { + "total": "42", + "ok": "42", + "ko": "-" + }, + "percentiles2": { + "total": "43", + "ok": "43", + "ko": "-" + }, + "percentiles3": { + "total": "67", + "ok": "67", + "ko": "-" + }, + "percentiles4": { + "total": "131", + "ok": "131", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 302, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.142", + "ok": "2.142", + "ko": "-" + } +} + },"req_request-12-37108177": { + type: "REQUEST", + name: "request_12", +path: "request_12", +pathFormatted: "req_request-12-37108177", +stats: { + "name": "request_12", + "numberOfRequests": { + "total": "302", + "ok": "302", + "ko": "0" + }, + "minResponseTime": { + "total": "23", + "ok": "23", + "ko": "-" + }, + "maxResponseTime": { + "total": "3114", + "ok": "3114", + "ko": "-" + }, + "meanResponseTime": { + "total": "55", + "ok": "55", + "ko": "-" + }, + "standardDeviation": { + "total": "223", + "ok": "223", + "ko": "-" + }, + "percentiles1": { + "total": "30", + "ok": "30", + "ko": "-" + }, + "percentiles2": { + "total": "31", + "ok": "31", + "ko": "-" + }, + "percentiles3": { + "total": "72", + "ok": "72", + "ko": "-" + }, + "percentiles4": { + "total": "216", + "ok": "216", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 299, + "percentage": 99 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 3, + "percentage": 1 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.142", + "ok": "2.142", + "ko": "-" + } +} + },"req_request-14-37108179": { + type: "REQUEST", + name: "request_14", +path: "request_14", +pathFormatted: "req_request-14-37108179", +stats: { + "name": "request_14", + "numberOfRequests": { + "total": "302", + "ok": "302", + "ko": "0" + }, + "minResponseTime": { + "total": "35", + "ok": "35", + "ko": "-" + }, + "maxResponseTime": { + "total": "124", + "ok": "124", + "ko": "-" + }, + "meanResponseTime": { + "total": "40", + "ok": "40", + "ko": "-" + }, + "standardDeviation": { + "total": "8", + "ok": "8", + "ko": "-" + }, + "percentiles1": { + "total": "39", + "ok": "39", + "ko": "-" + }, + "percentiles2": { + "total": "40", + "ok": "40", + "ko": "-" + }, + "percentiles3": { + "total": "56", + "ok": "56", + "ko": "-" + }, + "percentiles4": { + "total": "64", + "ok": "64", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 302, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.142", + "ok": "2.142", + "ko": "-" + } +} + },"req_request-15-37108180": { + type: "REQUEST", + name: "request_15", +path: "request_15", +pathFormatted: "req_request-15-37108180", +stats: { + "name": "request_15", + "numberOfRequests": { + "total": "302", + "ok": "302", + "ko": "0" + }, + "minResponseTime": { + "total": "38", + "ok": "38", + "ko": "-" + }, + "maxResponseTime": { + "total": "91", + "ok": "91", + "ko": "-" + }, + "meanResponseTime": { + "total": "43", + "ok": "43", + "ko": "-" + }, + "standardDeviation": { + "total": "6", + "ok": "6", + "ko": "-" + }, + "percentiles1": { + "total": "42", + "ok": "42", + "ko": "-" + }, + "percentiles2": { + "total": "43", + "ok": "43", + "ko": "-" + }, + "percentiles3": { + "total": "58", + "ok": "58", + "ko": "-" + }, + "percentiles4": { + "total": "66", + "ok": "66", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 302, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.142", + "ok": "2.142", + "ko": "-" + } +} + },"req_request-16-37108181": { + type: "REQUEST", + name: "request_16", +path: "request_16", +pathFormatted: "req_request-16-37108181", +stats: { + "name": "request_16", + "numberOfRequests": { + "total": "302", + "ok": "302", + "ko": "0" + }, + "minResponseTime": { + "total": "73", + "ok": "73", + "ko": "-" + }, + "maxResponseTime": { + "total": "1097", + "ok": "1097", + "ko": "-" + }, + "meanResponseTime": { + "total": "221", + "ok": "221", + "ko": "-" + }, + "standardDeviation": { + "total": "349", + "ok": "349", + "ko": "-" + }, + "percentiles1": { + "total": "81", + "ok": "81", + "ko": "-" + }, + "percentiles2": { + "total": "83", + "ok": "83", + "ko": "-" + }, + "percentiles3": { + "total": "1092", + "ok": "1092", + "ko": "-" + }, + "percentiles4": { + "total": "1096", + "ok": "1096", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 260, + "percentage": 86 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 42, + "percentage": 14 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.142", + "ok": "2.142", + "ko": "-" + } +} + },"req_request-17-37108182": { + type: "REQUEST", + name: "request_17", +path: "request_17", +pathFormatted: "req_request-17-37108182", +stats: { + "name": "request_17", + "numberOfRequests": { + "total": "302", + "ok": "302", + "ko": "0" + }, + "minResponseTime": { + "total": "74", + "ok": "74", + "ko": "-" + }, + "maxResponseTime": { + "total": "1097", + "ok": "1097", + "ko": "-" + }, + "meanResponseTime": { + "total": "213", + "ok": "213", + "ko": "-" + }, + "standardDeviation": { + "total": "342", + "ok": "342", + "ko": "-" + }, + "percentiles1": { + "total": "81", + "ok": "81", + "ko": "-" + }, + "percentiles2": { + "total": "82", + "ok": "82", + "ko": "-" + }, + "percentiles3": { + "total": "1091", + "ok": "1091", + "ko": "-" + }, + "percentiles4": { + "total": "1096", + "ok": "1096", + "ko": "-" + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 262, + "percentage": 87 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 40, + "percentage": 13 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": "2.142", + "ok": "2.142", + "ko": "-" + } +} + } +} + +} + +function fillStats(stat){ + $("#numberOfRequests").append(stat.numberOfRequests.total); + $("#numberOfRequestsOK").append(stat.numberOfRequests.ok); + $("#numberOfRequestsKO").append(stat.numberOfRequests.ko); + + $("#minResponseTime").append(stat.minResponseTime.total); + $("#minResponseTimeOK").append(stat.minResponseTime.ok); + $("#minResponseTimeKO").append(stat.minResponseTime.ko); + + $("#maxResponseTime").append(stat.maxResponseTime.total); + $("#maxResponseTimeOK").append(stat.maxResponseTime.ok); + $("#maxResponseTimeKO").append(stat.maxResponseTime.ko); + + $("#meanResponseTime").append(stat.meanResponseTime.total); + $("#meanResponseTimeOK").append(stat.meanResponseTime.ok); + $("#meanResponseTimeKO").append(stat.meanResponseTime.ko); + + $("#standardDeviation").append(stat.standardDeviation.total); + $("#standardDeviationOK").append(stat.standardDeviation.ok); + $("#standardDeviationKO").append(stat.standardDeviation.ko); + + $("#percentiles1").append(stat.percentiles1.total); + $("#percentiles1OK").append(stat.percentiles1.ok); + $("#percentiles1KO").append(stat.percentiles1.ko); + + $("#percentiles2").append(stat.percentiles2.total); + $("#percentiles2OK").append(stat.percentiles2.ok); + $("#percentiles2KO").append(stat.percentiles2.ko); + + $("#percentiles3").append(stat.percentiles3.total); + $("#percentiles3OK").append(stat.percentiles3.ok); + $("#percentiles3KO").append(stat.percentiles3.ko); + + $("#percentiles4").append(stat.percentiles4.total); + $("#percentiles4OK").append(stat.percentiles4.ok); + $("#percentiles4KO").append(stat.percentiles4.ko); + + $("#meanNumberOfRequestsPerSecond").append(stat.meanNumberOfRequestsPerSecond.total); + $("#meanNumberOfRequestsPerSecondOK").append(stat.meanNumberOfRequestsPerSecond.ok); + $("#meanNumberOfRequestsPerSecondKO").append(stat.meanNumberOfRequestsPerSecond.ko); +} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/stats.json b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/stats.json new file mode 100644 index 0000000..273911c --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/stats.json @@ -0,0 +1,1481 @@ +{ + "type": "GROUP", +"name": "All Requests", +"path": "", +"pathFormatted": "group_missing-name--1146707516", +"stats": { + "name": "All Requests", + "numberOfRequests": { + "total": 5134, + "ok": 5133, + "ko": 1 + }, + "minResponseTime": { + "total": 23, + "ok": 23, + "ko": 10012 + }, + "maxResponseTime": { + "total": 10012, + "ok": 9288, + "ko": 10012 + }, + "meanResponseTime": { + "total": 383, + "ok": 381, + "ko": 10012 + }, + "standardDeviation": { + "total": 764, + "ok": 752, + "ko": 0 + }, + "percentiles1": { + "total": 82, + "ok": 82, + "ko": 10012 + }, + "percentiles2": { + "total": 300, + "ok": 299, + "ko": 10012 + }, + "percentiles3": { + "total": 1688, + "ok": 1685, + "ko": 10012 + }, + "percentiles4": { + "total": 3508, + "ok": 3495, + "ko": 10012 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 4290, + "percentage": 84 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 433, + "percentage": 8 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 410, + "percentage": 8 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 1, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 36.4113475177305, + "ok": 36.40425531914894, + "ko": 0.0070921985815602835 + } +}, +"contents": { +"req_request-0-693933696": { + "type": "REQUEST", + "name": "request_0", +"path": "request_0", +"pathFormatted": "req_request-0-693933696", +"stats": { + "name": "request_0", + "numberOfRequests": { + "total": 302, + "ok": 302, + "ko": 0 + }, + "minResponseTime": { + "total": 73, + "ok": 73, + "ko": 0 + }, + "maxResponseTime": { + "total": 7142, + "ok": 7142, + "ko": 0 + }, + "meanResponseTime": { + "total": 466, + "ok": 466, + "ko": 0 + }, + "standardDeviation": { + "total": 745, + "ok": 745, + "ko": 0 + }, + "percentiles1": { + "total": 198, + "ok": 198, + "ko": 0 + }, + "percentiles2": { + "total": 411, + "ok": 411, + "ko": 0 + }, + "percentiles3": { + "total": 1595, + "ok": 1595, + "ko": 0 + }, + "percentiles4": { + "total": 3146, + "ok": 3146, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 246, + "percentage": 81 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 31, + "percentage": 10 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 25, + "percentage": 8 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.141843971631206, + "ok": 2.141843971631206, + "ko": 0 + } +} + },"req_request-1-693933697": { + "type": "REQUEST", + "name": "request_1", +"path": "request_1", +"pathFormatted": "req_request-1-693933697", +"stats": { + "name": "request_1", + "numberOfRequests": { + "total": 302, + "ok": 302, + "ko": 0 + }, + "minResponseTime": { + "total": 36, + "ok": 36, + "ko": 0 + }, + "maxResponseTime": { + "total": 1234, + "ok": 1234, + "ko": 0 + }, + "meanResponseTime": { + "total": 96, + "ok": 96, + "ko": 0 + }, + "standardDeviation": { + "total": 146, + "ok": 146, + "ko": 0 + }, + "percentiles1": { + "total": 56, + "ok": 56, + "ko": 0 + }, + "percentiles2": { + "total": 88, + "ok": 88, + "ko": 0 + }, + "percentiles3": { + "total": 350, + "ok": 350, + "ko": 0 + }, + "percentiles4": { + "total": 676, + "ok": 676, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 300, + "percentage": 99 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 2, + "percentage": 1 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.141843971631206, + "ok": 2.141843971631206, + "ko": 0 + } +} + },"req_request-2-693933698": { + "type": "REQUEST", + "name": "request_2", +"path": "request_2", +"pathFormatted": "req_request-2-693933698", +"stats": { + "name": "request_2", + "numberOfRequests": { + "total": 302, + "ok": 302, + "ko": 0 + }, + "minResponseTime": { + "total": 73, + "ok": 73, + "ko": 0 + }, + "maxResponseTime": { + "total": 7113, + "ok": 7113, + "ko": 0 + }, + "meanResponseTime": { + "total": 320, + "ok": 320, + "ko": 0 + }, + "standardDeviation": { + "total": 567, + "ok": 567, + "ko": 0 + }, + "percentiles1": { + "total": 130, + "ok": 130, + "ko": 0 + }, + "percentiles2": { + "total": 340, + "ok": 340, + "ko": 0 + }, + "percentiles3": { + "total": 1187, + "ok": 1187, + "ko": 0 + }, + "percentiles4": { + "total": 2031, + "ok": 2031, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 269, + "percentage": 89 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 19, + "percentage": 6 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 14, + "percentage": 5 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.141843971631206, + "ok": 2.141843971631206, + "ko": 0 + } +} + },"req_request-3-693933699": { + "type": "REQUEST", + "name": "request_3", +"path": "request_3", +"pathFormatted": "req_request-3-693933699", +"stats": { + "name": "request_3", + "numberOfRequests": { + "total": 302, + "ok": 302, + "ko": 0 + }, + "minResponseTime": { + "total": 73, + "ok": 73, + "ko": 0 + }, + "maxResponseTime": { + "total": 3971, + "ok": 3971, + "ko": 0 + }, + "meanResponseTime": { + "total": 417, + "ok": 417, + "ko": 0 + }, + "standardDeviation": { + "total": 613, + "ok": 613, + "ko": 0 + }, + "percentiles1": { + "total": 165, + "ok": 165, + "ko": 0 + }, + "percentiles2": { + "total": 386, + "ok": 386, + "ko": 0 + }, + "percentiles3": { + "total": 1422, + "ok": 1422, + "ko": 0 + }, + "percentiles4": { + "total": 3181, + "ok": 3181, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 248, + "percentage": 82 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 31, + "percentage": 10 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 23, + "percentage": 8 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.141843971631206, + "ok": 2.141843971631206, + "ko": 0 + } +} + },"req_request-4-693933700": { + "type": "REQUEST", + "name": "request_4", +"path": "request_4", +"pathFormatted": "req_request-4-693933700", +"stats": { + "name": "request_4", + "numberOfRequests": { + "total": 302, + "ok": 302, + "ko": 0 + }, + "minResponseTime": { + "total": 109, + "ok": 109, + "ko": 0 + }, + "maxResponseTime": { + "total": 710, + "ok": 710, + "ko": 0 + }, + "meanResponseTime": { + "total": 204, + "ok": 204, + "ko": 0 + }, + "standardDeviation": { + "total": 112, + "ok": 112, + "ko": 0 + }, + "percentiles1": { + "total": 166, + "ok": 166, + "ko": 0 + }, + "percentiles2": { + "total": 213, + "ok": 213, + "ko": 0 + }, + "percentiles3": { + "total": 418, + "ok": 418, + "ko": 0 + }, + "percentiles4": { + "total": 680, + "ok": 680, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 302, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.141843971631206, + "ok": 2.141843971631206, + "ko": 0 + } +} + },"req_request-5-693933701": { + "type": "REQUEST", + "name": "request_5", +"path": "request_5", +"pathFormatted": "req_request-5-693933701", +"stats": { + "name": "request_5", + "numberOfRequests": { + "total": 302, + "ok": 302, + "ko": 0 + }, + "minResponseTime": { + "total": 296, + "ok": 296, + "ko": 0 + }, + "maxResponseTime": { + "total": 6063, + "ok": 6063, + "ko": 0 + }, + "meanResponseTime": { + "total": 1097, + "ok": 1097, + "ko": 0 + }, + "standardDeviation": { + "total": 806, + "ok": 806, + "ko": 0 + }, + "percentiles1": { + "total": 886, + "ok": 886, + "ko": 0 + }, + "percentiles2": { + "total": 1324, + "ok": 1324, + "ko": 0 + }, + "percentiles3": { + "total": 2571, + "ok": 2571, + "ko": 0 + }, + "percentiles4": { + "total": 4207, + "ok": 4207, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 131, + "percentage": 43 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 83, + "percentage": 27 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 88, + "percentage": 29 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.141843971631206, + "ok": 2.141843971631206, + "ko": 0 + } +} + },"req_request-6-693933702": { + "type": "REQUEST", + "name": "request_6", +"path": "request_6", +"pathFormatted": "req_request-6-693933702", +"stats": { + "name": "request_6", + "numberOfRequests": { + "total": 302, + "ok": 302, + "ko": 0 + }, + "minResponseTime": { + "total": 390, + "ok": 390, + "ko": 0 + }, + "maxResponseTime": { + "total": 9288, + "ok": 9288, + "ko": 0 + }, + "meanResponseTime": { + "total": 2174, + "ok": 2174, + "ko": 0 + }, + "standardDeviation": { + "total": 1486, + "ok": 1486, + "ko": 0 + }, + "percentiles1": { + "total": 1783, + "ok": 1783, + "ko": 0 + }, + "percentiles2": { + "total": 2740, + "ok": 2740, + "ko": 0 + }, + "percentiles3": { + "total": 5240, + "ok": 5240, + "ko": 0 + }, + "percentiles4": { + "total": 7322, + "ok": 7322, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 37, + "percentage": 12 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 38, + "percentage": 13 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 227, + "percentage": 75 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.141843971631206, + "ok": 2.141843971631206, + "ko": 0 + } +} + },"req_request-7-693933703": { + "type": "REQUEST", + "name": "request_7", +"path": "request_7", +"pathFormatted": "req_request-7-693933703", +"stats": { + "name": "request_7", + "numberOfRequests": { + "total": 302, + "ok": 302, + "ko": 0 + }, + "minResponseTime": { + "total": 37, + "ok": 37, + "ko": 0 + }, + "maxResponseTime": { + "total": 3149, + "ok": 3149, + "ko": 0 + }, + "meanResponseTime": { + "total": 286, + "ok": 286, + "ko": 0 + }, + "standardDeviation": { + "total": 473, + "ok": 473, + "ko": 0 + }, + "percentiles1": { + "total": 92, + "ok": 92, + "ko": 0 + }, + "percentiles2": { + "total": 274, + "ok": 274, + "ko": 0 + }, + "percentiles3": { + "total": 1159, + "ok": 1159, + "ko": 0 + }, + "percentiles4": { + "total": 2464, + "ok": 2464, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 266, + "percentage": 88 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 21, + "percentage": 7 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 15, + "percentage": 5 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.141843971631206, + "ok": 2.141843971631206, + "ko": 0 + } +} + },"req_request-8-693933704": { + "type": "REQUEST", + "name": "request_8", +"path": "request_8", +"pathFormatted": "req_request-8-693933704", +"stats": { + "name": "request_8", + "numberOfRequests": { + "total": 302, + "ok": 301, + "ko": 1 + }, + "minResponseTime": { + "total": 74, + "ok": 74, + "ko": 10012 + }, + "maxResponseTime": { + "total": 10012, + "ok": 3184, + "ko": 10012 + }, + "meanResponseTime": { + "total": 321, + "ok": 289, + "ko": 10012 + }, + "standardDeviation": { + "total": 715, + "ok": 447, + "ko": 0 + }, + "percentiles1": { + "total": 83, + "ok": 83, + "ko": 10012 + }, + "percentiles2": { + "total": 137, + "ok": 137, + "ko": 10012 + }, + "percentiles3": { + "total": 1107, + "ok": 1106, + "ko": 10012 + }, + "percentiles4": { + "total": 1582, + "ok": 1477, + "ko": 10012 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 252, + "percentage": 83 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 43, + "percentage": 14 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 6, + "percentage": 2 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 1, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.141843971631206, + "ok": 2.1347517730496453, + "ko": 0.0070921985815602835 + } +} + },"req_request-9-693933705": { + "type": "REQUEST", + "name": "request_9", +"path": "request_9", +"pathFormatted": "req_request-9-693933705", +"stats": { + "name": "request_9", + "numberOfRequests": { + "total": 302, + "ok": 302, + "ko": 0 + }, + "minResponseTime": { + "total": 74, + "ok": 74, + "ko": 0 + }, + "maxResponseTime": { + "total": 3122, + "ok": 3122, + "ko": 0 + }, + "meanResponseTime": { + "total": 264, + "ok": 264, + "ko": 0 + }, + "standardDeviation": { + "total": 404, + "ok": 404, + "ko": 0 + }, + "percentiles1": { + "total": 82, + "ok": 82, + "ko": 0 + }, + "percentiles2": { + "total": 126, + "ok": 126, + "ko": 0 + }, + "percentiles3": { + "total": 1094, + "ok": 1094, + "ko": 0 + }, + "percentiles4": { + "total": 1126, + "ok": 1126, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 254, + "percentage": 84 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 46, + "percentage": 15 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 2, + "percentage": 1 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.141843971631206, + "ok": 2.141843971631206, + "ko": 0 + } +} + },"req_request-10-37108175": { + "type": "REQUEST", + "name": "request_10", +"path": "request_10", +"pathFormatted": "req_request-10-37108175", +"stats": { + "name": "request_10", + "numberOfRequests": { + "total": 302, + "ok": 302, + "ko": 0 + }, + "minResponseTime": { + "total": 74, + "ok": 74, + "ko": 0 + }, + "maxResponseTime": { + "total": 3122, + "ok": 3122, + "ko": 0 + }, + "meanResponseTime": { + "total": 252, + "ok": 252, + "ko": 0 + }, + "standardDeviation": { + "total": 429, + "ok": 429, + "ko": 0 + }, + "percentiles1": { + "total": 83, + "ok": 83, + "ko": 0 + }, + "percentiles2": { + "total": 101, + "ok": 101, + "ko": 0 + }, + "percentiles3": { + "total": 1097, + "ok": 1097, + "ko": 0 + }, + "percentiles4": { + "total": 1443, + "ok": 1443, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 258, + "percentage": 85 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 39, + "percentage": 13 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 5, + "percentage": 2 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.141843971631206, + "ok": 2.141843971631206, + "ko": 0 + } +} + },"req_request-11-37108176": { + "type": "REQUEST", + "name": "request_11", +"path": "request_11", +"pathFormatted": "req_request-11-37108176", +"stats": { + "name": "request_11", + "numberOfRequests": { + "total": 302, + "ok": 302, + "ko": 0 + }, + "minResponseTime": { + "total": 38, + "ok": 38, + "ko": 0 + }, + "maxResponseTime": { + "total": 372, + "ok": 372, + "ko": 0 + }, + "meanResponseTime": { + "total": 47, + "ok": 47, + "ko": 0 + }, + "standardDeviation": { + "total": 28, + "ok": 28, + "ko": 0 + }, + "percentiles1": { + "total": 42, + "ok": 42, + "ko": 0 + }, + "percentiles2": { + "total": 43, + "ok": 43, + "ko": 0 + }, + "percentiles3": { + "total": 67, + "ok": 67, + "ko": 0 + }, + "percentiles4": { + "total": 131, + "ok": 131, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 302, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.141843971631206, + "ok": 2.141843971631206, + "ko": 0 + } +} + },"req_request-12-37108177": { + "type": "REQUEST", + "name": "request_12", +"path": "request_12", +"pathFormatted": "req_request-12-37108177", +"stats": { + "name": "request_12", + "numberOfRequests": { + "total": 302, + "ok": 302, + "ko": 0 + }, + "minResponseTime": { + "total": 23, + "ok": 23, + "ko": 0 + }, + "maxResponseTime": { + "total": 3114, + "ok": 3114, + "ko": 0 + }, + "meanResponseTime": { + "total": 55, + "ok": 55, + "ko": 0 + }, + "standardDeviation": { + "total": 223, + "ok": 223, + "ko": 0 + }, + "percentiles1": { + "total": 30, + "ok": 30, + "ko": 0 + }, + "percentiles2": { + "total": 31, + "ok": 31, + "ko": 0 + }, + "percentiles3": { + "total": 72, + "ok": 72, + "ko": 0 + }, + "percentiles4": { + "total": 216, + "ok": 216, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 299, + "percentage": 99 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 3, + "percentage": 1 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.141843971631206, + "ok": 2.141843971631206, + "ko": 0 + } +} + },"req_request-14-37108179": { + "type": "REQUEST", + "name": "request_14", +"path": "request_14", +"pathFormatted": "req_request-14-37108179", +"stats": { + "name": "request_14", + "numberOfRequests": { + "total": 302, + "ok": 302, + "ko": 0 + }, + "minResponseTime": { + "total": 35, + "ok": 35, + "ko": 0 + }, + "maxResponseTime": { + "total": 124, + "ok": 124, + "ko": 0 + }, + "meanResponseTime": { + "total": 40, + "ok": 40, + "ko": 0 + }, + "standardDeviation": { + "total": 8, + "ok": 8, + "ko": 0 + }, + "percentiles1": { + "total": 39, + "ok": 39, + "ko": 0 + }, + "percentiles2": { + "total": 40, + "ok": 40, + "ko": 0 + }, + "percentiles3": { + "total": 56, + "ok": 56, + "ko": 0 + }, + "percentiles4": { + "total": 64, + "ok": 64, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 302, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.141843971631206, + "ok": 2.141843971631206, + "ko": 0 + } +} + },"req_request-15-37108180": { + "type": "REQUEST", + "name": "request_15", +"path": "request_15", +"pathFormatted": "req_request-15-37108180", +"stats": { + "name": "request_15", + "numberOfRequests": { + "total": 302, + "ok": 302, + "ko": 0 + }, + "minResponseTime": { + "total": 38, + "ok": 38, + "ko": 0 + }, + "maxResponseTime": { + "total": 91, + "ok": 91, + "ko": 0 + }, + "meanResponseTime": { + "total": 43, + "ok": 43, + "ko": 0 + }, + "standardDeviation": { + "total": 6, + "ok": 6, + "ko": 0 + }, + "percentiles1": { + "total": 42, + "ok": 42, + "ko": 0 + }, + "percentiles2": { + "total": 43, + "ok": 43, + "ko": 0 + }, + "percentiles3": { + "total": 58, + "ok": 58, + "ko": 0 + }, + "percentiles4": { + "total": 66, + "ok": 66, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 302, + "percentage": 100 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 0, + "percentage": 0 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.141843971631206, + "ok": 2.141843971631206, + "ko": 0 + } +} + },"req_request-16-37108181": { + "type": "REQUEST", + "name": "request_16", +"path": "request_16", +"pathFormatted": "req_request-16-37108181", +"stats": { + "name": "request_16", + "numberOfRequests": { + "total": 302, + "ok": 302, + "ko": 0 + }, + "minResponseTime": { + "total": 73, + "ok": 73, + "ko": 0 + }, + "maxResponseTime": { + "total": 1097, + "ok": 1097, + "ko": 0 + }, + "meanResponseTime": { + "total": 221, + "ok": 221, + "ko": 0 + }, + "standardDeviation": { + "total": 349, + "ok": 349, + "ko": 0 + }, + "percentiles1": { + "total": 81, + "ok": 81, + "ko": 0 + }, + "percentiles2": { + "total": 83, + "ok": 83, + "ko": 0 + }, + "percentiles3": { + "total": 1092, + "ok": 1092, + "ko": 0 + }, + "percentiles4": { + "total": 1096, + "ok": 1096, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 260, + "percentage": 86 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 42, + "percentage": 14 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.141843971631206, + "ok": 2.141843971631206, + "ko": 0 + } +} + },"req_request-17-37108182": { + "type": "REQUEST", + "name": "request_17", +"path": "request_17", +"pathFormatted": "req_request-17-37108182", +"stats": { + "name": "request_17", + "numberOfRequests": { + "total": 302, + "ok": 302, + "ko": 0 + }, + "minResponseTime": { + "total": 74, + "ok": 74, + "ko": 0 + }, + "maxResponseTime": { + "total": 1097, + "ok": 1097, + "ko": 0 + }, + "meanResponseTime": { + "total": 213, + "ok": 213, + "ko": 0 + }, + "standardDeviation": { + "total": 342, + "ok": 342, + "ko": 0 + }, + "percentiles1": { + "total": 81, + "ok": 81, + "ko": 0 + }, + "percentiles2": { + "total": 82, + "ok": 82, + "ko": 0 + }, + "percentiles3": { + "total": 1091, + "ok": 1091, + "ko": 0 + }, + "percentiles4": { + "total": 1096, + "ok": 1096, + "ko": 0 + }, + "group1": { + "name": "t < 800 ms", + "htmlName": "t < 800 ms", + "count": 262, + "percentage": 87 +}, + "group2": { + "name": "800 ms <= t < 1200 ms", + "htmlName": "t >= 800 ms
    t < 1200 ms", + "count": 40, + "percentage": 13 +}, + "group3": { + "name": "t >= 1200 ms", + "htmlName": "t >= 1200 ms", + "count": 0, + "percentage": 0 +}, + "group4": { + "name": "failed", + "htmlName": "failed", + "count": 0, + "percentage": 0 +}, + "meanNumberOfRequestsPerSecond": { + "total": 2.141843971631206, + "ok": 2.141843971631206, + "ko": 0 + } +} + } +} + +} \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/theme.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/theme.js new file mode 100644 index 0000000..b95a7b3 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/theme.js @@ -0,0 +1,127 @@ +/* + * Copyright 2011-2022 Gatling Corp + * + * Licensed under the Gatling Highcharts License + */ +Highcharts.theme = { + chart: { + backgroundColor: '#f7f7f7', + borderWidth: 0, + borderRadius: 8, + plotBackgroundColor: null, + plotShadow: false, + plotBorderWidth: 0 + }, + xAxis: { + gridLineWidth: 0, + lineColor: '#666', + tickColor: '#666', + labels: { + style: { + color: '#666' + } + }, + title: { + style: { + color: '#666' + } + } + }, + yAxis: { + alternateGridColor: null, + minorTickInterval: null, + gridLineColor: '#999', + lineWidth: 0, + tickWidth: 0, + labels: { + style: { + color: '#666', + fontWeight: 'bold' + } + }, + title: { + style: { + color: '#666', + font: 'bold 12px Lucida Grande, Lucida Sans Unicode, Verdana, Arial, Helvetica, sans-serif' + } + } + }, + labels: { + style: { + color: '#CCC' + } + }, + + + rangeSelector: { + buttonTheme: { + fill: '#cfc9c6', + stroke: '#000000', + style: { + color: '#34332e', + fontWeight: 'bold', + borderColor: '#b2b2a9' + }, + states: { + hover: { + fill: '#92918C', + stroke: '#000000', + style: { + color: '#34332e', + fontWeight: 'bold', + borderColor: '#8b897d' + } + }, + select: { + fill: '#E37400', + stroke: '#000000', + style: { + color: '#FFF' + } + } + } + }, + inputStyle: { + backgroundColor: '#333', + color: 'silver' + }, + labelStyle: { + color: '#8b897d' + } + }, + + navigator: { + handles: { + backgroundColor: '#f7f7f7', + borderColor: '#92918C' + }, + outlineColor: '#92918C', + outlineWidth: 1, + maskFill: 'rgba(146, 145, 140, 0.5)', + series: { + color: '#5E7BE2', + lineColor: '#5E7BE2' + } + }, + + scrollbar: { + buttonBackgroundColor: '#f7f7f7', + buttonBorderWidth: 1, + buttonBorderColor: '#92918C', + buttonArrowColor: '#92918C', + buttonBorderRadius: 2, + + barBorderWidth: 1, + barBorderRadius: 0, + barBackgroundColor: '#92918C', + barBorderColor: '#92918C', + + rifleColor: '#92918C', + + trackBackgroundColor: '#b0b0a8', + trackBorderWidth: 1, + trackBorderColor: '#b0b0a8' + } +}; + +Highcharts.setOptions(Highcharts.theme); diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/unpack.js b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/unpack.js new file mode 100644 index 0000000..883c33e --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/js/unpack.js @@ -0,0 +1,38 @@ +'use strict'; + +var unpack = function (array) { + var findNbSeries = function (array) { + var currentPlotPack; + var length = array.length; + + for (var i = 0; i < length; i++) { + currentPlotPack = array[i][1]; + if(currentPlotPack !== null) { + return currentPlotPack.length; + } + } + return 0; + }; + + var i, j; + var nbPlots = array.length; + var nbSeries = findNbSeries(array); + + // Prepare unpacked array + var unpackedArray = new Array(nbSeries); + + for (i = 0; i < nbSeries; i++) { + unpackedArray[i] = new Array(nbPlots); + } + + // Unpack the array + for (i = 0; i < nbPlots; i++) { + var timestamp = array[i][0]; + var values = array[i][1]; + for (j = 0; j < nbSeries; j++) { + unpackedArray[j][i] = [timestamp * 1000, values === null ? null : values[j]]; + } + } + + return unpackedArray; +}; diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-0-693933696.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-0-693933696.html new file mode 100644 index 0000000..95d4be6 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-0-693933696.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_0 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-1-693933697.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-1-693933697.html new file mode 100644 index 0000000..63d4bdc --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-1-693933697.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_1 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-10-37108175.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-10-37108175.html new file mode 100644 index 0000000..a0b7da6 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-10-37108175.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_10 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-11-37108176.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-11-37108176.html new file mode 100644 index 0000000..bdbb334 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-11-37108176.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_11 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-12-37108177.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-12-37108177.html new file mode 100644 index 0000000..ed7a716 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-12-37108177.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_12 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-14-37108179.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-14-37108179.html new file mode 100644 index 0000000..cd31f50 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-14-37108179.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_14 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-15-37108180.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-15-37108180.html new file mode 100644 index 0000000..d4d95f5 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-15-37108180.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_15 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-16-37108181.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-16-37108181.html new file mode 100644 index 0000000..6e277d8 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-16-37108181.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_16 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-17-37108182.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-17-37108182.html new file mode 100644 index 0000000..8260c39 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-17-37108182.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_17 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-2-693933698.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-2-693933698.html new file mode 100644 index 0000000..99c7238 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-2-693933698.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_2 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-3-693933699.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-3-693933699.html new file mode 100644 index 0000000..be4687a --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-3-693933699.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_3 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-4-693933700.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-4-693933700.html new file mode 100644 index 0000000..ac16e55 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-4-693933700.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_4 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-5-693933701.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-5-693933701.html new file mode 100644 index 0000000..8b5ddb5 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-5-693933701.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_5 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-6-693933702.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-6-693933702.html new file mode 100644 index 0000000..e27b509 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-6-693933702.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_6 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-7-693933703.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-7-693933703.html new file mode 100644 index 0000000..8d3ef64 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-7-693933703.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_7 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-8-693933704.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-8-693933704.html new file mode 100644 index 0000000..cd81ef3 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-8-693933704.html @@ -0,0 +1,925 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_8 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-9-693933705.html b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-9-693933705.html new file mode 100644 index 0000000..7ca10da --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/req_request-9-693933705.html @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + +Gatling Stats - request_9 + + + +
    +
    +
    +
    + + + Documentation +
    + + Try + Gatling Enterprise + Gatling Enterprise + + +
    +
    + +
    +
    +
    +
    + RecordedSimulation +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    + +
    +
    +
    Stats
    +
    +

    Executions

    + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Total count
    Mean count/s
    +

    Response Time (ms)

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    TotalOKKO
    Min
    50th percentile
    75th percentile
    95th percentile
    99th percentile
    Max
    Mean
    Standard Deviation
    +
    +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    +
    +
    +
    + +
    + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/bootstrap.min.css b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/bootstrap.min.css new file mode 100644 index 0000000..76a2b9b --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/bootstrap.min.css @@ -0,0 +1,27 @@ +.clearfix{*zoom:1;}.clearfix:before,.clearfix:after{display:table;content:"";line-height:0;} +.clearfix:after{clear:both;} +.hide-text{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0;} +.input-block-level{display:block;width:100%;min-height:30px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;} +.tooltip{position:absolute;z-index:1030;display:block;visibility:visible;padding:5px;font-size:11px;opacity:0;filter:alpha(opacity=0);}.tooltip.in{opacity:0.8;filter:alpha(opacity=80);} +.tooltip.top{margin-top:-3px;} +.tooltip.right{margin-left:3px;} +.tooltip.bottom{margin-top:3px;} +.tooltip.left{margin-left:-3px;} +.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;text-decoration:none;background-color:#000000;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;} +.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid;} +.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000;} +.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000;} +.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000;} +.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000;} +.popover{position:absolute;top:0;left:0;z-index:1010;display:none;max-width:750px;padding:1px;background-color:#ffffff;-webkit-background-clip:padding-box;-moz-background-clip:padding;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0, 0, 0, 0.2);-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);-moz-box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);box-shadow:0 5px 10px rgba(0, 0, 0, 0.2);}.popover.top{margin-top:-10px;} +.popover.right{margin-left:10px;} +.popover.bottom{margin-top:10px;} +.popover.left{margin-left:-10px;} +.popover-title{margin:0;padding:8px 14px;font-size:14px;font-weight:normal;line-height:18px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;-webkit-border-radius:5px 5px 0 0;-moz-border-radius:5px 5px 0 0;border-radius:5px 5px 0 0;} +.popover-content{padding:9px 14px;}.popover-content p,.popover-content ul,.popover-content ol{margin-bottom:0;} +.popover .arrow,.popover .arrow:after{position:absolute;display:inline-block;width:0;height:0;border-color:transparent;border-style:solid;} +.popover .arrow:after{content:"";z-index:-1;} +.popover.top .arrow{bottom:-10px;left:50%;margin-left:-10px;border-width:10px 10px 0;border-top-color:#ffffff;}.popover.top .arrow:after{border-width:11px 11px 0;border-top-color:rgba(0, 0, 0, 0.25);bottom:-1px;left:-11px;} +.popover.right .arrow{top:50%;left:-10px;margin-top:-10px;border-width:10px 10px 10px 0;border-right-color:#ffffff;}.popover.right .arrow:after{border-width:11px 11px 11px 0;border-right-color:rgba(0, 0, 0, 0.25);bottom:-11px;left:-1px;} +.popover.bottom .arrow{top:-10px;left:50%;margin-left:-10px;border-width:0 10px 10px;border-bottom-color:#ffffff;}.popover.bottom .arrow:after{border-width:0 11px 11px;border-bottom-color:rgba(0, 0, 0, 0.25);top:-1px;left:-11px;} +.popover.left .arrow{top:50%;right:-10px;margin-top:-10px;border-width:10px 0 10px 10px;border-left-color:#ffffff;}.popover.left .arrow:after{border-width:11px 0 11px 11px;border-left-color:rgba(0, 0, 0, 0.25);bottom:-11px;right:-1px;} diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/close.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/close.svg new file mode 100644 index 0000000..c161bb9 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/close.svg @@ -0,0 +1,3 @@ + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/executions.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/executions.svg new file mode 100644 index 0000000..84068cd --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/executions.svg @@ -0,0 +1,3 @@ + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/expand.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/expand.svg new file mode 100644 index 0000000..f6e75e0 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/expand.svg @@ -0,0 +1,38 @@ + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/favicon.ico b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/favicon.ico new file mode 100644 index 0000000..d2d20e1 Binary files /dev/null and b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/favicon.ico differ diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/fullscreen.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/fullscreen.svg new file mode 100644 index 0000000..91f3b27 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/fullscreen.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/logo-dark.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/logo-dark.svg new file mode 100644 index 0000000..7eb4d51 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/logo-dark.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/logo-enterprise-dark.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/logo-enterprise-dark.svg new file mode 100644 index 0000000..1127d75 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/logo-enterprise-dark.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/logo-enterprise-light.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/logo-enterprise-light.svg new file mode 100644 index 0000000..4a6e1de --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/logo-enterprise-light.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/logo-light.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/logo-light.svg new file mode 100644 index 0000000..f519eef --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/logo-light.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/sort-down.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/sort-down.svg new file mode 100644 index 0000000..db58a09 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/sort-down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/sort-up.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/sort-up.svg new file mode 100644 index 0000000..bba9d84 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/sort-up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/sort.svg b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/sort.svg new file mode 100644 index 0000000..43b658e --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/sort.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/style.css b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/style.css new file mode 100644 index 0000000..edc9626 --- /dev/null +++ b/gatewayservice/monitoring/grafana/provisioning/load_testing/5users-2cpus/style/style.css @@ -0,0 +1,1199 @@ +/* + * Copyright 2011-2024 GatlingCorp (https://gatling.io) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +:root { + --gatling-background-color: #f2f2f2; + --gatling-background-light-color: #f7f7f7; + --gatling-border-color: #dddddd; + --gatling-blue-color: #4a9fe5; + --gatling-dark-blue-color: #24275e; + --gatling-danger-color: #f15b4f; + --gatling-danger-light-color: #f5d1ce; + --gatling-enterprise-color: #6161d6; + --gatling-enterprise-light-color: #c4c4ed; + --gatling-gray-medium-color: #bbb; + --gatling-hover-color: #e6e6e6; + --gatling-hover-background-color: #e6e6e6; + --gatling-light-color: #ffffff; + --gatling-orange-color: #f78557; + --gatling-success-color: #68b65c; + --gatling-text-color: #1f2024; + --gatling-total-color: #ffa900; + + --gatling-border-radius: 2px; + --gatling-spacing-small: 5px; + --gatling-spacing: 10px; + --gatling-spacing-layout: 20px; + + --gatling-font-weight-normal: 400; + --gatling-font-weight-medium: 500; + --gatling-font-weight-bold: 700; + --gatling-font-size-secondary: 12px; + --gatling-font-size-default: 14px; + --gatling-font-size-heading: 16px; + --gatling-font-size-section: 22px; + --gatling-font-size-header: 34px; + + --gatling-media-desktop-large: 1920px; +} + +html[data-theme="dark"] { + --gatling-background-color: #1e2225; + --gatling-background-light-color: #272c30; + --gatling-border-color: #555555; + --gatling-blue-color: #1188ff; + --gatling-dark-blue-color: #17223B; + --gatling-danger-color: #d9534f; + --gatling-danger-light-color: #c9302c; + --gatling-enterprise-color: #b2a2ea; + --gatling-enterprise-light-color: #343479; + --gatling-gray-medium-color: #999; + --gatling-hover-color: #30363b; + --gatling-hover-background-color: #2c2c2c; + --gatling-light-color: #394046; + --gatling-orange-color: #fe8e5f; + --gatling-success-color: #5cb85c; + --gatling-text-color: #dee2e6; + --gatling-total-color: #ffa900; +} + +* { + min-height: 0; + min-width: 0; +} + +html, +body { + height: 100%; + width: 100%; +} + +body { + color: var(--gatling-text-color); + font-family: arial; + font-size: var(--gatling-font-size-secondary); + margin: 0; +} + +.app-container { + display: flex; + flex-direction: column; + + height: 100%; + width: 100%; +} + +.head { + display: flex; + align-items: center; + justify-content: space-between; + flex-direction: row; + + flex: 1; + + background-color: var(--gatling-light-color); + border-bottom: 1px solid var(--gatling-border-color); + min-height: 69px; + padding: 0 var(--gatling-spacing-layout); +} + +.head .spacer { + flex-grow: 1; +} + +.head .theme-toggle { + margin-left: 20px; + background: none; + color: var(--gatling-text-color); + border: none; +} + +.head .theme-toggle:hover { + color: var(--gatling-gray-medium-color); + cursor: pointer; +} + +body .toggle-dark, body .toggle-light { + display: block; +} + +[data-theme="dark"] body .toggle-dark { + display: none; +} + +[data-theme="light"] body .toggle-light { + display: none; +} + +[data-theme="dark"] body .logo-enterprise-light { + display: none; +} + +[data-theme="light"] body .logo-enterprise-dark { + display: none; +} + +.gatling-open-source { + display: flex; + align-items: center; + justify-content: space-between; + flex-direction: row; + gap: var(--gatling-spacing-layout); +} + +.gatling-documentation { + display: flex; + align-items: center; + + background-color: var(--gatling-light-color); + border-radius: var(--gatling-border-radius); + color: var(--gatling-orange-color); + border: 1px solid var(--gatling-orange-color); + text-align: center; + padding: var(--gatling-spacing-small) var(--gatling-spacing); + height: 23px; + + font-size: var(--gatling-font-size-default); +} + +.gatling-documentation:hover { + background-color: var(--gatling-orange-color); + color: var(--gatling-light-color); +} + +.gatling-logo { + height: 35px; +} + +.gatling-logo img { + height: 100%; +} + +[data-theme="dark"] .gatling-logo-light { + display: none; +} + +[data-theme="light"] .gatling-logo-dark { + display: none; +} + +.container { + display: flex; + align-items: stretch; + height: 100%; +} + +.nav { + min-width: 210px; + width: 210px; + max-height: calc(100vh - var(--gatling-spacing-layout) - var(--gatling-spacing-layout)); + background: var(--gatling-light-color); + border-right: 1px solid var(--gatling-border-color); + overflow-y: auto; +} + +@media print { + .nav { + display: none; + } +} + +@media screen and (min-width: 1920px) { + .nav { + min-width: 310px; + width: 310px; + } +} + +.nav ul { + display: flex; + flex-direction: column; + + padding: 0; + margin: 0; +} + +.nav li { + display: flex; + list-style: none; + width: 100%; + padding: 0; +} + +.nav .item { + display: inline-flex; + align-items: center; + margin: 0 auto; + white-space: nowrap; + color: var(--gatling-text-color); + font-size: var(--gatling-font-size-default); + font-weight: var(--gatling-font-weight-bold); + margin: 0; + width: 100%; +} + +.nav .item .nav-label { + padding: var(--gatling-spacing) var(--gatling-spacing-layout); +} + +.nav .item:hover { + background-color: var(--gatling-hover-color); +} + +.nav .on .item { + background-color: var(--gatling-orange-color); +} + +.nav .on .item span { + color: var(--gatling-light-color); +} + +.cadre { + width: 100%; + height: 100%; + overflow-y: scroll; + scroll-behavior: smooth; +} + +@media print { + .cadre { + overflow-y: unset; + } +} + +.frise { + position: absolute; + top: 60px; + z-index: -1; + + background-color: var(--gatling-background-color); + height: 530px; +} + +.global { + height: 650px +} + +a { + text-decoration: none; +} + +a:hover { + color: var(--gatling-hover-color); +} + +img { + border: 0; +} + +h1 { + color: var(--gatling-dark-blue-color); + font-size: var(--gatling-font-size-section); + font-weight: var(--gatling-font-weight-medium); + text-align: center; + margin: 0; +} + +h1 span { + color: var(--gatling-hover-color); +} + +.enterprise { + display: flex; + align-items: center; + justify-content: center; + gap: var(--gatling-spacing-small); + + background-color: var(--gatling-light-color); + border-radius: var(--gatling-border-radius); + border: 1px solid var(--gatling-enterprise-color); + color: var(--gatling-enterprise-color); + text-align: center; + padding: var(--gatling-spacing-small) var(--gatling-spacing); + height: 25px; +} + +.enterprise:hover { + background-color: var(--gatling-hover-color); + color: var(--gatling-enterprise-color); +} + +.enterprise img { + display: block; + width: 160px; +} + +.simulation-card { + display: flex; + flex-direction: column; + align-self: stretch; + flex: 1; + gap: var(--gatling-spacing-layout); + max-height: 375px; +} + +#simulation-information { + flex: 1; +} + +.simulation-version-information { + display: flex; + flex-direction: column; + + gap: var(--gatling-spacing); + font-size: var(--gatling-font-size-default); + + background-color: var(--gatling-background-light-color); + border: 1px solid var(--gatling-border-color); + border-radius: var(--gatling-border-radius); + padding: var(--gatling-spacing); +} + +.simulation-information-container { + display: flex; + flex-direction: column; + gap: var(--gatling-spacing); +} + +.withTooltip .popover-title { + display: none; +} + +.popover-content p { + margin: 0; +} + +html[data-theme="dark"] div.popover { + background-color: var(--gatling-light-color); + border-bottom: none; +} + +html[data-theme="dark"] div.popover.right .arrow { + border-right-color: var(--gatling-light-color); +} + +.ellipsed-name { + display: block; + + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.simulation-information-item { + display: flex; + flex-direction: row; + align-items: flex-start; + gap: var(--gatling-spacing-small); +} + +.simulation-information-item.description { + flex-direction: column; +} + +.simulation-information-label { + display: inline-block; + font-weight: var(--gatling-font-weight-bold); + min-width: fit-content; +} + +.simulation-information-title { + display: block; + text-align: center; + color: var(--gatling-text-color); + font-weight: var(--gatling-font-weight-bold); + font-size: var(--gatling-font-size-heading); + width: 100%; +} + +.simulation-tooltip span { + display: inline-block; + word-wrap: break-word; + overflow: hidden; + text-overflow: ellipsis; +} + +.content { + display: flex; + flex-direction: column; +} + +.content-in { + width: 100%; + height: 100%; + + overflow-x: scroll; +} + +html[data-theme="dark"] .content-in { + background-color: var(--gatling-background-color); +} + +@media print { + .content-in { + overflow-x: unset; + } +} + +.container-article { + display: flex; + flex-direction: column; + gap: var(--gatling-spacing-layout); + + min-width: 1050px; + width: 1050px; + margin: 0 auto; + padding: var(--gatling-spacing-layout); + box-sizing: border-box; +} + +@media screen and (min-width: 1920px) { + .container-article { + min-width: 1350px; + width: 1350px; + } + + #responses * .highcharts-tracker { + transform: translate(400px, 70px); + } +} + +.content-header { + display: flex; + flex-direction: column; + gap: var(--gatling-spacing-layout); + + background-color: var(--gatling-background-light-color); + border-bottom: 1px solid var(--gatling-border-color); + padding: var(--gatling-spacing-layout) var(--gatling-spacing-layout) 0; +} + +.onglet { + font-size: var(--gatling-font-size-header); + font-weight: var(--gatling-font-weight-medium); + text-align: center; +} + +.sous-menu { + display: flex; + flex-direction: row; + align-items: center; + justify-content: space-between; +} + +.sous-menu-spacer { + display: flex; + align-items: center; + flex-direction: row; +} + +.sous-menu .item { + margin-bottom: -1px; +} + +.sous-menu a { + display: block; + + font-size: var(--gatling-font-size-heading); + font-weight: var(--gatling-font-weight-normal); + padding: var(--gatling-spacing-small) var(--gatling-spacing) var(--gatling-spacing); + border-bottom: 2px solid transparent; + color: var(--gatling-text-color); + text-align: center; + width: 100px; +} + +.sous-menu a:hover { + border-bottom-color: var(--gatling-text-color); +} + +.sous-menu .ouvert a { + border-bottom-color: var(--gatling-orange-color); + font-weight: var(--gatling-font-weight-bold); +} + +.article { + position: relative; + + display: flex; + flex-direction: column; + gap: var(--gatling-spacing-layout); +} + +.infos { + width: 340px; + color: var(--gatling-light-color); +} + +.infos-title { + background-color: var(--gatling-background-light-color); + border: 1px solid var(--gatling-border-color); + border-bottom: 0; + border-top-left-radius: var(--gatling-border-radius); + border-top-right-radius: var(--gatling-border-radius); + color: var(--gatling-text-color); + font-size: var(--gatling-font-size-heading); + font-weight: var(--gatling-font-weight-bold); + text-align: center; + padding: var(--gatling-spacing-small) var(--gatling-spacing); +} + +.info { + background-color: var(--gatling-background-light-color); + border-bottom-left-radius: var(--gatling-border-radius); + border-bottom-right-radius: var(--gatling-border-radius); + border: 1px solid var(--gatling-border-color); + color: var(--gatling-text-color); + height: 100%; + margin: 0; +} + +.info table { + margin: auto; + padding-right: 15px; +} + +.alert-danger { + background-color: var(--gatling-danger-light-color); + border: 1px solid var(--gatling-danger-color); + border-radius: var(--gatling-border-radius); + color: var(--gatling-text-color); + padding: var(--gatling-spacing-layout); + font-weight: var(--gatling-font-weight-bold); +} + +.infos h2 { + color: var(--gatling-text-color); + font-size: var(--gatling-font-size-default); + font-weight: var(--gatling-font-weight-bold); + height: 19px; + margin: 0; + padding: 3.5px 0 0 35px; +} + +.infos .first::before { + content: ''; + display: inline-block; + margin-right: 5px; + margin-bottom: 2px; + vertical-align: middle; + width: 14px; + height: 14px; + background: url('executions.svg'); + background-size: contain; +} + +.infos .second::before { + content: ''; + display: inline-block; + margin-right: 5px; + margin-bottom: 2px; + vertical-align: middle; + width: 16px; + height: 16px; + background: url('time.svg'); + background-size: contain; +} + +html[data-theme="dark"] .infos .first::before, +html[data-theme="dark"] .infos .second::before { + filter: invert(0.9); +} + +.infos th { + text-align: center; +} + +.infos td { + font-weight: var(--gatling-font-weight-bold); + padding: var(--gatling-spacing-small); + -webkit-border-radius: var(--gatling-border-radius); + -moz-border-radius: var(--gatling-border-radius); + -ms-border-radius: var(--gatling-border-radius); + -o-border-radius: var(--gatling-border-radius); + border-radius: var(--gatling-border-radius); + text-align: right; + width: 50px; +} + +.infos .title { + width: 120px; +} + +.infos .ok { + background-color: var(--gatling-success-color); + color: var(--gatling-light-color); +} + +.infos .total { + background-color: var(--gatling-total-color); + color: var(--gatling-light-color); +} + +.infos .ko { + background-color: var(--gatling-danger-color); + -webkit-border-radius: var(--gatling-border-radius); + border-radius: var(--gatling-border-radius); + color: var(--gatling-light-color); +} + +.schema-container { + display: flex; + align-items: center; + justify-content: space-between; + gap: var(--gatling-spacing-layout); +} + +.schema { + background: var(--gatling-background-light-color); + border-radius: var(--gatling-border-radius); + border: 1px solid var(--gatling-border-color); +} + +.ranges { + height: 375px; + width: 500px; +} + +.ranges-large { + height: 375px; + width: 530px; +} + +.geant { + height: 362px; +} + +.extensible-geant { + width: 100%; +} + +.polar { + height: 375px; + width: 230px; +} + +.chart_title { + color: var(--gatling-text-color); + font-weight: var(--gatling-font-weight-bold); + font-size: var(--gatling-font-size-heading); + padding: 2px var(--gatling-spacing); +} + +html[data-theme="dark"] .chart_title { + color: var(--gatling-text-color); + font-weight: var(--gatling-font-weight-bold); + font-size: var(--gatling-font-size-heading); + padding: 2px var(--gatling-spacing); +} + +html[data-theme="dark"] .highcharts-background { + fill: var(--gatling-background-light-color); +} + +html[data-theme="dark"] .highcharts-button-normal rect { + fill: var(--gatling-background-color) !important; +} + +html[data-theme="dark"] .highcharts-button-disabled rect { + fill: var(--gatling-background-light-color) !important; +} + +html[data-theme="dark"] .highcharts-button-pressed rect { + fill: var(--gatling-orange-color) !important; +} + +html[data-theme="dark"] .highcharts-axis text, +html[data-theme="dark"] .highcharts-axis-labels text, +html[data-theme="dark"] .highcharts-button text, +html[data-theme="dark"] .highcharts-legend-item text, +html[data-theme="dark"] .highcharts-range-selector-buttons text { + fill: var(--gatling-text-color) !important; +} + +.statistics { + display: flex; + flex-direction: column; + + background-color: var(--gatling-background-light-color); + border-radius: var(--gatling-border-radius); + border-collapse: collapse; + color: var(--gatling-text-color); + max-height: 100%; +} + +.statistics .title { + display: flex; + text-align: center; + justify-content: space-between; + + min-height: 49.5px; + box-sizing: border-box; + + border: 1px solid var(--gatling-border-color); + color: var(--gatling-text-color); + font-size: var(--gatling-font-size-heading); + font-weight: var(--gatling-font-weight-bold); + padding: var(--gatling-spacing); +} + +.title_base { + display: flex; + align-items: center; + text-align: left; + user-select: none; +} + +.title_base_stats { + color: var(--gatling-text-color); + margin-right: 20px; +} + +.toggle-table { + position: relative; + border: 1px solid var(--gatling-border-color); + background-color: var(--gatling-light-color); + border-radius: 25px; + width: 40px; + height: 20px; + margin: 0 var(--gatling-spacing-small); +} + +.toggle-table::before { + position: absolute; + top: calc(50% - 9px); + left: 1px; + content: ""; + width: 50%; + height: 18px; + border-radius: 50%; + background-color: var(--gatling-text-color); +} + +.toggle-table.off::before { + left: unset; + right: 1px; +} + +.title_expanded { + cursor: pointer; + color: var(--gatling-text-color); +} + +.expand-table, +.collapse-table { + font-size: var(--gatling-font-size-secondary); + font-weight: var(--gatling-font-weight-normal); +} + +.title_expanded span.expand-table { + color: var(--gatling-gray-medium-color); +} + +.title_collapsed { + cursor: pointer; + color: var(--gatling-text-color); +} + +.title_collapsed span.collapse-table { + color: var(--gatling-gray-medium-color); +} + +#container_statistics_head { + position: sticky; + top: -1px; + + background: var(--gatling-background-light-color); + margin-top: -1px; + padding: var(--gatling-spacing-small) var(--gatling-spacing-small) 0px var(--gatling-spacing-small); +} + +#container_statistics_body { + border-bottom-left-radius: var(--gatling-border-radius); + border-bottom-right-radius: var(--gatling-border-radius); + margin-top: -1px; + padding: 0px var(--gatling-spacing-small) var(--gatling-spacing-small) var(--gatling-spacing-small); +} + +#container_errors { + border-bottom-left-radius: var(--gatling-border-radius); + border-bottom-right-radius: var(--gatling-border-radius); + padding: var(--gatling-spacing-small) var(--gatling-spacing-small) 0px var(--gatling-spacing-small); + margin-top: -1px; +} + +#container_assertions { + background-color: var(--gatling-background-light-color); + border-bottom-left-radius: var(--gatling-border-radius); + border-bottom-right-radius: var(--gatling-border-radius); + padding: var(--gatling-spacing-small); + margin-top: -1px; +} + +.statistics-in { + border-spacing: var(--gatling-spacing-small); + border-collapse: collapse; + margin: 0; +} + +.statistics .scrollable { + max-height: 100%; + overflow-y: auto; +} + +#statistics_table_container .statistics .scrollable { + max-height: 785px; +} + +.statistics-in a { + color: var(--gatling-text-color); + font-weight: var(--gatling-font-weight-bold); +} + +.statistics-in .header { + border-radius: var(--gatling-border-radius); + border: 1px solid var(--gatling-border-color); + font-size: var(--gatling-font-size-default); + font-weight: var(--gatling-font-weight-bold); + text-align: center; + padding: var(--gatling-spacing-small); +} + +.sortable { + cursor: pointer; +} + +.sortable span::after { + content: ''; + display: inline-block; + margin-left: 5px; + vertical-align: middle; + width: 12px; + height: 12px; + background: url('sort.svg'); + background-size: contain; +} + +.sorted-up span::after { + background: url('sort-up.svg'); + background-size: contain; +} + +.sorted-down span::after { + background: url('sort-down.svg'); + background-size: contain; +} + +html[data-theme="dark"] .sortable span::after { + filter: invert(0.9); +} + +.executions::before { + content: ''; + display: inline-block; + margin-right: 5px; + margin-bottom: 2px; + vertical-align: middle; + width: 14px; + height: 14px; + background: url('executions.svg'); + background-size: contain; +} + +.response-time::before { + content: ''; + display: inline-block; + margin-right: 5px; + margin-bottom: 2px; + vertical-align: middle; + width: 16px; + height: 16px; + background: url('time.svg'); + background-size: contain; +} + +html[data-theme="dark"] .executions::before, +html[data-theme="dark"] .response-time::before { + filter: invert(0.9); +} + +.statistics-in td { + background-color: var(--gatling-light-color); + border: 1px solid var(--gatling-border-color); + padding: var(--gatling-spacing-small); + min-width: 50px; +} + +.statistics-in .col-1 { + width: 175px; + max-width: 175px; +} +@media screen and (min-width: 1200px) { + .statistics-in .col-1 { + width: 50%; + } +} + +.expandable-container { + display: flex; + flex-direction: row; + box-sizing: border-box; + max-width: 100%; +} + +.statistics-in .value { + text-align: right; + width: 50px; +} + +.statistics-in .total { + color: var(--gatling-text-color); +} + +.statistics-in .col-2 { + background-color: var(--gatling-total-color); + color: var(--gatling-light-color); + font-weight: var(--gatling-font-weight-bold); +} + +.statistics-in .error-col-1 { + background-color: var(--gatling-light-color); + color: var(--gatling-text-color); +} + +.statistics-in .error-col-2 { + text-align: center; +} + +.statistics-in .ok { + background-color: var(--gatling-success-color); + color: var(--gatling-light-color); + font-weight: var(--gatling-font-weight-bold); +} + +.statistics-in .ko { + background-color: var(--gatling-danger-color); + color: var(--gatling-light-color); + font-weight: var(--gatling-font-weight-bold); +} + +.statistics-in .expand-button { + padding-left: var(--gatling-spacing); + cursor: pointer; +} + +.expand-button.hidden { + background: none; + cursor: default; +} + +.statistics-button { + background-color: var(--gatling-light-color); + color: var(--gatling-text-color); + padding: var(--gatling-spacing-small) var(--gatling-spacing); + border: 1px solid var(--gatling-border-color); + border-radius: var(--gatling-border-radius); +} + +#statistics_full_screen{ + padding: var(--gatling-spacing-small); +} + +#statistics_full_screen > img { + width: 14px; + height: 14px; +} + +html[data-theme="dark"] #statistics_full_screen > img { + filter: invert(0.9); +} + +#statistics_full_screen:disabled { + display: none; +} + +.statistics-button:hover:not(:disabled) { + cursor: pointer; + background-color: var(--gatling-hover-color); +} + +.statistics-in .expand-button.expand { + content: ''; + display: inline-block; + vertical-align: middle; + width: 2px; + height: 10px; + background: url('expand.svg'); + background-size: contain; +} + +.statistics-in .expand-button.collapse { + content: ''; + display: inline-block; + vertical-align: middle; + width: 2px; + height: 10px; + background: url('sort-down.svg'); + background-size: contain; +} + +html[data-theme="dark"] .statistics-in .expand-button.collapse, +html[data-theme="dark"] .statistics-in .expand-button.expand { + filter: invert(0.9); +} + +.nav .expand-button { + padding: var(--gatling-spacing-small) var(--gatling-spacing); +} + +.nav .expand-button.expand { + content: ''; + display: inline-block; + vertical-align: middle; + height: 8px; + background: url('expand.svg') no-repeat; + background-size: contain; + cursor: pointer; + margin-top: 6px; +} + +.nav .expand-button.collapse { + content: ''; + display: inline-block; + vertical-align: middle; + height: 8px; + background: url('sort-down.svg') no-repeat; + background-size: contain; + cursor: pointer; + margin-top: 6px; +} + +html[data-theme="dark"] .nav .expand-button.expand, +html[data-theme="dark"] .nav .expand-button.collapse { + filter: invert(0.9); +} + +.right { + display: flex; + align-items: center; + gap: var(--gatling-spacing); + float: right; + font-size: var(--gatling-font-size-default); +} + +.withTooltip { + outline: none; +} + +.withTooltip:hover { + text-decoration: none; +} + +.withTooltip .tooltipContent { + position: absolute; + z-index: 10; + display: none; + + background: var(--gatling-orange-color); + -webkit-box-shadow: 1px 2px 4px 0px rgba(47, 47, 47, 0.2); + -moz-box-shadow: 1px 2px 4px 0px rgba(47, 47, 47, 0.2); + box-shadow: 1px 2px 4px 0px rgba(47, 47, 47, 0.2); + border-radius: var(--gatling-border-radius); + color: var(--gatling-light-color); + margin-top: -5px; + padding: var(--gatling-spacing-small); +} + +.withTooltip:hover .tooltipContent { + display: inline; +} + +.button-modal { + padding: var(--gatling-spacing-small); +} + +.button-modal > img { + width: 14px; + height: 14px; +} + +html[data-theme="dark"] .button-modal > img { + filter: invert(0.9); +} + +.statistics-table-modal { + background-color: var(--gatling-background-color); + height: calc(100% - 60px); + width: calc(100% - 60px); + border-radius: var(--gatling-border-radius); +} + +.statistics-table-modal::backdrop { + position: fixed; + top: 0px; + right: 0px; + bottom: 0px; + left: 0px; + + background-color: rgba(100, 100, 100, 0.9); +} + +.statistics-table-modal-container { + display: flex; + flex-direction: column; + + width: 100%; + height: calc(100% - 35px); + overflow-x: auto; +} + +.button-modal { + cursor: pointer; + + height: 25px; + width: 25px; + + border: 1px solid var(--gatling-border-color); + background-color: var(--gatling-light-color); + border-radius: var(--gatling-border-radius); + color: var(--gatling-text-color); +} + +.button-modal:hover { + background-color: var(--gatling-background-color); +} + +.statistics-table-modal-header { + display: flex; + align-items: flex-end; + justify-content: flex-end; + + padding-bottom: var(--gatling-spacing); +} + +.statistics-table-modal-content { + flex: 1; + overflow-y: auto; + min-width: 1050px; +} + +.statistics-table-modal-footer { + display: flex; + align-items: flex-end; + justify-content: flex-end; + + padding-top: var(--gatling-spacing); +} diff --git a/sonar-project.properties b/sonar-project.properties index 66503f0..2262fa3 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -14,5 +14,5 @@ sonar.projectName=wiq_en3a sonar.coverage.exclusions=**/*.test.js, **/*.test.ts, **/*.test.tsx sonar.sources=webapp/src/components,users,wikidataservice,gatewayservice sonar.sourceEncoding=UTF-8 -sonar.exclusions=node_modules/** +sonar.exclusions=node_modules/**,gatewayservice/monitoring/** sonar.javascript.lcov.reportPaths=**/coverage/lcov.info \ No newline at end of file diff --git a/users/index.js b/users/index.js index 367aed9..119dfa4 100644 --- a/users/index.js +++ b/users/index.js @@ -11,7 +11,7 @@ const app = express(); const port = 8003; // Connect to MongoDB -const mongoUri = process.env.MONGODB_URI; +const mongoUri = process.env.MONGODB_URI mongoose.connect(mongoUri).then( console.log('Succesfully connected to MongoDB') diff --git a/webapp/public/julien.png b/webapp/public/julien.png new file mode 100644 index 0000000..822064c Binary files /dev/null and b/webapp/public/julien.png differ diff --git a/webapp/public/kowalski.webp b/webapp/public/kowalski.webp new file mode 100644 index 0000000..cbd2739 Binary files /dev/null and b/webapp/public/kowalski.webp differ diff --git a/webapp/public/penguinsLeft.webp b/webapp/public/penguinsLeft.webp new file mode 100644 index 0000000..b118955 Binary files /dev/null and b/webapp/public/penguinsLeft.webp differ diff --git a/webapp/public/penguinsRight.webp b/webapp/public/penguinsRight.webp new file mode 100644 index 0000000..4a0f7d7 Binary files /dev/null and b/webapp/public/penguinsRight.webp differ diff --git a/webapp/public/rico.webp b/webapp/public/rico.webp new file mode 100644 index 0000000..3a48ce6 Binary files /dev/null and b/webapp/public/rico.webp differ diff --git a/webapp/public/skipper.png b/webapp/public/skipper.png new file mode 100644 index 0000000..a739533 Binary files /dev/null and b/webapp/public/skipper.png differ diff --git a/webapp/src/components/Game/Game.tsx b/webapp/src/components/Game/Game.tsx index 58fed46..4b6eac2 100644 --- a/webapp/src/components/Game/Game.tsx +++ b/webapp/src/components/Game/Game.tsx @@ -48,6 +48,11 @@ export default function Game(props: Props) { useEffect(() => { getQuestionsFromApi().then((questions : questionType[]) => { + questions.map((q) => { + if(!isNaN(Number(q.answers[0]))){ + q.answers = q.answers.map((a) => formatNumberWithDots(a)); + } + }); setQuestions(questions) setLoadingData(false); }) @@ -59,9 +64,6 @@ export default function Game(props: Props) { setQuestionCount(questionCount+1); setLoading(true); - if(!isNaN(Number((questions[questionCount].answers[0])))) - questions[questionCount].answers = questions[questionCount].answers.map((a) => formatNumberWithDots(a)); - setTimeout(() => { setLoading(false); setAnswered(false); diff --git a/webapp/src/components/Game/GameOver.tsx b/webapp/src/components/Game/GameOver.tsx index fb1a56e..52f43fd 100644 --- a/webapp/src/components/Game/GameOver.tsx +++ b/webapp/src/components/Game/GameOver.tsx @@ -13,7 +13,11 @@ type props = { const GameOver = (props: props) => { - + const images = { + lowScore: '/julien.png', + mediumScore: '/rico.webp', + highScore: '/kowalski.webp', +}; const getScore = () => { let score = 0; @@ -25,14 +29,31 @@ const GameOver = (props: props) => { return score; }; + // Set the image according to the score + let score = getScore(); + let imageToShow; + let message; + let scorePercentage = (score / props.questions.length) * 100; + if (scorePercentage < 50 + ) { + imageToShow = images.lowScore; + message = "You are NOT smarter than a penguin"; + } else if (scorePercentage < 75) { + imageToShow = images.mediumScore; + message = "You ARE smarter than a penguin"; + } else { + imageToShow = images.highScore; + message = "You ARE smarter than the SMARTEST penguin"; + } + return ( -
    -
    - -

    {props.finalMessage}

    - - 🏠︎ - +
    +
    +
    +

    {message}

    + +
    + Score image
    @@ -57,10 +78,12 @@ const GameOver = (props: props) => {
    +
    +

    Score: {getScore()} / {props.questions.length}

    + Back to home +
    -

    Score: {getScore()} / {props.questions.length}

    -
    ); }; diff --git a/webapp/src/components/Game/Trivia/TriviaGame.tsx b/webapp/src/components/Game/Trivia/TriviaGame.tsx index c20efd1..fac79a7 100644 --- a/webapp/src/components/Game/Trivia/TriviaGame.tsx +++ b/webapp/src/components/Game/Trivia/TriviaGame.tsx @@ -147,12 +147,14 @@ const getSetColor: (n: number) => SetColorFunction = (n: number) => { const saveAnswer = (answer: string) => { answerSelected.push(answer); - setAnswerSelected(answerSelected); + const newAnswers = [...answerSelected]; + setAnswerSelected(newAnswers); setDiceResult(0); questions.push(questionShowed as questionType); - setQuestions(questions); + const newQuestions = [...questions]; + setQuestions(newQuestions); } diff --git a/webapp/src/components/auth/Login.tsx b/webapp/src/components/auth/Login.tsx index 8e28abb..e6967da 100644 --- a/webapp/src/components/auth/Login.tsx +++ b/webapp/src/components/auth/Login.tsx @@ -24,8 +24,7 @@ const Login = (props:props) => { return; } - const response = login(username, password); - console.log(response); + const response = await login(username, password); if (!response) { setError("Invalid Credentials"); } diff --git a/webapp/src/components/stats/Statistics.tsx b/webapp/src/components/stats/Statistics.tsx index 14fbeaf..06318d6 100644 --- a/webapp/src/components/stats/Statistics.tsx +++ b/webapp/src/components/stats/Statistics.tsx @@ -25,18 +25,18 @@ export default function Statistics () { return ( <> -
    +
    {username.toUpperCase().charAt(0)}{username.toUpperCase().charAt(1)}
    -

    {username}

    -

    {email}

    +

    {username}

    +

    {email}

    - Continue Improving + Keep Improving
    ) diff --git a/webapp/src/components/stats/StatsTable.tsx b/webapp/src/components/stats/StatsTable.tsx index 12ca9c0..c70eff1 100644 --- a/webapp/src/components/stats/StatsTable.tsx +++ b/webapp/src/components/stats/StatsTable.tsx @@ -26,40 +26,48 @@ export default function StatsTable() { }; return ( - - - - - - - - - - - - - - - - - - - - - - - - - -
    StatisticsValue
    Correct Answers{questionsCorrect}
    Wrong Answers{questionsAnswered - questionsCorrect}
    Gained chesses{chesses}
    Percentage Correct - 0 ? (Math.round(((questionsCorrect / questionsAnswered) * 100) * 100) / 100) : 0} - color='#00A078' thickness='.3rem' - size={"3rem"}> - - {questionsAnswered > 0 ? (Math.round(((questionsCorrect / questionsAnswered) * 100) * 100) / 100).toFixed(0) : 0}% - - -
    +
    +
    + Left +
    + + + + + + + + + + + + + + + + + + + + + + + + + +
    StatisticsValue
    Correct Answers{questionsCorrect}
    Wrong Answers{questionsAnswered - questionsCorrect}
    Gained chesses{chesses}
    Percentage Correct + 0 ? (Math.round(((questionsCorrect / questionsAnswered) * 100) * 100) / 100) : 0} + color='#00A078' thickness='.3rem' + size={"3rem"}> + + {questionsAnswered > 0 ? (Math.round(((questionsCorrect / questionsAnswered) * 100) * 100) / 100).toFixed(0) : 0}% + + +
    +
    + Right +
    +
    ); } \ No newline at end of file diff --git a/webapp/src/index.css b/webapp/src/index.css index cf03b8c..c060f0e 100644 --- a/webapp/src/index.css +++ b/webapp/src/index.css @@ -2,13 +2,38 @@ @tailwind components; @tailwind utilities; +.container { + display: flex; + justify-content: center; + align-items: stretch; /* This makes the children of the container the same height */ +} + +.container > div { + display: flex; + align-items: center; + justify-content: center; +} + +.container img { + object-fit: cover; + width: 100%; + height: 100%; +} + +.container .table-container { + flex: 0 0 90%; +} + +.container .image-container { + flex: 0 0 10%; +} + .caja-quesitos { width: 120px; height: 120px; } - .caja{ width:100%; height:100%; @@ -253,20 +278,22 @@ .stats-table { font-size: 1rem; - color: white; + color: #f2ecff; display: flex; flex-direction: column; justify-content: center; width: 80%; margin: auto; - border-bottom: 1rem; + border: 1px solid #f2ecff; + + .header { display: grid; grid-template-columns: repeat(2, 1fr); width: 100%; padding-bottom: 1rem; - border-bottom: .1rem solid white; + border-bottom: .1rem solid #f2ecff; th { padding-inline: 1rem; diff --git a/webapp/src/services/question-service.ts b/webapp/src/services/question-service.ts index 98c27d7..da924f7 100644 --- a/webapp/src/services/question-service.ts +++ b/webapp/src/services/question-service.ts @@ -12,7 +12,6 @@ let url = process.env.REACT_APP_API_ENDPOINT || 'http://localhost:8000'; export const getQuestionsFromApi = async (): Promise => { const response = await axios.get(url + "/GetQuestions"); - console.log('response:', response); return response.data; }; diff --git a/wikidataservice/index.js b/wikidataservice/index.js index 2e7fa31..ca588cc 100644 --- a/wikidataservice/index.js +++ b/wikidataservice/index.js @@ -65,22 +65,23 @@ init().then(([jsonCountryQuestions, jsonElementsQuestions, jsonMovieQuestions, // Route for getting questions about mixed topics app.get('/getQuestions', async (req, res, next) => { - try { - - // Generate the questions - const questions1 = generateQuestions("What is the capital of: ", jsonCountryQuestions.results.bindings); - const questions2 = generateQuestions("What is the element of: ", jsonElementsQuestions.results.bindings); - const questions3 = generateQuestions("What is the director of: ", jsonMovieQuestions.results.bindings); - - // Combine the questions - const allQuestions = [...questions1, ...questions2, ...questions3]; - + try { + // Generate the questions + let questions = [] + for(let i = 0; i < 2; i++){ + questions.push(generateQuestions(jsonHistoryQuestions[i].questionText, jsonHistoryQuestions[i].jsonResult.results.bindings, 1)[0]); + questions.push(generateQuestions(jsonSportsQuestions[i].questionText, jsonSportsQuestions[i].jsonResult.results.bindings, 1)[0]); + questions.push(generateQuestions(jsonGeographyQuestion[i].questionText, jsonGeographyQuestion[i].jsonResult.results.bindings, 1)[0]); + questions.push(generateQuestions(jsonEntertainmentQuestion[i].questionText, jsonEntertainmentQuestion[i].jsonResult.results.bindings, 1)[0]); + questions.push(generateQuestions(jsonChemistryQuestion[i].questionText, jsonChemistryQuestion[i].jsonResult.results.bindings, 1)[0]); + } + + console.log(questions) // Shuffle the questions - let shuffled = allQuestions + let shuffled = questions .map(value => ({ value, sort: Math.random() })) .sort((a, b) => a.sort - b.sort) .map(({ value }) => value) - res.status(200).json(shuffled.slice(0,10)); } catch (error) { next(error); @@ -94,7 +95,7 @@ init().then(([jsonCountryQuestions, jsonElementsQuestions, jsonMovieQuestions, const randomIndex = Math.floor(Math.random() * jsonHistoryQuestions.length); let itemData = jsonHistoryQuestions[randomIndex]; const questions = generateQuestions(itemData.questionText, itemData.jsonResult.results.bindings, 1); - + console.log(questions) res.status(200).json(questions); } catch (error) { next(error);