diff --git a/docs/algo-overview.md b/docs/algo-overview.md deleted file mode 100644 index 2a3881639b0..00000000000 --- a/docs/algo-overview.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -id: algo-overview -title: Overview ---- -Ax supports: - -- Bandit optimization - - Empirical Bayes with Thompson sampling -- Bayesian optimization diff --git a/docs/api.md b/docs/api.md deleted file mode 100644 index bb93f02a08c..00000000000 --- a/docs/api.md +++ /dev/null @@ -1,206 +0,0 @@ ---- -id: api -title: APIs ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -The modular design of Ax enables three different usage modes, with different -balances of structure to flexibility and reproducibility. Navigate to the -["Tutorials" page](/docs/tutorials) for an in-depth walk-through of each API and -usage mode. - -**NOTE: We recommend the Service API for the vast majority of use cases.** This -API provides an ideal balance of flexibility and simplicity for most users, and -we are in the process of consolidating Ax usage around it more formally. - -From most lightweight to fullest functionality, our APIs are: - -- **Loop API** ([tutorial](/docs/tutorials/gpei_hartmann_loop)) is intended for - synchronous optimization loops, where [trials](glossary.md#trial) can be - evaluated right away. With this API, optimization can be executed in a single - call and [experiment](glossary.md#experiment) introspection is available once - optimization is complete. **Use this API only for the simplest use cases where - running a single trial is fast and only one trial should be running at a - time.** -- **[RECOMMENDED] Service API** - ([tutorial](/docs/tutorials/gpei_hartmann_service)) can be used as a - lightweight service for parameter-tuning applications where trials might be - evaluated in parallel and data is available asynchronously (e.g. - hyperparameter or simulation optimization). It requires little to no knowledge - of Ax data structures and easily integrates with various schedulers. In this - mode, Ax suggests one-[arm](glossary.md#arm) trials to be evaluated by the - client application, and expects them to be completed with - [metric](glossary.md#metric) data when available. **This is our most popular - API and a good place to start as a new user. Use it to leverage nearly full - hyperparameter optimization functionality of Ax without the need to learn its - architecture and how things work under the hood.** - - In both the Loop and the Service API, it is possible to configure the - optimization algorithm via an Ax `GenerationStrategy` - ([tutorial](/docs/tutorials/generation_strategy)), so use of Developer API - is not required to control the optimization algorithm in Ax. -- **Developer API** ([tutorial](/docs/tutorials/gpei_hartmann_developer)) is for - ad-hoc use by data scientists, machine learning engineers, and researchers. - The developer API allows for a great deal of customization and introspection, - and is recommended for those who plan to use Ax to optimize A/B tests. Using - the developer API requires some knowledge of [Ax architecture](core.md). **Use - this API if you are looking to perform field experiments with `BatchTrial`-s, - customize or contribute to Ax, or leverage advanced functionality that is not - exposed in other APIs.** - - While not an API, the **`Scheduler`** - ([tutorial](/docs/tutorials/scheduler)) is an important and distinct - use-case of the Ax Developer API. With the `Scheduler`, it's possible to run - a configurable, managed closed-loop optimization where trials are deployed - and polled in an async fashion and no human intervention/oversight is - required until the experiment is complete. **Use the `Scheduler` when you - are looking to configure and start a full experiment that will need to - interact with an external system to evaluate trials.** - -Here is a comparison of the three APIs in the simple case of evaluating the -unconstrained synthetic Branin function: - - - - - -```py - -from ax import optimize -from ax.utils.measurement.synthetic_functions import branin - -best_parameters, values, experiment, model = optimize( - parameters=[ - { - "name": "x1", - "type": "range", - "bounds": [-5.0, 10.0], - }, - { - "name": "x2", - "type": "range", - "bounds": [0.0, 10.0], - }, - ], - evaluation_function=lambda p: (branin(p["x1"], p["x2"]), 0.0), - minimize=True, -) - -``` - - - - -```py - -from ax.service.ax_client import AxClient, ObjectiveProperties -from ax.utils.measurement.synthetic_functions import branin - -ax_client = AxClient() -ax_client.create_experiment( - name="branin_test_experiment", - parameters=[ - { - "name": "x1", - "type": "range", - "bounds": [-5.0, 10.0], - "value_type": "float", - }, - { - "name": "x2", - "type": "range", - "bounds": [0.0, 10.0], - }, - ], - objectives={"branin": ObjectiveProperties(minimize=True)}, -) - -for _ in range(15): - parameters, trial_index = ax_client.get_next_trial() - ax_client.complete_trial(trial_index=trial_index, raw_data=branin(parameters["x1"], parameters["x2"])) - -best_parameters, metrics = ax_client.get_best_parameters() - -``` - - - - -```py - -from ax import * - - -class MockRunner(Runner): - def run(self, trial): - return {"name": str(trial.index)} - - -branin_search_space = SearchSpace( - parameters=[ - RangeParameter( - name="x1", parameter_type=ParameterType.FLOAT, lower=-5, upper=10 - ), - RangeParameter( - name="x2", parameter_type=ParameterType.FLOAT, lower=0, upper=15 - ), - ] -) -exp = Experiment( - name="test_branin", - search_space=branin_search_space, - optimization_config=OptimizationConfig( - objective=Objective( - metric=BraninMetric(name="branin", param_names=["x1", "x2"]), - minimize=True, - ), - ), - runner=MockRunner(), -) - -sobol = Generators.SOBOL(exp.search_space) -for i in range(5): - trial = exp.new_trial(generator_run=sobol.gen(1)) - trial.run() - trial.mark_completed() - -best_arm = None -for i in range(15): - gpei = Generators.BOTORCH_MODULAR(experiment=exp, data=exp.fetch_data()) - generator_run = gpei.gen(1) - best_arm, _ = generator_run.best_arm_predictions - trial = exp.new_trial(generator_run=generator_run) - trial.run() - trial.mark_completed() - -exp.fetch_data() -best_parameters = best_arm.parameters - -``` - - - - -```py - -from ax import * -from ax.generation_strategy.generation_strategy import GenerationStrategy -from ax.service import Scheduler - -# Full `Experiment` and `GenerationStrategy` instantiation -# omitted for brevity, refer to the "Tutorials" page for detail. -experiment = Experiment(...) -generation_strategy = GenerationStrategy(...) - -scheduler = Scheduler( - experiment=experiment, - generation_strategy=generation_strategy, - options=SchedulerOptions(), # Configurations for how to run the experiment -) - -scheduler.run_n_trials(100) # Automate running 100 trials and reporting results - -``` - - - diff --git a/docs/assets/discrepancy_dims.png b/docs/assets/discrepancy_dims.png new file mode 100644 index 00000000000..666bde71ba5 Binary files /dev/null and b/docs/assets/discrepancy_dims.png differ diff --git a/docs/assets/doe.png b/docs/assets/doe.png new file mode 100644 index 00000000000..5b048ba2a6b Binary files /dev/null and b/docs/assets/doe.png differ diff --git a/docs/assets/ei.png b/docs/assets/ei.png new file mode 100644 index 00000000000..5a45ff74ab1 Binary files /dev/null and b/docs/assets/ei.png differ diff --git a/docs/assets/gpei.gif b/docs/assets/gpei.gif new file mode 100644 index 00000000000..78bc83e68f5 Binary files /dev/null and b/docs/assets/gpei.gif differ diff --git a/docs/assets/line_square_cube.png b/docs/assets/line_square_cube.png new file mode 100644 index 00000000000..c1327d6f8eb Binary files /dev/null and b/docs/assets/line_square_cube.png differ diff --git a/docs/assets/surrogate.png b/docs/assets/surrogate.png new file mode 100644 index 00000000000..4b255908346 Binary files /dev/null and b/docs/assets/surrogate.png differ diff --git a/docs/assets/traditional_vs_adaptive.svg b/docs/assets/traditional_vs_adaptive.svg new file mode 100644 index 00000000000..8a359eb1547 --- /dev/null +++ b/docs/assets/traditional_vs_adaptive.svg @@ -0,0 +1,2 @@ +Design n trialsDesign trialObserve n outcomesObserve outcomen iterationsTraditionalAdaptive \ No newline at end of file diff --git a/docs/banditopt.md b/docs/banditopt.md deleted file mode 100644 index 7b8944dc6e7..00000000000 --- a/docs/banditopt.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -id: banditopt -title: Bandit Optimization ---- -Many decision problems require choosing from a discrete set of candidates, and for these problems Ax uses bandit optimization. In contrast to [Bayesian optimization](bayesopt.md) — which provides a solution for problems with continuous parameters and an infinite number of potential options — bandit optimization is used for problems with a finite set of choices. Most ordinary A/B tests, in which a handful of options are evaluated against each other, fall into this category. Experimenters typically perform such tests by allocating a fixed percentage of experimental units to each choice, waiting to collect data about each, and then choosing a winner. In the case of an online system receiving incoming requests, this can be done by splitting traffic amongst the choices. However, with more than just a few options A/B tests quickly become prohibitively resource-intensive, largely because all choices — no matter how good or bad they appear — receive the same traffic allocation. - -Bandit optimization allocates traffic more efficiently among these discrete choices by sequentially updating the allocation of traffic based on each candidate's performance so far. The key problem for bandit optimization algorithms is balancing exploration (sending traffic to candidates that have the potential to perform well) with exploitation (sending traffic to candidates which already appear to perform well). This trade-off is very similar to the underlying exploration problem highlighted in Bayesian Optimization [acquisition functions](bayesopt.md#acquisition-functions). - -Bandit optimization is more sample efficient than traditional static A/B tests: it acquires a greater reward for the same amount of experimentation. Consequently, it is safer with larger cohorts because the samples are automatically diverted towards the good parameter values (and away from the bad ones). - -## How does it work? - -Ax relies on the simple and effective [Thompson sampling](https://en.wikipedia.org/wiki/Thompson_sampling) algorithm for performing bandit optimization. There is a clear intuition to this method: select a parameterization (referred to from now on as an "arm") with a probability proportional to that arm being the best. This algorithm is easy to implement and has strong guarantees of converging to an arm that is close to the best — all without any human intervention. To understand how this works, we describe an advertising optimization problem in which we want to choose arms which maximize the click-through rate (CTR) and the rewards are binary: either clicks (successes) or views without clicks (failures). - -As we run the experiment, we develop more precise estimates of the performance of each arm. More precisely, in each iteration, we draw samples from the distribution of plausible effects for each arm, and we record the largest sampled value. We repeat this process many times, until settling on a final distribution of maximal arms, which determines how we assign users to arms going forward. This process rapidly narrows down our set of arms to only the very best performers. - -The following figure is an example of how assignment probabilities for an experiment with 10 arms may evolve over 20 iterations of batch-based Thompson sampling: - -![Bandit Optimization Allocations](assets/mab_probs.png) - -The process starts by distributing users equally among all of the arms. Bandit optimization then produces updated assignment probabilities (represented here by the height of the colored bars in each column) based on the average CTR observed up until that point. Since the true CTR is highest for the second arm, followed by the first arm, in this simulated example those arms are subsequently given larger allocations over 20 rounds of optimization. - -Early in the process, the uncertainty in our estimates of CTR means that the bandit optimization spreads samples somewhat evenly amongst arms. This helps us obtain better estimates for all of the arms and allows us to start focusing in on those which perform well. The following figure animates this evolution. The small blue x indicates the observed CTRs within each round, while the solid round symbol (and gray error bars) indicate our aggregated estimates across all rounds. Arms 3 through 8 are sampled just often enough to get a rough estimate that their CTRs are low, and the algorithm then focuses further exploration on the first two arms to better identify which is the best. This example can be viewed as a discretized version of the animated example of [Bayesian optimization](bayesopt.md). - -![Bandit Optimization: Posteriors](assets/mab_animate.gif) - -## How well does it work? - -We want a bandit algorithm to maximize the total rewards over time or equivalently, to minimize the regret, which is defined as the cumulative difference between the highest possible reward and the actual reward at a point in time. In our running example, regret is the number of clicks we "left on the table" through our choice of allocation procedure. We can imagine two extremes: - -1. Pure exploration, in which we just always allocate users evenly across all conditions. This is the standard approach to A/B tests. -2. Pure exploitation, in which we simply allocate all users to the arm we think is most likely to be best. - -Both of these extremes will do a poor job of minimizing our regret, so our aim is to balance them. - -The following figure compares the cumulative regret of three different approaches to bandit optimization for 200 rounds of experimentation on our running example: - -1. Thompson sampling: the primary approach used by Ax, described above -2. Greedy: select the arm with the current best reward -3. Epsilon-greedy: randomly picks an arm $e$ percent of the time, picks the current best arm $100-e$ percent of the time - -![Bandit Optimization: Regret](assets/mab_regret.png) - -The regret of the purely greedy approach is the highest amongst the three approaches. A little bit of exploration, as in the epsilon-greedy approach with $e = 10$, leads to much less regret over time. Thompson sampling best balances the tradeoff between exploration and exploitation, and thus outperforms the other two approaches. - -As it turns out, we can do even better by applying a simple model. - -## Empirical Bayes - -In short, our empirical Bayes model consists of taking noisy estimates from a bunch of arms and "shrinking" the outlying ones a bit towards the overall central tendency across all arms. - -The specific method we use is [James-Stein estimation](https://en.wikipedia.org/wiki/James%E2%80%93Stein_estimator). This method is linear, which means that if multiple arms have estimates with similar levels of precision, they will be moved towards the middle of the effect distribution proportionally to their distance from the middle. Doing this turns out to be optimal in the case of a Gaussian distribution of effects, but will improve accuracy even if that isn't the case (so long as there are [at least three means](https://projecteuclid.org/download/pdf_1/euclid.bsmsp/1200501656)). - -The diagram below illustrates how the estimates of two different experiments change as a result of applying the empirical Bayes estimator. - -![Shrinkage in two representative experiments](assets/example_shrinkage.png) - -The experiment on the left has large effects relative to estimation variability, and so shrinkage (visualized here as distance from the dashed $y=x$ line), is very small. On the right side, however, we can see an experiment where shrinkage makes a significant difference. Effects far from the center of the distribution result in fairly substantial shrinkage, reducing the range of effects by nearly half. While effect estimates in the middle were largely unchanged, the largest observed effects went from around 17% before shrinkage to around 8% afterwards. - -The vast majority of experimental groups are estimated more accurately using empirical Bayes. The arms which tend to have increases in error are those with the largest effects. Understating the effects of such arms is usually not a very big deal when making launch decisions, however, as one is usually most interested in _which_ arm is the best rather than exactly how good it is. - -Using Empirical Bayes does better at allocating users to the best arm than does using the raw effect estimates. It does this by concentrating exploration early in the experiment. In particular, it concentrates that exploration on the _set_ of arms that look good, rather than over-exploiting the single best performing arm. By spreading exploration out a little bit more when effect estimates are noisy (and playing the best arm a little less), it is able to identify the best arm with more confidence later in the experiment. - -See more [details in our paper](https://arxiv.org/abs/1904.12918). diff --git a/docs/bayesopt.md b/docs/bayesopt.md deleted file mode 100644 index 4b42b3faaff..00000000000 --- a/docs/bayesopt.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -id: bayesopt -title: Bayesian Optimization ---- -In complex engineering problems we often come across parameters that have to be tuned using several time-consuming and noisy evaluations. When the number of parameters is not small or some of the parameters are continuous, using large factorial designs (e.g., “grid search”) or global optimization techniques for optimization require more evaluations than is practically feasible. These types of problems show up in a diversity of applications, such as - -1. Tuning Internet service parameters and selection of weights for recommender systems, -2. Hyperparameter optimization for machine learning, -3. Finding optimal set of gait parameters for locomotive control in robotics, and -4. Tuning design parameters and rule-of-thumb heuristics for hardware design. - -Bayesian optimization (BO) allows us to tune parameters in relatively few iterations by building a smooth model from an initial set of parameterizations (referred to as the "surrogate model") in order to predict the outcomes for as yet unexplored parameterizations. BO is an adaptive approach where the observations from previous evaluations are used to decide what parameterizations to evaluate next. The same strategy can be used to predict the expected gain from all future evaluations and decide on early termination, if the expected benefit is smaller than what is worthwhile for the problem at hand. - -## How does it work? - -Parameter tuning is often done with simple strategies like grid search. However, grid search scales very poorly with the number of parameters (the dimensionality of the parameter space) and generally does not work well for more than a couple of continuous parameters. Alternative global optimization techniques like DIRECT or genetic algorithms are more flexible, but also typically require more evaluations than is feasible, especially in the presence of uncertainty. - -Bayesian optimization starts by building a smooth surrogate model of the outcomes using Gaussian processes (GPs) based on the (possibly noisy) observations available from previous rounds of experimentation. See [below](bayesopt.md#a-closer-look-at-gaussian-processes) for more details on how the GP model works. This surrogate model can be used to make predictions at unobserved parameterizations and quantify the uncertainty around them. The predictions and the uncertainty estimates are combined to derive an acquisition function, which quantifies the value of observing a particular parameterization. We optimize the acquisition function to find the best configuration to observe, and then after observing the outcomes at that configuration a new surrogate model is fitted and the process is repeated until convergence. The entire process is adaptive in the sense that the predictions and uncertainty estimates are updated as new observations are made. - -The strategy of relying on successive surrogate models to update knowledge of the objective allows BO to strike a balance between the conflicting goals of exploration (trying out parameterizations with high uncertainty in their outcomes) and exploitation (converging on configurations that are likely to be good). As a result, BO is able to find better configurations with fewer evaluations than is generally possible with grid search or other global optimization techniques. This makes it a good choice for applications where a limited number of function evaluations can be made. - -![Gaussian process model fit to noisy data](assets/gp_opt.png) - -Figure 1 shows a 1D example, where a surrogate model is fitted to five noisy observations using GPs to predict the objective (solid line) and place uncertainty estimates (proportional to the width of the shaded bands) over the entire x-axis, which represents the range of possible parameter values. The model is able to predict the outcome of configurations that have not yet been tested. As intuitively expected, the uncertainty bands are tight in regions that are well-explored and become wider as we move away from them. - -## Tradeoff between parallelism and total number of trials - -In Bayesian Optimization (any optimization, really), we have the choice between performing evaluations of our function in a sequential fashion (i.e. only generate a new candidate point to evaluate after the previous candidate has been evaluated), or in a parallel fashion (where we evaluate multiple candidates concurrently). The sequential approach will (in expectation) produce better optimization results, since at any point during the optimization the ML model that drives it uses strictly more information than the parallel approach. However, if function evaluations take a long time and end-to-end optimization time is important, then the parallel approach becomes attractive. The difference between the performance of a sequential (aka 'fully adaptive') algorithm and that of a (partially) parallelized algorithm is referred to as the 'adaptivity gap'. - -To balance end-to-end optimization time with finding the optimal solution in fewer trials, we opt for a ‘staggered’ approach by allowing a limited number of trials to be evaluated in parallel. By default, in simplified Ax APIs (e.g., in Service API) the allowed parallelism for the Bayesian phase of the optimization is 3. [Service API tutorial](https://ax.dev/tutorials/gpei_hartmann_service.html#How-many-trials-can-run-in-parallel?) has more information on how to handle and change allowed parallelism for that API. - -For cases where its not too computationally expensive to run many trials (and therefore sample efficiency is less of a concern), higher parallelism can significantly speed up the end-to-end optimization time. By default, we recommend keeping the ratio of allowed parallelism to total trials relatively small (<10%) in order to not hurt optimization performance too much, but the reasonable ratio can differ depending on the specific setup. - -## Acquisition functions - -BoTorch — Ax's optimization engine — supports some of the most commonly used acquisition functions in BO like expected improvement (EI), probability of improvement, and upper confidence bound. Expected improvement is a popular acquisition function owing to its good practical performance and an analytic form that is easy to compute. As the name suggests it rewards evaluation of the objective $f$ based on the expected improvement relative to the current best. If $f^* = \max_i y_i$ is the current best observed outcome and our goal is to maximize $f$, then EI is defined as - -$$ -\text{EI}(x) = \mathbb{E}\bigl[\max(f(x) - f^*, 0)\bigr] -$$ - -The parameterization with the highest EI is selected and evaluated in the next step. Using an acquisition function like EI to sample new points initially promotes quick exploration because its values, like the uncertainty estimates, are higher in unexplored regions. Once the parameter space is adequately explored, EI naturally narrows in on locations where there is a high likelihood of a good objective value. - -The above definition of the EI function assumes that the objective function is observed free of noise. In many types of experiments, such as those found in A/B testing and reinforcement learning, the observations are typically noisy. For these cases, BoTorch implements an efficient variant of EI, called Noisy EI, which allow for optimization of highly noisy outcomes, along with any number of constraints (i.e., ensuring that auxiliary outcomes do not increase or decrease too much). Figure 2 shows how an EI acquisition function can be used in a noisy setting to seamlessly transition from exploration to optimization in BO. For more on Noisy EI, [see our blog post](https://research.fb.com/efficient-tuning-of-online-systems-using-bayesian-optimization/). - -![Bayesian Optimization](assets/bo_1d_opt.gif) - -## A closer look at Gaussian processes - -How exactly do we model the true objective $f$ for making predictions about yet-to-be-explored regions using only a few noisy observations? GPs are a simple and powerful way of imposing assumptions over functions in the form of a probability distribution. The family of functions is characterized by, - -1. A _mean function_ that is the average of all functions, and, -2. A covariance or _kernel function_ that provides an overall template for the look and feel of the individual functions (such as their shape or smoothness) and how much they can vary around the mean function. - -In most applications of BO, a radial basis function (RBF) or Matern kernel is used because they allow us the flexibility to fit a wide variety of functions in high dimensions. By default, BoTorch uses the Matern 5/2 kernel, which tends to allow for less smooth surfaces compared to the RBF. For more mathematical details and intuitions about GPs and the different kernels check out [this tutorial](https://distill.pub/2019/visual-exploration-gaussian-processes). - -In GP regression, the true objective is specified by a GP prior distribution with mean zero and a kernel function. Given a set of noisy observations from initial experimental evaluations, a Bayesian update gives the posterior distribution which is itself a GP with an updated mean and kernel function. The mean function of the posterior distribution gives the best prediction at any point conditional on the available observations, and the kernel function helps to quantify the uncertainty in the predictions in terms of posterior predictive intervals. Figure 3 shows three draws from the posterior GP as well as the predictions and posterior predictive intervals. - -![GP Posterior draws and predictive intervals](assets/gp_posterior.png) - -The kernel function has several hyperparameters that determine how smooth the GP posterior will be. For the predictions and uncertainty estimates to be practically useful, we have to make sure that the kernel is adapted to the observations. This is done by fitting the kernel hyperparameters to the data, usually by maximizing the marginal likelihood of the data, or with MCMC. - -For detailed information about Ax's underlying Bayesian optimization engine, BoTorch, see the [BoTorch documentation](https://botorch.org/docs/introduction). diff --git a/docs/core.md b/docs/core.md deleted file mode 100644 index c6873836d2e..00000000000 --- a/docs/core.md +++ /dev/null @@ -1,175 +0,0 @@ ---- -id: core -title: Core ---- -### Overview - -In Ax, an [experiment](glossary.md#experiment) keeps track of the whole optimization process. It contains a search space, optimization config, metadata, information on what metrics to track and how to run iterations, etc. An [experiment](glossary.md#experiment) is composed of a sequence of [trials](glossary.md#trial) each of which has a set of parameterizations (or [arms](glossary.md#arm)) to be evaluated. A [trial](glossary.md#trial) is added to the experiment when a new set of arms is proposed by the optimization algorithm. The trial is then evaluated to compute the values of each [metric](glossary.md#metric) for each arm, which are fed into the algorithms to create a new trial. Most applications have one arm per trial, which is the default implementation. - -The core constructs that define the experiment are detailed below. - -### Trial VS. Batch Trial - -An [experiment](glossary.md#experiment) consists of [trials](glossary.md#trial), which can be one of two types: regular [trial](glossary.md#trial) or [batch trial](glossary.md#batch-trial). A regular [trial](glossary.md#trial) contains a single [arm](glossary.md#arm) and relevant metadata. A [batch trial](glossary.md#batch-trial) contains multiple [arms](glossary.md#arm), relevant metadata, and optionally a set of arm weights, which are a measure of how much of the total resources allocated to evaluating a batch should go towards evaluating the specific arm. - -**A [batch trial](glossary.md#batch-trial) is not just a [trial](glossary.md#trial) with many arms!** It is a trial for which it is important that the arms are evaluated **simultaneously and together**. For instance, a batch trial would be appropriate in an A/B test where the evaluation results are subject to nonstationarity and require multiple arms to be deployed (and gathered data for) at the same time. For cases where multiple arms are evaluated separately and independently of each other, use multiple [trials](glossary.md#trial) with a single arm each, which will allow Ax to keep track of their deployment and results appropriately. - -### Search Space and Parameters - -A [search space](glossary.md#search-space) is composed of a set of [parameters](glossary.md#parameter) to be tuned in the experiment, and optionally a set of [parameter constraints](glossary.md#parameter-constraint) that define restrictions across these parameters (e.g. `p_a <= p_b`). Each parameter has a name, a type (`int`, `float`, `bool`, or `string`), and a domain, which is a representation of the possible values the parameter can take. The search space is used by the optimization algorithms to know which arms are valid to suggest. - -Ax supports three types of parameters: - -- **Range parameters**: must be of type `int` or `float`, and the domain is represented by a lower and upper bound. If the parameter is specified as an `int`, newly generated points are rounded to the nearest integer by default. - -```python -from ax import RangeParameter, ParameterType -float_range_param = RangeParameter(name="x1", parameter_type=ParameterType.FLOAT, lower=0.0, upper=1.0) -int_range_param = RangeParameter(name="x2", parameter_type=ParameterType.INT, lower=0, upper=10) -``` - -- **Choice parameters**: domain is a set of values - -```python -from ax import ChoiceParameter, ParameterType -choice_param = ChoiceParameter(name="y", parameter_type=ParameterType.STRING, values=["foo", "bar"]) -``` - -- **Fixed parameters**: domain is a single value - -```python -from ax import FixedParameter, ParameterType -fixed_param = FixedParameter(name="z", parameter_type=ParameterType.BOOL, value=True) -``` - -Ax supports three types of parameter constraints, each of which can only be used on `int` or `float` parameters: - -- **Linear constraints**: `w * v` <= b where w is the vector of parameter weights, v is a vector of parameter values, * is the dot product, and b is the specified bound. Linear constraints are specified with the bound and a dictionary that maps parameter name to the weight - -```python -from ax import ParameterConstraint - -param_a = RangeParameter(name="a", parameter_type=ParameterType.FLOAT, lower=0.0, upper=1.0) -param_b = RangeParameter(name="b", parameter_type=ParameterType.FLOAT, lower=0.0, upper=1.0) - -# 1.0*a + 0.5*b <= 1.0 -con_1 = ParameterConstraint(constraint_dict={"a": 1.0, "b": 0.5}, bound=1.0) -``` - -- **Order constraints**: specifies that one parameter must be smaller than the other - -```python -from ax import OrderConstraint - -# a <= b -con_2 = OrderConstraint(lower_parameter=param_a, upper_parameter=param_b) -``` - -- **Sum constraints**: specifies that the sum of the parameters must be greater or less than a bound - -```python -from ax import SumConstraint - -# a + b >= 0.5 -con_3 = SumConstraint(parameters=[param_a, param_b], is_upper_bound=False, bound=0.5) -``` - -Given parameters and (optionally) parameter constraints, you can construct a search space: - -```python -from ax import SearchSpace - -SearchSpace(parameters=[param_a, param_b], parameter_constraints=[con_1, con_2, con_3]) -``` - -### Optimization Config - -An [optimization config](glossary.md#optimization-config) is composed of an [objective metric](glossary.md#objective) to be minimized or maximized, and optionally a set of [outcome constraints](glossary.md#outcome-constraint) that place restrictions on how other metrics can be moved by the experiment. Note that you cannot constrain the objective metric. - -```python -from ax import Metric -from ax import Objective - -objective = Objective(metric=Metric(name="m1"), minimize=True) -``` - -There is no minimum or maximum number of outcome constraints, but an individual metric can have at most two constraints — which is how we represent metrics with both upper and lower bounds. - -Outcome constraints may be of the form `metric >= bound` or `metric <= bound`. The bound can be expressed as an absolute measurement, or relative to the status quo (if applicable), in which case the bound is the acceptable percent change from the status quo's value. - -```python -from ax import Metric -from ax import OutcomeConstraint -from ax import ComparisonOp - -# m2 cannot regress the status quo by more than 5% -oc = OutcomeConstraint(metric=Metric(name="m2"), op = ComparisonOp.GEQ, bound=-5.0, relative=True) -``` - -Finally, create the optimization config to attach to the experiment. - -```python -from ax import OptimizationConfig - -opt_config = OptimizationConfig(objective=objective, outcome_constraints=[oc]) -``` - -### Arm - -An [arm](glossary.md#arm) in Ax is a set of [parameters](glossary.md#parameter) and their values with a name attached to it. In the case of **hyperparameter optimization**, an [arm](glossary.md#arm) corresponds to a hyperparameter configuration explored in the course of a given optimization. - -An arm is defined by specifying the value for each parameter, and optionally giving it a name: - -```python -from ax import Arm - -Arm(parameters={"x": 0, "y": "Foo", z: True}) - -# Names are automatically assigned by the experiment -# but can also be specified by the user -Arm(parameters={"x": 0, "y": "Foo", z: True}, name="arm1") -``` - -Arms are typically attached to trials, as discussed in the [Experiment Lifecycle](#experiment-lifecycle) section below. - -### Status Quo - -An experiment can optionally contain a [status quo](glossary.md#status-quo) arm, which represents the “control” parameterization. This allows viewing results and doing optimization using [relativized](glossary.md#relative-outcome-constraint) outcomes, meaning all metrics will be presented as percentage deltas against the status quo. - -If the status quo is specified on the experiment, it will be automatically added to every trial that is created. - -## Experiment Lifecycle - -An experiment consists of a sequence of trials, each of which evaluates one or more arms. For more details on the implementing the evaluation, see the [trial evaluation](trial-evaluation.md) and [metric](data.md) references. - -Based on the evaluation results, the optimization algorithm suggest one or more arms to evaluate. You then create a new trial containing these suggested arms, evaluate this trial, and repeat. - -You can directly add arm(s) to a new trial, or you can add a [generator run](glossary.md#generator-run) –– output of the optimization algorithm: - -```python -# If only one arm should be evaluated -experiment.new_trial().add_arm(Arm(...)) - -# If multiple arms should be evaluated -experiment.new_batch_trial().add_arms_and_weights(arms=[Arm(...), Arm(...)]) - -# To evaluate the arms suggested by a GeneratorRun -experiment.new_batch_trial().add_generator_run(generator_run=GeneratorRun(...)) -``` - -A trial goes through multiple phases during the experimentation cycle, tracked by its [`TrialStatus`](https://ax.readthedocs.io/en/latest/core.html#ax.core.base_trial.TrialStatus) field. These stages are: - -- `CANDIDATE` - Trial has just been created and can still be modified before deployment. -- `STAGED` - Relevant for external systems, where the trial configuration has been deployed but not begun the evaluation stage. -- `RUNNING` - Trial is in the process of being evaluated. -- `COMPLETED` - Trial completed evaluation successfully. -- `FAILED` - Trial incurred a failure while being evaluated. -- `ABANDONED` - User manually stopped the trial for some specified reason. - -When a trial is first created, its status is "candidate". If applicable, we can call `trial.mark_staged` to move the trial into "staged" mode. We then call `trial.run` -to run the trial, which moves it into the "running" stage. We can then call -`trial.mark_completed`, `trial.mark_failed`, or `trial.mark_abandoned` to end the trial. - -If the trial's [runner](trial-evaluation.md#adding-your-own-runner) has "staging_required" = True, -then `trial.run` will first mark the trial as "staged", and we can later call -`trial.mark_running` explicitly to move the trial to "running". diff --git a/docs/data.md b/docs/data.md deleted file mode 100644 index af12e722dcc..00000000000 --- a/docs/data.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -id: data -title: Data ---- -## Fetching Data - -[Metrics](glossary.md#metric) provide an interface for fetching data for an experiment or trial. Experiment objectives and outcome constraints are special types of metrics, and you can also attach additional metrics for tracking purposes. - -Each metric is responsible for fetching its own data. Thus, all metric classes must implement the method `fetch_trial_data`, which accepts a [`Trial`](https://ax.readthedocs.io/en/latest/core.html#ax.core.trial.Trial) and returns an instance of [`Data`](https://ax.readthedocs.io/en/latest/core.html#ax.core.data.Data), a wrapper around a Pandas DataFrame. - -To fetch data for an experiment or trial, use `exp.fetch_data` or `trial.fetch_data`. These methods fetch data for all metrics on the experiment and then combine the results into a new aggregate [`Data`](https://ax.readthedocs.io/en/latest/core.html#ax.core.data.Data) instance. - -Each row of the final DataFrame represents the evaluation of an arm on a metric. As such, the required columns are: `arm_name`, `metric_name`, `mean`, and `sem`. Additional optional columns are also supported: `trial_index`, `start_time`, and `end_time`. - -| arm_name | metric_name | mean | sem | -| -------- | ----------- | ---- | --- | -| 0_0 | metric1 | ... | ... | -| 0_0 | metric2 | ... | ... | -| 0_1 | metric1 | ... | ... | -| 0_1 | metric2 | ... | ... | - -## Adding Your Own Metric - -Our base Metric class is meant to be subclassed. Subclasses must provide an implementation of `fetch_trial_data`. - -An example of a custom metric: - -```python -import pandas as pd -from ax import Metric - -class CustomMetric(Metric): - - def fetch_trial_data(self, trial, **kwargs): - records = [] - for arm_name, arm in trial.arms_by_name.items(): - records.append({ - "arm_name": arm_name, - "metric_name": self.name, - "mean": 0.0, # mean value of this metric when this arm is used - "sem": 0.0, # standard error of the above mean - "trial_index": trial.index, - }) - return Data(df=pd.DataFrame.from_records(records)) -``` - -## Advanced Data Fetching - -If you need to fetch data for multiple metrics or trials simultaneously, -your Metric can implement the methods `fetch_experiment_data`, `fetch_trial_data_multi`, -and `fetch_experiment_data_multi`. The default implementations of these methods -use `fetch_trial_data` internally, but can be overridden if bulk data fetching -is more appropriate for the metric type. diff --git a/docs/glossary.md b/docs/glossary.md deleted file mode 100644 index ba08d22e312..00000000000 --- a/docs/glossary.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -id: glossary -title: Glossary -sidebar_label: Glossary ---- -### Arm - -Mapping from [parameters](glossary.md#parameter) (i.e. a parameterization or parameter configuration) to parameter values. An arm provides the configuration to be tested in an Ax [trial](glossary.md#trial). Also known as "treatment group" or "parameterization", the name 'arm' comes from the [Multi-Armed Bandit](https://en.wikipedia.org/wiki/Multi-armed_bandit) optimization problem, in which a player facing a row of “one-armed bandit” slot machines has to choose which machines to play when and in what order. [`[Arm]`](https://ax.readthedocs.io/en/latest/core.html#module-ax.core.arm) - -### Bandit optimization - -Machine learning-driven version of A/B testing that dynamically allocates traffic to [arms](glossary.md#arm) which are performing well, to determine the best [arm](glossary.md#arm) among a given set. - -### Batch trial - -Single step in the [experiment](glossary.md#experiment), contains multiple [arms](glossary.md#arm) that are **deployed and evaluated together**. A batch trial is not just a trial with many arms; it is a trial for which it is important that the arms are evaluated simultaneously, e.g. in an A/B test where the evaluation results are subject to nonstationarity. For cases where multiple arms are evaluated separately and independently of each other, use multiple regular [trials](glossary.md#trial) with a single arm each. [`[BatchTrial]`](https://ax.readthedocs.io/en/latest/core.html#module-ax.core.batch_trial) - -### Bayesian optimization - -Sequential optimization strategy for finding an optimal [arm](glossary.md#arm) in a continuous [search space](glossary.md#search-space). - -### Evaluation function - -Function that takes a parameterization and an optional weight as input and outputs a set of metric evaluations ([more details](/docs/trial-evaluation#evaluating-trial-parameters)). Used in the [Loop API](api.md). - -### Experiment - -Object that keeps track of the whole optimization process. Contains a [search space](glossary.md#search-space), [optimization config](glossary.md#optimization-config), and other metadata. [`[Experiment]`](https://ax.readthedocs.io/en/latest/core.html#module-ax.core.experiment) - -### Generation strategy - -Abstraction that allows to declaratively specify one or multiple models to use in the course of the optimization and automate transition between them (relevant [tutorial](/docs/tutorials/scheduler)). [`[GenerationStrategy]`](https://ax.readthedocs.io/en/latest/modelbridge.html#module-ax.generation_strategy.generation_strategy) - -### Generator run - -Outcome of a single run of the `gen` method of a [model bridge](glossary.md#model-bridge), contains the generated [arms](glossary.md#arm), as well as possibly best [arm](glossary.md#arm) predictions, other [model](glossary.md#model) predictions, fit times etc. [`[GeneratorRun]`](https://ax.readthedocs.io/en/latest/core.html#module-ax.core.generator_run) - -### Metric - -Interface for fetching data for a specific measurement on an [experiment](glossary.md#experiment) or [trial](glossary.md#trial). [`[Metric]`](https://ax.readthedocs.io/en/latest/core.html#module-ax.core.metric) - -### Model - -Algorithm that can be used to generate new points in a [search space](glossary.md#search-space). [`[Model]`](https://ax.readthedocs.io/en/latest/models.html) - -### Model bridge - -Adapter for interactions with a [model](glossary.md#model) within the Ax ecosystem. [`[Adapter]`](https://ax.readthedocs.io/en/latest/modelbridge.html) - -### Objective - -The [metric](glossary.md#metric) to be optimized, with an optimization direction (maximize/minimize). [`[Objective]`](https://ax.readthedocs.io/en/latest/core.html#module-ax.core.objective) - -### Optimization config - -Contains information necessary to run an optimization, i.e. [objective](glossary.md#objective) and [outcome constraints](/docs/glossary#outcome-constraint). [`[OptimizationConfig]`](https://ax.readthedocs.io/en/latest/core.html#module-ax.core.optimization_config) - -### Outcome constraint - -Constraint on [metric](glossary.md#metric) values, can be an order constraint or a sum constraint; violating [arms](glossary.md#arm) will be considered infeasible. [`[OutcomeConstraint]`](https://ax.readthedocs.io/en/latest/core.html#module-ax.core.outcome_constraint) - -### Parameter - -Configurable quantity that can be assigned one of multiple possible values, can be continuous ([`RangeParameter`](https://ax.readthedocs.io/en/latest/core.html#ax.core.parameter.RangeParameter)), discrete ([`ChoiceParameter`](https://ax.readthedocs.io/en/latest/core.html#ax.core.parameter.ChoiceParameter)) or fixed ([`FixedParameter`](https://ax.readthedocs.io/en/latest/core.html#ax.core.parameter.FixedParameter)). [`[Parameter]`](https://ax.readthedocs.io/en/latest/core.html#module-ax.core.parameter) - -### Parameter constraint - -Places restrictions on the relationships between [parameters](glossary.md#parameter). For example `buffer_size1 < buffer_size2` or `buffer_size_1 + buffer_size_2 < 1024`. [`[ParameterConstraint]`](https://ax.readthedocs.io/en/latest/core.html#module-ax.core.parameter_constraint) - -### Relative outcome constraint - -[Outcome constraint](glossary.md#outcome-constraint) evaluated relative to the [status quo](glossary.md#status-quo) instead of directly on the metric value. [`[OutcomeConstraint]`](https://ax.readthedocs.io/en/latest/core.html#module-ax.core.outcome_constraint) - -### Runner - -Dispatch abstraction that defines how a given [trial](glossary.md#trial) is to be run (either locally or by dispatching to an external system). [`[Runner]`](https://ax.readthedocs.io/en/latest/core.html#module-ax.core.runner) - -### Scheduler - -Configurable closed-loop optimization manager class, capable of conducting a full experiment by deploying trials, polling their results, and leveraging those results to generate and deploy more -trials (relevant [tutorial](/docs/tutorials/scheduler)). [`[Scheduler]`](https://ax.readthedocs.io/en/latest/service.html#module-ax.service.scheduler) - -### Search space - -Continuous, discrete or mixed design space that defines the set of [parameters](glossary.md#parameter) to be tuned in the optimization, and optionally [parameter constraints](glossary.md#parameter-constraint) on these parameters. The parameters of the [arms](glossary.md#arm) to be evaluated in the optimization are drawn from a search space. [`[SearchSpace]`](https://ax.readthedocs.io/en/latest/core.html#module-ax.core.search_space) - -### SEM - -[Standard error](https://en.wikipedia.org/wiki/Standard_error) of the [metric](glossary.md#metric)'s mean, 0.0 for noiseless measurements. If no value is provided, defaults to `np.nan`, in which case Ax infers its value using the measurements collected during experimentation. - -### Status quo - -An [arm](glossary.md#arm), usually the currently deployed configuration, which provides a baseline for comparing all other [arms](glossary.md#arm). Also known as a control [arm](glossary.md#arm). [`[StatusQuo]`](https://ax.readthedocs.io/en/latest/core.html#ax.core.experiment.Experiment.status_quo) - -### Trial - -Single step in the [experiment](glossary.md#experiment), contains a single [arm](glossary.md#arm). In cases where the trial contains multiple [arms](glossary.md#arm) that are deployed simultaneously, we refer to it as a [batch trial](glossary.md#batch-trial). [`[Trial]`](https://ax.readthedocs.io/en/latest/core.html#module-ax.core.trial), [`[BatchTrial]`](https://ax.readthedocs.io/en/latest/core.html#module-ax.core.batch_trial) diff --git a/docs/installation.md b/docs/installation.md deleted file mode 100644 index 6049a847c11..00000000000 --- a/docs/installation.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -id: installation -title: Installation ---- -## Requirements - -You need Python 3.10 or later to run Ax. - -The required Python dependencies are: - -- [botorch][def] -- jinja2 -- pandas -- scipy -- sklearn -- plotly >=2.2.1 - -## Stable Version - -### Installing via pip - -We recommend installing Ax via pip (even if using Conda environment): - -```shell -conda install pytorch torchvision -c pytorch # OSX only (details below) -pip install ax-platform -``` - -Installation will use Python wheels from PyPI, available for [OSX, Linux, and Windows](https://pypi.org/project/ax-platform/#files). - -_Note_: Make sure the `pip` being used to install `ax-platform` is actually the one from the newly created Conda environment. -If you're using a Unix-based OS, you can use `which pip` to check. - -_Recommendation for MacOS users_: PyTorch is a required dependency of BoTorch, and can be automatically installed via pip. -However, **we recommend you [install PyTorch manually](https://pytorch.org/get-started/locally/#anaconda-1) before installing Ax, using the Anaconda package manager**. -Installing from Anaconda will link against MKL (a library that optimizes mathematical computation for Intel processors). -This will result in up to an order-of-magnitude speed-up for Bayesian optimization, whereas installing PyTorch from pip does not link against MKL. - -If you need CUDA on MacOS, you will need to build PyTorch from source. Please consult the PyTorch installation instructions above. - -### Optional Dependencies - -To use Ax with a notebook environment, you will need Jupyter. Install it first: - -```shell -pip install jupyter -``` - -If you want to store the experiments in MySQL, you will need SQLAlchemy: - -```shell -pip install SQLAlchemy -``` - -## Latest Version - -### Installing from Git - -You can install the latest (bleeding edge) version from GitHub: - -```shell -pip install 'git+https://github.com/facebook/Ax.git#egg=ax-platform' -``` - -See also the recommendation for installing PyTorch for MacOS users above. - -At times, the bleeding edge for Ax can depend on bleeding edge versions of BoTorch (or GPyTorch). We therefore recommend installing those from Git as well: - -```shell -pip install git+https://github.com/cornellius-gp/gpytorch.git -pip install git+https://github.com/pytorch/botorch.git -``` - -### Optional Dependencies - -To use Ax with a notebook environment, you will need Jupyter. Install it first: - -```shell -pip install 'git+https://github.com/facebook/Ax.git#egg=ax-platform[notebook]' -``` - -If storing Ax experiments via SQLAlchemy in MySQL or SQLite: - -```shell -pip install 'git+https://github.com/facebook/Ax.git#egg=ax-platform[mysql]' -``` - -## Development - -When contributing to Ax, we recommend cloning the [repository](https://github.com/facebook/Ax) and installing all optional dependencies: - -```shell -# bleeding edge versions of GPyTorch + BoTorch are recommended -pip install git+https://github.com/cornellius-gp/gpytorch.git -pip install git+https://github.com/pytorch/botorch.git - -git clone https://github.com/facebook/ax.git --depth 1 -cd ax -pip install -e .[notebook,mysql,dev] -``` - -See recommendation for installing PyTorch for MacOS users above. - -The above example limits the cloned directory size via the -[`--depth`](https://git-scm.com/docs/git-clone#Documentation/git-clone.txt---depthltdepthgt) -argument to `git clone`. If you require the entire commit history you may remove this -argument. - -[def]: https://www.botorch.org diff --git a/docs/intro-to-ae.md b/docs/intro-to-ae.md new file mode 100644 index 00000000000..e1ece5243a9 --- /dev/null +++ b/docs/intro-to-ae.md @@ -0,0 +1,119 @@ +--- +id: intro-to-ae +title: Introduction to Adaptive Experimentation +--- + +# Introduction to Adaptive Experimentation + +In engineering tasks we often encounter so-called "black box" optimization +problems, situations where the relationship between inputs and outputs of a +system don’t have a closed-form solution and cannot be easily modeled. In these +scenarious practitioners must tune parameters using many time- and/or +resource-consuming trials. For example: + +- Machine learning engineers may seek optimal hyperparameters such as learning + rate or number of training steps to maximize accuracy or minimize size/runtime + for a model. +- Roboticists may seek to jointly find optimal gait parameters such as stride + length or foot angle to maximize walking speed for a legged robot. +- Materials scientists may seek to find the composition and heat treatment + parameters that maximize strength for an aerospace alloy. +- Chemists may seek to find the synthesis path for a molecule that is likely to + be a good drug candidate for an infectious disease. + +Adaptive experimentation is an approach to solving these problems efficiently by +leveraging data from prior iterations to inform future decisions on which trials +to run next. + +![Traditional vs. Adaptive design](assets/traditional_vs_adaptive.svg) + +## Traditional methods are inefficient, especially in high dimensions + +To solve black-box problems, there are two common approaches to suggest what +points or “trials” to evaluate (i.e., measurements of objective(s) for a given +set of input parameters). One is to use manual trial-and-error based on +intuition. The second is a more systematic method called “design of experiments” +(DoE). These methods can provide a strong understanding of the relationship +between the inputs and outputs of a system by providing broad coverage of the +entire input space. Examples of traditional DoE methods include: + +- Grid search: testing points on an equally spaced grid, +- Random search: randomly picking parameter combinations. Although somewhat + counterintuitive, random search is often more effective than grid search + because it avoids systematic gaps. + +An alternative class of methods referred to as quasi-random search offer the +"best of both worlds" between grid and random search by strategically selecting +points that are more uniformly dispersed. Examples include: + +- Sobol sampling, +- Latin Hypercube Sampling. Both rely on some form of subdividing a search space + and assigning points in relation to these subdivisions. + +![DoE sampling methods](assets/doe.png) + +Unfortunately getting broad coverage of the domain requires many samples, which +can be expensive. Worse, as more dimensions are added more points are required +to achieve the same coverage. To illustrate, imagine points distributed on a +line (1D), a square (2D), and a cube (3D). + +![Sampling from a line, a square, and a cube](assets/line_square_cube.png) + +Notice how even though there are 9x more points in the cube than on the line, +the +[discrepancy](https://en.wikipedia.org/wiki/Equidistributed_sequence#Discrepancy) +is 3x higher than for the line (0.100 vs. 0.028). This is often referred to as +the +["curse of dimensionality"](https://en.wikipedia.org/wiki/Curse_of_dimensionality). + +| | Line | Square | Cube | Hypercube | +| ----------- | :-------: | :-------: | :-------: | :---------: | +| Num. Points | $$3^1$$ | $$3^2$$ | $$3^3$$ | $$n^d$$ | +| Discrepancy | $$0.028$$ | $$0.061$$ | $$0.100$$ | $$f(3, d)$$ | + +Real-world black box optimization tasks often have many dimensions and can only +afford to conduct very few trials. For example, imagine you have a budget of 100 +trials and are optimizing over a parameter space with 20 dimensions. The +differences in discrepancy between algorithms can become drastic, as shown +below. In the case of grid search, to have even just two subdivisions in each of +20 dimensions would require $$20^2 = 400$$ points, well over our 100 point +budget! + +![Discrepancy vs. input dimensionality](assets/discrepancy_dims.png) + +## Adaptive experimentation outperforms traditional methods + +Although simple to implement, traditional DoE methods such as grid search, +random search, and quasi-random search are uninformed, meaning they do not +incorporate information about the objective function to be optimized. Likewise, +manual trial-and-error can be slow, expensive, and too complicated to +effectively reason about; domain experts often restrict their search space to +just a few parameters to help it feel like it’s something they can handle. + +Adaptive experimentation is a more efficient version of DoE that iteratively +incorporates information from prior results to suggest the next parameter set to +run. A typical adaptive experiment involves the following series of steps: + +1. **Configure** your optimization experiment, defining the search space, + objective(s), constraints, etc. +2. **Suggest** new trials, either one at a time or in a batch +3. **Evaluate** the suggested trials by executing the black box function and + reporting the results back to the optimization algorithm +4. **Repeat** steps 2 and 3 until a stopping condition is met or the evaluation + budget is exhausted + +Bayesian optimization, one of the most effective forms of adaptive +experimentation, uses acquisition functions to intelligently balance the +tradeoffs between exploration (learning how new parameterizations perform) and +exploitation (refining parameterizations previously observed to be good). To +achieve this, one must also create a surrogate model that predicts the average +behavior and the uncertainty of the objective(s) as a function of the input +parameters Typically this surrogate model is much less expensive to evaluate +than the true, underlying black box function. + +Black box optimization problems are everywhere, whether in machine learning, +robotics, materials science, or chemistry. Moving from manual trial-and-error +and uninformed strategies such as grid, random, and quasi-random search to an +adaptive experimentation setup can dramatically improve optimization +performance, whether it’s a state-of-the-art machine learning model, a faster +robot, a stronger alloy, or a better medicine. diff --git a/docs/intro-to-bo.md b/docs/intro-to-bo.md new file mode 100644 index 00000000000..7ccfeffb2e7 --- /dev/null +++ b/docs/intro-to-bo.md @@ -0,0 +1,128 @@ +--- +id: intro-to-bo +title: Introduction to Bayesian Optimization +--- + +# Introduction to Bayesian Optimization + +Bayesian optimization (BO) is a highly effective adaptive experimentation method +that excels at balancing exploration (learning how new parameterizations +perform) and exploitation (refining parameterizations previously observed to be +good). This method is the foundation of Ax's optimization. + +BO has seen widespread use across a variety of domains. Notable examples include +its use in +[tuning the hyperparameters of AlphaGo](https://www.nature.com/articles/nature16961), +a landmark model that defeated world champions in the board game Go. In +materials science, researchers used BO to accelerate the curing process, +increase the overall strength, and reduce the CO2 emissions of +[concrete formulations](https://arxiv.org/abs/2310.18288), the most abundant +human-made material in history. In chemistry, researchers used it to +[discover 21 new, state-of-the-art molecules for tunable dye lasers](https://www.science.org/doi/10.1126/science.adk9227) +(frequently used in quantum physics research), including the world’s brightest +molecule, while only a dozen or so had been discovered over the course of +decades. + +Ax relies on [BoTorch](https://botorch.org/) for its implementation of +state-of-the-art Bayesian optimization components. + +## Bayesian Optimization + +Bayesian optimization begins by building a smooth surrogate model of the +outcomes using a statistical model. This surrogate model makes predictions at +unobserved parameterizations and estimate the uncertainty around them. The +predictions and the uncertainty estimates are combined to derive an acquisition +function, which quantifies the value of observing a particular parameterization. +By optimizing the acquisition function we identify the best candidate +parameterizations for evaluation. In an iterative process, we fit the surrogate +model with newly observed data, optimize the acquisition function to identify +the best configuration to observe, then fit a new surrogate model with the newly +observed outcomes. The entire process is adaptive where the predictions and +uncertainty estimates are updated as new observations are made. + +The strategy of relying on successive surrogate models to update knowledge of +the objective allows BO to strike a balance between the conflicting goals of +exploration (trying out parameterizations with high uncertainty in their +outcomes) and exploitation (converging on configurations that are likely to be +good). As a result, BO is able to find better configurations with fewer +evaluations than is generally possible with grid search or other global +optimization techniques. Therefore, leveraging BO as is done in Ax, is +particularly impactful for applications where the evaluation process is +expensive, allowing for only a limited number of evaluations + +## Surrogate Models + +Because the objective function is a black-box process, we treat it as a random +function and place a prior over it. This prior captures beliefs about the +objective, and it is updated as data is observed to form the posterior. + +This is typically done using a Gaussian process (GP), a probabilistic model that +defines a probability distribution over possible functions that fit a set of +points. Importantly for Bayesian Optimization, GPs can be used to map points in +input space (the parameters we wish to tune) to distributions in output space +(the objectives we wish to optimize). + +In the one-dimensional example below, a surrogate model is fit to five noisy +observations using a GP to predict the objective, depicted by the solid line, +and uncertainty estimates, illustrated by the width of the shaded bands. This +objective is predicted for the entire range of possible parameter values, +corresponding to the full x-axis. Importantly, the model is able to predict the +outcome and quantify the uncertainty of configurations that have not yet been +tested. Intuitively, the uncertainty bands are tight in regions that are +well-explored and become wider as we move away from them. + +![GP surrogate model](assets/surrogate.png) + +## Acquisition Functions + +The acquisition function is a mathematical function that quantifies the utility +of observing a given point in the domain. Ax supports the most commonly used +acquisition functions in BO, including: + +- **Expected Improvement (EI)**, which captures the expected value of a point + above the current best value. +- **Probability of Improvement (PI)**, which captures the probability of a point + producing an observation better than the current best value. +- **Upper Confidence Bound (UCB)**, which sums the predicted mean and standard + deviation. + +Each of these acquisition functions will lead to different behavior during the +optimization. Additionally, many of these acquisition functions have been +extended to perform well in constrained, noisy, multi-objective, and/or batched +settings. + +Expected Improvement is a popular acquisition function owing to well balanced +exploitation vs exploration, a straighforward analytic form, and overall good +practical performance. As the name suggests, it rewards evaluation of the +objective $$f$$ based on the expected improvement relative to the current best. +If $$f^* = \max_i y_i$$ is the current best observed outcome and our goal is to +maximize $f$, then EI is defined as the following: + +$$ +\text{EI}(x) = \mathbb{E}\bigl[\max(f(x) - f^*, 0)\bigr] +$$ + +A visualization of the expected improvement based on the surrogate model +predictions is shown below, where the next suggestion is where the expected +improvement is at its maximum. + +![Expected Improvement (EI) acquisition function](assets/ei.png) + +Once a new highest EI is selected and evaluated, the surrogate model is +retrained and a new suggestion is made. As described above, this process +continues iteratively until a stopping condition, set by the user, is reached. + +![Full Bayesian optimization loop](assets/gpei.gif) + +Using an acquisition function like EI to sample new points initially promotes +quick exploration because the expected values, informed by the uncertainty +estimates, are higher in unexplored regions. Once the parameter space is +adequately explored, EI naturally narrows focuses on regions where there is a +high likelihood of a good objective value (ie exploitation). + +While the combination of a Gaussian process surrogate model and the expected +improvement acquisition function is shown above, different combinations of +surrogate models and acquisition functions can be used. Different surrogates, +either differently configured GPs or entirely different probabilistic models, or +different acquisition functions present various tradeoffs in terms of +optimization performance, computational load, and more. diff --git a/docs/models.md b/docs/models.md deleted file mode 100644 index 45e973551a4..00000000000 --- a/docs/models.md +++ /dev/null @@ -1,227 +0,0 @@ ---- -id: models -title: Generators ---- -## Using models in Ax - -In the optimization algorithms implemented by Ax, models predict the outcomes of metrics within an experiment evaluated at a parameterization, and are used to predict metrics or suggest new parameterizations for trials. Generators in Ax are created using factory functions from the [`ax.modelbridge.factory`](https://ax.readthedocs.io/en/latest/modelbridge.html#module-ax.modelbridge.factory). All of these models share a common API with [`predict()`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.base.Adapter.predict) to make predictions at new points and [`gen()`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.base.Adapter.gen) to generate new candidates to be tested. There are a variety of models available in the factory; here we describe the usage patterns for the primary model types and show how the various Ax utilities can be used with models. - -#### Sobol sequence - -The [`get_sobol`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.factory.get_sobol) function is used to construct a model that produces a quasirandom Sobol sequence when[`gen`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.base.Adapter.gen) is called. This code generates a scrambled Sobol sequence of 10 points: - -```python -from ax.modelbridge.factory import get_sobol - -m = get_sobol(search_space) -gr = m.gen(n=10) -``` - -The output of [`gen`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.base.Adapter.gen) is a [`GeneratorRun`](https://ax.readthedocs.io/en/latest/core.html#ax.core.generator_run.GeneratorRun) object that contains the generated points, along with metadata about the generation process. The generated arms can be accessed at [`GeneratorRun.arms`](https://ax.readthedocs.io/en/latest/core.html#ax.core.generator_run.GeneratorRun.arms). - -Additional arguments can be passed to [`get_sobol`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.factory.get_sobol) such as `scramble=False` to disable scrambling, and `seed` to set a seed (see [model API](https://ax.readthedocs.io/en/latest/models.html#ax.models.random.sobol.SobolGenerator)). - -Sobol sequences are typically used to select initialization points, and this model does not implement [`predict`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.base.Adapter.predict). It can be used on search spaces with any combination of discrete and continuous parameters. - -#### Gaussian Process with EI - -Gaussian Processes (GPs) are used for [Bayesian Optimization](bayesopt.md) in Ax, the [`Generators.BOTORCH_MODULAR`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.registry.Generators) registry entry constructs a modular BoTorch model that fits a GP to the data, and uses qLogNEI (or qLogNEHVI for MOO) acquisition function to generate new points on calls to [`gen`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.base.Adapter.gen). This code fits a GP and generates a batch of 5 points which maximizes EI: -```Python -from ax.modelbridge.registry import Generators - -m = Generators.BOTORCH_MODULAR(experiment=experiment, data=data) -gr = m.gen(n=5, optimization_config=optimization_config) -``` - -In contrast to [`get_sobol`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.factory.get_sobol), the GP requires data and is able to make predictions. We make predictions by constructing a list of [`ObservationFeatures`](https://ax.readthedocs.io/en/latest/core.html#ax.core.observation.ObservationFeatures) objects with the parameter values for which we want predictions: - -```python -from ax.core.observation import ObservationFeatures - -obs_feats = [ - ObservationFeatures(parameters={'x1': 3.14, 'x2': 2.72}), - ObservationFeatures(parameters={'x1': 1.41, 'x2': 1.62}), -] -f, cov = m.predict(obs_feats) -``` - -The output of [`predict`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.base.Adapter.predict) is the mean estimate of each metric and the covariance (across metrics) for each point. - -All Ax models that implement [`predict`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.base.Adapter.predict) can be used with the built-in plotting utilities, which can produce plots of model predictions on 1-d or 2-d slices of the parameter space: - -```python -from ax.plot.slice import plot_slice -from ax.utils.notebook.plotting import render, init_notebook_plotting - -init_notebook_plotting() -render(plot_slice( - model=m, - param_name='x1', # slice on values of 'x1' - metric_name='metric_a', - slice_values={'x2': 7.5}, # Fix at this value for the slice -)) -``` - -
- -```python -from ax.plot.contour import plot_contour - -render(plot_contour( - model=m, - param_x='x1', - param_y='x2', - metric_name='metric_a', -)) -``` - -
- -Ax also includes utilities for cross validation to assess model predictive performance. Leave-one-out cross validation can be performed as follows: - -```python -from ax.modelbridge.cross_validation import cross_validate, compute_diagnostics - -cv = cross_validate(model) -diagnostics = compute_diagnostics(cv) -``` - -[`compute_diagnostics`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.cross_validation.compute_diagnostics) computes a collection of diagnostics of model predictions, such as the correlation between predictions and actual values, and the p-value for a Fisher test of the model's ability to distinguish high values from low. A very useful tool for assessing model performance is to plot the cross validated predictions against the actual observed values: - -```python -from ax.plot.diagnostic import interact_cross_validation - -render(interact_cross_validation(cv)) -``` - -
- -If the model fits the data well, the values will lie along the diagonal. Poor GP fits tend to produce cross validation plots that are flat with high predictive uncertainty - such fits are unlikely to produce good candidates in [`gen`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.base.Adapter.gen). - -By default, this model will apply a number of transformations to the feature space, such as one-hot encoding of [`ChoiceParameters`](https://ax.readthedocs.io/en/latest/core.html#ax.core.parameter.ChoiceParameter) and log transformation of [`RangeParameters`](https://ax.readthedocs.io/en/latest/core.html#ax.core.parameter.RangeParameter) which have `log_scale` set to `True`. Transforms are also applied to the observed outcomes, such as standardizing the data for each metric. See [the section below on Transforms](/docs/models#transforms) for a description of the default transforms, and how new transforms can be implemented and included. - -GPs typically does a good job of modeling continuous parameters ([`RangeParameters`](https://ax.readthedocs.io/en/latest/core.html#ax.core.parameter.RangeParameter)). If the search space contains [`ChoiceParameters`](https://ax.readthedocs.io/en/latest/core.html#ax.core.parameter.ChoiceParameter), they will be one-hot-encoded and the GP fit in the encoded space. A search space with a mix of continuous parameters and [`ChoiceParameters`](https://ax.readthedocs.io/en/latest/core.html#ax.core.parameter.ChoiceParameter) that take a small number of values can be modeled effectively with a GP, but model performance may be poor if there are more than about 20 parameters after one-hot encoding. Cross validation is an effective tool for determining usefulness of the GP on a particular problem. - -In discrete spaces where the GP does not predict well, a multi-armed bandit approach is often preferred, and we now discuss the models suitable for that approach. - -#### Support for mixed search spaces and categorical variables - -The most common way of dealing with categorical variables in Bayesian optimization is to one-hot encode the categories to allow fitting a GP model in a continuous space. In this setting, a categorical variable with categories `["red", "blue", "green"]` is represented by three new variables (one for each category). While this is a convenient choice, it can drastically increase the dimensionality of the search space. In addition, the acquisition function is often optimized in the corresponding continuous space and the final candidate is selected by rounding back to the original space, which may result in selecting sub-optimal points according to the acquisition function. - -Our new approach uses separate kernels for the categorical and ordinal (continuous/integer) variables. In particular, we use a kernel of the form: -$$ -k(x, y) = k_\text{cat}(x_\text{cat}, y_\text{cat}) \times k_\text{ord}(x_\text{ord}, y_\text{ord}) + k_\text{cat}(x_\text{cat}, y_\text{cat}) + k_\text{ord}(x_\text{ord}, y_\text{ord}) -$$ -For the ordinal variables we can use a standard kernel such as Matérn-5/2, but for the categorical variables we need a way to compute distances between the different categories. A natural choice is to set the distance is 0 if two categories are equal and 1 otherwise, similar to the idea of Hamming distances. This approach can be combined with the idea of automatic relevance determination (ARD) where each categorical variable has its own lengthscale. Rather than optimizing the acquisition function in a continuously relaxed space, we optimize it separately over each combination of the categorical variables. While this is likely to result in better optimization performance, it may lead to slow optimization of the acquisition function when there are many categorical variables. - -#### Empirical Bayes and Thompson sampling - -For [Bandit optimization](banditopt.md), The [`get_empirical_bayes_thompson`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.factory.get_empirical_bayes_thompson) factory function returns a model that applies [empirical Bayes shrinkage](banditopt.md#empirical-bayes) to a discrete set of arms, and then uses Thompson sampling to construct a policy with the weight that should be allocated to each arms. Here we apply empirical Bayes to the data and use Thompson sampling to generate a policy that is truncated at `n=10` arms: - -```python -from ax.modelbridge.factory import get_empirical_bayes_thompson - -m = get_empirical_bayes_thompson(experiment, data) -gr = m.gen(n=10, optimization_config=optimization_config) -``` - -The arms and their corresponding weights can be accessed as `gr.arm_weights`. - -As with the GP, we can use [`predict`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.base.Adapter.predict) to evaluate the model at points of our choosing. However, because this is a purely in-sample model, those points should correspond to arms that were in the data. The model prediction will return the estimate at that point after applying the empirical Bayes shrinkage: - -```python -f, cov = m.predict([ObservationFeatures(parameters={'x1': 3.14, 'x2': 2.72})]) -``` - -We can generate a plot that shows the predictions for each arm with the shrinkage using [`plot_fitted`](https://ax.readthedocs.io/en/latest/plot.html#ax.plot.scatter.plot_fitted), which shows model predictions on all in-sample arms: - -```python -from ax.plot.scatter import plot_fitted - -render(plot_fitted(m, metric="metric_a", rel=False)) -``` - -
- -#### Factorial designs - -The factory function [`get_factorial`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.factory.get_factorial) can be used to construct a factorial design on a set of [`ChoiceParameters`](https://ax.readthedocs.io/en/latest/core.html#ax.core.parameter.ChoiceParameter). - -```python -from ax.modelbridge.factory import get_factorial - -m = get_factorial(search_space) -gr = m.gen(n=10) -``` - -Like the Sobol sequence, the factorial model is only used to generate points and does not implement [`predict`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.base.ModelBridge.predict). - -## Deeper dive: organization of the modeling stack - -Ax uses a bridge design to provide a unified interface for models, while still allowing for modularity in how different types of models are implemented. The modeling stack consists of two layers: the [`Adapter`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.base.Adapter) and the Model. - -The [`Adapter`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.base.Adapter) is the object that is directly used in Ax: model factories return [`Adapter`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.base.Adapter) objects, and plotting and cross validation tools operate on a [`Adapter`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.base.Adapter). The [`Adapter`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.base.Adapter) defines a unified API for all of the models used in Ax via methods like [`predict`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.base.Adapter.predict) and [`gen`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.base.Adapter.gen). Internally, it is responsible for transforming Ax objects like [`Arm`](https://ax.readthedocs.io/en/latest/core.html#ax.core.arm.Arm) and [`Data`](https://ax.readthedocs.io/en/latest/core.html#ax.core.data.Data) into objects which are then consumed downstream by a Model. - -Model objects are only used in Ax via a [`Adapter`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.base.Adapter). Each Model object defines an API which does not use Ax objects, allowing for modularity of different model types and making it easy to implement new models. For example, the TorchGenerator defines an API for a model that operates on torch tensors. There is a 1-to-1 link between [`Adapter`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.base.Adapter) objects and Model objects. For instance, the TorchAdapter takes in Ax objects, converts them to torch tensors, and sends them along to the TorchGenerator. Similar pairings exist for all of the different model types: - -| Adapter | Model | Example implementation | | -| -------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ | - | -| [`TorchAdapter`](https://ax.readthedocs.io/en/latest/modelbridge.html#module-ax.modelbridge.torch) | [`TorchGenerator`](https://ax.readthedocs.io/en/latest/models.html#ax.models.torch_base.TorchModel) | [`LegacyBoTorchGenerator`](https://ax.readthedocs.io/en/latest/models.html#ax.models.torch.botorch.BotorchModel) | | -| [`DiscreteAdapter](https://ax.readthedocs.io/en/latest/modelbridge.html#module-ax.modelbridge.discrete) | [`DiscreteGenerator`](https://ax.readthedocs.io/en/latest/models.html#ax.models.discrete_base.DiscreteModel) | [`ThompsonSampler`](https://ax.readthedocs.io/en/latest/models.html#ax.models.discrete.thompson.ThompsonSampler) | | -| [`RandomAdapter`](https://ax.readthedocs.io/en/latest/modelbridge.html#module-ax.modelbridge.random) | [`RandomGenerator`](https://ax.readthedocs.io/en/latest/models.html#ax.models.random.base.RandomModel) | [`SobolGenerator`](https://ax.readthedocs.io/en/latest/models.html#ax.models.random.sobol.SobolGenerator) | | - -This structure allows for different models like the GP in LegacyBoTorchGenerator and the Random Forest in RandomForest to share an interface and use common plotting tools at the level of the Adapter, while each is implemented using its own torch or numpy structures. - -The primary role of the [`Adapter`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.base.Adapter) is to act as a transformation layer. This includes transformations to the data, search space, and optimization config such as standardization and log transforms, as well as the final transform from Ax objects into the objects consumed by the Model. We now describe how transforms are implemented and used in the Adapter. - -## Transforms - -The transformations in the [`Adapter`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.base.Adapter) are done by chaining together a set of individual Transform objects. For continuous space models obtained via factory functions ([`get_sobol`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.factory.get_sobol) and [`Generators.BOTORCH_MODULAR`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.registry.Generators)), the following transforms will be applied by default, in this sequence: -* [`RemoveFixed`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.transforms.remove_fixed.RemoveFixed): Remove [`FixedParameters`](https://ax.readthedocs.io/en/latest/core.html#ax.core.parameter.FixedParameter) from the search space. -* [`OrderedChoiceEncode`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.transforms.choice_encode.OrderedChoiceEncode): [`ChoiceParameters`](https://ax.readthedocs.io/en/latest/core.html#ax.core.parameter.ChoiceParameter) with `is_ordered` set to `True` are encoded as a sequence of integers. -* [`OneHot`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.transforms.one_hot.OneHot): [`ChoiceParameters`](https://ax.readthedocs.io/en/latest/core.html#ax.core.parameter.ChoiceParameter) with `is_ordered` set to `False` are one-hot encoded. -* [`IntToFloat`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.transforms.int_to_float.IntToFloat): Integer-valued [`RangeParameters`](https://ax.readthedocs.io/en/latest/core.html#ax.core.parameter.RangeParameter) are converted to have float values. -* [`Log`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.transforms.log.Log): [`RangeParameters`](https://ax.readthedocs.io/en/latest/core.html#ax.core.parameter.RangeParameter) with `log_scale` set to `True` are log transformed. -* [`UnitX`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.transforms.unit_x.UnitX): All float [`RangeParameters`](https://ax.readthedocs.io/en/latest/core.html#ax.core.parameter.RangeParameter) are mapped to `[0, 1]`. -* [`Derelativize`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.transforms.derelativize.Derelativize): Constraints relative to status quo are converted to constraints on raw values. -* [`StandardizeY`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.transforms.standardize_y.StandardizeY): The Y values for each metric are standardized (subtract mean, divide by standard deviation). - -Each transform defines both a forward and backwards transform. Arm parameters are passed through the forward transform before being sent along to the Model. The Model works entirely in the transformed space, and when new candidates are generated, they are passed through all of the backwards transforms so the [`Adapter`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.base.Adapter) returns points in the original space. - -New transforms can be implemented by creating a subclass of [`Transform`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.transforms.base.Transform), which defines the interface for all transforms. There are separate methods for transforming the search space, optimization config, observation features, and observation data. Transforms that operate on only some aspects of the problem do not need to implement all methods, for instance, [`Log`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.transforms.log.Log) implements only [`transform_observation_features`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.transforms.log.Log.transform_observation_features) (to log transform the parameters), [`transform_search_space`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.transforms.log.Log.transform_search_space) (to log transform the search space bounds), and [`untransform_observation_features`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.transforms.log.Log.untransform_observation_features) (to apply the inverse transform). - -The (ordered) list of transforms to apply is an input to the Adapter, and so can easily be altered to add new transforms. It is important that transforms be applied in the right order. For instance, `StandardizeY` and `Winsorize` both transform the observed metric values. Applying them in the order `[StandardizeY, Winsorize]` could produce very different results than `[Winsorize, StandardizeY]`. In the former case, outliers would have already been included in the standardization (a procedure sensitive to outliers), and so the second approach that winsorizes first is preferred. - -See [the API reference](https://ax.readthedocs.io/en/latest/modelbridge.html#transforms) for the full collection of implemented transforms. - -## Implementing new models - -The structure of the modeling stack makes it easy to implement new models and use them inside Ax. There are two ways this might be done. - -### Using an existing Model interface - -The easiest way to implement a new model is if it can be adapted to one of the existing Model interfaces: ([`TorchModel`](https://ax.readthedocs.io/en/latest/models.html#ax.models.torch_base.TorchModel), [`DiscreteGenerator`](https://ax.readthedocs.io/en/latest/models.html#ax.models.discrete_base.DiscreteGenerator), or [`RandomGenerator`](https://ax.readthedocs.io/en/latest/models.html#ax.models.random.base.RandomGenerator)). The class definition provides the interface for each of the methods that should be implemented in order for Ax to be able to fully use the new model. Note however that not all methods must need be implemented to use some Ax functionality. For instance, an implementation of [`TorchModel`](https://ax.readthedocs.io/en/latest/models.html#ax.models.torch_base.TorchModel) that implements only [`fit`](https://ax.readthedocs.io/en/latest/models.html#ax.models.torch_base.TorchModel.fit) and [`predict`](https://ax.readthedocs.io/en/latest/models.html#ax.models.torch_base.TorchModel.predict) can be used to fit data and make plots in Ax; however, it will not be able to generate new candidates (requires implementing [`gen`](https://ax.readthedocs.io/en/latest/models.html#ax.models.torch_base.TorchModel.gen)) or be used with Ax's cross validation utility (requires implementing [`cross_validate`](https://ax.readthedocs.io/en/latest/models.html#ax.models.torch_base.TorchModel.cross_validate)). - -Once the new model has been implemented, it can be used in Ax with the corresponding [`Adapter`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.base.Adapter) from the table above. For instance, suppose a new torch-based model was implemented as a subclass of [`TorchModel`](https://ax.readthedocs.io/en/latest/models.html#ax.models.torch_base.TorchModel). We can use that model in Ax like: - -```python -new_model_obj = NewModel(init_args) # An instance of the new model class -m = TorchAdapter( - experiment=experiment, - search_space=search_space, - data=data, - model=new_model_obj, - transforms=[UnitX, StandardizeY], # Include the desired set of transforms -) -``` - -The [`Adapter`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.base.Adapter) object `m` can then be used with plotting and cross validation utilities exactly the same way as the built-in models. - -### Creating a new Model interface - -If none of the existing Model interfaces work are suitable for the new model type, then a new interface will have to be created. This involves two steps: creating the new model interface and creating the new model bridge. The new model bridge must be a subclass of [`Adapter`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.base.Adapter) that implements `Adapter._fit`, `Adapter._predict`, `Adapter._gen`, and `Adapter._cross_validate`. The implementation of each of these methods will transform the Ax objects in the inputs into objects required for the interface with the new model type. The model bridge will then call out to the new model interface to do the actual modeling work. All of the Adapter/Model pairs in the table above provide examples of how this interface can be defined. The main key is that the inputs on the [`Adapter`](https://ax.readthedocs.io/en/latest/modelbridge.html#ax.modelbridge.base.Adapter) side are fixed, but those inputs can then be transformed in whatever way is desired for the downstream Model interface to be that which is most convenient for implementing the model. - - - - - diff --git a/docs/storage.md b/docs/storage.md deleted file mode 100644 index 2bb9693f42a..00000000000 --- a/docs/storage.md +++ /dev/null @@ -1,226 +0,0 @@ ---- -id: storage -title: Storage ---- -Ax has extensible support for saving and loading experiments in both JSON and SQL. The former is a good option for users who prefer lightweight, transportable storage, and the latter is better suited to production applications requiring a centralized, high-performance database. - -## JSON - -### Saving - -To save an experiment to JSON, specify the filepath: - -```py -from ax import Experiment -from ax.storage.json_store.save import save_experiment - -experiment = Experiment(...) -filepath = "experiments/experiment.json" -save_experiment(experiment, filepath) -``` - -The experiment (including attached data) will be serialized and saved to the specified file. - -### Updating - -To update a JSON-backed experiment, re-save to the same file. - -### Loading - -To load an experiment from JSON, specify the filepath again: - -```py -from ax.storage.json_store.load import load_experiment -experiment = load_experiment(filepath) -``` - -### Customizing - -If you add a custom [`Metric`](https://ax.readthedocs.io/en/latest/core.html#module-ax.core.metric) or [`Runner`](https://ax.readthedocs.io/en/latest/core.html#ax.core.runner.Runner) and want to ensure it is saved to JSON properly, create a [`RegistryBundle`](https://ax.readthedocs.io/en/latest/storage.html#ax.storage.registry_bundle.RegistryBundle), which bundles together encoding and decoding logic for use in the various save/load functions as follows: - -```py -from ax import Experiment, Metric, Runner, SearchSpace -from ax.storage.json_store.load import load_experiment -from ax.storage.json_store.save import save_experiment -from ax.storage.registry_bundle import RegistryBundle - -# Minimal custom runner/metric. -class MyRunner(Runner): - def run(): - pass - -class MyMetric(Metric): - pass - -# Minimal experiment must have a search space, plus our custom classes. -experiment = Experiment( - search_space=SearchSpace(parameters=[]), - runner=MyRunner(), - tracking_metrics=[MyMetric(name="my_metric")] -) - -# A RegistryBundle allows Ax to encode/decode the custom classes. -bundle = RegistryBundle( - runner_clss={MyRunner: None} - metric_clss={MyMetric: None}, -) - -filepath = "experiments/experiment.json" -save_experiment(experiment=experiment, filepath=filepath, encoder_registry=bundle.encoder_registry) - -loaded_experiment=load_experiment(filepath=filepath, decoder_registry=bundle.decoder_registry) -``` - -## SQL - -### Saving - -To save an experiment to SQL, first initialize a session by passing a URL pointing to your database. Such a URL is typically composed of a dialect (e.g. sqlite, mysql, postgresql), optional driver (DBAPI used to connect to the database; e.g. psycopg2 for postgresql), username, password, hostname, and database name. A more detailed explanation how to generate a URL can be found in the [SQLAlchemy docs](https://docs.sqlalchemy.org/en/13/core/engines.html#database-urls). - -```py -from ax.storage.sqa_store.db import init_engine_and_session_factory - -# url is of the form "dialect+driver://username:password@host:port/database" -init_engine_and_session_factory(url="postgresql+psycopg2://[USERNAME]:[PASSWORD]@localhost:[PORT]/[DATABASE]") -``` - -Then create all tables: - -```py -from ax.storage.sqa_store.db import get_engine, create_all_tables - -engine = get_engine() -create_all_tables(engine) -``` - -Then save your experiment: - -```py -from ax import Experiment -from ax.storage.sqa_store.save import save_experiment - -experiment = Experiment(...) -save_experiment(experiment) -``` - -The experiment (including attached data) will be saved to the corresponding tables. - -Alternatively, you can pass a [creator function](https://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine.params.creator) instead of a url to `init_engine_and_session_factory`: - -```py -from ax import Experiment -from ax.storage.sqa_store.db import init_engine_and_session_factory -from ax.storage.sqa_store.save import save_experiment - -init_engine_and_session_factory(creator=creator) -experiment = Experiment(...) -save_experiment(experiment) -``` - -### Updating - -To update a SQL-backed experiment, call `save_experiment(experiment)` again. Ax will determine what updates to perform. - -### Loading - -To load an experiment from SQL, specify the name: - -```py -from ax import Experiment -from ax.storage.sqa_store.db import init_engine_and_session_factory -from ax.storage.sqa_store.load import load_experiment - -init_engine_and_session_factory(url=dialect+driver://username:password@host:port/database) -experiment = load_experiment(experiment_name) -``` - -### Customizing - -**Adding a new metric or runner:** - -If you add a custom [`Metric`](https://ax.readthedocs.io/en/latest/core.html#module-ax.core.metric) or [`Runner`](https://ax.readthedocs.io/en/latest/core.html#ax.core.runner.Runner) and want to ensure it is saved to SQL properly, create a [`RegistryBundle`](https://ax.readthedocs.io/en/latest/storage.html#ax.storage.registry_bundle.RegistryBundle), which bundles together encoding and decoding logic for use in the various save/load functions as follows: - -```py -from ax import Experiment, RangeParameter, ParameterType -from ax.storage.sqa_store.load import load_experiment -from ax.storage.sqa_store.save import save_experiment -from ax.storage.sqa_store.sqa_config import SQAConfig - -# Minimal custom runner/metric. -class MyRunner(Runner): - def run(): - pass - -class MyMetric(Metric): - pass - -# Minimal experiment for SQA must have a name and a nonempty SearchSpace, plus our custom classes. -experiment = Experiment( - name="my_experiment", - search_space=SearchSpace( - parameters=[ - RangeParameter( - lower=0, - upper=1, - name="my_parameter", - parameter_type=ParameterType.FLOAT - ) - ] - ), - runner=MyRunner(), - tracking_metrics=[MyMetric(name="my_metric")], -) - -# The RegistryBundle contains our custom classes. -bundle = RegistryBundle( - metric_clss={MyMetric: None}, - runner_clss={MyRunner: None} -) - -# Abstract this into a SQAConfig as follows, to make loading/saving a bit simpler. -sqa_config = SQAConfig( - json_encoder_registry=bundle.encoder_registry, - json_decoder_registry=bundle.decoder_registry, - metric_registry=bundle.metric_registry, - runner_registry=bundle.runner_registry, -) - -save_experiment(experiment, config=sqa_config) - -loaded_experiment = load_experiment(experiment_name="my_experiment", config=sqa_config) -``` - -**Specifying experiment types:** - -If you choose to add types to your experiments, create an Enum mapping experiment types to integer representations, pass this Enum to a custom instance of `SQAConfig`, and then pass the config to `sqa_store.save`: - -```py -from ax import Experiment -from ax.storage.sqa_store.save import save_experiment -from ax.storage.sqa_store.sqa_config import SQAConfig -from enum import Enum - -class ExperimentType(Enum): - DEFAULT: 0 - -config = SQAConfig(experiment_type_enum=ExperimentType) -save_experiment(experiment, config=config) -``` - -**Specifying generator run types:** - -If you choose to add types to your generator runs (beyond the existing `status_quo` type), create an enum mapping generator run types to integer representations, pass this enum to a custom instance of `SQAConfig`, and then pass the config to `sqa_store.save`: - -```py -from ax import Experiment -from ax.storage.sqa_store.save import save_experiment -from ax.storage.sqa_store.sqa_config import SQAConfig -from enum import Enum - -class GeneratorRunType(Enum): - DEFAULT: 0 - STATUS_QUO: 1 - -config = SQAConfig(generator_run_type_enum=GeneratorRunType) -save_experiment(experiment, config=config) -``` diff --git a/docs/trial-evaluation.md b/docs/trial-evaluation.md deleted file mode 100644 index 5a9960a747a..00000000000 --- a/docs/trial-evaluation.md +++ /dev/null @@ -1,208 +0,0 @@ ---- -id: trial-evaluation -title: Trial Evaluation ---- -There are 3 paradigms for evaluating [trials](glossary.md#trial) in Ax. Note: -ensure that you are using the -[appropriate type of trials](/docs/core#trial-vs-batch-trial) for your -experiment, before proceeding to trial evaluation. - -## [RECOMMENDED] Service API - -The Service API [`AxClient`](https://ax.readthedocs.io/en/latest/service.html#module-ax.service.ax_client) -exposes -[`get_next_trial`](https://ax.readthedocs.io/en/latest/service.html#ax.service.ax_client.AxClient.get_next_trial), -as well as -[`complete_trial`](https://ax.readthedocs.io/en/latest/service.html#ax.service.ax_client.AxClient.complete_trial). -The user is responsible for evaluating the trial parameters and passing the -results to -[`complete_trial`](https://ax.readthedocs.io/en/latest/service.html#ax.service.ax_client.AxClient.complete_trial). - -```python -... -for i in range(25): - parameters, trial_index = ax_client.get_next_trial() - raw_data = evaluate_trial(parameters) - ax_client.complete_trial(trial_index=trial_index, raw_data=raw_data) -``` - -### Evaluating Trial Parameters - -In the Service API, the -[`complete_trial`](https://ax.readthedocs.io/en/latest/service.html#ax.service.ax_client.AxClient.complete_trial) -method requires `raw_data` evaluated from the parameters suggested by -[`get_next_trial`](https://ax.readthedocs.io/en/latest/service.html#ax.service.ax_client.AxClient.get_next_trial). - -The data can be in the form of: - -- A dictionary of metric names to tuples of (mean and [SEM](glossary.md#sem)) -- A single (mean, SEM) tuple -- A single mean - -In the second case, Ax will assume that the mean and the SEM are for the -experiment objective (if the evaluations are noiseless, simply provide an SEM of -0.0). In the third case, Ax will assume that observations are corrupted by -Gaussian noise with zero mean and unknown SEM, and infer the SEM from the data -(this is equivalent to specifying an SEM of None). Note that if the observation -noise is non-zero (either provided or inferred), the "best arm" suggested by Ax -may not always be the one whose evaluation returned the best observed value (as -the "best arm" is selected based on the model-predicted mean). - -For example, this evaluation function computes mean and SEM for -[Hartmann6](https://www.sfu.ca/~ssurjano/hart6.html) function and for the -L2-norm. We return `0.0` for SEM since the observations are noiseless: - -```python -from ax.utils.measurement.synthetic_functions import hartmann6 -def hartmann_evaluation_function(parameterization): - x = np.array([parameterization.get(f"x{i+1}") for i in range(6)]) - # Standard error is 0 since we are computing a synthetic function. - return {"hartmann6": (hartmann6(x), 0.0), "l2norm": (np.sqrt((x ** 2).sum()), 0.0)} -``` - -This function computes just the objective mean and SEM, assuming the -[Branin](https://www.sfu.ca/~ssurjano/branin.html) function is the objective of -the experiment: - -```python -from ax.utils.measurement.synthetic_functions import branin -def branin_evaluation_function(parameterization): - # Standard error is 0 since we are computing a synthetic function. - return (branin(parameterization.get("x1"), parameterization.get("x2")), 0.0) -``` - -Alternatively, if the SEM is unknown, we could use the following form: - -```python -lambda parameterization: branin(parameterization.get("x1"), parameterization.get("x2")) -``` - -This is equivalent to returning `None` for the SEM: - -```python -from ax.utils.measurement.synthetic_functions import branin -def branin_evaluation_function_unknown_sem(parameterization): - return (branin(parameterization.get("x1"), parameterization.get("x2")), None) -``` - -## Loop API - -The [`optimize`](https://ax.readthedocs.io/en/latest/service.html#ax.service.managed_loop.optimize) function -requires an `evaluation_function`, which accepts parameters and returns raw data -in the format described above. It can also accept a `weight` parameter, a -nullable `float` representing the fraction of available data on which the -parameterization should be evaluated. For example, this could be a downsampling -rate in case of hyperparameter optimization (what portion of data the ML model -should be trained on for evaluation) or the percentage of users exposed to a -given configuration in A/B testing. This weight is not used in unweighted -experiments and defaults to `None`. - -## Developer API - -The Developer API is supported by the -[`Experiment`](https://ax.readthedocs.io/en/latest/core.html#module-ax.core.experiment) class. In this -paradigm, the user specifies: - -- [`Runner`](https://ax.readthedocs.io/en/latest/core.html#ax.core.runner.Runner): Defines how to deploy the - experiment. -- List of [`Metrics`](https://ax.readthedocs.io/en/latest/core.html#ax.core.metric.Metric): Each defines how - to compute/fetch data for a given objective or outcome. - -The experiment requires a `generator_run` to create a new trial or batch trial. -A generator run can be generated by a model. The trial then has its own `run` -and `mark_complete` methods. - -```python -... -sobol = Generators.SOBOL(exp.search_space) -for i in range(5): - trial = exp.new_trial(generator_run=sobol.gen(1)) - trial.run() - trial.mark_completed() - -for i in range(15): - gpei = Generators.BOTORCH_MODULAR(experiment=exp, data=exp.fetch_data()) - generator_run = gpei.gen(1) - trial = exp.new_trial(generator_run=generator_run) - trial.run() - trial.mark_completed() -``` - -### Custom Metrics - -Similar to a trial evaluation in the Service API, a custom metric computes a -mean and SEM for each arm of a trial. However, the metric's `fetch_trial_data` -method will be called automatically by the experiment's -[`fetch_data`](https://ax.readthedocs.io/en/latest/core.html#ax.core.base_trial.BaseTrial.fetch_data) method. -If there are multiple objectives or outcomes that need to be optimized for, each -needs its own metric. - -```python -class MyMetric(Metric): - def fetch_trial_data(self, trial): - records = [] - for arm_name, arm in trial.arms_by_name.items(): - params = arm.parameters - records.append({ - "arm_name": arm_name, - "metric_name": self.name, - "mean": self.foo(params["x1"], params["x2"]), - "sem": 0.0, - "trial_index": trial.index, - }) - return Data(df=pd.DataFrame.from_records(records)) -``` - -### Adding Your Own Runner - -In order to control how the experiment is deployed, you can add your own runner. -To do so, subclass [`Runner`](https://ax.readthedocs.io/en/latest/core.html#ax.core.runner.Runner) and -implement the [`run`](https://ax.readthedocs.io/en/latest/core.html#ax.core.runner.Runner.run) method and -[`staging_required`](https://ax.readthedocs.io/en/latest/core.html#ax.core.runner.Runner.staging_required) -property. - -The [`run`](https://ax.readthedocs.io/en/latest/core.html#ax.core.runner.Runner.run) method accepts a -[`Trial`](https://ax.readthedocs.io/en/latest/core.html#ax.core.trial.Trial) and returns a JSON-serializable -dictionary of any necessary tracking info to fetch data later from this external -system. A unique identifier or name for this trial in the external system should -be stored in this dictionary with the key `"name"`, and this can later be -accessed via `trial.deployed_name`. - -The -[`staging_required`](https://ax.readthedocs.io/en/latest/core.html#ax.core.runner.Runner.staging_required) -indicates whether the trial requires an intermediate staging period before -evaluation begins. This property returns False by default. - -An example implementation is given below: - -```python -from foo_system import deploy_to_foo -from ax import Runner - -class FooRunner(Runner): - def __init__(self, foo_param): - self.foo_param = foo_param - - def run(self, trial): - name_to_params = { - arm.name: arm.parameters for arm in trial.arms - } - run_metadata = deploy_to_foo(self.foo_param, name_to_params) - return run_metadata - - @property - def staging_required(self): - return False -``` - -This is then invoked by calling: - -```python -exp = Experiment(...) -exp.runner = FooRunner(foo_param="foo") -trial = exp.new_batch_trial() - -# This calls runner's run method and stores metadata output -# in the trial.run_metadata field -trial.run() -``` diff --git a/docs/tutorials/index.mdx b/docs/tutorials/index.mdx index 7700d3dd682..84b42953ac0 100644 --- a/docs/tutorials/index.mdx +++ b/docs/tutorials/index.mdx @@ -4,37 +4,3 @@ sidebar_label: Overview --- Here you can learn about the structure and applications of Ax from examples. - -**Our 3 API tutorials:** [Loop](/docs/tutorials/gpei_hartmann_loop), [Service](/docs/tutorials/gpei_hartmann_service), and [Developer](/docs/tutorials/gpei_hartmann_developer) — are a good place to start. Each tutorial showcases optimization on a constrained Hartmann6 problem, with the Loop API being the simplest to use and the Developer API being the most customizable. - -**NOTE: We recommend the [Service API](/docs/tutorials/gpei_hartmann_service) for the vast majority of use cases.** This API provides an ideal balance of flexibility and simplicity for most users, and we are in the process of consolidating Ax usage around it more formally. - -**Further, we explore the different components available in Ax in more detail.** {' '} The components explored below serve to set up an experiment, visualize its results, configure an optimization algorithm, run an entire experiment in a managed closed loop, and combine BoTorch components in Ax in a modular way. - -* [Visualizations](/docs/tutorials/visualizations) illustrates the different plots available to view and understand your results. - -* [GenerationStrategy](/docs/tutorials/generation_strategy) steps through setting up a way to specify the optimization algorithm (or multiple). A `GenerationStrategy` is an important component of Service API and the `Scheduler`. - -* [Scheduler](/docs/tutorials/scheduler) demonstrates an example of a managed and configurable closed-loop optimization, conducted in an asyncronous fashion. `Scheduler` is a manager abstraction in Ax that deploys trials, polls them, and uses their results to produce more trials. - -* [Modular `BoTorchModel`](/docs/tutorials/modular_botax) walks though a new beta-feature — an improved interface between Ax and{' '} [BoTorch](https://botorch.org/) — which allows for combining arbitrary BoTorch components like `AcquisitionFunction`, `Model`, `AcquisitionObjective` etc. into a single{' '} `Model` in Ax. - -**Our other Bayesian Optimization tutorials include:** - -* [Hyperparameter Optimization for PyTorch](/docs/tutorials/tune_cnn_service) provides an example of hyperparameter optimization with Ax and integration with an external ML library. - -* [Hyperparameter Optimization on SLURM via SubmitIt](/docs/tutorials/submitit) shows how to use the AxClient to schedule jobs and tune hyperparameters on a Slurm cluster. - -* [Multi-Task Modeling](/docs/tutorials/multi_task) illustrates multi-task Bayesian Optimization on a constrained synthetic Hartmann6 problem. - -* [Multi-Objective Optimization](/docs/tutorials/multiobjective_optimization) demonstrates Multi-Objective Bayesian Optimization on a synthetic Branin-Currin test function. - -* [Trial-Level Early Stopping](/docs/tutorials/early_stopping) shows how to use trial-level early stopping on an ML training job to save resources and iterate faster. - -{/* * [Benchmarking Suite](/docs/tutorials/benchmarking_suite_example) demonstrates how to use the Ax benchmarking suite to compare Bayesian Optimization algorithm performances and generate a comparative report with visualizations. */} - -For experiments done in a real-life setting, refer to our field experiments tutorials: - -* [Bandit Optimization](/docs/tutorials/factorial) shows how Thompson Sampling can be used to intelligently reallocate resources to well-performing configurations in real-time. - -* [Human-in-the-Loop Optimization](/docs/tutorials/human_in_the_loop) walks through manually influencing the course of optimization in real-time. diff --git a/tutorials/early_stopping/early_stopping.ipynb b/tutorials/early_stopping/early_stopping.ipynb deleted file mode 100644 index 26b27fcf942..00000000000 --- a/tutorials/early_stopping/early_stopping.ipynb +++ /dev/null @@ -1,681 +0,0 @@ -{ - "cells": [ - { - "attachments": {}, - "cell_type": "markdown", - "id": "12fe3797", - "metadata": {}, - "source": [ - "## Trial-level early stopping in Ax\n", - "\n", - "This tutorial illustrates how to add a trial-level early stopping strategy to an Ax hyper-parameter optimization (HPO) loop. The goal of trial-level early stopping is to monitor the results of expensive evaluations and terminate those that are unlikely to produce promising results, freeing up resources to explore more configurations.\n", - "\n", - "Most of this tutorial is adapted from the [PyTorch Ax Multiobjective NAS Tutorial](https://pytorch.org/tutorials/intermediate/ax_multiobjective_nas_tutorial.html). The training job is different from the original in that we do not optimize `batch_size` or `epochs`. This was done for illustrative purposes, as each validation curve now has the same number of points. The companion training file `mnist_train_nas.py` has also been altered to log to Tensorboard during training.\n", - "\n", - "NOTE: Although the original NAS tutorial is for a multi-objective problem, this tutorial focuses on a single objective (validation accuracy) problem. Early stopping currently does not support \\\"true\\\" multi-objective stopping, although one can use [logical compositions of early stopping strategies](https://github.com/facebook/Ax/blob/main/ax/early_stopping/strategies/logical.py) to target multiple objectives separately. Early stopping for the multi-objective case is currently a work in progress." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "779ea790", - "metadata": {}, - "outputs": [], - "source": [ - "import sys\n", - "import plotly.io as pio\n", - "if 'google.colab' in sys.modules:\n", - " pio.renderers.default = \"colab\"\n", - " %pip install ax-platform" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "cb953f30", - "metadata": {}, - "outputs": [], - "source": [ - "import os\n", - "import tempfile\n", - "\n", - "from pathlib import Path\n", - "\n", - "import torchx\n", - "\n", - "from ax.core import Experiment, Objective, ParameterType, RangeParameter, SearchSpace\n", - "from ax.core.optimization_config import OptimizationConfig\n", - "\n", - "from ax.early_stopping.strategies import PercentileEarlyStoppingStrategy\n", - "from ax.metrics.tensorboard import TensorboardMetric\n", - "\n", - "from ax.generation_strategy.dispatch_utils import choose_generation_strategy\n", - "\n", - "from ax.runners.torchx import TorchXRunner\n", - "\n", - "from ax.service.scheduler import Scheduler, SchedulerOptions\n", - "from ax.service.utils.report_utils import exp_to_df\n", - "\n", - "from tensorboard.backend.event_processing import plugin_event_multiplexer as event_multiplexer\n", - "\n", - "from torchx import specs\n", - "from torchx.components import utils\n", - "\n", - "from matplotlib import pyplot as plt\n", - "\n", - "\n", - "%matplotlib inline" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "8a7bd328", - "metadata": {}, - "outputs": [], - "source": [ - "SMOKE_TEST = os.environ.get(\"SMOKE_TEST\")" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "fe2cf6fe", - "metadata": {}, - "source": [ - "## Defining the TorchX App\n", - "\n", - "Our goal is to optimize the PyTorch Lightning training job defined in\n", - "[mnist_train_nas.py](https://github.com/pytorch/tutorials/tree/master/intermediate_source/mnist_train_nas.py)_.\n", - "To do this using TorchX, we write a helper function that takes in\n", - "the values of the architcture and hyperparameters of the training\n", - "job and creates a [TorchX AppDef](https://pytorch.org/torchx/latest/basics.html)_\n", - "with the appropriate settings.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "2e21d309", - "metadata": {}, - "outputs": [], - "source": [ - "if SMOKE_TEST:\n", - " epochs = 3\n", - "else:\n", - " epochs = 10" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b423923c", - "metadata": {}, - "outputs": [], - "source": [ - "def trainer(\n", - " log_path: str,\n", - " hidden_size_1: int,\n", - " hidden_size_2: int,\n", - " learning_rate: float,\n", - " dropout: float,\n", - " trial_idx: int = -1,\n", - ") -> specs.AppDef:\n", - "\n", - " # define the log path so we can pass it to the TorchX AppDef\n", - " if trial_idx >= 0:\n", - " log_path = Path(log_path).joinpath(str(trial_idx)).absolute().as_posix()\n", - "\n", - " batch_size = 32\n", - "\n", - " return utils.python(\n", - " # command line args to the training script\n", - " \"--log_path\",\n", - " log_path,\n", - " \"--hidden_size_1\",\n", - " str(hidden_size_1),\n", - " \"--hidden_size_2\",\n", - " str(hidden_size_2),\n", - " \"--learning_rate\",\n", - " str(learning_rate),\n", - " \"--epochs\",\n", - " str(epochs),\n", - " \"--dropout\",\n", - " str(dropout),\n", - " \"--batch_size\",\n", - " str(batch_size),\n", - " # other config options\n", - " name=\"trainer\",\n", - " script=\"tutorials/early_stopping/mnist_train_nas.py\",\n", - " image=torchx.version.TORCHX_IMAGE,\n", - " )" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "65f7011d", - "metadata": {}, - "source": [ - "## Setting up the Runner\n", - "\n", - "Ax’s [Runner](https://ax.dev/api/core.html#ax.core.runner.Runner)\n", - "abstraction allows writing interfaces to various backends.\n", - "Ax already comes with Runner for TorchX, so we just need to\n", - "configure it. For the purpose of this tutorial, we run jobs locally\n", - "in a fully asynchronous fashion. In order to launch them on a cluster, you can instead specify a\n", - "different TorchX scheduler and adjust the configuration appropriately.\n", - "For example, if you have a Kubernetes cluster, you just need to change the\n", - "scheduler from ``local_cwd`` to ``kubernetes``.\n", - "\n", - "The training job launched by this runner will log partial results to Tensorboard, which will then be monitored by the early stopping strategy. We will show how this is done using an Ax \n", - "[TensorboardMetric](https://ax.dev/api/metrics.html#module-ax.metrics.tensorboard) below." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "998e5835", - "metadata": {}, - "outputs": [], - "source": [ - "# Make a temporary dir to log our results into\n", - "log_dir = tempfile.mkdtemp()\n", - "\n", - "ax_runner = TorchXRunner(\n", - " tracker_base=\"/tmp/\",\n", - " component=trainer,\n", - " # NOTE: To launch this job on a cluster instead of locally you can\n", - " # specify a different scheduler and adjust args appropriately.\n", - " scheduler=\"local_cwd\",\n", - " component_const_params={\"log_path\": log_dir},\n", - " cfg={},\n", - ")" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "2fec7495", - "metadata": {}, - "source": [ - "## Setting up the SearchSpace\n", - "\n", - "First, we define our search space. Ax supports both range parameters\n", - "of type integer and float as well as choice parameters which can have\n", - "non-numerical types such as strings.\n", - "We will tune the hidden sizes, learning rate, and dropout parameters." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "cf6f869f", - "metadata": {}, - "outputs": [], - "source": [ - "parameters = [\n", - " # NOTE: In a real-world setting, hidden_size_1 and hidden_size_2\n", - " # should probably be powers of 2, but in our simple example this\n", - " # would mean that num_params can't take on that many values, which\n", - " # in turn makes the Pareto frontier look pretty weird.\n", - " RangeParameter(\n", - " name=\"hidden_size_1\",\n", - " lower=16,\n", - " upper=128,\n", - " parameter_type=ParameterType.INT,\n", - " log_scale=True,\n", - " ),\n", - " RangeParameter(\n", - " name=\"hidden_size_2\",\n", - " lower=16,\n", - " upper=128,\n", - " parameter_type=ParameterType.INT,\n", - " log_scale=True,\n", - " ),\n", - " RangeParameter(\n", - " name=\"learning_rate\",\n", - " lower=1e-4,\n", - " upper=1e-2,\n", - " parameter_type=ParameterType.FLOAT,\n", - " log_scale=True,\n", - " ),\n", - " RangeParameter(\n", - " name=\"dropout\",\n", - " lower=0.0,\n", - " upper=0.5,\n", - " parameter_type=ParameterType.FLOAT,\n", - " ),\n", - "]\n", - "\n", - "search_space = SearchSpace(\n", - " parameters=parameters,\n", - " # NOTE: In practice, it may make sense to add a constraint\n", - " # hidden_size_2 <= hidden_size_1\n", - " parameter_constraints=[],\n", - ")" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "a8005e80", - "metadata": {}, - "source": [ - "## Setting up Metrics\n", - "\n", - "Ax has the concept of a Metric that defines properties of outcomes and how observations are obtained for these outcomes. This allows e.g. encodig how data is fetched from some distributed execution backend and post-processed before being passed as input to Ax.\n", - "\n", - "We will optimize the validation accuracy, which is a `TensorboardMetric` that points to the logging directory assigned above. Note that we have set `is_available_while_running`, allowing for the metric to be queried as the trial progresses. This is critical for the early stopping strategy to monitor partial results." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "0775a96e", - "metadata": {}, - "outputs": [], - "source": [ - "class MyTensorboardMetric(TensorboardMetric):\n", - "\n", - " # NOTE: We need to tell the new Tensorboard metric how to get the id /\n", - " # file handle for the tensorboard logs from a trial. In this case\n", - " # our convention is to just save a separate file per trial in\n", - " # the pre-specified log dir.\n", - " def _get_event_multiplexer_for_trial(self, trial):\n", - " mul = event_multiplexer.EventMultiplexer(max_reload_threads=20)\n", - " mul.AddRunsFromDirectory(Path(log_dir).joinpath(str(trial.index)).as_posix(), None)\n", - " mul.Reload()\n", - "\n", - " return mul\n", - "\n", - " # This indicates whether the metric is queryable while the trial is\n", - " # still running. This is required for early stopping to monitor the\n", - " # progress of the running trial.ArithmeticError\n", - " @classmethod\n", - " def is_available_while_running(cls):\n", - " return True" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a5c5a7d0", - "metadata": {}, - "outputs": [], - "source": [ - "val_acc = MyTensorboardMetric(\n", - " name=\"val_acc\",\n", - " tag=\"val_acc\",\n", - " lower_is_better=False,\n", - ")" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "d4f3ba5d", - "metadata": {}, - "source": [ - "## Setting up the OptimizationConfig\n", - "\n", - "The `OptimizationConfig` specifies the objective for Ax to optimize." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "ada66cf3", - "metadata": {}, - "outputs": [], - "source": [ - "opt_config = OptimizationConfig(\n", - " objective=Objective(\n", - " metric=val_acc,\n", - " minimize=False,\n", - " )\n", - ")" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "57aa9cf7", - "metadata": {}, - "source": [ - "## Defining an Early Stopping Strategy\n", - "\n", - "A `PercentileEarlyStoppingStrategy` is a simple method that stops a trial if its performance falls below a certain percentile of other trials at the same step (e.g., when `percentile_threshold` is 50, at a given point in time, if a trial ranks in the bottom 50% of trials, it is stopped). \n", - "- We make use of `normalize_progressions` which normalizes the progression column (e.g. timestamp, epochs, training data used) to be in [0, 1]. This is useful because one doesn't need to know the maximum progression values of the curve (which might be, e.g., the total number of data points in the training dataset).\n", - "- The `min_progression` parameter specifies that trials should only be considered for stopping if the latest progression value is greater than this threshold.\n", - "- The `min_curves` parameter specifies the minimum number of completed curves (i.e., fully completed training jobs) before early stopping will be considered. This should be larger than zero if `normalize_progression` is used. In general, we want a few completed curves to have a baseline for comparison.\n", - "\n", - "Note that `PercentileEarlyStoppingStrategy` does not make use of learning curve modeling or prediction. More sophisticated model-based methods will be available in future versions of Ax." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "949e8ab5", - "metadata": {}, - "outputs": [], - "source": [ - "percentile_early_stopping_strategy = PercentileEarlyStoppingStrategy(\n", - " # stop if in bottom 70% of runs at the same progression\n", - " percentile_threshold=70,\n", - " # the trial must have passed `min_progression` steps before early stopping is initiated\n", - " # note that we are using `normalize_progressions`, so this is on a scale of [0, 1]\n", - " min_progression=0.3,\n", - " # there must be `min_curves` completed trials and `min_curves` trials reporting data in\n", - " # order for early stopping to be applicable\n", - " min_curves=5,\n", - " # specify, e.g., [0, 1] if the first two trials should never be stopped\n", - " trial_indices_to_ignore=None,\n", - " normalize_progressions=True,\n", - ")" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "2665ca93", - "metadata": {}, - "source": [ - "## Creating the Ax Experiment\n", - "\n", - "In Ax, the Experiment object is the object that stores all the information about the problem setup." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "12849b31", - "metadata": {}, - "outputs": [], - "source": [ - "experiment = Experiment(\n", - " name=\"torchx_mnist\",\n", - " search_space=search_space,\n", - " optimization_config=opt_config,\n", - " runner=ax_runner,\n", - ")" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "49a4ed0e", - "metadata": {}, - "source": [ - "## Choosing the GenerationStrategy\n", - "\n", - "A [GenerationStrategy](https://ax.dev/api/modelbridge.html#ax.generation_strategy.generation_strategy.GenerationStrategy)\n", - "is the abstract representation of how we would like to perform the\n", - "optimization. While this can be customized (if you’d like to do so, see\n", - "[this tutorial](https://ax.dev/tutorials/generation_strategy.html)),\n", - "in most cases Ax can automatically determine an appropriate strategy\n", - "based on the search space, optimization config, and the total number\n", - "of trials we want to run.\n", - "\n", - "Typically, Ax chooses to evaluate a number of random configurations\n", - "before starting a model-based Bayesian Optimization strategy.\n", - "\n", - "We remark that in Ax, generation strategies and early stopping strategies are separate, a design decision motivated by ease-of-use. However, we should acknowledge that jointly considering generation and stopping using a single strategy would likely be the \"proper\" formulation." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "e38d0237", - "metadata": {}, - "outputs": [], - "source": [ - "if SMOKE_TEST:\n", - " total_trials = 6\n", - "else:\n", - " total_trials = 15 # total evaluation budget\n", - "\n", - "gs = choose_generation_strategy(\n", - " search_space=experiment.search_space,\n", - " optimization_config=experiment.optimization_config,\n", - " num_trials=total_trials,\n", - ")" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "78d86fea", - "metadata": {}, - "source": [ - "## Configuring the Scheduler\n", - "\n", - "The `Scheduler` acts as the loop control for the optimization.\n", - "It communicates with the backend to launch trials, check their status, retrieve (partial) results, and importantly for this tutorial, calls the early stopping strategy. If the early stopping strategy suggests a trial to be the stopped, the `Scheduler` communicates with the backend to terminate the trial.\n", - "\n", - "The ``Scheduler`` requires the ``Experiment`` and the ``GenerationStrategy``.\n", - "A set of options can be passed in via ``SchedulerOptions``. Here, we\n", - "configure the number of total evaluations as well as ``max_pending_trials``,\n", - "the maximum number of trials that should run concurrently. In our\n", - "local setting, this is the number of training jobs running as individual\n", - "processes, while in a remote execution setting, this would be the number\n", - "of machines you want to use in parallel.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "499fb9b5", - "metadata": {}, - "outputs": [], - "source": [ - "scheduler = Scheduler(\n", - " experiment=experiment,\n", - " generation_strategy=gs,\n", - " options=SchedulerOptions(\n", - " total_trials=total_trials,\n", - " max_pending_trials=5,\n", - " early_stopping_strategy=percentile_early_stopping_strategy,\n", - " ),\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "78257ebb", - "metadata": {}, - "outputs": [], - "source": [ - "%%time\n", - "scheduler.run_all_trials()" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "8c5afbe8", - "metadata": {}, - "source": [ - "## Results\n", - "\n", - "First, we examine the data stored on the experiment. This shows that each trial is associated with an entire learning curve, represented by the column \"steps\"." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "764365f0", - "metadata": {}, - "outputs": [], - "source": [ - "experiment.lookup_data().map_df.head(n=10)" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "0033ed2e", - "metadata": {}, - "source": [ - "Below is a summary of the experiment, showing that a portion of trials have been early stopped." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "00f2b35f", - "metadata": {}, - "outputs": [], - "source": [ - "exp_to_df(experiment)" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "f8909cf2", - "metadata": {}, - "source": [ - "We can give a very rough estimate of the amount of computational savings due to early stopping, by looking at the total number of steps used when early stopping is used versus the number of steps used if we ran all trials to completion. Note to do a true comparison, one should run full HPO loops with and without early stopping (as early stopping will influence the model and future points selected by the generation strategy). " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5abb3ce8", - "metadata": {}, - "outputs": [], - "source": [ - "map_df = experiment.lookup_data().map_df\n", - "trial_to_max_steps = map_df.groupby(\"trial_index\")[\"step\"].max()\n", - "completed_trial_steps = trial_to_max_steps.iloc[0]\n", - "savings = 1.0 - trial_to_max_steps.sum() / (\n", - " completed_trial_steps * len(trial_to_max_steps)\n", - ")\n", - "# TODO format nicer\n", - "print(f\"A rough estimate of the computational savings is {100 * savings}%.\")" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "id": "37df6964", - "metadata": {}, - "source": [ - "## Visualizations\n", - "\n", - "Finally, we show a visualization of learning curves versus actual elapsed wall time. This helps to illustrate that stopped trials make room for additional trials to be run." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c88cb8d0", - "metadata": {}, - "outputs": [], - "source": [ - "# helper function for getting trial start times\n", - "def time_started(row):\n", - " trial_index = row[\"trial_index\"]\n", - " return experiment.trials[trial_index].time_run_started\n", - "\n", - "\n", - "# helper function for getting trial completion times\n", - "def time_completed(row):\n", - " trial_index = row[\"trial_index\"]\n", - " return experiment.trials[trial_index].time_completed\n", - "\n", - "\n", - "# helper function for getting relevant data from experiment\n", - "# with early stopping into useful dfs\n", - "def early_stopping_exp_to_df(experiment):\n", - " trials_df = exp_to_df(experiment)\n", - " curve_df = experiment.lookup_data().map_df\n", - " training_row_df = (\n", - " curve_df.groupby(\"trial_index\").max().reset_index()[[\"trial_index\", \"steps\"]]\n", - " )\n", - " trials_df = trials_df.merge(training_row_df, on=\"trial_index\")\n", - " trials_df[\"time_started\"] = trials_df.apply(func=time_started, axis=1)\n", - " trials_df[\"time_completed\"] = trials_df.apply(func=time_completed, axis=1)\n", - " start_time = trials_df[\"time_started\"].min()\n", - " trials_df[\"time_started_rel\"] = (\n", - " trials_df[\"time_started\"] - start_time\n", - " ).dt.total_seconds()\n", - " trials_df[\"time_completed_rel\"] = (\n", - " trials_df[\"time_completed\"] - start_time\n", - " ).dt.total_seconds()\n", - " return trials_df, curve_df\n", - "\n", - "\n", - "def plot_curves_by_wall_time(trials_df, curve_df):\n", - " trials = set(curve_df[\"trial_index\"])\n", - " fig, ax = plt.subplots(1, 1, figsize=(10, 6))\n", - " ax.set(xlabel=\"seconds since start\", ylabel=\"validation accuracy\")\n", - " for trial_index in trials:\n", - " this_trial_df = curve_df[curve_df[\"trial_index\"] == trial_index]\n", - " start_time_rel = trials_df[\"time_started_rel\"].iloc[trial_index]\n", - " completed_time_rel = trials_df[\"time_completed_rel\"].iloc[trial_index]\n", - " total_steps = trials_df.loc[trial_index, \"steps\"]\n", - " smoothed_curve = this_trial_df[\"mean\"].rolling(window=3).mean()\n", - " x = (\n", - " start_time_rel\n", - " + (completed_time_rel - start_time_rel)\n", - " / total_steps\n", - " * this_trial_df[\"steps\"]\n", - " )\n", - " ax.plot(\n", - " x,\n", - " smoothed_curve,\n", - " label=f\"trial #{trial_index}\" if trial_index % 2 == 1 else None,\n", - " )\n", - " ax.legend()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d7f52fed", - "metadata": {}, - "outputs": [], - "source": [ - "# wrap in try/except in case of flaky I/O issues\n", - "try:\n", - " trials_df, curve_df = early_stopping_exp_to_df(experiment)\n", - " plot_curves_by_wall_time(trials_df, curve_df)\n", - "except Exception as e:\n", - " print(f\"Encountered exception while plotting results: {e}\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "193e2fc7", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.4" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/tutorials/early_stopping/mnist_train_nas.py b/tutorials/early_stopping/mnist_train_nas.py deleted file mode 100644 index 957685a357a..00000000000 --- a/tutorials/early_stopping/mnist_train_nas.py +++ /dev/null @@ -1,174 +0,0 @@ -# Copyright (c) Meta Platforms, Inc. and affiliates. -# -# This source code is licensed under the MIT license found in the -# LICENSE file in the root directory of this source tree. - - -import argparse -import logging -import os -import time -import warnings - -import torch -from pytorch_lightning import LightningModule, loggers as pl_loggers, Trainer -from torch import nn -from torch.nn import functional as F -from torch.utils.data import DataLoader -from torchmetrics.functional.classification.accuracy import multiclass_accuracy -from torchvision import transforms -from torchvision.datasets import MNIST - -warnings.filterwarnings("ignore") # Disable data logger warnings -logging.getLogger("pytorch_lightning").setLevel(logging.ERROR) # Disable GPU/TPU prints - - -def parse_args(): - parser = argparse.ArgumentParser(description="train mnist") - parser.add_argument( - "--log_path", - type=str, - required=True, - help="dir to place tensorboard logs from all trials", - ) - parser.add_argument( - "--hidden_size_1", type=int, required=True, help="hidden size layer 1" - ) - parser.add_argument( - "--hidden_size_2", type=int, required=True, help="hidden size layer 2" - ) - parser.add_argument( - "--learning_rate", type=float, required=True, help="learning rate" - ) - parser.add_argument("--epochs", type=int, required=True, help="number of epochs") - parser.add_argument( - "--dropout", type=float, required=True, help="dropout probability" - ) - parser.add_argument("--batch_size", type=int, required=True, help="batch size") - return parser.parse_args() - - -args = parse_args() - -PATH_DATASETS = os.environ.get("PATH_DATASETS", ".") - - -class MnistModel(LightningModule): - def __init__(self): - super().__init__() - - # Tunable parameters - self.hidden_size_1 = args.hidden_size_1 - self.hidden_size_2 = args.hidden_size_2 - self.learning_rate = args.learning_rate - self.dropout = args.dropout - self.batch_size = args.batch_size - - # Set class attributes - self.data_dir = PATH_DATASETS - - # Hardcode some dataset specific attributes - self.num_classes = 10 - self.dims = (1, 28, 28) - channels, width, height = self.dims - self.transform = transforms.Compose( - [ - transforms.ToTensor(), - transforms.Normalize((0.1307,), (0.3081,)), - ] - ) - - # Create a PyTorch model - layers = [nn.Flatten()] - width = channels * width * height - hidden_layers = [self.hidden_size_1, self.hidden_size_2] - num_params = 0 - for hidden_size in hidden_layers: - if hidden_size > 0: - layers.append(nn.Linear(width, hidden_size)) - layers.append(nn.ReLU()) - layers.append(nn.Dropout(self.dropout)) - num_params += width * hidden_size - width = hidden_size - layers.append(nn.Linear(width, self.num_classes)) - num_params += width * self.num_classes - - # Save the model and parameter counts - self.num_params = num_params - self.model = nn.Sequential(*layers) # No need to use Relu for the last layer - - def forward(self, x): - x = self.model(x) - return F.log_softmax(x, dim=1) - - def training_step(self, batch, batch_idx): - x, y = batch - logits = self(x) - loss = F.nll_loss(logits, y) - return loss - - def validation_step(self, batch, batch_idx): - x, y = batch - logits = self(x) - loss = F.nll_loss(logits, y) - preds = torch.argmax(logits, dim=1) - acc = multiclass_accuracy(preds, y, num_classes=self.num_classes) - self.log("val_acc", acc, prog_bar=False) - return loss - - def configure_optimizers(self): - optimizer = torch.optim.Adam(self.parameters(), lr=self.learning_rate) - return optimizer - - def prepare_data(self): - MNIST(self.data_dir, train=True, download=True) - MNIST(self.data_dir, train=False, download=True) - - def setup(self, stage=None): - self.mnist_train = MNIST(self.data_dir, train=True, transform=self.transform) - self.mnist_val = MNIST(self.data_dir, train=False, transform=self.transform) - - def train_dataloader(self): - return DataLoader(self.mnist_train, batch_size=self.batch_size) - - def val_dataloader(self): - return DataLoader(self.mnist_val, batch_size=self.batch_size) - - -def run_training_job(): - mnist_model = MnistModel() - - # Initialize a trainer - logger = pl_loggers.TensorBoardLogger(args.log_path) - trainer = Trainer( - logger=logger, - log_every_n_steps=1, - max_epochs=args.epochs, - enable_progress_bar=False, - deterministic=True, # Do we want a bit of noise? - default_root_dir=args.log_path, - ) - logger.save() - - print(f"Logging to path: {args.log_path}.") - - # Train the model and log time - start = time.time() - trainer.fit(model=mnist_model) - end = time.time() - train_time = end - start - - # Compute the validation accuracy - val_accuracy = trainer.validate()[0]["val_acc"] - - # Log the number of model parameters - num_params = trainer.model.num_params - - # Print outputs - print( - f"train time: {train_time}, val acc: {val_accuracy}, num_params: {num_params}" - ) - - -if __name__ == "__main__": - run_training_job() diff --git a/tutorials/external_generation_node/external_generation_node.ipynb b/tutorials/external_generation_node/external_generation_node.ipynb deleted file mode 100644 index 61c9c3f7f4a..00000000000 --- a/tutorials/external_generation_node/external_generation_node.ipynb +++ /dev/null @@ -1,414 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "448bd7a0-af5a-43b4-a4fa-6a43577193b5", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "# Using external methods for candidate generation in Ax\n", - "\n", - "Out of the box, Ax offers many options for candidate generation, most of which utilize Bayesian optimization algorithms built using [BoTorch](https://botorch.org/). For users that want to leverage Ax for experiment orchestration (via `AxClient` or `Scheduler`) and other features (e.g., early stopping), while relying on other methods for candidate generation, we introduced `ExternalGenerationNode`. \n", - "\n", - "A `GenerationNode` is a building block of a `GenerationStrategy`. They can be combined together utilize different methods for generating candidates at different stages of an experiment. `ExternalGenerationNode` exposes a lightweight interface to allow the users to easily integrate their methods into Ax, and use them as standalone or with other `GenerationNode`s in a `GenerationStrategy`.\n", - "\n", - "In this tutorial, we will implement a simple generation node using `RandomForestRegressor` from sklearn, and combine it with Sobol (for initialization) to optimize the Hartmann6 problem.\n", - "\n", - "NOTE: This is for illustration purposes only. We do not recommend using this strategy as it typically does not perform well compared to Ax's default algorithms due to it's overly greedy behavior." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import sys\n", - "import plotly.io as pio\n", - "if 'google.colab' in sys.modules:\n", - " pio.renderers.default = \"colab\"\n", - " %pip install ax-platform" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "executionStartTime": 1710539298590, - "executionStopTime": 1710539307671, - "originalKey": "d07e3074-f374-40e8-af49-a018a00288b5", - "output": { - "id": "314819867912827", - "loadingStatus": "before loading" - }, - "outputsInitialized": true, - "requestMsgId": "d07e3074-f374-40e8-af49-a018a00288b5", - "serverExecutionDuration": 4039.838102879 - }, - "outputs": [], - "source": [ - "import time\n", - "from typing import Any, Dict, List, Optional, Tuple\n", - "\n", - "import numpy as np\n", - "from ax.core.base_trial import TrialStatus\n", - "from ax.core.data import Data\n", - "from ax.core.experiment import Experiment\n", - "from ax.core.parameter import RangeParameter\n", - "from ax.core.types import TParameterization\n", - "from ax.generation_strategy.external_generation_node import ExternalGenerationNode\n", - "from ax.generation_strategy.generation_node import GenerationNode\n", - "from ax.generation_strategy.generation_strategy import GenerationStrategy\n", - "from ax.generation_strategy.model_spec import GeneratorSpec\n", - "from ax.generation_strategy.transition_criterion import MaxTrials\n", - "from ax.modelbridge.registry import Generators\n", - "from ax.plot.trace import plot_objective_value_vs_trial_index\n", - "from ax.service.ax_client import AxClient, ObjectiveProperties\n", - "from ax.service.utils.report_utils import exp_to_df\n", - "from ax.utils.measurement.synthetic_functions import hartmann6\n", - "from sklearn.ensemble import RandomForestRegressor\n", - "from pyre_extensions import assert_is_instance\n", - "\n", - "\n", - "class RandomForestGenerationNode(ExternalGenerationNode):\n", - " \"\"\"A generation node that uses the RandomForestRegressor\n", - " from sklearn to predict candidate performance and picks the\n", - " next point as the random sample that has the best prediction.\n", - "\n", - " To leverage external methods for candidate generation, the user must\n", - " create a subclass that implements ``update_generator_state`` and\n", - " ``get_next_candidate`` methods. This can then be provided\n", - " as a node into a ``GenerationStrategy``, either as standalone or as\n", - " part of a larger generation strategy with other generation nodes,\n", - " e.g., with a Sobol node for initialization.\n", - " \"\"\"\n", - "\n", - " def __init__(self, num_samples: int, regressor_options: Dict[str, Any]) -> None:\n", - " \"\"\"Initialize the generation node.\n", - "\n", - " Args:\n", - " regressor_options: Options to pass to the random forest regressor.\n", - " num_samples: Number of random samples from the search space\n", - " used during candidate generation. The sample with the best\n", - " prediction is recommended as the next candidate.\n", - " \"\"\"\n", - " t_init_start = time.monotonic()\n", - " super().__init__(node_name=\"RandomForest\")\n", - " self.num_samples: int = num_samples\n", - " self.regressor: RandomForestRegressor = RandomForestRegressor(\n", - " **regressor_options\n", - " )\n", - " # We will set these later when updating the state.\n", - " # Alternatively, we could have required experiment as an input\n", - " # and extracted them here.\n", - " self.parameters: Optional[List[RangeParameter]] = None\n", - " self.minimize: Optional[bool] = None\n", - " # Recording time spent in initializing the generator. This is\n", - " # used to compute the time spent in candidate generation.\n", - " self.fit_time_since_gen: float = time.monotonic() - t_init_start\n", - "\n", - " def update_generator_state(self, experiment: Experiment, data: Data) -> None:\n", - " \"\"\"A method used to update the state of the generator. This includes any\n", - " models, predictors or any other custom state used by the generation node.\n", - " This method will be called with the up-to-date experiment and data before\n", - " ``get_next_candidate`` is called to generate the next trial(s). Note\n", - " that ``get_next_candidate`` may be called multiple times (to generate\n", - " multiple candidates) after a call to ``update_generator_state``.\n", - "\n", - " For this example, we will train the regressor using the latest data from\n", - " the experiment.\n", - "\n", - " Args:\n", - " experiment: The ``Experiment`` object representing the current state of the\n", - " experiment. The key properties includes ``trials``, ``search_space``,\n", - " and ``optimization_config``. The data is provided as a separate arg.\n", - " data: The data / metrics collected on the experiment so far.\n", - " \"\"\"\n", - " search_space = experiment.search_space\n", - " parameter_names = list(search_space.parameters.keys())\n", - " metric_names = list(experiment.optimization_config.metrics.keys())\n", - " if any(\n", - " not isinstance(p, RangeParameter) for p in search_space.parameters.values()\n", - " ):\n", - " raise NotImplementedError(\n", - " \"This example only supports RangeParameters in the search space.\"\n", - " )\n", - " if search_space.parameter_constraints:\n", - " raise NotImplementedError(\n", - " \"This example does not support parameter constraints.\"\n", - " )\n", - " if len(metric_names) != 1:\n", - " raise NotImplementedError(\n", - " \"This example only supports single-objective optimization.\"\n", - " )\n", - " # Get the data for the completed trials.\n", - " num_completed_trials = len(experiment.trials_by_status[TrialStatus.COMPLETED])\n", - " x = np.zeros([num_completed_trials, len(parameter_names)])\n", - " y = np.zeros([num_completed_trials, 1])\n", - " for t_idx, trial in experiment.trials.items():\n", - " if trial.status == \"COMPLETED\":\n", - " trial_parameters = trial.arm.parameters\n", - " x[t_idx, :] = np.array([trial_parameters[p] for p in parameter_names])\n", - " trial_df = data.df[data.df[\"trial_index\"] == t_idx]\n", - " y[t_idx, 0] = trial_df[trial_df[\"metric_name\"] == metric_names[0]][\n", - " \"mean\"\n", - " ].item()\n", - "\n", - " # Train the regressor.\n", - " self.regressor.fit(x, y)\n", - " # Update the attributes not set in __init__.\n", - " self.parameters = search_space.parameters\n", - " self.minimize = experiment.optimization_config.objective.minimize\n", - "\n", - " def get_next_candidate(\n", - " self, pending_parameters: List[TParameterization]\n", - " ) -> TParameterization:\n", - " \"\"\"Get the parameters for the next candidate configuration to evaluate.\n", - "\n", - " We will draw ``self.num_samples`` random samples from the search space\n", - " and predict the objective value for each sample. We will then return\n", - " the sample with the best predicted value.\n", - "\n", - " Args:\n", - " pending_parameters: A list of parameters of the candidates pending\n", - " evaluation. This is often used to avoid generating duplicate candidates.\n", - " We ignore this here for simplicity.\n", - "\n", - " Returns:\n", - " A dictionary mapping parameter names to parameter values for the next\n", - " candidate suggested by the method.\n", - " \"\"\"\n", - " bounds = np.array([[p.lower, p.upper] for p in self.parameters.values()])\n", - " unit_samples = np.random.random_sample([self.num_samples, len(bounds)])\n", - " samples = bounds[:, 0] + (bounds[:, 1] - bounds[:, 0]) * unit_samples\n", - " # Predict the objective value for each sample.\n", - " y_pred = self.regressor.predict(samples)\n", - " # Find the best sample.\n", - " best_idx = np.argmin(y_pred) if self.minimize else np.argmax(y_pred)\n", - " best_sample = samples[best_idx, :]\n", - " # Convert the sample to a parameterization.\n", - " candidate = {\n", - " p_name: best_sample[i].item()\n", - " for i, p_name in enumerate(self.parameters.keys())\n", - " }\n", - " return candidate" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "e1c194ea-53f9-466b-a04a-d1e222751a62", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "## Construct the GenerationStrategy\n", - "\n", - "We will use Sobol for the first 5 trials and defer to random forest for the rest." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "executionStartTime": 1710539307673, - "executionStopTime": 1710539307752, - "originalKey": "389cb09c-adeb-4724-82b0-903806b6b403", - "outputsInitialized": true, - "requestMsgId": "389cb09c-adeb-4724-82b0-903806b6b403", - "serverExecutionDuration": 5.2677921485156, - "showInput": true - }, - "outputs": [], - "source": [ - "generation_strategy = GenerationStrategy(\n", - " name=\"Sobol+RandomForest\",\n", - " nodes=[\n", - " GenerationNode(\n", - " node_name=\"Sobol\",\n", - " model_specs=[GeneratorSpec(Generators.SOBOL)],\n", - " transition_criteria=[\n", - " MaxTrials(\n", - " # This specifies the maximum number of trials to generate from this node, \n", - " # and the next node in the strategy.\n", - " threshold=5,\n", - " block_transition_if_unmet=True,\n", - " transition_to=\"RandomForest\"\n", - " )\n", - " ],\n", - " ),\n", - " RandomForestGenerationNode(num_samples=128, regressor_options={}),\n", - " ],\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "7bcf0a8e-39f7-4ceb-a791-c5453024bcfd", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "## Run a simple experiment using AxClient\n", - "\n", - "More details on how to use AxClient can be found in the [tutorial](https://ax.dev/tutorials/gpei_hartmann_service.html)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "executionStartTime": 1710539307754, - "executionStopTime": 1710539307854, - "originalKey": "4be26fc1-6183-40c4-a45e-79adb613b950", - "outputsInitialized": true, - "requestMsgId": "4be26fc1-6183-40c4-a45e-79adb613b950", - "serverExecutionDuration": 15.909331152216, - "showInput": true - }, - "outputs": [], - "source": [ - "ax_client = AxClient(generation_strategy=generation_strategy)\n", - "\n", - "ax_client.create_experiment(\n", - " name=\"hartmann_test_experiment\",\n", - " parameters=[\n", - " {\n", - " \"name\": f\"x{i}\",\n", - " \"type\": \"range\",\n", - " \"bounds\": [0.0, 1.0],\n", - " \"value_type\": \"float\", # Optional, defaults to inference from type of \"bounds\".\n", - " }\n", - " for i in range(1, 7)\n", - " ],\n", - " objectives={\"hartmann6\": ObjectiveProperties(minimize=True)},\n", - ")\n", - "\n", - "\n", - "def evaluate(parameterization: TParameterization) -> Dict[str, Tuple[float, float]]:\n", - " x = np.array([parameterization.get(f\"x{i+1}\") for i in range(6)])\n", - " return {\"hartmann6\": (assert_is_instance(hartmann6(x), float), 0.0)}" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "a470eb3e-40a0-45d2-9d53-13a98a137ec2", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "### Run the optimization loop" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "executionStartTime": 1710539307855, - "executionStopTime": 1710539309651, - "originalKey": "f67454e1-2a1a-4e87-ba3b-038c3134b09d", - "outputsInitialized": false, - "requestMsgId": "f67454e1-2a1a-4e87-ba3b-038c3134b09d", - "serverExecutionDuration": 1679.0952710435, - "showInput": true - }, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[INFO 02-03 18:39:20] ax.service.ax_client: Generated new trial 14 with parameters {'x1': 0.722061, 'x2': 0.537668, 'x3': 0.340365, 'x4': 0.187451, 'x5': 0.27493, 'x6': 0.107343} using model RandomForest.\n", - "[INFO 02-03 18:39:20] ax.service.ax_client: Completed trial 14 with data: {'hartmann6': (-0.110032, 0.0)}.\n" - ] - } - ], - "source": [ - "for i in range(15):\n", - " parameterization, trial_index = ax_client.get_next_trial()\n", - " ax_client.complete_trial(\n", - " trial_index=trial_index, raw_data=evaluate(parameterization)\n", - " )" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "d0655321-4875-46d7-a4bf-ac2c4e166d94", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "### View the trials generated during optimization" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "executionStartTime": 1710539309652, - "executionStopTime": 1710539309824, - "originalKey": "ba69ed8c-7ee2-49ef-9ccf-0aad2bc5ac61", - "outputsInitialized": true, - "requestMsgId": "ba69ed8c-7ee2-49ef-9ccf-0aad2bc5ac61", - "serverExecutionDuration": 73.840260040015, - "showInput": true - }, - "outputs": [], - "source": [ - "exp_df = exp_to_df(ax_client.experiment)\n", - "exp_df" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "plot_objective_value_vs_trial_index(\n", - " exp_df=exp_df,\n", - " metric_colname=\"hartmann6\",\n", - " minimize=True,\n", - " title=\"Hartmann6 Objective Value vs. Trial Index\",\n", - ")" - ] - } - ], - "metadata": { - "fileHeader": "", - "fileUid": "1ab8b45a-525c-4c25-b142-f7ef9fffb1c5", - "isAdHoc": false, - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.4" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/tutorials/factorial/factorial.ipynb b/tutorials/factorial/factorial.ipynb deleted file mode 100644 index 5b6462029ed..00000000000 --- a/tutorials/factorial/factorial.ipynb +++ /dev/null @@ -1,671 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - }, - "originalKey": "11c796cc-b85d-4940-8b15-cc43257f2f6f" - }, - "source": [ - "# Factorial design with empirical Bayes and Thompson Sampling" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "8a8399a7-2159-4c29-a614-496e40142b0e" - }, - "source": [ - "\n", - "This tutorial illustrates how to run a factorial experiment. In such an experiment, each parameter (factor) can be assigned one of multiple discrete values (levels). A full-factorial experiment design explores all possible combinations of factors and levels.\n", - "\n", - "For instance, consider a banner with a title and an image. We are considering two different titles and three different images. A full-factorial experiment will compare all 2*3=6 possible combinations of title and image, to see which version of the banner performs the best.\n", - "\n", - "In this example, we first run an exploratory batch to collect data on all possible combinations. Then we use empirical Bayes to model the data and shrink noisy estimates toward the mean. Next, we use Thompson Sampling to suggest a set of arms (combinations of factors and levels) on which to collect more data. We repeat the process until we have identified the best performing combination(s)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import sys\n", - "in_colab = 'google.colab' in sys.modules\n", - "if in_colab:\n", - " %pip install ax-platform" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2019-04-01T16:59:07.844357Z", - "start_time": "2019-04-01T09:59:06.377921-07:00" - }, - "code_folding": [], - "executionStartTime": 1626981053537, - "executionStopTime": 1626981053715, - "hidden_ranges": [], - "originalKey": "4cd9a25a-24ad-478b-8e13-d44dcda79470", - "requestMsgId": "14098f9a-32b6-44a7-a299-96d926ed0094" - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "import pandas as pd\n", - "import sklearn as skl\n", - "from typing import Dict, Optional, Tuple, Union\n", - "from ax import (\n", - " Arm,\n", - " ChoiceParameter,\n", - " Generators,\n", - " ParameterType,\n", - " SearchSpace,\n", - " Experiment,\n", - " OptimizationConfig,\n", - " Objective,\n", - ")\n", - "from ax.plot.scatter import plot_fitted\n", - "from ax.utils.notebook.plotting import render, init_notebook_plotting\n", - "from ax.utils.stats.statstools import agresti_coull_sem" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2019-04-01T16:59:07.852360Z", - "start_time": "2019-04-01T09:59:07.846655-07:00" - }, - "executionStartTime": 1626979627293, - "executionStopTime": 1626979629392, - "originalKey": "4b037028-dc23-4ded-97ab-29f322c4e955", - "requestMsgId": "ba949adc-1e0a-465a-9a5f-cb88406aacb1" - }, - "outputs": [], - "source": [ - "import plotly.io as pio\n", - "init_notebook_plotting()\n", - "if in_colab:\n", - " pio.renderers.default = \"colab\"" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "178bb166-21ad-4632-980a-ed80cfdef665" - }, - "source": [ - "## 1. Define the search space" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "481d6b12-6bec-4290-a3a9-286452ca969d" - }, - "source": [ - "\n", - "First, we define our search space. A factorial search space contains a ChoiceParameter for each factor, where the values of the parameter are its levels." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2019-04-01T16:59:07.861686Z", - "start_time": "2019-04-01T09:59:07.854353-07:00" - }, - "executionStartTime": 1626981051101, - "executionStopTime": 1626981051122, - "originalKey": "1f1e7bb9-d7f5-4d94-8568-6a99dd99ad31", - "requestMsgId": "f88cb237-fbb3-4cb6-be08-d81b339f6ccb" - }, - "outputs": [], - "source": [ - "search_space = SearchSpace(\n", - " parameters=[\n", - " ChoiceParameter(\n", - " name=\"factor1\",\n", - " parameter_type=ParameterType.STRING,\n", - " values=[\"level11\", \"level12\", \"level13\"],\n", - " ),\n", - " ChoiceParameter(\n", - " name=\"factor2\",\n", - " parameter_type=ParameterType.STRING,\n", - " values=[\"level21\", \"level22\"],\n", - " ),\n", - " ChoiceParameter(\n", - " name=\"factor3\",\n", - " parameter_type=ParameterType.STRING,\n", - " values=[\"level31\", \"level32\", \"level33\", \"level34\"],\n", - " ),\n", - " ]\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "collapsed": true, - "hidden_ranges": [], - "jupyter": { - "outputs_hidden": true - }, - "originalKey": "1efa918f-2dc7-484a-9d26-f2c132729364", - "showInput": true - }, - "source": [ - "## 2. Define a custom metric" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "63587acb-5dd2-481c-bc47-b4fb4d59b6ea", - "showInput": true - }, - "source": [ - "Second, we define a custom metric, which is responsible for computing\n", - "the mean and standard error of a given arm.\n", - "\n", - "In this example, each possible parameter value is given a coefficient. The higher the level, the higher the coefficient, and the higher the coefficients, the greater the mean.\n", - "\n", - "The standard error of each arm is determined by the weight passed into the evaluation function, which represents the size of the population on which this arm was evaluated. The higher the weight, the greater the sample size, and thus the lower the standard error." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2019-04-01T16:59:07.871141Z", - "start_time": "2019-04-01T09:59:07.863475-07:00" - }, - "code_folding": [], - "executionStartTime": 1626985050014, - "executionStopTime": 1626985050042, - "hidden_ranges": [], - "originalKey": "18b36086-8b22-468e-b661-4aa155fa1731", - "requestMsgId": "320dd2d7-0b0e-4f30-a622-d61ea619655a" - }, - "outputs": [], - "source": [ - "from ax import Data, Metric\n", - "from ax.utils.common.result import Ok\n", - "import pandas as pd\n", - "from random import random\n", - "\n", - "\n", - "one_hot_encoder = skl.preprocessing.OneHotEncoder(\n", - " categories=[par.values for par in search_space.parameters.values()],\n", - ")\n", - "\n", - "\n", - "class FactorialMetric(Metric):\n", - " def fetch_trial_data(self, trial):\n", - " records = []\n", - " for arm_name, arm in trial.arms_by_name.items():\n", - " params = arm.parameters\n", - " batch_size = 10000\n", - " noise_level = 0.0\n", - " weight = trial.normalized_arm_weights().get(arm, 1.0)\n", - " coefficients = np.array([0.1, 0.2, 0.3, 0.1, 0.2, 0.1, 0.2, 0.3, 0.4])\n", - " features = np.array(list(params.values())).reshape(1, -1)\n", - " encoded_features = one_hot_encoder.fit_transform(features)\n", - " z = (\n", - " coefficients @ encoded_features.T\n", - " + np.sqrt(noise_level) * np.random.randn()\n", - " )\n", - " p = np.exp(z) / (1 + np.exp(z))\n", - " plays = np.random.binomial(batch_size, weight)\n", - " successes = np.random.binomial(plays, p)\n", - " records.append(\n", - " {\n", - " \"arm_name\": arm_name,\n", - " \"metric_name\": self.name,\n", - " \"trial_index\": trial.index,\n", - " \"mean\": float(successes) / plays,\n", - " \"sem\": agresti_coull_sem(successes, plays),\n", - " }\n", - " )\n", - " return Ok(value=Data(df=pd.DataFrame.from_records(records)))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "554b78ab-b22b-4527-b8fe-1bb880d4b5da" - }, - "source": [ - "## 3. Define the experiment" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "6528d970-a599-4a54-a0c2-d537391f2cdd" - }, - "source": [ - "\n", - "We now set up our experiment and define the status quo arm, in which each parameter is assigned to the lowest level." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2019-04-01T16:59:07.876425Z", - "start_time": "2019-04-01T09:59:07.872766-07:00" - }, - "code_folding": [], - "executionStartTime": 1626985052799, - "executionStopTime": 1626985052823, - "hidden_ranges": [], - "originalKey": "0cfdaace-d333-41e2-8e32-97d529f2e6f6", - "requestMsgId": "3aba5566-54c8-4c9b-98f5-e5a8cca320be" - }, - "outputs": [], - "source": [ - "from ax import Runner\n", - "\n", - "\n", - "class MyRunner(Runner):\n", - " def run(self, trial):\n", - " trial_metadata = {\"name\": str(trial.index)}\n", - " return trial_metadata\n", - "\n", - "\n", - "exp = Experiment(\n", - " name=\"my_factorial_closed_loop_experiment\",\n", - " search_space=search_space,\n", - " optimization_config=OptimizationConfig(\n", - " objective=Objective(metric=FactorialMetric(name=\"success_metric\"), minimize=False)\n", - " ),\n", - " runner=MyRunner(),\n", - ")\n", - "exp.status_quo = Arm(\n", - " parameters={\"factor1\": \"level11\", \"factor2\": \"level21\", \"factor3\": \"level31\"}\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "af6e0970-7ef7-43d6-bf51-53d49fb3faca" - }, - "source": [ - "## 4. Run an exploratory batch" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "03ece8d9-05e8-467b-af53-7bf6bf27100f" - }, - "source": [ - "\n", - "We then generate an a set of arms that covers the full space of the factorial design, including the status quo. There are three parameters, with two, three, and four values, respectively, so there are 24 possible arms." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from math import prod\n", - "n = prod(len(p.values) for p in search_space.parameters.values())" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "executionStartTime": 1626985056428, - "executionStopTime": 1626985056466, - "originalKey": "336e037d-856c-4b64-9b29-a867c59504f8", - "requestMsgId": "7d00cd3f-82ec-4280-986c-8d0eebec37fe" - }, - "outputs": [], - "source": [ - "factorial = Generators.FACTORIAL(search_space=exp.search_space)\n", - "factorial_run = factorial.gen(\n", - " # Number of arms to generate is derived from the search space. \n", - " # So n passed here will be overwritten by internal logic.\n", - " n=n \n", - ") \n", - "print(len(factorial_run.arms))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "f333ba26-51e4-4420-9ef2-ce70753e761a" - }, - "source": [ - "Now we create a trial including all of these arms, so that we can collect data and evaluate the performance of each." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "executionStartTime": 1626985058790, - "executionStopTime": 1626985058824, - "originalKey": "f2827f56-4047-400d-b04a-abe54c92f741", - "requestMsgId": "a437ff61-38f1-431e-a3e7-db6201a815a9" - }, - "outputs": [], - "source": [ - "trial = exp.new_batch_trial(optimize_for_power=True).add_generator_run(\n", - " factorial_run, multiplier=1\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "685dbafd-41d2-43f3-bfa6-8b2de0693939" - }, - "source": [ - "By default, the weight of each arm in `factorial_run` will be 1. However, to optimize for power on the contrasts of `k` groups against the status quo, the status quo should be `sqrt(k)` larger than any of the treatment groups. Since we have 24 different arms in our search space, the status quo should be roughly five times larger. That larger weight is automatically set by Ax under the hood if `optimize_for_power` kwarg is set to True on new batched trial creation." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "executionStartTime": 1626985063153, - "executionStopTime": 1626985063222, - "originalKey": "5595e26c-e177-4cb8-8a08-072887a46518", - "requestMsgId": "a272e32c-eef2-41c7-97e7-79597ad3bfdc" - }, - "outputs": [], - "source": [ - "trial._status_quo_weight_override" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "29988eea-ca36-4dcb-86e8-3074d1724a79" - }, - "source": [ - "## 5. Iterate using Thompson Sampling" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "b129269f-f305-4d3f-a714-edd2eaa3d5cc", - "showInput": true - }, - "source": [ - "\n", - "Next, we run multiple trials (iterations of the experiment) to hone in on the optimal arm(s). \n", - "\n", - "In each iteration, we first collect data about all arms in that trial by calling `trial.run()` and `trial.mark_complete()`. Then we run Thompson Sampling, which assigns a weight to each arm that is proportional to the probability of that arm being the best. Arms whose weight exceed `min_weight` are added to the next trial, so that we can gather more data on their performance." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2019-04-01T16:59:08.480646Z", - "start_time": "2019-04-01T09:59:07.908822-07:00" - }, - "code_folding": [], - "executionStartTime": 1626985067022, - "executionStopTime": 1626985068028, - "hidden_ranges": [], - "originalKey": "ef666431-ac01-4f6e-9c45-2d87d5e3c17d", - "requestMsgId": "56be7e99-c8ca-4ff0-a09e-9685cf21a38c" - }, - "outputs": [], - "source": [ - "models = []\n", - "for i in range(4):\n", - " print(f\"Running trial {i+1}...\")\n", - " trial.run()\n", - " trial.mark_completed()\n", - " thompson = Generators.THOMPSON(experiment=exp, data=trial.fetch_data(), min_weight=0.01)\n", - " models.append(thompson)\n", - " thompson_run = thompson.gen(n=n)\n", - " trial = exp.new_batch_trial(optimize_for_power=True).add_generator_run(thompson_run)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "61073290-8081-4d86-8d35-6ed0572f78ed", - "showInput": false - }, - "source": [ - "## Plot 1: Predicted outcomes for each arm in initial trial" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "c91bdb84-b539-4e62-9b62-ed3109387a4e", - "showInput": false - }, - "source": [ - "\n", - "The plot below shows the mean and standard error for each arm in the first trial. We can see that the standard error for the status quo is the smallest, since this arm was assigned 5x weight." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2019-04-01T16:59:08.534814Z", - "start_time": "2019-04-01T09:59:08.482576-07:00" - }, - "code_folding": [], - "executionStartTime": 1626984357974, - "executionStopTime": 1626984358116, - "hidden_ranges": [], - "originalKey": "a67258fa-d063-44e7-95b4-f106cd5c9920", - "requestMsgId": "2f6e361b-a3d4-4d4a-b9c2-0b001d605b40" - }, - "outputs": [], - "source": [ - "render(plot_fitted(models[0], metric=\"success_metric\", rel=False))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "e1a49380-6a6f-4d8d-a637-090ddb2ea9ce" - }, - "source": [ - "## Plot 2: Predicted outcomes for arms in last trial" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "8ff61bf1-1794-480c-83d5-d2e5ff2388a1" - }, - "source": [ - "The following plot below shows the mean and standard error for each arm that made it to the last trial (as well as the status quo, which appears throughout). " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "executionStartTime": 1626984362259, - "executionStopTime": 1626984362405, - "originalKey": "4297845f-c757-4e4e-a90d-d381e7ebf9f6", - "requestMsgId": "9d659e4e-7c71-4327-be1b-58684eaa07fc" - }, - "outputs": [], - "source": [ - "render(plot_fitted(models[-1], metric=\"success_metric\", rel=False))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "db5d2ac7-230a-445a-ba86-bd17190bfa71" - }, - "source": [ - "\n", - "As expected given our evaluation function, arms with higher levels\n", - "perform better and are given higher weight. Below we see the arms\n", - "that made it to the final trial." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2019-04-01T16:59:08.548754Z", - "start_time": "2019-04-01T09:59:08.536758-07:00" - }, - "executionStartTime": 1626984366493, - "executionStopTime": 1626984366528, - "originalKey": "c28a65ed-d02c-418c-9c31-af9ce3fd2cee", - "requestMsgId": "777c0d21-4c3f-434a-a394-09e10440fa49" - }, - "outputs": [], - "source": [ - "results = pd.DataFrame(\n", - " [\n", - " {\"values\": \",\".join(arm.parameters.values()), \"weight\": weight}\n", - " for arm, weight in trial.normalized_arm_weights().items()\n", - " ]\n", - ")\n", - "print(results)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "1b35fc96-10db-41f0-9046-86a2d3a0086b" - }, - "source": [ - "## Plot 3: Rollout Process" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "e7973105-5c2a-46aa-90c7-fe7c7fed8fc7" - }, - "source": [ - "We can also visualize the progression of the experience in the following rollout chart. Each bar represents a trial, and the width of the bands within a bar are proportional to the weight of the arms in that trial. \n", - "\n", - "In the first trial, all arms appear with equal weight, except for the status quo. By the last trial, we have narrowed our focus to only four arms, with arm 0_22 (the arm with the highest levels) having the greatest weight." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2019-04-01T16:59:08.569844Z", - "start_time": "2019-04-01T09:59:08.550440-07:00" - }, - "executionStartTime": 1626984396783, - "executionStopTime": 1626984396959, - "originalKey": "58a42f2b-e446-4a4c-8375-1e39754dc1b9", - "requestMsgId": "3eefbfde-8c2b-47bc-b7c7-28cdafc2ad25" - }, - "outputs": [], - "source": [ - "from ax.plot.bandit_rollout import plot_bandit_rollout\n", - "from ax.utils.notebook.plotting import render\n", - "\n", - "render(plot_bandit_rollout(exp))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "a9d4add2-b04e-48c0-87d2-42a702f0ba60" - }, - "source": [ - "## Plot 4: Marginal Effects" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "79e28d86-8752-415c-8f8f-7bdc0357fd5c" - }, - "source": [ - "Finally, we can examine which parameter values had the greatest effect on the overall arm value. As we see in the diagram below, arms whose parameters were assigned the lower level values (such as `levell1`, `levell2`, `level31` and `level32`) performed worse than average, whereas arms with higher levels performed better than average." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "ExecuteTime": { - "end_time": "2019-04-01T17:03:56.645223Z", - "start_time": "2019-04-01T10:03:56.563655-07:00" - }, - "code_folding": [], - "executionStartTime": 1626984407454, - "executionStopTime": 1626984407690, - "hidden_ranges": [], - "originalKey": "8e347a24-b6d8-462a-9f89-5527eb7aac6b", - "requestMsgId": "f1d12da0-7576-43d7-a9c6-c5d71981899f" - }, - "outputs": [], - "source": [ - "from ax.plot.marginal_effects import plot_marginal_effects\n", - "\n", - "render(plot_marginal_effects(models[0], \"success_metric\"))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.16" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/tutorials/generation_strategy/generation_strategy.ipynb b/tutorials/generation_strategy/generation_strategy.ipynb deleted file mode 100644 index eb54dee59c1..00000000000 --- a/tutorials/generation_strategy/generation_strategy.ipynb +++ /dev/null @@ -1,467 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import sys\n", - "import plotly.io as pio\n", - "if 'google.colab' in sys.modules:\n", - " pio.renderers.default = \"colab\"\n", - " %pip install ax-platform" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from ax.generation_strategy.dispatch_utils import choose_generation_strategy\n", - "from ax.generation_strategy.generation_strategy import GenerationStep, GenerationStrategy\n", - "from ax.modelbridge.modelbridge_utils import get_pending_observation_features\n", - "from ax.modelbridge.registry import ModelRegistryBase, Generators\n", - "\n", - "from ax.utils.testing.core_stubs import get_branin_experiment, get_branin_search_space" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Generation Strategy (GS) Tutorial\n", - "\n", - "`GenerationStrategy` ([API reference](https://ax.dev/api/modelbridge.html#ax.generation_strategy.generation_strategy.GenerationStrategy)) is a key abstraction in Ax:\n", - "- It allows for specifying multiple optimization algorithms to chain one after another in the course of the optimization. \n", - "- Many higher-level APIs in Ax use generation strategies: Service and Loop APIs, `Scheduler` etc. (tutorials for all those higher-level APIs are here: https://ax.dev/tutorials/).\n", - "- Generation strategy allows for storage and resumption of modeling setups, making optimization resumable from SQL or JSON snapshots.\n", - "\n", - "This tutorial walks through a few examples of generation strategies and discusses its important settings. Before reading it, we recommend familiarizing yourself with how `Generator` and `Adapter` work in Ax: https://ax.dev/docs/models.html#deeper-dive-organization-of-the-modeling-stack.\n", - "\n", - "**Contents:**\n", - "1. Quick-start examples\n", - " 1. Manually configured GS\n", - " 2. Auto-selected GS\n", - " 3. Candidate generation from a GS\n", - "2. Deep dive: `GenerationStep` a building block of the generation strategy\n", - " 1. Describing a model\n", - " 2. Other `GenerationStep` settings\n", - " 3. Chaining `GenerationStep`-s together\n", - " 4. `max_parallelism` enforcement and handling the `MaxParallelismReachedException`\n", - "3. `GenerationStrategy` storage\n", - " 1. JSON storage\n", - " 2. SQL storage\n", - "4. Advanced considerations / \"gotchas\"\n", - " 1. Generation strategy produces `GeneratorRun`-s, not `Trial`-s\n", - " 2. `model_kwargs` elements that don't have associated serialization logic in Ax\n", - " 3. Why prefer `Models` registry enum entries over a factory function?\n", - " 4. How to request more modeling setups in `Models`?\n", - " \n", - "----" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 1. Quick-start examples\n", - "\n", - "### 1A. Manually configured generation strategy\n", - "\n", - "Below is a typical generation strategy used for most single-objective optimization cases in Ax:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "gs = GenerationStrategy(\n", - " steps=[\n", - " # 1. Initialization step (does not require pre-existing data and is well-suited for\n", - " # initial sampling of the search space)\n", - " GenerationStep(\n", - " model=Generators.SOBOL,\n", - " num_trials=5, # How many trials should be produced from this generation step\n", - " min_trials_observed=3, # How many trials need to be completed to move to next model\n", - " max_parallelism=5, # Max parallelism for this step\n", - " model_kwargs={\"seed\": 999}, # Any kwargs you want passed into the model\n", - " model_gen_kwargs={}, # Any kwargs you want passed to `modelbridge.gen`\n", - " ),\n", - " # 2. Bayesian optimization step (requires data obtained from previous phase and learns\n", - " # from all data available at the time of each new candidate generation call)\n", - " GenerationStep(\n", - " model=Generators.BOTORCH_MODULAR,\n", - " num_trials=-1, # No limitation on how many trials should be produced from this step\n", - " max_parallelism=3, # Parallelism limit for this step, often lower than for Sobol\n", - " # More on parallelism vs. required samples in BayesOpt:\n", - " # https://ax.dev/docs/bayesopt.html#tradeoff-between-parallelism-and-total-number-of-trials\n", - " ),\n", - " ]\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 1B. Auto-selected generation strategy\n", - "\n", - "Ax provides a [`choose_generation_strategy`](https://github.com/facebook/Ax/blob/main/ax/modelbridge/dispatch_utils.py#L115) utility, which can auto-select a suitable generation strategy given a search space and an array of other optional settings. The utility is fairly simple at the moment, but additional development (support for multi-objective optimization, multi-fidelity optimization, Bayesian optimization with categorical kernels etc.) is coming soon." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "gs = choose_generation_strategy(\n", - " # Required arguments:\n", - " search_space=get_branin_search_space(), # Ax `SearchSpace`\n", - " # Some optional arguments (shown with their defaults), see API docs for more settings:\n", - " # https://ax.dev/api/modelbridge.html#module-ax.generation_strategy.dispatch_utils\n", - " use_batch_trials=False, # Whether this GS will be used to generate 1-arm `Trial`-s or `BatchTrials`\n", - " no_bayesian_optimization=False, # Use quasi-random candidate generation without BayesOpt\n", - " max_parallelism_override=None, # Integer, to which to set the `max_parallelism` setting of all steps in this GS\n", - ")\n", - "gs" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 1C. Candidate generation from a generation strategy\n", - "\n", - "While often used through Service or Loop API or other higher-order abstractions like the Ax `Scheduler` (where the generation strategy is used to fit models and produce candidates from them under-the-hood), it's also possible to use the GS directly, in place of a `Adapter` instance. The interface of `GenerationStrategy.gen` is the same as `Adapter.gen`.\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "experiment = get_branin_experiment()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note that it's important to **specify pending observations** to the call to `gen` to avoid getting the same points re-suggested. Without `pending_observations` argument, Ax models are not aware of points that should be excluded from generation. Points are considered \"pending\" when they belong to `STAGED`, `RUNNING`, or `ABANDONED` trials (with the latter included so model does not re-suggest points that are considered \"bad\" and should not be re-suggested).\n", - "\n", - "If the call to `get_pending_obervation_features` becomes slow in your setup (since it performs data-fetching etc.), you can opt for `get_pending_observation_features_based_on_trial_status` (also from `ax.modelbridge.modelbridge_utils`), but note the limitations of that utility (detailed in its docstring)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "generator_run = gs.gen(\n", - " experiment=experiment, # Ax `Experiment`, for which to generate new candidates\n", - " data=None, # Ax `Data` to use for model training, optional.\n", - " n=1, # Number of candidate arms to produce\n", - " pending_observations=get_pending_observation_features(\n", - " experiment\n", - " ), # Points that should not be re-generated\n", - " # Any other kwargs specified will be passed through to `ModelBridge.gen` along with `GenerationStep.model_gen_kwargs`\n", - ")\n", - "generator_run" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Then we can add the newly produced [`GeneratorRun`](https://ax.dev/docs/glossary.html#generator-run) to the experiment as a [`Trial` (or `BatchTrial` if `n` > 1)](https://ax.dev/docs/glossary.html#trial):" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "trial = experiment.new_trial(generator_run)\n", - "trial" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Important notes on `GenerationStrategy.gen`:**\n", - "- if `data` argument above is not specified, GS will pull experiment data from cache via `experiment.lookup_data`,\n", - "- without specifying `pending_observations`, the GS (and any model in Ax) could produce the same candidate over and over, as without that argument the model is not 'aware' that the candidate is part of a `RUNNING` or `ABANDONED` trial and should not be re-suggested again.\n", - "\n", - "In cases where `get_pending_observation_features` is too slow and the experiment consists of 1-arm `Trial`-s only, it's possible to use `get_pending_observation_features_based_on_trial_status` instead (found in the same file)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note that when using the Ax Service API, one of the arguments to `AxClient` is `choose_generation_strategy_kwargs`; specifying that argument is a convenient way to influence the choice of generation strategy in `AxClient` without manually specifying a full `GenerationStrategy`." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "-----" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 2. `GenerationStep` as a building block of generation strategy" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 2A. Describing a generator to use in a given `GenerationStep`\n", - "\n", - "There are two ways of specifying a generator for a generation step: via an entry in a `Models` enum or via a 'factory function' –– a callable generator constructor (e.g. [`get_GPEI`](https://github.com/facebook/Ax/blob/0e454b71d5e07b183c0866855555b6a21ddd5da1/ax/modelbridge/factory.py#L154) and other factory functions in the same file). Note that using the latter path, a factory function, will prohibit `GenerationStrategy` storage and is generally discouraged. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 2B. Other `GenerationStep` settings\n", - "\n", - "All of the available settings are described in the documentation:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "print(GenerationStep.__doc__)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 2C. Chaining `GenerationStep`-s together\n", - "\n", - "A `GenerationStrategy` moves from one step to another when: \n", - "1. `N=num_trials` generator runs were produced and attached as trials to the experiment AND \n", - "2. `M=min_trials_observed` have been completed and have data.\n", - "\n", - "**Caveat: `enforce_num_trials` setting**:\n", - "\n", - "1. If `enforce_num_trials=True` for a given generation step, if 1) is reached but 2) is not yet reached, the generation strategy will raise a `DataRequiredError`, indicating that more trials need to be completed before the next step.\n", - "2. If `enforce_num_trials=False`, the GS will continue producing generator runs from the current step until 2) is reached." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 2D. `max_parallelism` enforcement\n", - "\n", - "Generation strategy can restrict the number of trials that can be ran simultaneously (to encourage sequential optimization, which benefits Bayesian optimization performance). When the parallelism limit is reached, a call to `GenerationStrategy.gen` will result in a `MaxParallelismReachedException`.\n", - "\n", - "The correct way to handle this exception:\n", - "1. Make sure that `GenerationStep.max_parallelism` is configured correctly for all steps in your generation strategy (to disable it completely, configure `GenerationStep.max_parallelism=None`),\n", - "2. When encountering the exception, wait to produce more generator runs until more trial evluations complete and log the trial completion via `trial.mark_completed`." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "----\n", - "\n", - "## 3. SQL and JSON storage of a generation strategy" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "When used through Service API or `Scheduler`, generation strategy will be automatically stored to SQL or JSON via specifying `DBSettings` to either `AxClient` or `Scheduler` (details in respective tutorials in the [\"Tutorials\" page](https://ax.dev/tutorials/)). Generation strategy can also be stored to SQL or JSON individually, as shown below.\n", - "\n", - "More detail on SQL and JSON storage in Ax generally can be [found in \"Building Blocks of Ax\" tutorial](https://ax.dev/tutorials/building_blocks.html#9.-Save-to-JSON-or-SQL)." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 3A. SQL storage\n", - "For SQL storage setup in Ax, read through the [\"Storage\" documentation page](https://ax.dev/docs/storage.html).\n", - "\n", - "Note that unlike an Ax experiment, a generation strategy does not have a name or another unique identifier. Therefore, a generation strategy is stored in association with experiment and can be retrieved by the associated experiment's name." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from ax.storage.sqa_store.db import (\n", - " create_all_tables,\n", - " get_engine,\n", - " init_engine_and_session_factory,\n", - ")\n", - "from ax.storage.sqa_store.load import (\n", - " load_experiment,\n", - " load_generation_strategy_by_experiment_name,\n", - ")\n", - "from ax.storage.sqa_store.save import save_experiment, save_generation_strategy\n", - "\n", - "init_engine_and_session_factory(url=\"sqlite:///foo2.db\")\n", - "\n", - "engine = get_engine()\n", - "create_all_tables(engine)\n", - "\n", - "save_experiment(experiment)\n", - "save_generation_strategy(gs)\n", - "\n", - "experiment = load_experiment(experiment_name=experiment.name)\n", - "gs = load_generation_strategy_by_experiment_name(\n", - " experiment_name=experiment.name,\n", - " experiment=experiment, # Can optionally specify experiment object to avoid loading it from database twice\n", - ")\n", - "gs" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 3B. JSON storage" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from ax.storage.json_store.decoder import object_from_json\n", - "from ax.storage.json_store.encoder import object_to_json\n", - "\n", - "gs_json = object_to_json(gs) # Can be written to a file or string via `json.dump` etc.\n", - "gs = object_from_json(\n", - " gs_json\n", - ") # Decoded back from JSON (can be loaded from file, string via `json.load` etc.)\n", - "gs" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "------" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3. Advanced considerations\n", - "\n", - "Below is a list of important \"gotchas\" of using generation strategy (especially outside of the higher-level APIs like the Service API or the `Scheduler`):\n", - "\n", - "### 3A. `GenerationStrategy.gen` produces `GeneratorRun`-s, not trials\n", - "\n", - "Since `GenerationStrategy.gen` mimics `Adapter.gen` and allows for human-in-the-loop usage mode, a call to `gen` produces a `GeneratorRun`, which can then be added (or altered before addition or not added at all) to a `Trial` or `BatchTrial` on a given experiment. So it's important to add the generator run to a trial, since otherwise it will not be attached to the experiment on its own." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "generator_run = gs.gen(\n", - " experiment=experiment,\n", - " n=1,\n", - " pending_observations=get_pending_observation_features(experiment),\n", - ")\n", - "experiment.new_trial(generator_run)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 3B. `model_kwargs` elements that do not define serialization logic in Ax" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note that passing objects that are not yet serializable in Ax (e.g. a BoTorch `Prior` object) as part of `GenerationStep.model_kwargs` or `GenerationStep.model_gen_kwargs` will prevent correct generation strategy storage. If this becomes a problem, feel free to open an issue on our Github: https://github.com/facebook/Ax/issues to get help with adding storage support for a given object." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 3C. Why prefer `Generators` enum entries over a factory function?" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "1. **Storage potential:** a call to, for example, `Generators.GPEI` captures all arguments to the model and model bridge and stores them on a generator runs, subsequently produced by the model. Since the capturing logic is part of `Generators.__call__` function, it is not present in a factory function. Furthermore, there is no safe and flexible way to serialize callables in Python.\n", - "2. **Standardization:** While a 'factory function' is by default more flexible (accepts any specified inputs and produces a `Adapter` with an underlying `Generator` instance based on them), it is not standard in terms of its inputs. `Generators` introduces a standardized interface, making it easy to adapt any example to one's specific case." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 3D. How can I request more modeling setups added to `Generators` and natively supported in Ax?" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Please open a [Github issue](https://github.com/facebook/Ax/issues) to request a new modeling setup in Ax (or for any other questions or requests)." - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.4" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/tutorials/gpei_hartmann_developer/gpei_hartmann_developer.ipynb b/tutorials/gpei_hartmann_developer/gpei_hartmann_developer.ipynb deleted file mode 100644 index a203031c757..00000000000 --- a/tutorials/gpei_hartmann_developer/gpei_hartmann_developer.ipynb +++ /dev/null @@ -1,696 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "08064d6a-453e-44d7-85dc-896d40b6303a", - "showInput": true - }, - "source": [ - "# Developer API Example on Hartmann6\n", - "\n", - "The Developer API is suitable when the user wants maximal customization of the optimization loop. This tutorial demonstrates optimization of a Hartmann6 function using the `Experiment` construct. In this example, trials will be evaluated synchronously." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import sys\n", - "in_colab = 'google.colab' in sys.modules\n", - "if in_colab:\n", - " %pip install ax-platform" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "executionStartTime": 1646323252842, - "executionStopTime": 1646323256492, - "hidden_ranges": [], - "originalKey": "7b98b243-30da-468b-82c7-7e22dbce6b57", - "requestMsgId": "7b98b243-30da-468b-82c7-7e22dbce6b57" - }, - "outputs": [], - "source": [ - "from ax import (\n", - " ChoiceParameter,\n", - " ComparisonOp,\n", - " Experiment,\n", - " FixedParameter,\n", - " Metric,\n", - " Objective,\n", - " OptimizationConfig,\n", - " OrderConstraint,\n", - " OutcomeConstraint,\n", - " ParameterType,\n", - " RangeParameter,\n", - " SearchSpace,\n", - " SumConstraint,\n", - ")\n", - "from ax.modelbridge.registry import Generators\n", - "from ax.utils.notebook.plotting import init_notebook_plotting, render\n", - "import plotly.io as pio\n", - "\n", - "init_notebook_plotting()\n", - "if in_colab:\n", - " pio.renderers.default = \"colab\"" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "f522bb04-8372-4647-8c90-cffb8a664be3", - "showInput": true - }, - "source": [ - "## 1. Create Search Space\n", - "\n", - "First, we define a search space, which defines the type and allowed range for the parameters." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "executionStartTime": 1646323256533, - "executionStopTime": 1646323256546, - "originalKey": "9b782d53-f9e2-4b13-a8ba-b7941aba802e", - "requestMsgId": "9b782d53-f9e2-4b13-a8ba-b7941aba802e" - }, - "outputs": [], - "source": [ - "from ax.metrics.l2norm import L2NormMetric\n", - "from ax.metrics.hartmann6 import Hartmann6Metric\n", - "\n", - "\n", - "hartmann_search_space = SearchSpace(\n", - " parameters=[\n", - " RangeParameter(\n", - " name=f\"x{i}\", parameter_type=ParameterType.FLOAT, lower=0.0, upper=1.0\n", - " )\n", - " for i in range(6)\n", - " ]\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "9e0c312c-e290-4e7b-bf9c-45bd5c360c25", - "showInput": false - }, - "source": [ - "Note that there are two other parameter classes, FixedParameter and ChoiceParameter. Although we won't use these in this example, you can create them as follows.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "customInput": null, - "executionStartTime": 1646323256562, - "executionStopTime": 1646323256584, - "hidden_ranges": [], - "originalKey": "e29cbb8f-9045-4d9c-8a57-aeff1cd91da6", - "requestMsgId": "e29cbb8f-9045-4d9c-8a57-aeff1cd91da6", - "showInput": true - }, - "outputs": [], - "source": [ - "choice_param = ChoiceParameter(\n", - " name=\"choice\", values=[\"foo\", \"bar\"], parameter_type=ParameterType.STRING\n", - ")\n", - "fixed_param = FixedParameter(\n", - " name=\"fixed\", value=[True], parameter_type=ParameterType.BOOL\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "75b46af0-9739-46a6-9b95-21c8e2e9e22a", - "showInput": false - }, - "source": [ - "Sum constraints enforce that the sum of a set of parameters is greater or less than some bound, and order constraints enforce that one parameter is smaller than the other. We won't use these either, but see two examples below.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "customInput": null, - "executionStartTime": 1646323256616, - "executionStopTime": 1646323256621, - "hidden_ranges": [], - "originalKey": "b782e8cf-c11c-4f4e-a416-2577a56b4100", - "requestMsgId": "b782e8cf-c11c-4f4e-a416-2577a56b4100", - "showInput": true - }, - "outputs": [], - "source": [ - "sum_constraint = SumConstraint(\n", - " parameters=[\n", - " hartmann_search_space.parameters[\"x0\"],\n", - " hartmann_search_space.parameters[\"x1\"],\n", - " ],\n", - " is_upper_bound=True,\n", - " bound=5.0,\n", - ")\n", - "\n", - "order_constraint = OrderConstraint(\n", - " lower_parameter=hartmann_search_space.parameters[\"x0\"],\n", - " upper_parameter=hartmann_search_space.parameters[\"x1\"],\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "7bf887e2-2b02-4237-ba5e-6fa8beaa85fb", - "showInput": false - }, - "source": [ - "## 2. Create Optimization Config\n", - "\n", - "Second, we define the `optimization_config` with an `objective` and `outcome_constraints`.\n", - "\n", - "When doing the optimization, we will find points that minimize the objective while obeying the constraints (which in this case means `l2norm < 1.25`).\n", - "\n", - "Note: we are using `Hartmann6Metric` and `L2NormMetric` here, which have built in evaluation functions for testing. For creating your own cutom metrics, see [8. Defining custom metrics](/docs/tutorials/gpei_hartmann_developer/#8-defining-custom-metrics)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "executionStartTime": 1646323256629, - "executionStopTime": 1646323256633, - "hidden_ranges": [], - "originalKey": "d0e2b580-bfb5-4a73-8db1-34a3c43c3ef2", - "requestMsgId": "d0e2b580-bfb5-4a73-8db1-34a3c43c3ef2" - }, - "outputs": [], - "source": [ - "param_names = [f\"x{i}\" for i in range(6)]\n", - "optimization_config = OptimizationConfig(\n", - " objective=Objective(\n", - " metric=Hartmann6Metric(name=\"hartmann6\", param_names=param_names),\n", - " minimize=True,\n", - " ),\n", - " outcome_constraints=[\n", - " OutcomeConstraint(\n", - " metric=L2NormMetric(name=\"l2norm\", param_names=param_names, noise_sd=0.2),\n", - " op=ComparisonOp.LEQ,\n", - " bound=1.25,\n", - " relative=False,\n", - " )\n", - " ],\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "customInput": null, - "hidden_ranges": [], - "originalKey": "ed80a5e4-4786-4961-979e-22a295bfa7f0", - "showInput": false - }, - "source": [ - "## 3. Define a Runner\n", - "Before an experiment can collect data, it must have a Runner attached. A runner handles the deployment of trials. A trial must be \"run\" before it can be evaluated.\n", - "\n", - "Here, we have a dummy runner that does nothing. In practice, a runner might be in charge of pushing an experiment to production.\n", - "\n", - "The only method that needs to be defined for runner subclasses is run, which performs any necessary deployment logic, and returns a dictionary of resulting metadata. This metadata can later be accessed through the trial's `run_metadata` property." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "customInput": null, - "executionStartTime": 1646323256641, - "executionStopTime": 1646323256645, - "hidden_ranges": [], - "originalKey": "c9862804-4c0c-4691-be2c-5cb0eb778460", - "requestMsgId": "c9862804-4c0c-4691-be2c-5cb0eb778460", - "showInput": true - }, - "outputs": [], - "source": [ - "from ax import Runner\n", - "\n", - "\n", - "class MyRunner(Runner):\n", - " def run(self, trial):\n", - " trial_metadata = {\"name\": str(trial.index)}\n", - " return trial_metadata" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "customInput": null, - "hidden_ranges": [], - "originalKey": "131ab2a9-e2c7-4752-99a3-547c7dbe42ec", - "showInput": false - }, - "source": [ - "## 4. Create Experiment\n", - "Next, we make an `Experiment` with our search space, runner, and optimization config." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "customInput": null, - "executionStartTime": 1646323256653, - "executionStopTime": 1646323256658, - "hidden_ranges": [], - "originalKey": "18ce7d69-d556-48f5-9945-c75bedb362bb", - "requestMsgId": "18ce7d69-d556-48f5-9945-c75bedb362bb", - "showInput": true - }, - "outputs": [], - "source": [ - "exp = Experiment(\n", - " name=\"test_hartmann\",\n", - " search_space=hartmann_search_space,\n", - " optimization_config=optimization_config,\n", - " runner=MyRunner(),\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "8a04eba9-97f2-45f7-8b10-7216fe9c0101", - "showInput": true - }, - "source": [ - "## 5. Perform Optimization\n", - "\n", - "Run the optimization using the settings defined on the experiment. We will create 5 random sobol points for exploration followed by 15 points generated using the GPEI optimizer.\n", - "\n", - "Instead of a member of the `Generators` enum to produce generator runs, users can leverage a `GenerationStrategy`. See the [Generation Strategy Tutorial](https://ax.dev/docs/tutorials/generation_strategy) for more info." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "executionStartTime": 1646323256665, - "executionStopTime": 1646323714923, - "hidden_ranges": [], - "originalKey": "b48e26da-57e7-4b81-baf0-122a71f0bb72", - "requestMsgId": "b48e26da-57e7-4b81-baf0-122a71f0bb72" - }, - "outputs": [], - "source": [ - "from ax.modelbridge.registry import Generators\n", - "\n", - "NUM_SOBOL_TRIALS = 5\n", - "NUM_BOTORCH_TRIALS = 15\n", - "\n", - "print(f\"Running Sobol initialization trials...\")\n", - "sobol = Generators.SOBOL(search_space=exp.search_space)\n", - "\n", - "for i in range(NUM_SOBOL_TRIALS):\n", - " # Produce a GeneratorRun from the model, which contains proposed arm(s) and other metadata\n", - " generator_run = sobol.gen(n=1)\n", - " # Add generator run to a trial to make it part of the experiment and evaluate arm(s) in it\n", - " trial = exp.new_trial(generator_run=generator_run)\n", - " # Start trial run to evaluate arm(s) in the trial\n", - " trial.run()\n", - " # Mark trial as completed to record when a trial run is completed\n", - " # and enable fetching of data for metrics on the experiment\n", - " # (by default, trials must be completed before metrics can fetch their data,\n", - " # unless a metric is explicitly configured otherwise)\n", - " trial.mark_completed()\n", - "\n", - "for i in range(NUM_BOTORCH_TRIALS):\n", - " print(\n", - " f\"Running BO trial {i + NUM_SOBOL_TRIALS + 1}/{NUM_SOBOL_TRIALS + NUM_BOTORCH_TRIALS}...\"\n", - " )\n", - " # Reinitialize GP+EI model at each step with updated data.\n", - " gpei = Generators.BOTORCH_MODULAR(experiment=exp, data=exp.fetch_data())\n", - " generator_run = gpei.gen(n=1)\n", - " trial = exp.new_trial(generator_run=generator_run)\n", - " trial.run()\n", - " trial.mark_completed()\n", - "\n", - "print(\"Done!\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "f503e648-e3f2-419f-a60e-5bfcbc6775bd", - "showInput": true - }, - "source": [ - "## 6. Inspect trials' data\n", - "\n", - "Now we can inspect the `Experiment`'s data by calling `fetch_data()`, which retrieves evaluation data for all trials of the experiment.\n", - "\n", - "To fetch trial data, we need to run it and mark it completed. For most metrics in Ax, data is only available once the status of the trial is `COMPLETED`, since in real-worlds scenarios, metrics can typically only be fetched after the trial finished running.\n", - "\n", - "NOTE: Metrics classes may implement the `is_available_while_running` method. When this method returns `True`, data is available when trials are either `RUNNING` or `COMPLETED`. This can be used to obtain intermediate results from A/B test trials and other online experiments, or when metric values are available immediately, like in the case of synthetic problem metrics.\n", - "The below call to `exp.fetch_data()` also attaches data to the last trial, which because of the way we looped through Botorch trials in [5. Perform Optimization](/docs/tutorials/gpei_hartmann_developer/#5-perform-optimization), would otherwise not have data attached. This is necessary to get `objective_means` in [7. Plot results](/docs/tutorials/gpei_hartmann_developer/#7-plot-results)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "customInput": null, - "executionStartTime": 1646323715232, - "executionStopTime": 1646323715950, - "hidden_ranges": [], - "originalKey": "88fb1408-0965-48f9-a211-140ea57f46a6", - "requestMsgId": "88fb1408-0965-48f9-a211-140ea57f46a6", - "showInput": true - }, - "outputs": [], - "source": [ - "exp.fetch_data().df" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "940865f9-af61-4668-aea0-b19ed5c5497d", - "showInput": false - }, - "source": [ - "## 7. Plot results\n", - "Now we can plot the results of our optimization:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "executionStartTime": 1646323715983, - "executionStopTime": 1646323716634, - "hidden_ranges": [], - "originalKey": "5a4d2c4d-756a-492a-8938-d080a499b66c", - "requestMsgId": "5a4d2c4d-756a-492a-8938-d080a499b66c" - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "from ax.plot.trace import optimization_trace_single_method\n", - "\n", - "# `plot_single_method` expects a 2-d array of means, because it expects to average means from multiple\n", - "# optimization runs, so we wrap out best objectives array in another array.\n", - "objective_means = np.array([[trial.objective_mean for trial in exp.trials.values()]])\n", - "best_objective_plot = optimization_trace_single_method(\n", - " y=np.minimum.accumulate(objective_means, axis=1),\n", - " optimum=-3.32237, # Known minimum objective for Hartmann6 function.\n", - ")\n", - "render(best_objective_plot)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "customInput": null, - "hidden_ranges": [], - "originalKey": "934db3fd-1dce-421b-8228-820025f3821a", - "showInput": true - }, - "source": [ - "## 8. Defining custom metrics\n", - "In order to perform an optimization, we also need to define an optimization config for the experiment. An optimization config is composed of an objective metric to be minimized or maximized in the experiment, and optionally a set of outcome constraints that place restrictions on how other metrics can be moved by the experiment.\n", - "\n", - "In order to define an objective or outcome constraint, we first need to subclass Metric. Metrics are used to evaluate trials, which are individual steps of the experiment sequence. Each trial contains one or more arms for which we will collect data at the same time.\n", - "\n", - "Our custom metric(s) will determine how, given a trial, to compute the mean and SEM of each of the trial's arms.\n", - "\n", - "The only method that needs to be defined for most metric subclasses is `fetch_trial_data`, which defines how a single trial is evaluated, and returns a pandas dataframe.\n", - " \n", - "The `is_available_while_running` method is optional and returns a boolean, specifying whether the trial data can be fetched before the trial is complete. See [6. Inspect trials' data](/docs/tutorials/gpei_hartmann_developer/#6-inspect-trials-data) for more details." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "customInput": null, - "executionStartTime": 1646323716638, - "executionStopTime": 1646323716697, - "hidden_ranges": [], - "originalKey": "7ec75ae4-1d7f-4ff4-8d9d-b77fdf28ccfe", - "requestMsgId": "7ec75ae4-1d7f-4ff4-8d9d-b77fdf28ccfe", - "showInput": true - }, - "outputs": [], - "source": [ - "from ax import Data\n", - "import pandas as pd\n", - "\n", - "\n", - "class BoothMetric(Metric):\n", - " def fetch_trial_data(self, trial):\n", - " records = []\n", - " for arm_name, arm in trial.arms_by_name.items():\n", - " params = arm.parameters\n", - " records.append(\n", - " {\n", - " \"arm_name\": arm_name,\n", - " \"metric_name\": self.name,\n", - " \"trial_index\": trial.index,\n", - " # in practice, the mean and sem will be looked up based on trial metadata\n", - " # but for this tutorial we will calculate them\n", - " \"mean\": (params[\"x1\"] + 2 * params[\"x2\"] - 7) ** 2\n", - " + (2 * params[\"x1\"] + params[\"x2\"] - 5) ** 2,\n", - " \"sem\": 0.0,\n", - " }\n", - " )\n", - " return Data(df=pd.DataFrame.from_records(records))\n", - "\n", - " def is_available_while_running(self) -> bool:\n", - " return True" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "customInput": null, - "hidden_ranges": [], - "originalKey": "92fcddf9-9d86-45cd-b9fb-a0a7acdb267d", - "showInput": false - }, - "source": [ - "## 9. Save to JSON or SQL\n", - "At any point, we can also save our experiment to a JSON file. To ensure that our custom metrics and runner are saved properly, we first need to register them." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "customInput": null, - "executionStartTime": 1646324682655, - "executionStopTime": 1646324682796, - "hidden_ranges": [], - "originalKey": "f57e11d7-cc68-4323-a0cd-ff6f464dcd97", - "requestMsgId": "f57e11d7-cc68-4323-a0cd-ff6f464dcd97", - "showInput": true - }, - "outputs": [], - "source": [ - "from ax.storage.registry_bundle import RegistryBundle\n", - "\n", - "bundle = RegistryBundle(\n", - " metric_clss={BoothMetric: None, L2NormMetric: None, Hartmann6Metric: None},\n", - " runner_clss={MyRunner: None},\n", - ")\n", - "\n", - "from ax.storage.json_store.load import load_experiment\n", - "from ax.storage.json_store.save import save_experiment\n", - "\n", - "save_experiment(exp, \"experiment.json\", encoder_registry=bundle.encoder_registry)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "customInput": null, - "executionStartTime": 1646324718153, - "executionStopTime": 1646324720104, - "hidden_ranges": [], - "originalKey": "e19ec7fb-f266-417e-ad17-5662a53a9ae3", - "requestMsgId": "e19ec7fb-f266-417e-ad17-5662a53a9ae3", - "showInput": true - }, - "outputs": [], - "source": [ - "loaded_experiment = load_experiment(\n", - " \"experiment.json\", decoder_registry=bundle.decoder_registry\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "dc1f6800-437e-45de-85d3-276ae5f8ca99", - "showInput": false - }, - "source": [ - "To save our experiment to SQL, we must first specify a connection to a database and create all necessary tables.\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "customInput": null, - "executionStartTime": 1646324834810, - "executionStopTime": 1646324835293, - "hidden_ranges": [], - "originalKey": "a0376ade-9a26-430b-b08b-0b93e890539c", - "requestMsgId": "a0376ade-9a26-430b-b08b-0b93e890539c", - "showInput": true - }, - "outputs": [], - "source": [ - "from ax.storage.sqa_store.db import (\n", - " init_engine_and_session_factory,\n", - " get_engine,\n", - " create_all_tables,\n", - ")\n", - "from ax.storage.sqa_store.load import load_experiment\n", - "from ax.storage.sqa_store.save import save_experiment\n", - "\n", - "init_engine_and_session_factory(url=\"sqlite:///foo3.db\")\n", - "\n", - "engine = get_engine()\n", - "create_all_tables(engine)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "customInput": null, - "executionStartTime": 1646324891053, - "executionStopTime": 1646324897271, - "hidden_ranges": [], - "originalKey": "82f58ead-8f0d-44cf-9fa8-dd67f7c8c8df", - "requestMsgId": "82f58ead-8f0d-44cf-9fa8-dd67f7c8c8df", - "showInput": true - }, - "outputs": [], - "source": [ - "from ax.storage.sqa_store.sqa_config import SQAConfig\n", - "\n", - "exp.name = \"new\"\n", - "\n", - "sqa_config = SQAConfig(\n", - " json_encoder_registry=bundle.encoder_registry,\n", - " json_decoder_registry=bundle.decoder_registry,\n", - " metric_registry=bundle.metric_registry,\n", - " runner_registry=bundle.runner_registry,\n", - ")\n", - "\n", - "save_experiment(exp, config=sqa_config)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "customInput": null, - "executionStartTime": 1646324904964, - "executionStopTime": 1646324906901, - "hidden_ranges": [], - "originalKey": "ed1be69c-da92-4a1d-a5e8-e76bba42f0ba", - "requestMsgId": "ed1be69c-da92-4a1d-a5e8-e76bba42f0ba", - "showInput": true - }, - "outputs": [], - "source": [ - "load_experiment(exp.name, config=sqa_config)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "originalKey": "d144e372-c212-4454-b507-564c825c1fc5", - "showInput": true - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.16" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/tutorials/gpei_hartmann_loop/gpei_hartmann_loop.ipynb b/tutorials/gpei_hartmann_loop/gpei_hartmann_loop.ipynb deleted file mode 100644 index 320df994853..00000000000 --- a/tutorials/gpei_hartmann_loop/gpei_hartmann_loop.ipynb +++ /dev/null @@ -1,251 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Loop API Example on Hartmann6\n", - "\n", - "The loop API is the most lightweight way to do optimization in Ax. The user makes one call to `optimize`, which performs all of the optimization under the hood and returns the optimized parameters.\n", - "\n", - "For more customizability of the optimization procedure, consider the Service or Developer API." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import sys\n", - "in_colab = 'google.colab' in sys.modules\n", - "if in_colab:\n", - " %pip install ax-platform" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "from ax.metrics.branin import branin\n", - "\n", - "from ax.plot.contour import plot_contour\n", - "from ax.plot.trace import optimization_trace_single_method\n", - "from ax.service.managed_loop import optimize\n", - "from ax.utils.measurement.synthetic_functions import hartmann6\n", - "from ax.utils.notebook.plotting import init_notebook_plotting, render\n", - "import plotly.io as pio\n", - "\n", - "init_notebook_plotting()\n", - "if in_colab:\n", - " pio.renderers.default = \"colab\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 1. Define evaluation function\n", - "\n", - "First, we define an evaluation function that is able to compute all the metrics needed for this experiment. This function needs to accept a set of parameter values and can also accept a weight. It should produce a dictionary of metric names to tuples of mean and standard error for those metrics." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def hartmann_evaluation_function(parameterization):\n", - " x = np.array([parameterization.get(f\"x{i+1}\") for i in range(6)])\n", - " # In our case, standard error is 0, since we are computing a synthetic function.\n", - " return {\"hartmann6\": (hartmann6(x), 0.0), \"l2norm\": (np.sqrt((x**2).sum()), 0.0)}" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If there is only one metric in the experiment – the objective – then evaluation function can return a single tuple of mean and SEM, in which case Ax will assume that evaluation corresponds to the objective. It can also return only the mean as a float, in which case Ax will treat SEM as unknown and use a model that can infer it. For more details on evaluation function, refer to the \"Trial Evaluation\" section in the docs." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 2. Run optimization\n", - "The setup for the loop is fully compatible with JSON. The optimization algorithm is selected based on the properties of the problem search space." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "best_parameters, values, experiment, model = optimize(\n", - " parameters=[\n", - " {\n", - " \"name\": \"x1\",\n", - " \"type\": \"range\",\n", - " \"bounds\": [0.0, 1.0],\n", - " \"value_type\": \"float\", # Optional, defaults to inference from type of \"bounds\".\n", - " \"log_scale\": False, # Optional, defaults to False.\n", - " },\n", - " {\n", - " \"name\": \"x2\",\n", - " \"type\": \"range\",\n", - " \"bounds\": [0.0, 1.0],\n", - " },\n", - " {\n", - " \"name\": \"x3\",\n", - " \"type\": \"range\",\n", - " \"bounds\": [0.0, 1.0],\n", - " },\n", - " {\n", - " \"name\": \"x4\",\n", - " \"type\": \"range\",\n", - " \"bounds\": [0.0, 1.0],\n", - " },\n", - " {\n", - " \"name\": \"x5\",\n", - " \"type\": \"range\",\n", - " \"bounds\": [0.0, 1.0],\n", - " },\n", - " {\n", - " \"name\": \"x6\",\n", - " \"type\": \"range\",\n", - " \"bounds\": [0.0, 1.0],\n", - " },\n", - " ],\n", - " experiment_name=\"test\",\n", - " objective_name=\"hartmann6\",\n", - " evaluation_function=hartmann_evaluation_function,\n", - " minimize=True, # Optional, defaults to False.\n", - " parameter_constraints=[\"x1 + x2 <= 20\"], # Optional.\n", - " outcome_constraints=[\"l2norm <= 1.25\"], # Optional.\n", - " total_trials=30, # Optional.\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "And we can introspect optimization results:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "best_parameters" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "means, covariances = values\n", - "means" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For comparison, minimum of Hartmann6 is:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "hartmann6.fmin" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3. Plot results\n", - "Here we arbitrarily select \"x1\" and \"x2\" as the two parameters to plot for both metrics, \"hartmann6\" and \"l2norm\"." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "render(plot_contour(model=model, param_x=\"x1\", param_y=\"x2\", metric_name=\"hartmann6\"))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "render(plot_contour(model=model, param_x=\"x1\", param_y=\"x2\", metric_name=\"l2norm\"))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We also plot optimization trace, which shows best hartmann6 objective value seen by each iteration of the optimization:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# `plot_single_method` expects a 2-d array of means, because it expects to average means from multiple\n", - "# optimization runs, so we wrap out best objectives array in another array.\n", - "best_objectives = np.array(\n", - " [[trial.objective_mean for trial in experiment.trials.values()]]\n", - ")\n", - "best_objective_plot = optimization_trace_single_method(\n", - " y=np.minimum.accumulate(best_objectives, axis=1),\n", - " optimum=hartmann6.fmin,\n", - " title=\"Model performance vs. # of iterations\",\n", - " ylabel=\"Hartmann6\",\n", - ")\n", - "render(best_objective_plot)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.5" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/tutorials/gpei_hartmann_service/gpei_hartmann_service.ipynb b/tutorials/gpei_hartmann_service/gpei_hartmann_service.ipynb deleted file mode 100644 index c56aa2e5542..00000000000 --- a/tutorials/gpei_hartmann_service/gpei_hartmann_service.ipynb +++ /dev/null @@ -1,540 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Service API Example on Hartmann6\n", - "\n", - "The Ax Service API is designed to allow the user to control scheduling of trials and data computation while having an easy to use interface with Ax.\n", - "\n", - "The user iteratively:\n", - "- Queries Ax for candidates\n", - "- Schedules / deploys them however they choose\n", - "- Computes data and logs to Ax\n", - "- Repeat" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import sys\n", - "in_colab = 'google.colab' in sys.modules\n", - "if in_colab:\n", - " %pip install ax-platform" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from ax.service.ax_client import AxClient, ObjectiveProperties\n", - "from ax.utils.measurement.synthetic_functions import hartmann6\n", - "from ax.utils.notebook.plotting import init_notebook_plotting, render\n", - "import plotly.io as pio\n", - "\n", - "init_notebook_plotting()\n", - "if in_colab:\n", - " pio.renderers.default = \"colab\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 1. Initialize client\n", - "\n", - "Create a client object to interface with Ax APIs. By default this runs locally without storage." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "ax_client = AxClient()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 2. Set up experiment\n", - "An experiment consists of a **search space** (parameters and parameter constraints) and **optimization configuration** (objectives and outcome constraints). Note that:\n", - "- Only `parameters`, and `objectives` arguments are required.\n", - "- Dictionaries in `parameters` have the following required keys: \"name\" - parameter name, \"type\" - parameter type (\"range\", \"choice\" or \"fixed\"), \"bounds\" for range parameters, \"values\" for choice parameters, and \"value\" for fixed parameters.\n", - "- Dictionaries in `parameters` can optionally include \"value_type\" (\"int\", \"float\", \"bool\" or \"str\"), \"log_scale\" flag for range parameters, and \"is_ordered\" flag for choice parameters.\n", - "- `parameter_constraints` should be a list of strings of form \"p1 >= p2\" or \"p1 + p2 <= some_bound\".\n", - "- `outcome_constraints` should be a list of strings of form \"constrained_metric <= some_bound\"." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "ax_client.create_experiment(\n", - " name=\"hartmann_test_experiment\",\n", - " parameters=[\n", - " {\n", - " \"name\": \"x1\",\n", - " \"type\": \"range\",\n", - " \"bounds\": [0.0, 1.0],\n", - " \"value_type\": \"float\", # Optional, defaults to inference from type of \"bounds\".\n", - " \"log_scale\": False, # Optional, defaults to False.\n", - " },\n", - " {\n", - " \"name\": \"x2\",\n", - " \"type\": \"range\",\n", - " \"bounds\": [0.0, 1.0],\n", - " },\n", - " {\n", - " \"name\": \"x3\",\n", - " \"type\": \"range\",\n", - " \"bounds\": [0.0, 1.0],\n", - " },\n", - " {\n", - " \"name\": \"x4\",\n", - " \"type\": \"range\",\n", - " \"bounds\": [0.0, 1.0],\n", - " },\n", - " {\n", - " \"name\": \"x5\",\n", - " \"type\": \"range\",\n", - " \"bounds\": [0.0, 1.0],\n", - " },\n", - " {\n", - " \"name\": \"x6\",\n", - " \"type\": \"range\",\n", - " \"bounds\": [0.0, 1.0],\n", - " },\n", - " ],\n", - " objectives={\"hartmann6\": ObjectiveProperties(minimize=True)},\n", - " parameter_constraints=[\"x1 + x2 <= 2.0\"], # Optional.\n", - " outcome_constraints=[\"l2norm <= 1.25\"], # Optional.\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 3. Define how to evaluate trials\n", - "When using Ax a service, evaluation of parameterizations suggested by Ax is done either locally or, more commonly, using an external scheduler. Below is a dummy evaluation function that outputs data for two metrics \"hartmann6\" and \"l2norm\". Note that all returned metrics correspond to either the `objectives` set on experiment creation or the metric names mentioned in `outcome_constraints`." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "\n", - "\n", - "def evaluate(parameterization):\n", - " x = np.array([parameterization.get(f\"x{i+1}\") for i in range(6)])\n", - " # In our case, standard error is 0, since we are computing a synthetic function.\n", - " return {\"hartmann6\": (hartmann6(x), 0.0), \"l2norm\": (np.sqrt((x**2).sum()), 0.0)}" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Result of the evaluation should generally be a mapping of the format: `{metric_name -> (mean, SEM)}`. If there is only one metric in the experiment – the objective – then evaluation function can return a single tuple of mean and SEM, in which case Ax will assume that evaluation corresponds to the objective. _It can also return only the mean as a float, in which case Ax will treat SEM as unknown and use a model that can infer it._ \n", - "\n", - "For more details on evaluation function, refer to the \"Trial Evaluation\" section in the Ax docs at [ax.dev](https://ax.dev/)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 4. Run optimization loop\n", - "With the experiment set up, we can start the optimization loop.\n", - "\n", - "At each step, the user queries the client for a new trial then submits the evaluation of that trial back to the client.\n", - "\n", - "Note that Ax auto-selects an appropriate optimization algorithm based on the search space. For more advance use cases that require a specific optimization algorithm, pass a `generation_strategy` argument into the `AxClient` constructor. Note that when Bayesian Optimization is used, generating new trials may take a few minutes." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "for i in range(25):\n", - " parameterization, trial_index = ax_client.get_next_trial()\n", - " # Local evaluation here can be replaced with deployment to external system.\n", - " ax_client.complete_trial(trial_index=trial_index, raw_data=evaluate(parameterization))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### How many trials can run in parallel?\n", - "By default, Ax restricts number of trials that can run in parallel for some optimization stages, in order to improve the optimization performance and reduce the number of trials that the optimization will require. To check the maximum parallelism for each optimization stage:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "ax_client.get_max_parallelism()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The output of this function is a list of tuples of form (number of trials, max parallelism), so the example above means \"the max parallelism is 12 for the first 12 trials and 3 for all subsequent trials.\" This is because the first 12 trials are produced quasi-randomly and can all be evaluated at once, and subsequent trials are produced via Bayesian optimization, which converges on optimal point in fewer trials when parallelism is limited. `MaxParallelismReachedException` indicates that the parallelism limit has been reached –– refer to the 'Service API Exceptions Meaning and Handling' section at the end of the tutorial for handling." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### How to view all existing trials during optimization?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "ax_client.generation_strategy.trials_as_df" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 5. Retrieve best parameters\n", - "\n", - "Once it's complete, we can access the best parameters found, as well as the corresponding metric values." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "best_parameters, values = ax_client.get_best_parameters()\n", - "best_parameters" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "means, covariances = values\n", - "means" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For comparison, Hartmann6 minimum:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "hartmann6.fmin" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 6. Plot the response surface and optimization trace\n", - "Here we arbitrarily select \"x1\" and \"x2\" as the two parameters to plot for both metrics, \"hartmann6\" and \"l2norm\"." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "render(ax_client.get_contour_plot())" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can also retrieve a contour plot for the other metric, \"l2norm\" –– say, we are interested in seeing the response surface for parameters \"x3\" and \"x4\" for this one." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "render(ax_client.get_contour_plot(param_x=\"x3\", param_y=\"x4\", metric_name=\"l2norm\"))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here we plot the optimization trace, showing the progression of finding the point with the optimal objective:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "render(\n", - " ax_client.get_optimization_trace(objective_optimum=hartmann6.fmin)\n", - ") # Objective_optimum is optional." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## 7. Save / reload optimization to JSON / SQL\n", - "We can serialize the state of optimization to JSON and save it to a `.json` file or save it to the SQL backend. For the former:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "ax_client.save_to_json_file() # For custom filepath, pass `filepath` argument." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "restored_ax_client = (\n", - " AxClient.load_from_json_file()\n", - ") # For custom filepath, pass `filepath` argument." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "To store state of optimization to an SQL backend, first follow [setup instructions](https://ax.dev/docs/storage.html#sql) on Ax website." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Having set up the SQL backend, pass `DBSettings` to `AxClient` on instantiation (note that `SQLAlchemy` dependency will have to be installed – for installation, refer to [optional dependencies](https://ax.dev/docs/installation.html#optional-dependencies) on Ax website):" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from ax.storage.sqa_store.structs import DBSettings\n", - "\n", - "# URL is of the form \"dialect+driver://username:password@host:port/database\".\n", - "db_settings = DBSettings(url=\"sqlite:///foo.db\")\n", - "# Instead of URL, can provide a `creator function`; can specify custom encoders/decoders if necessary.\n", - "new_ax = AxClient(db_settings=db_settings)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "When valid `DBSettings` are passed into `AxClient`, a unique experiment name is a required argument (`name`) to `ax_client.create_experiment`. The **state of the optimization is auto-saved** any time it changes (i.e. a new trial is added or completed, etc). \n", - "\n", - "To reload an optimization state later, instantiate `AxClient` with the same `DBSettings` and use `ax_client.load_experiment_from_database(experiment_name=\"my_experiment\")`." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Special Cases" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Evaluation failure**: should any optimization iterations fail during evaluation, `log_trial_failure` will ensure that the same trial is not proposed again." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "_, trial_index = ax_client.get_next_trial()\n", - "ax_client.log_trial_failure(trial_index=trial_index)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Adding custom trials**: should there be need to evaluate a specific parameterization, `attach_trial` will add it to the experiment." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "ax_client.attach_trial(\n", - " parameters={\"x1\": 0.9, \"x2\": 0.9, \"x3\": 0.9, \"x4\": 0.9, \"x5\": 0.9, \"x6\": 0.9}\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Need to run many trials in parallel**: for optimal results and optimization efficiency, we strongly recommend sequential optimization (generating a few trials, then waiting for them to be completed with evaluation data). However, if your use case needs to dispatch many trials in parallel before they are updated with data and you are running into the *\"All trials for current model have been generated, but not enough data has been observed to fit next model\"* error, instantiate `AxClient` as `AxClient(enforce_sequential_optimization=False)`." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Nonlinear parameter constraints and/or constraints on non-Range parameters:** Ax parameter constraints can currently only support linear inequalities ([discussion](https://github.com/facebook/Ax/issues/153)). Users may be able to simulate this functionality, however, by substituting the following `evaluate` function for that defined in section 3 above." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def evaluate(parameterization):\n", - " x = np.array([parameterization.get(f\"x{i+1}\") for i in range(6)])\n", - " # First calculate the nonlinear quantity to be constrained.\n", - " l2norm = np.sqrt((x**2).sum())\n", - " # Then define a constraint consistent with an outcome constraint on this experiment.\n", - " if l2norm > 1.25:\n", - " return {\"l2norm\": (l2norm, 0.0)}\n", - " return {\"hartmann6\": (hartmann6(x), 0.0), \"l2norm\": (l2norm, 0.0)}" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For this to work, the constraint quantity (`l2norm` in this case) should have a corresponding outcome constraint on the experiment. See the outcome_constraint arg to ax_client.create_experiment in section 2 above for how to specify outcome constraints.\n", - "\n", - "This setup accomplishes the following:\n", - "1. Allows computation of an arbitrarily complex constraint value.\n", - "2. Skips objective computation when the constraint is violated, useful when the objective is relatively expensive to compute.\n", - "3. Constraint metric values are returned even when there is a violation. This helps the model understand + avoid constraint violations." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Service API Exceptions Meaning and Handling\n", - "[**`DataRequiredError`**](https://ax.dev/api/exceptions.html#ax.exceptions.core.DataRequiredError): Ax generation strategy needs to be updated with more data to proceed to the next optimization model. When the optimization moves from initialization stage to the Bayesian optimization stage, the underlying BayesOpt model needs sufficient data to train. For optimal results and optimization efficiency (finding the optimal point in the least number of trials), we recommend sequential optimization (generating a few trials, then waiting for them to be completed with evaluation data). Therefore, the correct way to handle this exception is to wait until more trial evaluations complete and log their data via `ax_client.complete_trial(...)`. \n", - "\n", - "However, if there is strong need to generate more trials before more data is available, instantiate `AxClient` as `AxClient(enforce_sequential_optimization=False)`. With this setting, as many trials will be generated from the initialization stage as requested, and the optimization will move to the BayesOpt stage whenever enough trials are completed." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "[**`MaxParallelismReachedException`**](https://ax.dev/api/modelbridge.html#ax.modelbridge.generation_strategy.MaxParallelismReachedException): generation strategy restricts the number of trials that can be ran simultaneously (to encourage sequential optimization), and the parallelism limit has been reached. The correct way to handle this exception is the same as `DataRequiredError` – to wait until more trial evluations complete and log their data via `ax_client.complete_trial(...)`.\n", - " \n", - "In some cases higher parallelism is important, so `enforce_sequential_optimization=False` kwarg to AxClient allows to suppress limiting of parallelism. It's also possible to override the default parallelism setting for all stages of the optimization by passing `choose_generation_strategy_kwargs` to `ax_client.create_experiment`:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "ax_client = AxClient()\n", - "ax_client.create_experiment(\n", - " parameters=[\n", - " {\"name\": \"x\", \"type\": \"range\", \"bounds\": [-5.0, 10.0]},\n", - " {\"name\": \"y\", \"type\": \"range\", \"bounds\": [0.0, 15.0]},\n", - " ],\n", - " # Sets max parallelism to 10 for all steps of the generation strategy.\n", - " choose_generation_strategy_kwargs={\"max_parallelism_override\": 10},\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "ax_client.get_max_parallelism() # Max parallelism is now 10 for all stages of the optimization." - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.5" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/tutorials/gss/gss.ipynb b/tutorials/gss/gss.ipynb deleted file mode 100644 index 3fcc7260d31..00000000000 --- a/tutorials/gss/gss.ipynb +++ /dev/null @@ -1,558 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "06e172a0-2da3-4c90-93c2-be01bf4f6d45", - "showInput": false - }, - "source": [ - "This tutorial illustrates use of a Global Stopping Strategy (GSS) in combination with the Service API. For background on the Service API, see the Service API Tutorial: https://ax.dev/tutorials/gpei_hartmann_service.html GSS is also supported in the Scheduler API, where it can be provided as part of `SchedulerOptions`. For more on `Scheduler`, see the Scheduler tutorial: https://ax.dev/tutorials/scheduler.html\n", - "\n", - "Global Stopping stops an optimization loop when some data-based criteria are met which suggest that future trials will not be very helpful. For example, we might stop when there has been very little improvement in the last five trials. This is as opposed to trial-level early stopping, which monitors the results of expensive evaluations and terminates those that are unlikely to produce promising results, freeing resources to explore more promising configurations. For more on trial-level early stopping, see the tutorial: https://ax.dev/tutorials/early_stopping/early_stopping.html" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import sys\n", - "in_colab = 'google.colab' in sys.modules\n", - "if in_colab:\n", - " %pip install ax-platform" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "customOutput": null, - "executionStartTime": 1683829335587, - "executionStopTime": 1683829339370, - "originalKey": "00a04d2c-d990-41c1-9eef-bbb05fba000d", - "requestMsgId": "1c560539-1c7d-4c7a-ae55-e87c3b601859" - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "\n", - "from ax.service.ax_client import AxClient, ObjectiveProperties\n", - "from ax.utils.measurement.synthetic_functions import Branin, branin\n", - "from ax.utils.notebook.plotting import init_notebook_plotting, render\n", - "import plotly.io as pio\n", - "\n", - "init_notebook_plotting()\n", - "if in_colab:\n", - " pio.renderers.default = \"colab\"" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "8688d729-b402-4a4c-b796-94fdcf5e022c", - "showInput": false - }, - "source": [ - "# 1. What happens without global stopping? Optimization can run for too long.\n", - "This example uses the Branin test problem. We run 25 trials, which turns out to be far more than needed, because we get close to the optimum quite quickly." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1683829339516, - "executionStopTime": 1683829339531, - "originalKey": "320a952b-9e78-43e1-a55b-76a355e90f83", - "requestMsgId": "14e3a517-c7d0-4300-92d9-57ceb5afca34", - "showInput": true - }, - "outputs": [], - "source": [ - "def evaluate(parameters):\n", - " x = np.array([parameters.get(f\"x{i+1}\") for i in range(2)])\n", - " return {\"branin\": (branin(x), 0.0)}" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1683829339659, - "executionStopTime": 1683829339668, - "originalKey": "5740fbc2-97d6-465b-b01c-61e6c34c0220", - "requestMsgId": "ff819cc9-ff17-4763-a857-83662b01e955", - "showInput": true - }, - "outputs": [], - "source": [ - "params = [\n", - " {\n", - " \"name\": f\"x{i + 1}\",\n", - " \"type\": \"range\",\n", - " \"bounds\": [*Branin._domain[i]],\n", - " \"value_type\": \"float\",\n", - " \"log_scale\": False,\n", - " }\n", - "\n", - " for i in range(2)\n", - "]" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1683829339782, - "executionStopTime": 1683829339834, - "originalKey": "65667172-14df-437b-bdd0-5a59580e4054", - "requestMsgId": "e0bc2847-17a5-43d7-bf49-ed97c90f1d50", - "showInput": true - }, - "outputs": [], - "source": [ - "ax_client = AxClient(random_seed=0, verbose_logging=False)\n", - "\n", - "ax_client.create_experiment(\n", - " name=\"branin_test_experiment\",\n", - " parameters=params,\n", - " objectives={\"branin\": ObjectiveProperties(minimize=True)},\n", - " is_test=True,\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1683829339928, - "executionStopTime": 1683829356006, - "originalKey": "1f208de3-5189-4847-a779-940795977845", - "requestMsgId": "95f327f2-327f-4284-93ae-3053c9b6ec45", - "showInput": true - }, - "outputs": [], - "source": [ - "%%time\n", - "for i in range(25):\n", - " parameters, trial_index = ax_client.get_next_trial()\n", - " # Local evaluation here can be replaced with deployment to external system.\n", - " ax_client.complete_trial(\n", - " trial_index=trial_index, raw_data=evaluate(parameters)\n", - " )" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1683829356136, - "executionStopTime": 1683829356616, - "originalKey": "a369aafa-8ee4-4c02-bea6-673271da81ab", - "requestMsgId": "b601e1e9-fd2d-4faf-a369-04e5c4a9f8cb", - "showInput": true - }, - "outputs": [], - "source": [ - "render(ax_client.get_optimization_trace())" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "ca391462-4695-44f1-bc53-070a947c5648", - "showInput": false - }, - "source": [ - "# 2. Optimization with global stopping, with the Service API" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "5a2690ef-0990-4cbd-9bc9-529b1455a4c3", - "showInput": false - }, - "source": [ - "Rather than running a fixed number of trials, we can use a GlobalStoppingStrategy (GSS), which checks whether some stopping criteria have been met when `get_next_trial` is called. Here, we use an `ImprovementGlobalStoppingStrategy`, which checks whether the the last `window_size` trials have improved by more than some threshold amount.\n", - "\n", - "For single-objective optimization, which we are doing here, `ImprovementGlobalStoppingStrategy` checks if an improvement is \"significant\" by comparing it to the inter-quartile range (IQR) of the objective values attained so far. \n", - "\n", - "`ImprovementGlobalStoppingStrategy` also supports multi-objective optimization (MOO), in which case it checks whether the percentage improvement in hypervolume over the last `window_size` trials exceeds `improvement_bar`." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1683829356716, - "executionStopTime": 1683829356725, - "originalKey": "a6634232-448a-4b84-98cd-399c755537df", - "requestMsgId": "7e428336-eeeb-4e5b-91c4-fcf5a671773d", - "showInput": true - }, - "outputs": [], - "source": [ - "from ax.global_stopping.strategies.improvement import ImprovementGlobalStoppingStrategy\n", - "from ax.exceptions.core import OptimizationShouldStop" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1683829356822, - "executionStopTime": 1683829356829, - "originalKey": "c313de63-03ee-4a65-aa5c-5e7b6f436480", - "requestMsgId": "953b064b-8db6-430f-909d-872469bc1e16", - "showInput": true - }, - "outputs": [], - "source": [ - "# Start considering stopping only after the 5 initialization trials + 5 GPEI trials.\n", - "# Stop if the improvement in the best point in the past 5 trials is less than\n", - "# 1% of the IQR thus far.\n", - "stopping_strategy = ImprovementGlobalStoppingStrategy(\n", - " min_trials=5 + 5, window_size=5, improvement_bar=0.01\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1683829356961, - "executionStopTime": 1683829356997, - "originalKey": "a2c6c699-f0d2-4001-9bee-3964594e435c", - "requestMsgId": "2ba6f82b-1443-4274-83d1-03c56f0190d0", - "showInput": true - }, - "outputs": [], - "source": [ - "ax_client_gss = AxClient(\n", - " global_stopping_strategy=stopping_strategy, random_seed=0, verbose_logging=False\n", - ")\n", - "\n", - "ax_client_gss.create_experiment(\n", - " name=\"branin_test_experiment\",\n", - " parameters=params,\n", - " objectives={\"branin\": ObjectiveProperties(minimize=True)},\n", - " is_test=True,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "7ff170a1-e885-429f-9695-8b64b5b8e209", - "showInput": false - }, - "source": [ - "If there has not been much improvement, `ImprovementGlobalStoppingStrategy` will raise an exception. If the exception is raised, we catch it and terminate optimization." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1683829357114, - "executionStopTime": 1683829363866, - "originalKey": "3db097cb-1e6e-4320-806a-981dcef6bade", - "requestMsgId": "fd039109-2a23-4287-8935-b74274405e56", - "showInput": true - }, - "outputs": [], - "source": [ - "for i in range(25):\n", - " try:\n", - " parameters, trial_index = ax_client_gss.get_next_trial()\n", - " except OptimizationShouldStop as exc:\n", - " print(exc.message)\n", - " break\n", - " ax_client_gss.complete_trial(trial_index=trial_index, raw_data=evaluate(parameters))" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1683829363988, - "executionStopTime": 1683829364103, - "originalKey": "ffb53ed2-8775-492d-a357-348957637454", - "requestMsgId": "f0f765dd-85db-4519-90d0-064a1bf64b6d", - "showInput": true - }, - "outputs": [], - "source": [ - "render(ax_client_gss.get_optimization_trace())" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "b01707f3-0bbf-4003-9222-29ba5e3c77b2", - "showInput": false - }, - "source": [ - "# 3. Write your own custom Global Stopping Strategy" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "23b8372b-0067-4934-b599-210b994e06f1", - "showInput": false - }, - "source": [ - "You can write a custom Global Stopping Strategy by subclassing `BaseGlobalStoppingStrategy` and use it where `ImprovementGlobalStoppingStrategy` was used above." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1683829364214, - "executionStopTime": 1683829364222, - "originalKey": "2e5512a9-82ed-43a0-8616-6cee7f648b0f", - "requestMsgId": "d5c268a1-fefe-49d5-8ff4-a2cb40fe278b", - "showInput": true - }, - "outputs": [], - "source": [ - "from ax.global_stopping.strategies.base import BaseGlobalStoppingStrategy\n", - "from typing import Tuple\n", - "from ax.core.experiment import Experiment\n", - "from ax.core.base_trial import TrialStatus\n", - "from ax.global_stopping.strategies.improvement import constraint_satisfaction" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "584df5ac-c0f6-4c48-8cec-f9765a04e635", - "showInput": false - }, - "source": [ - "Here, we define `SimpleThresholdGlobalStoppingStrategy`, which stops when we observe a point better than a provided threshold. This can be useful when there is a known optimum. For example, the Branin function has an optimum of zero. When the optimum is not known, this can still be useful from a satisficing perspective: For example, maybe we need a model to take up less than a certain amount of RAM so it doesn't crash our usual hardware, but there is no benefit to further improvements." - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1683829490325, - "executionStopTime": 1683829490340, - "originalKey": "bbd24d6e-a873-49d6-abe3-4d832acb8a60", - "requestMsgId": "74b77cb7-54eb-4321-afae-942b62b90f5d", - "showInput": true - }, - "outputs": [], - "source": [ - "class SimpleThresholdGlobalStoppingStrategy(BaseGlobalStoppingStrategy):\n", - " \"\"\"\n", - " A GSS that stops when we observe a point better than `threshold`.\n", - " \"\"\"\n", - " def __init__(\n", - " self,\n", - " min_trials: int,\n", - " inactive_when_pending_trials: bool = True,\n", - " threshold: float = 0.1\n", - " ):\n", - " self.threshold = threshold\n", - " super().__init__(\n", - " min_trials=min_trials,\n", - " inactive_when_pending_trials=inactive_when_pending_trials\n", - " )\n", - " \n", - " def _should_stop_optimization(\n", - " self, experiment: Experiment\n", - " ) -> Tuple[bool, str]:\n", - " \"\"\"\n", - " Check if the best seen is better than `self.threshold`.\n", - " \"\"\"\n", - " feasible_objectives = [\n", - " trial.objective_mean\n", - " for trial in experiment.trials_by_status[TrialStatus.COMPLETED]\n", - " if constraint_satisfaction(trial)\n", - " ]\n", - "\n", - " # Computing the interquartile for scaling the difference\n", - " if len(feasible_objectives) <= 1:\n", - " message = \"There are not enough feasible arms tried yet.\"\n", - " return False, message\n", - " \n", - " minimize = experiment.optimization_config.objective.minimize\n", - " if minimize:\n", - " best = np.min(feasible_objectives)\n", - " stop = best < self.threshold\n", - " else:\n", - " best = np.max(feasible_objectives)\n", - " stop = best > self.threshold\n", - "\n", - " comparison = \"less\" if minimize else \"greater\"\n", - " if stop:\n", - " message = (\n", - " f\"The best objective seen is {best:.3f}, which is {comparison} \"\n", - " f\"than the threshold of {self.threshold:.3f}.\"\n", - " )\n", - " else:\n", - " message = \"\"\n", - "\n", - " return stop, message" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1683829491609, - "executionStopTime": 1683829491626, - "originalKey": "f3dc5682-0539-4c85-a66a-0d3128f0cc1c", - "requestMsgId": "9ee9e413-be32-49fc-a7bc-8e1898d1dbf5", - "showInput": true - }, - "outputs": [], - "source": [ - "stopping_strategy = SimpleThresholdGlobalStoppingStrategy(min_trials=5, threshold=1.)" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1683829491833, - "executionStopTime": 1683829491894, - "originalKey": "3d6c1ab2-c3ee-49c8-9969-45f2455bbd60", - "requestMsgId": "08232010-46f8-4b28-b581-454ddacdc57b", - "showInput": true - }, - "outputs": [], - "source": [ - "ax_client_custom_gss = AxClient(\n", - " global_stopping_strategy=stopping_strategy,\n", - " random_seed=0,\n", - " verbose_logging=False,\n", - ")\n", - "\n", - "ax_client_custom_gss.create_experiment(\n", - " name=\"branin_test_experiment\",\n", - " parameters=params,\n", - " objectives={\"branin\": ObjectiveProperties(minimize=True)},\n", - " is_test=True,\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1683829492064, - "executionStopTime": 1683829495338, - "originalKey": "a306cb15-364f-4e91-b569-9067843a7578", - "requestMsgId": "81121dac-3a2a-4dde-b866-44e448e73ad5", - "showInput": true - }, - "outputs": [], - "source": [ - "for i in range(25):\n", - " try:\n", - " parameters, trial_index = ax_client_custom_gss.get_next_trial()\n", - " except OptimizationShouldStop as exc:\n", - " print(exc.message)\n", - " break\n", - " ax_client_custom_gss.complete_trial(\n", - " trial_index=trial_index, raw_data=evaluate(parameters)\n", - " )" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1683829495351, - "executionStopTime": 1683829495740, - "originalKey": "3cb59624-d9bb-4b7a-9f57-7cb968dce889", - "requestMsgId": "4dd4ed93-07ab-4dd1-92a9-f003f405ccbc", - "showInput": true - }, - "outputs": [], - "source": [ - "render(ax_client_custom_gss.get_optimization_trace())" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "originalKey": "5f4eaa42-a8cb-42b2-b8b4-b2fa53398270", - "showInput": true - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.5" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/tutorials/human_in_the_loop/hitl_data.json b/tutorials/human_in_the_loop/hitl_data.json deleted file mode 100644 index c64644ba1bd..00000000000 --- a/tutorials/human_in_the_loop/hitl_data.json +++ /dev/null @@ -1 +0,0 @@ -{"arm_name":{"0":"0_1","1":"0_23","2":"0_14","3":"0_53","4":"0_53","5":"0_0","6":"0_54","7":"0_54","8":"0_55","9":"0_55","10":"0_56","11":"0_27","12":"0_56","13":"0_0","14":"0_57","15":"0_57","16":"0_58","17":"0_58","18":"0_13","19":"0_59","20":"0_59","21":"0_6","22":"0_13","23":"0_27","24":"0_14","25":"0_6","26":"0_60","27":"0_60","28":"0_61","29":"0_61","30":"0_62","31":"0_62","32":"0_63","33":"0_63","34":"0_7","35":"0_28","36":"0_15","37":"0_15","38":"0_16","39":"0_16","40":"0_17","41":"0_17","42":"0_28","43":"0_18","44":"0_18","45":"0_19","46":"0_19","47":"0_29","48":"0_2","49":"0_2","50":"0_20","51":"0_20","52":"0_21","53":"0_7","54":"0_21","55":"0_1","56":"0_22","57":"0_22","58":"0_23","59":"0_29","60":"0_3","61":"0_3","62":"0_30","63":"0_30","64":"0_8","65":"0_10","66":"0_31","67":"0_24","68":"0_31","69":"0_32","70":"0_10","71":"0_32","72":"0_33","73":"0_33","74":"0_34","75":"0_8","76":"0_34","77":"0_35","78":"0_35","79":"0_24","80":"0_36","81":"0_36","82":"0_37","83":"0_37","84":"0_38","85":"0_38","86":"0_9","87":"0_39","88":"0_39","89":"0_4","90":"0_4","91":"0_25","92":"0_11","93":"0_40","94":"0_40","95":"0_41","96":"0_11","97":"0_9","98":"0_41","99":"0_42","100":"0_42","101":"0_43","102":"0_43","103":"0_25","104":"0_44","105":"0_44","106":"0_45","107":"0_45","108":"status_quo","109":"0_46","110":"0_46","111":"0_47","112":"0_47","113":"0_48","114":"0_48","115":"0_26","116":"0_49","117":"0_49","118":"0_12","119":"status_quo","120":"0_5","121":"0_5","122":"0_50","123":"0_12","124":"0_50","125":"0_51","126":"0_51","127":"0_26","128":"0_52","129":"0_52"},"trial_index":{"0":0,"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0,"85":0,"86":0,"87":0,"88":0,"89":0,"90":0,"91":0,"92":0,"93":0,"94":0,"95":0,"96":0,"97":0,"98":0,"99":0,"100":0,"101":0,"102":0,"103":0,"104":0,"105":0,"106":0,"107":0,"108":0,"109":0,"110":0,"111":0,"112":0,"113":0,"114":0,"115":0,"116":0,"117":0,"118":0,"119":0,"120":0,"121":0,"122":0,"123":0,"124":0,"125":0,"126":0,"127":0,"128":0,"129":0},"end_time":{"0":1554249600000,"1":1554249600000,"2":1554249600000,"3":1554249600000,"4":1554249600000,"5":1554249600000,"6":1554249600000,"7":1554249600000,"8":1554249600000,"9":1554249600000,"10":1554249600000,"11":1554249600000,"12":1554249600000,"13":1554249600000,"14":1554249600000,"15":1554249600000,"16":1554249600000,"17":1554249600000,"18":1554249600000,"19":1554249600000,"20":1554249600000,"21":1554249600000,"22":1554249600000,"23":1554249600000,"24":1554249600000,"25":1554249600000,"26":1554249600000,"27":1554249600000,"28":1554249600000,"29":1554249600000,"30":1554249600000,"31":1554249600000,"32":1554249600000,"33":1554249600000,"34":1554249600000,"35":1554249600000,"36":1554249600000,"37":1554249600000,"38":1554249600000,"39":1554249600000,"40":1554249600000,"41":1554249600000,"42":1554249600000,"43":1554249600000,"44":1554249600000,"45":1554249600000,"46":1554249600000,"47":1554249600000,"48":1554249600000,"49":1554249600000,"50":1554249600000,"51":1554249600000,"52":1554249600000,"53":1554249600000,"54":1554249600000,"55":1554249600000,"56":1554249600000,"57":1554249600000,"58":1554249600000,"59":1554249600000,"60":1554249600000,"61":1554249600000,"62":1554249600000,"63":1554249600000,"64":1554249600000,"65":1554249600000,"66":1554249600000,"67":1554249600000,"68":1554249600000,"69":1554249600000,"70":1554249600000,"71":1554249600000,"72":1554249600000,"73":1554249600000,"74":1554249600000,"75":1554249600000,"76":1554249600000,"77":1554249600000,"78":1554249600000,"79":1554249600000,"80":1554249600000,"81":1554249600000,"82":1554249600000,"83":1554249600000,"84":1554249600000,"85":1554249600000,"86":1554249600000,"87":1554249600000,"88":1554249600000,"89":1554249600000,"90":1554249600000,"91":1554249600000,"92":1554249600000,"93":1554249600000,"94":1554249600000,"95":1554249600000,"96":1554249600000,"97":1554249600000,"98":1554249600000,"99":1554249600000,"100":1554249600000,"101":1554249600000,"102":1554249600000,"103":1554249600000,"104":1554249600000,"105":1554249600000,"106":1554249600000,"107":1554249600000,"108":1554249600000,"109":1554249600000,"110":1554249600000,"111":1554249600000,"112":1554249600000,"113":1554249600000,"114":1554249600000,"115":1554249600000,"116":1554249600000,"117":1554249600000,"118":1554249600000,"119":1554249600000,"120":1554249600000,"121":1554249600000,"122":1554249600000,"123":1554249600000,"124":1554249600000,"125":1554249600000,"126":1554249600000,"127":1554249600000,"128":1554249600000,"129":1554249600000},"mean":{"0":495.7630483864,"1":524.3677121973,"2":21.4602436992,"3":21.4374334625,"4":548.3876911099,"5":20.3938551623,"6":21.3634470762,"7":540.354941559,"8":21.4088999606,"9":543.3509256103,"10":21.8761495501,"11":21.7704708828,"12":561.0153373251,"13":464.4467049594,"14":20.9381701672,"15":515.5469981054,"16":21.3210724987,"17":547.1011628546,"18":21.4183918127,"19":21.8518919135,"20":572.7317928028,"21":21.3514435661,"22":544.5891065864,"23":521.4885673544,"24":556.068091252,"25":540.7413033532,"26":22.2431650654,"27":577.466025923,"28":23.9760921492,"29":591.7112903438,"30":20.8066326138,"31":486.9978083981,"32":21.038950512,"33":506.3635257112,"34":21.2963493601,"35":518.5691087639,"36":21.1164428415,"37":517.0287055503,"38":22.1907197586,"39":574.5273877209,"40":21.7126315645,"41":553.9417568228,"42":21.0854461784,"43":21.3535329606,"44":553.0256150304,"45":20.9149831146,"46":477.5755207251,"47":22.9278848853,"48":21.4194272163,"49":542.3029350722,"50":21.6224324583,"51":561.14681338,"52":21.6598472233,"53":537.7218273947,"54":563.6541000894,"55":20.8668886394,"56":21.6216898678,"57":570.8228707945,"58":20.9474084514,"59":569.4895133769,"60":21.5463005234,"61":548.2345843739,"62":21.0473200141,"63":534.8840893416,"64":21.1658724048,"65":20.8561277107,"66":20.3694726715,"67":22.061401753,"68":453.0657960088,"69":22.3289678016,"70":496.9535891264,"71":579.8755075795,"72":22.4920081911,"73":579.5490838314,"74":22.0823489199,"75":546.8571018679,"76":538.8404308226,"77":21.7785559743,"78":564.0915622365,"79":565.6264647098,"80":21.9157166512,"81":563.9575508896,"82":22.6371209753,"83":565.5011648274,"84":21.4723590682,"85":553.5400395602,"86":21.0336997163,"87":21.6640149689,"88":559.7036228384,"89":21.3033959051,"90":544.4295676658,"91":21.6400346563,"92":22.1811563552,"93":20.9308294427,"94":512.3005012676,"95":21.2604964675,"96":577.6802807769,"97":515.9073035981,"98":531.7389392235,"99":21.3937173897,"100":533.2995099946,"101":21.338490998,"102":540.1556866168,"103":564.7346483405,"104":23.2929146801,"105":585.7843090537,"106":21.1609294892,"107":543.4917462892,"108":21.6372636518,"109":20.9745011961,"110":521.8436058271,"111":22.5055156411,"112":541.1493906184,"113":21.3843847146,"114":535.162617066,"115":21.8797036224,"116":21.8001539366,"117":558.9373312742,"118":21.5082145841,"119":560.6473614869,"120":21.4727492046,"121":549.0511518835,"122":22.1199857861,"123":543.4399676676,"124":562.7090597954,"125":21.3405492897,"126":534.8772454669,"127":562.6174250382,"128":21.8315714862,"129":556.6430987863},"metric_name":{"0":"metric_1","1":"metric_1","2":"metric_2","3":"metric_2","4":"metric_1","5":"metric_2","6":"metric_2","7":"metric_1","8":"metric_2","9":"metric_1","10":"metric_2","11":"metric_2","12":"metric_1","13":"metric_1","14":"metric_2","15":"metric_1","16":"metric_2","17":"metric_1","18":"metric_2","19":"metric_2","20":"metric_1","21":"metric_2","22":"metric_1","23":"metric_1","24":"metric_1","25":"metric_1","26":"metric_2","27":"metric_1","28":"metric_2","29":"metric_1","30":"metric_2","31":"metric_1","32":"metric_2","33":"metric_1","34":"metric_2","35":"metric_1","36":"metric_2","37":"metric_1","38":"metric_2","39":"metric_1","40":"metric_2","41":"metric_1","42":"metric_2","43":"metric_2","44":"metric_1","45":"metric_2","46":"metric_1","47":"metric_2","48":"metric_2","49":"metric_1","50":"metric_2","51":"metric_1","52":"metric_2","53":"metric_1","54":"metric_1","55":"metric_2","56":"metric_2","57":"metric_1","58":"metric_2","59":"metric_1","60":"metric_2","61":"metric_1","62":"metric_2","63":"metric_1","64":"metric_2","65":"metric_2","66":"metric_2","67":"metric_2","68":"metric_1","69":"metric_2","70":"metric_1","71":"metric_1","72":"metric_2","73":"metric_1","74":"metric_2","75":"metric_1","76":"metric_1","77":"metric_2","78":"metric_1","79":"metric_1","80":"metric_2","81":"metric_1","82":"metric_2","83":"metric_1","84":"metric_2","85":"metric_1","86":"metric_2","87":"metric_2","88":"metric_1","89":"metric_2","90":"metric_1","91":"metric_2","92":"metric_2","93":"metric_2","94":"metric_1","95":"metric_2","96":"metric_1","97":"metric_1","98":"metric_1","99":"metric_2","100":"metric_1","101":"metric_2","102":"metric_1","103":"metric_1","104":"metric_2","105":"metric_1","106":"metric_2","107":"metric_1","108":"metric_2","109":"metric_2","110":"metric_1","111":"metric_2","112":"metric_1","113":"metric_2","114":"metric_1","115":"metric_2","116":"metric_2","117":"metric_1","118":"metric_2","119":"metric_1","120":"metric_2","121":"metric_1","122":"metric_2","123":"metric_1","124":"metric_1","125":"metric_2","126":"metric_1","127":"metric_1","128":"metric_2","129":"metric_1"},"n":{"0":1599994,"1":1596356,"2":1600182,"3":1601081,"4":1601081,"5":1600977,"6":1603031,"7":1603031,"8":1600581,"9":1600581,"10":1600291,"11":1599226,"12":1600291,"13":1600977,"14":1585783,"15":1585783,"16":1587579,"17":1587579,"18":1597045,"19":1590369,"20":1590369,"21":1600140,"22":1597045,"23":1599226,"24":1600182,"25":1600140,"26":1585686,"27":1585686,"28":1587380,"29":1587380,"30":1587640,"31":1587640,"32":1587022,"33":1587022,"34":1600673,"35":1600204,"36":1598884,"37":1598884,"38":1597324,"39":1597324,"40":1598231,"41":1598231,"42":1600204,"43":1599224,"44":1599224,"45":1599954,"46":1599954,"47":1597744,"48":1600453,"49":1600453,"50":1597853,"51":1597853,"52":1598661,"53":1600673,"54":1598661,"55":1599994,"56":1600373,"57":1600373,"58":1596356,"59":1597744,"60":1597034,"61":1597034,"62":1599249,"63":1599249,"64":1598777,"65":1598206,"66":1600831,"67":1599729,"68":1600831,"69":1597957,"70":1598206,"71":1597957,"72":1600580,"73":1600580,"74":1600635,"75":1598777,"76":1600635,"77":1601211,"78":1601211,"79":1599729,"80":1599978,"81":1599978,"82":1598753,"83":1598753,"84":1597801,"85":1597801,"86":1600071,"87":1597787,"88":1597787,"89":1598818,"90":1598818,"91":1597623,"92":1600526,"93":1600057,"94":1600057,"95":1597699,"96":1600526,"97":1600071,"98":1597699,"99":1601500,"100":1601500,"101":1599307,"102":1599307,"103":1597623,"104":1599534,"105":1599534,"106":1598645,"107":1598645,"108":12780098,"109":1599836,"110":1599836,"111":1601161,"112":1601161,"113":1600513,"114":1600513,"115":1598820,"116":1599620,"117":1599620,"118":1600577,"119":12780098,"120":1598968,"121":1598968,"122":1599595,"123":1600577,"124":1599595,"125":1597829,"126":1597829,"127":1598820,"128":1598131,"129":1598131},"sem":{"0":2.6216409435,"1":2.7316473644,"2":0.0694574465,"3":0.0699414615,"4":2.8934857582,"5":0.0694551705,"6":0.0688945934,"7":2.8053833949,"8":0.0701939655,"9":2.8663260433,"10":0.0718543885,"11":0.0698253327,"12":2.9914440155,"13":2.4541150028,"14":0.0694771091,"15":2.7170580726,"16":0.0706757884,"17":2.8829537327,"18":0.0700077284,"19":0.0709192508,"20":3.0555746837,"21":0.0691774093,"22":2.8486424948,"23":2.7235333075,"24":2.9237408078,"25":2.8711309227,"26":0.0715660369,"27":3.102853141,"28":0.0816951994,"29":3.2310670035,"30":0.0700480465,"31":2.5846515915,"32":0.0694696067,"33":2.6363145732,"34":0.0700923133,"35":2.701949743,"36":0.0685759121,"37":2.7674054992,"38":0.0730182607,"39":3.1103538681,"40":0.0700468754,"41":2.95323019,"42":0.0695252939,"43":0.06952925,"44":2.9124826796,"45":0.0692515434,"46":2.5195832227,"47":0.0751827664,"48":0.0701049493,"49":2.8770888454,"50":0.0693693706,"51":2.9839934298,"52":0.0709320681,"53":2.8234036506,"54":2.9926736276,"55":0.0691735371,"56":0.0703355431,"57":3.0531204924,"58":0.06913457,"59":3.0343519579,"60":0.0701869289,"61":2.9137197351,"62":0.0698465553,"63":2.8158796571,"64":0.0695879392,"65":0.0702160042,"66":0.0684760418,"67":0.0708376384,"68":2.3857300705,"69":0.0713937536,"70":2.6112705249,"71":3.1195666905,"72":0.0725283055,"73":3.1292394905,"74":0.070407386,"75":2.8831373555,"76":2.9438013994,"77":0.0690979637,"78":3.009105453,"79":3.0034929442,"80":0.0713569863,"81":3.0030136766,"82":0.0742655206,"83":3.00326874,"84":0.0706149827,"85":2.9480469903,"86":0.0689109005,"87":0.069634278,"88":2.9606895478,"89":0.0692537889,"90":2.8429709499,"91":0.0700465392,"92":0.0722102511,"93":0.0688989821,"94":2.6723613999,"95":0.0683446892,"96":3.1134867511,"97":2.7049721736,"98":2.7643106411,"99":0.0710862138,"100":2.8198433102,"101":0.0694331648,"102":2.8291664617,"103":2.9838099716,"104":0.0778574609,"105":3.1586364057,"106":0.0701278539,"107":2.8442612237,"108":0.0248319452,"109":0.0696417231,"110":2.7260937474,"111":0.0741212286,"112":2.8582044377,"113":0.0683852573,"114":2.8163422486,"115":0.0706258773,"116":0.0709851152,"117":2.9578066977,"118":0.0711404223,"119":1.0529151667,"120":0.0698422044,"121":2.9154130175,"122":0.0717212437,"123":2.8433814588,"124":2.9730795738,"125":0.0715058678,"126":2.783752586,"127":2.9586066121,"128":0.0705066715,"129":2.9452175859},"start_time":{"0":1553904000000,"1":1553904000000,"2":1553904000000,"3":1553904000000,"4":1553904000000,"5":1553904000000,"6":1553904000000,"7":1553904000000,"8":1553904000000,"9":1553904000000,"10":1553904000000,"11":1553904000000,"12":1553904000000,"13":1553904000000,"14":1553904000000,"15":1553904000000,"16":1553904000000,"17":1553904000000,"18":1553904000000,"19":1553904000000,"20":1553904000000,"21":1553904000000,"22":1553904000000,"23":1553904000000,"24":1553904000000,"25":1553904000000,"26":1553904000000,"27":1553904000000,"28":1553904000000,"29":1553904000000,"30":1553904000000,"31":1553904000000,"32":1553904000000,"33":1553904000000,"34":1553904000000,"35":1553904000000,"36":1553904000000,"37":1553904000000,"38":1553904000000,"39":1553904000000,"40":1553904000000,"41":1553904000000,"42":1553904000000,"43":1553904000000,"44":1553904000000,"45":1553904000000,"46":1553904000000,"47":1553904000000,"48":1553904000000,"49":1553904000000,"50":1553904000000,"51":1553904000000,"52":1553904000000,"53":1553904000000,"54":1553904000000,"55":1553904000000,"56":1553904000000,"57":1553904000000,"58":1553904000000,"59":1553904000000,"60":1553904000000,"61":1553904000000,"62":1553904000000,"63":1553904000000,"64":1553904000000,"65":1553904000000,"66":1553904000000,"67":1553904000000,"68":1553904000000,"69":1553904000000,"70":1553904000000,"71":1553904000000,"72":1553904000000,"73":1553904000000,"74":1553904000000,"75":1553904000000,"76":1553904000000,"77":1553904000000,"78":1553904000000,"79":1553904000000,"80":1553904000000,"81":1553904000000,"82":1553904000000,"83":1553904000000,"84":1553904000000,"85":1553904000000,"86":1553904000000,"87":1553904000000,"88":1553904000000,"89":1553904000000,"90":1553904000000,"91":1553904000000,"92":1553904000000,"93":1553904000000,"94":1553904000000,"95":1553904000000,"96":1553904000000,"97":1553904000000,"98":1553904000000,"99":1553904000000,"100":1553904000000,"101":1553904000000,"102":1553904000000,"103":1553904000000,"104":1553904000000,"105":1553904000000,"106":1553904000000,"107":1553904000000,"108":1553904000000,"109":1553904000000,"110":1553904000000,"111":1553904000000,"112":1553904000000,"113":1553904000000,"114":1553904000000,"115":1553904000000,"116":1553904000000,"117":1553904000000,"118":1553904000000,"119":1553904000000,"120":1553904000000,"121":1553904000000,"122":1553904000000,"123":1553904000000,"124":1553904000000,"125":1553904000000,"126":1553904000000,"127":1553904000000,"128":1553904000000,"129":1553904000000}} \ No newline at end of file diff --git a/tutorials/human_in_the_loop/hitl_exp.json b/tutorials/human_in_the_loop/hitl_exp.json deleted file mode 100644 index 16a30b0c9ae..00000000000 --- a/tutorials/human_in_the_loop/hitl_exp.json +++ /dev/null @@ -1 +0,0 @@ -{"__type":"Experiment","name":"human_in_the_loop_tutorial","description":"Ax Human-in-the-Loop Tutorial","experiment_type":null,"search_space":{"__type":"SearchSpace","parameters":[{"__type":"RangeParameter","name":"x_excellent","parameter_type":{"__type":"ParameterType","name":"FLOAT"},"lower":0,"upper":1,"log_scale":false,"digits":null},{"__type":"RangeParameter","name":"x_good","parameter_type":{"__type":"ParameterType","name":"FLOAT"},"lower":0,"upper":1,"log_scale":false,"digits":null},{"__type":"RangeParameter","name":"x_moderate","parameter_type":{"__type":"ParameterType","name":"FLOAT"},"lower":0,"upper":1,"log_scale":false,"digits":null},{"__type":"RangeParameter","name":"x_poor","parameter_type":{"__type":"ParameterType","name":"FLOAT"},"lower":0,"upper":1,"log_scale":false,"digits":null},{"__type":"RangeParameter","name":"x_unknown","parameter_type":{"__type":"ParameterType","name":"FLOAT"},"lower":0,"upper":1,"log_scale":false,"digits":null},{"__type":"RangeParameter","name":"y_excellent","parameter_type":{"__type":"ParameterType","name":"FLOAT"},"lower":0.1,"upper":3,"log_scale":false,"digits":null},{"__type":"RangeParameter","name":"y_good","parameter_type":{"__type":"ParameterType","name":"FLOAT"},"lower":0.1,"upper":3,"log_scale":false,"digits":null},{"__type":"RangeParameter","name":"y_moderate","parameter_type":{"__type":"ParameterType","name":"FLOAT"},"lower":0.1,"upper":3,"log_scale":false,"digits":null},{"__type":"RangeParameter","name":"y_poor","parameter_type":{"__type":"ParameterType","name":"FLOAT"},"lower":0.1,"upper":3,"log_scale":false,"digits":null},{"__type":"RangeParameter","name":"y_unknown","parameter_type":{"__type":"ParameterType","name":"FLOAT"},"lower":0.1,"upper":3,"log_scale":false,"digits":null},{"__type":"RangeParameter","name":"z_excellent","parameter_type":{"__type":"ParameterType","name":"FLOAT"},"lower":50000,"upper":5000000,"log_scale":false,"digits":null},{"__type":"RangeParameter","name":"z_good","parameter_type":{"__type":"ParameterType","name":"FLOAT"},"lower":50000,"upper":5000000,"log_scale":false,"digits":null},{"__type":"RangeParameter","name":"z_moderate","parameter_type":{"__type":"ParameterType","name":"FLOAT"},"lower":50000,"upper":5000000,"log_scale":false,"digits":null},{"__type":"RangeParameter","name":"z_poor","parameter_type":{"__type":"ParameterType","name":"FLOAT"},"lower":50000,"upper":5000000,"log_scale":false,"digits":null},{"__type":"RangeParameter","name":"z_unknown","parameter_type":{"__type":"ParameterType","name":"FLOAT"},"lower":50000,"upper":5000000,"log_scale":false,"digits":null}],"parameter_constraints":[{"__type":"OrderConstraint","lower_name":"x_poor","upper_name":"x_moderate"},{"__type":"OrderConstraint","lower_name":"x_moderate","upper_name":"x_good"},{"__type":"OrderConstraint","lower_name":"x_good","upper_name":"x_excellent"},{"__type":"OrderConstraint","lower_name":"y_poor","upper_name":"y_moderate"},{"__type":"OrderConstraint","lower_name":"y_moderate","upper_name":"y_good"},{"__type":"OrderConstraint","lower_name":"y_good","upper_name":"y_excellent"}]},"optimization_config":{"__type":"OptimizationConfig","objective":{"__type":"Objective","metric":{"name":"metric_1","__type":"Metric"},"minimize":false},"outcome_constraints":[{"__type":"OutcomeConstraint","metric":{"name":"metric_2","__type":"Metric"},"op":{"__type":"ComparisonOp","name":"LEQ"},"bound":5,"relative":true}]},"tracking_metrics":[],"runner":null,"status_quo":{"__type":"Arm","parameters":{"x_excellent":0,"x_good":0,"x_moderate":0,"x_poor":0,"x_unknown":0,"y_excellent":1,"y_good":1,"y_moderate":1,"y_poor":1,"y_unknown":1,"z_excellent":1000000,"z_good":1000000,"z_moderate":1000000,"z_poor":1000000,"z_unknown":1000000},"name":"status_quo"},"time_created":{"__type":"datetime","value":"2019-04-23 21:08:25.132650"},"trials":{"0":{"__type":"BatchTrial","index":0,"trial_type":null,"generation_step_index":null,"status":{"__type":"TrialStatus","name":"COMPLETED"},"status_quo":{"__type":"Arm","parameters":{"x_excellent":0,"x_good":0,"x_moderate":0,"x_poor":0,"x_unknown":0,"y_excellent":1,"y_good":1,"y_moderate":1,"y_poor":1,"y_unknown":1,"z_excellent":1000000,"z_good":1000000,"z_moderate":1000000,"z_poor":1000000,"z_unknown":1000000},"name":"status_quo"},"status_quo_weight_override":11.11,"optimize_for_power":false,"time_created":{"__type":"datetime","value":"2019-03-29 18:10:06.000000"},"time_completed":{"__type":"datetime","value":"2019-04-03 16:16:05.000000"},"time_staged":{"__type":"datetime","value":"2019-03-29 18:16:16.000000"},"time_run_started":{"__type":"datetime","value":"2019-03-29 18:18:27.000000"},"abandoned_reason":null,"run_metadata":{"output":"{\"new_experiment_ents\":{\"ae_ios_video_fury_live_sigmoid_fraction_e6_v0_6425b7\":{}},\"instagram_did_propagate\":false}","arm_mapping":{"0_0":"0_0","0_1":"0_1","0_10":"0_10","0_11":"0_11","0_12":"0_12","0_13":"0_13","0_14":"0_14","0_15":"0_15","0_16":"0_16","0_17":"0_17","0_18":"0_18","0_19":"0_19","0_2":"0_2","0_20":"0_20","0_21":"0_21","0_22":"0_22","0_23":"0_23","0_24":"0_24","0_25":"0_25","0_26":"0_26","0_27":"0_27","0_28":"0_28","0_29":"0_29","0_3":"0_3","0_30":"0_30","0_31":"0_31","0_32":"0_32","0_33":"0_33","0_34":"0_34","0_35":"0_35","0_36":"0_36","0_37":"0_37","0_38":"0_38","0_39":"0_39","0_4":"0_4","0_40":"0_40","0_41":"0_41","0_42":"0_42","0_43":"0_43","0_44":"0_44","0_45":"0_45","0_46":"0_46","0_47":"0_47","0_48":"0_48","0_49":"0_49","0_5":"0_5","0_50":"0_50","0_51":"0_51","0_52":"0_52","0_53":"0_53","0_54":"0_54","0_55":"0_55","0_56":"0_56","0_57":"0_57","0_58":"0_58","0_59":"0_59","0_6":"0_6","0_60":"0_60","0_61":"0_61","0_62":"0_62","0_63":"0_63","0_7":"0_7","0_8":"0_8","0_9":"0_9","status_quo":"status_quo"},"expiration":1561684565,"universe_name":"ios_video_fury_live","staging_skipped":false,"name":"ae_ios_video_fury_live_sigmoid_fraction_e6_v0_6425b7"},"generator_run_structs":[{"__type":"GeneratorRunStruct","generator_run":{"__type":"GeneratorRun","arms":[{"__type":"Arm","parameters":{"x_excellent":0.97158026695251465,"x_good":0.86155247688293457,"x_moderate":0.76680916547775269,"x_poor":0.34871453046798706,"x_unknown":0.76757973432540894,"y_excellent":2.9007100284099581,"y_good":1.5137152910232545,"y_moderate":0.67759470939636224,"y_poor":0.4974367544054985,"y_unknown":1.0852564811706542,"z_excellent":517803.49761247635,"z_good":607874.51714277267,"z_moderate":1151881.2023103237,"z_poor":2927449.2621421814,"z_unknown":2068407.6935052872},"name":"0_0"},{"__type":"Arm","parameters":{"x_excellent":0.85103416442871094,"x_good":0.66453057527542114,"x_moderate":0.618462860584259,"x_poor":0.49137753248214722,"x_unknown":0.30833002924919128,"y_excellent":2.8659517884254457,"y_good":2.5605727732181549,"y_moderate":1.5476379573345185,"y_poor":0.93359726667404175,"y_unknown":2.4124013960361479,"z_excellent":2047661.4505052567,"z_good":1124946.5800821781,"z_moderate":349740.92431366444,"z_poor":3469065.2877092361,"z_unknown":1308657.3854088783},"name":"0_1"},{"__type":"Arm","parameters":{"x_excellent":0.95002990961074829,"x_good":0.74726009368896484,"x_moderate":0.20274275541305542,"x_poor":0.00037252623587846756,"x_unknown":0.53853303194046021,"y_excellent":2.9814384758472441,"y_good":1.9838561594486237,"y_moderate":1.1577709317207336,"y_poor":0.25004206225275993,"y_unknown":2.4593245446681977,"z_excellent":1404012.7724409103,"z_good":3935407.2898626328,"z_moderate":1576943.5182213783,"z_poor":790132.23573565483,"z_unknown":4388426.6257286072},"name":"0_2"},{"__type":"Arm","parameters":{"x_excellent":0.61609798669815063,"x_good":0.54812502861022949,"x_moderate":0.25569134950637817,"x_poor":0.11454080045223236,"x_unknown":0.99180132150650024,"y_excellent":2.1949211359024048,"y_good":2.052469825744629,"y_moderate":1.8581664502620698,"y_poor":0.36267738044261932,"y_unknown":1.1400326222181321,"z_excellent":144598.74927997589,"z_good":1613488.7233376503,"z_moderate":2766241.6070699692,"z_poor":3140431.6514730453,"z_unknown":3876653.9037227631},"name":"0_3"},{"__type":"Arm","parameters":{"x_excellent":0.99003618955612183,"x_good":0.88680678606033325,"x_moderate":0.6708073616027832,"x_poor":0.0087799523025751114,"x_unknown":0.16683314740657806,"y_excellent":1.8174743235111237,"y_good":1.5216088175773621,"y_moderate":1.1984175980091096,"y_poor":0.83373601436614986,"y_unknown":1.4500256150960922,"z_excellent":3136810.2937936783,"z_good":3679950.2164125443,"z_moderate":1653542.5797104836,"z_poor":2718013.8796567917,"z_unknown":3496028.0865430832},"name":"0_4"},{"__type":"Arm","parameters":{"x_excellent":0.93695586919784546,"x_good":0.64858543872833252,"x_moderate":0.16240119934082031,"x_poor":0.060298789292573929,"x_unknown":0.1917714923620224,"y_excellent":2.4435271203517912,"y_good":0.649354687333107,"y_moderate":0.53861688971519472,"y_poor":0.18754440546035767,"y_unknown":2.4331059575080873,"z_excellent":105790.6427886337,"z_good":2102460.2279067039,"z_moderate":3928977.12290287,"z_poor":1416620.2545166016,"z_unknown":3104550.2930879593},"name":"0_5"},{"__type":"Arm","parameters":{"x_excellent":0.91189545392990112,"x_good":0.71424770355224609,"x_moderate":0.662473738193512,"x_poor":0.56986552476882935,"x_unknown":0.75975435972213745,"y_excellent":2.9478807032108305,"y_good":2.7881640970706938,"y_moderate":2.5630625545978547,"y_poor":1.327445712685585,"y_unknown":2.2442395150661469,"z_excellent":399939.2069876194,"z_good":4282380.20837307,"z_moderate":1836250.6076693535,"z_poor":3421681.6782951355,"z_unknown":928677.34357714653},"name":"0_6"},{"__type":"Arm","parameters":{"x_excellent":0.87672680616378784,"x_good":0.79401993751525879,"x_moderate":0.51991713047027588,"x_poor":0.18641293048858643,"x_unknown":0.18414582312107086,"y_excellent":2.7139359772205354,"y_good":2.2554430127143861,"y_moderate":1.9752698361873626,"y_poor":1.5498319000005722,"y_unknown":0.14985630456358195,"z_excellent":621760.27297973633,"z_good":1963844.6047902107,"z_moderate":4520667.2549247742,"z_poor":1207356.5132915974,"z_unknown":2390304.02302742},"name":"0_7"},{"__type":"Arm","parameters":{"x_excellent":0.77820348739624023,"x_good":0.77338981628417969,"x_moderate":0.64344149827957153,"x_poor":0.39535817503929138,"x_unknown":0.26519513130187988,"y_excellent":1.8703023195266724,"y_good":1.7005800902843475,"y_moderate":1.6552390694618226,"y_poor":1.3311680257320404,"y_unknown":2.9665372967720032,"z_excellent":1204457.9371809959,"z_good":3880121.248960495,"z_moderate":4704345.0891971588,"z_poor":4601939.5023584366,"z_unknown":2348827.1743059158},"name":"0_8"},{"__type":"Arm","parameters":{"x_excellent":0.86235660314559937,"x_good":0.85093379020690918,"x_moderate":0.37449455261230469,"x_poor":0.13490460813045502,"x_unknown":0.46556881070137024,"y_excellent":2.704283320903778,"y_good":2.6870321989059449,"y_moderate":1.671689361333847,"y_poor":0.55204790681600568,"y_unknown":0.56874689161777492,"z_excellent":447859.57336425781,"z_good":1286995.9928095341,"z_moderate":3375571.7694759369,"z_poor":4987511.7152929306,"z_unknown":382919.0619289875},"name":"0_9"},{"__type":"Arm","parameters":{"x_excellent":0.74537348747253418,"x_good":0.54843747615814209,"x_moderate":0.2341938316822052,"x_poor":0.18100295960903168,"x_unknown":0.75903099775314331,"y_excellent":2.6732950150966643,"y_good":2.4102241337299346,"y_moderate":1.1348745018243791,"y_poor":1.0296057015657425,"y_unknown":2.790981262922287,"z_excellent":1974325.7120251656,"z_good":837956.4180970192,"z_moderate":3807529.4613838196,"z_poor":2535267.7911520004,"z_unknown":3274282.6253175735},"name":"0_10"},{"__type":"Arm","parameters":{"x_excellent":0.93283909559249878,"x_good":0.48941677808761597,"x_moderate":0.22896338999271393,"x_poor":0.14839756488800049,"x_unknown":0.81436693668365479,"y_excellent":2.4188870310783388,"y_good":1.7348816514015197,"y_moderate":1.3763570219278336,"y_poor":0.62752363979816428,"y_unknown":2.2213241577148439,"z_excellent":3917586.3981246948,"z_good":4413693.2224035263,"z_moderate":4174360.8385324478,"z_poor":469381.63191080093,"z_unknown":1615992.4581646919},"name":"0_11"},{"__type":"Arm","parameters":{"x_excellent":0.91771906614303589,"x_good":0.452238529920578,"x_moderate":0.38178026676177979,"x_poor":0.36119359731674194,"x_unknown":0.512036144733429,"y_excellent":2.79096657037735,"y_good":2.330677831172943,"y_moderate":1.8674403846263885,"y_poor":1.4705325186252594,"y_unknown":2.8689020514488219,"z_excellent":2703946.8199014664,"z_good":1236252.286285162,"z_moderate":2774059.3612194061,"z_poor":4271326.7177343369,"z_unknown":1213882.7167451382},"name":"0_12"},{"__type":"Arm","parameters":{"x_excellent":0.94383847713470459,"x_good":0.74263846874237061,"x_moderate":0.66851723194122314,"x_poor":0.25908607244491577,"x_unknown":0.49967688322067261,"y_excellent":1.5910908997058868,"y_good":1.3378991127014161,"y_moderate":0.64499657601118088,"y_poor":0.33120100125670432,"y_unknown":1.6701212346553802,"z_excellent":2545350.2953052521,"z_good":2230082.9917192459,"z_moderate":2751429.2687177658,"z_poor":332382.56778568029,"z_unknown":2328751.4165043831},"name":"0_13"},{"__type":"Arm","parameters":{"x_excellent":0.83145791292190552,"x_good":0.77346956729888916,"x_moderate":0.664504885673523,"x_poor":0.122414231300354,"x_unknown":0.65202194452285767,"y_excellent":1.9299125671386719,"y_good":1.8675167858600616,"y_moderate":1.7484297335147858,"y_poor":0.55905927568674085,"y_unknown":1.1809803128242493,"z_excellent":3746240.4757738113,"z_good":2660856.9711446762,"z_moderate":4485520.2585458755,"z_poor":4487085.1665735245,"z_unknown":986511.37575507164},"name":"0_14"},{"__type":"Arm","parameters":{"x_excellent":0.72601169347763062,"x_good":0.63948225975036621,"x_moderate":0.14544224739074707,"x_poor":0.12423529475927353,"x_unknown":0.97919297218322754,"y_excellent":2.6124065160751342,"y_good":2.3581948935985566,"y_moderate":2.1683637559413911,"y_poor":1.8772067785263062,"y_unknown":1.7302675008773805,"z_excellent":2472140.2451395988,"z_good":4129981.9469451904,"z_moderate":93921.920703724027,"z_poor":639849.21127557755,"z_unknown":1284907.0884287357},"name":"0_15"},{"__type":"Arm","parameters":{"x_excellent":0.87447816133499146,"x_good":0.45389580726623535,"x_moderate":0.42306962609291077,"x_poor":0.12330307066440582,"x_unknown":0.13876286149024963,"y_excellent":2.2682201683521273,"y_good":1.6207421839237213,"y_moderate":1.0284248530864715,"y_poor":0.47881952822208407,"y_unknown":1.4061714798212053,"z_excellent":3887345.6716537476,"z_good":4519583.8570594788,"z_moderate":4061919.0692901611,"z_poor":2971466.4310216904,"z_unknown":2958717.6233530045},"name":"0_16"},{"__type":"Arm","parameters":{"x_excellent":0.75909525156021118,"x_good":0.55276298522949219,"x_moderate":0.4495367705821991,"x_poor":0.42010676860809326,"x_unknown":0.93026751279830933,"y_excellent":2.5671838998794554,"y_good":1.6151177048683167,"y_moderate":0.77282750755548468,"y_poor":0.75227423608303068,"y_unknown":2.0326279759407044,"z_excellent":1967461.3893032074,"z_good":2726522.6244926453,"z_moderate":798929.975181818,"z_poor":4493639.5466327667,"z_unknown":2281054.7664761543},"name":"0_17"},{"__type":"Arm","parameters":{"x_excellent":0.83358085155487061,"x_good":0.82709777355194092,"x_moderate":0.79314583539962769,"x_poor":0.7854536771774292,"x_unknown":0.84968090057373047,"y_excellent":2.6042429924011232,"y_good":2.2531648039817811,"y_moderate":0.3547730505466461,"y_poor":0.13023057291284204,"y_unknown":2.705990767478943,"z_excellent":3841065.2279853821,"z_good":2157058.0810308456,"z_moderate":3389509.0103149414,"z_poor":2395912.7902984619,"z_unknown":3039018.2942152023},"name":"0_18"},{"__type":"Arm","parameters":{"x_excellent":0.86465924978256226,"x_good":0.82579523324966431,"x_moderate":0.48891109228134155,"x_poor":0.31837025284767151,"x_unknown":0.36890369653701782,"y_excellent":2.82127331495285,"y_good":1.6042818665504457,"y_moderate":1.4055700361728669,"y_poor":0.565223403275013,"y_unknown":2.8787531435489653,"z_excellent":4867003.470659256,"z_good":59337.179455906153,"z_moderate":4578370.2880144119,"z_poor":2152693.9526200294,"z_unknown":4730466.4254188538},"name":"0_19"},{"__type":"Arm","parameters":{"x_excellent":0.83920449018478394,"x_good":0.69002598524093628,"x_moderate":0.54104894399642944,"x_poor":0.034630078822374344,"x_unknown":0.074908211827278137,"y_excellent":2.9246697664260863,"y_good":1.168129175901413,"y_moderate":0.4269632063806057,"y_poor":0.18187785279005766,"y_unknown":1.4137071132659913,"z_excellent":3282141.68548584,"z_good":4155312.8629922867,"z_moderate":3070456.8952322006,"z_poor":4345719.7427749634,"z_unknown":2412805.9193491936},"name":"0_20"},{"__type":"Arm","parameters":{"x_excellent":0.81940209865570068,"x_good":0.71012097597122192,"x_moderate":0.42018947005271912,"x_poor":0.25032776594161987,"x_unknown":0.62176293134689331,"y_excellent":2.096848225593567,"y_good":1.9286804676055909,"y_moderate":1.2434603601694107,"y_poor":0.90392446219921108,"y_unknown":2.2090095579624176,"z_excellent":4012281.6264629364,"z_good":2822911.1045598984,"z_moderate":1308740.1449680328,"z_poor":3355280.7778120041,"z_unknown":1911132.3714256287},"name":"0_21"},{"__type":"Arm","parameters":{"x_excellent":0.79002982378005981,"x_good":0.66357940435409546,"x_moderate":0.56628406047821045,"x_poor":0.02994253858923912,"x_unknown":0.671501874923706,"y_excellent":2.3871006608009337,"y_good":2.3709397256374358,"y_moderate":1.2670125961303711,"y_poor":0.25569810867309573,"y_unknown":1.3492118537425994,"z_excellent":4454670.8583831787,"z_good":2341622.8145360947,"z_moderate":558902.61754393578,"z_poor":3738626.0062456131,"z_unknown":196577.2844851017},"name":"0_22"},{"__type":"Arm","parameters":{"x_excellent":0.95226508378982544,"x_good":0.92188018560409546,"x_moderate":0.86909228563308716,"x_poor":0.630584716796875,"x_unknown":0.03162117674946785,"y_excellent":2.7107091486454009,"y_good":2.5477674424648287,"y_moderate":1.5964389860630035,"y_poor":0.5108287498354912,"y_unknown":1.3870350450277329,"z_excellent":763356.34663701057,"z_good":3520974.8566150665,"z_moderate":2690123.7607002258,"z_poor":2431509.2846751213,"z_unknown":744351.22609138489},"name":"0_23"},{"__type":"Arm","parameters":{"x_excellent":0.65432286262512207,"x_good":0.566859245300293,"x_moderate":0.34508275985717773,"x_poor":0.17044077813625336,"x_unknown":0.0027476605027914047,"y_excellent":2.7220929324626923,"y_good":1.3000734150409698,"y_moderate":0.70972726196050639,"y_poor":0.10073989657685162,"y_unknown":1.2240227282047271,"z_excellent":2750516.4057016373,"z_good":2087711.9138836861,"z_moderate":1835061.28937006,"z_poor":3693097.6271629333,"z_unknown":1685299.5321154594},"name":"0_24"},{"__type":"Arm","parameters":{"x_excellent":0.99243980646133423,"x_good":0.65735459327697754,"x_moderate":0.645052969455719,"x_poor":0.062522590160369873,"x_unknown":0.41520678997039795,"y_excellent":2.9075918436050414,"y_good":1.8298017144203187,"y_moderate":0.83301037549972534,"y_poor":0.37764549702405925,"y_unknown":2.0429841458797453,"z_excellent":4272433.4239959717,"z_good":3839028.2511711121,"z_moderate":751537.44071722031,"z_poor":638769.87025141716,"z_unknown":796271.71158790588},"name":"0_25"},{"__type":"Arm","parameters":{"x_excellent":0.81582391262054443,"x_good":0.70149493217468262,"x_moderate":0.3270009458065033,"x_poor":0.079493820667266846,"x_unknown":0.99254715442657471,"y_excellent":2.599180978536606,"y_good":2.1327816963195803,"y_moderate":1.7164670526981354,"y_poor":0.2164489194750786,"y_unknown":2.9185326039791106,"z_excellent":3652340.6833410263,"z_good":4389095.1931476593,"z_moderate":1222076.9457519054,"z_poor":1423440.6158328056,"z_unknown":4595380.69665432},"name":"0_26"},{"__type":"Arm","parameters":{"x_excellent":0.38767039775848389,"x_good":0.37952026724815369,"x_moderate":0.17802783846855164,"x_poor":0.11193168163299561,"x_unknown":0.5749887228012085,"y_excellent":2.5570450067520141,"y_good":1.53735853433609,"y_moderate":0.81399411708116531,"y_poor":0.54053184688091283,"y_unknown":2.0119216859340665,"z_excellent":3512089.0468358994,"z_good":646212.91980147362,"z_moderate":4266802.2334575653,"z_poor":3807456.8808078766,"z_unknown":1551202.1973729134},"name":"0_27"},{"__type":"Arm","parameters":{"x_excellent":0.97474980354309082,"x_good":0.487637996673584,"x_moderate":0.46008732914924622,"x_poor":0.0051721874624490738,"x_unknown":0.18161407113075256,"y_excellent":2.0176386415958403,"y_good":1.9938285946846008,"y_moderate":1.8157051682472229,"y_poor":1.5338177174329759,"y_unknown":2.3742343127727508,"z_excellent":2969065.3711557388,"z_good":915838.17899227142,"z_moderate":3249549.1713285446,"z_poor":3343409.42800045,"z_unknown":414265.68329334259},"name":"0_28"},{"__type":"Arm","parameters":{"x_excellent":0.60782772302627563,"x_good":0.1617046445608139,"x_moderate":0.069862842559814453,"x_poor":0.052945647388696671,"x_unknown":0.60592824220657349,"y_excellent":2.0885343194007873,"y_good":1.6475863277912139,"y_moderate":0.89934851229190826,"y_poor":0.23001547530293465,"y_unknown":0.23805881179869176,"z_excellent":4417652.6993513107,"z_good":1210020.3089416027,"z_moderate":4010368.8627481461,"z_poor":4179294.5474386215,"z_unknown":3242940.7984018326},"name":"0_29"},{"__type":"Arm","parameters":{"x_excellent":0.80413806438446045,"x_good":0.60870444774627686,"x_moderate":0.48860305547714233,"x_poor":0.2260446697473526,"x_unknown":0.98251628875732422,"y_excellent":2.0681675136089326,"y_good":1.3720418214797974,"y_moderate":0.95871788859367368,"y_poor":0.70600114613771436,"y_unknown":1.6804912328720094,"z_excellent":1141897.6113200188,"z_good":1155040.817707777,"z_moderate":2704330.0807476044,"z_poor":4790198.1741189957,"z_unknown":671443.74251365662},"name":"0_30"},{"__type":"Arm","parameters":{"x_excellent":0.96476835012435913,"x_good":0.89380711317062378,"x_moderate":0.74014347791671753,"x_poor":0.54949170351028442,"x_unknown":0.22770011425018311,"y_excellent":2.0435654520988464,"y_good":1.8977944910526277,"y_moderate":1.5835596740245819,"y_poor":0.80912582874298089,"y_unknown":1.5082798272371292,"z_excellent":417868.12134087086,"z_good":59186.477027833462,"z_moderate":3388122.3082542419,"z_poor":1775560.2642893791,"z_unknown":3848832.8248262405},"name":"0_31"},{"__type":"Arm","parameters":{"x_excellent":0.79973399639129639,"x_good":0.48099824786186218,"x_moderate":0.46964031457901,"x_poor":0.26057550311088562,"x_unknown":0.5583416223526001,"y_excellent":2.9510188579559324,"y_good":2.7051799118518831,"y_moderate":1.1253825992345809,"y_poor":0.54315304011106491,"y_unknown":1.0049440920352937,"z_excellent":4260624.0332126617,"z_good":4820661.9530916214,"z_moderate":4514629.2001008987,"z_poor":4518171.4862585068,"z_unknown":3618222.7969169617},"name":"0_32"},{"__type":"Arm","parameters":{"x_excellent":0.55967915058135986,"x_good":0.538822591304779,"x_moderate":0.46861705183982849,"x_poor":0.20115658640861511,"x_unknown":0.47588750720024109,"y_excellent":2.7505034744739532,"y_good":2.0828253149986264,"y_moderate":1.2977309912443162,"y_poor":0.45863019973039632,"y_unknown":2.2216522336006164,"z_excellent":4823469.58220005,"z_good":2501425.32736063,"z_moderate":4461978.1881570816,"z_poor":2451558.193564415,"z_unknown":208953.21313291788},"name":"0_33"},{"__type":"Arm","parameters":{"x_excellent":0.48422300815582275,"x_good":0.46439248323440552,"x_moderate":0.42492550611495972,"x_poor":0.41543704271316528,"x_unknown":0.47104272246360779,"y_excellent":2.3814946770668031,"y_good":2.2343047618865968,"y_moderate":2.0081303179264069,"y_poor":1.4825123876333237,"y_unknown":2.9359733462333679,"z_excellent":3582203.3584117889,"z_good":1924760.2596879005,"z_moderate":163402.65972539783,"z_poor":2164386.3588571548,"z_unknown":1844089.6049141884},"name":"0_34"},{"__type":"Arm","parameters":{"x_excellent":0.76029616594314575,"x_good":0.72989350557327271,"x_moderate":0.49959725141525269,"x_poor":0.11402340233325958,"x_unknown":0.19630938768386841,"y_excellent":2.8703396737575533,"y_good":2.305198884010315,"y_moderate":1.3631530046463014,"y_poor":0.83181405663490293,"y_unknown":1.6237828493118287,"z_excellent":4136911.9167327881,"z_good":3123724.8420715332,"z_moderate":2070678.7869334221,"z_poor":4283613.1930351257,"z_unknown":1570839.9638533592},"name":"0_35"},{"__type":"Arm","parameters":{"x_excellent":0.70909887552261353,"x_good":0.49601945281028748,"x_moderate":0.28533998131752014,"x_poor":0.054395422339439392,"x_unknown":0.84655451774597168,"y_excellent":2.8830336868762969,"y_good":1.907048547267914,"y_moderate":0.64278590977191918,"y_poor":0.32792296484112737,"y_unknown":1.866484159231186,"z_excellent":2324772.4667191505,"z_good":3595976.260304451,"z_moderate":560821.83532416821,"z_poor":4349254.3578147888,"z_unknown":4436775.91085434},"name":"0_36"},{"__type":"Arm","parameters":{"x_excellent":0.48980775475502014,"x_good":0.32618007063865662,"x_moderate":0.3164043128490448,"x_poor":0.15930832922458649,"x_unknown":0.4107973575592041,"y_excellent":2.6641638576984406,"y_good":2.4595362901687623,"y_moderate":2.23267924785614,"y_poor":2.2078163504600523,"y_unknown":0.87130182683467861,"z_excellent":1401192.8990483284,"z_good":3234890.5503749847,"z_moderate":2602361.74762249,"z_poor":1920396.5738415718,"z_unknown":802614.84086513519},"name":"0_37"},{"__type":"Arm","parameters":{"x_excellent":0.77222514152526855,"x_good":0.7488667368888855,"x_moderate":0.6209447979927063,"x_poor":0.3358210027217865,"x_unknown":0.74328041076660156,"y_excellent":2.2474978029727937,"y_good":0.79729560762643814,"y_moderate":0.36823786050081253,"y_poor":0.11505532385781408,"y_unknown":0.998822745680809,"z_excellent":3619759.9709033966,"z_good":3874774.4798660278,"z_moderate":3562827.8851509094,"z_poor":3417651.3910293579,"z_unknown":1690341.6693210602},"name":"0_38"},{"__type":"Arm","parameters":{"x_excellent":0.83508199453353882,"x_good":0.75142353773117065,"x_moderate":0.57121479511260986,"x_poor":0.29336965084075928,"x_unknown":0.78061878681182861,"y_excellent":2.42587463259697,"y_good":1.7096932709217072,"y_moderate":1.5020962536334992,"y_poor":1.2352067798376083,"y_unknown":0.434840376675129,"z_excellent":3947263.5924816132,"z_good":4536642.6527500153,"z_moderate":3006026.291847229,"z_poor":215445.68948447704,"z_unknown":3670402.6252031326},"name":"0_39"},{"__type":"Arm","parameters":{"x_excellent":0.8199276328086853,"x_good":0.80790376663208008,"x_moderate":0.78555512428283691,"x_poor":0.19751028716564178,"x_unknown":0.58093583583831787,"y_excellent":2.7783069550991057,"y_good":2.5766540229320527,"y_moderate":1.8152898013591767,"y_poor":0.6704525768756866,"y_unknown":1.0360167503356934,"z_excellent":2694971.6120958328,"z_good":1074606.1973273754,"z_moderate":3787668.052315712,"z_poor":3906213.966012001,"z_unknown":4225422.1588373184},"name":"0_40"},{"__type":"Arm","parameters":{"x_excellent":0.90985935926437378,"x_good":0.84568780660629272,"x_moderate":0.41423299908638,"x_poor":0.20755298435688019,"x_unknown":0.71293586492538452,"y_excellent":2.5904098749160767,"y_good":2.1456283390522004,"y_moderate":2.0604693114757535,"y_poor":0.676108255982399,"y_unknown":2.7806831717491152,"z_excellent":920173.98327589035,"z_good":2728654.9001932144,"z_moderate":2948313.8173818588,"z_poor":1904612.0688319206,"z_unknown":982618.2097196579},"name":"0_41"},{"__type":"Arm","parameters":{"x_excellent":0.55807554721832275,"x_good":0.51272368431091309,"x_moderate":0.33204546570777893,"x_poor":0.25182068347930908,"x_unknown":0.31463998556137085,"y_excellent":2.956348794698715,"y_good":2.451867127418518,"y_moderate":1.734304666519165,"y_poor":0.29675095900893211,"y_unknown":1.2710720598697662,"z_excellent":578293.10111701488,"z_good":1312060.7063174248,"z_moderate":3257366.9254779816,"z_poor":4687589.892745018,"z_unknown":4593998.7152814865},"name":"0_42"},{"__type":"Arm","parameters":{"x_excellent":0.77401471138000488,"x_good":0.76421648263931274,"x_moderate":0.6118054986000061,"x_poor":0.19328300654888153,"x_unknown":0.13622443377971649,"y_excellent":2.8257604181766509,"y_good":1.9049468219280243,"y_moderate":1.2219735503196716,"y_poor":0.46385836899280553,"y_unknown":2.2740067839622498,"z_excellent":1540228.6633849144,"z_good":3319785.9257459641,"z_moderate":2780087.3845815659,"z_poor":177991.73351377249,"z_unknown":4955297.4462509155},"name":"0_43"},{"__type":"Arm","parameters":{"x_excellent":0.99161362648010254,"x_good":0.288806676864624,"x_moderate":0.22180925309658051,"x_poor":0.16066597402095795,"x_unknown":0.91046464443206787,"y_excellent":2.5948169469833373,"y_good":2.3434288859367371,"y_moderate":0.7853922262787818,"y_poor":0.32321689948439597,"y_unknown":0.70312270373106,"z_excellent":4940635.8748674393,"z_good":3533229.76231575,"z_moderate":2808276.9721746445,"z_poor":757893.18308234215,"z_unknown":895084.63367819786},"name":"0_44"},{"__type":"Arm","parameters":{"x_excellent":0.96067255735397339,"x_good":0.93847459554672241,"x_moderate":0.26819509267807007,"x_poor":0.096276551485061646,"x_unknown":0.69951313734054565,"y_excellent":2.0365794062614442,"y_good":1.455660206079483,"y_moderate":1.2832520067691804,"y_poor":0.25727161541581156,"y_unknown":1.9115107595920564,"z_excellent":3437792.5008535385,"z_good":1670128.8640499115,"z_moderate":673514.35422897339,"z_poor":4648012.2357606888,"z_unknown":4904213.70267868},"name":"0_45"},{"__type":"Arm","parameters":{"x_excellent":0.87235075235366821,"x_good":0.75719189643859863,"x_moderate":0.73774713277816772,"x_poor":0.56937503814697266,"x_unknown":0.711272656917572,"y_excellent":1.8843973100185394,"y_good":1.5476426243782044,"y_moderate":1.4086145907640457,"y_poor":1.0838745176792144,"y_unknown":1.0523232281208039,"z_excellent":1046615.2474284172,"z_good":1224961.4335596561,"z_moderate":575194.08017396927,"z_poor":1089298.0843782425,"z_unknown":1405937.3378753662},"name":"0_46"},{"__type":"Arm","parameters":{"x_excellent":0.94017273187637329,"x_good":0.11826977133750916,"x_moderate":0.10409756004810333,"x_poor":0.10261314362287521,"x_unknown":0.58234471082687378,"y_excellent":2.6132194459438325,"y_good":2.16911860704422,"y_moderate":1.7944587111473085,"y_poor":0.93753365874290462,"y_unknown":0.33370554000139235,"z_excellent":355435.56753546,"z_good":1299753.2829642296,"z_moderate":479100.60621798038,"z_poor":980054.72868680954,"z_unknown":348339.06441926956},"name":"0_47"},{"__type":"Arm","parameters":{"x_excellent":0.85155946016311646,"x_good":0.81649911403656006,"x_moderate":0.23767460882663727,"x_poor":0.059808313846588135,"x_unknown":0.27144396305084229,"y_excellent":2.0032461702823636,"y_good":1.9461683988571168,"y_moderate":1.6895247280597687,"y_poor":0.79361577332019806,"y_unknown":0.51547085940837856,"z_excellent":735321.14028930664,"z_good":2757238.37018013,"z_moderate":2831085.2706432343,"z_poor":4329070.171713829,"z_unknown":4819356.3878536224},"name":"0_48"},{"__type":"Arm","parameters":{"x_excellent":0.73407602310180664,"x_good":0.51841306686401367,"x_moderate":0.34745776653289795,"x_poor":0.013926948420703411,"x_unknown":0.93794286251068115,"y_excellent":2.0802705407142636,"y_good":1.7004694640636444,"y_moderate":1.16155503988266,"y_poor":0.92494603693485256,"y_unknown":2.6403512179851534,"z_excellent":1682049.0434765816,"z_good":3051590.371131897,"z_moderate":4506736.5050315857,"z_poor":3193331.6797018051,"z_unknown":1314076.292514801},"name":"0_49"},{"__type":"Arm","parameters":{"x_excellent":0.98512578010559082,"x_good":0.47234725952148438,"x_moderate":0.047346904873847961,"x_poor":0.04615919291973114,"x_unknown":0.32933288812637329,"y_excellent":1.8857856690883636,"y_good":1.7652426719665528,"y_moderate":1.574286949634552,"y_poor":0.53090697675943377,"y_unknown":1.1396271944046021,"z_excellent":1176317.1054422855,"z_good":4065954.3722867966,"z_moderate":3706446.847319603,"z_poor":4813271.1261510849,"z_unknown":3088327.944278717},"name":"0_50"},{"__type":"Arm","parameters":{"x_excellent":0.61189430952072144,"x_good":0.53928738832473755,"x_moderate":0.47392469644546509,"x_poor":0.28561806678771973,"x_unknown":0.6127161979675293,"y_excellent":2.5039677560329436,"y_good":2.2553762912750246,"y_moderate":1.3852747052907943,"y_poor":1.1365300059318544,"y_unknown":0.38519616872072215,"z_excellent":2259355.6821346283,"z_good":1284182.0940375328,"z_moderate":4729076.7729282379,"z_poor":2256961.9983434677,"z_unknown":1571872.7618455887},"name":"0_51"},{"__type":"Arm","parameters":{"x_excellent":0.63648658990859985,"x_good":0.59295189380645752,"x_moderate":0.56757044792175293,"x_poor":0.54495507478713989,"x_unknown":0.26646077632904053,"y_excellent":2.6421609938144686,"y_good":2.046683555841446,"y_moderate":1.9068679153919221,"y_poor":1.6688134253025055,"y_unknown":0.31343229115009308,"z_excellent":2305083.2152366638,"z_good":4575463.5244607925,"z_moderate":652675.873413682,"z_poor":1176409.6014201641,"z_unknown":901856.01785779},"name":"0_52"},{"__type":"Arm","parameters":{"x_excellent":0.91749554872512817,"x_good":0.68300533294677734,"x_moderate":0.29135122895240784,"x_poor":0.13539499044418335,"x_unknown":0.012774555943906307,"y_excellent":1.5843356132507325,"y_good":1.4463293164968491,"y_moderate":0.46635830551385882,"y_poor":0.43307485133409496,"y_unknown":2.2775174379348755,"z_excellent":1074825.1192271709,"z_good":4262690.2192831039,"z_moderate":4626980.3911447525,"z_poor":1997718.0480957031,"z_unknown":2416758.3152651787},"name":"0_53"},{"__type":"Arm","parameters":{"x_excellent":0.854121208190918,"x_good":0.79662346839904785,"x_moderate":0.43395376205444336,"x_poor":0.0884990468621254,"x_unknown":0.73029458522796631,"y_excellent":2.678483557701111,"y_good":2.4495526194572448,"y_moderate":2.3929716289043426,"y_poor":1.9005207359790803,"y_unknown":2.2208194255828859,"z_excellent":1745007.6773762703,"z_good":4673714.6109342575,"z_moderate":1985641.348361969,"z_poor":4023899.8293876648,"z_unknown":1729200.0114917755},"name":"0_54"},{"__type":"Arm","parameters":{"x_excellent":0.92265313863754272,"x_good":0.87147355079650879,"x_moderate":0.30144473910331726,"x_poor":0.038530498743057251,"x_unknown":0.35999166965484619,"y_excellent":1.1379909634590148,"y_good":0.71585418283939362,"y_moderate":0.43222577348351476,"y_poor":0.329797625541687,"y_unknown":0.58184062838554385,"z_excellent":2871378.9969682693,"z_good":3055913.3410453796,"z_moderate":1171367.5379753113,"z_poor":2714458.0215215683,"z_unknown":514344.74550187588},"name":"0_55"},{"__type":"Arm","parameters":{"x_excellent":0.83770662546157837,"x_good":0.51580595970153809,"x_moderate":0.48751965165138245,"x_poor":0.18852809071540833,"x_unknown":0.61372643709182739,"y_excellent":2.3738775432109831,"y_good":1.6866178512573242,"y_moderate":0.57164758890867229,"y_poor":0.5256347730755806,"y_unknown":1.5402488172054292,"z_excellent":2205375.5015134811,"z_good":4140868.4432506561,"z_moderate":1604011.9424462318,"z_poor":1033236.6704940796,"z_unknown":182089.53030407429},"name":"0_56"},{"__type":"Arm","parameters":{"x_excellent":0.9442518949508667,"x_good":0.88394969701766968,"x_moderate":0.651685357093811,"x_poor":0.54006725549697876,"x_unknown":0.89103972911834717,"y_excellent":2.9792337298393248,"y_good":2.8727668821811676,"y_moderate":1.8587437808513643,"y_poor":0.5185031414031982,"y_unknown":1.7910723388195038,"z_excellent":67096.524313092232,"z_good":1444159.7148776054,"z_moderate":4765501.0104179382,"z_poor":4964362.6421689987,"z_unknown":3127313.74502182},"name":"0_57"},{"__type":"Arm","parameters":{"x_excellent":0.88834404945373535,"x_good":0.774753212928772,"x_moderate":0.63781291246414185,"x_poor":0.19885392487049103,"x_unknown":0.3270973265171051,"y_excellent":0.943538674712181,"y_good":0.51286928504705431,"y_moderate":0.4610256247222424,"y_poor":0.11418152255937458,"y_unknown":2.1569187819957731,"z_excellent":856587.64541149139,"z_good":2136567.0502185822,"z_moderate":825478.23861241341,"z_poor":1074376.0637938976,"z_unknown":1945706.3943147659},"name":"0_58"},{"__type":"Arm","parameters":{"x_excellent":0.64838272333145142,"x_good":0.6224287748336792,"x_moderate":0.12889641523361206,"x_poor":0.0021690968424081802,"x_unknown":0.924673855304718,"y_excellent":2.9905953884124754,"y_good":0.88308412432670591,"y_moderate":0.5819163382053375,"y_poor":0.10730242440477014,"y_unknown":1.6393661081790925,"z_excellent":3447038.8531684875,"z_good":2891941.7232275009,"z_moderate":804404.49789166451,"z_poor":1160246.1874485016,"z_unknown":4542903.7600755692},"name":"0_59"},{"__type":"Arm","parameters":{"x_excellent":0.79678612947463989,"x_good":0.49110028147697449,"x_moderate":0.38898536562919617,"x_poor":0.26708555221557617,"x_unknown":0.31541213393211365,"y_excellent":2.0720790147781369,"y_good":1.726222211122513,"y_moderate":0.86126111447811127,"y_poor":0.79625684469938274,"y_unknown":1.9912971556186676,"z_excellent":3958787.0866060257,"z_good":3740302.7355670929,"z_moderate":3638767.5255537033,"z_poor":1287602.9700040817,"z_unknown":4455625.3224611282},"name":"0_60"},{"__type":"Arm","parameters":{"x_excellent":0.50077199935913086,"x_good":0.21378564834594727,"x_moderate":0.063377954065799713,"x_poor":0.015879204496741295,"x_unknown":0.99031245708465576,"y_excellent":2.3945426940917969,"y_good":1.4236395329236984,"y_moderate":0.51911543160676954,"y_poor":0.41250314936041832,"y_unknown":2.9154250442981722,"z_excellent":3586205.9116363525,"z_good":4096727.6513576508,"z_moderate":471279.49595451355,"z_poor":406645.01786231995,"z_unknown":2599197.706580162},"name":"0_61"},{"__type":"Arm","parameters":{"x_excellent":0.8359343409538269,"x_good":0.82277476787567139,"x_moderate":0.505788266658783,"x_poor":0.17802298069000244,"x_unknown":0.70850145816802979,"y_excellent":2.8446714520454406,"y_good":2.6066831648349762,"y_moderate":2.3757377922534944,"y_poor":1.6855916202068328,"y_unknown":0.5098012655973434,"z_excellent":4689886.50739193,"z_good":663633.58572125435,"z_moderate":2331521.72267437,"z_poor":2229135.6086730957,"z_unknown":917563.73792886734},"name":"0_62"},{"__type":"Arm","parameters":{"x_excellent":0.89734697341918945,"x_good":0.71715843677520752,"x_moderate":0.64442735910415649,"x_poor":0.10003725439310074,"x_unknown":0.050079178065061569,"y_excellent":1.7631141543388367,"y_good":1.243703305721283,"y_moderate":0.49481517225503924,"y_poor":0.19551184847950936,"y_unknown":1.1777444958686829,"z_excellent":2783564.7612810135,"z_good":847762.7620100975,"z_moderate":4948048.2399463654,"z_poor":4256544.7688102722,"z_unknown":58399.2516156286},"name":"0_63"}],"weights":[1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3900000000000001,1.3800000000000001,1.3800000000000001,1.3800000000000001,1.3800000000000001,1.3800000000000001,1.3800000000000001,1.3800000000000001],"optimization_config":null,"search_space":null,"time_created":{"__type":"datetime","value":"2019-04-23 21:08:25.173123"},"model_predictions":null,"best_arm_predictions":null,"generator_run_type":null,"index":null,"fit_time":null,"gen_time":null},"weight":1}],"runner":null,"abandoned_arms_metadata":{},"num_arms_created":64}},"is_test":false,"data_by_trial":{"0":{"__type":"OrderedDict","value":[[1556078905186,{"__type":"Data","df":{"__type":"DataFrame","value":"{\"arm_name\":{\"0\":\"0_0\",\"1\":\"0_0\",\"2\":\"0_17\",\"3\":\"0_30\",\"4\":\"0_27\",\"5\":\"0_51\",\"6\":\"0_30\",\"7\":\"0_30\",\"8\":\"0_10\",\"9\":\"0_31\",\"10\":\"0_31\",\"11\":\"0_24\",\"12\":\"0_31\",\"13\":\"0_1\",\"14\":\"0_31\",\"15\":\"0_31\",\"16\":\"0_5\",\"17\":\"0_61\",\"18\":\"0_1\",\"19\":\"0_51\",\"20\":\"0_31\",\"21\":\"0_32\",\"22\":\"0_32\",\"23\":\"0_32\",\"24\":\"0_18\",\"25\":\"0_32\",\"26\":\"0_10\",\"27\":\"0_32\",\"28\":\"0_24\",\"29\":\"0_61\",\"30\":\"0_32\",\"31\":\"0_33\",\"32\":\"0_26\",\"33\":\"0_40\",\"34\":\"0_33\",\"35\":\"0_60\",\"36\":\"0_33\",\"37\":\"0_33\",\"38\":\"0_33\",\"39\":\"0_33\",\"40\":\"0_34\",\"41\":\"0_61\",\"42\":\"0_34\",\"43\":\"0_10\",\"44\":\"0_24\",\"45\":\"0_49\",\"46\":\"0_18\",\"47\":\"0_52\",\"48\":\"0_34\",\"49\":\"0_41\",\"50\":\"0_34\",\"51\":\"0_34\",\"52\":\"0_34\",\"53\":\"0_61\",\"54\":\"0_35\",\"55\":\"0_35\",\"56\":\"0_35\",\"57\":\"0_18\",\"58\":\"0_35\",\"59\":\"0_35\",\"60\":\"0_52\",\"61\":\"0_35\",\"62\":\"0_24\",\"63\":\"0_41\",\"64\":\"0_11\",\"65\":\"0_50\",\"66\":\"0_36\",\"67\":\"0_36\",\"68\":\"0_38\",\"69\":\"0_36\",\"70\":\"0_36\",\"71\":\"0_36\",\"72\":\"0_36\",\"73\":\"0_12\",\"74\":\"0_37\",\"75\":\"0_37\",\"76\":\"0_37\",\"77\":\"0_62\",\"78\":\"0_41\",\"79\":\"0_50\",\"80\":\"0_11\",\"81\":\"0_41\",\"82\":\"0_11\",\"83\":\"0_41\",\"84\":\"0_41\",\"85\":\"0_42\",\"86\":\"0_52\",\"87\":\"0_42\",\"88\":\"0_25\",\"89\":\"0_62\",\"90\":\"0_10\",\"91\":\"0_42\",\"92\":\"0_42\",\"93\":\"0_42\",\"94\":\"0_37\",\"95\":\"0_42\",\"96\":\"0_43\",\"97\":\"0_43\",\"98\":\"0_11\",\"99\":\"0_52\",\"100\":\"0_43\",\"101\":\"0_4\",\"102\":\"0_62\",\"103\":\"0_43\",\"104\":\"0_43\",\"105\":\"0_25\",\"106\":\"0_43\",\"107\":\"0_44\",\"108\":\"0_37\",\"109\":\"0_44\",\"110\":\"0_44\",\"111\":\"0_44\",\"112\":\"0_60\",\"113\":\"0_18\",\"114\":\"0_25\",\"115\":\"0_62\",\"116\":\"0_44\",\"117\":\"0_44\",\"118\":\"0_12\",\"119\":\"0_45\",\"120\":\"0_45\",\"121\":\"0_25\",\"122\":\"0_45\",\"123\":\"0_38\",\"124\":\"0_18\",\"125\":\"0_45\",\"126\":\"0_45\",\"127\":\"0_39\",\"128\":\"0_52\",\"129\":\"0_45\",\"130\":\"0_46\",\"131\":\"0_46\",\"132\":\"0_46\",\"133\":\"0_46\",\"134\":\"0_12\",\"135\":\"0_18\",\"136\":\"0_46\",\"137\":\"0_25\",\"138\":\"0_38\",\"139\":\"0_6\",\"140\":\"0_62\",\"141\":\"0_46\",\"142\":\"0_52\",\"143\":\"0_47\",\"144\":\"0_47\",\"145\":\"0_47\",\"146\":\"0_19\",\"147\":\"0_47\",\"148\":\"0_47\",\"149\":\"0_47\",\"150\":\"0_48\",\"151\":\"0_48\",\"152\":\"0_62\",\"153\":\"0_12\",\"154\":\"0_38\",\"155\":\"0_53\",\"156\":\"0_26\",\"157\":\"0_60\",\"158\":\"0_48\",\"159\":\"0_48\",\"160\":\"0_48\",\"161\":\"0_48\",\"162\":\"0_49\",\"163\":\"0_49\",\"164\":\"0_27\",\"165\":\"0_49\",\"166\":\"0_49\",\"167\":\"0_49\",\"168\":\"0_19\",\"169\":\"0_53\",\"170\":\"0_26\",\"171\":\"0_53\",\"172\":\"0_26\",\"173\":\"0_53\",\"174\":\"0_53\",\"175\":\"0_53\",\"176\":\"0_14\",\"177\":\"0_0\",\"178\":\"0_39\",\"179\":\"0_19\",\"180\":\"0_13\",\"181\":\"0_54\",\"182\":\"0_54\",\"183\":\"0_12\",\"184\":\"0_54\",\"185\":\"0_54\",\"186\":\"0_54\",\"187\":\"0_26\",\"188\":\"0_63\",\"189\":\"0_54\",\"190\":\"0_19\",\"191\":\"0_55\",\"192\":\"0_55\",\"193\":\"0_39\",\"194\":\"0_55\",\"195\":\"0_55\",\"196\":\"0_5\",\"197\":\"0_13\",\"198\":\"0_55\",\"199\":\"0_55\",\"200\":\"0_38\",\"201\":\"0_1\",\"202\":\"0_56\",\"203\":\"0_56\",\"204\":\"0_10\",\"205\":\"0_56\",\"206\":\"0_56\",\"207\":\"0_0\",\"208\":\"0_56\",\"209\":\"0_5\",\"210\":\"0_56\",\"211\":\"0_57\",\"212\":\"0_50\",\"213\":\"0_63\",\"214\":\"0_57\",\"215\":\"0_13\",\"216\":\"0_57\",\"217\":\"0_57\",\"218\":\"0_57\",\"219\":\"0_27\",\"220\":\"0_57\",\"221\":\"0_11\",\"222\":\"0_5\",\"223\":\"0_17\",\"224\":\"0_19\",\"225\":\"0_58\",\"226\":\"0_63\",\"227\":\"0_58\",\"228\":\"0_58\",\"229\":\"0_58\",\"230\":\"0_58\",\"231\":\"0_58\",\"232\":\"0_13\",\"233\":\"0_59\",\"234\":\"0_59\",\"235\":\"0_19\",\"236\":\"0_27\",\"237\":\"0_5\",\"238\":\"0_63\",\"239\":\"0_39\",\"240\":\"0_59\",\"241\":\"0_59\",\"242\":\"0_59\",\"243\":\"0_59\",\"244\":\"0_6\",\"245\":\"0_6\",\"246\":\"0_11\",\"247\":\"0_6\",\"248\":\"0_6\",\"249\":\"0_13\",\"250\":\"0_63\",\"251\":\"0_39\",\"252\":\"0_63\",\"253\":\"0_4\",\"254\":\"0_7\",\"255\":\"0_7\",\"256\":\"0_7\",\"257\":\"0_28\",\"258\":\"0_23\",\"259\":\"0_50\",\"260\":\"0_27\",\"261\":\"0_7\",\"262\":\"0_14\",\"263\":\"0_27\",\"264\":\"0_7\",\"265\":\"0_7\",\"266\":\"0_8\",\"267\":\"0_4\",\"268\":\"0_2\",\"269\":\"0_8\",\"270\":\"0_8\",\"271\":\"0_8\",\"272\":\"0_50\",\"273\":\"0_8\",\"274\":\"0_8\",\"275\":\"0_6\",\"276\":\"0_28\",\"277\":\"0_9\",\"278\":\"0_9\",\"279\":\"0_5\",\"280\":\"0_14\",\"281\":\"0_9\",\"282\":\"0_25\",\"283\":\"0_9\",\"284\":\"0_9\",\"285\":\"0_1\",\"286\":\"0_9\",\"287\":\"0_60\",\"288\":\"status_quo\",\"289\":\"status_quo\",\"290\":\"0_2\",\"291\":\"status_quo\",\"292\":\"0_28\",\"293\":\"status_quo\",\"294\":\"status_quo\",\"295\":\"status_quo\",\"296\":\"0_4\",\"297\":\"0_14\",\"298\":\"0_26\",\"299\":\"0_60\",\"300\":\"0_0\",\"301\":\"0_2\",\"302\":\"0_14\",\"303\":\"0_14\",\"304\":\"0_15\",\"305\":\"0_15\",\"306\":\"0_15\",\"307\":\"0_28\",\"308\":\"0_15\",\"309\":\"0_15\",\"310\":\"0_4\",\"311\":\"0_60\",\"312\":\"0_2\",\"313\":\"0_50\",\"314\":\"0_15\",\"315\":\"0_16\",\"316\":\"0_16\",\"317\":\"0_0\",\"318\":\"0_16\",\"319\":\"0_16\",\"320\":\"0_16\",\"321\":\"0_16\",\"322\":\"0_28\",\"323\":\"0_2\",\"324\":\"0_12\",\"325\":\"0_2\",\"326\":\"0_51\",\"327\":\"0_20\",\"328\":\"0_20\",\"329\":\"0_1\",\"330\":\"0_37\",\"331\":\"0_61\",\"332\":\"0_40\",\"333\":\"0_20\",\"334\":\"0_28\",\"335\":\"0_4\",\"336\":\"0_20\",\"337\":\"0_20\",\"338\":\"0_20\",\"339\":\"0_51\",\"340\":\"0_21\",\"341\":\"0_21\",\"342\":\"0_21\",\"343\":\"0_61\",\"344\":\"0_21\",\"345\":\"0_21\",\"346\":\"0_17\",\"347\":\"0_40\",\"348\":\"0_21\",\"349\":\"0_1\",\"350\":\"0_29\",\"351\":\"0_22\",\"352\":\"0_38\",\"353\":\"0_22\",\"354\":\"0_22\",\"355\":\"0_24\",\"356\":\"0_22\",\"357\":\"0_17\",\"358\":\"0_22\",\"359\":\"0_22\",\"360\":\"0_23\",\"361\":\"0_40\",\"362\":\"0_23\",\"363\":\"0_23\",\"364\":\"0_23\",\"365\":\"0_51\",\"366\":\"0_29\",\"367\":\"0_39\",\"368\":\"0_17\",\"369\":\"0_23\",\"370\":\"0_29\",\"371\":\"0_29\",\"372\":\"0_29\",\"373\":\"0_29\",\"374\":\"0_3\",\"375\":\"0_40\",\"376\":\"0_3\",\"377\":\"0_10\",\"378\":\"0_51\",\"379\":\"0_17\",\"380\":\"0_13\",\"381\":\"0_3\",\"382\":\"0_3\",\"383\":\"0_3\",\"384\":\"0_24\",\"385\":\"0_3\",\"386\":\"0_30\",\"387\":\"0_30\",\"388\":\"0_30\",\"389\":\"0_40\"},\"trial_index\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":0,\"113\":0,\"114\":0,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":0,\"120\":0,\"121\":0,\"122\":0,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":0,\"128\":0,\"129\":0,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":0,\"144\":0,\"145\":0,\"146\":0,\"147\":0,\"148\":0,\"149\":0,\"150\":0,\"151\":0,\"152\":0,\"153\":0,\"154\":0,\"155\":0,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":0,\"163\":0,\"164\":0,\"165\":0,\"166\":0,\"167\":0,\"168\":0,\"169\":0,\"170\":0,\"171\":0,\"172\":0,\"173\":0,\"174\":0,\"175\":0,\"176\":0,\"177\":0,\"178\":0,\"179\":0,\"180\":0,\"181\":0,\"182\":0,\"183\":0,\"184\":0,\"185\":0,\"186\":0,\"187\":0,\"188\":0,\"189\":0,\"190\":0,\"191\":0,\"192\":0,\"193\":0,\"194\":0,\"195\":0,\"196\":0,\"197\":0,\"198\":0,\"199\":0,\"200\":0,\"201\":0,\"202\":0,\"203\":0,\"204\":0,\"205\":0,\"206\":0,\"207\":0,\"208\":0,\"209\":0,\"210\":0,\"211\":0,\"212\":0,\"213\":0,\"214\":0,\"215\":0,\"216\":0,\"217\":0,\"218\":0,\"219\":0,\"220\":0,\"221\":0,\"222\":0,\"223\":0,\"224\":0,\"225\":0,\"226\":0,\"227\":0,\"228\":0,\"229\":0,\"230\":0,\"231\":0,\"232\":0,\"233\":0,\"234\":0,\"235\":0,\"236\":0,\"237\":0,\"238\":0,\"239\":0,\"240\":0,\"241\":0,\"242\":0,\"243\":0,\"244\":0,\"245\":0,\"246\":0,\"247\":0,\"248\":0,\"249\":0,\"250\":0,\"251\":0,\"252\":0,\"253\":0,\"254\":0,\"255\":0,\"256\":0,\"257\":0,\"258\":0,\"259\":0,\"260\":0,\"261\":0,\"262\":0,\"263\":0,\"264\":0,\"265\":0,\"266\":0,\"267\":0,\"268\":0,\"269\":0,\"270\":0,\"271\":0,\"272\":0,\"273\":0,\"274\":0,\"275\":0,\"276\":0,\"277\":0,\"278\":0,\"279\":0,\"280\":0,\"281\":0,\"282\":0,\"283\":0,\"284\":0,\"285\":0,\"286\":0,\"287\":0,\"288\":0,\"289\":0,\"290\":0,\"291\":0,\"292\":0,\"293\":0,\"294\":0,\"295\":0,\"296\":0,\"297\":0,\"298\":0,\"299\":0,\"300\":0,\"301\":0,\"302\":0,\"303\":0,\"304\":0,\"305\":0,\"306\":0,\"307\":0,\"308\":0,\"309\":0,\"310\":0,\"311\":0,\"312\":0,\"313\":0,\"314\":0,\"315\":0,\"316\":0,\"317\":0,\"318\":0,\"319\":0,\"320\":0,\"321\":0,\"322\":0,\"323\":0,\"324\":0,\"325\":0,\"326\":0,\"327\":0,\"328\":0,\"329\":0,\"330\":0,\"331\":0,\"332\":0,\"333\":0,\"334\":0,\"335\":0,\"336\":0,\"337\":0,\"338\":0,\"339\":0,\"340\":0,\"341\":0,\"342\":0,\"343\":0,\"344\":0,\"345\":0,\"346\":0,\"347\":0,\"348\":0,\"349\":0,\"350\":0,\"351\":0,\"352\":0,\"353\":0,\"354\":0,\"355\":0,\"356\":0,\"357\":0,\"358\":0,\"359\":0,\"360\":0,\"361\":0,\"362\":0,\"363\":0,\"364\":0,\"365\":0,\"366\":0,\"367\":0,\"368\":0,\"369\":0,\"370\":0,\"371\":0,\"372\":0,\"373\":0,\"374\":0,\"375\":0,\"376\":0,\"377\":0,\"378\":0,\"379\":0,\"380\":0,\"381\":0,\"382\":0,\"383\":0,\"384\":0,\"385\":0,\"386\":0,\"387\":0,\"388\":0,\"389\":0},\"end_time\":{\"0\":1553904000000,\"1\":1553904000000,\"2\":1553904000000,\"3\":1553904000000,\"4\":1553904000000,\"5\":1553904000000,\"6\":1553904000000,\"7\":1553904000000,\"8\":1553904000000,\"9\":1553904000000,\"10\":1553904000000,\"11\":1553904000000,\"12\":1553904000000,\"13\":1553904000000,\"14\":1553904000000,\"15\":1553904000000,\"16\":1553904000000,\"17\":1553904000000,\"18\":1553904000000,\"19\":1553904000000,\"20\":1553904000000,\"21\":1553904000000,\"22\":1553904000000,\"23\":1553904000000,\"24\":1553904000000,\"25\":1553904000000,\"26\":1553904000000,\"27\":1553904000000,\"28\":1553904000000,\"29\":1553904000000,\"30\":1553904000000,\"31\":1553904000000,\"32\":1553904000000,\"33\":1553904000000,\"34\":1553904000000,\"35\":1553904000000,\"36\":1553904000000,\"37\":1553904000000,\"38\":1553904000000,\"39\":1553904000000,\"40\":1553904000000,\"41\":1553904000000,\"42\":1553904000000,\"43\":1553904000000,\"44\":1553904000000,\"45\":1553904000000,\"46\":1553904000000,\"47\":1553904000000,\"48\":1553904000000,\"49\":1553904000000,\"50\":1553904000000,\"51\":1553904000000,\"52\":1553904000000,\"53\":1553904000000,\"54\":1553904000000,\"55\":1553904000000,\"56\":1553904000000,\"57\":1553904000000,\"58\":1553904000000,\"59\":1553904000000,\"60\":1553904000000,\"61\":1553904000000,\"62\":1553904000000,\"63\":1553904000000,\"64\":1553904000000,\"65\":1553904000000,\"66\":1553904000000,\"67\":1553904000000,\"68\":1553904000000,\"69\":1553904000000,\"70\":1553904000000,\"71\":1553904000000,\"72\":1553904000000,\"73\":1553904000000,\"74\":1553904000000,\"75\":1553904000000,\"76\":1553904000000,\"77\":1553904000000,\"78\":1553904000000,\"79\":1553904000000,\"80\":1553904000000,\"81\":1553904000000,\"82\":1553904000000,\"83\":1553904000000,\"84\":1553904000000,\"85\":1553904000000,\"86\":1553904000000,\"87\":1553904000000,\"88\":1553904000000,\"89\":1553904000000,\"90\":1553904000000,\"91\":1553904000000,\"92\":1553904000000,\"93\":1553904000000,\"94\":1553904000000,\"95\":1553904000000,\"96\":1553904000000,\"97\":1553904000000,\"98\":1553904000000,\"99\":1553904000000,\"100\":1553904000000,\"101\":1553904000000,\"102\":1553904000000,\"103\":1553904000000,\"104\":1553904000000,\"105\":1553904000000,\"106\":1553904000000,\"107\":1553904000000,\"108\":1553904000000,\"109\":1553904000000,\"110\":1553904000000,\"111\":1553904000000,\"112\":1553904000000,\"113\":1553904000000,\"114\":1553904000000,\"115\":1553904000000,\"116\":1553904000000,\"117\":1553904000000,\"118\":1553904000000,\"119\":1553904000000,\"120\":1553904000000,\"121\":1553904000000,\"122\":1553904000000,\"123\":1553904000000,\"124\":1553904000000,\"125\":1553904000000,\"126\":1553904000000,\"127\":1553904000000,\"128\":1553904000000,\"129\":1553904000000,\"130\":1553904000000,\"131\":1553904000000,\"132\":1553904000000,\"133\":1553904000000,\"134\":1553904000000,\"135\":1553904000000,\"136\":1553904000000,\"137\":1553904000000,\"138\":1553904000000,\"139\":1553904000000,\"140\":1553904000000,\"141\":1553904000000,\"142\":1553904000000,\"143\":1553904000000,\"144\":1553904000000,\"145\":1553904000000,\"146\":1553904000000,\"147\":1553904000000,\"148\":1553904000000,\"149\":1553904000000,\"150\":1553904000000,\"151\":1553904000000,\"152\":1553904000000,\"153\":1553904000000,\"154\":1553904000000,\"155\":1553904000000,\"156\":1553904000000,\"157\":1553904000000,\"158\":1553904000000,\"159\":1553904000000,\"160\":1553904000000,\"161\":1553904000000,\"162\":1553904000000,\"163\":1553904000000,\"164\":1553904000000,\"165\":1553904000000,\"166\":1553904000000,\"167\":1553904000000,\"168\":1553904000000,\"169\":1553904000000,\"170\":1553904000000,\"171\":1553904000000,\"172\":1553904000000,\"173\":1553904000000,\"174\":1553904000000,\"175\":1553904000000,\"176\":1553904000000,\"177\":1553904000000,\"178\":1553904000000,\"179\":1553904000000,\"180\":1553904000000,\"181\":1553904000000,\"182\":1553904000000,\"183\":1553904000000,\"184\":1553904000000,\"185\":1553904000000,\"186\":1553904000000,\"187\":1553904000000,\"188\":1553904000000,\"189\":1553904000000,\"190\":1553904000000,\"191\":1553904000000,\"192\":1553904000000,\"193\":1553904000000,\"194\":1553904000000,\"195\":1553904000000,\"196\":1553904000000,\"197\":1553904000000,\"198\":1553904000000,\"199\":1553904000000,\"200\":1553904000000,\"201\":1553904000000,\"202\":1553904000000,\"203\":1553904000000,\"204\":1553904000000,\"205\":1553904000000,\"206\":1553904000000,\"207\":1553904000000,\"208\":1553904000000,\"209\":1553904000000,\"210\":1553904000000,\"211\":1553904000000,\"212\":1553904000000,\"213\":1553904000000,\"214\":1553904000000,\"215\":1553904000000,\"216\":1553904000000,\"217\":1553904000000,\"218\":1553904000000,\"219\":1553904000000,\"220\":1553904000000,\"221\":1553904000000,\"222\":1553904000000,\"223\":1553904000000,\"224\":1553904000000,\"225\":1553904000000,\"226\":1553904000000,\"227\":1553904000000,\"228\":1553904000000,\"229\":1553904000000,\"230\":1553904000000,\"231\":1553904000000,\"232\":1553904000000,\"233\":1553904000000,\"234\":1553904000000,\"235\":1553904000000,\"236\":1553904000000,\"237\":1553904000000,\"238\":1553904000000,\"239\":1553904000000,\"240\":1553904000000,\"241\":1553904000000,\"242\":1553904000000,\"243\":1553904000000,\"244\":1553904000000,\"245\":1553904000000,\"246\":1553904000000,\"247\":1553904000000,\"248\":1553904000000,\"249\":1553904000000,\"250\":1553904000000,\"251\":1553904000000,\"252\":1553904000000,\"253\":1553904000000,\"254\":1553904000000,\"255\":1553904000000,\"256\":1553904000000,\"257\":1553904000000,\"258\":1553904000000,\"259\":1553904000000,\"260\":1553904000000,\"261\":1553904000000,\"262\":1553904000000,\"263\":1553904000000,\"264\":1553904000000,\"265\":1553904000000,\"266\":1553904000000,\"267\":1553904000000,\"268\":1553904000000,\"269\":1553904000000,\"270\":1553904000000,\"271\":1553904000000,\"272\":1553904000000,\"273\":1553904000000,\"274\":1553904000000,\"275\":1553904000000,\"276\":1553904000000,\"277\":1553904000000,\"278\":1553904000000,\"279\":1553904000000,\"280\":1553904000000,\"281\":1553904000000,\"282\":1553904000000,\"283\":1553904000000,\"284\":1553904000000,\"285\":1553904000000,\"286\":1553904000000,\"287\":1553904000000,\"288\":1553904000000,\"289\":1553904000000,\"290\":1553904000000,\"291\":1553904000000,\"292\":1553904000000,\"293\":1553904000000,\"294\":1553904000000,\"295\":1553904000000,\"296\":1553904000000,\"297\":1553904000000,\"298\":1553904000000,\"299\":1553904000000,\"300\":1553904000000,\"301\":1553904000000,\"302\":1553904000000,\"303\":1553904000000,\"304\":1553904000000,\"305\":1553904000000,\"306\":1553904000000,\"307\":1553904000000,\"308\":1553904000000,\"309\":1553904000000,\"310\":1553904000000,\"311\":1553904000000,\"312\":1553904000000,\"313\":1553904000000,\"314\":1553904000000,\"315\":1553904000000,\"316\":1553904000000,\"317\":1553904000000,\"318\":1553904000000,\"319\":1553904000000,\"320\":1553904000000,\"321\":1553904000000,\"322\":1553904000000,\"323\":1553904000000,\"324\":1553904000000,\"325\":1553904000000,\"326\":1553904000000,\"327\":1553904000000,\"328\":1553904000000,\"329\":1553904000000,\"330\":1553904000000,\"331\":1553904000000,\"332\":1553904000000,\"333\":1553904000000,\"334\":1553904000000,\"335\":1553904000000,\"336\":1553904000000,\"337\":1553904000000,\"338\":1553904000000,\"339\":1553904000000,\"340\":1553904000000,\"341\":1553904000000,\"342\":1553904000000,\"343\":1553904000000,\"344\":1553904000000,\"345\":1553904000000,\"346\":1553904000000,\"347\":1553904000000,\"348\":1553904000000,\"349\":1553904000000,\"350\":1553904000000,\"351\":1553904000000,\"352\":1553904000000,\"353\":1553904000000,\"354\":1553904000000,\"355\":1553904000000,\"356\":1553904000000,\"357\":1553904000000,\"358\":1553904000000,\"359\":1553904000000,\"360\":1553904000000,\"361\":1553904000000,\"362\":1553904000000,\"363\":1553904000000,\"364\":1553904000000,\"365\":1553904000000,\"366\":1553904000000,\"367\":1553904000000,\"368\":1553904000000,\"369\":1553904000000,\"370\":1553904000000,\"371\":1553904000000,\"372\":1553904000000,\"373\":1553904000000,\"374\":1553904000000,\"375\":1553904000000,\"376\":1553904000000,\"377\":1553904000000,\"378\":1553904000000,\"379\":1553904000000,\"380\":1553904000000,\"381\":1553904000000,\"382\":1553904000000,\"383\":1553904000000,\"384\":1553904000000,\"385\":1553904000000,\"386\":1553904000000,\"387\":1553904000000,\"388\":1553904000000,\"389\":1553904000000},\"frac_nonnull\":{\"0\":0.4744936234,\"1\":0.0083512814,\"2\":1.0,\"3\":1.0,\"4\":1.0,\"5\":1.0,\"6\":1.0,\"7\":1.0,\"8\":1.0,\"9\":0.4750822596,\"10\":0.0085385178,\"11\":0.0086878016,\"12\":1.0,\"13\":0.4750769231,\"14\":1.0,\"15\":1.0,\"16\":1.0,\"17\":1.0,\"18\":1.0,\"19\":1.0,\"20\":1.0,\"21\":0.4755507191,\"22\":0.008761468,\"23\":1.0,\"24\":0.4747294209,\"25\":1.0,\"26\":1.0,\"27\":1.0,\"28\":1.0,\"29\":1.0,\"30\":1.0,\"31\":0.4752280278,\"32\":1.0,\"33\":1.0,\"34\":0.0086161281,\"35\":1.0,\"36\":1.0,\"37\":1.0,\"38\":1.0,\"39\":1.0,\"40\":0.4753744418,\"41\":1.0,\"42\":0.0085441297,\"43\":1.0,\"44\":1.0,\"45\":1.0,\"46\":0.0086464392,\"47\":0.475155475,\"48\":1.0,\"49\":0.475923931,\"50\":1.0,\"51\":1.0,\"52\":1.0,\"53\":1.0,\"54\":0.4750349762,\"55\":0.0085588835,\"56\":1.0,\"57\":1.0,\"58\":1.0,\"59\":1.0,\"60\":0.0085099582,\"61\":1.0,\"62\":1.0,\"63\":0.0084313554,\"64\":0.4748999434,\"65\":0.4754884758,\"66\":0.4749811702,\"67\":0.0085297245,\"68\":1.0,\"69\":1.0,\"70\":1.0,\"71\":1.0,\"72\":1.0,\"73\":1.0,\"74\":0.4753800656,\"75\":0.0086229618,\"76\":1.0,\"77\":0.4763232081,\"78\":1.0,\"79\":1.0,\"80\":0.008561072,\"81\":1.0,\"82\":1.0,\"83\":1.0,\"84\":1.0,\"85\":0.4746860354,\"86\":1.0,\"87\":0.0086710018,\"88\":1.0,\"89\":0.0084596551,\"90\":0.0085064946,\"91\":1.0,\"92\":1.0,\"93\":1.0,\"94\":1.0,\"95\":1.0,\"96\":0.4765093016,\"97\":0.0083163867,\"98\":1.0,\"99\":1.0,\"100\":1.0,\"101\":1.0,\"102\":1.0,\"103\":1.0,\"104\":1.0,\"105\":1.0,\"106\":1.0,\"107\":0.4746194862,\"108\":1.0,\"109\":0.0088778478,\"110\":1.0,\"111\":1.0,\"112\":1.0,\"113\":1.0,\"114\":0.476005865,\"115\":1.0,\"116\":1.0,\"117\":1.0,\"118\":0.475177785,\"119\":0.4754947443,\"120\":0.0085564296,\"121\":1.0,\"122\":1.0,\"123\":0.4765591032,\"124\":1.0,\"125\":1.0,\"126\":1.0,\"127\":1.0,\"128\":1.0,\"129\":1.0,\"130\":0.4756390067,\"131\":0.0085669291,\"132\":1.0,\"133\":1.0,\"134\":0.0088324446,\"135\":1.0,\"136\":1.0,\"137\":1.0,\"138\":0.0084504305,\"139\":1.0,\"140\":1.0,\"141\":1.0,\"142\":1.0,\"143\":0.4754151584,\"144\":0.008700519,\"145\":1.0,\"146\":0.4737205583,\"147\":1.0,\"148\":1.0,\"149\":1.0,\"150\":0.4759118223,\"151\":0.0086711148,\"152\":1.0,\"153\":1.0,\"154\":1.0,\"155\":0.4765325276,\"156\":0.4761037327,\"157\":1.0,\"158\":1.0,\"159\":1.0,\"160\":1.0,\"161\":1.0,\"162\":0.4748516913,\"163\":0.0086975472,\"164\":1.0,\"165\":1.0,\"166\":1.0,\"167\":1.0,\"168\":0.008735582,\"169\":0.0085774982,\"170\":0.0083629678,\"171\":1.0,\"172\":1.0,\"173\":1.0,\"174\":1.0,\"175\":1.0,\"176\":0.4748326206,\"177\":1.0,\"178\":0.4744574541,\"179\":1.0,\"180\":0.4762869104,\"181\":0.4768777657,\"182\":0.0084408932,\"183\":1.0,\"184\":1.0,\"185\":1.0,\"186\":1.0,\"187\":1.0,\"188\":0.4746052362,\"189\":1.0,\"190\":1.0,\"191\":0.4757253315,\"192\":0.0086651962,\"193\":0.0083332526,\"194\":1.0,\"195\":1.0,\"196\":0.4765834817,\"197\":0.0083703268,\"198\":1.0,\"199\":1.0,\"200\":1.0,\"201\":0.008503937,\"202\":0.4748222842,\"203\":0.0087001531,\"204\":0.4751446687,\"205\":1.0,\"206\":1.0,\"207\":1.0,\"208\":1.0,\"209\":0.0085800429,\"210\":1.0,\"211\":0.4747786745,\"212\":1.0,\"213\":0.0083566888,\"214\":0.0085522133,\"215\":1.0,\"216\":1.0,\"217\":1.0,\"218\":1.0,\"219\":0.4757380748,\"220\":1.0,\"221\":1.0,\"222\":1.0,\"223\":0.4761802081,\"224\":1.0,\"225\":0.4747852246,\"226\":1.0,\"227\":0.0083984242,\"228\":1.0,\"229\":1.0,\"230\":1.0,\"231\":1.0,\"232\":1.0,\"233\":0.4770397105,\"234\":0.0086600328,\"235\":1.0,\"236\":0.0085876707,\"237\":1.0,\"238\":1.0,\"239\":1.0,\"240\":1.0,\"241\":1.0,\"242\":1.0,\"243\":1.0,\"244\":0.4742085123,\"245\":0.0085234346,\"246\":1.0,\"247\":1.0,\"248\":1.0,\"249\":1.0,\"250\":1.0,\"251\":1.0,\"252\":1.0,\"253\":0.4758431977,\"254\":0.476241049,\"255\":0.0088349139,\"256\":1.0,\"257\":1.0,\"258\":1.0,\"259\":0.0086235064,\"260\":1.0,\"261\":1.0,\"262\":0.0085890787,\"263\":1.0,\"264\":1.0,\"265\":1.0,\"266\":0.4758122464,\"267\":0.0086840396,\"268\":0.4738637545,\"269\":0.0084992827,\"270\":1.0,\"271\":1.0,\"272\":1.0,\"273\":1.0,\"274\":1.0,\"275\":1.0,\"276\":0.4749582698,\"277\":0.4761623745,\"278\":0.0086585531,\"279\":1.0,\"280\":1.0,\"281\":1.0,\"282\":0.0085766166,\"283\":1.0,\"284\":1.0,\"285\":1.0,\"286\":1.0,\"287\":0.4755027092,\"288\":0.4753481093,\"289\":0.0085412064,\"290\":0.0085658127,\"291\":1.0,\"292\":0.0086343275,\"293\":1.0,\"294\":1.0,\"295\":1.0,\"296\":1.0,\"297\":1.0,\"298\":1.0,\"299\":0.0085333412,\"300\":1.0,\"301\":1.0,\"302\":1.0,\"303\":1.0,\"304\":0.4759774127,\"305\":0.0086022495,\"306\":1.0,\"307\":1.0,\"308\":1.0,\"309\":1.0,\"310\":1.0,\"311\":1.0,\"312\":1.0,\"313\":1.0,\"314\":1.0,\"315\":0.4777264626,\"316\":0.0085714147,\"317\":1.0,\"318\":1.0,\"319\":1.0,\"320\":1.0,\"321\":1.0,\"322\":1.0,\"323\":1.0,\"324\":1.0,\"325\":1.0,\"326\":0.4750997248,\"327\":0.4764405,\"328\":0.0086742125,\"329\":1.0,\"330\":1.0,\"331\":0.4761607735,\"332\":0.4752263761,\"333\":1.0,\"334\":1.0,\"335\":1.0,\"336\":1.0,\"337\":1.0,\"338\":1.0,\"339\":0.0085672369,\"340\":0.4748690592,\"341\":0.0085741998,\"342\":1.0,\"343\":0.0086229582,\"344\":1.0,\"345\":1.0,\"346\":0.0082399545,\"347\":0.0083817892,\"348\":1.0,\"349\":1.0,\"350\":0.4759216272,\"351\":0.4764104887,\"352\":1.0,\"353\":0.0083150211,\"354\":1.0,\"355\":1.0,\"356\":1.0,\"357\":1.0,\"358\":1.0,\"359\":1.0,\"360\":0.4768998923,\"361\":1.0,\"362\":0.0084450441,\"363\":1.0,\"364\":1.0,\"365\":1.0,\"366\":0.0083839358,\"367\":1.0,\"368\":1.0,\"369\":1.0,\"370\":1.0,\"371\":1.0,\"372\":1.0,\"373\":1.0,\"374\":0.474434852,\"375\":1.0,\"376\":0.0085505015,\"377\":1.0,\"378\":1.0,\"379\":1.0,\"380\":1.0,\"381\":1.0,\"382\":1.0,\"383\":1.0,\"384\":0.4753789296,\"385\":1.0,\"386\":0.4752326105,\"387\":0.0083381365,\"388\":1.0,\"389\":1.0},\"mean\":{\"0\":90.6074849358,\"1\":0.0288193016,\"2\":41328.0447088802,\"3\":21.2695463051,\"4\":21.2604765949,\"5\":573.5779296935,\"6\":582.3547005876,\"7\":41209.2423784148,\"8\":21.2815432149,\"9\":91.6057477503,\"10\":0.0293323771,\"11\":0.0306185261,\"12\":0.9411470737,\"13\":90.4644482132,\"14\":20.9788302527,\"15\":569.7480484644,\"16\":579.7676897432,\"17\":0.9419530776,\"18\":41967.1336975434,\"19\":41683.7377060658,\"20\":41442.4634582619,\"21\":91.3955655847,\"22\":0.0301125364,\"23\":0.9426517116,\"24\":90.892844618,\"25\":21.4926269479,\"26\":577.8771062752,\"27\":597.6072710524,\"28\":0.9418588426,\"29\":21.542354345,\"30\":41331.7252069115,\"31\":89.2750299003,\"32\":21.3792558409,\"33\":41372.6741874313,\"34\":0.029448505,\"35\":591.0607688672,\"36\":0.9424944102,\"37\":21.2366875784,\"38\":590.4706831802,\"39\":41327.505823519,\"40\":90.4607384396,\"41\":595.719429477,\"42\":0.0299601872,\"43\":42649.8933537317,\"44\":21.3851760073,\"45\":40960.7607734098,\"46\":0.0298985404,\"47\":90.3071915685,\"48\":0.9418137446,\"49\":91.5689308799,\"50\":21.4033777689,\"51\":586.1979147039,\"52\":42224.6969244911,\"53\":42806.9112612501,\"54\":92.1394037828,\"55\":0.0291040766,\"56\":0.9425731317,\"57\":0.9421349998,\"58\":21.5939843234,\"59\":588.1506906461,\"60\":0.0268376085,\"61\":42759.1545525796,\"62\":587.0978733988,\"63\":0.0308090219,\"64\":92.6084337932,\"65\":92.2461874324,\"66\":90.5697817195,\"67\":0.027957734,\"68\":21.3204418196,\"69\":0.9416937325,\"70\":21.114704797,\"71\":588.4299650691,\"72\":42110.3418515679,\"73\":41349.8312112764,\"74\":90.7852142562,\"75\":0.0299216292,\"76\":0.9419954619,\"77\":91.4548192477,\"78\":0.9419151988,\"79\":592.5811436923,\"80\":0.0305904672,\"81\":21.4279733302,\"82\":591.6843220011,\"83\":582.6281030011,\"84\":41455.2627919613,\"85\":90.0991357974,\"86\":0.9428320964,\"87\":0.0304052504,\"88\":0.9418753245,\"89\":0.0313438878,\"90\":0.0283023679,\"91\":0.9414955692,\"92\":21.1864029955,\"93\":565.8285844264,\"94\":580.1609104817,\"95\":42237.4705364013,\"96\":90.9320225782,\"97\":0.0292978514,\"98\":40753.6892166884,\"99\":21.3482671195,\"100\":0.9422665671,\"101\":42802.3401987965,\"102\":0.9421035782,\"103\":21.3492998839,\"104\":585.6687402313,\"105\":21.0425730416,\"106\":41394.9106550473,\"107\":92.1710397479,\"108\":41637.3889088785,\"109\":0.0320625303,\"110\":0.9425771513,\"111\":21.2729022684,\"112\":21.3509349139,\"113\":21.4903982927,\"114\":91.1983327426,\"115\":21.1967775718,\"116\":589.791733871,\"117\":41425.3281161735,\"118\":91.5263402159,\"119\":91.0195838552,\"120\":0.0302115609,\"121\":591.337856131,\"122\":0.9421125366,\"123\":90.7079172689,\"124\":579.7928044679,\"125\":21.0140883333,\"126\":586.3643641925,\"127\":42333.5718919989,\"128\":588.7054291713,\"129\":42238.9202628511,\"130\":91.345254997,\"131\":0.0294027862,\"132\":0.9422306854,\"133\":21.1608080194,\"134\":0.0315251074,\"135\":40885.4170875755,\"136\":579.0090607531,\"137\":41837.2734294329,\"138\":0.0274693645,\"139\":587.9101536927,\"140\":569.2348289366,\"141\":42190.8616353185,\"142\":41619.3303597381,\"143\":91.3856260933,\"144\":0.0300847519,\"145\":0.9412585891,\"146\":91.2832267132,\"147\":21.4578411964,\"148\":590.7368165516,\"149\":41673.0503539127,\"150\":88.9644491555,\"151\":0.0303452715,\"152\":41808.7259118128,\"153\":0.9426153302,\"154\":0.9420953914,\"155\":90.5205476794,\"156\":92.5454387111,\"157\":41371.4223145562,\"158\":0.9416979605,\"159\":21.315155606,\"160\":572.2817267576,\"161\":41495.9720644865,\"162\":90.9357926342,\"163\":0.0294002276,\"164\":589.3700918834,\"165\":0.942537688,\"166\":21.4826102047,\"167\":582.9800217324,\"168\":0.0312421246,\"169\":0.0297799485,\"170\":0.0278902678,\"171\":0.9425869947,\"172\":585.0539548541,\"173\":21.2120026097,\"174\":581.1438891484,\"175\":41219.8808603692,\"176\":91.0795777782,\"177\":21.1464733781,\"178\":91.839278964,\"179\":0.9421263974,\"180\":91.0489845235,\"181\":91.8488801587,\"182\":0.0293408837,\"183\":21.1982536627,\"184\":0.9418510996,\"185\":21.2868162915,\"186\":585.6639227799,\"187\":41570.7823223213,\"188\":91.6512773063,\"189\":42221.2659483933,\"190\":21.1923039104,\"191\":92.3889230918,\"192\":0.0290132584,\"193\":0.0287217338,\"194\":0.9425262529,\"195\":21.0293423913,\"196\":91.810064538,\"197\":0.0289910389,\"198\":591.4915427827,\"199\":42563.7670646996,\"200\":588.1036866722,\"201\":0.0309824349,\"202\":89.985146611,\"203\":0.0295229549,\"204\":90.8585148724,\"205\":0.9417057434,\"206\":21.0580092819,\"207\":0.9409611951,\"208\":589.2324712143,\"209\":0.0310169881,\"210\":43115.7973771518,\"211\":91.0025458547,\"212\":41713.4109989913,\"213\":0.0294083181,\"214\":0.0298777207,\"215\":0.9423869382,\"216\":0.9408153185,\"217\":21.0399934587,\"218\":578.7442609183,\"219\":91.4704140579,\"220\":41880.835061868,\"221\":0.94289378,\"222\":0.9411934311,\"223\":91.4565748828,\"224\":575.3105881275,\"225\":90.4633394767,\"226\":0.9414797128,\"227\":0.0275965636,\"228\":0.941608724,\"229\":21.0225937445,\"230\":601.665180381,\"231\":42139.4732052995,\"232\":21.0979424001,\"233\":90.6573028235,\"234\":0.0291557686,\"235\":41226.19290085,\"236\":0.0296658386,\"237\":21.4133822332,\"238\":21.0591800277,\"239\":0.9429297468,\"240\":0.9426748499,\"241\":21.5396397053,\"242\":585.1470181395,\"243\":41878.0681925427,\"244\":91.1731639927,\"245\":0.0294500862,\"246\":21.6156755619,\"247\":0.9412900308,\"248\":21.3743103882,\"249\":584.331253023,\"250\":570.417585924,\"251\":21.2504420292,\"252\":42604.0513015917,\"253\":91.616191141,\"254\":91.9850808012,\"255\":0.0308859106,\"256\":0.9416484197,\"257\":576.1293289959,\"258\":581.0072670167,\"259\":0.0288595818,\"260\":40945.113826779,\"261\":21.2339304031,\"262\":0.0291656185,\"263\":0.9415757335,\"264\":583.791942393,\"265\":41988.0584262963,\"266\":91.607748307,\"267\":0.0304607897,\"268\":91.0422125569,\"269\":0.0290882082,\"270\":0.9419239249,\"271\":21.0876740335,\"272\":0.9420629935,\"273\":591.0730408992,\"274\":40015.019176493,\"275\":40923.2431437605,\"276\":89.6734048661,\"277\":90.6960872047,\"278\":0.0306314455,\"279\":42397.5769278246,\"280\":0.9424979921,\"281\":0.9416836503,\"282\":0.0280724582,\"283\":21.1843901051,\"284\":569.7030977014,\"285\":581.7434135701,\"286\":41948.2639862291,\"287\":91.7263927195,\"288\":90.7853189241,\"289\":0.0297400497,\"290\":0.0297083562,\"291\":0.9419161125,\"292\":0.0295151549,\"293\":21.2792212073,\"294\":582.1714459586,\"295\":41599.8056126855,\"296\":0.941688065,\"297\":21.3580954127,\"298\":0.94242384,\"299\":0.0305195313,\"300\":571.7254958848,\"301\":0.9416073674,\"302\":587.1974675254,\"303\":40883.6925783135,\"304\":90.8538077854,\"305\":0.0308406755,\"306\":0.9417944013,\"307\":0.9414645352,\"308\":21.1400823863,\"309\":589.3946599195,\"310\":21.3324060457,\"311\":0.9415968406,\"312\":21.2433903482,\"313\":21.595137794,\"314\":41189.4196147101,\"315\":90.8126041075,\"316\":0.0284265019,\"317\":42013.3461967377,\"318\":0.9422429367,\"319\":21.255395783,\"320\":592.4895521442,\"321\":41274.635763087,\"322\":21.2041173565,\"323\":590.1329081193,\"324\":578.8194200284,\"325\":41619.1107175595,\"326\":90.1317870437,\"327\":91.7663455071,\"328\":0.0303270795,\"329\":0.9409985625,\"330\":21.215938958,\"331\":91.5897430899,\"332\":92.3485284039,\"333\":0.9420007753,\"334\":42589.2017403914,\"335\":584.6398478099,\"336\":20.9995224244,\"337\":592.7309098865,\"338\":42062.8050463929,\"339\":0.0274888757,\"340\":90.6692919496,\"341\":0.0292555771,\"342\":0.9420773892,\"343\":0.029979338,\"344\":21.2845400012,\"345\":580.7385963005,\"346\":0.0289282729,\"347\":0.0289306135,\"348\":41034.0745912398,\"349\":21.3437922658,\"350\":91.7467275996,\"351\":91.1462687797,\"352\":42875.4619957921,\"353\":0.0289305555,\"354\":0.9426417872,\"355\":40985.2064984565,\"356\":21.2453760724,\"357\":0.9421117449,\"358\":586.4983318783,\"359\":41540.4968010058,\"360\":91.5777744882,\"361\":0.941729773,\"362\":0.0304822411,\"363\":0.9416148059,\"364\":21.1365998909,\"365\":0.9413301652,\"366\":0.0303639016,\"367\":598.726754289,\"368\":21.1302165913,\"369\":42688.2604091205,\"370\":0.9427053621,\"371\":21.440736609,\"372\":598.3080083433,\"373\":41529.4053977734,\"374\":91.8444270921,\"375\":21.0984363137,\"376\":0.0295047034,\"377\":0.9416720475,\"378\":21.3955600816,\"379\":589.2086910374,\"380\":42215.8610234166,\"381\":0.9422489884,\"382\":21.4486694867,\"383\":578.8763166368,\"384\":91.1671973331,\"385\":42490.0968575369,\"386\":90.2495919326,\"387\":0.027378052,\"388\":0.9414197453,\"389\":582.7176760036},\"metric_name\":{\"0\":\"is_live_watch_time_given_iphone\",\"1\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"2\":\"wilde_scroll_frame_drops_per_minute\",\"3\":\"video:encoding:iphone_live_playback_mos_loss\",\"4\":\"video:encoding:iphone_live_playback_mos_loss\",\"5\":\"video:sbl_iphone_is_live__smtbr\",\"6\":\"video:sbl_iphone_is_live__smtbr\",\"7\":\"wilde_scroll_frame_drops_per_minute\",\"8\":\"video:encoding:iphone_live_playback_mos_loss\",\"9\":\"is_live_watch_time_given_iphone\",\"10\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"11\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"12\":\"sbl_iphone_is_live__psr_1_start\",\"13\":\"is_live_watch_time_given_iphone\",\"14\":\"video:encoding:iphone_live_playback_mos_loss\",\"15\":\"video:sbl_iphone_is_live__smtbr\",\"16\":\"video:sbl_iphone_is_live__smtbr\",\"17\":\"sbl_iphone_is_live__psr_1_start\",\"18\":\"wilde_scroll_frame_drops_per_minute\",\"19\":\"wilde_scroll_frame_drops_per_minute\",\"20\":\"wilde_scroll_frame_drops_per_minute\",\"21\":\"is_live_watch_time_given_iphone\",\"22\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"23\":\"sbl_iphone_is_live__psr_1_start\",\"24\":\"is_live_watch_time_given_iphone\",\"25\":\"video:encoding:iphone_live_playback_mos_loss\",\"26\":\"video:sbl_iphone_is_live__smtbr\",\"27\":\"video:sbl_iphone_is_live__smtbr\",\"28\":\"sbl_iphone_is_live__psr_1_start\",\"29\":\"video:encoding:iphone_live_playback_mos_loss\",\"30\":\"wilde_scroll_frame_drops_per_minute\",\"31\":\"is_live_watch_time_given_iphone\",\"32\":\"video:encoding:iphone_live_playback_mos_loss\",\"33\":\"wilde_scroll_frame_drops_per_minute\",\"34\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"35\":\"video:sbl_iphone_is_live__smtbr\",\"36\":\"sbl_iphone_is_live__psr_1_start\",\"37\":\"video:encoding:iphone_live_playback_mos_loss\",\"38\":\"video:sbl_iphone_is_live__smtbr\",\"39\":\"wilde_scroll_frame_drops_per_minute\",\"40\":\"is_live_watch_time_given_iphone\",\"41\":\"video:sbl_iphone_is_live__smtbr\",\"42\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"43\":\"wilde_scroll_frame_drops_per_minute\",\"44\":\"video:encoding:iphone_live_playback_mos_loss\",\"45\":\"wilde_scroll_frame_drops_per_minute\",\"46\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"47\":\"is_live_watch_time_given_iphone\",\"48\":\"sbl_iphone_is_live__psr_1_start\",\"49\":\"is_live_watch_time_given_iphone\",\"50\":\"video:encoding:iphone_live_playback_mos_loss\",\"51\":\"video:sbl_iphone_is_live__smtbr\",\"52\":\"wilde_scroll_frame_drops_per_minute\",\"53\":\"wilde_scroll_frame_drops_per_minute\",\"54\":\"is_live_watch_time_given_iphone\",\"55\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"56\":\"sbl_iphone_is_live__psr_1_start\",\"57\":\"sbl_iphone_is_live__psr_1_start\",\"58\":\"video:encoding:iphone_live_playback_mos_loss\",\"59\":\"video:sbl_iphone_is_live__smtbr\",\"60\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"61\":\"wilde_scroll_frame_drops_per_minute\",\"62\":\"video:sbl_iphone_is_live__smtbr\",\"63\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"64\":\"is_live_watch_time_given_iphone\",\"65\":\"is_live_watch_time_given_iphone\",\"66\":\"is_live_watch_time_given_iphone\",\"67\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"68\":\"video:encoding:iphone_live_playback_mos_loss\",\"69\":\"sbl_iphone_is_live__psr_1_start\",\"70\":\"video:encoding:iphone_live_playback_mos_loss\",\"71\":\"video:sbl_iphone_is_live__smtbr\",\"72\":\"wilde_scroll_frame_drops_per_minute\",\"73\":\"wilde_scroll_frame_drops_per_minute\",\"74\":\"is_live_watch_time_given_iphone\",\"75\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"76\":\"sbl_iphone_is_live__psr_1_start\",\"77\":\"is_live_watch_time_given_iphone\",\"78\":\"sbl_iphone_is_live__psr_1_start\",\"79\":\"video:sbl_iphone_is_live__smtbr\",\"80\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"81\":\"video:encoding:iphone_live_playback_mos_loss\",\"82\":\"video:sbl_iphone_is_live__smtbr\",\"83\":\"video:sbl_iphone_is_live__smtbr\",\"84\":\"wilde_scroll_frame_drops_per_minute\",\"85\":\"is_live_watch_time_given_iphone\",\"86\":\"sbl_iphone_is_live__psr_1_start\",\"87\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"88\":\"sbl_iphone_is_live__psr_1_start\",\"89\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"90\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"91\":\"sbl_iphone_is_live__psr_1_start\",\"92\":\"video:encoding:iphone_live_playback_mos_loss\",\"93\":\"video:sbl_iphone_is_live__smtbr\",\"94\":\"video:sbl_iphone_is_live__smtbr\",\"95\":\"wilde_scroll_frame_drops_per_minute\",\"96\":\"is_live_watch_time_given_iphone\",\"97\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"98\":\"wilde_scroll_frame_drops_per_minute\",\"99\":\"video:encoding:iphone_live_playback_mos_loss\",\"100\":\"sbl_iphone_is_live__psr_1_start\",\"101\":\"wilde_scroll_frame_drops_per_minute\",\"102\":\"sbl_iphone_is_live__psr_1_start\",\"103\":\"video:encoding:iphone_live_playback_mos_loss\",\"104\":\"video:sbl_iphone_is_live__smtbr\",\"105\":\"video:encoding:iphone_live_playback_mos_loss\",\"106\":\"wilde_scroll_frame_drops_per_minute\",\"107\":\"is_live_watch_time_given_iphone\",\"108\":\"wilde_scroll_frame_drops_per_minute\",\"109\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"110\":\"sbl_iphone_is_live__psr_1_start\",\"111\":\"video:encoding:iphone_live_playback_mos_loss\",\"112\":\"video:encoding:iphone_live_playback_mos_loss\",\"113\":\"video:encoding:iphone_live_playback_mos_loss\",\"114\":\"is_live_watch_time_given_iphone\",\"115\":\"video:encoding:iphone_live_playback_mos_loss\",\"116\":\"video:sbl_iphone_is_live__smtbr\",\"117\":\"wilde_scroll_frame_drops_per_minute\",\"118\":\"is_live_watch_time_given_iphone\",\"119\":\"is_live_watch_time_given_iphone\",\"120\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"121\":\"video:sbl_iphone_is_live__smtbr\",\"122\":\"sbl_iphone_is_live__psr_1_start\",\"123\":\"is_live_watch_time_given_iphone\",\"124\":\"video:sbl_iphone_is_live__smtbr\",\"125\":\"video:encoding:iphone_live_playback_mos_loss\",\"126\":\"video:sbl_iphone_is_live__smtbr\",\"127\":\"wilde_scroll_frame_drops_per_minute\",\"128\":\"video:sbl_iphone_is_live__smtbr\",\"129\":\"wilde_scroll_frame_drops_per_minute\",\"130\":\"is_live_watch_time_given_iphone\",\"131\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"132\":\"sbl_iphone_is_live__psr_1_start\",\"133\":\"video:encoding:iphone_live_playback_mos_loss\",\"134\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"135\":\"wilde_scroll_frame_drops_per_minute\",\"136\":\"video:sbl_iphone_is_live__smtbr\",\"137\":\"wilde_scroll_frame_drops_per_minute\",\"138\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"139\":\"video:sbl_iphone_is_live__smtbr\",\"140\":\"video:sbl_iphone_is_live__smtbr\",\"141\":\"wilde_scroll_frame_drops_per_minute\",\"142\":\"wilde_scroll_frame_drops_per_minute\",\"143\":\"is_live_watch_time_given_iphone\",\"144\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"145\":\"sbl_iphone_is_live__psr_1_start\",\"146\":\"is_live_watch_time_given_iphone\",\"147\":\"video:encoding:iphone_live_playback_mos_loss\",\"148\":\"video:sbl_iphone_is_live__smtbr\",\"149\":\"wilde_scroll_frame_drops_per_minute\",\"150\":\"is_live_watch_time_given_iphone\",\"151\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"152\":\"wilde_scroll_frame_drops_per_minute\",\"153\":\"sbl_iphone_is_live__psr_1_start\",\"154\":\"sbl_iphone_is_live__psr_1_start\",\"155\":\"is_live_watch_time_given_iphone\",\"156\":\"is_live_watch_time_given_iphone\",\"157\":\"wilde_scroll_frame_drops_per_minute\",\"158\":\"sbl_iphone_is_live__psr_1_start\",\"159\":\"video:encoding:iphone_live_playback_mos_loss\",\"160\":\"video:sbl_iphone_is_live__smtbr\",\"161\":\"wilde_scroll_frame_drops_per_minute\",\"162\":\"is_live_watch_time_given_iphone\",\"163\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"164\":\"video:sbl_iphone_is_live__smtbr\",\"165\":\"sbl_iphone_is_live__psr_1_start\",\"166\":\"video:encoding:iphone_live_playback_mos_loss\",\"167\":\"video:sbl_iphone_is_live__smtbr\",\"168\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"169\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"170\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"171\":\"sbl_iphone_is_live__psr_1_start\",\"172\":\"video:sbl_iphone_is_live__smtbr\",\"173\":\"video:encoding:iphone_live_playback_mos_loss\",\"174\":\"video:sbl_iphone_is_live__smtbr\",\"175\":\"wilde_scroll_frame_drops_per_minute\",\"176\":\"is_live_watch_time_given_iphone\",\"177\":\"video:encoding:iphone_live_playback_mos_loss\",\"178\":\"is_live_watch_time_given_iphone\",\"179\":\"sbl_iphone_is_live__psr_1_start\",\"180\":\"is_live_watch_time_given_iphone\",\"181\":\"is_live_watch_time_given_iphone\",\"182\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"183\":\"video:encoding:iphone_live_playback_mos_loss\",\"184\":\"sbl_iphone_is_live__psr_1_start\",\"185\":\"video:encoding:iphone_live_playback_mos_loss\",\"186\":\"video:sbl_iphone_is_live__smtbr\",\"187\":\"wilde_scroll_frame_drops_per_minute\",\"188\":\"is_live_watch_time_given_iphone\",\"189\":\"wilde_scroll_frame_drops_per_minute\",\"190\":\"video:encoding:iphone_live_playback_mos_loss\",\"191\":\"is_live_watch_time_given_iphone\",\"192\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"193\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"194\":\"sbl_iphone_is_live__psr_1_start\",\"195\":\"video:encoding:iphone_live_playback_mos_loss\",\"196\":\"is_live_watch_time_given_iphone\",\"197\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"198\":\"video:sbl_iphone_is_live__smtbr\",\"199\":\"wilde_scroll_frame_drops_per_minute\",\"200\":\"video:sbl_iphone_is_live__smtbr\",\"201\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"202\":\"is_live_watch_time_given_iphone\",\"203\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"204\":\"is_live_watch_time_given_iphone\",\"205\":\"sbl_iphone_is_live__psr_1_start\",\"206\":\"video:encoding:iphone_live_playback_mos_loss\",\"207\":\"sbl_iphone_is_live__psr_1_start\",\"208\":\"video:sbl_iphone_is_live__smtbr\",\"209\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"210\":\"wilde_scroll_frame_drops_per_minute\",\"211\":\"is_live_watch_time_given_iphone\",\"212\":\"wilde_scroll_frame_drops_per_minute\",\"213\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"214\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"215\":\"sbl_iphone_is_live__psr_1_start\",\"216\":\"sbl_iphone_is_live__psr_1_start\",\"217\":\"video:encoding:iphone_live_playback_mos_loss\",\"218\":\"video:sbl_iphone_is_live__smtbr\",\"219\":\"is_live_watch_time_given_iphone\",\"220\":\"wilde_scroll_frame_drops_per_minute\",\"221\":\"sbl_iphone_is_live__psr_1_start\",\"222\":\"sbl_iphone_is_live__psr_1_start\",\"223\":\"is_live_watch_time_given_iphone\",\"224\":\"video:sbl_iphone_is_live__smtbr\",\"225\":\"is_live_watch_time_given_iphone\",\"226\":\"sbl_iphone_is_live__psr_1_start\",\"227\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"228\":\"sbl_iphone_is_live__psr_1_start\",\"229\":\"video:encoding:iphone_live_playback_mos_loss\",\"230\":\"video:sbl_iphone_is_live__smtbr\",\"231\":\"wilde_scroll_frame_drops_per_minute\",\"232\":\"video:encoding:iphone_live_playback_mos_loss\",\"233\":\"is_live_watch_time_given_iphone\",\"234\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"235\":\"wilde_scroll_frame_drops_per_minute\",\"236\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"237\":\"video:encoding:iphone_live_playback_mos_loss\",\"238\":\"video:encoding:iphone_live_playback_mos_loss\",\"239\":\"sbl_iphone_is_live__psr_1_start\",\"240\":\"sbl_iphone_is_live__psr_1_start\",\"241\":\"video:encoding:iphone_live_playback_mos_loss\",\"242\":\"video:sbl_iphone_is_live__smtbr\",\"243\":\"wilde_scroll_frame_drops_per_minute\",\"244\":\"is_live_watch_time_given_iphone\",\"245\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"246\":\"video:encoding:iphone_live_playback_mos_loss\",\"247\":\"sbl_iphone_is_live__psr_1_start\",\"248\":\"video:encoding:iphone_live_playback_mos_loss\",\"249\":\"video:sbl_iphone_is_live__smtbr\",\"250\":\"video:sbl_iphone_is_live__smtbr\",\"251\":\"video:encoding:iphone_live_playback_mos_loss\",\"252\":\"wilde_scroll_frame_drops_per_minute\",\"253\":\"is_live_watch_time_given_iphone\",\"254\":\"is_live_watch_time_given_iphone\",\"255\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"256\":\"sbl_iphone_is_live__psr_1_start\",\"257\":\"video:sbl_iphone_is_live__smtbr\",\"258\":\"video:sbl_iphone_is_live__smtbr\",\"259\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"260\":\"wilde_scroll_frame_drops_per_minute\",\"261\":\"video:encoding:iphone_live_playback_mos_loss\",\"262\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"263\":\"sbl_iphone_is_live__psr_1_start\",\"264\":\"video:sbl_iphone_is_live__smtbr\",\"265\":\"wilde_scroll_frame_drops_per_minute\",\"266\":\"is_live_watch_time_given_iphone\",\"267\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"268\":\"is_live_watch_time_given_iphone\",\"269\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"270\":\"sbl_iphone_is_live__psr_1_start\",\"271\":\"video:encoding:iphone_live_playback_mos_loss\",\"272\":\"sbl_iphone_is_live__psr_1_start\",\"273\":\"video:sbl_iphone_is_live__smtbr\",\"274\":\"wilde_scroll_frame_drops_per_minute\",\"275\":\"wilde_scroll_frame_drops_per_minute\",\"276\":\"is_live_watch_time_given_iphone\",\"277\":\"is_live_watch_time_given_iphone\",\"278\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"279\":\"wilde_scroll_frame_drops_per_minute\",\"280\":\"sbl_iphone_is_live__psr_1_start\",\"281\":\"sbl_iphone_is_live__psr_1_start\",\"282\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"283\":\"video:encoding:iphone_live_playback_mos_loss\",\"284\":\"video:sbl_iphone_is_live__smtbr\",\"285\":\"video:sbl_iphone_is_live__smtbr\",\"286\":\"wilde_scroll_frame_drops_per_minute\",\"287\":\"is_live_watch_time_given_iphone\",\"288\":\"is_live_watch_time_given_iphone\",\"289\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"290\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"291\":\"sbl_iphone_is_live__psr_1_start\",\"292\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"293\":\"video:encoding:iphone_live_playback_mos_loss\",\"294\":\"video:sbl_iphone_is_live__smtbr\",\"295\":\"wilde_scroll_frame_drops_per_minute\",\"296\":\"sbl_iphone_is_live__psr_1_start\",\"297\":\"video:encoding:iphone_live_playback_mos_loss\",\"298\":\"sbl_iphone_is_live__psr_1_start\",\"299\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"300\":\"video:sbl_iphone_is_live__smtbr\",\"301\":\"sbl_iphone_is_live__psr_1_start\",\"302\":\"video:sbl_iphone_is_live__smtbr\",\"303\":\"wilde_scroll_frame_drops_per_minute\",\"304\":\"is_live_watch_time_given_iphone\",\"305\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"306\":\"sbl_iphone_is_live__psr_1_start\",\"307\":\"sbl_iphone_is_live__psr_1_start\",\"308\":\"video:encoding:iphone_live_playback_mos_loss\",\"309\":\"video:sbl_iphone_is_live__smtbr\",\"310\":\"video:encoding:iphone_live_playback_mos_loss\",\"311\":\"sbl_iphone_is_live__psr_1_start\",\"312\":\"video:encoding:iphone_live_playback_mos_loss\",\"313\":\"video:encoding:iphone_live_playback_mos_loss\",\"314\":\"wilde_scroll_frame_drops_per_minute\",\"315\":\"is_live_watch_time_given_iphone\",\"316\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"317\":\"wilde_scroll_frame_drops_per_minute\",\"318\":\"sbl_iphone_is_live__psr_1_start\",\"319\":\"video:encoding:iphone_live_playback_mos_loss\",\"320\":\"video:sbl_iphone_is_live__smtbr\",\"321\":\"wilde_scroll_frame_drops_per_minute\",\"322\":\"video:encoding:iphone_live_playback_mos_loss\",\"323\":\"video:sbl_iphone_is_live__smtbr\",\"324\":\"video:sbl_iphone_is_live__smtbr\",\"325\":\"wilde_scroll_frame_drops_per_minute\",\"326\":\"is_live_watch_time_given_iphone\",\"327\":\"is_live_watch_time_given_iphone\",\"328\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"329\":\"sbl_iphone_is_live__psr_1_start\",\"330\":\"video:encoding:iphone_live_playback_mos_loss\",\"331\":\"is_live_watch_time_given_iphone\",\"332\":\"is_live_watch_time_given_iphone\",\"333\":\"sbl_iphone_is_live__psr_1_start\",\"334\":\"wilde_scroll_frame_drops_per_minute\",\"335\":\"video:sbl_iphone_is_live__smtbr\",\"336\":\"video:encoding:iphone_live_playback_mos_loss\",\"337\":\"video:sbl_iphone_is_live__smtbr\",\"338\":\"wilde_scroll_frame_drops_per_minute\",\"339\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"340\":\"is_live_watch_time_given_iphone\",\"341\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"342\":\"sbl_iphone_is_live__psr_1_start\",\"343\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"344\":\"video:encoding:iphone_live_playback_mos_loss\",\"345\":\"video:sbl_iphone_is_live__smtbr\",\"346\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"347\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"348\":\"wilde_scroll_frame_drops_per_minute\",\"349\":\"video:encoding:iphone_live_playback_mos_loss\",\"350\":\"is_live_watch_time_given_iphone\",\"351\":\"is_live_watch_time_given_iphone\",\"352\":\"wilde_scroll_frame_drops_per_minute\",\"353\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"354\":\"sbl_iphone_is_live__psr_1_start\",\"355\":\"wilde_scroll_frame_drops_per_minute\",\"356\":\"video:encoding:iphone_live_playback_mos_loss\",\"357\":\"sbl_iphone_is_live__psr_1_start\",\"358\":\"video:sbl_iphone_is_live__smtbr\",\"359\":\"wilde_scroll_frame_drops_per_minute\",\"360\":\"is_live_watch_time_given_iphone\",\"361\":\"sbl_iphone_is_live__psr_1_start\",\"362\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"363\":\"sbl_iphone_is_live__psr_1_start\",\"364\":\"video:encoding:iphone_live_playback_mos_loss\",\"365\":\"sbl_iphone_is_live__psr_1_start\",\"366\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"367\":\"video:sbl_iphone_is_live__smtbr\",\"368\":\"video:encoding:iphone_live_playback_mos_loss\",\"369\":\"wilde_scroll_frame_drops_per_minute\",\"370\":\"sbl_iphone_is_live__psr_1_start\",\"371\":\"video:encoding:iphone_live_playback_mos_loss\",\"372\":\"video:sbl_iphone_is_live__smtbr\",\"373\":\"wilde_scroll_frame_drops_per_minute\",\"374\":\"is_live_watch_time_given_iphone\",\"375\":\"video:encoding:iphone_live_playback_mos_loss\",\"376\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"377\":\"sbl_iphone_is_live__psr_1_start\",\"378\":\"video:encoding:iphone_live_playback_mos_loss\",\"379\":\"video:sbl_iphone_is_live__smtbr\",\"380\":\"wilde_scroll_frame_drops_per_minute\",\"381\":\"sbl_iphone_is_live__psr_1_start\",\"382\":\"video:encoding:iphone_live_playback_mos_loss\",\"383\":\"video:sbl_iphone_is_live__smtbr\",\"384\":\"is_live_watch_time_given_iphone\",\"385\":\"wilde_scroll_frame_drops_per_minute\",\"386\":\"is_live_watch_time_given_iphone\",\"387\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"388\":\"sbl_iphone_is_live__psr_1_start\",\"389\":\"video:sbl_iphone_is_live__smtbr\"},\"n\":{\"0\":413230,\"1\":413230,\"2\":412745,\"3\":412922,\"4\":413034,\"5\":412385,\"6\":412922,\"7\":412922,\"8\":411803,\"9\":412718,\"10\":412718,\"11\":414259,\"12\":412718,\"13\":412750,\"14\":412718,\"15\":412718,\"16\":412935,\"17\":410416,\"18\":412750,\"19\":412385,\"20\":412718,\"21\":411689,\"22\":411689,\"23\":411689,\"24\":413465,\"25\":411689,\"26\":411803,\"27\":411689,\"28\":414259,\"29\":410416,\"30\":411689,\"31\":413875,\"32\":413370,\"33\":412919,\"34\":413875,\"35\":408984,\"36\":413875,\"37\":413875,\"38\":413875,\"39\":413875,\"40\":412681,\"41\":410416,\"42\":412681,\"43\":411803,\"44\":414259,\"45\":412990,\"46\":413465,\"47\":412928,\"48\":412681,\"49\":412152,\"50\":412681,\"51\":412681,\"52\":412681,\"53\":410416,\"54\":413138,\"55\":413138,\"56\":413138,\"57\":413465,\"58\":413138,\"59\":413138,\"60\":412928,\"61\":413138,\"62\":414259,\"63\":412152,\"64\":413266,\"65\":413173,\"66\":412909,\"67\":412909,\"68\":411695,\"69\":412909,\"70\":412909,\"71\":412909,\"72\":412909,\"73\":413702,\"74\":413547,\"75\":413547,\"76\":413547,\"77\":410064,\"78\":412152,\"79\":413173,\"80\":413266,\"81\":412152,\"82\":413266,\"83\":412152,\"84\":412152,\"85\":414139,\"86\":412928,\"87\":414139,\"88\":411934,\"89\":410064,\"90\":411803,\"91\":414139,\"92\":414139,\"93\":414139,\"94\":413547,\"95\":414139,\"96\":412078,\"97\":412078,\"98\":413266,\"99\":412928,\"100\":412078,\"101\":412596,\"102\":410064,\"103\":412078,\"104\":412078,\"105\":411934,\"106\":412078,\"107\":412600,\"108\":413547,\"109\":412600,\"110\":412600,\"111\":412600,\"112\":408984,\"113\":413465,\"114\":411934,\"115\":410064,\"116\":412600,\"117\":412600,\"118\":413702,\"119\":412789,\"120\":412789,\"121\":411934,\"122\":412789,\"123\":411695,\"124\":413465,\"125\":412789,\"126\":412789,\"127\":412684,\"128\":412928,\"129\":412789,\"130\":412750,\"131\":412750,\"132\":412750,\"133\":412750,\"134\":413702,\"135\":413465,\"136\":412750,\"137\":411934,\"138\":411695,\"139\":413683,\"140\":410064,\"141\":412750,\"142\":412928,\"143\":412734,\"144\":412734,\"145\":412734,\"146\":412680,\"147\":412734,\"148\":412734,\"149\":412734,\"150\":413211,\"151\":413211,\"152\":410064,\"153\":413702,\"154\":411695,\"155\":412358,\"156\":413370,\"157\":408984,\"158\":413211,\"159\":413211,\"160\":413211,\"161\":413211,\"162\":412990,\"163\":412990,\"164\":413034,\"165\":412990,\"166\":412990,\"167\":412990,\"168\":412680,\"169\":412358,\"170\":413370,\"171\":412358,\"172\":413370,\"173\":412358,\"174\":412358,\"175\":412358,\"176\":413432,\"177\":413230,\"178\":412684,\"179\":412680,\"180\":411334,\"181\":412871,\"182\":412871,\"183\":413702,\"184\":412871,\"185\":412871,\"186\":412871,\"187\":413370,\"188\":409612,\"189\":412871,\"190\":412680,\"191\":412570,\"192\":412570,\"193\":412684,\"194\":412570,\"195\":412570,\"196\":412935,\"197\":411334,\"198\":412570,\"199\":412570,\"200\":411695,\"201\":412750,\"202\":413441,\"203\":413441,\"204\":411803,\"205\":413441,\"206\":413441,\"207\":413230,\"208\":413441,\"209\":412935,\"210\":413441,\"211\":408900,\"212\":413173,\"213\":409612,\"214\":408900,\"215\":411334,\"216\":408900,\"217\":408900,\"218\":408900,\"219\":413034,\"220\":408900,\"221\":413266,\"222\":412935,\"223\":412745,\"224\":412680,\"225\":410196,\"226\":409612,\"227\":410196,\"228\":410196,\"229\":410196,\"230\":410196,\"231\":410196,\"232\":411334,\"233\":410622,\"234\":410622,\"235\":412680,\"236\":413034,\"237\":412935,\"238\":409612,\"239\":412684,\"240\":410622,\"241\":410622,\"242\":410622,\"243\":410622,\"244\":413683,\"245\":413683,\"246\":413266,\"247\":413683,\"248\":413683,\"249\":411334,\"250\":409612,\"251\":412684,\"252\":409612,\"253\":412596,\"254\":413360,\"255\":413360,\"256\":413360,\"257\":412771,\"258\":412076,\"259\":413173,\"260\":413034,\"261\":413360,\"262\":413432,\"263\":413034,\"264\":413360,\"265\":413360,\"266\":413329,\"267\":412596,\"268\":413621,\"269\":413329,\"270\":413329,\"271\":413329,\"272\":413173,\"273\":413329,\"274\":413329,\"275\":413683,\"276\":412771,\"277\":413464,\"278\":413464,\"279\":412935,\"280\":413432,\"281\":413464,\"282\":411934,\"283\":413464,\"284\":413464,\"285\":412750,\"286\":413464,\"287\":408984,\"288\":3298246,\"289\":3298246,\"290\":413621,\"291\":3298246,\"292\":412771,\"293\":3298246,\"294\":3298246,\"295\":3298246,\"296\":412596,\"297\":413432,\"298\":413370,\"299\":408984,\"300\":413230,\"301\":413621,\"302\":413432,\"303\":413432,\"304\":412799,\"305\":412799,\"306\":412799,\"307\":412771,\"308\":412799,\"309\":412799,\"310\":412596,\"311\":408984,\"312\":413621,\"313\":413173,\"314\":412799,\"315\":411834,\"316\":411834,\"317\":413230,\"318\":411834,\"319\":411834,\"320\":411834,\"321\":411834,\"322\":412771,\"323\":413621,\"324\":413702,\"325\":413621,\"326\":412385,\"327\":413294,\"328\":413294,\"329\":412750,\"330\":413547,\"331\":410416,\"332\":412919,\"333\":413294,\"334\":412771,\"335\":412596,\"336\":413294,\"337\":413294,\"338\":413294,\"339\":412385,\"340\":412400,\"341\":412400,\"342\":412400,\"343\":410416,\"344\":412400,\"345\":412400,\"346\":412745,\"347\":412919,\"348\":412400,\"349\":412750,\"350\":412694,\"351\":412747,\"352\":411695,\"353\":412747,\"354\":412747,\"355\":414259,\"356\":412747,\"357\":412745,\"358\":412747,\"359\":412747,\"360\":412076,\"361\":412919,\"362\":412076,\"363\":412076,\"364\":412076,\"365\":412385,\"366\":412694,\"367\":412684,\"368\":412745,\"369\":412076,\"370\":412694,\"371\":412694,\"372\":412694,\"373\":412694,\"374\":411087,\"375\":412919,\"376\":411087,\"377\":411803,\"378\":412385,\"379\":412745,\"380\":411334,\"381\":411087,\"382\":411087,\"383\":411087,\"384\":414259,\"385\":411087,\"386\":412922,\"387\":412922,\"388\":412922,\"389\":412919},\"random_split\":{\"0\":-1,\"1\":-1,\"2\":-1,\"3\":-1,\"4\":-1,\"5\":-1,\"6\":-1,\"7\":-1,\"8\":-1,\"9\":-1,\"10\":-1,\"11\":-1,\"12\":-1,\"13\":-1,\"14\":-1,\"15\":-1,\"16\":-1,\"17\":-1,\"18\":-1,\"19\":-1,\"20\":-1,\"21\":-1,\"22\":-1,\"23\":-1,\"24\":-1,\"25\":-1,\"26\":-1,\"27\":-1,\"28\":-1,\"29\":-1,\"30\":-1,\"31\":-1,\"32\":-1,\"33\":-1,\"34\":-1,\"35\":-1,\"36\":-1,\"37\":-1,\"38\":-1,\"39\":-1,\"40\":-1,\"41\":-1,\"42\":-1,\"43\":-1,\"44\":-1,\"45\":-1,\"46\":-1,\"47\":-1,\"48\":-1,\"49\":-1,\"50\":-1,\"51\":-1,\"52\":-1,\"53\":-1,\"54\":-1,\"55\":-1,\"56\":-1,\"57\":-1,\"58\":-1,\"59\":-1,\"60\":-1,\"61\":-1,\"62\":-1,\"63\":-1,\"64\":-1,\"65\":-1,\"66\":-1,\"67\":-1,\"68\":-1,\"69\":-1,\"70\":-1,\"71\":-1,\"72\":-1,\"73\":-1,\"74\":-1,\"75\":-1,\"76\":-1,\"77\":-1,\"78\":-1,\"79\":-1,\"80\":-1,\"81\":-1,\"82\":-1,\"83\":-1,\"84\":-1,\"85\":-1,\"86\":-1,\"87\":-1,\"88\":-1,\"89\":-1,\"90\":-1,\"91\":-1,\"92\":-1,\"93\":-1,\"94\":-1,\"95\":-1,\"96\":-1,\"97\":-1,\"98\":-1,\"99\":-1,\"100\":-1,\"101\":-1,\"102\":-1,\"103\":-1,\"104\":-1,\"105\":-1,\"106\":-1,\"107\":-1,\"108\":-1,\"109\":-1,\"110\":-1,\"111\":-1,\"112\":-1,\"113\":-1,\"114\":-1,\"115\":-1,\"116\":-1,\"117\":-1,\"118\":-1,\"119\":-1,\"120\":-1,\"121\":-1,\"122\":-1,\"123\":-1,\"124\":-1,\"125\":-1,\"126\":-1,\"127\":-1,\"128\":-1,\"129\":-1,\"130\":-1,\"131\":-1,\"132\":-1,\"133\":-1,\"134\":-1,\"135\":-1,\"136\":-1,\"137\":-1,\"138\":-1,\"139\":-1,\"140\":-1,\"141\":-1,\"142\":-1,\"143\":-1,\"144\":-1,\"145\":-1,\"146\":-1,\"147\":-1,\"148\":-1,\"149\":-1,\"150\":-1,\"151\":-1,\"152\":-1,\"153\":-1,\"154\":-1,\"155\":-1,\"156\":-1,\"157\":-1,\"158\":-1,\"159\":-1,\"160\":-1,\"161\":-1,\"162\":-1,\"163\":-1,\"164\":-1,\"165\":-1,\"166\":-1,\"167\":-1,\"168\":-1,\"169\":-1,\"170\":-1,\"171\":-1,\"172\":-1,\"173\":-1,\"174\":-1,\"175\":-1,\"176\":-1,\"177\":-1,\"178\":-1,\"179\":-1,\"180\":-1,\"181\":-1,\"182\":-1,\"183\":-1,\"184\":-1,\"185\":-1,\"186\":-1,\"187\":-1,\"188\":-1,\"189\":-1,\"190\":-1,\"191\":-1,\"192\":-1,\"193\":-1,\"194\":-1,\"195\":-1,\"196\":-1,\"197\":-1,\"198\":-1,\"199\":-1,\"200\":-1,\"201\":-1,\"202\":-1,\"203\":-1,\"204\":-1,\"205\":-1,\"206\":-1,\"207\":-1,\"208\":-1,\"209\":-1,\"210\":-1,\"211\":-1,\"212\":-1,\"213\":-1,\"214\":-1,\"215\":-1,\"216\":-1,\"217\":-1,\"218\":-1,\"219\":-1,\"220\":-1,\"221\":-1,\"222\":-1,\"223\":-1,\"224\":-1,\"225\":-1,\"226\":-1,\"227\":-1,\"228\":-1,\"229\":-1,\"230\":-1,\"231\":-1,\"232\":-1,\"233\":-1,\"234\":-1,\"235\":-1,\"236\":-1,\"237\":-1,\"238\":-1,\"239\":-1,\"240\":-1,\"241\":-1,\"242\":-1,\"243\":-1,\"244\":-1,\"245\":-1,\"246\":-1,\"247\":-1,\"248\":-1,\"249\":-1,\"250\":-1,\"251\":-1,\"252\":-1,\"253\":-1,\"254\":-1,\"255\":-1,\"256\":-1,\"257\":-1,\"258\":-1,\"259\":-1,\"260\":-1,\"261\":-1,\"262\":-1,\"263\":-1,\"264\":-1,\"265\":-1,\"266\":-1,\"267\":-1,\"268\":-1,\"269\":-1,\"270\":-1,\"271\":-1,\"272\":-1,\"273\":-1,\"274\":-1,\"275\":-1,\"276\":-1,\"277\":-1,\"278\":-1,\"279\":-1,\"280\":-1,\"281\":-1,\"282\":-1,\"283\":-1,\"284\":-1,\"285\":-1,\"286\":-1,\"287\":-1,\"288\":-1,\"289\":-1,\"290\":-1,\"291\":-1,\"292\":-1,\"293\":-1,\"294\":-1,\"295\":-1,\"296\":-1,\"297\":-1,\"298\":-1,\"299\":-1,\"300\":-1,\"301\":-1,\"302\":-1,\"303\":-1,\"304\":-1,\"305\":-1,\"306\":-1,\"307\":-1,\"308\":-1,\"309\":-1,\"310\":-1,\"311\":-1,\"312\":-1,\"313\":-1,\"314\":-1,\"315\":-1,\"316\":-1,\"317\":-1,\"318\":-1,\"319\":-1,\"320\":-1,\"321\":-1,\"322\":-1,\"323\":-1,\"324\":-1,\"325\":-1,\"326\":-1,\"327\":-1,\"328\":-1,\"329\":-1,\"330\":-1,\"331\":-1,\"332\":-1,\"333\":-1,\"334\":-1,\"335\":-1,\"336\":-1,\"337\":-1,\"338\":-1,\"339\":-1,\"340\":-1,\"341\":-1,\"342\":-1,\"343\":-1,\"344\":-1,\"345\":-1,\"346\":-1,\"347\":-1,\"348\":-1,\"349\":-1,\"350\":-1,\"351\":-1,\"352\":-1,\"353\":-1,\"354\":-1,\"355\":-1,\"356\":-1,\"357\":-1,\"358\":-1,\"359\":-1,\"360\":-1,\"361\":-1,\"362\":-1,\"363\":-1,\"364\":-1,\"365\":-1,\"366\":-1,\"367\":-1,\"368\":-1,\"369\":-1,\"370\":-1,\"371\":-1,\"372\":-1,\"373\":-1,\"374\":-1,\"375\":-1,\"376\":-1,\"377\":-1,\"378\":-1,\"379\":-1,\"380\":-1,\"381\":-1,\"382\":-1,\"383\":-1,\"384\":-1,\"385\":-1,\"386\":-1,\"387\":-1,\"388\":-1,\"389\":-1},\"sem\":{\"0\":0.8757586838,\"1\":0.0011681073,\"2\":551.7209337169,\"3\":0.1469467922,\"4\":0.1449417598,\"5\":6.1895641996,\"6\":6.1441454839,\"7\":545.5766664625,\"8\":0.1445461597,\"9\":0.8943585459,\"10\":0.0011333233,\"11\":0.0011717681,\"12\":0.0004689262,\"13\":0.8723742088,\"14\":0.146486496,\"15\":6.2061759655,\"16\":6.244361884,\"17\":0.0004785088,\"18\":555.0136434569,\"19\":552.2392503935,\"20\":543.0207799205,\"21\":0.8824203467,\"22\":0.001128535,\"23\":0.0004303657,\"24\":0.8712680283,\"25\":0.1431020792,\"26\":6.2780224626,\"27\":6.4492927645,\"28\":0.0004505253,\"29\":0.1525140342,\"30\":551.6531999906,\"31\":0.8584864132,\"32\":0.1439580551,\"33\":524.7512919379,\"34\":0.0011011395,\"35\":6.3351547702,\"36\":0.0004527167,\"37\":0.1448647183,\"38\":6.4480635154,\"39\":546.0314798214,\"40\":0.8735567065,\"41\":6.4173313078,\"42\":0.00120001,\"43\":562.3616870405,\"44\":0.1445812104,\"45\":538.1509684475,\"46\":0.0011690021,\"47\":0.8778260051,\"48\":0.0004817256,\"49\":0.8861473895,\"50\":0.1456409582,\"51\":6.2605475758,\"52\":552.6468763915,\"53\":572.1238580591,\"54\":0.8955282282,\"55\":0.0011389227,\"56\":0.0004203904,\"57\":0.000445972,\"58\":0.1434178681,\"59\":6.3670274978,\"60\":0.0010103084,\"61\":563.6621592454,\"62\":6.3381288528,\"63\":0.0011469892,\"64\":0.8995430753,\"65\":0.8810620414,\"66\":0.8741455225,\"67\":0.0010345988,\"68\":0.1442903809,\"69\":0.0004250779,\"70\":0.1443011294,\"71\":6.35957412,\"72\":559.203695455,\"73\":539.9203400009,\"74\":0.8682409952,\"75\":0.0011552274,\"76\":0.0004968713,\"77\":0.8912059475,\"78\":0.0004669523,\"79\":6.2871907066,\"80\":0.001182408,\"81\":0.1444690469,\"82\":6.4091204569,\"83\":6.2076098356,\"84\":550.1585244589,\"85\":0.864560999,\"86\":0.0004412139,\"87\":0.0011205208,\"88\":0.0004391163,\"89\":0.0012175373,\"90\":0.0010754627,\"91\":0.0004424569,\"92\":0.1461532157,\"93\":6.1141653272,\"94\":6.2013192782,\"95\":573.4064355384,\"96\":0.8778416488,\"97\":0.001108957,\"98\":530.6054950244,\"99\":0.1445131091,\"100\":0.000442698,\"101\":571.0217190994,\"102\":0.0004392972,\"103\":0.1460423566,\"104\":6.3771006982,\"105\":0.1428421653,\"106\":542.8982028835,\"107\":0.8880408197,\"108\":550.8864236512,\"109\":0.0011930179,\"110\":0.0004418043,\"111\":0.1463129976,\"112\":0.1452875841,\"113\":0.1442849,\"114\":0.8787693097,\"115\":0.1435242081,\"116\":6.3913612484,\"117\":562.1730959433,\"118\":0.8760603725,\"119\":0.8737935257,\"120\":0.0011794656,\"121\":6.331803702,\"122\":0.0004434024,\"123\":0.8733131385,\"124\":6.3058368488,\"125\":0.145357802,\"126\":6.3043650873,\"127\":561.2322197946,\"128\":6.3097437404,\"129\":562.2380366932,\"130\":0.879516536,\"131\":0.0011561323,\"132\":0.0004473097,\"133\":0.1478358988,\"134\":0.0012377793,\"135\":535.0316845021,\"136\":6.3286087739,\"137\":551.8269008206,\"138\":0.0009916461,\"139\":6.333724018,\"140\":6.1388210913,\"141\":566.4312689586,\"142\":554.4150856908,\"143\":0.8779542526,\"144\":0.001134994,\"145\":0.0004521153,\"146\":0.879831002,\"147\":0.1471496226,\"148\":6.3947266353,\"149\":557.5380710107,\"150\":0.8532596492,\"151\":0.0011045789,\"152\":559.5213596786,\"153\":0.0004370273,\"154\":0.0004548012,\"155\":0.873419111,\"156\":0.8926803903,\"157\":546.3295109004,\"158\":0.000425102,\"159\":0.1447840382,\"160\":6.2088608555,\"161\":550.7478257863,\"162\":0.8708310151,\"163\":0.0011684229,\"164\":6.2991133031,\"165\":0.0004375633,\"166\":0.1428699861,\"167\":6.2519011891,\"168\":0.0011377795,\"169\":0.001116739,\"170\":0.0010943768,\"171\":0.0004184408,\"172\":6.2122708552,\"173\":0.141844023,\"174\":6.2505295966,\"175\":542.7415091163,\"176\":0.8720930048,\"177\":0.1452683494,\"178\":0.8789793806,\"179\":0.0004560349,\"180\":0.8736738985,\"181\":0.8839496803,\"182\":0.0011130776,\"183\":0.1466844224,\"184\":0.0004695274,\"185\":0.1429167929,\"186\":6.2230674445,\"187\":532.0686670483,\"188\":0.8864786855,\"189\":550.1697281658,\"190\":0.1446619859,\"191\":0.8908966695,\"192\":0.0010988785,\"193\":0.0010728533,\"194\":0.0004116637,\"195\":0.1448083677,\"196\":0.8835424034,\"197\":0.0011010124,\"198\":6.3268524075,\"199\":564.6550888155,\"200\":6.3718015444,\"201\":0.0011952711,\"202\":0.8657145903,\"203\":0.0010631447,\"204\":0.8754669529,\"205\":0.0004594683,\"206\":0.1444731399,\"207\":0.0004523654,\"208\":6.3867880185,\"209\":0.001209767,\"210\":566.8785669118,\"211\":0.8783598241,\"212\":549.8114357001,\"213\":0.0011941554,\"214\":0.0011254173,\"215\":0.0004681917,\"216\":0.000457952,\"217\":0.1448730122,\"218\":6.2154665013,\"219\":0.8845412728,\"220\":556.4372636041,\"221\":0.0004333009,\"222\":0.0004647442,\"223\":0.8869293392,\"224\":6.1127309796,\"225\":0.8862830063,\"226\":0.00043058,\"227\":0.0010881596,\"228\":0.0004508294,\"229\":0.1460053189,\"230\":6.5195455401,\"231\":568.089794083,\"232\":0.1454623565,\"233\":0.8735316438,\"234\":0.0010724398,\"235\":548.8107029329,\"236\":0.0011304061,\"237\":0.145202607,\"238\":0.1444664169,\"239\":0.0004107842,\"240\":0.0004314714,\"241\":0.1461104349,\"242\":6.3082390974,\"243\":564.1088177747,\"244\":0.8754076886,\"245\":0.0010676595,\"246\":0.1422394039,\"247\":0.0004604791,\"248\":0.1423150227,\"249\":6.3096507915,\"250\":6.1576163818,\"251\":0.143375558,\"252\":570.0469942638,\"253\":0.8786961241,\"254\":0.8810031017,\"255\":0.0010890511,\"256\":0.000468872,\"257\":6.170210753,\"258\":6.1939707397,\"259\":0.0010502913,\"260\":521.0722371227,\"261\":0.1433798487,\"262\":0.001089027,\"263\":0.0004558827,\"264\":6.28287204,\"265\":561.0633569019,\"266\":0.8894251211,\"267\":0.0011613434,\"268\":0.8789502016,\"269\":0.0011003839,\"270\":0.0004439435,\"271\":0.1484539033,\"272\":0.0004501588,\"273\":6.4247830147,\"274\":524.9903211152,\"275\":546.2566690035,\"276\":0.8677963514,\"277\":0.8686357006,\"278\":0.0012260408,\"279\":561.9823724007,\"280\":0.0004552657,\"281\":0.0004498657,\"282\":0.0010785746,\"283\":0.1430273665,\"284\":6.0955884277,\"285\":6.2549942698,\"286\":548.4164787675,\"287\":0.8949810066,\"288\":0.3092683544,\"289\":0.0004047375,\"290\":0.0011405405,\"291\":0.0001617321,\"292\":0.0011077527,\"293\":0.0514944484,\"294\":2.2245158869,\"295\":196.202797523,\"296\":0.000447837,\"297\":0.1445910969,\"298\":0.0004529409,\"299\":0.0011889383,\"300\":6.0970516441,\"301\":0.0004641,\"302\":6.3808638805,\"303\":539.0022380473,\"304\":0.8747647222,\"305\":0.0011801288,\"306\":0.0004567434,\"307\":0.0004240967,\"308\":0.1454437027,\"309\":6.3442291552,\"310\":0.1431658655,\"311\":0.0004805583,\"312\":0.1464119846,\"313\":0.1428818356,\"314\":541.3455963236,\"315\":0.8710260379,\"316\":0.0010825977,\"317\":557.5660714772,\"318\":0.0004782589,\"319\":0.1458889692,\"320\":6.3608546841,\"321\":546.933033876,\"322\":0.1464931359,\"323\":6.4408514328,\"324\":6.1650009671,\"325\":552.3563712723,\"326\":0.8648829641,\"327\":0.8843338952,\"328\":0.0011182264,\"329\":0.0004876366,\"330\":0.144552743,\"331\":0.8884793469,\"332\":0.8853302977,\"333\":0.0004328902,\"334\":563.0983015784,\"335\":6.2757100469,\"336\":0.1429369289,\"337\":6.3924694824,\"338\":557.450823752,\"339\":0.001038247,\"340\":0.8683707472,\"341\":0.001151298,\"342\":0.0004329182,\"343\":0.0011361956,\"344\":0.1457237919,\"345\":6.1882401845,\"346\":0.0011458122,\"347\":0.0011203117,\"348\":533.0938179341,\"349\":0.1409381733,\"350\":0.8818870773,\"351\":0.8733624143,\"352\":573.1638754655,\"353\":0.0011317992,\"354\":0.0004162441,\"355\":540.3679596302,\"356\":0.1469817811,\"357\":0.0004742366,\"358\":6.4075310618,\"359\":551.9259747124,\"360\":0.8807033415,\"361\":0.0004459853,\"362\":0.0011450358,\"363\":0.0004400015,\"364\":0.1443189703,\"365\":0.000437093,\"366\":0.0011485125,\"367\":6.4332777843,\"368\":0.1442773902,\"369\":570.8956215886,\"370\":0.0004289179,\"371\":0.1449952768,\"372\":6.4547116845,\"373\":554.7293583038,\"374\":0.883626247,\"375\":0.1436627227,\"376\":0.0011401583,\"377\":0.0004306861,\"378\":0.1457572264,\"379\":6.3596502176,\"380\":568.9605625822,\"381\":0.0004339667,\"382\":0.1445927122,\"383\":6.2132948465,\"384\":0.8754537636,\"385\":559.8438978036,\"386\":0.8675418684,\"387\":0.0010281467,\"388\":0.0004516367,\"389\":6.2273539558},\"start_time\":{\"0\":1553817600000,\"1\":1553817600000,\"2\":1553817600000,\"3\":1553817600000,\"4\":1553817600000,\"5\":1553817600000,\"6\":1553817600000,\"7\":1553817600000,\"8\":1553817600000,\"9\":1553817600000,\"10\":1553817600000,\"11\":1553817600000,\"12\":1553817600000,\"13\":1553817600000,\"14\":1553817600000,\"15\":1553817600000,\"16\":1553817600000,\"17\":1553817600000,\"18\":1553817600000,\"19\":1553817600000,\"20\":1553817600000,\"21\":1553817600000,\"22\":1553817600000,\"23\":1553817600000,\"24\":1553817600000,\"25\":1553817600000,\"26\":1553817600000,\"27\":1553817600000,\"28\":1553817600000,\"29\":1553817600000,\"30\":1553817600000,\"31\":1553817600000,\"32\":1553817600000,\"33\":1553817600000,\"34\":1553817600000,\"35\":1553817600000,\"36\":1553817600000,\"37\":1553817600000,\"38\":1553817600000,\"39\":1553817600000,\"40\":1553817600000,\"41\":1553817600000,\"42\":1553817600000,\"43\":1553817600000,\"44\":1553817600000,\"45\":1553817600000,\"46\":1553817600000,\"47\":1553817600000,\"48\":1553817600000,\"49\":1553817600000,\"50\":1553817600000,\"51\":1553817600000,\"52\":1553817600000,\"53\":1553817600000,\"54\":1553817600000,\"55\":1553817600000,\"56\":1553817600000,\"57\":1553817600000,\"58\":1553817600000,\"59\":1553817600000,\"60\":1553817600000,\"61\":1553817600000,\"62\":1553817600000,\"63\":1553817600000,\"64\":1553817600000,\"65\":1553817600000,\"66\":1553817600000,\"67\":1553817600000,\"68\":1553817600000,\"69\":1553817600000,\"70\":1553817600000,\"71\":1553817600000,\"72\":1553817600000,\"73\":1553817600000,\"74\":1553817600000,\"75\":1553817600000,\"76\":1553817600000,\"77\":1553817600000,\"78\":1553817600000,\"79\":1553817600000,\"80\":1553817600000,\"81\":1553817600000,\"82\":1553817600000,\"83\":1553817600000,\"84\":1553817600000,\"85\":1553817600000,\"86\":1553817600000,\"87\":1553817600000,\"88\":1553817600000,\"89\":1553817600000,\"90\":1553817600000,\"91\":1553817600000,\"92\":1553817600000,\"93\":1553817600000,\"94\":1553817600000,\"95\":1553817600000,\"96\":1553817600000,\"97\":1553817600000,\"98\":1553817600000,\"99\":1553817600000,\"100\":1553817600000,\"101\":1553817600000,\"102\":1553817600000,\"103\":1553817600000,\"104\":1553817600000,\"105\":1553817600000,\"106\":1553817600000,\"107\":1553817600000,\"108\":1553817600000,\"109\":1553817600000,\"110\":1553817600000,\"111\":1553817600000,\"112\":1553817600000,\"113\":1553817600000,\"114\":1553817600000,\"115\":1553817600000,\"116\":1553817600000,\"117\":1553817600000,\"118\":1553817600000,\"119\":1553817600000,\"120\":1553817600000,\"121\":1553817600000,\"122\":1553817600000,\"123\":1553817600000,\"124\":1553817600000,\"125\":1553817600000,\"126\":1553817600000,\"127\":1553817600000,\"128\":1553817600000,\"129\":1553817600000,\"130\":1553817600000,\"131\":1553817600000,\"132\":1553817600000,\"133\":1553817600000,\"134\":1553817600000,\"135\":1553817600000,\"136\":1553817600000,\"137\":1553817600000,\"138\":1553817600000,\"139\":1553817600000,\"140\":1553817600000,\"141\":1553817600000,\"142\":1553817600000,\"143\":1553817600000,\"144\":1553817600000,\"145\":1553817600000,\"146\":1553817600000,\"147\":1553817600000,\"148\":1553817600000,\"149\":1553817600000,\"150\":1553817600000,\"151\":1553817600000,\"152\":1553817600000,\"153\":1553817600000,\"154\":1553817600000,\"155\":1553817600000,\"156\":1553817600000,\"157\":1553817600000,\"158\":1553817600000,\"159\":1553817600000,\"160\":1553817600000,\"161\":1553817600000,\"162\":1553817600000,\"163\":1553817600000,\"164\":1553817600000,\"165\":1553817600000,\"166\":1553817600000,\"167\":1553817600000,\"168\":1553817600000,\"169\":1553817600000,\"170\":1553817600000,\"171\":1553817600000,\"172\":1553817600000,\"173\":1553817600000,\"174\":1553817600000,\"175\":1553817600000,\"176\":1553817600000,\"177\":1553817600000,\"178\":1553817600000,\"179\":1553817600000,\"180\":1553817600000,\"181\":1553817600000,\"182\":1553817600000,\"183\":1553817600000,\"184\":1553817600000,\"185\":1553817600000,\"186\":1553817600000,\"187\":1553817600000,\"188\":1553817600000,\"189\":1553817600000,\"190\":1553817600000,\"191\":1553817600000,\"192\":1553817600000,\"193\":1553817600000,\"194\":1553817600000,\"195\":1553817600000,\"196\":1553817600000,\"197\":1553817600000,\"198\":1553817600000,\"199\":1553817600000,\"200\":1553817600000,\"201\":1553817600000,\"202\":1553817600000,\"203\":1553817600000,\"204\":1553817600000,\"205\":1553817600000,\"206\":1553817600000,\"207\":1553817600000,\"208\":1553817600000,\"209\":1553817600000,\"210\":1553817600000,\"211\":1553817600000,\"212\":1553817600000,\"213\":1553817600000,\"214\":1553817600000,\"215\":1553817600000,\"216\":1553817600000,\"217\":1553817600000,\"218\":1553817600000,\"219\":1553817600000,\"220\":1553817600000,\"221\":1553817600000,\"222\":1553817600000,\"223\":1553817600000,\"224\":1553817600000,\"225\":1553817600000,\"226\":1553817600000,\"227\":1553817600000,\"228\":1553817600000,\"229\":1553817600000,\"230\":1553817600000,\"231\":1553817600000,\"232\":1553817600000,\"233\":1553817600000,\"234\":1553817600000,\"235\":1553817600000,\"236\":1553817600000,\"237\":1553817600000,\"238\":1553817600000,\"239\":1553817600000,\"240\":1553817600000,\"241\":1553817600000,\"242\":1553817600000,\"243\":1553817600000,\"244\":1553817600000,\"245\":1553817600000,\"246\":1553817600000,\"247\":1553817600000,\"248\":1553817600000,\"249\":1553817600000,\"250\":1553817600000,\"251\":1553817600000,\"252\":1553817600000,\"253\":1553817600000,\"254\":1553817600000,\"255\":1553817600000,\"256\":1553817600000,\"257\":1553817600000,\"258\":1553817600000,\"259\":1553817600000,\"260\":1553817600000,\"261\":1553817600000,\"262\":1553817600000,\"263\":1553817600000,\"264\":1553817600000,\"265\":1553817600000,\"266\":1553817600000,\"267\":1553817600000,\"268\":1553817600000,\"269\":1553817600000,\"270\":1553817600000,\"271\":1553817600000,\"272\":1553817600000,\"273\":1553817600000,\"274\":1553817600000,\"275\":1553817600000,\"276\":1553817600000,\"277\":1553817600000,\"278\":1553817600000,\"279\":1553817600000,\"280\":1553817600000,\"281\":1553817600000,\"282\":1553817600000,\"283\":1553817600000,\"284\":1553817600000,\"285\":1553817600000,\"286\":1553817600000,\"287\":1553817600000,\"288\":1553817600000,\"289\":1553817600000,\"290\":1553817600000,\"291\":1553817600000,\"292\":1553817600000,\"293\":1553817600000,\"294\":1553817600000,\"295\":1553817600000,\"296\":1553817600000,\"297\":1553817600000,\"298\":1553817600000,\"299\":1553817600000,\"300\":1553817600000,\"301\":1553817600000,\"302\":1553817600000,\"303\":1553817600000,\"304\":1553817600000,\"305\":1553817600000,\"306\":1553817600000,\"307\":1553817600000,\"308\":1553817600000,\"309\":1553817600000,\"310\":1553817600000,\"311\":1553817600000,\"312\":1553817600000,\"313\":1553817600000,\"314\":1553817600000,\"315\":1553817600000,\"316\":1553817600000,\"317\":1553817600000,\"318\":1553817600000,\"319\":1553817600000,\"320\":1553817600000,\"321\":1553817600000,\"322\":1553817600000,\"323\":1553817600000,\"324\":1553817600000,\"325\":1553817600000,\"326\":1553817600000,\"327\":1553817600000,\"328\":1553817600000,\"329\":1553817600000,\"330\":1553817600000,\"331\":1553817600000,\"332\":1553817600000,\"333\":1553817600000,\"334\":1553817600000,\"335\":1553817600000,\"336\":1553817600000,\"337\":1553817600000,\"338\":1553817600000,\"339\":1553817600000,\"340\":1553817600000,\"341\":1553817600000,\"342\":1553817600000,\"343\":1553817600000,\"344\":1553817600000,\"345\":1553817600000,\"346\":1553817600000,\"347\":1553817600000,\"348\":1553817600000,\"349\":1553817600000,\"350\":1553817600000,\"351\":1553817600000,\"352\":1553817600000,\"353\":1553817600000,\"354\":1553817600000,\"355\":1553817600000,\"356\":1553817600000,\"357\":1553817600000,\"358\":1553817600000,\"359\":1553817600000,\"360\":1553817600000,\"361\":1553817600000,\"362\":1553817600000,\"363\":1553817600000,\"364\":1553817600000,\"365\":1553817600000,\"366\":1553817600000,\"367\":1553817600000,\"368\":1553817600000,\"369\":1553817600000,\"370\":1553817600000,\"371\":1553817600000,\"372\":1553817600000,\"373\":1553817600000,\"374\":1553817600000,\"375\":1553817600000,\"376\":1553817600000,\"377\":1553817600000,\"378\":1553817600000,\"379\":1553817600000,\"380\":1553817600000,\"381\":1553817600000,\"382\":1553817600000,\"383\":1553817600000,\"384\":1553817600000,\"385\":1553817600000,\"386\":1553817600000,\"387\":1553817600000,\"388\":1553817600000,\"389\":1553817600000}}"},"description":null}],[1556078905201,{"__type":"Data","df":{"__type":"DataFrame","value":"{\"arm_name\":{\"0\":\"0_0\",\"1\":\"0_0\",\"2\":\"0_17\",\"3\":\"0_30\",\"4\":\"0_27\",\"5\":\"0_51\",\"6\":\"0_30\",\"7\":\"0_30\",\"8\":\"0_10\",\"9\":\"0_31\",\"10\":\"0_31\",\"11\":\"0_24\",\"12\":\"0_31\",\"13\":\"0_1\",\"14\":\"0_31\",\"15\":\"0_31\",\"16\":\"0_5\",\"17\":\"0_61\",\"18\":\"0_1\",\"19\":\"0_51\",\"20\":\"0_31\",\"21\":\"0_32\",\"22\":\"0_32\",\"23\":\"0_32\",\"24\":\"0_18\",\"25\":\"0_32\",\"26\":\"0_10\",\"27\":\"0_32\",\"28\":\"0_24\",\"29\":\"0_61\",\"30\":\"0_32\",\"31\":\"0_33\",\"32\":\"0_26\",\"33\":\"0_40\",\"34\":\"0_33\",\"35\":\"0_60\",\"36\":\"0_33\",\"37\":\"0_33\",\"38\":\"0_33\",\"39\":\"0_33\",\"40\":\"0_34\",\"41\":\"0_61\",\"42\":\"0_34\",\"43\":\"0_10\",\"44\":\"0_24\",\"45\":\"0_49\",\"46\":\"0_18\",\"47\":\"0_52\",\"48\":\"0_34\",\"49\":\"0_41\",\"50\":\"0_34\",\"51\":\"0_34\",\"52\":\"0_34\",\"53\":\"0_61\",\"54\":\"0_35\",\"55\":\"0_35\",\"56\":\"0_35\",\"57\":\"0_18\",\"58\":\"0_35\",\"59\":\"0_35\",\"60\":\"0_52\",\"61\":\"0_35\",\"62\":\"0_24\",\"63\":\"0_41\",\"64\":\"0_11\",\"65\":\"0_50\",\"66\":\"0_36\",\"67\":\"0_36\",\"68\":\"0_38\",\"69\":\"0_36\",\"70\":\"0_36\",\"71\":\"0_36\",\"72\":\"0_36\",\"73\":\"0_12\",\"74\":\"0_37\",\"75\":\"0_37\",\"76\":\"0_37\",\"77\":\"0_62\",\"78\":\"0_41\",\"79\":\"0_50\",\"80\":\"0_11\",\"81\":\"0_41\",\"82\":\"0_11\",\"83\":\"0_41\",\"84\":\"0_41\",\"85\":\"0_42\",\"86\":\"0_52\",\"87\":\"0_42\",\"88\":\"0_25\",\"89\":\"0_62\",\"90\":\"0_10\",\"91\":\"0_42\",\"92\":\"0_42\",\"93\":\"0_42\",\"94\":\"0_37\",\"95\":\"0_42\",\"96\":\"0_43\",\"97\":\"0_43\",\"98\":\"0_11\",\"99\":\"0_52\",\"100\":\"0_43\",\"101\":\"0_4\",\"102\":\"0_62\",\"103\":\"0_43\",\"104\":\"0_43\",\"105\":\"0_25\",\"106\":\"0_43\",\"107\":\"0_44\",\"108\":\"0_37\",\"109\":\"0_44\",\"110\":\"0_44\",\"111\":\"0_44\",\"112\":\"0_60\",\"113\":\"0_18\",\"114\":\"0_25\",\"115\":\"0_62\",\"116\":\"0_44\",\"117\":\"0_44\",\"118\":\"0_12\",\"119\":\"0_45\",\"120\":\"0_45\",\"121\":\"0_25\",\"122\":\"0_45\",\"123\":\"0_38\",\"124\":\"0_18\",\"125\":\"0_45\",\"126\":\"0_45\",\"127\":\"0_39\",\"128\":\"0_52\",\"129\":\"0_45\",\"130\":\"0_46\",\"131\":\"0_46\",\"132\":\"0_46\",\"133\":\"0_46\",\"134\":\"0_12\",\"135\":\"0_18\",\"136\":\"0_46\",\"137\":\"0_25\",\"138\":\"0_38\",\"139\":\"0_6\",\"140\":\"0_62\",\"141\":\"0_46\",\"142\":\"0_52\",\"143\":\"0_47\",\"144\":\"0_47\",\"145\":\"0_47\",\"146\":\"0_19\",\"147\":\"0_47\",\"148\":\"0_47\",\"149\":\"0_47\",\"150\":\"0_48\",\"151\":\"0_48\",\"152\":\"0_62\",\"153\":\"0_12\",\"154\":\"0_38\",\"155\":\"0_53\",\"156\":\"0_26\",\"157\":\"0_60\",\"158\":\"0_48\",\"159\":\"0_48\",\"160\":\"0_48\",\"161\":\"0_48\",\"162\":\"0_49\",\"163\":\"0_49\",\"164\":\"0_27\",\"165\":\"0_49\",\"166\":\"0_49\",\"167\":\"0_49\",\"168\":\"0_19\",\"169\":\"0_53\",\"170\":\"0_26\",\"171\":\"0_53\",\"172\":\"0_26\",\"173\":\"0_53\",\"174\":\"0_53\",\"175\":\"0_53\",\"176\":\"0_14\",\"177\":\"0_0\",\"178\":\"0_39\",\"179\":\"0_19\",\"180\":\"0_13\",\"181\":\"0_54\",\"182\":\"0_54\",\"183\":\"0_12\",\"184\":\"0_54\",\"185\":\"0_54\",\"186\":\"0_54\",\"187\":\"0_26\",\"188\":\"0_63\",\"189\":\"0_54\",\"190\":\"0_19\",\"191\":\"0_55\",\"192\":\"0_55\",\"193\":\"0_39\",\"194\":\"0_55\",\"195\":\"0_55\",\"196\":\"0_5\",\"197\":\"0_13\",\"198\":\"0_55\",\"199\":\"0_55\",\"200\":\"0_38\",\"201\":\"0_1\",\"202\":\"0_56\",\"203\":\"0_56\",\"204\":\"0_10\",\"205\":\"0_56\",\"206\":\"0_56\",\"207\":\"0_0\",\"208\":\"0_56\",\"209\":\"0_5\",\"210\":\"0_56\",\"211\":\"0_57\",\"212\":\"0_50\",\"213\":\"0_63\",\"214\":\"0_57\",\"215\":\"0_13\",\"216\":\"0_57\",\"217\":\"0_57\",\"218\":\"0_57\",\"219\":\"0_27\",\"220\":\"0_57\",\"221\":\"0_11\",\"222\":\"0_5\",\"223\":\"0_17\",\"224\":\"0_19\",\"225\":\"0_58\",\"226\":\"0_63\",\"227\":\"0_58\",\"228\":\"0_58\",\"229\":\"0_58\",\"230\":\"0_58\",\"231\":\"0_58\",\"232\":\"0_13\",\"233\":\"0_59\",\"234\":\"0_59\",\"235\":\"0_19\",\"236\":\"0_27\",\"237\":\"0_5\",\"238\":\"0_63\",\"239\":\"0_39\",\"240\":\"0_59\",\"241\":\"0_59\",\"242\":\"0_59\",\"243\":\"0_59\",\"244\":\"0_6\",\"245\":\"0_6\",\"246\":\"0_11\",\"247\":\"0_6\",\"248\":\"0_6\",\"249\":\"0_13\",\"250\":\"0_63\",\"251\":\"0_39\",\"252\":\"0_63\",\"253\":\"0_4\",\"254\":\"0_7\",\"255\":\"0_7\",\"256\":\"0_7\",\"257\":\"0_28\",\"258\":\"0_23\",\"259\":\"0_50\",\"260\":\"0_27\",\"261\":\"0_7\",\"262\":\"0_14\",\"263\":\"0_27\",\"264\":\"0_7\",\"265\":\"0_7\",\"266\":\"0_8\",\"267\":\"0_4\",\"268\":\"0_2\",\"269\":\"0_8\",\"270\":\"0_8\",\"271\":\"0_8\",\"272\":\"0_50\",\"273\":\"0_8\",\"274\":\"0_8\",\"275\":\"0_6\",\"276\":\"0_28\",\"277\":\"0_9\",\"278\":\"0_9\",\"279\":\"0_5\",\"280\":\"0_14\",\"281\":\"0_9\",\"282\":\"0_25\",\"283\":\"0_9\",\"284\":\"0_9\",\"285\":\"0_1\",\"286\":\"0_9\",\"287\":\"0_60\",\"288\":\"status_quo\",\"289\":\"status_quo\",\"290\":\"0_2\",\"291\":\"status_quo\",\"292\":\"0_28\",\"293\":\"status_quo\",\"294\":\"status_quo\",\"295\":\"status_quo\",\"296\":\"0_4\",\"297\":\"0_14\",\"298\":\"0_26\",\"299\":\"0_60\",\"300\":\"0_0\",\"301\":\"0_2\",\"302\":\"0_14\",\"303\":\"0_14\",\"304\":\"0_15\",\"305\":\"0_15\",\"306\":\"0_15\",\"307\":\"0_28\",\"308\":\"0_15\",\"309\":\"0_15\",\"310\":\"0_4\",\"311\":\"0_60\",\"312\":\"0_2\",\"313\":\"0_50\",\"314\":\"0_15\",\"315\":\"0_16\",\"316\":\"0_16\",\"317\":\"0_0\",\"318\":\"0_16\",\"319\":\"0_16\",\"320\":\"0_16\",\"321\":\"0_16\",\"322\":\"0_28\",\"323\":\"0_2\",\"324\":\"0_12\",\"325\":\"0_2\",\"326\":\"0_51\",\"327\":\"0_20\",\"328\":\"0_20\",\"329\":\"0_1\",\"330\":\"0_37\",\"331\":\"0_61\",\"332\":\"0_40\",\"333\":\"0_20\",\"334\":\"0_28\",\"335\":\"0_4\",\"336\":\"0_20\",\"337\":\"0_20\",\"338\":\"0_20\",\"339\":\"0_51\",\"340\":\"0_21\",\"341\":\"0_21\",\"342\":\"0_21\",\"343\":\"0_61\",\"344\":\"0_21\",\"345\":\"0_21\",\"346\":\"0_17\",\"347\":\"0_40\",\"348\":\"0_21\",\"349\":\"0_1\",\"350\":\"0_29\",\"351\":\"0_22\",\"352\":\"0_38\",\"353\":\"0_22\",\"354\":\"0_22\",\"355\":\"0_24\",\"356\":\"0_22\",\"357\":\"0_17\",\"358\":\"0_22\",\"359\":\"0_22\",\"360\":\"0_23\",\"361\":\"0_40\",\"362\":\"0_23\",\"363\":\"0_23\",\"364\":\"0_23\",\"365\":\"0_51\",\"366\":\"0_29\",\"367\":\"0_39\",\"368\":\"0_17\",\"369\":\"0_23\",\"370\":\"0_29\",\"371\":\"0_29\",\"372\":\"0_29\",\"373\":\"0_29\",\"374\":\"0_3\",\"375\":\"0_40\",\"376\":\"0_3\",\"377\":\"0_10\",\"378\":\"0_51\",\"379\":\"0_17\",\"380\":\"0_13\",\"381\":\"0_3\",\"382\":\"0_3\",\"383\":\"0_3\",\"384\":\"0_24\",\"385\":\"0_3\",\"386\":\"0_30\",\"387\":\"0_30\",\"388\":\"0_30\",\"389\":\"0_40\"},\"trial_index\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":0,\"113\":0,\"114\":0,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":0,\"120\":0,\"121\":0,\"122\":0,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":0,\"128\":0,\"129\":0,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":0,\"144\":0,\"145\":0,\"146\":0,\"147\":0,\"148\":0,\"149\":0,\"150\":0,\"151\":0,\"152\":0,\"153\":0,\"154\":0,\"155\":0,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":0,\"163\":0,\"164\":0,\"165\":0,\"166\":0,\"167\":0,\"168\":0,\"169\":0,\"170\":0,\"171\":0,\"172\":0,\"173\":0,\"174\":0,\"175\":0,\"176\":0,\"177\":0,\"178\":0,\"179\":0,\"180\":0,\"181\":0,\"182\":0,\"183\":0,\"184\":0,\"185\":0,\"186\":0,\"187\":0,\"188\":0,\"189\":0,\"190\":0,\"191\":0,\"192\":0,\"193\":0,\"194\":0,\"195\":0,\"196\":0,\"197\":0,\"198\":0,\"199\":0,\"200\":0,\"201\":0,\"202\":0,\"203\":0,\"204\":0,\"205\":0,\"206\":0,\"207\":0,\"208\":0,\"209\":0,\"210\":0,\"211\":0,\"212\":0,\"213\":0,\"214\":0,\"215\":0,\"216\":0,\"217\":0,\"218\":0,\"219\":0,\"220\":0,\"221\":0,\"222\":0,\"223\":0,\"224\":0,\"225\":0,\"226\":0,\"227\":0,\"228\":0,\"229\":0,\"230\":0,\"231\":0,\"232\":0,\"233\":0,\"234\":0,\"235\":0,\"236\":0,\"237\":0,\"238\":0,\"239\":0,\"240\":0,\"241\":0,\"242\":0,\"243\":0,\"244\":0,\"245\":0,\"246\":0,\"247\":0,\"248\":0,\"249\":0,\"250\":0,\"251\":0,\"252\":0,\"253\":0,\"254\":0,\"255\":0,\"256\":0,\"257\":0,\"258\":0,\"259\":0,\"260\":0,\"261\":0,\"262\":0,\"263\":0,\"264\":0,\"265\":0,\"266\":0,\"267\":0,\"268\":0,\"269\":0,\"270\":0,\"271\":0,\"272\":0,\"273\":0,\"274\":0,\"275\":0,\"276\":0,\"277\":0,\"278\":0,\"279\":0,\"280\":0,\"281\":0,\"282\":0,\"283\":0,\"284\":0,\"285\":0,\"286\":0,\"287\":0,\"288\":0,\"289\":0,\"290\":0,\"291\":0,\"292\":0,\"293\":0,\"294\":0,\"295\":0,\"296\":0,\"297\":0,\"298\":0,\"299\":0,\"300\":0,\"301\":0,\"302\":0,\"303\":0,\"304\":0,\"305\":0,\"306\":0,\"307\":0,\"308\":0,\"309\":0,\"310\":0,\"311\":0,\"312\":0,\"313\":0,\"314\":0,\"315\":0,\"316\":0,\"317\":0,\"318\":0,\"319\":0,\"320\":0,\"321\":0,\"322\":0,\"323\":0,\"324\":0,\"325\":0,\"326\":0,\"327\":0,\"328\":0,\"329\":0,\"330\":0,\"331\":0,\"332\":0,\"333\":0,\"334\":0,\"335\":0,\"336\":0,\"337\":0,\"338\":0,\"339\":0,\"340\":0,\"341\":0,\"342\":0,\"343\":0,\"344\":0,\"345\":0,\"346\":0,\"347\":0,\"348\":0,\"349\":0,\"350\":0,\"351\":0,\"352\":0,\"353\":0,\"354\":0,\"355\":0,\"356\":0,\"357\":0,\"358\":0,\"359\":0,\"360\":0,\"361\":0,\"362\":0,\"363\":0,\"364\":0,\"365\":0,\"366\":0,\"367\":0,\"368\":0,\"369\":0,\"370\":0,\"371\":0,\"372\":0,\"373\":0,\"374\":0,\"375\":0,\"376\":0,\"377\":0,\"378\":0,\"379\":0,\"380\":0,\"381\":0,\"382\":0,\"383\":0,\"384\":0,\"385\":0,\"386\":0,\"387\":0,\"388\":0,\"389\":0},\"end_time\":{\"0\":1553990400000,\"1\":1553990400000,\"2\":1553990400000,\"3\":1553990400000,\"4\":1553990400000,\"5\":1553990400000,\"6\":1553990400000,\"7\":1553990400000,\"8\":1553990400000,\"9\":1553990400000,\"10\":1553990400000,\"11\":1553990400000,\"12\":1553990400000,\"13\":1553990400000,\"14\":1553990400000,\"15\":1553990400000,\"16\":1553990400000,\"17\":1553990400000,\"18\":1553990400000,\"19\":1553990400000,\"20\":1553990400000,\"21\":1553990400000,\"22\":1553990400000,\"23\":1553990400000,\"24\":1553990400000,\"25\":1553990400000,\"26\":1553990400000,\"27\":1553990400000,\"28\":1553990400000,\"29\":1553990400000,\"30\":1553990400000,\"31\":1553990400000,\"32\":1553990400000,\"33\":1553990400000,\"34\":1553990400000,\"35\":1553990400000,\"36\":1553990400000,\"37\":1553990400000,\"38\":1553990400000,\"39\":1553990400000,\"40\":1553990400000,\"41\":1553990400000,\"42\":1553990400000,\"43\":1553990400000,\"44\":1553990400000,\"45\":1553990400000,\"46\":1553990400000,\"47\":1553990400000,\"48\":1553990400000,\"49\":1553990400000,\"50\":1553990400000,\"51\":1553990400000,\"52\":1553990400000,\"53\":1553990400000,\"54\":1553990400000,\"55\":1553990400000,\"56\":1553990400000,\"57\":1553990400000,\"58\":1553990400000,\"59\":1553990400000,\"60\":1553990400000,\"61\":1553990400000,\"62\":1553990400000,\"63\":1553990400000,\"64\":1553990400000,\"65\":1553990400000,\"66\":1553990400000,\"67\":1553990400000,\"68\":1553990400000,\"69\":1553990400000,\"70\":1553990400000,\"71\":1553990400000,\"72\":1553990400000,\"73\":1553990400000,\"74\":1553990400000,\"75\":1553990400000,\"76\":1553990400000,\"77\":1553990400000,\"78\":1553990400000,\"79\":1553990400000,\"80\":1553990400000,\"81\":1553990400000,\"82\":1553990400000,\"83\":1553990400000,\"84\":1553990400000,\"85\":1553990400000,\"86\":1553990400000,\"87\":1553990400000,\"88\":1553990400000,\"89\":1553990400000,\"90\":1553990400000,\"91\":1553990400000,\"92\":1553990400000,\"93\":1553990400000,\"94\":1553990400000,\"95\":1553990400000,\"96\":1553990400000,\"97\":1553990400000,\"98\":1553990400000,\"99\":1553990400000,\"100\":1553990400000,\"101\":1553990400000,\"102\":1553990400000,\"103\":1553990400000,\"104\":1553990400000,\"105\":1553990400000,\"106\":1553990400000,\"107\":1553990400000,\"108\":1553990400000,\"109\":1553990400000,\"110\":1553990400000,\"111\":1553990400000,\"112\":1553990400000,\"113\":1553990400000,\"114\":1553990400000,\"115\":1553990400000,\"116\":1553990400000,\"117\":1553990400000,\"118\":1553990400000,\"119\":1553990400000,\"120\":1553990400000,\"121\":1553990400000,\"122\":1553990400000,\"123\":1553990400000,\"124\":1553990400000,\"125\":1553990400000,\"126\":1553990400000,\"127\":1553990400000,\"128\":1553990400000,\"129\":1553990400000,\"130\":1553990400000,\"131\":1553990400000,\"132\":1553990400000,\"133\":1553990400000,\"134\":1553990400000,\"135\":1553990400000,\"136\":1553990400000,\"137\":1553990400000,\"138\":1553990400000,\"139\":1553990400000,\"140\":1553990400000,\"141\":1553990400000,\"142\":1553990400000,\"143\":1553990400000,\"144\":1553990400000,\"145\":1553990400000,\"146\":1553990400000,\"147\":1553990400000,\"148\":1553990400000,\"149\":1553990400000,\"150\":1553990400000,\"151\":1553990400000,\"152\":1553990400000,\"153\":1553990400000,\"154\":1553990400000,\"155\":1553990400000,\"156\":1553990400000,\"157\":1553990400000,\"158\":1553990400000,\"159\":1553990400000,\"160\":1553990400000,\"161\":1553990400000,\"162\":1553990400000,\"163\":1553990400000,\"164\":1553990400000,\"165\":1553990400000,\"166\":1553990400000,\"167\":1553990400000,\"168\":1553990400000,\"169\":1553990400000,\"170\":1553990400000,\"171\":1553990400000,\"172\":1553990400000,\"173\":1553990400000,\"174\":1553990400000,\"175\":1553990400000,\"176\":1553990400000,\"177\":1553990400000,\"178\":1553990400000,\"179\":1553990400000,\"180\":1553990400000,\"181\":1553990400000,\"182\":1553990400000,\"183\":1553990400000,\"184\":1553990400000,\"185\":1553990400000,\"186\":1553990400000,\"187\":1553990400000,\"188\":1553990400000,\"189\":1553990400000,\"190\":1553990400000,\"191\":1553990400000,\"192\":1553990400000,\"193\":1553990400000,\"194\":1553990400000,\"195\":1553990400000,\"196\":1553990400000,\"197\":1553990400000,\"198\":1553990400000,\"199\":1553990400000,\"200\":1553990400000,\"201\":1553990400000,\"202\":1553990400000,\"203\":1553990400000,\"204\":1553990400000,\"205\":1553990400000,\"206\":1553990400000,\"207\":1553990400000,\"208\":1553990400000,\"209\":1553990400000,\"210\":1553990400000,\"211\":1553990400000,\"212\":1553990400000,\"213\":1553990400000,\"214\":1553990400000,\"215\":1553990400000,\"216\":1553990400000,\"217\":1553990400000,\"218\":1553990400000,\"219\":1553990400000,\"220\":1553990400000,\"221\":1553990400000,\"222\":1553990400000,\"223\":1553990400000,\"224\":1553990400000,\"225\":1553990400000,\"226\":1553990400000,\"227\":1553990400000,\"228\":1553990400000,\"229\":1553990400000,\"230\":1553990400000,\"231\":1553990400000,\"232\":1553990400000,\"233\":1553990400000,\"234\":1553990400000,\"235\":1553990400000,\"236\":1553990400000,\"237\":1553990400000,\"238\":1553990400000,\"239\":1553990400000,\"240\":1553990400000,\"241\":1553990400000,\"242\":1553990400000,\"243\":1553990400000,\"244\":1553990400000,\"245\":1553990400000,\"246\":1553990400000,\"247\":1553990400000,\"248\":1553990400000,\"249\":1553990400000,\"250\":1553990400000,\"251\":1553990400000,\"252\":1553990400000,\"253\":1553990400000,\"254\":1553990400000,\"255\":1553990400000,\"256\":1553990400000,\"257\":1553990400000,\"258\":1553990400000,\"259\":1553990400000,\"260\":1553990400000,\"261\":1553990400000,\"262\":1553990400000,\"263\":1553990400000,\"264\":1553990400000,\"265\":1553990400000,\"266\":1553990400000,\"267\":1553990400000,\"268\":1553990400000,\"269\":1553990400000,\"270\":1553990400000,\"271\":1553990400000,\"272\":1553990400000,\"273\":1553990400000,\"274\":1553990400000,\"275\":1553990400000,\"276\":1553990400000,\"277\":1553990400000,\"278\":1553990400000,\"279\":1553990400000,\"280\":1553990400000,\"281\":1553990400000,\"282\":1553990400000,\"283\":1553990400000,\"284\":1553990400000,\"285\":1553990400000,\"286\":1553990400000,\"287\":1553990400000,\"288\":1553990400000,\"289\":1553990400000,\"290\":1553990400000,\"291\":1553990400000,\"292\":1553990400000,\"293\":1553990400000,\"294\":1553990400000,\"295\":1553990400000,\"296\":1553990400000,\"297\":1553990400000,\"298\":1553990400000,\"299\":1553990400000,\"300\":1553990400000,\"301\":1553990400000,\"302\":1553990400000,\"303\":1553990400000,\"304\":1553990400000,\"305\":1553990400000,\"306\":1553990400000,\"307\":1553990400000,\"308\":1553990400000,\"309\":1553990400000,\"310\":1553990400000,\"311\":1553990400000,\"312\":1553990400000,\"313\":1553990400000,\"314\":1553990400000,\"315\":1553990400000,\"316\":1553990400000,\"317\":1553990400000,\"318\":1553990400000,\"319\":1553990400000,\"320\":1553990400000,\"321\":1553990400000,\"322\":1553990400000,\"323\":1553990400000,\"324\":1553990400000,\"325\":1553990400000,\"326\":1553990400000,\"327\":1553990400000,\"328\":1553990400000,\"329\":1553990400000,\"330\":1553990400000,\"331\":1553990400000,\"332\":1553990400000,\"333\":1553990400000,\"334\":1553990400000,\"335\":1553990400000,\"336\":1553990400000,\"337\":1553990400000,\"338\":1553990400000,\"339\":1553990400000,\"340\":1553990400000,\"341\":1553990400000,\"342\":1553990400000,\"343\":1553990400000,\"344\":1553990400000,\"345\":1553990400000,\"346\":1553990400000,\"347\":1553990400000,\"348\":1553990400000,\"349\":1553990400000,\"350\":1553990400000,\"351\":1553990400000,\"352\":1553990400000,\"353\":1553990400000,\"354\":1553990400000,\"355\":1553990400000,\"356\":1553990400000,\"357\":1553990400000,\"358\":1553990400000,\"359\":1553990400000,\"360\":1553990400000,\"361\":1553990400000,\"362\":1553990400000,\"363\":1553990400000,\"364\":1553990400000,\"365\":1553990400000,\"366\":1553990400000,\"367\":1553990400000,\"368\":1553990400000,\"369\":1553990400000,\"370\":1553990400000,\"371\":1553990400000,\"372\":1553990400000,\"373\":1553990400000,\"374\":1553990400000,\"375\":1553990400000,\"376\":1553990400000,\"377\":1553990400000,\"378\":1553990400000,\"379\":1553990400000,\"380\":1553990400000,\"381\":1553990400000,\"382\":1553990400000,\"383\":1553990400000,\"384\":1553990400000,\"385\":1553990400000,\"386\":1553990400000,\"387\":1553990400000,\"388\":1553990400000,\"389\":1553990400000},\"frac_nonnull\":{\"0\":0.3414454188,\"1\":0.0120633745,\"2\":1.0,\"3\":1.0,\"4\":1.0,\"5\":1.0,\"6\":1.0,\"7\":1.0,\"8\":1.0,\"9\":0.3417422005,\"10\":0.012112022,\"11\":0.0121717169,\"12\":1.0,\"13\":0.341337541,\"14\":1.0,\"15\":1.0,\"16\":1.0,\"17\":1.0,\"18\":1.0,\"19\":1.0,\"20\":1.0,\"21\":0.3410503714,\"22\":0.0120583316,\"23\":1.0,\"24\":0.3412378737,\"25\":1.0,\"26\":1.0,\"27\":1.0,\"28\":1.0,\"29\":1.0,\"30\":1.0,\"31\":0.3416985133,\"32\":1.0,\"33\":1.0,\"34\":0.0122834784,\"35\":1.0,\"36\":1.0,\"37\":1.0,\"38\":1.0,\"39\":1.0,\"40\":0.3415251534,\"41\":1.0,\"42\":0.0121157118,\"43\":1.0,\"44\":1.0,\"45\":1.0,\"46\":0.0121012377,\"47\":0.3417754553,\"48\":1.0,\"49\":0.3423414093,\"50\":1.0,\"51\":1.0,\"52\":1.0,\"53\":1.0,\"54\":0.3417497886,\"55\":0.0119759297,\"56\":1.0,\"57\":1.0,\"58\":1.0,\"59\":1.0,\"60\":0.0121233609,\"61\":1.0,\"62\":1.0,\"63\":0.0120393667,\"64\":0.3418045904,\"65\":0.3412757027,\"66\":0.3411733951,\"67\":0.012013913,\"68\":1.0,\"69\":1.0,\"70\":1.0,\"71\":1.0,\"72\":1.0,\"73\":1.0,\"74\":0.3417141858,\"75\":0.0121033104,\"76\":1.0,\"77\":0.3416802591,\"78\":1.0,\"79\":1.0,\"80\":0.0119944494,\"81\":1.0,\"82\":1.0,\"83\":1.0,\"84\":1.0,\"85\":0.341245275,\"86\":1.0,\"87\":0.0121620391,\"88\":1.0,\"89\":0.0119537167,\"90\":0.0120090509,\"91\":1.0,\"92\":1.0,\"93\":1.0,\"94\":1.0,\"95\":1.0,\"96\":0.3420500715,\"97\":0.0119553402,\"98\":1.0,\"99\":1.0,\"100\":1.0,\"101\":1.0,\"102\":1.0,\"103\":1.0,\"104\":1.0,\"105\":1.0,\"106\":1.0,\"107\":0.3412754418,\"108\":1.0,\"109\":0.0121361049,\"110\":1.0,\"111\":1.0,\"112\":1.0,\"113\":1.0,\"114\":0.3415203779,\"115\":1.0,\"116\":1.0,\"117\":1.0,\"118\":0.3413659594,\"119\":0.3420567598,\"120\":0.0120890602,\"121\":1.0,\"122\":1.0,\"123\":0.3414821776,\"124\":1.0,\"125\":1.0,\"126\":1.0,\"127\":1.0,\"128\":1.0,\"129\":1.0,\"130\":0.3412572712,\"131\":0.0120603252,\"132\":1.0,\"133\":1.0,\"134\":0.0119930743,\"135\":1.0,\"136\":1.0,\"137\":1.0,\"138\":0.0121509799,\"139\":1.0,\"140\":1.0,\"141\":1.0,\"142\":1.0,\"143\":0.3421669008,\"144\":0.0121776205,\"145\":1.0,\"146\":0.3407862445,\"147\":1.0,\"148\":1.0,\"149\":1.0,\"150\":0.3422353864,\"151\":0.0119921329,\"152\":1.0,\"153\":1.0,\"154\":1.0,\"155\":0.3420444509,\"156\":0.3426577574,\"157\":1.0,\"158\":1.0,\"159\":1.0,\"160\":1.0,\"161\":1.0,\"162\":0.3413655779,\"163\":0.0120863742,\"164\":1.0,\"165\":1.0,\"166\":1.0,\"167\":1.0,\"168\":0.0123042557,\"169\":0.0120327485,\"170\":0.0120794713,\"171\":1.0,\"172\":1.0,\"173\":1.0,\"174\":1.0,\"175\":1.0,\"176\":0.341591623,\"177\":1.0,\"178\":0.3410150384,\"179\":1.0,\"180\":0.3416833797,\"181\":0.3417776254,\"182\":0.0119579004,\"183\":1.0,\"184\":1.0,\"185\":1.0,\"186\":1.0,\"187\":1.0,\"188\":0.341450165,\"189\":1.0,\"190\":1.0,\"191\":0.3417795417,\"192\":0.0120039051,\"193\":0.0119118564,\"194\":1.0,\"195\":1.0,\"196\":0.3417252973,\"197\":0.0120029379,\"198\":1.0,\"199\":1.0,\"200\":1.0,\"201\":0.0120013712,\"202\":0.3419115244,\"203\":0.0121290277,\"204\":0.3411296299,\"205\":1.0,\"206\":1.0,\"207\":1.0,\"208\":1.0,\"209\":0.0121114727,\"210\":1.0,\"211\":0.3414347895,\"212\":1.0,\"213\":0.0119028647,\"214\":0.0120889415,\"215\":1.0,\"216\":1.0,\"217\":1.0,\"218\":1.0,\"219\":0.3416266495,\"220\":1.0,\"221\":1.0,\"222\":1.0,\"223\":0.3421428528,\"224\":1.0,\"225\":0.3413158705,\"226\":1.0,\"227\":0.0121376731,\"228\":1.0,\"229\":1.0,\"230\":1.0,\"231\":1.0,\"232\":1.0,\"233\":0.3420815843,\"234\":0.0120689167,\"235\":1.0,\"236\":0.0119948885,\"237\":1.0,\"238\":1.0,\"239\":1.0,\"240\":1.0,\"241\":1.0,\"242\":1.0,\"243\":1.0,\"244\":0.341671155,\"245\":0.0121447525,\"246\":1.0,\"247\":1.0,\"248\":1.0,\"249\":1.0,\"250\":1.0,\"251\":1.0,\"252\":1.0,\"253\":0.3418587814,\"254\":0.3414648599,\"255\":0.0122907294,\"256\":1.0,\"257\":1.0,\"258\":1.0,\"259\":0.012080334,\"260\":1.0,\"261\":1.0,\"262\":0.0121189103,\"263\":1.0,\"264\":1.0,\"265\":1.0,\"266\":0.3413592826,\"267\":0.0120052383,\"268\":0.341763697,\"269\":0.0119914353,\"270\":1.0,\"271\":1.0,\"272\":1.0,\"273\":1.0,\"274\":1.0,\"275\":1.0,\"276\":0.3410489339,\"277\":0.3410149025,\"278\":0.012137345,\"279\":1.0,\"280\":1.0,\"281\":1.0,\"282\":0.0121061854,\"283\":1.0,\"284\":1.0,\"285\":1.0,\"286\":1.0,\"287\":0.3416780548,\"288\":0.341527935,\"289\":0.0120616334,\"290\":0.0120805747,\"291\":1.0,\"292\":0.01195384,\"293\":1.0,\"294\":1.0,\"295\":1.0,\"296\":1.0,\"297\":1.0,\"298\":1.0,\"299\":0.0120428863,\"300\":1.0,\"301\":1.0,\"302\":1.0,\"303\":1.0,\"304\":0.3413766812,\"305\":0.0120486782,\"306\":1.0,\"307\":1.0,\"308\":1.0,\"309\":1.0,\"310\":1.0,\"311\":1.0,\"312\":1.0,\"313\":1.0,\"314\":1.0,\"315\":0.3415639082,\"316\":0.0119967994,\"317\":1.0,\"318\":1.0,\"319\":1.0,\"320\":1.0,\"321\":1.0,\"322\":1.0,\"323\":1.0,\"324\":1.0,\"325\":1.0,\"326\":0.3414474955,\"327\":0.3423840374,\"328\":0.012149843,\"329\":1.0,\"330\":1.0,\"331\":0.3414991142,\"332\":0.3416747282,\"333\":1.0,\"334\":1.0,\"335\":1.0,\"336\":1.0,\"337\":1.0,\"338\":1.0,\"339\":0.0118677229,\"340\":0.3416798043,\"341\":0.012123867,\"342\":1.0,\"343\":0.0120357442,\"344\":1.0,\"345\":1.0,\"346\":0.011898822,\"347\":0.0121040149,\"348\":1.0,\"349\":1.0,\"350\":0.3415133127,\"351\":0.3409258463,\"352\":1.0,\"353\":0.0120952235,\"354\":1.0,\"355\":1.0,\"356\":1.0,\"357\":1.0,\"358\":1.0,\"359\":1.0,\"360\":0.341616341,\"361\":1.0,\"362\":0.0119570063,\"363\":1.0,\"364\":1.0,\"365\":1.0,\"366\":0.0120245163,\"367\":1.0,\"368\":1.0,\"369\":1.0,\"370\":1.0,\"371\":1.0,\"372\":1.0,\"373\":1.0,\"374\":0.3408584375,\"375\":1.0,\"376\":0.0121298141,\"377\":1.0,\"378\":1.0,\"379\":1.0,\"380\":1.0,\"381\":1.0,\"382\":1.0,\"383\":1.0,\"384\":0.3421247776,\"385\":1.0,\"386\":0.3418275749,\"387\":0.0119725919,\"388\":1.0,\"389\":1.0},\"mean\":{\"0\":71.9895648623,\"1\":0.0446683407,\"2\":39054.8720311375,\"3\":21.287688176,\"4\":21.6411120374,\"5\":510.3773043545,\"6\":515.6277676676,\"7\":39162.4631271005,\"8\":21.015486339,\"9\":72.2492393407,\"10\":0.0436610458,\"11\":0.0441897147,\"12\":0.935360477,\"13\":71.8510712687,\"14\":20.6243823504,\"15\":463.2152784546,\"16\":518.885884768,\"17\":0.9393731719,\"18\":39293.6588162236,\"19\":39392.1634036496,\"20\":39083.8213509207,\"21\":71.9374135457,\"22\":0.04407515,\"23\":0.9389822217,\"24\":72.0338890916,\"25\":21.8819410896,\"26\":489.4837271211,\"27\":543.6257525141,\"28\":0.9379120597,\"29\":22.968077069,\"30\":39336.6999680041,\"31\":71.1307916289,\"32\":21.7035849899,\"33\":38933.3344453712,\"34\":0.0444002102,\"35\":541.4597691208,\"36\":0.9393716323,\"37\":21.9559976248,\"38\":537.117734767,\"39\":39046.3801917004,\"40\":71.3358269032,\"41\":552.5792846769,\"42\":0.0435491221,\"43\":39425.6273276425,\"44\":21.7975182843,\"45\":38800.9749980785,\"46\":0.0443504242,\"47\":71.5859256712,\"48\":0.9387836387,\"49\":72.1424955376,\"50\":21.7868218068,\"51\":519.6786079836,\"52\":39123.8639613022,\"53\":39760.3224866059,\"54\":72.6757866654,\"55\":0.0438502455,\"56\":0.938605241,\"57\":0.9374331205,\"58\":21.7201231407,\"59\":527.4271239111,\"60\":0.0422872021,\"61\":39542.5480022771,\"62\":530.6598270089,\"63\":0.0455135273,\"64\":72.6505158327,\"65\":72.4895152822,\"66\":71.9144382019,\"67\":0.042392569,\"68\":21.5648096282,\"69\":0.9377280156,\"70\":21.5696638911,\"71\":534.1919062484,\"72\":39732.2844987249,\"73\":39100.3595444122,\"74\":72.2038638748,\"75\":0.043938841,\"76\":0.9382548646,\"77\":72.5307243447,\"78\":0.9371074055,\"79\":536.1546018062,\"80\":0.0443183967,\"81\":21.2406972696,\"82\":538.625358981,\"83\":512.1248297187,\"84\":39275.7143131311,\"85\":71.8873924066,\"86\":0.9380418694,\"87\":0.044609324,\"88\":0.9376792688,\"89\":0.0454195287,\"90\":0.0429629427,\"91\":0.9367953449,\"92\":21.3299724144,\"93\":511.5107018444,\"94\":531.3395773537,\"95\":39566.3155366429,\"96\":71.95464943,\"97\":0.0437835046,\"98\":38968.1005441668,\"99\":21.7358166912,\"100\":0.9374187466,\"101\":39583.3168371683,\"102\":0.9367703737,\"103\":21.4286023948,\"104\":519.5436254882,\"105\":21.4398299703,\"106\":38965.8753011993,\"107\":71.964105174,\"108\":39245.2788597766,\"109\":0.0463036039,\"110\":0.939278732,\"111\":22.3868699522,\"112\":21.8433159884,\"113\":21.2829488664,\"114\":72.3160462164,\"115\":20.8928394831,\"116\":541.7967597305,\"117\":38756.8724635135,\"118\":72.6270814395,\"119\":72.7869378233,\"120\":0.0446395713,\"121\":530.4880095186,\"122\":0.9372763177,\"123\":71.3843944864,\"124\":522.0110465276,\"125\":21.1913008745,\"126\":524.9728701089,\"127\":39410.4825265877,\"128\":531.4536339861,\"129\":40122.3751207734,\"130\":71.8373775082,\"131\":0.0431546692,\"132\":0.936135223,\"133\":21.0860306744,\"134\":0.0445261599,\"135\":39021.1594202834,\"136\":504.3634612511,\"137\":39346.8440680485,\"138\":0.0436975685,\"139\":519.7879510542,\"140\":483.1472156051,\"141\":39192.2464010985,\"142\":39147.8698323518,\"143\":72.1216835186,\"144\":0.0444013259,\"145\":0.9371507915,\"146\":72.4268058626,\"147\":21.9930323789,\"148\":520.8598313389,\"149\":39022.535276854,\"150\":71.7543929752,\"151\":0.0441686678,\"152\":39189.2593681578,\"153\":0.93739011,\"154\":0.9376368445,\"155\":72.171926675,\"156\":72.4631095152,\"157\":38986.3248406487,\"158\":0.9366045668,\"159\":21.343515729,\"160\":509.4513524446,\"161\":39408.0561482539,\"162\":71.920606964,\"163\":0.0431133892,\"164\":506.5689010049,\"165\":0.9384174335,\"166\":21.7050586689,\"167\":530.68546044,\"168\":0.0455813635,\"169\":0.0438555523,\"170\":0.0426526625,\"171\":0.9375550986,\"172\":528.3137994123,\"173\":21.3066389297,\"174\":527.4770666134,\"175\":39152.7082721239,\"176\":72.2072512923,\"177\":20.7203159081,\"178\":73.2127504279,\"179\":0.9368786372,\"180\":72.2910343305,\"181\":72.385819992,\"182\":0.0441546402,\"183\":21.415898197,\"184\":0.9370013892,\"185\":21.3311377541,\"186\":517.7460797187,\"187\":39097.7172339724,\"188\":72.476487724,\"189\":39245.4413832676,\"190\":20.9427582555,\"191\":72.370986868,\"192\":0.0427713139,\"193\":0.0429629021,\"194\":0.9374292409,\"195\":21.2040316121,\"196\":72.0889145611,\"197\":0.0427767355,\"198\":522.796299343,\"199\":39570.6140171378,\"200\":521.0147783251,\"201\":0.0451734954,\"202\":71.3144071055,\"203\":0.0442757767,\"204\":71.907081262,\"205\":0.9374775256,\"206\":21.6808136602,\"207\":0.9350134432,\"208\":528.6122029392,\"209\":0.0456395276,\"210\":40267.7562184022,\"211\":71.923349825,\"212\":39362.0412105989,\"213\":0.0439842838,\"214\":0.0435623512,\"215\":0.9375049056,\"216\":0.936006057,\"217\":21.077814123,\"218\":500.3139017757,\"219\":72.0414800107,\"220\":39324.1169162308,\"221\":0.9386614427,\"222\":0.9371461201,\"223\":72.0791221462,\"224\":481.0458926715,\"225\":72.2602979936,\"226\":0.9363679317,\"227\":0.0406919492,\"228\":0.9370916543,\"229\":21.1297325107,\"230\":527.9666772968,\"231\":39271.0042574913,\"232\":21.2698533475,\"233\":72.2267132289,\"234\":0.0431069873,\"235\":38936.9818632088,\"236\":0.0434291135,\"237\":21.4917426858,\"238\":21.015762885,\"239\":0.938224595,\"240\":0.9384536983,\"241\":21.6921561417,\"242\":535.6119835367,\"243\":39143.023746322,\"244\":72.0256227158,\"245\":0.0442489237,\"246\":21.8656488855,\"247\":0.9368457699,\"248\":21.3045517702,\"249\":520.1262485762,\"250\":494.9224229043,\"251\":21.4318515861,\"252\":39323.1081034783,\"253\":72.9800954578,\"254\":72.0293590345,\"255\":0.0455005401,\"256\":0.9369625785,\"257\":503.9727890433,\"258\":508.755355214,\"259\":0.0431530591,\"260\":38636.7450683877,\"261\":21.3600041274,\"262\":0.0443478888,\"263\":0.9374130507,\"264\":516.2381198685,\"265\":39500.5378138114,\"266\":72.3131814611,\"267\":0.0441827145,\"268\":71.7738391501,\"269\":0.0436598572,\"270\":0.9370511838,\"271\":21.1645696199,\"272\":0.9376532777,\"273\":525.790781572,\"274\":38590.3867966512,\"275\":38706.0328423328,\"276\":71.9236190475,\"277\":72.0769224929,\"278\":0.0434715267,\"279\":39287.5382267444,\"280\":0.937812532,\"281\":0.9364167738,\"282\":0.0427303111,\"283\":21.1380316263,\"284\":503.6791650971,\"285\":488.2259252373,\"286\":39121.986673501,\"287\":72.0517709834,\"288\":72.0615830207,\"289\":0.0441332787,\"290\":0.043729583,\"291\":0.9377809915,\"292\":0.0429827952,\"293\":21.4934844545,\"294\":526.2784618453,\"295\":39020.6106384141,\"296\":0.9368661419,\"297\":21.419609218,\"298\":0.9378895379,\"299\":0.0437579944,\"300\":469.5823698635,\"301\":0.9369140357,\"302\":526.0694710394,\"303\":39059.999536179,\"304\":72.0099574533,\"305\":0.045375246,\"306\":0.937293281,\"307\":0.9363811498,\"308\":21.1854384279,\"309\":512.4995698913,\"310\":21.3206930184,\"311\":0.9385264952,\"312\":21.3860434907,\"313\":21.8183866937,\"314\":38781.3206155129,\"315\":71.3022374282,\"316\":0.0434695554,\"317\":39426.6362589608,\"318\":0.9386653883,\"319\":21.9085486736,\"320\":534.8296890615,\"321\":39235.9096219265,\"322\":21.0327288636,\"323\":520.1134177299,\"324\":518.7751193055,\"325\":39183.9968441951,\"326\":71.310585026,\"327\":73.4665338682,\"328\":0.0448476625,\"329\":0.9357275626,\"330\":22.0095124374,\"331\":71.9824105342,\"332\":72.9280264027,\"333\":0.9380489187,\"334\":39774.451937102,\"335\":519.7776291273,\"336\":21.3165494235,\"337\":532.7571149322,\"338\":39292.6178948526,\"339\":0.042375705,\"340\":72.2113022244,\"341\":0.0434252244,\"342\":0.937877742,\"343\":0.0445760644,\"344\":21.5427188833,\"345\":526.2397248886,\"346\":0.0424642822,\"347\":0.0439226492,\"348\":39174.0666612286,\"349\":21.0391177711,\"350\":72.4337616514,\"351\":72.8669114998,\"352\":39745.4607503399,\"353\":0.0429762732,\"354\":0.9385276931,\"355\":39206.6214282054,\"356\":21.4846107581,\"357\":0.9374900586,\"358\":533.9382817808,\"359\":39028.7855467911,\"360\":72.5028282728,\"361\":0.9363361429,\"362\":0.0447387572,\"363\":0.9363557041,\"364\":21.137388375,\"365\":0.936937677,\"366\":0.0449098447,\"367\":531.7981369378,\"368\":21.5810397548,\"369\":39333.7475204408,\"370\":0.9388681854,\"371\":22.2106450984,\"372\":540.5733833177,\"373\":39038.8938717157,\"374\":72.5348760711,\"375\":21.0868061547,\"376\":0.044361007,\"377\":0.9362249549,\"378\":21.3439651603,\"379\":524.805176825,\"380\":39630.5973461799,\"381\":0.937932206,\"382\":21.503523962,\"383\":524.9703511025,\"384\":72.2509478288,\"385\":39798.9284370467,\"386\":72.3917018418,\"387\":0.041604852,\"388\":0.9364907665,\"389\":505.6613940892},\"metric_name\":{\"0\":\"is_live_watch_time_given_iphone\",\"1\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"2\":\"wilde_scroll_frame_drops_per_minute\",\"3\":\"video:encoding:iphone_live_playback_mos_loss\",\"4\":\"video:encoding:iphone_live_playback_mos_loss\",\"5\":\"video:sbl_iphone_is_live__smtbr\",\"6\":\"video:sbl_iphone_is_live__smtbr\",\"7\":\"wilde_scroll_frame_drops_per_minute\",\"8\":\"video:encoding:iphone_live_playback_mos_loss\",\"9\":\"is_live_watch_time_given_iphone\",\"10\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"11\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"12\":\"sbl_iphone_is_live__psr_1_start\",\"13\":\"is_live_watch_time_given_iphone\",\"14\":\"video:encoding:iphone_live_playback_mos_loss\",\"15\":\"video:sbl_iphone_is_live__smtbr\",\"16\":\"video:sbl_iphone_is_live__smtbr\",\"17\":\"sbl_iphone_is_live__psr_1_start\",\"18\":\"wilde_scroll_frame_drops_per_minute\",\"19\":\"wilde_scroll_frame_drops_per_minute\",\"20\":\"wilde_scroll_frame_drops_per_minute\",\"21\":\"is_live_watch_time_given_iphone\",\"22\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"23\":\"sbl_iphone_is_live__psr_1_start\",\"24\":\"is_live_watch_time_given_iphone\",\"25\":\"video:encoding:iphone_live_playback_mos_loss\",\"26\":\"video:sbl_iphone_is_live__smtbr\",\"27\":\"video:sbl_iphone_is_live__smtbr\",\"28\":\"sbl_iphone_is_live__psr_1_start\",\"29\":\"video:encoding:iphone_live_playback_mos_loss\",\"30\":\"wilde_scroll_frame_drops_per_minute\",\"31\":\"is_live_watch_time_given_iphone\",\"32\":\"video:encoding:iphone_live_playback_mos_loss\",\"33\":\"wilde_scroll_frame_drops_per_minute\",\"34\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"35\":\"video:sbl_iphone_is_live__smtbr\",\"36\":\"sbl_iphone_is_live__psr_1_start\",\"37\":\"video:encoding:iphone_live_playback_mos_loss\",\"38\":\"video:sbl_iphone_is_live__smtbr\",\"39\":\"wilde_scroll_frame_drops_per_minute\",\"40\":\"is_live_watch_time_given_iphone\",\"41\":\"video:sbl_iphone_is_live__smtbr\",\"42\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"43\":\"wilde_scroll_frame_drops_per_minute\",\"44\":\"video:encoding:iphone_live_playback_mos_loss\",\"45\":\"wilde_scroll_frame_drops_per_minute\",\"46\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"47\":\"is_live_watch_time_given_iphone\",\"48\":\"sbl_iphone_is_live__psr_1_start\",\"49\":\"is_live_watch_time_given_iphone\",\"50\":\"video:encoding:iphone_live_playback_mos_loss\",\"51\":\"video:sbl_iphone_is_live__smtbr\",\"52\":\"wilde_scroll_frame_drops_per_minute\",\"53\":\"wilde_scroll_frame_drops_per_minute\",\"54\":\"is_live_watch_time_given_iphone\",\"55\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"56\":\"sbl_iphone_is_live__psr_1_start\",\"57\":\"sbl_iphone_is_live__psr_1_start\",\"58\":\"video:encoding:iphone_live_playback_mos_loss\",\"59\":\"video:sbl_iphone_is_live__smtbr\",\"60\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"61\":\"wilde_scroll_frame_drops_per_minute\",\"62\":\"video:sbl_iphone_is_live__smtbr\",\"63\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"64\":\"is_live_watch_time_given_iphone\",\"65\":\"is_live_watch_time_given_iphone\",\"66\":\"is_live_watch_time_given_iphone\",\"67\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"68\":\"video:encoding:iphone_live_playback_mos_loss\",\"69\":\"sbl_iphone_is_live__psr_1_start\",\"70\":\"video:encoding:iphone_live_playback_mos_loss\",\"71\":\"video:sbl_iphone_is_live__smtbr\",\"72\":\"wilde_scroll_frame_drops_per_minute\",\"73\":\"wilde_scroll_frame_drops_per_minute\",\"74\":\"is_live_watch_time_given_iphone\",\"75\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"76\":\"sbl_iphone_is_live__psr_1_start\",\"77\":\"is_live_watch_time_given_iphone\",\"78\":\"sbl_iphone_is_live__psr_1_start\",\"79\":\"video:sbl_iphone_is_live__smtbr\",\"80\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"81\":\"video:encoding:iphone_live_playback_mos_loss\",\"82\":\"video:sbl_iphone_is_live__smtbr\",\"83\":\"video:sbl_iphone_is_live__smtbr\",\"84\":\"wilde_scroll_frame_drops_per_minute\",\"85\":\"is_live_watch_time_given_iphone\",\"86\":\"sbl_iphone_is_live__psr_1_start\",\"87\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"88\":\"sbl_iphone_is_live__psr_1_start\",\"89\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"90\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"91\":\"sbl_iphone_is_live__psr_1_start\",\"92\":\"video:encoding:iphone_live_playback_mos_loss\",\"93\":\"video:sbl_iphone_is_live__smtbr\",\"94\":\"video:sbl_iphone_is_live__smtbr\",\"95\":\"wilde_scroll_frame_drops_per_minute\",\"96\":\"is_live_watch_time_given_iphone\",\"97\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"98\":\"wilde_scroll_frame_drops_per_minute\",\"99\":\"video:encoding:iphone_live_playback_mos_loss\",\"100\":\"sbl_iphone_is_live__psr_1_start\",\"101\":\"wilde_scroll_frame_drops_per_minute\",\"102\":\"sbl_iphone_is_live__psr_1_start\",\"103\":\"video:encoding:iphone_live_playback_mos_loss\",\"104\":\"video:sbl_iphone_is_live__smtbr\",\"105\":\"video:encoding:iphone_live_playback_mos_loss\",\"106\":\"wilde_scroll_frame_drops_per_minute\",\"107\":\"is_live_watch_time_given_iphone\",\"108\":\"wilde_scroll_frame_drops_per_minute\",\"109\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"110\":\"sbl_iphone_is_live__psr_1_start\",\"111\":\"video:encoding:iphone_live_playback_mos_loss\",\"112\":\"video:encoding:iphone_live_playback_mos_loss\",\"113\":\"video:encoding:iphone_live_playback_mos_loss\",\"114\":\"is_live_watch_time_given_iphone\",\"115\":\"video:encoding:iphone_live_playback_mos_loss\",\"116\":\"video:sbl_iphone_is_live__smtbr\",\"117\":\"wilde_scroll_frame_drops_per_minute\",\"118\":\"is_live_watch_time_given_iphone\",\"119\":\"is_live_watch_time_given_iphone\",\"120\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"121\":\"video:sbl_iphone_is_live__smtbr\",\"122\":\"sbl_iphone_is_live__psr_1_start\",\"123\":\"is_live_watch_time_given_iphone\",\"124\":\"video:sbl_iphone_is_live__smtbr\",\"125\":\"video:encoding:iphone_live_playback_mos_loss\",\"126\":\"video:sbl_iphone_is_live__smtbr\",\"127\":\"wilde_scroll_frame_drops_per_minute\",\"128\":\"video:sbl_iphone_is_live__smtbr\",\"129\":\"wilde_scroll_frame_drops_per_minute\",\"130\":\"is_live_watch_time_given_iphone\",\"131\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"132\":\"sbl_iphone_is_live__psr_1_start\",\"133\":\"video:encoding:iphone_live_playback_mos_loss\",\"134\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"135\":\"wilde_scroll_frame_drops_per_minute\",\"136\":\"video:sbl_iphone_is_live__smtbr\",\"137\":\"wilde_scroll_frame_drops_per_minute\",\"138\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"139\":\"video:sbl_iphone_is_live__smtbr\",\"140\":\"video:sbl_iphone_is_live__smtbr\",\"141\":\"wilde_scroll_frame_drops_per_minute\",\"142\":\"wilde_scroll_frame_drops_per_minute\",\"143\":\"is_live_watch_time_given_iphone\",\"144\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"145\":\"sbl_iphone_is_live__psr_1_start\",\"146\":\"is_live_watch_time_given_iphone\",\"147\":\"video:encoding:iphone_live_playback_mos_loss\",\"148\":\"video:sbl_iphone_is_live__smtbr\",\"149\":\"wilde_scroll_frame_drops_per_minute\",\"150\":\"is_live_watch_time_given_iphone\",\"151\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"152\":\"wilde_scroll_frame_drops_per_minute\",\"153\":\"sbl_iphone_is_live__psr_1_start\",\"154\":\"sbl_iphone_is_live__psr_1_start\",\"155\":\"is_live_watch_time_given_iphone\",\"156\":\"is_live_watch_time_given_iphone\",\"157\":\"wilde_scroll_frame_drops_per_minute\",\"158\":\"sbl_iphone_is_live__psr_1_start\",\"159\":\"video:encoding:iphone_live_playback_mos_loss\",\"160\":\"video:sbl_iphone_is_live__smtbr\",\"161\":\"wilde_scroll_frame_drops_per_minute\",\"162\":\"is_live_watch_time_given_iphone\",\"163\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"164\":\"video:sbl_iphone_is_live__smtbr\",\"165\":\"sbl_iphone_is_live__psr_1_start\",\"166\":\"video:encoding:iphone_live_playback_mos_loss\",\"167\":\"video:sbl_iphone_is_live__smtbr\",\"168\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"169\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"170\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"171\":\"sbl_iphone_is_live__psr_1_start\",\"172\":\"video:sbl_iphone_is_live__smtbr\",\"173\":\"video:encoding:iphone_live_playback_mos_loss\",\"174\":\"video:sbl_iphone_is_live__smtbr\",\"175\":\"wilde_scroll_frame_drops_per_minute\",\"176\":\"is_live_watch_time_given_iphone\",\"177\":\"video:encoding:iphone_live_playback_mos_loss\",\"178\":\"is_live_watch_time_given_iphone\",\"179\":\"sbl_iphone_is_live__psr_1_start\",\"180\":\"is_live_watch_time_given_iphone\",\"181\":\"is_live_watch_time_given_iphone\",\"182\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"183\":\"video:encoding:iphone_live_playback_mos_loss\",\"184\":\"sbl_iphone_is_live__psr_1_start\",\"185\":\"video:encoding:iphone_live_playback_mos_loss\",\"186\":\"video:sbl_iphone_is_live__smtbr\",\"187\":\"wilde_scroll_frame_drops_per_minute\",\"188\":\"is_live_watch_time_given_iphone\",\"189\":\"wilde_scroll_frame_drops_per_minute\",\"190\":\"video:encoding:iphone_live_playback_mos_loss\",\"191\":\"is_live_watch_time_given_iphone\",\"192\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"193\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"194\":\"sbl_iphone_is_live__psr_1_start\",\"195\":\"video:encoding:iphone_live_playback_mos_loss\",\"196\":\"is_live_watch_time_given_iphone\",\"197\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"198\":\"video:sbl_iphone_is_live__smtbr\",\"199\":\"wilde_scroll_frame_drops_per_minute\",\"200\":\"video:sbl_iphone_is_live__smtbr\",\"201\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"202\":\"is_live_watch_time_given_iphone\",\"203\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"204\":\"is_live_watch_time_given_iphone\",\"205\":\"sbl_iphone_is_live__psr_1_start\",\"206\":\"video:encoding:iphone_live_playback_mos_loss\",\"207\":\"sbl_iphone_is_live__psr_1_start\",\"208\":\"video:sbl_iphone_is_live__smtbr\",\"209\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"210\":\"wilde_scroll_frame_drops_per_minute\",\"211\":\"is_live_watch_time_given_iphone\",\"212\":\"wilde_scroll_frame_drops_per_minute\",\"213\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"214\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"215\":\"sbl_iphone_is_live__psr_1_start\",\"216\":\"sbl_iphone_is_live__psr_1_start\",\"217\":\"video:encoding:iphone_live_playback_mos_loss\",\"218\":\"video:sbl_iphone_is_live__smtbr\",\"219\":\"is_live_watch_time_given_iphone\",\"220\":\"wilde_scroll_frame_drops_per_minute\",\"221\":\"sbl_iphone_is_live__psr_1_start\",\"222\":\"sbl_iphone_is_live__psr_1_start\",\"223\":\"is_live_watch_time_given_iphone\",\"224\":\"video:sbl_iphone_is_live__smtbr\",\"225\":\"is_live_watch_time_given_iphone\",\"226\":\"sbl_iphone_is_live__psr_1_start\",\"227\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"228\":\"sbl_iphone_is_live__psr_1_start\",\"229\":\"video:encoding:iphone_live_playback_mos_loss\",\"230\":\"video:sbl_iphone_is_live__smtbr\",\"231\":\"wilde_scroll_frame_drops_per_minute\",\"232\":\"video:encoding:iphone_live_playback_mos_loss\",\"233\":\"is_live_watch_time_given_iphone\",\"234\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"235\":\"wilde_scroll_frame_drops_per_minute\",\"236\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"237\":\"video:encoding:iphone_live_playback_mos_loss\",\"238\":\"video:encoding:iphone_live_playback_mos_loss\",\"239\":\"sbl_iphone_is_live__psr_1_start\",\"240\":\"sbl_iphone_is_live__psr_1_start\",\"241\":\"video:encoding:iphone_live_playback_mos_loss\",\"242\":\"video:sbl_iphone_is_live__smtbr\",\"243\":\"wilde_scroll_frame_drops_per_minute\",\"244\":\"is_live_watch_time_given_iphone\",\"245\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"246\":\"video:encoding:iphone_live_playback_mos_loss\",\"247\":\"sbl_iphone_is_live__psr_1_start\",\"248\":\"video:encoding:iphone_live_playback_mos_loss\",\"249\":\"video:sbl_iphone_is_live__smtbr\",\"250\":\"video:sbl_iphone_is_live__smtbr\",\"251\":\"video:encoding:iphone_live_playback_mos_loss\",\"252\":\"wilde_scroll_frame_drops_per_minute\",\"253\":\"is_live_watch_time_given_iphone\",\"254\":\"is_live_watch_time_given_iphone\",\"255\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"256\":\"sbl_iphone_is_live__psr_1_start\",\"257\":\"video:sbl_iphone_is_live__smtbr\",\"258\":\"video:sbl_iphone_is_live__smtbr\",\"259\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"260\":\"wilde_scroll_frame_drops_per_minute\",\"261\":\"video:encoding:iphone_live_playback_mos_loss\",\"262\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"263\":\"sbl_iphone_is_live__psr_1_start\",\"264\":\"video:sbl_iphone_is_live__smtbr\",\"265\":\"wilde_scroll_frame_drops_per_minute\",\"266\":\"is_live_watch_time_given_iphone\",\"267\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"268\":\"is_live_watch_time_given_iphone\",\"269\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"270\":\"sbl_iphone_is_live__psr_1_start\",\"271\":\"video:encoding:iphone_live_playback_mos_loss\",\"272\":\"sbl_iphone_is_live__psr_1_start\",\"273\":\"video:sbl_iphone_is_live__smtbr\",\"274\":\"wilde_scroll_frame_drops_per_minute\",\"275\":\"wilde_scroll_frame_drops_per_minute\",\"276\":\"is_live_watch_time_given_iphone\",\"277\":\"is_live_watch_time_given_iphone\",\"278\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"279\":\"wilde_scroll_frame_drops_per_minute\",\"280\":\"sbl_iphone_is_live__psr_1_start\",\"281\":\"sbl_iphone_is_live__psr_1_start\",\"282\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"283\":\"video:encoding:iphone_live_playback_mos_loss\",\"284\":\"video:sbl_iphone_is_live__smtbr\",\"285\":\"video:sbl_iphone_is_live__smtbr\",\"286\":\"wilde_scroll_frame_drops_per_minute\",\"287\":\"is_live_watch_time_given_iphone\",\"288\":\"is_live_watch_time_given_iphone\",\"289\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"290\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"291\":\"sbl_iphone_is_live__psr_1_start\",\"292\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"293\":\"video:encoding:iphone_live_playback_mos_loss\",\"294\":\"video:sbl_iphone_is_live__smtbr\",\"295\":\"wilde_scroll_frame_drops_per_minute\",\"296\":\"sbl_iphone_is_live__psr_1_start\",\"297\":\"video:encoding:iphone_live_playback_mos_loss\",\"298\":\"sbl_iphone_is_live__psr_1_start\",\"299\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"300\":\"video:sbl_iphone_is_live__smtbr\",\"301\":\"sbl_iphone_is_live__psr_1_start\",\"302\":\"video:sbl_iphone_is_live__smtbr\",\"303\":\"wilde_scroll_frame_drops_per_minute\",\"304\":\"is_live_watch_time_given_iphone\",\"305\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"306\":\"sbl_iphone_is_live__psr_1_start\",\"307\":\"sbl_iphone_is_live__psr_1_start\",\"308\":\"video:encoding:iphone_live_playback_mos_loss\",\"309\":\"video:sbl_iphone_is_live__smtbr\",\"310\":\"video:encoding:iphone_live_playback_mos_loss\",\"311\":\"sbl_iphone_is_live__psr_1_start\",\"312\":\"video:encoding:iphone_live_playback_mos_loss\",\"313\":\"video:encoding:iphone_live_playback_mos_loss\",\"314\":\"wilde_scroll_frame_drops_per_minute\",\"315\":\"is_live_watch_time_given_iphone\",\"316\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"317\":\"wilde_scroll_frame_drops_per_minute\",\"318\":\"sbl_iphone_is_live__psr_1_start\",\"319\":\"video:encoding:iphone_live_playback_mos_loss\",\"320\":\"video:sbl_iphone_is_live__smtbr\",\"321\":\"wilde_scroll_frame_drops_per_minute\",\"322\":\"video:encoding:iphone_live_playback_mos_loss\",\"323\":\"video:sbl_iphone_is_live__smtbr\",\"324\":\"video:sbl_iphone_is_live__smtbr\",\"325\":\"wilde_scroll_frame_drops_per_minute\",\"326\":\"is_live_watch_time_given_iphone\",\"327\":\"is_live_watch_time_given_iphone\",\"328\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"329\":\"sbl_iphone_is_live__psr_1_start\",\"330\":\"video:encoding:iphone_live_playback_mos_loss\",\"331\":\"is_live_watch_time_given_iphone\",\"332\":\"is_live_watch_time_given_iphone\",\"333\":\"sbl_iphone_is_live__psr_1_start\",\"334\":\"wilde_scroll_frame_drops_per_minute\",\"335\":\"video:sbl_iphone_is_live__smtbr\",\"336\":\"video:encoding:iphone_live_playback_mos_loss\",\"337\":\"video:sbl_iphone_is_live__smtbr\",\"338\":\"wilde_scroll_frame_drops_per_minute\",\"339\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"340\":\"is_live_watch_time_given_iphone\",\"341\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"342\":\"sbl_iphone_is_live__psr_1_start\",\"343\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"344\":\"video:encoding:iphone_live_playback_mos_loss\",\"345\":\"video:sbl_iphone_is_live__smtbr\",\"346\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"347\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"348\":\"wilde_scroll_frame_drops_per_minute\",\"349\":\"video:encoding:iphone_live_playback_mos_loss\",\"350\":\"is_live_watch_time_given_iphone\",\"351\":\"is_live_watch_time_given_iphone\",\"352\":\"wilde_scroll_frame_drops_per_minute\",\"353\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"354\":\"sbl_iphone_is_live__psr_1_start\",\"355\":\"wilde_scroll_frame_drops_per_minute\",\"356\":\"video:encoding:iphone_live_playback_mos_loss\",\"357\":\"sbl_iphone_is_live__psr_1_start\",\"358\":\"video:sbl_iphone_is_live__smtbr\",\"359\":\"wilde_scroll_frame_drops_per_minute\",\"360\":\"is_live_watch_time_given_iphone\",\"361\":\"sbl_iphone_is_live__psr_1_start\",\"362\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"363\":\"sbl_iphone_is_live__psr_1_start\",\"364\":\"video:encoding:iphone_live_playback_mos_loss\",\"365\":\"sbl_iphone_is_live__psr_1_start\",\"366\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"367\":\"video:sbl_iphone_is_live__smtbr\",\"368\":\"video:encoding:iphone_live_playback_mos_loss\",\"369\":\"wilde_scroll_frame_drops_per_minute\",\"370\":\"sbl_iphone_is_live__psr_1_start\",\"371\":\"video:encoding:iphone_live_playback_mos_loss\",\"372\":\"video:sbl_iphone_is_live__smtbr\",\"373\":\"wilde_scroll_frame_drops_per_minute\",\"374\":\"is_live_watch_time_given_iphone\",\"375\":\"video:encoding:iphone_live_playback_mos_loss\",\"376\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"377\":\"sbl_iphone_is_live__psr_1_start\",\"378\":\"video:encoding:iphone_live_playback_mos_loss\",\"379\":\"video:sbl_iphone_is_live__smtbr\",\"380\":\"wilde_scroll_frame_drops_per_minute\",\"381\":\"sbl_iphone_is_live__psr_1_start\",\"382\":\"video:encoding:iphone_live_playback_mos_loss\",\"383\":\"video:sbl_iphone_is_live__smtbr\",\"384\":\"is_live_watch_time_given_iphone\",\"385\":\"wilde_scroll_frame_drops_per_minute\",\"386\":\"is_live_watch_time_given_iphone\",\"387\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"388\":\"sbl_iphone_is_live__psr_1_start\",\"389\":\"video:sbl_iphone_is_live__smtbr\"},\"n\":{\"0\":1317376,\"1\":1317376,\"2\":1314752,\"3\":1315087,\"4\":1315477,\"5\":1314574,\"6\":1315087,\"7\":1315087,\"8\":1314342,\"9\":1315635,\"10\":1315635,\"11\":1316166,\"12\":1315635,\"13\":1315683,\"14\":1315635,\"15\":1315635,\"16\":1314869,\"17\":1305611,\"18\":1315683,\"19\":1314574,\"20\":1315635,\"21\":1314278,\"22\":1314278,\"23\":1314278,\"24\":1315320,\"25\":1314278,\"26\":1314342,\"27\":1314278,\"28\":1316166,\"29\":1305611,\"30\":1314278,\"31\":1316728,\"32\":1315041,\"33\":1315927,\"34\":1316728,\"35\":1303259,\"36\":1316728,\"37\":1316728,\"38\":1316728,\"39\":1316728,\"40\":1316720,\"41\":1305611,\"42\":1316720,\"43\":1314342,\"44\":1316166,\"45\":1315531,\"46\":1315320,\"47\":1314322,\"48\":1316720,\"49\":1313192,\"50\":1316720,\"51\":1316720,\"52\":1316720,\"53\":1305611,\"54\":1317142,\"55\":1317142,\"56\":1317142,\"57\":1315320,\"58\":1317142,\"59\":1317142,\"60\":1314322,\"61\":1317142,\"62\":1316166,\"63\":1313192,\"64\":1316609,\"65\":1316106,\"66\":1315891,\"67\":1315891,\"68\":1314215,\"69\":1315891,\"70\":1315891,\"71\":1315891,\"72\":1315891,\"73\":1315676,\"74\":1315260,\"75\":1315260,\"76\":1315260,\"77\":1305870,\"78\":1313192,\"79\":1316106,\"80\":1316609,\"81\":1313192,\"82\":1316609,\"83\":1313192,\"84\":1313192,\"85\":1317460,\"86\":1314322,\"87\":1317460,\"88\":1313213,\"89\":1305870,\"90\":1314342,\"91\":1317460,\"92\":1317460,\"93\":1317460,\"94\":1315260,\"95\":1317460,\"96\":1314559,\"97\":1314559,\"98\":1316609,\"99\":1314322,\"100\":1314559,\"101\":1314926,\"102\":1305870,\"103\":1314559,\"104\":1314559,\"105\":1313213,\"106\":1314559,\"107\":1316485,\"108\":1315260,\"109\":1316485,\"110\":1316485,\"111\":1316485,\"112\":1303259,\"113\":1315320,\"114\":1313213,\"115\":1305870,\"116\":1316485,\"117\":1316485,\"118\":1315676,\"119\":1315156,\"120\":1315156,\"121\":1313213,\"122\":1315156,\"123\":1314215,\"124\":1315320,\"125\":1315156,\"126\":1315156,\"127\":1313901,\"128\":1314322,\"129\":1315156,\"130\":1315802,\"131\":1315802,\"132\":1315802,\"133\":1315802,\"134\":1315676,\"135\":1315320,\"136\":1315802,\"137\":1313213,\"138\":1314215,\"139\":1316371,\"140\":1305870,\"141\":1315802,\"142\":1314322,\"143\":1316267,\"144\":1316267,\"145\":1316267,\"146\":1316130,\"147\":1316267,\"148\":1316267,\"149\":1316267,\"150\":1316363,\"151\":1316363,\"152\":1305870,\"153\":1315676,\"154\":1314215,\"155\":1316823,\"156\":1315041,\"157\":1303259,\"158\":1316363,\"159\":1316363,\"160\":1316363,\"161\":1316363,\"162\":1315531,\"163\":1315531,\"164\":1315477,\"165\":1315531,\"166\":1315531,\"167\":1315531,\"168\":1316130,\"169\":1316823,\"170\":1315041,\"171\":1316823,\"172\":1315041,\"173\":1316823,\"174\":1316823,\"175\":1316823,\"176\":1316455,\"177\":1317376,\"178\":1313901,\"179\":1316130,\"180\":1313845,\"181\":1318208,\"182\":1318208,\"183\":1315676,\"184\":1318208,\"185\":1318208,\"186\":1318208,\"187\":1315041,\"188\":1305148,\"189\":1318208,\"190\":1316130,\"191\":1317238,\"192\":1317238,\"193\":1313901,\"194\":1317238,\"195\":1317238,\"196\":1314869,\"197\":1313845,\"198\":1317238,\"199\":1317238,\"200\":1314215,\"201\":1315683,\"202\":1315934,\"203\":1315934,\"204\":1314342,\"205\":1315934,\"206\":1315934,\"207\":1317376,\"208\":1315934,\"209\":1314869,\"210\":1315934,\"211\":1304498,\"212\":1316106,\"213\":1305148,\"214\":1304498,\"215\":1313845,\"216\":1304498,\"217\":1304498,\"218\":1304498,\"219\":1315477,\"220\":1304498,\"221\":1316609,\"222\":1314869,\"223\":1314752,\"224\":1316130,\"225\":1305934,\"226\":1305148,\"227\":1305934,\"228\":1305934,\"229\":1305934,\"230\":1305934,\"231\":1305934,\"232\":1313845,\"233\":1308071,\"234\":1308071,\"235\":1316130,\"236\":1315477,\"237\":1314869,\"238\":1305148,\"239\":1313901,\"240\":1308071,\"241\":1308071,\"242\":1308071,\"243\":1308071,\"244\":1316371,\"245\":1316371,\"246\":1316609,\"247\":1316371,\"248\":1316371,\"249\":1313845,\"250\":1305148,\"251\":1313901,\"252\":1305148,\"253\":1314926,\"254\":1316358,\"255\":1316358,\"256\":1316358,\"257\":1316899,\"258\":1312285,\"259\":1316106,\"260\":1315477,\"261\":1316358,\"262\":1316455,\"263\":1315477,\"264\":1316358,\"265\":1316358,\"266\":1316106,\"267\":1314926,\"268\":1315997,\"269\":1316106,\"270\":1316106,\"271\":1316106,\"272\":1316106,\"273\":1316106,\"274\":1316106,\"275\":1316371,\"276\":1316899,\"277\":1317092,\"278\":1317092,\"279\":1314869,\"280\":1316455,\"281\":1317092,\"282\":1313213,\"283\":1317092,\"284\":1317092,\"285\":1315683,\"286\":1317092,\"287\":1303259,\"288\":10509439,\"289\":10509439,\"290\":1315997,\"291\":10509439,\"292\":1316899,\"293\":10509439,\"294\":10509439,\"295\":10509439,\"296\":1314926,\"297\":1316455,\"298\":1315041,\"299\":1303259,\"300\":1317376,\"301\":1315997,\"302\":1316455,\"303\":1316455,\"304\":1315497,\"305\":1315497,\"306\":1315497,\"307\":1316899,\"308\":1315497,\"309\":1315497,\"310\":1314926,\"311\":1303259,\"312\":1315997,\"313\":1316106,\"314\":1315497,\"315\":1313517,\"316\":1313517,\"317\":1317376,\"318\":1313517,\"319\":1313517,\"320\":1313517,\"321\":1313517,\"322\":1316899,\"323\":1315997,\"324\":1315676,\"325\":1315997,\"326\":1314574,\"327\":1313268,\"328\":1313268,\"329\":1315683,\"330\":1315260,\"331\":1305611,\"332\":1315927,\"333\":1313268,\"334\":1316899,\"335\":1314926,\"336\":1313268,\"337\":1313268,\"338\":1313268,\"339\":1314574,\"340\":1314927,\"341\":1314927,\"342\":1314927,\"343\":1305611,\"344\":1314927,\"345\":1314927,\"346\":1314752,\"347\":1315927,\"348\":1314927,\"349\":1315683,\"350\":1313899,\"351\":1315726,\"352\":1314215,\"353\":1315726,\"354\":1315726,\"355\":1316166,\"356\":1315726,\"357\":1314752,\"358\":1315726,\"359\":1315726,\"360\":1312285,\"361\":1315927,\"362\":1312285,\"363\":1312285,\"364\":1312285,\"365\":1314574,\"366\":1313899,\"367\":1313901,\"368\":1314752,\"369\":1312285,\"370\":1313899,\"371\":1313899,\"372\":1313899,\"373\":1313899,\"374\":1313293,\"375\":1315927,\"376\":1313293,\"377\":1314342,\"378\":1314574,\"379\":1314752,\"380\":1313845,\"381\":1313293,\"382\":1313293,\"383\":1313293,\"384\":1316166,\"385\":1313293,\"386\":1315087,\"387\":1315087,\"388\":1315087,\"389\":1315927},\"random_split\":{\"0\":-1,\"1\":-1,\"2\":-1,\"3\":-1,\"4\":-1,\"5\":-1,\"6\":-1,\"7\":-1,\"8\":-1,\"9\":-1,\"10\":-1,\"11\":-1,\"12\":-1,\"13\":-1,\"14\":-1,\"15\":-1,\"16\":-1,\"17\":-1,\"18\":-1,\"19\":-1,\"20\":-1,\"21\":-1,\"22\":-1,\"23\":-1,\"24\":-1,\"25\":-1,\"26\":-1,\"27\":-1,\"28\":-1,\"29\":-1,\"30\":-1,\"31\":-1,\"32\":-1,\"33\":-1,\"34\":-1,\"35\":-1,\"36\":-1,\"37\":-1,\"38\":-1,\"39\":-1,\"40\":-1,\"41\":-1,\"42\":-1,\"43\":-1,\"44\":-1,\"45\":-1,\"46\":-1,\"47\":-1,\"48\":-1,\"49\":-1,\"50\":-1,\"51\":-1,\"52\":-1,\"53\":-1,\"54\":-1,\"55\":-1,\"56\":-1,\"57\":-1,\"58\":-1,\"59\":-1,\"60\":-1,\"61\":-1,\"62\":-1,\"63\":-1,\"64\":-1,\"65\":-1,\"66\":-1,\"67\":-1,\"68\":-1,\"69\":-1,\"70\":-1,\"71\":-1,\"72\":-1,\"73\":-1,\"74\":-1,\"75\":-1,\"76\":-1,\"77\":-1,\"78\":-1,\"79\":-1,\"80\":-1,\"81\":-1,\"82\":-1,\"83\":-1,\"84\":-1,\"85\":-1,\"86\":-1,\"87\":-1,\"88\":-1,\"89\":-1,\"90\":-1,\"91\":-1,\"92\":-1,\"93\":-1,\"94\":-1,\"95\":-1,\"96\":-1,\"97\":-1,\"98\":-1,\"99\":-1,\"100\":-1,\"101\":-1,\"102\":-1,\"103\":-1,\"104\":-1,\"105\":-1,\"106\":-1,\"107\":-1,\"108\":-1,\"109\":-1,\"110\":-1,\"111\":-1,\"112\":-1,\"113\":-1,\"114\":-1,\"115\":-1,\"116\":-1,\"117\":-1,\"118\":-1,\"119\":-1,\"120\":-1,\"121\":-1,\"122\":-1,\"123\":-1,\"124\":-1,\"125\":-1,\"126\":-1,\"127\":-1,\"128\":-1,\"129\":-1,\"130\":-1,\"131\":-1,\"132\":-1,\"133\":-1,\"134\":-1,\"135\":-1,\"136\":-1,\"137\":-1,\"138\":-1,\"139\":-1,\"140\":-1,\"141\":-1,\"142\":-1,\"143\":-1,\"144\":-1,\"145\":-1,\"146\":-1,\"147\":-1,\"148\":-1,\"149\":-1,\"150\":-1,\"151\":-1,\"152\":-1,\"153\":-1,\"154\":-1,\"155\":-1,\"156\":-1,\"157\":-1,\"158\":-1,\"159\":-1,\"160\":-1,\"161\":-1,\"162\":-1,\"163\":-1,\"164\":-1,\"165\":-1,\"166\":-1,\"167\":-1,\"168\":-1,\"169\":-1,\"170\":-1,\"171\":-1,\"172\":-1,\"173\":-1,\"174\":-1,\"175\":-1,\"176\":-1,\"177\":-1,\"178\":-1,\"179\":-1,\"180\":-1,\"181\":-1,\"182\":-1,\"183\":-1,\"184\":-1,\"185\":-1,\"186\":-1,\"187\":-1,\"188\":-1,\"189\":-1,\"190\":-1,\"191\":-1,\"192\":-1,\"193\":-1,\"194\":-1,\"195\":-1,\"196\":-1,\"197\":-1,\"198\":-1,\"199\":-1,\"200\":-1,\"201\":-1,\"202\":-1,\"203\":-1,\"204\":-1,\"205\":-1,\"206\":-1,\"207\":-1,\"208\":-1,\"209\":-1,\"210\":-1,\"211\":-1,\"212\":-1,\"213\":-1,\"214\":-1,\"215\":-1,\"216\":-1,\"217\":-1,\"218\":-1,\"219\":-1,\"220\":-1,\"221\":-1,\"222\":-1,\"223\":-1,\"224\":-1,\"225\":-1,\"226\":-1,\"227\":-1,\"228\":-1,\"229\":-1,\"230\":-1,\"231\":-1,\"232\":-1,\"233\":-1,\"234\":-1,\"235\":-1,\"236\":-1,\"237\":-1,\"238\":-1,\"239\":-1,\"240\":-1,\"241\":-1,\"242\":-1,\"243\":-1,\"244\":-1,\"245\":-1,\"246\":-1,\"247\":-1,\"248\":-1,\"249\":-1,\"250\":-1,\"251\":-1,\"252\":-1,\"253\":-1,\"254\":-1,\"255\":-1,\"256\":-1,\"257\":-1,\"258\":-1,\"259\":-1,\"260\":-1,\"261\":-1,\"262\":-1,\"263\":-1,\"264\":-1,\"265\":-1,\"266\":-1,\"267\":-1,\"268\":-1,\"269\":-1,\"270\":-1,\"271\":-1,\"272\":-1,\"273\":-1,\"274\":-1,\"275\":-1,\"276\":-1,\"277\":-1,\"278\":-1,\"279\":-1,\"280\":-1,\"281\":-1,\"282\":-1,\"283\":-1,\"284\":-1,\"285\":-1,\"286\":-1,\"287\":-1,\"288\":-1,\"289\":-1,\"290\":-1,\"291\":-1,\"292\":-1,\"293\":-1,\"294\":-1,\"295\":-1,\"296\":-1,\"297\":-1,\"298\":-1,\"299\":-1,\"300\":-1,\"301\":-1,\"302\":-1,\"303\":-1,\"304\":-1,\"305\":-1,\"306\":-1,\"307\":-1,\"308\":-1,\"309\":-1,\"310\":-1,\"311\":-1,\"312\":-1,\"313\":-1,\"314\":-1,\"315\":-1,\"316\":-1,\"317\":-1,\"318\":-1,\"319\":-1,\"320\":-1,\"321\":-1,\"322\":-1,\"323\":-1,\"324\":-1,\"325\":-1,\"326\":-1,\"327\":-1,\"328\":-1,\"329\":-1,\"330\":-1,\"331\":-1,\"332\":-1,\"333\":-1,\"334\":-1,\"335\":-1,\"336\":-1,\"337\":-1,\"338\":-1,\"339\":-1,\"340\":-1,\"341\":-1,\"342\":-1,\"343\":-1,\"344\":-1,\"345\":-1,\"346\":-1,\"347\":-1,\"348\":-1,\"349\":-1,\"350\":-1,\"351\":-1,\"352\":-1,\"353\":-1,\"354\":-1,\"355\":-1,\"356\":-1,\"357\":-1,\"358\":-1,\"359\":-1,\"360\":-1,\"361\":-1,\"362\":-1,\"363\":-1,\"364\":-1,\"365\":-1,\"366\":-1,\"367\":-1,\"368\":-1,\"369\":-1,\"370\":-1,\"371\":-1,\"372\":-1,\"373\":-1,\"374\":-1,\"375\":-1,\"376\":-1,\"377\":-1,\"378\":-1,\"379\":-1,\"380\":-1,\"381\":-1,\"382\":-1,\"383\":-1,\"384\":-1,\"385\":-1,\"386\":-1,\"387\":-1,\"388\":-1,\"389\":-1},\"sem\":{\"0\":0.5078025946,\"1\":0.0011413313,\"2\":341.7113670085,\"3\":0.0993865087,\"4\":0.0992165432,\"5\":3.6482823491,\"6\":3.6819062259,\"7\":340.5662258025,\"8\":0.0978734946,\"9\":0.5165980429,\"10\":0.0010252726,\"11\":0.001076742,\"12\":0.0003279858,\"13\":0.5093736795,\"14\":0.0977976059,\"15\":3.3486684119,\"16\":3.7762068493,\"17\":0.0003198087,\"18\":343.9099903496,\"19\":346.5032469207,\"20\":340.9009666045,\"21\":0.5113226874,\"22\":0.0010710321,\"23\":0.0002974482,\"24\":0.5112276206,\"25\":0.0990857138,\"26\":3.555630337,\"27\":3.9804215717,\"28\":0.0003276592,\"29\":0.1098706165,\"30\":349.1287591665,\"31\":0.5045282547,\"32\":0.0985174692,\"33\":334.009823652,\"34\":0.0010692738,\"35\":3.9738245383,\"36\":0.0003036783,\"37\":0.1013110324,\"38\":3.9949551069,\"39\":337.7244350251,\"40\":0.5043908929,\"41\":4.0741524175,\"42\":0.0011010458,\"43\":344.8299486086,\"44\":0.0996086636,\"45\":335.6729769066,\"46\":0.0011006621,\"47\":0.5095326351,\"48\":0.0003192918,\"49\":0.5096688343,\"50\":0.0984763306,\"51\":3.8137303489,\"52\":337.5560616979,\"53\":347.6052081072,\"54\":0.519469281,\"55\":0.0010677775,\"56\":0.0003015978,\"57\":0.0003085286,\"58\":0.097646666,\"59\":3.8643948317,\"60\":0.0009849507,\"61\":345.8236531893,\"62\":3.8483413085,\"63\":0.0010969537,\"64\":0.5151551109,\"65\":0.5113070185,\"66\":0.5071950355,\"67\":0.001001393,\"68\":0.0995015421,\"69\":0.0002986113,\"70\":0.0995206462,\"71\":3.8997793594,\"72\":344.0144206468,\"73\":333.816805921,\"74\":0.5070438579,\"75\":0.0010798206,\"76\":0.0003242034,\"77\":0.5175584926,\"78\":0.0003169315,\"79\":3.8832837807,\"80\":0.0011042236,\"81\":0.0955291709,\"82\":3.9589874245,\"83\":3.6306086613,\"84\":341.3582504114,\"85\":0.5088698272,\"86\":0.0002962542,\"87\":0.0010803518,\"88\":0.0003028664,\"89\":0.0011448462,\"90\":0.0010570535,\"91\":0.0003076503,\"92\":0.1001172721,\"93\":3.700430966,\"94\":3.8582710839,\"95\":347.8019318444,\"96\":0.5096270365,\"97\":0.0010658741,\"98\":335.1669073702,\"99\":0.0994724356,\"100\":0.0003042306,\"101\":346.8788853147,\"102\":0.0003140057,\"103\":0.0985044058,\"104\":3.7655484875,\"105\":0.0969567275,\"106\":336.9089640287,\"107\":0.510714661,\"108\":341.2331275113,\"109\":0.0011498071,\"110\":0.0003045954,\"111\":0.1061816567,\"112\":0.1008003629,\"113\":0.0974595106,\"114\":0.512798008,\"115\":0.0969705893,\"116\":3.9856650008,\"117\":335.5286660461,\"118\":0.5153173918,\"119\":0.5122847672,\"120\":0.001065288,\"121\":3.8735609592,\"122\":0.0003147454,\"123\":0.5053074679,\"124\":3.7817160038,\"125\":0.0978534306,\"126\":3.7553783494,\"127\":346.422063847,\"128\":3.8440016789,\"129\":349.8029916931,\"130\":0.509251431,\"131\":0.001061554,\"132\":0.0003310145,\"133\":0.0991520396,\"134\":0.0011006314,\"135\":336.8816813273,\"136\":3.6493616991,\"137\":342.7123269057,\"138\":0.0010419952,\"139\":3.7691208456,\"140\":3.4948843789,\"141\":346.2079724254,\"142\":345.2591794476,\"143\":0.5117213519,\"144\":0.0010927304,\"145\":0.0003146688,\"146\":0.512222103,\"147\":0.1029502442,\"148\":3.7671742386,\"149\":344.7065807115,\"150\":0.5027569668,\"151\":0.001060054,\"152\":343.4553896248,\"153\":0.0003233158,\"154\":0.0003299682,\"155\":0.5119220761,\"156\":0.5124336729,\"157\":337.1192988453,\"158\":0.0003211093,\"159\":0.0967458737,\"160\":3.6752742429,\"161\":337.5543592462,\"162\":0.5056133198,\"163\":0.0010739307,\"164\":3.6310108763,\"165\":0.0003085738,\"166\":0.1003822641,\"167\":3.8363435922,\"168\":0.0010723967,\"169\":0.0010505416,\"170\":0.0010403571,\"171\":0.0002883445,\"172\":3.7907236865,\"173\":0.097408938,\"174\":3.7961389477,\"175\":338.2660128623,\"176\":0.5101220335,\"177\":0.0985975385,\"178\":0.5147199077,\"179\":0.0003249967,\"180\":0.5109337779,\"181\":0.5107992413,\"182\":0.0010845276,\"183\":0.1007423101,\"184\":0.0003391012,\"185\":0.0978287761,\"186\":3.6999393071,\"187\":336.685858241,\"188\":0.5152551399,\"189\":340.0124157053,\"190\":0.0977642693,\"191\":0.5097189786,\"192\":0.0010484517,\"193\":0.001014133,\"194\":0.0003068576,\"195\":0.0983864361,\"196\":0.5092144281,\"197\":0.0010398584,\"198\":3.7409925874,\"199\":345.294057497,\"200\":3.8162538876,\"201\":0.0011290889,\"202\":0.5031744315,\"203\":0.001036165,\"204\":0.5118420061,\"205\":0.0003316496,\"206\":0.1009128083,\"207\":0.0003310667,\"208\":3.8235403101,\"209\":0.0011375741,\"210\":354.4685977119,\"211\":0.5083580923,\"212\":343.8455956624,\"213\":0.0010920978,\"214\":0.0010690339,\"215\":0.0003081745,\"216\":0.0003262524,\"217\":0.0970761705,\"218\":3.604249086,\"219\":0.5131121827,\"220\":345.7725033554,\"221\":0.0002986809,\"222\":0.000330729,\"223\":0.5098829144,\"224\":3.421479895,\"225\":0.5185708035,\"226\":0.0003227474,\"227\":0.0009687767,\"228\":0.0003099833,\"229\":0.099100586,\"230\":3.8690877509,\"231\":351.4533701368,\"232\":0.098889746,\"233\":0.5110579189,\"234\":0.001021945,\"235\":338.6774944632,\"236\":0.0010749551,\"237\":0.0993222134,\"238\":0.0983049649,\"239\":0.0002855095,\"240\":0.0003014882,\"241\":0.1002004312,\"242\":3.9017521217,\"243\":349.2842863941,\"244\":0.5107609149,\"245\":0.0010479061,\"246\":0.0985768416,\"247\":0.0003437423,\"248\":0.0988611562,\"249\":3.749859603,\"250\":3.5501638759,\"251\":0.0974662065,\"252\":339.773977399,\"253\":0.5143507242,\"254\":0.5100986231,\"255\":0.0010573423,\"256\":0.0003212013,\"257\":3.608650601,\"258\":3.6439857337,\"259\":0.0010266417,\"260\":327.0260540277,\"261\":0.0982761865,\"262\":0.0010660667,\"263\":0.0003174128,\"264\":3.7330925979,\"265\":348.1311237871,\"266\":0.5147381535,\"267\":0.0010902994,\"268\":0.5063790519,\"269\":0.0010431578,\"270\":0.0003188292,\"271\":0.0983141603,\"272\":0.000359147,\"273\":3.8320530951,\"274\":332.6905377824,\"275\":338.7123517788,\"276\":0.513172348,\"277\":0.5087175211,\"278\":0.0010782917,\"279\":345.6527071496,\"280\":0.0003093088,\"281\":0.0003114634,\"282\":0.0010537209,\"283\":0.0988747224,\"284\":3.5997989977,\"285\":3.5506959391,\"286\":340.022907399,\"287\":0.5197456497,\"288\":0.1803625684,\"289\":0.000380464,\"290\":0.0010882749,\"291\":0.000113885,\"292\":0.0010095739,\"293\":0.0349144698,\"294\":1.352325501,\"295\":120.8634944723,\"296\":0.0003386809,\"297\":0.0983530106,\"298\":0.0003095584,\"299\":0.0010896816,\"300\":3.3743172487,\"301\":0.0003286516,\"302\":3.8400439664,\"303\":340.8002875764,\"304\":0.5067698464,\"305\":0.0011267607,\"306\":0.0003202341,\"307\":0.0003098333,\"308\":0.0969474775,\"309\":3.7107625175,\"310\":0.0967610503,\"311\":0.0003103105,\"312\":0.0974894433,\"313\":0.0983286605,\"314\":338.2639918278,\"315\":0.5028548743,\"316\":0.0010464675,\"317\":348.1121845822,\"318\":0.0003306237,\"319\":0.1017360589,\"320\":3.9247540125,\"321\":340.803094553,\"322\":0.099043376,\"323\":3.7680116782,\"324\":3.7268574019,\"325\":340.9927068951,\"326\":0.5033029251,\"327\":0.5203059834,\"328\":0.0010843877,\"329\":0.000338327,\"330\":0.1028325308,\"331\":0.5144752197,\"332\":0.5141473846,\"333\":0.0003112855,\"334\":348.9316308957,\"335\":3.7510587025,\"336\":0.0988479155,\"337\":3.8602441208,\"338\":344.5439410086,\"339\":0.001041537,\"340\":0.509642651,\"341\":0.0010635899,\"342\":0.0003064662,\"343\":0.0011373978,\"344\":0.1000763363,\"345\":3.7817548221,\"346\":0.0010444302,\"347\":0.0010576352,\"348\":337.3047842855,\"349\":0.0968311414,\"350\":0.5135952228,\"351\":0.514009146,\"352\":352.0840980289,\"353\":0.0010353876,\"354\":0.0002939338,\"355\":343.7594057297,\"356\":0.1000429382,\"357\":0.000311911,\"358\":3.8922385483,\"359\":338.8849372676,\"360\":0.5138112988,\"361\":0.0003240345,\"362\":0.0010956483,\"363\":0.0003091286,\"364\":0.0963254066,\"365\":0.0003010437,\"366\":0.0011051656,\"367\":3.8490884193,\"368\":0.0984285529,\"369\":340.5257210998,\"370\":0.0002897635,\"371\":0.1034192892,\"372\":3.9353367469,\"373\":342.6108270976,\"374\":0.5139955955,\"375\":0.0974636266,\"376\":0.0010962086,\"377\":0.0003018143,\"378\":0.1005725776,\"379\":3.8213950654,\"380\":348.4920657893,\"381\":0.0002970759,\"382\":0.0982400684,\"383\":3.8215545915,\"384\":0.5108724836,\"385\":353.0787331977,\"386\":0.5116084335,\"387\":0.0010229026,\"388\":0.0003201874,\"389\":3.6312819972},\"start_time\":{\"0\":1553817600000,\"1\":1553817600000,\"2\":1553817600000,\"3\":1553817600000,\"4\":1553817600000,\"5\":1553817600000,\"6\":1553817600000,\"7\":1553817600000,\"8\":1553817600000,\"9\":1553817600000,\"10\":1553817600000,\"11\":1553817600000,\"12\":1553817600000,\"13\":1553817600000,\"14\":1553817600000,\"15\":1553817600000,\"16\":1553817600000,\"17\":1553817600000,\"18\":1553817600000,\"19\":1553817600000,\"20\":1553817600000,\"21\":1553817600000,\"22\":1553817600000,\"23\":1553817600000,\"24\":1553817600000,\"25\":1553817600000,\"26\":1553817600000,\"27\":1553817600000,\"28\":1553817600000,\"29\":1553817600000,\"30\":1553817600000,\"31\":1553817600000,\"32\":1553817600000,\"33\":1553817600000,\"34\":1553817600000,\"35\":1553817600000,\"36\":1553817600000,\"37\":1553817600000,\"38\":1553817600000,\"39\":1553817600000,\"40\":1553817600000,\"41\":1553817600000,\"42\":1553817600000,\"43\":1553817600000,\"44\":1553817600000,\"45\":1553817600000,\"46\":1553817600000,\"47\":1553817600000,\"48\":1553817600000,\"49\":1553817600000,\"50\":1553817600000,\"51\":1553817600000,\"52\":1553817600000,\"53\":1553817600000,\"54\":1553817600000,\"55\":1553817600000,\"56\":1553817600000,\"57\":1553817600000,\"58\":1553817600000,\"59\":1553817600000,\"60\":1553817600000,\"61\":1553817600000,\"62\":1553817600000,\"63\":1553817600000,\"64\":1553817600000,\"65\":1553817600000,\"66\":1553817600000,\"67\":1553817600000,\"68\":1553817600000,\"69\":1553817600000,\"70\":1553817600000,\"71\":1553817600000,\"72\":1553817600000,\"73\":1553817600000,\"74\":1553817600000,\"75\":1553817600000,\"76\":1553817600000,\"77\":1553817600000,\"78\":1553817600000,\"79\":1553817600000,\"80\":1553817600000,\"81\":1553817600000,\"82\":1553817600000,\"83\":1553817600000,\"84\":1553817600000,\"85\":1553817600000,\"86\":1553817600000,\"87\":1553817600000,\"88\":1553817600000,\"89\":1553817600000,\"90\":1553817600000,\"91\":1553817600000,\"92\":1553817600000,\"93\":1553817600000,\"94\":1553817600000,\"95\":1553817600000,\"96\":1553817600000,\"97\":1553817600000,\"98\":1553817600000,\"99\":1553817600000,\"100\":1553817600000,\"101\":1553817600000,\"102\":1553817600000,\"103\":1553817600000,\"104\":1553817600000,\"105\":1553817600000,\"106\":1553817600000,\"107\":1553817600000,\"108\":1553817600000,\"109\":1553817600000,\"110\":1553817600000,\"111\":1553817600000,\"112\":1553817600000,\"113\":1553817600000,\"114\":1553817600000,\"115\":1553817600000,\"116\":1553817600000,\"117\":1553817600000,\"118\":1553817600000,\"119\":1553817600000,\"120\":1553817600000,\"121\":1553817600000,\"122\":1553817600000,\"123\":1553817600000,\"124\":1553817600000,\"125\":1553817600000,\"126\":1553817600000,\"127\":1553817600000,\"128\":1553817600000,\"129\":1553817600000,\"130\":1553817600000,\"131\":1553817600000,\"132\":1553817600000,\"133\":1553817600000,\"134\":1553817600000,\"135\":1553817600000,\"136\":1553817600000,\"137\":1553817600000,\"138\":1553817600000,\"139\":1553817600000,\"140\":1553817600000,\"141\":1553817600000,\"142\":1553817600000,\"143\":1553817600000,\"144\":1553817600000,\"145\":1553817600000,\"146\":1553817600000,\"147\":1553817600000,\"148\":1553817600000,\"149\":1553817600000,\"150\":1553817600000,\"151\":1553817600000,\"152\":1553817600000,\"153\":1553817600000,\"154\":1553817600000,\"155\":1553817600000,\"156\":1553817600000,\"157\":1553817600000,\"158\":1553817600000,\"159\":1553817600000,\"160\":1553817600000,\"161\":1553817600000,\"162\":1553817600000,\"163\":1553817600000,\"164\":1553817600000,\"165\":1553817600000,\"166\":1553817600000,\"167\":1553817600000,\"168\":1553817600000,\"169\":1553817600000,\"170\":1553817600000,\"171\":1553817600000,\"172\":1553817600000,\"173\":1553817600000,\"174\":1553817600000,\"175\":1553817600000,\"176\":1553817600000,\"177\":1553817600000,\"178\":1553817600000,\"179\":1553817600000,\"180\":1553817600000,\"181\":1553817600000,\"182\":1553817600000,\"183\":1553817600000,\"184\":1553817600000,\"185\":1553817600000,\"186\":1553817600000,\"187\":1553817600000,\"188\":1553817600000,\"189\":1553817600000,\"190\":1553817600000,\"191\":1553817600000,\"192\":1553817600000,\"193\":1553817600000,\"194\":1553817600000,\"195\":1553817600000,\"196\":1553817600000,\"197\":1553817600000,\"198\":1553817600000,\"199\":1553817600000,\"200\":1553817600000,\"201\":1553817600000,\"202\":1553817600000,\"203\":1553817600000,\"204\":1553817600000,\"205\":1553817600000,\"206\":1553817600000,\"207\":1553817600000,\"208\":1553817600000,\"209\":1553817600000,\"210\":1553817600000,\"211\":1553817600000,\"212\":1553817600000,\"213\":1553817600000,\"214\":1553817600000,\"215\":1553817600000,\"216\":1553817600000,\"217\":1553817600000,\"218\":1553817600000,\"219\":1553817600000,\"220\":1553817600000,\"221\":1553817600000,\"222\":1553817600000,\"223\":1553817600000,\"224\":1553817600000,\"225\":1553817600000,\"226\":1553817600000,\"227\":1553817600000,\"228\":1553817600000,\"229\":1553817600000,\"230\":1553817600000,\"231\":1553817600000,\"232\":1553817600000,\"233\":1553817600000,\"234\":1553817600000,\"235\":1553817600000,\"236\":1553817600000,\"237\":1553817600000,\"238\":1553817600000,\"239\":1553817600000,\"240\":1553817600000,\"241\":1553817600000,\"242\":1553817600000,\"243\":1553817600000,\"244\":1553817600000,\"245\":1553817600000,\"246\":1553817600000,\"247\":1553817600000,\"248\":1553817600000,\"249\":1553817600000,\"250\":1553817600000,\"251\":1553817600000,\"252\":1553817600000,\"253\":1553817600000,\"254\":1553817600000,\"255\":1553817600000,\"256\":1553817600000,\"257\":1553817600000,\"258\":1553817600000,\"259\":1553817600000,\"260\":1553817600000,\"261\":1553817600000,\"262\":1553817600000,\"263\":1553817600000,\"264\":1553817600000,\"265\":1553817600000,\"266\":1553817600000,\"267\":1553817600000,\"268\":1553817600000,\"269\":1553817600000,\"270\":1553817600000,\"271\":1553817600000,\"272\":1553817600000,\"273\":1553817600000,\"274\":1553817600000,\"275\":1553817600000,\"276\":1553817600000,\"277\":1553817600000,\"278\":1553817600000,\"279\":1553817600000,\"280\":1553817600000,\"281\":1553817600000,\"282\":1553817600000,\"283\":1553817600000,\"284\":1553817600000,\"285\":1553817600000,\"286\":1553817600000,\"287\":1553817600000,\"288\":1553817600000,\"289\":1553817600000,\"290\":1553817600000,\"291\":1553817600000,\"292\":1553817600000,\"293\":1553817600000,\"294\":1553817600000,\"295\":1553817600000,\"296\":1553817600000,\"297\":1553817600000,\"298\":1553817600000,\"299\":1553817600000,\"300\":1553817600000,\"301\":1553817600000,\"302\":1553817600000,\"303\":1553817600000,\"304\":1553817600000,\"305\":1553817600000,\"306\":1553817600000,\"307\":1553817600000,\"308\":1553817600000,\"309\":1553817600000,\"310\":1553817600000,\"311\":1553817600000,\"312\":1553817600000,\"313\":1553817600000,\"314\":1553817600000,\"315\":1553817600000,\"316\":1553817600000,\"317\":1553817600000,\"318\":1553817600000,\"319\":1553817600000,\"320\":1553817600000,\"321\":1553817600000,\"322\":1553817600000,\"323\":1553817600000,\"324\":1553817600000,\"325\":1553817600000,\"326\":1553817600000,\"327\":1553817600000,\"328\":1553817600000,\"329\":1553817600000,\"330\":1553817600000,\"331\":1553817600000,\"332\":1553817600000,\"333\":1553817600000,\"334\":1553817600000,\"335\":1553817600000,\"336\":1553817600000,\"337\":1553817600000,\"338\":1553817600000,\"339\":1553817600000,\"340\":1553817600000,\"341\":1553817600000,\"342\":1553817600000,\"343\":1553817600000,\"344\":1553817600000,\"345\":1553817600000,\"346\":1553817600000,\"347\":1553817600000,\"348\":1553817600000,\"349\":1553817600000,\"350\":1553817600000,\"351\":1553817600000,\"352\":1553817600000,\"353\":1553817600000,\"354\":1553817600000,\"355\":1553817600000,\"356\":1553817600000,\"357\":1553817600000,\"358\":1553817600000,\"359\":1553817600000,\"360\":1553817600000,\"361\":1553817600000,\"362\":1553817600000,\"363\":1553817600000,\"364\":1553817600000,\"365\":1553817600000,\"366\":1553817600000,\"367\":1553817600000,\"368\":1553817600000,\"369\":1553817600000,\"370\":1553817600000,\"371\":1553817600000,\"372\":1553817600000,\"373\":1553817600000,\"374\":1553817600000,\"375\":1553817600000,\"376\":1553817600000,\"377\":1553817600000,\"378\":1553817600000,\"379\":1553817600000,\"380\":1553817600000,\"381\":1553817600000,\"382\":1553817600000,\"383\":1553817600000,\"384\":1553817600000,\"385\":1553817600000,\"386\":1553817600000,\"387\":1553817600000,\"388\":1553817600000,\"389\":1553817600000}}"},"description":null}],[1556078905215,{"__type":"Data","df":{"__type":"DataFrame","value":"{\"arm_name\":{\"0\":\"0_0\",\"1\":\"0_0\",\"2\":\"0_17\",\"3\":\"0_30\",\"4\":\"0_27\",\"5\":\"0_51\",\"6\":\"0_30\",\"7\":\"0_30\",\"8\":\"0_10\",\"9\":\"0_31\",\"10\":\"0_31\",\"11\":\"0_24\",\"12\":\"0_31\",\"13\":\"0_1\",\"14\":\"0_31\",\"15\":\"0_31\",\"16\":\"0_5\",\"17\":\"0_61\",\"18\":\"0_1\",\"19\":\"0_51\",\"20\":\"0_31\",\"21\":\"0_32\",\"22\":\"0_32\",\"23\":\"0_32\",\"24\":\"0_18\",\"25\":\"0_32\",\"26\":\"0_10\",\"27\":\"0_32\",\"28\":\"0_24\",\"29\":\"0_61\",\"30\":\"0_32\",\"31\":\"0_33\",\"32\":\"0_26\",\"33\":\"0_40\",\"34\":\"0_33\",\"35\":\"0_60\",\"36\":\"0_33\",\"37\":\"0_33\",\"38\":\"0_33\",\"39\":\"0_33\",\"40\":\"0_34\",\"41\":\"0_61\",\"42\":\"0_34\",\"43\":\"0_10\",\"44\":\"0_24\",\"45\":\"0_49\",\"46\":\"0_18\",\"47\":\"0_52\",\"48\":\"0_34\",\"49\":\"0_41\",\"50\":\"0_34\",\"51\":\"0_34\",\"52\":\"0_34\",\"53\":\"0_61\",\"54\":\"0_35\",\"55\":\"0_35\",\"56\":\"0_35\",\"57\":\"0_18\",\"58\":\"0_35\",\"59\":\"0_35\",\"60\":\"0_52\",\"61\":\"0_35\",\"62\":\"0_24\",\"63\":\"0_41\",\"64\":\"0_11\",\"65\":\"0_50\",\"66\":\"0_36\",\"67\":\"0_36\",\"68\":\"0_38\",\"69\":\"0_36\",\"70\":\"0_36\",\"71\":\"0_36\",\"72\":\"0_36\",\"73\":\"0_12\",\"74\":\"0_37\",\"75\":\"0_37\",\"76\":\"0_37\",\"77\":\"0_62\",\"78\":\"0_41\",\"79\":\"0_50\",\"80\":\"0_11\",\"81\":\"0_41\",\"82\":\"0_11\",\"83\":\"0_41\",\"84\":\"0_41\",\"85\":\"0_42\",\"86\":\"0_52\",\"87\":\"0_42\",\"88\":\"0_25\",\"89\":\"0_62\",\"90\":\"0_10\",\"91\":\"0_42\",\"92\":\"0_42\",\"93\":\"0_42\",\"94\":\"0_37\",\"95\":\"0_42\",\"96\":\"0_43\",\"97\":\"0_43\",\"98\":\"0_11\",\"99\":\"0_52\",\"100\":\"0_43\",\"101\":\"0_4\",\"102\":\"0_62\",\"103\":\"0_43\",\"104\":\"0_43\",\"105\":\"0_25\",\"106\":\"0_43\",\"107\":\"0_44\",\"108\":\"0_37\",\"109\":\"0_44\",\"110\":\"0_44\",\"111\":\"0_44\",\"112\":\"0_60\",\"113\":\"0_18\",\"114\":\"0_25\",\"115\":\"0_62\",\"116\":\"0_44\",\"117\":\"0_44\",\"118\":\"0_12\",\"119\":\"0_45\",\"120\":\"0_45\",\"121\":\"0_25\",\"122\":\"0_45\",\"123\":\"0_38\",\"124\":\"0_18\",\"125\":\"0_45\",\"126\":\"0_45\",\"127\":\"0_39\",\"128\":\"0_52\",\"129\":\"0_45\",\"130\":\"0_46\",\"131\":\"0_46\",\"132\":\"0_46\",\"133\":\"0_46\",\"134\":\"0_12\",\"135\":\"0_18\",\"136\":\"0_46\",\"137\":\"0_25\",\"138\":\"0_38\",\"139\":\"0_6\",\"140\":\"0_62\",\"141\":\"0_46\",\"142\":\"0_52\",\"143\":\"0_47\",\"144\":\"0_47\",\"145\":\"0_47\",\"146\":\"0_19\",\"147\":\"0_47\",\"148\":\"0_47\",\"149\":\"0_47\",\"150\":\"0_48\",\"151\":\"0_48\",\"152\":\"0_62\",\"153\":\"0_12\",\"154\":\"0_38\",\"155\":\"0_53\",\"156\":\"0_26\",\"157\":\"0_60\",\"158\":\"0_48\",\"159\":\"0_48\",\"160\":\"0_48\",\"161\":\"0_48\",\"162\":\"0_49\",\"163\":\"0_49\",\"164\":\"0_27\",\"165\":\"0_49\",\"166\":\"0_49\",\"167\":\"0_49\",\"168\":\"0_19\",\"169\":\"0_53\",\"170\":\"0_26\",\"171\":\"0_53\",\"172\":\"0_26\",\"173\":\"0_53\",\"174\":\"0_53\",\"175\":\"0_53\",\"176\":\"0_14\",\"177\":\"0_0\",\"178\":\"0_39\",\"179\":\"0_19\",\"180\":\"0_13\",\"181\":\"0_54\",\"182\":\"0_54\",\"183\":\"0_12\",\"184\":\"0_54\",\"185\":\"0_54\",\"186\":\"0_54\",\"187\":\"0_26\",\"188\":\"0_63\",\"189\":\"0_54\",\"190\":\"0_19\",\"191\":\"0_55\",\"192\":\"0_55\",\"193\":\"0_39\",\"194\":\"0_55\",\"195\":\"0_55\",\"196\":\"0_5\",\"197\":\"0_13\",\"198\":\"0_55\",\"199\":\"0_55\",\"200\":\"0_38\",\"201\":\"0_1\",\"202\":\"0_56\",\"203\":\"0_56\",\"204\":\"0_10\",\"205\":\"0_56\",\"206\":\"0_56\",\"207\":\"0_0\",\"208\":\"0_56\",\"209\":\"0_5\",\"210\":\"0_56\",\"211\":\"0_57\",\"212\":\"0_50\",\"213\":\"0_63\",\"214\":\"0_57\",\"215\":\"0_13\",\"216\":\"0_57\",\"217\":\"0_57\",\"218\":\"0_57\",\"219\":\"0_27\",\"220\":\"0_57\",\"221\":\"0_11\",\"222\":\"0_5\",\"223\":\"0_17\",\"224\":\"0_19\",\"225\":\"0_58\",\"226\":\"0_63\",\"227\":\"0_58\",\"228\":\"0_58\",\"229\":\"0_58\",\"230\":\"0_58\",\"231\":\"0_58\",\"232\":\"0_13\",\"233\":\"0_59\",\"234\":\"0_59\",\"235\":\"0_19\",\"236\":\"0_27\",\"237\":\"0_5\",\"238\":\"0_63\",\"239\":\"0_39\",\"240\":\"0_59\",\"241\":\"0_59\",\"242\":\"0_59\",\"243\":\"0_59\",\"244\":\"0_6\",\"245\":\"0_6\",\"246\":\"0_11\",\"247\":\"0_6\",\"248\":\"0_6\",\"249\":\"0_13\",\"250\":\"0_63\",\"251\":\"0_39\",\"252\":\"0_63\",\"253\":\"0_4\",\"254\":\"0_7\",\"255\":\"0_7\",\"256\":\"0_7\",\"257\":\"0_28\",\"258\":\"0_23\",\"259\":\"0_50\",\"260\":\"0_27\",\"261\":\"0_7\",\"262\":\"0_14\",\"263\":\"0_27\",\"264\":\"0_7\",\"265\":\"0_7\",\"266\":\"0_8\",\"267\":\"0_4\",\"268\":\"0_2\",\"269\":\"0_8\",\"270\":\"0_8\",\"271\":\"0_8\",\"272\":\"0_50\",\"273\":\"0_8\",\"274\":\"0_8\",\"275\":\"0_6\",\"276\":\"0_28\",\"277\":\"0_9\",\"278\":\"0_9\",\"279\":\"0_5\",\"280\":\"0_14\",\"281\":\"0_9\",\"282\":\"0_25\",\"283\":\"0_9\",\"284\":\"0_9\",\"285\":\"0_1\",\"286\":\"0_9\",\"287\":\"0_60\",\"288\":\"status_quo\",\"289\":\"status_quo\",\"290\":\"0_2\",\"291\":\"status_quo\",\"292\":\"0_28\",\"293\":\"status_quo\",\"294\":\"status_quo\",\"295\":\"status_quo\",\"296\":\"0_4\",\"297\":\"0_14\",\"298\":\"0_26\",\"299\":\"0_60\",\"300\":\"0_0\",\"301\":\"0_2\",\"302\":\"0_14\",\"303\":\"0_14\",\"304\":\"0_15\",\"305\":\"0_15\",\"306\":\"0_15\",\"307\":\"0_28\",\"308\":\"0_15\",\"309\":\"0_15\",\"310\":\"0_4\",\"311\":\"0_60\",\"312\":\"0_2\",\"313\":\"0_50\",\"314\":\"0_15\",\"315\":\"0_16\",\"316\":\"0_16\",\"317\":\"0_0\",\"318\":\"0_16\",\"319\":\"0_16\",\"320\":\"0_16\",\"321\":\"0_16\",\"322\":\"0_28\",\"323\":\"0_2\",\"324\":\"0_12\",\"325\":\"0_2\",\"326\":\"0_51\",\"327\":\"0_20\",\"328\":\"0_20\",\"329\":\"0_1\",\"330\":\"0_37\",\"331\":\"0_61\",\"332\":\"0_40\",\"333\":\"0_20\",\"334\":\"0_28\",\"335\":\"0_4\",\"336\":\"0_20\",\"337\":\"0_20\",\"338\":\"0_20\",\"339\":\"0_51\",\"340\":\"0_21\",\"341\":\"0_21\",\"342\":\"0_21\",\"343\":\"0_61\",\"344\":\"0_21\",\"345\":\"0_21\",\"346\":\"0_17\",\"347\":\"0_40\",\"348\":\"0_21\",\"349\":\"0_1\",\"350\":\"0_29\",\"351\":\"0_22\",\"352\":\"0_38\",\"353\":\"0_22\",\"354\":\"0_22\",\"355\":\"0_24\",\"356\":\"0_22\",\"357\":\"0_17\",\"358\":\"0_22\",\"359\":\"0_22\",\"360\":\"0_23\",\"361\":\"0_40\",\"362\":\"0_23\",\"363\":\"0_23\",\"364\":\"0_23\",\"365\":\"0_51\",\"366\":\"0_29\",\"367\":\"0_39\",\"368\":\"0_17\",\"369\":\"0_23\",\"370\":\"0_29\",\"371\":\"0_29\",\"372\":\"0_29\",\"373\":\"0_29\",\"374\":\"0_3\",\"375\":\"0_40\",\"376\":\"0_3\",\"377\":\"0_10\",\"378\":\"0_51\",\"379\":\"0_17\",\"380\":\"0_13\",\"381\":\"0_3\",\"382\":\"0_3\",\"383\":\"0_3\",\"384\":\"0_24\",\"385\":\"0_3\",\"386\":\"0_30\",\"387\":\"0_30\",\"388\":\"0_30\",\"389\":\"0_40\"},\"trial_index\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":0,\"113\":0,\"114\":0,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":0,\"120\":0,\"121\":0,\"122\":0,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":0,\"128\":0,\"129\":0,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":0,\"144\":0,\"145\":0,\"146\":0,\"147\":0,\"148\":0,\"149\":0,\"150\":0,\"151\":0,\"152\":0,\"153\":0,\"154\":0,\"155\":0,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":0,\"163\":0,\"164\":0,\"165\":0,\"166\":0,\"167\":0,\"168\":0,\"169\":0,\"170\":0,\"171\":0,\"172\":0,\"173\":0,\"174\":0,\"175\":0,\"176\":0,\"177\":0,\"178\":0,\"179\":0,\"180\":0,\"181\":0,\"182\":0,\"183\":0,\"184\":0,\"185\":0,\"186\":0,\"187\":0,\"188\":0,\"189\":0,\"190\":0,\"191\":0,\"192\":0,\"193\":0,\"194\":0,\"195\":0,\"196\":0,\"197\":0,\"198\":0,\"199\":0,\"200\":0,\"201\":0,\"202\":0,\"203\":0,\"204\":0,\"205\":0,\"206\":0,\"207\":0,\"208\":0,\"209\":0,\"210\":0,\"211\":0,\"212\":0,\"213\":0,\"214\":0,\"215\":0,\"216\":0,\"217\":0,\"218\":0,\"219\":0,\"220\":0,\"221\":0,\"222\":0,\"223\":0,\"224\":0,\"225\":0,\"226\":0,\"227\":0,\"228\":0,\"229\":0,\"230\":0,\"231\":0,\"232\":0,\"233\":0,\"234\":0,\"235\":0,\"236\":0,\"237\":0,\"238\":0,\"239\":0,\"240\":0,\"241\":0,\"242\":0,\"243\":0,\"244\":0,\"245\":0,\"246\":0,\"247\":0,\"248\":0,\"249\":0,\"250\":0,\"251\":0,\"252\":0,\"253\":0,\"254\":0,\"255\":0,\"256\":0,\"257\":0,\"258\":0,\"259\":0,\"260\":0,\"261\":0,\"262\":0,\"263\":0,\"264\":0,\"265\":0,\"266\":0,\"267\":0,\"268\":0,\"269\":0,\"270\":0,\"271\":0,\"272\":0,\"273\":0,\"274\":0,\"275\":0,\"276\":0,\"277\":0,\"278\":0,\"279\":0,\"280\":0,\"281\":0,\"282\":0,\"283\":0,\"284\":0,\"285\":0,\"286\":0,\"287\":0,\"288\":0,\"289\":0,\"290\":0,\"291\":0,\"292\":0,\"293\":0,\"294\":0,\"295\":0,\"296\":0,\"297\":0,\"298\":0,\"299\":0,\"300\":0,\"301\":0,\"302\":0,\"303\":0,\"304\":0,\"305\":0,\"306\":0,\"307\":0,\"308\":0,\"309\":0,\"310\":0,\"311\":0,\"312\":0,\"313\":0,\"314\":0,\"315\":0,\"316\":0,\"317\":0,\"318\":0,\"319\":0,\"320\":0,\"321\":0,\"322\":0,\"323\":0,\"324\":0,\"325\":0,\"326\":0,\"327\":0,\"328\":0,\"329\":0,\"330\":0,\"331\":0,\"332\":0,\"333\":0,\"334\":0,\"335\":0,\"336\":0,\"337\":0,\"338\":0,\"339\":0,\"340\":0,\"341\":0,\"342\":0,\"343\":0,\"344\":0,\"345\":0,\"346\":0,\"347\":0,\"348\":0,\"349\":0,\"350\":0,\"351\":0,\"352\":0,\"353\":0,\"354\":0,\"355\":0,\"356\":0,\"357\":0,\"358\":0,\"359\":0,\"360\":0,\"361\":0,\"362\":0,\"363\":0,\"364\":0,\"365\":0,\"366\":0,\"367\":0,\"368\":0,\"369\":0,\"370\":0,\"371\":0,\"372\":0,\"373\":0,\"374\":0,\"375\":0,\"376\":0,\"377\":0,\"378\":0,\"379\":0,\"380\":0,\"381\":0,\"382\":0,\"383\":0,\"384\":0,\"385\":0,\"386\":0,\"387\":0,\"388\":0,\"389\":0},\"end_time\":{\"0\":1554076800000,\"1\":1554076800000,\"2\":1554076800000,\"3\":1554076800000,\"4\":1554076800000,\"5\":1554076800000,\"6\":1554076800000,\"7\":1554076800000,\"8\":1554076800000,\"9\":1554076800000,\"10\":1554076800000,\"11\":1554076800000,\"12\":1554076800000,\"13\":1554076800000,\"14\":1554076800000,\"15\":1554076800000,\"16\":1554076800000,\"17\":1554076800000,\"18\":1554076800000,\"19\":1554076800000,\"20\":1554076800000,\"21\":1554076800000,\"22\":1554076800000,\"23\":1554076800000,\"24\":1554076800000,\"25\":1554076800000,\"26\":1554076800000,\"27\":1554076800000,\"28\":1554076800000,\"29\":1554076800000,\"30\":1554076800000,\"31\":1554076800000,\"32\":1554076800000,\"33\":1554076800000,\"34\":1554076800000,\"35\":1554076800000,\"36\":1554076800000,\"37\":1554076800000,\"38\":1554076800000,\"39\":1554076800000,\"40\":1554076800000,\"41\":1554076800000,\"42\":1554076800000,\"43\":1554076800000,\"44\":1554076800000,\"45\":1554076800000,\"46\":1554076800000,\"47\":1554076800000,\"48\":1554076800000,\"49\":1554076800000,\"50\":1554076800000,\"51\":1554076800000,\"52\":1554076800000,\"53\":1554076800000,\"54\":1554076800000,\"55\":1554076800000,\"56\":1554076800000,\"57\":1554076800000,\"58\":1554076800000,\"59\":1554076800000,\"60\":1554076800000,\"61\":1554076800000,\"62\":1554076800000,\"63\":1554076800000,\"64\":1554076800000,\"65\":1554076800000,\"66\":1554076800000,\"67\":1554076800000,\"68\":1554076800000,\"69\":1554076800000,\"70\":1554076800000,\"71\":1554076800000,\"72\":1554076800000,\"73\":1554076800000,\"74\":1554076800000,\"75\":1554076800000,\"76\":1554076800000,\"77\":1554076800000,\"78\":1554076800000,\"79\":1554076800000,\"80\":1554076800000,\"81\":1554076800000,\"82\":1554076800000,\"83\":1554076800000,\"84\":1554076800000,\"85\":1554076800000,\"86\":1554076800000,\"87\":1554076800000,\"88\":1554076800000,\"89\":1554076800000,\"90\":1554076800000,\"91\":1554076800000,\"92\":1554076800000,\"93\":1554076800000,\"94\":1554076800000,\"95\":1554076800000,\"96\":1554076800000,\"97\":1554076800000,\"98\":1554076800000,\"99\":1554076800000,\"100\":1554076800000,\"101\":1554076800000,\"102\":1554076800000,\"103\":1554076800000,\"104\":1554076800000,\"105\":1554076800000,\"106\":1554076800000,\"107\":1554076800000,\"108\":1554076800000,\"109\":1554076800000,\"110\":1554076800000,\"111\":1554076800000,\"112\":1554076800000,\"113\":1554076800000,\"114\":1554076800000,\"115\":1554076800000,\"116\":1554076800000,\"117\":1554076800000,\"118\":1554076800000,\"119\":1554076800000,\"120\":1554076800000,\"121\":1554076800000,\"122\":1554076800000,\"123\":1554076800000,\"124\":1554076800000,\"125\":1554076800000,\"126\":1554076800000,\"127\":1554076800000,\"128\":1554076800000,\"129\":1554076800000,\"130\":1554076800000,\"131\":1554076800000,\"132\":1554076800000,\"133\":1554076800000,\"134\":1554076800000,\"135\":1554076800000,\"136\":1554076800000,\"137\":1554076800000,\"138\":1554076800000,\"139\":1554076800000,\"140\":1554076800000,\"141\":1554076800000,\"142\":1554076800000,\"143\":1554076800000,\"144\":1554076800000,\"145\":1554076800000,\"146\":1554076800000,\"147\":1554076800000,\"148\":1554076800000,\"149\":1554076800000,\"150\":1554076800000,\"151\":1554076800000,\"152\":1554076800000,\"153\":1554076800000,\"154\":1554076800000,\"155\":1554076800000,\"156\":1554076800000,\"157\":1554076800000,\"158\":1554076800000,\"159\":1554076800000,\"160\":1554076800000,\"161\":1554076800000,\"162\":1554076800000,\"163\":1554076800000,\"164\":1554076800000,\"165\":1554076800000,\"166\":1554076800000,\"167\":1554076800000,\"168\":1554076800000,\"169\":1554076800000,\"170\":1554076800000,\"171\":1554076800000,\"172\":1554076800000,\"173\":1554076800000,\"174\":1554076800000,\"175\":1554076800000,\"176\":1554076800000,\"177\":1554076800000,\"178\":1554076800000,\"179\":1554076800000,\"180\":1554076800000,\"181\":1554076800000,\"182\":1554076800000,\"183\":1554076800000,\"184\":1554076800000,\"185\":1554076800000,\"186\":1554076800000,\"187\":1554076800000,\"188\":1554076800000,\"189\":1554076800000,\"190\":1554076800000,\"191\":1554076800000,\"192\":1554076800000,\"193\":1554076800000,\"194\":1554076800000,\"195\":1554076800000,\"196\":1554076800000,\"197\":1554076800000,\"198\":1554076800000,\"199\":1554076800000,\"200\":1554076800000,\"201\":1554076800000,\"202\":1554076800000,\"203\":1554076800000,\"204\":1554076800000,\"205\":1554076800000,\"206\":1554076800000,\"207\":1554076800000,\"208\":1554076800000,\"209\":1554076800000,\"210\":1554076800000,\"211\":1554076800000,\"212\":1554076800000,\"213\":1554076800000,\"214\":1554076800000,\"215\":1554076800000,\"216\":1554076800000,\"217\":1554076800000,\"218\":1554076800000,\"219\":1554076800000,\"220\":1554076800000,\"221\":1554076800000,\"222\":1554076800000,\"223\":1554076800000,\"224\":1554076800000,\"225\":1554076800000,\"226\":1554076800000,\"227\":1554076800000,\"228\":1554076800000,\"229\":1554076800000,\"230\":1554076800000,\"231\":1554076800000,\"232\":1554076800000,\"233\":1554076800000,\"234\":1554076800000,\"235\":1554076800000,\"236\":1554076800000,\"237\":1554076800000,\"238\":1554076800000,\"239\":1554076800000,\"240\":1554076800000,\"241\":1554076800000,\"242\":1554076800000,\"243\":1554076800000,\"244\":1554076800000,\"245\":1554076800000,\"246\":1554076800000,\"247\":1554076800000,\"248\":1554076800000,\"249\":1554076800000,\"250\":1554076800000,\"251\":1554076800000,\"252\":1554076800000,\"253\":1554076800000,\"254\":1554076800000,\"255\":1554076800000,\"256\":1554076800000,\"257\":1554076800000,\"258\":1554076800000,\"259\":1554076800000,\"260\":1554076800000,\"261\":1554076800000,\"262\":1554076800000,\"263\":1554076800000,\"264\":1554076800000,\"265\":1554076800000,\"266\":1554076800000,\"267\":1554076800000,\"268\":1554076800000,\"269\":1554076800000,\"270\":1554076800000,\"271\":1554076800000,\"272\":1554076800000,\"273\":1554076800000,\"274\":1554076800000,\"275\":1554076800000,\"276\":1554076800000,\"277\":1554076800000,\"278\":1554076800000,\"279\":1554076800000,\"280\":1554076800000,\"281\":1554076800000,\"282\":1554076800000,\"283\":1554076800000,\"284\":1554076800000,\"285\":1554076800000,\"286\":1554076800000,\"287\":1554076800000,\"288\":1554076800000,\"289\":1554076800000,\"290\":1554076800000,\"291\":1554076800000,\"292\":1554076800000,\"293\":1554076800000,\"294\":1554076800000,\"295\":1554076800000,\"296\":1554076800000,\"297\":1554076800000,\"298\":1554076800000,\"299\":1554076800000,\"300\":1554076800000,\"301\":1554076800000,\"302\":1554076800000,\"303\":1554076800000,\"304\":1554076800000,\"305\":1554076800000,\"306\":1554076800000,\"307\":1554076800000,\"308\":1554076800000,\"309\":1554076800000,\"310\":1554076800000,\"311\":1554076800000,\"312\":1554076800000,\"313\":1554076800000,\"314\":1554076800000,\"315\":1554076800000,\"316\":1554076800000,\"317\":1554076800000,\"318\":1554076800000,\"319\":1554076800000,\"320\":1554076800000,\"321\":1554076800000,\"322\":1554076800000,\"323\":1554076800000,\"324\":1554076800000,\"325\":1554076800000,\"326\":1554076800000,\"327\":1554076800000,\"328\":1554076800000,\"329\":1554076800000,\"330\":1554076800000,\"331\":1554076800000,\"332\":1554076800000,\"333\":1554076800000,\"334\":1554076800000,\"335\":1554076800000,\"336\":1554076800000,\"337\":1554076800000,\"338\":1554076800000,\"339\":1554076800000,\"340\":1554076800000,\"341\":1554076800000,\"342\":1554076800000,\"343\":1554076800000,\"344\":1554076800000,\"345\":1554076800000,\"346\":1554076800000,\"347\":1554076800000,\"348\":1554076800000,\"349\":1554076800000,\"350\":1554076800000,\"351\":1554076800000,\"352\":1554076800000,\"353\":1554076800000,\"354\":1554076800000,\"355\":1554076800000,\"356\":1554076800000,\"357\":1554076800000,\"358\":1554076800000,\"359\":1554076800000,\"360\":1554076800000,\"361\":1554076800000,\"362\":1554076800000,\"363\":1554076800000,\"364\":1554076800000,\"365\":1554076800000,\"366\":1554076800000,\"367\":1554076800000,\"368\":1554076800000,\"369\":1554076800000,\"370\":1554076800000,\"371\":1554076800000,\"372\":1554076800000,\"373\":1554076800000,\"374\":1554076800000,\"375\":1554076800000,\"376\":1554076800000,\"377\":1554076800000,\"378\":1554076800000,\"379\":1554076800000,\"380\":1554076800000,\"381\":1554076800000,\"382\":1554076800000,\"383\":1554076800000,\"384\":1554076800000,\"385\":1554076800000,\"386\":1554076800000,\"387\":1554076800000,\"388\":1554076800000,\"389\":1554076800000},\"frac_nonnull\":{\"0\":0.3965254662,\"1\":0.0110392629,\"2\":1.0,\"3\":1.0,\"4\":1.0,\"5\":1.0,\"6\":1.0,\"7\":1.0,\"8\":1.0,\"9\":0.3966942595,\"10\":0.0110808226,\"11\":0.011110931,\"12\":1.0,\"13\":0.3967149997,\"14\":1.0,\"15\":1.0,\"16\":1.0,\"17\":1.0,\"18\":1.0,\"19\":1.0,\"20\":1.0,\"21\":0.3962959081,\"22\":0.0110270775,\"23\":1.0,\"24\":0.3967065039,\"25\":1.0,\"26\":1.0,\"27\":1.0,\"28\":1.0,\"29\":1.0,\"30\":1.0,\"31\":0.3971961986,\"32\":1.0,\"33\":1.0,\"34\":0.0112207386,\"35\":1.0,\"36\":1.0,\"37\":1.0,\"38\":1.0,\"39\":1.0,\"40\":0.3964792055,\"41\":1.0,\"42\":0.0111055084,\"43\":1.0,\"44\":1.0,\"45\":1.0,\"46\":0.0110431769,\"47\":0.3968429856,\"48\":1.0,\"49\":0.3970991089,\"50\":1.0,\"51\":1.0,\"52\":1.0,\"53\":1.0,\"54\":0.396954262,\"55\":0.0109315323,\"56\":1.0,\"57\":1.0,\"58\":1.0,\"59\":1.0,\"60\":0.0110917377,\"61\":1.0,\"62\":1.0,\"63\":0.0109982033,\"64\":0.3971012007,\"65\":0.3963939929,\"66\":0.3965355467,\"67\":0.0110007843,\"68\":1.0,\"69\":1.0,\"70\":1.0,\"71\":1.0,\"72\":1.0,\"73\":1.0,\"74\":0.3968373458,\"75\":0.0110748983,\"76\":1.0,\"77\":0.3969614625,\"78\":1.0,\"79\":1.0,\"80\":0.0109682289,\"81\":1.0,\"82\":1.0,\"83\":1.0,\"84\":1.0,\"85\":0.3964361454,\"86\":1.0,\"87\":0.0110981636,\"88\":1.0,\"89\":0.0109110439,\"90\":0.0109879559,\"91\":1.0,\"92\":1.0,\"93\":1.0,\"94\":1.0,\"95\":1.0,\"96\":0.3968422803,\"97\":0.0109197041,\"98\":1.0,\"99\":1.0,\"100\":1.0,\"101\":1.0,\"102\":1.0,\"103\":1.0,\"104\":1.0,\"105\":1.0,\"106\":1.0,\"107\":0.3967094458,\"108\":1.0,\"109\":0.0110873262,\"110\":1.0,\"111\":1.0,\"112\":1.0,\"113\":1.0,\"114\":0.3959503022,\"115\":1.0,\"116\":1.0,\"117\":1.0,\"118\":0.396314562,\"119\":0.3968879144,\"120\":0.0110493167,\"121\":1.0,\"122\":1.0,\"123\":0.3964918807,\"124\":1.0,\"125\":1.0,\"126\":1.0,\"127\":1.0,\"128\":1.0,\"129\":1.0,\"130\":0.3959898886,\"131\":0.011021355,\"132\":1.0,\"133\":1.0,\"134\":0.0109532767,\"135\":1.0,\"136\":1.0,\"137\":1.0,\"138\":0.0110748899,\"139\":1.0,\"140\":1.0,\"141\":1.0,\"142\":1.0,\"143\":0.3967734949,\"144\":0.0111218546,\"145\":1.0,\"146\":0.3960782381,\"147\":1.0,\"148\":1.0,\"149\":1.0,\"150\":0.396879907,\"151\":0.0109849308,\"152\":1.0,\"153\":1.0,\"154\":1.0,\"155\":0.3968063603,\"156\":0.3977220883,\"157\":1.0,\"158\":1.0,\"159\":1.0,\"160\":1.0,\"161\":1.0,\"162\":0.3964572107,\"163\":0.0110689367,\"164\":1.0,\"165\":1.0,\"166\":1.0,\"167\":1.0,\"168\":0.0112415919,\"169\":0.0110029392,\"170\":0.011042147,\"171\":1.0,\"172\":1.0,\"173\":1.0,\"174\":1.0,\"175\":1.0,\"176\":0.3963961226,\"177\":1.0,\"178\":0.3960573089,\"179\":1.0,\"180\":0.3964292263,\"181\":0.3965541658,\"182\":0.010904368,\"183\":1.0,\"184\":1.0,\"185\":1.0,\"186\":1.0,\"187\":1.0,\"188\":0.3962957944,\"189\":1.0,\"190\":1.0,\"191\":0.396629074,\"192\":0.0109680615,\"193\":0.0108833857,\"194\":1.0,\"195\":1.0,\"196\":0.396674687,\"197\":0.0109844459,\"198\":1.0,\"199\":1.0,\"200\":1.0,\"201\":0.0109572084,\"202\":0.3971212742,\"203\":0.0111078624,\"204\":0.3964413384,\"205\":1.0,\"206\":1.0,\"207\":1.0,\"208\":1.0,\"209\":0.011054196,\"210\":1.0,\"211\":0.3961935984,\"212\":1.0,\"213\":0.0108774183,\"214\":0.0110515907,\"215\":1.0,\"216\":1.0,\"217\":1.0,\"218\":1.0,\"219\":0.3962382568,\"220\":1.0,\"221\":1.0,\"222\":1.0,\"223\":0.3972619691,\"224\":1.0,\"225\":0.3966458162,\"226\":1.0,\"227\":0.0110909845,\"228\":1.0,\"229\":1.0,\"230\":1.0,\"231\":1.0,\"232\":1.0,\"233\":0.3968619673,\"234\":0.0110272642,\"235\":1.0,\"236\":0.0109801394,\"237\":1.0,\"238\":1.0,\"239\":1.0,\"240\":1.0,\"241\":1.0,\"242\":1.0,\"243\":1.0,\"244\":0.3968593621,\"245\":0.0111149899,\"246\":1.0,\"247\":1.0,\"248\":1.0,\"249\":1.0,\"250\":1.0,\"251\":1.0,\"252\":1.0,\"253\":0.3964534113,\"254\":0.3967201491,\"255\":0.0112178059,\"256\":1.0,\"257\":1.0,\"258\":1.0,\"259\":0.0110233455,\"260\":1.0,\"261\":1.0,\"262\":0.0110827233,\"263\":1.0,\"264\":1.0,\"265\":1.0,\"266\":0.3964671803,\"267\":0.0109845845,\"268\":0.3968888802,\"269\":0.0109577952,\"270\":1.0,\"271\":1.0,\"272\":1.0,\"273\":1.0,\"274\":1.0,\"275\":1.0,\"276\":0.3963948819,\"277\":0.3958884129,\"278\":0.0110774456,\"279\":1.0,\"280\":1.0,\"281\":1.0,\"282\":0.0110686778,\"283\":1.0,\"284\":1.0,\"285\":1.0,\"286\":1.0,\"287\":0.3964536203,\"288\":0.396579029,\"289\":0.0110258347,\"290\":0.0110430508,\"291\":1.0,\"292\":0.0109447114,\"293\":1.0,\"294\":1.0,\"295\":1.0,\"296\":1.0,\"297\":1.0,\"298\":1.0,\"299\":0.0109881197,\"300\":1.0,\"301\":1.0,\"302\":1.0,\"303\":1.0,\"304\":0.3964085243,\"305\":0.0110446123,\"306\":1.0,\"307\":1.0,\"308\":1.0,\"309\":1.0,\"310\":1.0,\"311\":1.0,\"312\":1.0,\"313\":1.0,\"314\":1.0,\"315\":0.3962229045,\"316\":0.0109863641,\"317\":1.0,\"318\":1.0,\"319\":1.0,\"320\":1.0,\"321\":1.0,\"322\":1.0,\"323\":1.0,\"324\":1.0,\"325\":1.0,\"326\":0.3965533911,\"327\":0.3969888095,\"328\":0.0110937886,\"329\":1.0,\"330\":1.0,\"331\":0.3962929258,\"332\":0.3966445392,\"333\":1.0,\"334\":1.0,\"335\":1.0,\"336\":1.0,\"337\":1.0,\"338\":1.0,\"339\":0.0108585488,\"340\":0.3972363545,\"341\":0.0110601253,\"342\":1.0,\"343\":0.0109781506,\"344\":1.0,\"345\":1.0,\"346\":0.0108690875,\"347\":0.0110306435,\"348\":1.0,\"349\":1.0,\"350\":0.3964717842,\"351\":0.3962389932,\"352\":1.0,\"353\":0.0110498656,\"354\":1.0,\"355\":1.0,\"356\":1.0,\"357\":1.0,\"358\":1.0,\"359\":1.0,\"360\":0.3965518642,\"361\":1.0,\"362\":0.010932684,\"363\":1.0,\"364\":1.0,\"365\":1.0,\"366\":0.0109930395,\"367\":1.0,\"368\":1.0,\"369\":1.0,\"370\":1.0,\"371\":1.0,\"372\":1.0,\"373\":1.0,\"374\":0.3961685953,\"375\":1.0,\"376\":0.0110562424,\"377\":1.0,\"378\":1.0,\"379\":1.0,\"380\":1.0,\"381\":1.0,\"382\":1.0,\"383\":1.0,\"384\":0.397208691,\"385\":1.0,\"386\":0.3968803832,\"387\":0.010938925,\"388\":1.0,\"389\":1.0},\"mean\":{\"0\":104.9116440607,\"1\":0.040318951,\"2\":38267.5511921719,\"3\":20.9213793135,\"4\":21.4459765577,\"5\":515.3084505912,\"6\":520.6507734407,\"7\":38233.3738980105,\"8\":20.6683558647,\"9\":105.0472079785,\"10\":0.0393441471,\"11\":0.0397946943,\"12\":0.9354921317,\"13\":104.5931791783,\"14\":20.2265888805,\"15\":455.60244952,\"16\":525.299190401,\"17\":0.9406985371,\"18\":38518.4936870315,\"19\":38375.3894674193,\"20\":38187.1415524679,\"21\":105.0336269064,\"22\":0.0397300706,\"23\":0.940050956,\"24\":105.2953762693,\"25\":21.8144543482,\"26\":492.488658948,\"27\":554.8958008109,\"28\":0.9386679243,\"29\":23.2339113156,\"30\":38420.4852219144,\"31\":103.9162483097,\"32\":21.4529225259,\"33\":38067.6720404196,\"34\":0.0399895276,\"35\":552.9271005253,\"36\":0.9404396774,\"37\":21.9470986593,\"38\":552.4758134529,\"39\":38171.5182904526,\"40\":104.0894036628,\"41\":563.5899862087,\"42\":0.0393910736,\"43\":38653.710288626,\"44\":21.6325397424,\"45\":38144.053488703,\"46\":0.0399056878,\"47\":104.0611154343,\"48\":0.939545626,\"49\":105.7451600535,\"50\":21.7283674865,\"51\":523.885061884,\"52\":38096.7475320342,\"53\":38706.932275148,\"54\":105.6897333224,\"55\":0.0394674413,\"56\":0.9392192378,\"57\":0.9380915707,\"58\":21.4364451918,\"59\":538.7726667515,\"60\":0.0381267498,\"61\":38585.694790824,\"62\":543.0642908833,\"63\":0.0409409874,\"64\":105.6279923786,\"65\":105.3712201596,\"66\":105.0387874751,\"67\":0.0382700296,\"68\":21.2105671312,\"69\":0.9384944242,\"70\":21.4685362375,\"71\":544.1002722355,\"72\":38670.2899680018,\"73\":38229.5942969936,\"74\":104.7138616317,\"75\":0.0396152809,\"76\":0.9391518002,\"77\":105.6156608775,\"78\":0.9375848377,\"79\":544.4328632698,\"80\":0.0398968061,\"81\":20.9723713256,\"82\":551.0185862215,\"83\":516.8279581976,\"84\":38616.7930217768,\"85\":105.1470499923,\"86\":0.9384821555,\"87\":0.0401809119,\"88\":0.9384973337,\"89\":0.040856002,\"90\":0.0387299922,\"91\":0.9371727117,\"92\":21.1131824194,\"93\":516.776334116,\"94\":541.6481222561,\"95\":38477.9602945049,\"96\":104.6220149723,\"97\":0.0394323024,\"98\":38244.3007292471,\"99\":21.5165546391,\"100\":0.9377048405,\"101\":38490.6760149278,\"102\":0.9368878487,\"103\":21.1242267711,\"104\":526.4764170192,\"105\":21.3025686758,\"106\":37978.5610778367,\"107\":104.8815882473,\"108\":38453.2284814906,\"109\":0.0416821089,\"110\":0.9400514825,\"111\":22.580330584,\"112\":21.7898063681,\"113\":21.0263969695,\"114\":105.2616405132,\"115\":20.5638973954,\"116\":557.2749244063,\"117\":37959.3496700464,\"118\":106.1644720051,\"119\":106.3260383194,\"120\":0.0401437553,\"121\":542.1682945442,\"122\":0.9379495313,\"123\":104.3332165538,\"124\":531.3590130848,\"125\":20.9199875188,\"126\":529.7496076675,\"127\":38269.0414743111,\"128\":538.9407132478,\"129\":38867.0552015385,\"130\":104.6364526842,\"131\":0.0388432678,\"132\":0.936419844,\"133\":20.7810044705,\"134\":0.0400454282,\"135\":38070.6616221527,\"136\":509.024693062,\"137\":38483.0144575375,\"138\":0.0393785888,\"139\":526.8627430412,\"140\":482.9892635124,\"141\":38051.0491329108,\"142\":38024.8904427889,\"143\":104.9638045474,\"144\":0.0399726862,\"145\":0.9376021088,\"146\":105.5511209182,\"147\":21.9669040461,\"148\":528.0137468009,\"149\":38319.3730031065,\"150\":104.992125846,\"151\":0.0397960713,\"152\":38168.7292999403,\"153\":0.9377544272,\"154\":0.9383182638,\"155\":105.39226359,\"156\":105.644401232,\"157\":38115.4540500413,\"158\":0.9369888771,\"159\":21.1337117696,\"160\":516.8937065447,\"161\":38430.892831462,\"162\":104.2981182267,\"163\":0.0389202889,\"164\":510.5339072013,\"165\":0.9391190867,\"166\":21.5006281831,\"167\":538.0625328887,\"168\":0.0410568946,\"169\":0.0395688721,\"170\":0.0384741466,\"171\":0.9381863204,\"172\":537.8642144819,\"173\":21.0942580202,\"174\":532.3814442831,\"175\":38358.8911870502,\"176\":105.1089699821,\"177\":20.2642912772,\"178\":106.6164134063,\"179\":0.9373052893,\"180\":105.211312051,\"181\":105.3626009177,\"182\":0.0397466572,\"183\":21.2501796829,\"184\":0.9374288622,\"185\":21.0551691993,\"186\":524.0888165839,\"187\":38370.0546203598,\"188\":105.4696969181,\"189\":38203.3842503332,\"190\":20.6615846664,\"191\":105.6657572167,\"192\":0.0385640093,\"193\":0.0386964826,\"194\":0.9380161801,\"195\":21.0569680247,\"196\":105.1307543813,\"197\":0.0386211357,\"198\":530.8698427874,\"199\":38644.8477229498,\"200\":530.4065245271,\"201\":0.0407746535,\"202\":104.2223895342,\"203\":0.0399241559,\"204\":104.7181448333,\"205\":0.9384035151,\"206\":21.4537909615,\"207\":0.9355765327,\"208\":539.1674095603,\"209\":0.0410187698,\"210\":39258.5691380372,\"211\":105.1629063871,\"212\":38275.3339322641,\"213\":0.0396037716,\"214\":0.0392746363,\"215\":0.937962734,\"216\":0.9362806215,\"217\":20.7041305066,\"218\":506.1119814293,\"219\":105.1379404925,\"220\":38483.8096389351,\"221\":0.9393987552,\"222\":0.9376853389,\"223\":105.2545607365,\"224\":477.5368180527,\"225\":105.572308549,\"226\":0.9365163813,\"227\":0.0366942563,\"228\":0.9378986258,\"229\":20.89955755,\"230\":533.9904900941,\"231\":38212.7856056812,\"232\":21.0407460535,\"233\":105.3807221551,\"234\":0.038782552,\"235\":38119.5889161698,\"236\":0.039165177,\"237\":21.2387307981,\"238\":20.7159567634,\"239\":0.938805435,\"240\":0.9391071562,\"241\":21.52980053,\"242\":547.9563818478,\"243\":38055.4492421815,\"244\":105.1346911794,\"245\":0.039918351,\"246\":21.7429085278,\"247\":0.9371432675,\"248\":21.1296322288,\"249\":526.3642591909,\"250\":497.16795329,\"251\":21.2657115265,\"252\":38447.1023567209,\"253\":106.4847606039,\"254\":105.5409329714,\"255\":0.0409755142,\"256\":0.9370754109,\"257\":507.6750126562,\"258\":511.500098371,\"259\":0.0388717973,\"260\":37938.4744782539,\"261\":21.0608359954,\"262\":0.039929546,\"263\":0.9379850326,\"264\":522.6523517314,\"265\":38505.375332209,\"266\":105.5534088629,\"267\":0.039848096,\"268\":104.5856442365,\"269\":0.0393607626,\"270\":0.9371939122,\"271\":20.8862336795,\"272\":0.9385186825,\"273\":528.5209258106,\"274\":37728.0789037874,\"275\":38043.7614696314,\"276\":104.9421653934,\"277\":105.3332669623,\"278\":0.0391551119,\"279\":38291.9387701211,\"280\":0.9385174873,\"281\":0.9367487962,\"282\":0.0386453199,\"283\":20.7924146526,\"284\":504.7006985544,\"285\":489.0665678791,\"286\":38248.5349675273,\"287\":104.8127998201,\"288\":105.2292814143,\"289\":0.0397703624,\"290\":0.039462518,\"291\":0.9384416163,\"292\":0.0388476153,\"293\":21.2679346166,\"294\":537.8728139162,\"295\":38176.2761604092,\"296\":0.9377815341,\"297\":21.1811920735,\"298\":0.9387477008,\"299\":0.0394273173,\"300\":467.1119339759,\"301\":0.9375300051,\"302\":535.1580719146,\"303\":38317.4964317733,\"304\":104.5190460937,\"305\":0.0409670439,\"306\":0.9376079516,\"307\":0.9363379767,\"308\":20.8732223044,\"309\":510.1076882483,\"310\":20.9615509082,\"311\":0.9393300642,\"312\":21.0995492588,\"313\":21.7165193772,\"314\":37956.4819314911,\"315\":103.7193429832,\"316\":0.0391701296,\"317\":38601.1354972046,\"318\":0.9393606969,\"319\":21.7743593051,\"320\":546.5640355537,\"321\":38439.5959883837,\"322\":20.7724017279,\"323\":523.358581337,\"324\":525.5397033903,\"325\":38346.914781935,\"326\":104.1947966862,\"327\":107.0719128026,\"328\":0.0403602336,\"329\":0.9359267209,\"330\":22.0897940939,\"331\":104.0284850642,\"332\":106.5314060271,\"333\":0.9387831142,\"334\":38595.4227044909,\"335\":527.1153112705,\"336\":21.217467922,\"337\":540.2634593004,\"338\":38439.741159335,\"339\":0.038267933,\"340\":105.2410736859,\"341\":0.0390988036,\"342\":0.9387728328,\"343\":0.040125484,\"344\":21.2911106939,\"345\":538.7717983769,\"346\":0.0382439871,\"347\":0.039520112,\"348\":38325.9421533161,\"349\":20.6575791947,\"350\":105.1890433492,\"351\":106.21433227,\"352\":38453.5082599798,\"353\":0.0387137038,\"354\":0.9391486064,\"355\":38294.1020935233,\"356\":21.2618872897,\"357\":0.9381532714,\"358\":545.9566169859,\"359\":38255.3217863117,\"360\":105.623813019,\"361\":0.9369674044,\"362\":0.0402774543,\"363\":0.9366441361,\"364\":20.7296217983,\"365\":0.9371548984,\"366\":0.0404800603,\"367\":539.8435103917,\"368\":21.3544129852,\"369\":38055.7085664149,\"370\":0.9393487142,\"371\":22.3029549771,\"372\":547.0585822628,\"373\":38205.2654097572,\"374\":106.0524550436,\"375\":20.7114011899,\"376\":0.0399115934,\"377\":0.936424317,\"378\":21.129884781,\"379\":532.2264058044,\"380\":38442.2770274193,\"381\":0.937981269,\"382\":21.3102709685,\"383\":531.4746979941,\"384\":105.4301605378,\"385\":38637.0708379549,\"386\":105.5233072802,\"387\":0.0374860671,\"388\":0.9370550332,\"389\":507.3454764777},\"metric_name\":{\"0\":\"is_live_watch_time_given_iphone\",\"1\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"2\":\"wilde_scroll_frame_drops_per_minute\",\"3\":\"video:encoding:iphone_live_playback_mos_loss\",\"4\":\"video:encoding:iphone_live_playback_mos_loss\",\"5\":\"video:sbl_iphone_is_live__smtbr\",\"6\":\"video:sbl_iphone_is_live__smtbr\",\"7\":\"wilde_scroll_frame_drops_per_minute\",\"8\":\"video:encoding:iphone_live_playback_mos_loss\",\"9\":\"is_live_watch_time_given_iphone\",\"10\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"11\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"12\":\"sbl_iphone_is_live__psr_1_start\",\"13\":\"is_live_watch_time_given_iphone\",\"14\":\"video:encoding:iphone_live_playback_mos_loss\",\"15\":\"video:sbl_iphone_is_live__smtbr\",\"16\":\"video:sbl_iphone_is_live__smtbr\",\"17\":\"sbl_iphone_is_live__psr_1_start\",\"18\":\"wilde_scroll_frame_drops_per_minute\",\"19\":\"wilde_scroll_frame_drops_per_minute\",\"20\":\"wilde_scroll_frame_drops_per_minute\",\"21\":\"is_live_watch_time_given_iphone\",\"22\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"23\":\"sbl_iphone_is_live__psr_1_start\",\"24\":\"is_live_watch_time_given_iphone\",\"25\":\"video:encoding:iphone_live_playback_mos_loss\",\"26\":\"video:sbl_iphone_is_live__smtbr\",\"27\":\"video:sbl_iphone_is_live__smtbr\",\"28\":\"sbl_iphone_is_live__psr_1_start\",\"29\":\"video:encoding:iphone_live_playback_mos_loss\",\"30\":\"wilde_scroll_frame_drops_per_minute\",\"31\":\"is_live_watch_time_given_iphone\",\"32\":\"video:encoding:iphone_live_playback_mos_loss\",\"33\":\"wilde_scroll_frame_drops_per_minute\",\"34\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"35\":\"video:sbl_iphone_is_live__smtbr\",\"36\":\"sbl_iphone_is_live__psr_1_start\",\"37\":\"video:encoding:iphone_live_playback_mos_loss\",\"38\":\"video:sbl_iphone_is_live__smtbr\",\"39\":\"wilde_scroll_frame_drops_per_minute\",\"40\":\"is_live_watch_time_given_iphone\",\"41\":\"video:sbl_iphone_is_live__smtbr\",\"42\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"43\":\"wilde_scroll_frame_drops_per_minute\",\"44\":\"video:encoding:iphone_live_playback_mos_loss\",\"45\":\"wilde_scroll_frame_drops_per_minute\",\"46\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"47\":\"is_live_watch_time_given_iphone\",\"48\":\"sbl_iphone_is_live__psr_1_start\",\"49\":\"is_live_watch_time_given_iphone\",\"50\":\"video:encoding:iphone_live_playback_mos_loss\",\"51\":\"video:sbl_iphone_is_live__smtbr\",\"52\":\"wilde_scroll_frame_drops_per_minute\",\"53\":\"wilde_scroll_frame_drops_per_minute\",\"54\":\"is_live_watch_time_given_iphone\",\"55\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"56\":\"sbl_iphone_is_live__psr_1_start\",\"57\":\"sbl_iphone_is_live__psr_1_start\",\"58\":\"video:encoding:iphone_live_playback_mos_loss\",\"59\":\"video:sbl_iphone_is_live__smtbr\",\"60\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"61\":\"wilde_scroll_frame_drops_per_minute\",\"62\":\"video:sbl_iphone_is_live__smtbr\",\"63\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"64\":\"is_live_watch_time_given_iphone\",\"65\":\"is_live_watch_time_given_iphone\",\"66\":\"is_live_watch_time_given_iphone\",\"67\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"68\":\"video:encoding:iphone_live_playback_mos_loss\",\"69\":\"sbl_iphone_is_live__psr_1_start\",\"70\":\"video:encoding:iphone_live_playback_mos_loss\",\"71\":\"video:sbl_iphone_is_live__smtbr\",\"72\":\"wilde_scroll_frame_drops_per_minute\",\"73\":\"wilde_scroll_frame_drops_per_minute\",\"74\":\"is_live_watch_time_given_iphone\",\"75\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"76\":\"sbl_iphone_is_live__psr_1_start\",\"77\":\"is_live_watch_time_given_iphone\",\"78\":\"sbl_iphone_is_live__psr_1_start\",\"79\":\"video:sbl_iphone_is_live__smtbr\",\"80\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"81\":\"video:encoding:iphone_live_playback_mos_loss\",\"82\":\"video:sbl_iphone_is_live__smtbr\",\"83\":\"video:sbl_iphone_is_live__smtbr\",\"84\":\"wilde_scroll_frame_drops_per_minute\",\"85\":\"is_live_watch_time_given_iphone\",\"86\":\"sbl_iphone_is_live__psr_1_start\",\"87\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"88\":\"sbl_iphone_is_live__psr_1_start\",\"89\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"90\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"91\":\"sbl_iphone_is_live__psr_1_start\",\"92\":\"video:encoding:iphone_live_playback_mos_loss\",\"93\":\"video:sbl_iphone_is_live__smtbr\",\"94\":\"video:sbl_iphone_is_live__smtbr\",\"95\":\"wilde_scroll_frame_drops_per_minute\",\"96\":\"is_live_watch_time_given_iphone\",\"97\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"98\":\"wilde_scroll_frame_drops_per_minute\",\"99\":\"video:encoding:iphone_live_playback_mos_loss\",\"100\":\"sbl_iphone_is_live__psr_1_start\",\"101\":\"wilde_scroll_frame_drops_per_minute\",\"102\":\"sbl_iphone_is_live__psr_1_start\",\"103\":\"video:encoding:iphone_live_playback_mos_loss\",\"104\":\"video:sbl_iphone_is_live__smtbr\",\"105\":\"video:encoding:iphone_live_playback_mos_loss\",\"106\":\"wilde_scroll_frame_drops_per_minute\",\"107\":\"is_live_watch_time_given_iphone\",\"108\":\"wilde_scroll_frame_drops_per_minute\",\"109\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"110\":\"sbl_iphone_is_live__psr_1_start\",\"111\":\"video:encoding:iphone_live_playback_mos_loss\",\"112\":\"video:encoding:iphone_live_playback_mos_loss\",\"113\":\"video:encoding:iphone_live_playback_mos_loss\",\"114\":\"is_live_watch_time_given_iphone\",\"115\":\"video:encoding:iphone_live_playback_mos_loss\",\"116\":\"video:sbl_iphone_is_live__smtbr\",\"117\":\"wilde_scroll_frame_drops_per_minute\",\"118\":\"is_live_watch_time_given_iphone\",\"119\":\"is_live_watch_time_given_iphone\",\"120\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"121\":\"video:sbl_iphone_is_live__smtbr\",\"122\":\"sbl_iphone_is_live__psr_1_start\",\"123\":\"is_live_watch_time_given_iphone\",\"124\":\"video:sbl_iphone_is_live__smtbr\",\"125\":\"video:encoding:iphone_live_playback_mos_loss\",\"126\":\"video:sbl_iphone_is_live__smtbr\",\"127\":\"wilde_scroll_frame_drops_per_minute\",\"128\":\"video:sbl_iphone_is_live__smtbr\",\"129\":\"wilde_scroll_frame_drops_per_minute\",\"130\":\"is_live_watch_time_given_iphone\",\"131\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"132\":\"sbl_iphone_is_live__psr_1_start\",\"133\":\"video:encoding:iphone_live_playback_mos_loss\",\"134\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"135\":\"wilde_scroll_frame_drops_per_minute\",\"136\":\"video:sbl_iphone_is_live__smtbr\",\"137\":\"wilde_scroll_frame_drops_per_minute\",\"138\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"139\":\"video:sbl_iphone_is_live__smtbr\",\"140\":\"video:sbl_iphone_is_live__smtbr\",\"141\":\"wilde_scroll_frame_drops_per_minute\",\"142\":\"wilde_scroll_frame_drops_per_minute\",\"143\":\"is_live_watch_time_given_iphone\",\"144\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"145\":\"sbl_iphone_is_live__psr_1_start\",\"146\":\"is_live_watch_time_given_iphone\",\"147\":\"video:encoding:iphone_live_playback_mos_loss\",\"148\":\"video:sbl_iphone_is_live__smtbr\",\"149\":\"wilde_scroll_frame_drops_per_minute\",\"150\":\"is_live_watch_time_given_iphone\",\"151\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"152\":\"wilde_scroll_frame_drops_per_minute\",\"153\":\"sbl_iphone_is_live__psr_1_start\",\"154\":\"sbl_iphone_is_live__psr_1_start\",\"155\":\"is_live_watch_time_given_iphone\",\"156\":\"is_live_watch_time_given_iphone\",\"157\":\"wilde_scroll_frame_drops_per_minute\",\"158\":\"sbl_iphone_is_live__psr_1_start\",\"159\":\"video:encoding:iphone_live_playback_mos_loss\",\"160\":\"video:sbl_iphone_is_live__smtbr\",\"161\":\"wilde_scroll_frame_drops_per_minute\",\"162\":\"is_live_watch_time_given_iphone\",\"163\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"164\":\"video:sbl_iphone_is_live__smtbr\",\"165\":\"sbl_iphone_is_live__psr_1_start\",\"166\":\"video:encoding:iphone_live_playback_mos_loss\",\"167\":\"video:sbl_iphone_is_live__smtbr\",\"168\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"169\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"170\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"171\":\"sbl_iphone_is_live__psr_1_start\",\"172\":\"video:sbl_iphone_is_live__smtbr\",\"173\":\"video:encoding:iphone_live_playback_mos_loss\",\"174\":\"video:sbl_iphone_is_live__smtbr\",\"175\":\"wilde_scroll_frame_drops_per_minute\",\"176\":\"is_live_watch_time_given_iphone\",\"177\":\"video:encoding:iphone_live_playback_mos_loss\",\"178\":\"is_live_watch_time_given_iphone\",\"179\":\"sbl_iphone_is_live__psr_1_start\",\"180\":\"is_live_watch_time_given_iphone\",\"181\":\"is_live_watch_time_given_iphone\",\"182\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"183\":\"video:encoding:iphone_live_playback_mos_loss\",\"184\":\"sbl_iphone_is_live__psr_1_start\",\"185\":\"video:encoding:iphone_live_playback_mos_loss\",\"186\":\"video:sbl_iphone_is_live__smtbr\",\"187\":\"wilde_scroll_frame_drops_per_minute\",\"188\":\"is_live_watch_time_given_iphone\",\"189\":\"wilde_scroll_frame_drops_per_minute\",\"190\":\"video:encoding:iphone_live_playback_mos_loss\",\"191\":\"is_live_watch_time_given_iphone\",\"192\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"193\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"194\":\"sbl_iphone_is_live__psr_1_start\",\"195\":\"video:encoding:iphone_live_playback_mos_loss\",\"196\":\"is_live_watch_time_given_iphone\",\"197\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"198\":\"video:sbl_iphone_is_live__smtbr\",\"199\":\"wilde_scroll_frame_drops_per_minute\",\"200\":\"video:sbl_iphone_is_live__smtbr\",\"201\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"202\":\"is_live_watch_time_given_iphone\",\"203\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"204\":\"is_live_watch_time_given_iphone\",\"205\":\"sbl_iphone_is_live__psr_1_start\",\"206\":\"video:encoding:iphone_live_playback_mos_loss\",\"207\":\"sbl_iphone_is_live__psr_1_start\",\"208\":\"video:sbl_iphone_is_live__smtbr\",\"209\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"210\":\"wilde_scroll_frame_drops_per_minute\",\"211\":\"is_live_watch_time_given_iphone\",\"212\":\"wilde_scroll_frame_drops_per_minute\",\"213\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"214\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"215\":\"sbl_iphone_is_live__psr_1_start\",\"216\":\"sbl_iphone_is_live__psr_1_start\",\"217\":\"video:encoding:iphone_live_playback_mos_loss\",\"218\":\"video:sbl_iphone_is_live__smtbr\",\"219\":\"is_live_watch_time_given_iphone\",\"220\":\"wilde_scroll_frame_drops_per_minute\",\"221\":\"sbl_iphone_is_live__psr_1_start\",\"222\":\"sbl_iphone_is_live__psr_1_start\",\"223\":\"is_live_watch_time_given_iphone\",\"224\":\"video:sbl_iphone_is_live__smtbr\",\"225\":\"is_live_watch_time_given_iphone\",\"226\":\"sbl_iphone_is_live__psr_1_start\",\"227\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"228\":\"sbl_iphone_is_live__psr_1_start\",\"229\":\"video:encoding:iphone_live_playback_mos_loss\",\"230\":\"video:sbl_iphone_is_live__smtbr\",\"231\":\"wilde_scroll_frame_drops_per_minute\",\"232\":\"video:encoding:iphone_live_playback_mos_loss\",\"233\":\"is_live_watch_time_given_iphone\",\"234\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"235\":\"wilde_scroll_frame_drops_per_minute\",\"236\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"237\":\"video:encoding:iphone_live_playback_mos_loss\",\"238\":\"video:encoding:iphone_live_playback_mos_loss\",\"239\":\"sbl_iphone_is_live__psr_1_start\",\"240\":\"sbl_iphone_is_live__psr_1_start\",\"241\":\"video:encoding:iphone_live_playback_mos_loss\",\"242\":\"video:sbl_iphone_is_live__smtbr\",\"243\":\"wilde_scroll_frame_drops_per_minute\",\"244\":\"is_live_watch_time_given_iphone\",\"245\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"246\":\"video:encoding:iphone_live_playback_mos_loss\",\"247\":\"sbl_iphone_is_live__psr_1_start\",\"248\":\"video:encoding:iphone_live_playback_mos_loss\",\"249\":\"video:sbl_iphone_is_live__smtbr\",\"250\":\"video:sbl_iphone_is_live__smtbr\",\"251\":\"video:encoding:iphone_live_playback_mos_loss\",\"252\":\"wilde_scroll_frame_drops_per_minute\",\"253\":\"is_live_watch_time_given_iphone\",\"254\":\"is_live_watch_time_given_iphone\",\"255\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"256\":\"sbl_iphone_is_live__psr_1_start\",\"257\":\"video:sbl_iphone_is_live__smtbr\",\"258\":\"video:sbl_iphone_is_live__smtbr\",\"259\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"260\":\"wilde_scroll_frame_drops_per_minute\",\"261\":\"video:encoding:iphone_live_playback_mos_loss\",\"262\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"263\":\"sbl_iphone_is_live__psr_1_start\",\"264\":\"video:sbl_iphone_is_live__smtbr\",\"265\":\"wilde_scroll_frame_drops_per_minute\",\"266\":\"is_live_watch_time_given_iphone\",\"267\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"268\":\"is_live_watch_time_given_iphone\",\"269\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"270\":\"sbl_iphone_is_live__psr_1_start\",\"271\":\"video:encoding:iphone_live_playback_mos_loss\",\"272\":\"sbl_iphone_is_live__psr_1_start\",\"273\":\"video:sbl_iphone_is_live__smtbr\",\"274\":\"wilde_scroll_frame_drops_per_minute\",\"275\":\"wilde_scroll_frame_drops_per_minute\",\"276\":\"is_live_watch_time_given_iphone\",\"277\":\"is_live_watch_time_given_iphone\",\"278\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"279\":\"wilde_scroll_frame_drops_per_minute\",\"280\":\"sbl_iphone_is_live__psr_1_start\",\"281\":\"sbl_iphone_is_live__psr_1_start\",\"282\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"283\":\"video:encoding:iphone_live_playback_mos_loss\",\"284\":\"video:sbl_iphone_is_live__smtbr\",\"285\":\"video:sbl_iphone_is_live__smtbr\",\"286\":\"wilde_scroll_frame_drops_per_minute\",\"287\":\"is_live_watch_time_given_iphone\",\"288\":\"is_live_watch_time_given_iphone\",\"289\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"290\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"291\":\"sbl_iphone_is_live__psr_1_start\",\"292\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"293\":\"video:encoding:iphone_live_playback_mos_loss\",\"294\":\"video:sbl_iphone_is_live__smtbr\",\"295\":\"wilde_scroll_frame_drops_per_minute\",\"296\":\"sbl_iphone_is_live__psr_1_start\",\"297\":\"video:encoding:iphone_live_playback_mos_loss\",\"298\":\"sbl_iphone_is_live__psr_1_start\",\"299\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"300\":\"video:sbl_iphone_is_live__smtbr\",\"301\":\"sbl_iphone_is_live__psr_1_start\",\"302\":\"video:sbl_iphone_is_live__smtbr\",\"303\":\"wilde_scroll_frame_drops_per_minute\",\"304\":\"is_live_watch_time_given_iphone\",\"305\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"306\":\"sbl_iphone_is_live__psr_1_start\",\"307\":\"sbl_iphone_is_live__psr_1_start\",\"308\":\"video:encoding:iphone_live_playback_mos_loss\",\"309\":\"video:sbl_iphone_is_live__smtbr\",\"310\":\"video:encoding:iphone_live_playback_mos_loss\",\"311\":\"sbl_iphone_is_live__psr_1_start\",\"312\":\"video:encoding:iphone_live_playback_mos_loss\",\"313\":\"video:encoding:iphone_live_playback_mos_loss\",\"314\":\"wilde_scroll_frame_drops_per_minute\",\"315\":\"is_live_watch_time_given_iphone\",\"316\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"317\":\"wilde_scroll_frame_drops_per_minute\",\"318\":\"sbl_iphone_is_live__psr_1_start\",\"319\":\"video:encoding:iphone_live_playback_mos_loss\",\"320\":\"video:sbl_iphone_is_live__smtbr\",\"321\":\"wilde_scroll_frame_drops_per_minute\",\"322\":\"video:encoding:iphone_live_playback_mos_loss\",\"323\":\"video:sbl_iphone_is_live__smtbr\",\"324\":\"video:sbl_iphone_is_live__smtbr\",\"325\":\"wilde_scroll_frame_drops_per_minute\",\"326\":\"is_live_watch_time_given_iphone\",\"327\":\"is_live_watch_time_given_iphone\",\"328\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"329\":\"sbl_iphone_is_live__psr_1_start\",\"330\":\"video:encoding:iphone_live_playback_mos_loss\",\"331\":\"is_live_watch_time_given_iphone\",\"332\":\"is_live_watch_time_given_iphone\",\"333\":\"sbl_iphone_is_live__psr_1_start\",\"334\":\"wilde_scroll_frame_drops_per_minute\",\"335\":\"video:sbl_iphone_is_live__smtbr\",\"336\":\"video:encoding:iphone_live_playback_mos_loss\",\"337\":\"video:sbl_iphone_is_live__smtbr\",\"338\":\"wilde_scroll_frame_drops_per_minute\",\"339\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"340\":\"is_live_watch_time_given_iphone\",\"341\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"342\":\"sbl_iphone_is_live__psr_1_start\",\"343\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"344\":\"video:encoding:iphone_live_playback_mos_loss\",\"345\":\"video:sbl_iphone_is_live__smtbr\",\"346\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"347\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"348\":\"wilde_scroll_frame_drops_per_minute\",\"349\":\"video:encoding:iphone_live_playback_mos_loss\",\"350\":\"is_live_watch_time_given_iphone\",\"351\":\"is_live_watch_time_given_iphone\",\"352\":\"wilde_scroll_frame_drops_per_minute\",\"353\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"354\":\"sbl_iphone_is_live__psr_1_start\",\"355\":\"wilde_scroll_frame_drops_per_minute\",\"356\":\"video:encoding:iphone_live_playback_mos_loss\",\"357\":\"sbl_iphone_is_live__psr_1_start\",\"358\":\"video:sbl_iphone_is_live__smtbr\",\"359\":\"wilde_scroll_frame_drops_per_minute\",\"360\":\"is_live_watch_time_given_iphone\",\"361\":\"sbl_iphone_is_live__psr_1_start\",\"362\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"363\":\"sbl_iphone_is_live__psr_1_start\",\"364\":\"video:encoding:iphone_live_playback_mos_loss\",\"365\":\"sbl_iphone_is_live__psr_1_start\",\"366\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"367\":\"video:sbl_iphone_is_live__smtbr\",\"368\":\"video:encoding:iphone_live_playback_mos_loss\",\"369\":\"wilde_scroll_frame_drops_per_minute\",\"370\":\"sbl_iphone_is_live__psr_1_start\",\"371\":\"video:encoding:iphone_live_playback_mos_loss\",\"372\":\"video:sbl_iphone_is_live__smtbr\",\"373\":\"wilde_scroll_frame_drops_per_minute\",\"374\":\"is_live_watch_time_given_iphone\",\"375\":\"video:encoding:iphone_live_playback_mos_loss\",\"376\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"377\":\"sbl_iphone_is_live__psr_1_start\",\"378\":\"video:encoding:iphone_live_playback_mos_loss\",\"379\":\"video:sbl_iphone_is_live__smtbr\",\"380\":\"wilde_scroll_frame_drops_per_minute\",\"381\":\"sbl_iphone_is_live__psr_1_start\",\"382\":\"video:encoding:iphone_live_playback_mos_loss\",\"383\":\"video:sbl_iphone_is_live__smtbr\",\"384\":\"is_live_watch_time_given_iphone\",\"385\":\"wilde_scroll_frame_drops_per_minute\",\"386\":\"is_live_watch_time_given_iphone\",\"387\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"388\":\"sbl_iphone_is_live__psr_1_start\",\"389\":\"video:sbl_iphone_is_live__smtbr\"},\"n\":{\"0\":1481983,\"1\":1481983,\"2\":1478873,\"3\":1480310,\"4\":1480218,\"5\":1479019,\"6\":1480310,\"7\":1480310,\"8\":1478983,\"9\":1480576,\"10\":1480576,\"11\":1480524,\"12\":1480576,\"13\":1479939,\"14\":1480576,\"15\":1480576,\"16\":1479981,\"17\":1469191,\"18\":1479939,\"19\":1479019,\"20\":1480576,\"21\":1478905,\"22\":1478905,\"23\":1478905,\"24\":1480190,\"25\":1478905,\"26\":1478983,\"27\":1478905,\"28\":1480524,\"29\":1469191,\"30\":1478905,\"31\":1481988,\"32\":1479513,\"33\":1480512,\"34\":1481988,\"35\":1467130,\"36\":1481988,\"37\":1481988,\"38\":1481988,\"39\":1481988,\"40\":1481427,\"41\":1469191,\"42\":1481427,\"43\":1478983,\"44\":1480524,\"45\":1480359,\"46\":1480190,\"47\":1479119,\"48\":1481427,\"49\":1478787,\"50\":1481427,\"51\":1481427,\"52\":1481427,\"53\":1469191,\"54\":1481677,\"55\":1481677,\"56\":1481677,\"57\":1480190,\"58\":1481677,\"59\":1481677,\"60\":1479119,\"61\":1481677,\"62\":1480524,\"63\":1478787,\"64\":1481096,\"65\":1480585,\"66\":1480349,\"67\":1480349,\"68\":1478570,\"69\":1480349,\"70\":1480349,\"71\":1480349,\"72\":1480349,\"73\":1481018,\"74\":1479833,\"75\":1479833,\"76\":1479833,\"77\":1469062,\"78\":1478787,\"79\":1480585,\"80\":1481096,\"81\":1478787,\"82\":1481096,\"83\":1478787,\"84\":1478787,\"85\":1482047,\"86\":1479119,\"87\":1482047,\"88\":1478135,\"89\":1469062,\"90\":1478983,\"91\":1482047,\"92\":1482047,\"93\":1482047,\"94\":1479833,\"95\":1482047,\"96\":1479802,\"97\":1479802,\"98\":1481096,\"99\":1479119,\"100\":1479802,\"101\":1479619,\"102\":1469062,\"103\":1479802,\"104\":1479802,\"105\":1478135,\"106\":1479802,\"107\":1481331,\"108\":1479833,\"109\":1481331,\"110\":1481331,\"111\":1481331,\"112\":1467130,\"113\":1480190,\"114\":1478135,\"115\":1469062,\"116\":1481331,\"117\":1481331,\"118\":1481018,\"119\":1479458,\"120\":1479458,\"121\":1478135,\"122\":1479458,\"123\":1478570,\"124\":1480190,\"125\":1479458,\"126\":1479458,\"127\":1478584,\"128\":1479119,\"129\":1479458,\"130\":1480308,\"131\":1480308,\"132\":1480308,\"133\":1480308,\"134\":1481018,\"135\":1480190,\"136\":1480308,\"137\":1478135,\"138\":1478570,\"139\":1480973,\"140\":1469062,\"141\":1480308,\"142\":1479119,\"143\":1482037,\"144\":1482037,\"145\":1482037,\"146\":1481018,\"147\":1482037,\"148\":1482037,\"149\":1482037,\"150\":1481302,\"151\":1481302,\"152\":1469062,\"153\":1481018,\"154\":1478570,\"155\":1481695,\"156\":1479513,\"157\":1467130,\"158\":1481302,\"159\":1481302,\"160\":1481302,\"161\":1481302,\"162\":1480359,\"163\":1480359,\"164\":1480218,\"165\":1480359,\"166\":1480359,\"167\":1480359,\"168\":1481018,\"169\":1481695,\"170\":1479513,\"171\":1481695,\"172\":1479513,\"173\":1481695,\"174\":1481695,\"175\":1481695,\"176\":1480683,\"177\":1481983,\"178\":1478584,\"179\":1481018,\"180\":1477999,\"181\":1482892,\"182\":1482892,\"183\":1481018,\"184\":1482892,\"185\":1482892,\"186\":1482892,\"187\":1479513,\"188\":1468547,\"189\":1482892,\"190\":1481018,\"191\":1481848,\"192\":1481848,\"193\":1478584,\"194\":1481848,\"195\":1481848,\"196\":1479981,\"197\":1477999,\"198\":1481848,\"199\":1481848,\"200\":1478570,\"201\":1479939,\"202\":1480933,\"203\":1480933,\"204\":1478983,\"205\":1480933,\"206\":1480933,\"207\":1481983,\"208\":1480933,\"209\":1479981,\"210\":1480933,\"211\":1467843,\"212\":1480585,\"213\":1468547,\"214\":1467843,\"215\":1477999,\"216\":1467843,\"217\":1467843,\"218\":1467843,\"219\":1480218,\"220\":1467843,\"221\":1481096,\"222\":1479981,\"223\":1478873,\"224\":1481018,\"225\":1469031,\"226\":1468547,\"227\":1469031,\"228\":1469031,\"229\":1469031,\"230\":1469031,\"231\":1469031,\"232\":1477999,\"233\":1472260,\"234\":1472260,\"235\":1481018,\"236\":1480218,\"237\":1479981,\"238\":1468547,\"239\":1478584,\"240\":1472260,\"241\":1472260,\"242\":1472260,\"243\":1472260,\"244\":1480973,\"245\":1480973,\"246\":1481096,\"247\":1480973,\"248\":1480973,\"249\":1477999,\"250\":1468547,\"251\":1478584,\"252\":1468547,\"253\":1479619,\"254\":1480860,\"255\":1480860,\"256\":1480860,\"257\":1481172,\"258\":1476856,\"259\":1480585,\"260\":1480218,\"261\":1480860,\"262\":1480683,\"263\":1480218,\"264\":1480860,\"265\":1480860,\"266\":1479951,\"267\":1479619,\"268\":1481203,\"269\":1479951,\"270\":1479951,\"271\":1479951,\"272\":1480585,\"273\":1479951,\"274\":1479951,\"275\":1480973,\"276\":1481172,\"277\":1481569,\"278\":1481569,\"279\":1479981,\"280\":1480683,\"281\":1481569,\"282\":1478135,\"283\":1481569,\"284\":1481569,\"285\":1479939,\"286\":1481569,\"287\":1467130,\"288\":11825590,\"289\":11825590,\"290\":1481203,\"291\":11825590,\"292\":1481172,\"293\":11825590,\"294\":11825590,\"295\":11825590,\"296\":1479619,\"297\":1480683,\"298\":1479513,\"299\":1467130,\"300\":1481983,\"301\":1481203,\"302\":1480683,\"303\":1480683,\"304\":1479726,\"305\":1479726,\"306\":1479726,\"307\":1481172,\"308\":1479726,\"309\":1479726,\"310\":1479619,\"311\":1467130,\"312\":1481203,\"313\":1480585,\"314\":1479726,\"315\":1478014,\"316\":1478014,\"317\":1481983,\"318\":1478014,\"319\":1478014,\"320\":1478014,\"321\":1478014,\"322\":1481172,\"323\":1481203,\"324\":1481018,\"325\":1481203,\"326\":1479019,\"327\":1478485,\"328\":1478485,\"329\":1479939,\"330\":1479833,\"331\":1469191,\"332\":1480512,\"333\":1478485,\"334\":1481172,\"335\":1479619,\"336\":1478485,\"337\":1478485,\"338\":1478485,\"339\":1479019,\"340\":1479278,\"341\":1479278,\"342\":1479278,\"343\":1469191,\"344\":1479278,\"345\":1479278,\"346\":1478873,\"347\":1480512,\"348\":1479278,\"349\":1479939,\"350\":1478481,\"351\":1480561,\"352\":1478570,\"353\":1480561,\"354\":1480561,\"355\":1480524,\"356\":1480561,\"357\":1478873,\"358\":1480561,\"359\":1480561,\"360\":1476856,\"361\":1480512,\"362\":1476856,\"363\":1476856,\"364\":1476856,\"365\":1479019,\"366\":1478481,\"367\":1478584,\"368\":1478873,\"369\":1476856,\"370\":1478481,\"371\":1478481,\"372\":1478481,\"373\":1478481,\"374\":1477265,\"375\":1480512,\"376\":1477265,\"377\":1478983,\"378\":1479019,\"379\":1478873,\"380\":1477999,\"381\":1477265,\"382\":1477265,\"383\":1477265,\"384\":1480524,\"385\":1477265,\"386\":1480310,\"387\":1480310,\"388\":1480310,\"389\":1480512},\"random_split\":{\"0\":-1,\"1\":-1,\"2\":-1,\"3\":-1,\"4\":-1,\"5\":-1,\"6\":-1,\"7\":-1,\"8\":-1,\"9\":-1,\"10\":-1,\"11\":-1,\"12\":-1,\"13\":-1,\"14\":-1,\"15\":-1,\"16\":-1,\"17\":-1,\"18\":-1,\"19\":-1,\"20\":-1,\"21\":-1,\"22\":-1,\"23\":-1,\"24\":-1,\"25\":-1,\"26\":-1,\"27\":-1,\"28\":-1,\"29\":-1,\"30\":-1,\"31\":-1,\"32\":-1,\"33\":-1,\"34\":-1,\"35\":-1,\"36\":-1,\"37\":-1,\"38\":-1,\"39\":-1,\"40\":-1,\"41\":-1,\"42\":-1,\"43\":-1,\"44\":-1,\"45\":-1,\"46\":-1,\"47\":-1,\"48\":-1,\"49\":-1,\"50\":-1,\"51\":-1,\"52\":-1,\"53\":-1,\"54\":-1,\"55\":-1,\"56\":-1,\"57\":-1,\"58\":-1,\"59\":-1,\"60\":-1,\"61\":-1,\"62\":-1,\"63\":-1,\"64\":-1,\"65\":-1,\"66\":-1,\"67\":-1,\"68\":-1,\"69\":-1,\"70\":-1,\"71\":-1,\"72\":-1,\"73\":-1,\"74\":-1,\"75\":-1,\"76\":-1,\"77\":-1,\"78\":-1,\"79\":-1,\"80\":-1,\"81\":-1,\"82\":-1,\"83\":-1,\"84\":-1,\"85\":-1,\"86\":-1,\"87\":-1,\"88\":-1,\"89\":-1,\"90\":-1,\"91\":-1,\"92\":-1,\"93\":-1,\"94\":-1,\"95\":-1,\"96\":-1,\"97\":-1,\"98\":-1,\"99\":-1,\"100\":-1,\"101\":-1,\"102\":-1,\"103\":-1,\"104\":-1,\"105\":-1,\"106\":-1,\"107\":-1,\"108\":-1,\"109\":-1,\"110\":-1,\"111\":-1,\"112\":-1,\"113\":-1,\"114\":-1,\"115\":-1,\"116\":-1,\"117\":-1,\"118\":-1,\"119\":-1,\"120\":-1,\"121\":-1,\"122\":-1,\"123\":-1,\"124\":-1,\"125\":-1,\"126\":-1,\"127\":-1,\"128\":-1,\"129\":-1,\"130\":-1,\"131\":-1,\"132\":-1,\"133\":-1,\"134\":-1,\"135\":-1,\"136\":-1,\"137\":-1,\"138\":-1,\"139\":-1,\"140\":-1,\"141\":-1,\"142\":-1,\"143\":-1,\"144\":-1,\"145\":-1,\"146\":-1,\"147\":-1,\"148\":-1,\"149\":-1,\"150\":-1,\"151\":-1,\"152\":-1,\"153\":-1,\"154\":-1,\"155\":-1,\"156\":-1,\"157\":-1,\"158\":-1,\"159\":-1,\"160\":-1,\"161\":-1,\"162\":-1,\"163\":-1,\"164\":-1,\"165\":-1,\"166\":-1,\"167\":-1,\"168\":-1,\"169\":-1,\"170\":-1,\"171\":-1,\"172\":-1,\"173\":-1,\"174\":-1,\"175\":-1,\"176\":-1,\"177\":-1,\"178\":-1,\"179\":-1,\"180\":-1,\"181\":-1,\"182\":-1,\"183\":-1,\"184\":-1,\"185\":-1,\"186\":-1,\"187\":-1,\"188\":-1,\"189\":-1,\"190\":-1,\"191\":-1,\"192\":-1,\"193\":-1,\"194\":-1,\"195\":-1,\"196\":-1,\"197\":-1,\"198\":-1,\"199\":-1,\"200\":-1,\"201\":-1,\"202\":-1,\"203\":-1,\"204\":-1,\"205\":-1,\"206\":-1,\"207\":-1,\"208\":-1,\"209\":-1,\"210\":-1,\"211\":-1,\"212\":-1,\"213\":-1,\"214\":-1,\"215\":-1,\"216\":-1,\"217\":-1,\"218\":-1,\"219\":-1,\"220\":-1,\"221\":-1,\"222\":-1,\"223\":-1,\"224\":-1,\"225\":-1,\"226\":-1,\"227\":-1,\"228\":-1,\"229\":-1,\"230\":-1,\"231\":-1,\"232\":-1,\"233\":-1,\"234\":-1,\"235\":-1,\"236\":-1,\"237\":-1,\"238\":-1,\"239\":-1,\"240\":-1,\"241\":-1,\"242\":-1,\"243\":-1,\"244\":-1,\"245\":-1,\"246\":-1,\"247\":-1,\"248\":-1,\"249\":-1,\"250\":-1,\"251\":-1,\"252\":-1,\"253\":-1,\"254\":-1,\"255\":-1,\"256\":-1,\"257\":-1,\"258\":-1,\"259\":-1,\"260\":-1,\"261\":-1,\"262\":-1,\"263\":-1,\"264\":-1,\"265\":-1,\"266\":-1,\"267\":-1,\"268\":-1,\"269\":-1,\"270\":-1,\"271\":-1,\"272\":-1,\"273\":-1,\"274\":-1,\"275\":-1,\"276\":-1,\"277\":-1,\"278\":-1,\"279\":-1,\"280\":-1,\"281\":-1,\"282\":-1,\"283\":-1,\"284\":-1,\"285\":-1,\"286\":-1,\"287\":-1,\"288\":-1,\"289\":-1,\"290\":-1,\"291\":-1,\"292\":-1,\"293\":-1,\"294\":-1,\"295\":-1,\"296\":-1,\"297\":-1,\"298\":-1,\"299\":-1,\"300\":-1,\"301\":-1,\"302\":-1,\"303\":-1,\"304\":-1,\"305\":-1,\"306\":-1,\"307\":-1,\"308\":-1,\"309\":-1,\"310\":-1,\"311\":-1,\"312\":-1,\"313\":-1,\"314\":-1,\"315\":-1,\"316\":-1,\"317\":-1,\"318\":-1,\"319\":-1,\"320\":-1,\"321\":-1,\"322\":-1,\"323\":-1,\"324\":-1,\"325\":-1,\"326\":-1,\"327\":-1,\"328\":-1,\"329\":-1,\"330\":-1,\"331\":-1,\"332\":-1,\"333\":-1,\"334\":-1,\"335\":-1,\"336\":-1,\"337\":-1,\"338\":-1,\"339\":-1,\"340\":-1,\"341\":-1,\"342\":-1,\"343\":-1,\"344\":-1,\"345\":-1,\"346\":-1,\"347\":-1,\"348\":-1,\"349\":-1,\"350\":-1,\"351\":-1,\"352\":-1,\"353\":-1,\"354\":-1,\"355\":-1,\"356\":-1,\"357\":-1,\"358\":-1,\"359\":-1,\"360\":-1,\"361\":-1,\"362\":-1,\"363\":-1,\"364\":-1,\"365\":-1,\"366\":-1,\"367\":-1,\"368\":-1,\"369\":-1,\"370\":-1,\"371\":-1,\"372\":-1,\"373\":-1,\"374\":-1,\"375\":-1,\"376\":-1,\"377\":-1,\"378\":-1,\"379\":-1,\"380\":-1,\"381\":-1,\"382\":-1,\"383\":-1,\"384\":-1,\"385\":-1,\"386\":-1,\"387\":-1,\"388\":-1,\"389\":-1},\"sem\":{\"0\":0.6438783831,\"1\":0.001015792,\"2\":283.7723847434,\"3\":0.0809140685,\"4\":0.0811411149,\"5\":3.0642047952,\"6\":3.1059965213,\"7\":282.8720052837,\"8\":0.0797522203,\"9\":0.6496813829,\"10\":0.0009119192,\"11\":0.0009581442,\"12\":0.0003098182,\"13\":0.6447858935,\"14\":0.0788658132,\"15\":2.7428774802,\"16\":3.1856317874,\"17\":0.0002911616,\"18\":286.3947623372,\"19\":283.1680736661,\"20\":281.2743734519,\"21\":0.6479318224,\"22\":0.0009527888,\"23\":0.0002907722,\"24\":0.648257544,\"25\":0.0813509598,\"26\":2.960039117,\"27\":3.3887646921,\"28\":0.0003184253,\"29\":0.0928064209,\"30\":286.6654931808,\"31\":0.6369141637,\"32\":0.080884216,\"33\":277.8300120803,\"34\":0.0009508788,\"35\":3.3648583992,\"36\":0.0002908116,\"37\":0.0839173129,\"38\":3.4043069237,\"39\":277.0711970686,\"40\":0.6399438419,\"41\":3.4722073554,\"42\":0.0009804697,\"43\":288.3566750293,\"44\":0.0822475278,\"45\":282.2402798037,\"46\":0.0009788168,\"47\":0.64261778,\"48\":0.0003015461,\"49\":0.6480361782,\"50\":0.0809169857,\"51\":3.2014458683,\"52\":278.4346008441,\"53\":286.0972144661,\"54\":0.6549631657,\"55\":0.0009499623,\"56\":0.0002913484,\"57\":0.0002974362,\"58\":0.0794328098,\"59\":3.2776977894,\"60\":0.0008761412,\"61\":284.6174148954,\"62\":3.2845471921,\"63\":0.0009751249,\"64\":0.6504554673,\"65\":0.6465844814,\"66\":0.6448982132,\"67\":0.0008910786,\"68\":0.0806785916,\"69\":0.0002846951,\"70\":0.0817873792,\"71\":3.300185453,\"72\":283.2024860454,\"73\":276.5419182419,\"74\":0.6380372589,\"75\":0.0009608829,\"76\":0.0003044162,\"77\":0.6512173951,\"78\":0.0003015343,\"79\":3.2666004137,\"80\":0.0009821866,\"81\":0.078364983,\"82\":3.3693976309,\"83\":3.0574206814,\"84\":286.2965815835,\"85\":0.6447556567,\"86\":0.000288794,\"87\":0.0009617512,\"88\":0.0002933589,\"89\":0.0010182739,\"90\":0.00094054,\"91\":0.0002983727,\"92\":0.0819031598,\"93\":3.115313898,\"94\":3.2699763775,\"95\":285.9775844343,\"96\":0.6428251902,\"97\":0.0009476372,\"98\":279.1069509759,\"99\":0.081922531,\"100\":0.0003056654,\"101\":286.6083751636,\"102\":0.0003044537,\"103\":0.0799137947,\"104\":3.162627227,\"105\":0.0797707668,\"106\":280.6193946417,\"107\":0.6478216724,\"108\":282.0939719039,\"109\":0.00102258,\"110\":0.0002868228,\"111\":0.0887555675,\"112\":0.0827505804,\"113\":0.079642608,\"114\":0.6481445772,\"115\":0.0798213142,\"116\":3.421934122,\"117\":279.5055938477,\"118\":0.6555349423,\"119\":0.6522903708,\"120\":0.0009474935,\"121\":3.2794823102,\"122\":0.0003004482,\"123\":0.6395857527,\"124\":3.2007952522,\"125\":0.080191765,\"126\":3.1660465211,\"127\":285.6793437753,\"128\":3.2542402464,\"129\":287.2208939197,\"130\":0.6454789531,\"131\":0.0009441544,\"132\":0.0003251488,\"133\":0.0805126392,\"134\":0.0009786051,\"135\":281.2317327287,\"136\":3.0582145471,\"137\":283.7932343887,\"138\":0.0009272728,\"139\":3.1827660245,\"140\":2.9105989278,\"141\":283.053191502,\"142\":282.3119166468,\"143\":0.6473938384,\"144\":0.0009719258,\"145\":0.0003142524,\"146\":0.6501908763,\"147\":0.0849416926,\"148\":3.1969989571,\"149\":286.5599255105,\"150\":0.6405644596,\"151\":0.0009428143,\"152\":280.2901002757,\"153\":0.0003138512,\"154\":0.0003172899,\"155\":0.6513139382,\"156\":0.6506230846,\"157\":278.5189104104,\"158\":0.0003051889,\"159\":0.0792286791,\"160\":3.1052026703,\"161\":277.9431899637,\"162\":0.6382085604,\"163\":0.0009554495,\"164\":3.0549719441,\"165\":0.0003014566,\"166\":0.0826723617,\"167\":3.2378828313,\"168\":0.0009538101,\"169\":0.00093561,\"170\":0.0009260865,\"171\":0.0002882185,\"172\":3.2191689492,\"173\":0.0805274051,\"174\":3.1912893944,\"175\":282.9706434302,\"176\":0.6483727137,\"177\":0.0798427722,\"178\":0.6526885478,\"179\":0.0003074522,\"180\":0.6470059999,\"181\":0.6446593929,\"182\":0.0009649972,\"183\":0.0824241367,\"184\":0.0003063617,\"185\":0.0796455216,\"186\":3.1060971969,\"187\":282.2633428389,\"188\":0.651775473,\"189\":278.6398068411,\"190\":0.0795283044,\"191\":0.6481339031,\"192\":0.0009329096,\"193\":0.0009020105,\"194\":0.0002895019,\"195\":0.0810703243,\"196\":0.6471987737,\"197\":0.0009265818,\"198\":3.185534023,\"199\":284.20541277,\"200\":3.2403354798,\"201\":0.0010055147,\"202\":0.6399200991,\"203\":0.0009216595,\"204\":0.6462932217,\"205\":0.0003130787,\"206\":0.0826486767,\"207\":0.0003133031,\"208\":3.2584805342,\"209\":0.0010111513,\"210\":290.9337475105,\"211\":0.6457742969,\"212\":282.0143063207,\"213\":0.0009713749,\"214\":0.000951051,\"215\":0.000295251,\"216\":0.0003176392,\"217\":0.0791318708,\"218\":3.0197626234,\"219\":0.6498362462,\"220\":287.138095392,\"221\":0.0002889531,\"222\":0.0003109648,\"223\":0.6467427093,\"224\":2.8488151095,\"225\":0.6564496166,\"226\":0.0003075024,\"227\":0.0008621576,\"228\":0.0002976949,\"229\":0.0812672394,\"230\":3.2484257029,\"231\":287.6922388307,\"232\":0.0807687757,\"233\":0.6456571635,\"234\":0.000908541,\"235\":280.0213278868,\"236\":0.0009563586,\"237\":0.0800357054,\"238\":0.0801967677,\"239\":0.0002878186,\"240\":0.0002862892,\"241\":0.0821513165,\"242\":3.3144326642,\"243\":283.1844435894,\"244\":0.6452097675,\"245\":0.0009326306,\"246\":0.0812237913,\"247\":0.0003227272,\"248\":0.0799957173,\"249\":3.1689279219,\"250\":2.9764309392,\"251\":0.0802257419,\"252\":282.9674655793,\"253\":0.6528350015,\"254\":0.6493101072,\"255\":0.0009406834,\"256\":0.0003106276,\"257\":3.0223129529,\"258\":3.0563413868,\"259\":0.0009134171,\"260\":272.4768897764,\"261\":0.0806877559,\"262\":0.0009484769,\"263\":0.000307409,\"264\":3.1349595067,\"265\":286.3012845933,\"266\":0.6514522829,\"267\":0.0009698096,\"268\":0.6420484326,\"269\":0.0009285631,\"270\":0.0003020993,\"271\":0.0801177728,\"272\":0.000335402,\"273\":3.1930796575,\"274\":273.9303739105,\"275\":281.3138986826,\"276\":0.6485957151,\"277\":0.6480295742,\"278\":0.0009595581,\"279\":285.7058130547,\"280\":0.0002974581,\"281\":0.0003003918,\"282\":0.0009414722,\"283\":0.0803990426,\"284\":3.0163311113,\"285\":2.9553845083,\"286\":282.6912397022,\"287\":0.6526255067,\"288\":0.2288291887,\"289\":0.0003385095,\"290\":0.0009686052,\"291\":0.0001070233,\"292\":0.0009005592,\"293\":0.0285642775,\"294\":1.1501723589,\"295\":99.9722676035,\"296\":0.0003274158,\"297\":0.0799998335,\"298\":0.0003164621,\"299\":0.0009698473,\"300\":2.7995591693,\"301\":0.0003135666,\"302\":3.2319682231,\"303\":285.746698147,\"304\":0.6393158965,\"305\":0.001003137,\"306\":0.0003076867,\"307\":0.0003029876,\"308\":0.07911946,\"309\":3.1004932527,\"310\":0.0797741084,\"311\":0.0002955348,\"312\":0.0804520976,\"313\":0.0821882124,\"314\":280.544097273,\"315\":0.6344001155,\"316\":0.0009306528,\"317\":287.0395690212,\"318\":0.0003101611,\"319\":0.0841571171,\"320\":3.3568274275,\"321\":282.6519114376,\"322\":0.0810040297,\"323\":3.1731804451,\"324\":3.1348533146,\"325\":279.3436652447,\"326\":0.6390040261,\"327\":0.6595613981,\"328\":0.00096414,\"329\":0.0003236822,\"330\":0.0862643523,\"331\":0.6459219559,\"332\":0.6541037887,\"333\":0.0002988969,\"334\":285.586505789,\"335\":3.1562903205,\"336\":0.0801927661,\"337\":3.2777099724,\"338\":283.5107544467,\"339\":0.0009273122,\"340\":0.6467182059,\"341\":0.000946802,\"342\":0.0002935751,\"343\":0.0010114845,\"344\":0.0814928069,\"345\":3.2420798692,\"346\":0.0009292695,\"347\":0.0009409106,\"348\":283.8023615777,\"349\":0.0798661205,\"350\":0.6474421068,\"351\":0.6498041005,\"352\":287.9895609153,\"353\":0.0009209951,\"354\":0.0002902185,\"355\":282.141818891,\"356\":0.081458047,\"357\":0.0003004984,\"358\":3.3095076055,\"359\":281.5563591185,\"360\":0.6490310218,\"361\":0.0003006316,\"362\":0.0009742308,\"363\":0.0003024574,\"364\":0.0791228977,\"365\":0.0002959996,\"366\":0.0009841313,\"367\":3.2438667924,\"368\":0.0808244668,\"369\":277.7351410664,\"370\":0.0002919429,\"371\":0.0862718544,\"372\":3.3148940661,\"373\":282.8312098524,\"374\":0.6533251689,\"375\":0.0792092374,\"376\":0.0009755337,\"377\":0.0002954293,\"378\":0.0821675973,\"379\":3.2167787791,\"380\":282.5393171893,\"381\":0.0003057554,\"382\":0.0813591895,\"383\":3.2199858614,\"384\":0.649326425,\"385\":289.9387108706,\"386\":0.6486911575,\"387\":0.0009102592,\"388\":0.000303618,\"389\":3.0483049574},\"start_time\":{\"0\":1553817600000,\"1\":1553817600000,\"2\":1553817600000,\"3\":1553817600000,\"4\":1553817600000,\"5\":1553817600000,\"6\":1553817600000,\"7\":1553817600000,\"8\":1553817600000,\"9\":1553817600000,\"10\":1553817600000,\"11\":1553817600000,\"12\":1553817600000,\"13\":1553817600000,\"14\":1553817600000,\"15\":1553817600000,\"16\":1553817600000,\"17\":1553817600000,\"18\":1553817600000,\"19\":1553817600000,\"20\":1553817600000,\"21\":1553817600000,\"22\":1553817600000,\"23\":1553817600000,\"24\":1553817600000,\"25\":1553817600000,\"26\":1553817600000,\"27\":1553817600000,\"28\":1553817600000,\"29\":1553817600000,\"30\":1553817600000,\"31\":1553817600000,\"32\":1553817600000,\"33\":1553817600000,\"34\":1553817600000,\"35\":1553817600000,\"36\":1553817600000,\"37\":1553817600000,\"38\":1553817600000,\"39\":1553817600000,\"40\":1553817600000,\"41\":1553817600000,\"42\":1553817600000,\"43\":1553817600000,\"44\":1553817600000,\"45\":1553817600000,\"46\":1553817600000,\"47\":1553817600000,\"48\":1553817600000,\"49\":1553817600000,\"50\":1553817600000,\"51\":1553817600000,\"52\":1553817600000,\"53\":1553817600000,\"54\":1553817600000,\"55\":1553817600000,\"56\":1553817600000,\"57\":1553817600000,\"58\":1553817600000,\"59\":1553817600000,\"60\":1553817600000,\"61\":1553817600000,\"62\":1553817600000,\"63\":1553817600000,\"64\":1553817600000,\"65\":1553817600000,\"66\":1553817600000,\"67\":1553817600000,\"68\":1553817600000,\"69\":1553817600000,\"70\":1553817600000,\"71\":1553817600000,\"72\":1553817600000,\"73\":1553817600000,\"74\":1553817600000,\"75\":1553817600000,\"76\":1553817600000,\"77\":1553817600000,\"78\":1553817600000,\"79\":1553817600000,\"80\":1553817600000,\"81\":1553817600000,\"82\":1553817600000,\"83\":1553817600000,\"84\":1553817600000,\"85\":1553817600000,\"86\":1553817600000,\"87\":1553817600000,\"88\":1553817600000,\"89\":1553817600000,\"90\":1553817600000,\"91\":1553817600000,\"92\":1553817600000,\"93\":1553817600000,\"94\":1553817600000,\"95\":1553817600000,\"96\":1553817600000,\"97\":1553817600000,\"98\":1553817600000,\"99\":1553817600000,\"100\":1553817600000,\"101\":1553817600000,\"102\":1553817600000,\"103\":1553817600000,\"104\":1553817600000,\"105\":1553817600000,\"106\":1553817600000,\"107\":1553817600000,\"108\":1553817600000,\"109\":1553817600000,\"110\":1553817600000,\"111\":1553817600000,\"112\":1553817600000,\"113\":1553817600000,\"114\":1553817600000,\"115\":1553817600000,\"116\":1553817600000,\"117\":1553817600000,\"118\":1553817600000,\"119\":1553817600000,\"120\":1553817600000,\"121\":1553817600000,\"122\":1553817600000,\"123\":1553817600000,\"124\":1553817600000,\"125\":1553817600000,\"126\":1553817600000,\"127\":1553817600000,\"128\":1553817600000,\"129\":1553817600000,\"130\":1553817600000,\"131\":1553817600000,\"132\":1553817600000,\"133\":1553817600000,\"134\":1553817600000,\"135\":1553817600000,\"136\":1553817600000,\"137\":1553817600000,\"138\":1553817600000,\"139\":1553817600000,\"140\":1553817600000,\"141\":1553817600000,\"142\":1553817600000,\"143\":1553817600000,\"144\":1553817600000,\"145\":1553817600000,\"146\":1553817600000,\"147\":1553817600000,\"148\":1553817600000,\"149\":1553817600000,\"150\":1553817600000,\"151\":1553817600000,\"152\":1553817600000,\"153\":1553817600000,\"154\":1553817600000,\"155\":1553817600000,\"156\":1553817600000,\"157\":1553817600000,\"158\":1553817600000,\"159\":1553817600000,\"160\":1553817600000,\"161\":1553817600000,\"162\":1553817600000,\"163\":1553817600000,\"164\":1553817600000,\"165\":1553817600000,\"166\":1553817600000,\"167\":1553817600000,\"168\":1553817600000,\"169\":1553817600000,\"170\":1553817600000,\"171\":1553817600000,\"172\":1553817600000,\"173\":1553817600000,\"174\":1553817600000,\"175\":1553817600000,\"176\":1553817600000,\"177\":1553817600000,\"178\":1553817600000,\"179\":1553817600000,\"180\":1553817600000,\"181\":1553817600000,\"182\":1553817600000,\"183\":1553817600000,\"184\":1553817600000,\"185\":1553817600000,\"186\":1553817600000,\"187\":1553817600000,\"188\":1553817600000,\"189\":1553817600000,\"190\":1553817600000,\"191\":1553817600000,\"192\":1553817600000,\"193\":1553817600000,\"194\":1553817600000,\"195\":1553817600000,\"196\":1553817600000,\"197\":1553817600000,\"198\":1553817600000,\"199\":1553817600000,\"200\":1553817600000,\"201\":1553817600000,\"202\":1553817600000,\"203\":1553817600000,\"204\":1553817600000,\"205\":1553817600000,\"206\":1553817600000,\"207\":1553817600000,\"208\":1553817600000,\"209\":1553817600000,\"210\":1553817600000,\"211\":1553817600000,\"212\":1553817600000,\"213\":1553817600000,\"214\":1553817600000,\"215\":1553817600000,\"216\":1553817600000,\"217\":1553817600000,\"218\":1553817600000,\"219\":1553817600000,\"220\":1553817600000,\"221\":1553817600000,\"222\":1553817600000,\"223\":1553817600000,\"224\":1553817600000,\"225\":1553817600000,\"226\":1553817600000,\"227\":1553817600000,\"228\":1553817600000,\"229\":1553817600000,\"230\":1553817600000,\"231\":1553817600000,\"232\":1553817600000,\"233\":1553817600000,\"234\":1553817600000,\"235\":1553817600000,\"236\":1553817600000,\"237\":1553817600000,\"238\":1553817600000,\"239\":1553817600000,\"240\":1553817600000,\"241\":1553817600000,\"242\":1553817600000,\"243\":1553817600000,\"244\":1553817600000,\"245\":1553817600000,\"246\":1553817600000,\"247\":1553817600000,\"248\":1553817600000,\"249\":1553817600000,\"250\":1553817600000,\"251\":1553817600000,\"252\":1553817600000,\"253\":1553817600000,\"254\":1553817600000,\"255\":1553817600000,\"256\":1553817600000,\"257\":1553817600000,\"258\":1553817600000,\"259\":1553817600000,\"260\":1553817600000,\"261\":1553817600000,\"262\":1553817600000,\"263\":1553817600000,\"264\":1553817600000,\"265\":1553817600000,\"266\":1553817600000,\"267\":1553817600000,\"268\":1553817600000,\"269\":1553817600000,\"270\":1553817600000,\"271\":1553817600000,\"272\":1553817600000,\"273\":1553817600000,\"274\":1553817600000,\"275\":1553817600000,\"276\":1553817600000,\"277\":1553817600000,\"278\":1553817600000,\"279\":1553817600000,\"280\":1553817600000,\"281\":1553817600000,\"282\":1553817600000,\"283\":1553817600000,\"284\":1553817600000,\"285\":1553817600000,\"286\":1553817600000,\"287\":1553817600000,\"288\":1553817600000,\"289\":1553817600000,\"290\":1553817600000,\"291\":1553817600000,\"292\":1553817600000,\"293\":1553817600000,\"294\":1553817600000,\"295\":1553817600000,\"296\":1553817600000,\"297\":1553817600000,\"298\":1553817600000,\"299\":1553817600000,\"300\":1553817600000,\"301\":1553817600000,\"302\":1553817600000,\"303\":1553817600000,\"304\":1553817600000,\"305\":1553817600000,\"306\":1553817600000,\"307\":1553817600000,\"308\":1553817600000,\"309\":1553817600000,\"310\":1553817600000,\"311\":1553817600000,\"312\":1553817600000,\"313\":1553817600000,\"314\":1553817600000,\"315\":1553817600000,\"316\":1553817600000,\"317\":1553817600000,\"318\":1553817600000,\"319\":1553817600000,\"320\":1553817600000,\"321\":1553817600000,\"322\":1553817600000,\"323\":1553817600000,\"324\":1553817600000,\"325\":1553817600000,\"326\":1553817600000,\"327\":1553817600000,\"328\":1553817600000,\"329\":1553817600000,\"330\":1553817600000,\"331\":1553817600000,\"332\":1553817600000,\"333\":1553817600000,\"334\":1553817600000,\"335\":1553817600000,\"336\":1553817600000,\"337\":1553817600000,\"338\":1553817600000,\"339\":1553817600000,\"340\":1553817600000,\"341\":1553817600000,\"342\":1553817600000,\"343\":1553817600000,\"344\":1553817600000,\"345\":1553817600000,\"346\":1553817600000,\"347\":1553817600000,\"348\":1553817600000,\"349\":1553817600000,\"350\":1553817600000,\"351\":1553817600000,\"352\":1553817600000,\"353\":1553817600000,\"354\":1553817600000,\"355\":1553817600000,\"356\":1553817600000,\"357\":1553817600000,\"358\":1553817600000,\"359\":1553817600000,\"360\":1553817600000,\"361\":1553817600000,\"362\":1553817600000,\"363\":1553817600000,\"364\":1553817600000,\"365\":1553817600000,\"366\":1553817600000,\"367\":1553817600000,\"368\":1553817600000,\"369\":1553817600000,\"370\":1553817600000,\"371\":1553817600000,\"372\":1553817600000,\"373\":1553817600000,\"374\":1553817600000,\"375\":1553817600000,\"376\":1553817600000,\"377\":1553817600000,\"378\":1553817600000,\"379\":1553817600000,\"380\":1553817600000,\"381\":1553817600000,\"382\":1553817600000,\"383\":1553817600000,\"384\":1553817600000,\"385\":1553817600000,\"386\":1553817600000,\"387\":1553817600000,\"388\":1553817600000,\"389\":1553817600000}}"},"description":null}],[1556078905230,{"__type":"Data","df":{"__type":"DataFrame","value":"{\"arm_name\":{\"0\":\"0_0\",\"1\":\"0_0\",\"2\":\"0_17\",\"3\":\"0_30\",\"4\":\"0_27\",\"5\":\"0_51\",\"6\":\"0_30\",\"7\":\"0_30\",\"8\":\"0_10\",\"9\":\"0_31\",\"10\":\"0_31\",\"11\":\"0_24\",\"12\":\"0_31\",\"13\":\"0_1\",\"14\":\"0_31\",\"15\":\"0_31\",\"16\":\"0_5\",\"17\":\"0_61\",\"18\":\"0_1\",\"19\":\"0_51\",\"20\":\"0_31\",\"21\":\"0_32\",\"22\":\"0_32\",\"23\":\"0_32\",\"24\":\"0_18\",\"25\":\"0_32\",\"26\":\"0_10\",\"27\":\"0_32\",\"28\":\"0_24\",\"29\":\"0_61\",\"30\":\"0_32\",\"31\":\"0_33\",\"32\":\"0_26\",\"33\":\"0_40\",\"34\":\"0_33\",\"35\":\"0_60\",\"36\":\"0_33\",\"37\":\"0_33\",\"38\":\"0_33\",\"39\":\"0_33\",\"40\":\"0_34\",\"41\":\"0_61\",\"42\":\"0_34\",\"43\":\"0_10\",\"44\":\"0_24\",\"45\":\"0_49\",\"46\":\"0_18\",\"47\":\"0_52\",\"48\":\"0_34\",\"49\":\"0_41\",\"50\":\"0_34\",\"51\":\"0_34\",\"52\":\"0_34\",\"53\":\"0_61\",\"54\":\"0_35\",\"55\":\"0_35\",\"56\":\"0_35\",\"57\":\"0_18\",\"58\":\"0_35\",\"59\":\"0_35\",\"60\":\"0_52\",\"61\":\"0_35\",\"62\":\"0_24\",\"63\":\"0_41\",\"64\":\"0_11\",\"65\":\"0_50\",\"66\":\"0_36\",\"67\":\"0_36\",\"68\":\"0_38\",\"69\":\"0_36\",\"70\":\"0_36\",\"71\":\"0_36\",\"72\":\"0_36\",\"73\":\"0_12\",\"74\":\"0_37\",\"75\":\"0_37\",\"76\":\"0_37\",\"77\":\"0_62\",\"78\":\"0_41\",\"79\":\"0_50\",\"80\":\"0_11\",\"81\":\"0_41\",\"82\":\"0_11\",\"83\":\"0_41\",\"84\":\"0_41\",\"85\":\"0_42\",\"86\":\"0_52\",\"87\":\"0_42\",\"88\":\"0_25\",\"89\":\"0_62\",\"90\":\"0_10\",\"91\":\"0_42\",\"92\":\"0_42\",\"93\":\"0_42\",\"94\":\"0_37\",\"95\":\"0_42\",\"96\":\"0_43\",\"97\":\"0_43\",\"98\":\"0_11\",\"99\":\"0_52\",\"100\":\"0_43\",\"101\":\"0_4\",\"102\":\"0_62\",\"103\":\"0_43\",\"104\":\"0_43\",\"105\":\"0_25\",\"106\":\"0_43\",\"107\":\"0_44\",\"108\":\"0_37\",\"109\":\"0_44\",\"110\":\"0_44\",\"111\":\"0_44\",\"112\":\"0_60\",\"113\":\"0_18\",\"114\":\"0_25\",\"115\":\"0_62\",\"116\":\"0_44\",\"117\":\"0_44\",\"118\":\"0_12\",\"119\":\"0_45\",\"120\":\"0_45\",\"121\":\"0_25\",\"122\":\"0_45\",\"123\":\"0_38\",\"124\":\"0_18\",\"125\":\"0_45\",\"126\":\"0_45\",\"127\":\"0_39\",\"128\":\"0_52\",\"129\":\"0_45\",\"130\":\"0_46\",\"131\":\"0_46\",\"132\":\"0_46\",\"133\":\"0_46\",\"134\":\"0_12\",\"135\":\"0_18\",\"136\":\"0_46\",\"137\":\"0_25\",\"138\":\"0_38\",\"139\":\"0_6\",\"140\":\"0_62\",\"141\":\"0_46\",\"142\":\"0_52\",\"143\":\"0_47\",\"144\":\"0_47\",\"145\":\"0_47\",\"146\":\"0_19\",\"147\":\"0_47\",\"148\":\"0_47\",\"149\":\"0_47\",\"150\":\"0_48\",\"151\":\"0_48\",\"152\":\"0_62\",\"153\":\"0_12\",\"154\":\"0_38\",\"155\":\"0_53\",\"156\":\"0_26\",\"157\":\"0_60\",\"158\":\"0_48\",\"159\":\"0_48\",\"160\":\"0_48\",\"161\":\"0_48\",\"162\":\"0_49\",\"163\":\"0_49\",\"164\":\"0_27\",\"165\":\"0_49\",\"166\":\"0_49\",\"167\":\"0_49\",\"168\":\"0_19\",\"169\":\"0_53\",\"170\":\"0_26\",\"171\":\"0_53\",\"172\":\"0_26\",\"173\":\"0_53\",\"174\":\"0_53\",\"175\":\"0_53\",\"176\":\"0_14\",\"177\":\"0_0\",\"178\":\"0_39\",\"179\":\"0_19\",\"180\":\"0_13\",\"181\":\"0_54\",\"182\":\"0_54\",\"183\":\"0_12\",\"184\":\"0_54\",\"185\":\"0_54\",\"186\":\"0_54\",\"187\":\"0_26\",\"188\":\"0_63\",\"189\":\"0_54\",\"190\":\"0_19\",\"191\":\"0_55\",\"192\":\"0_55\",\"193\":\"0_39\",\"194\":\"0_55\",\"195\":\"0_55\",\"196\":\"0_5\",\"197\":\"0_13\",\"198\":\"0_55\",\"199\":\"0_55\",\"200\":\"0_38\",\"201\":\"0_1\",\"202\":\"0_56\",\"203\":\"0_56\",\"204\":\"0_10\",\"205\":\"0_56\",\"206\":\"0_56\",\"207\":\"0_0\",\"208\":\"0_56\",\"209\":\"0_5\",\"210\":\"0_56\",\"211\":\"0_57\",\"212\":\"0_50\",\"213\":\"0_63\",\"214\":\"0_57\",\"215\":\"0_13\",\"216\":\"0_57\",\"217\":\"0_57\",\"218\":\"0_57\",\"219\":\"0_27\",\"220\":\"0_57\",\"221\":\"0_11\",\"222\":\"0_5\",\"223\":\"0_17\",\"224\":\"0_19\",\"225\":\"0_58\",\"226\":\"0_63\",\"227\":\"0_58\",\"228\":\"0_58\",\"229\":\"0_58\",\"230\":\"0_58\",\"231\":\"0_58\",\"232\":\"0_13\",\"233\":\"0_59\",\"234\":\"0_59\",\"235\":\"0_19\",\"236\":\"0_27\",\"237\":\"0_5\",\"238\":\"0_63\",\"239\":\"0_39\",\"240\":\"0_59\",\"241\":\"0_59\",\"242\":\"0_59\",\"243\":\"0_59\",\"244\":\"0_6\",\"245\":\"0_6\",\"246\":\"0_11\",\"247\":\"0_6\",\"248\":\"0_6\",\"249\":\"0_13\",\"250\":\"0_63\",\"251\":\"0_39\",\"252\":\"0_63\",\"253\":\"0_4\",\"254\":\"0_7\",\"255\":\"0_7\",\"256\":\"0_7\",\"257\":\"0_28\",\"258\":\"0_23\",\"259\":\"0_50\",\"260\":\"0_27\",\"261\":\"0_7\",\"262\":\"0_14\",\"263\":\"0_27\",\"264\":\"0_7\",\"265\":\"0_7\",\"266\":\"0_8\",\"267\":\"0_4\",\"268\":\"0_2\",\"269\":\"0_8\",\"270\":\"0_8\",\"271\":\"0_8\",\"272\":\"0_50\",\"273\":\"0_8\",\"274\":\"0_8\",\"275\":\"0_6\",\"276\":\"0_28\",\"277\":\"0_9\",\"278\":\"0_9\",\"279\":\"0_5\",\"280\":\"0_14\",\"281\":\"0_9\",\"282\":\"0_25\",\"283\":\"0_9\",\"284\":\"0_9\",\"285\":\"0_1\",\"286\":\"0_9\",\"287\":\"0_60\",\"288\":\"status_quo\",\"289\":\"status_quo\",\"290\":\"0_2\",\"291\":\"status_quo\",\"292\":\"0_28\",\"293\":\"status_quo\",\"294\":\"status_quo\",\"295\":\"status_quo\",\"296\":\"0_4\",\"297\":\"0_14\",\"298\":\"0_26\",\"299\":\"0_60\",\"300\":\"0_0\",\"301\":\"0_2\",\"302\":\"0_14\",\"303\":\"0_14\",\"304\":\"0_15\",\"305\":\"0_15\",\"306\":\"0_15\",\"307\":\"0_28\",\"308\":\"0_15\",\"309\":\"0_15\",\"310\":\"0_4\",\"311\":\"0_60\",\"312\":\"0_2\",\"313\":\"0_50\",\"314\":\"0_15\",\"315\":\"0_16\",\"316\":\"0_16\",\"317\":\"0_0\",\"318\":\"0_16\",\"319\":\"0_16\",\"320\":\"0_16\",\"321\":\"0_16\",\"322\":\"0_28\",\"323\":\"0_2\",\"324\":\"0_12\",\"325\":\"0_2\",\"326\":\"0_51\",\"327\":\"0_20\",\"328\":\"0_20\",\"329\":\"0_1\",\"330\":\"0_37\",\"331\":\"0_61\",\"332\":\"0_40\",\"333\":\"0_20\",\"334\":\"0_28\",\"335\":\"0_4\",\"336\":\"0_20\",\"337\":\"0_20\",\"338\":\"0_20\",\"339\":\"0_51\",\"340\":\"0_21\",\"341\":\"0_21\",\"342\":\"0_21\",\"343\":\"0_61\",\"344\":\"0_21\",\"345\":\"0_21\",\"346\":\"0_17\",\"347\":\"0_40\",\"348\":\"0_21\",\"349\":\"0_1\",\"350\":\"0_29\",\"351\":\"0_22\",\"352\":\"0_38\",\"353\":\"0_22\",\"354\":\"0_22\",\"355\":\"0_24\",\"356\":\"0_22\",\"357\":\"0_17\",\"358\":\"0_22\",\"359\":\"0_22\",\"360\":\"0_23\",\"361\":\"0_40\",\"362\":\"0_23\",\"363\":\"0_23\",\"364\":\"0_23\",\"365\":\"0_51\",\"366\":\"0_29\",\"367\":\"0_39\",\"368\":\"0_17\",\"369\":\"0_23\",\"370\":\"0_29\",\"371\":\"0_29\",\"372\":\"0_29\",\"373\":\"0_29\",\"374\":\"0_3\",\"375\":\"0_40\",\"376\":\"0_3\",\"377\":\"0_10\",\"378\":\"0_51\",\"379\":\"0_17\",\"380\":\"0_13\",\"381\":\"0_3\",\"382\":\"0_3\",\"383\":\"0_3\",\"384\":\"0_24\",\"385\":\"0_3\",\"386\":\"0_30\",\"387\":\"0_30\",\"388\":\"0_30\",\"389\":\"0_40\"},\"trial_index\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":0,\"113\":0,\"114\":0,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":0,\"120\":0,\"121\":0,\"122\":0,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":0,\"128\":0,\"129\":0,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":0,\"144\":0,\"145\":0,\"146\":0,\"147\":0,\"148\":0,\"149\":0,\"150\":0,\"151\":0,\"152\":0,\"153\":0,\"154\":0,\"155\":0,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":0,\"163\":0,\"164\":0,\"165\":0,\"166\":0,\"167\":0,\"168\":0,\"169\":0,\"170\":0,\"171\":0,\"172\":0,\"173\":0,\"174\":0,\"175\":0,\"176\":0,\"177\":0,\"178\":0,\"179\":0,\"180\":0,\"181\":0,\"182\":0,\"183\":0,\"184\":0,\"185\":0,\"186\":0,\"187\":0,\"188\":0,\"189\":0,\"190\":0,\"191\":0,\"192\":0,\"193\":0,\"194\":0,\"195\":0,\"196\":0,\"197\":0,\"198\":0,\"199\":0,\"200\":0,\"201\":0,\"202\":0,\"203\":0,\"204\":0,\"205\":0,\"206\":0,\"207\":0,\"208\":0,\"209\":0,\"210\":0,\"211\":0,\"212\":0,\"213\":0,\"214\":0,\"215\":0,\"216\":0,\"217\":0,\"218\":0,\"219\":0,\"220\":0,\"221\":0,\"222\":0,\"223\":0,\"224\":0,\"225\":0,\"226\":0,\"227\":0,\"228\":0,\"229\":0,\"230\":0,\"231\":0,\"232\":0,\"233\":0,\"234\":0,\"235\":0,\"236\":0,\"237\":0,\"238\":0,\"239\":0,\"240\":0,\"241\":0,\"242\":0,\"243\":0,\"244\":0,\"245\":0,\"246\":0,\"247\":0,\"248\":0,\"249\":0,\"250\":0,\"251\":0,\"252\":0,\"253\":0,\"254\":0,\"255\":0,\"256\":0,\"257\":0,\"258\":0,\"259\":0,\"260\":0,\"261\":0,\"262\":0,\"263\":0,\"264\":0,\"265\":0,\"266\":0,\"267\":0,\"268\":0,\"269\":0,\"270\":0,\"271\":0,\"272\":0,\"273\":0,\"274\":0,\"275\":0,\"276\":0,\"277\":0,\"278\":0,\"279\":0,\"280\":0,\"281\":0,\"282\":0,\"283\":0,\"284\":0,\"285\":0,\"286\":0,\"287\":0,\"288\":0,\"289\":0,\"290\":0,\"291\":0,\"292\":0,\"293\":0,\"294\":0,\"295\":0,\"296\":0,\"297\":0,\"298\":0,\"299\":0,\"300\":0,\"301\":0,\"302\":0,\"303\":0,\"304\":0,\"305\":0,\"306\":0,\"307\":0,\"308\":0,\"309\":0,\"310\":0,\"311\":0,\"312\":0,\"313\":0,\"314\":0,\"315\":0,\"316\":0,\"317\":0,\"318\":0,\"319\":0,\"320\":0,\"321\":0,\"322\":0,\"323\":0,\"324\":0,\"325\":0,\"326\":0,\"327\":0,\"328\":0,\"329\":0,\"330\":0,\"331\":0,\"332\":0,\"333\":0,\"334\":0,\"335\":0,\"336\":0,\"337\":0,\"338\":0,\"339\":0,\"340\":0,\"341\":0,\"342\":0,\"343\":0,\"344\":0,\"345\":0,\"346\":0,\"347\":0,\"348\":0,\"349\":0,\"350\":0,\"351\":0,\"352\":0,\"353\":0,\"354\":0,\"355\":0,\"356\":0,\"357\":0,\"358\":0,\"359\":0,\"360\":0,\"361\":0,\"362\":0,\"363\":0,\"364\":0,\"365\":0,\"366\":0,\"367\":0,\"368\":0,\"369\":0,\"370\":0,\"371\":0,\"372\":0,\"373\":0,\"374\":0,\"375\":0,\"376\":0,\"377\":0,\"378\":0,\"379\":0,\"380\":0,\"381\":0,\"382\":0,\"383\":0,\"384\":0,\"385\":0,\"386\":0,\"387\":0,\"388\":0,\"389\":0},\"end_time\":{\"0\":1554076800000,\"1\":1554076800000,\"2\":1554076800000,\"3\":1554076800000,\"4\":1554076800000,\"5\":1554076800000,\"6\":1554076800000,\"7\":1554076800000,\"8\":1554076800000,\"9\":1554076800000,\"10\":1554076800000,\"11\":1554076800000,\"12\":1554076800000,\"13\":1554076800000,\"14\":1554076800000,\"15\":1554076800000,\"16\":1554076800000,\"17\":1554076800000,\"18\":1554076800000,\"19\":1554076800000,\"20\":1554076800000,\"21\":1554076800000,\"22\":1554076800000,\"23\":1554076800000,\"24\":1554076800000,\"25\":1554076800000,\"26\":1554076800000,\"27\":1554076800000,\"28\":1554076800000,\"29\":1554076800000,\"30\":1554076800000,\"31\":1554076800000,\"32\":1554076800000,\"33\":1554076800000,\"34\":1554076800000,\"35\":1554076800000,\"36\":1554076800000,\"37\":1554076800000,\"38\":1554076800000,\"39\":1554076800000,\"40\":1554076800000,\"41\":1554076800000,\"42\":1554076800000,\"43\":1554076800000,\"44\":1554076800000,\"45\":1554076800000,\"46\":1554076800000,\"47\":1554076800000,\"48\":1554076800000,\"49\":1554076800000,\"50\":1554076800000,\"51\":1554076800000,\"52\":1554076800000,\"53\":1554076800000,\"54\":1554076800000,\"55\":1554076800000,\"56\":1554076800000,\"57\":1554076800000,\"58\":1554076800000,\"59\":1554076800000,\"60\":1554076800000,\"61\":1554076800000,\"62\":1554076800000,\"63\":1554076800000,\"64\":1554076800000,\"65\":1554076800000,\"66\":1554076800000,\"67\":1554076800000,\"68\":1554076800000,\"69\":1554076800000,\"70\":1554076800000,\"71\":1554076800000,\"72\":1554076800000,\"73\":1554076800000,\"74\":1554076800000,\"75\":1554076800000,\"76\":1554076800000,\"77\":1554076800000,\"78\":1554076800000,\"79\":1554076800000,\"80\":1554076800000,\"81\":1554076800000,\"82\":1554076800000,\"83\":1554076800000,\"84\":1554076800000,\"85\":1554076800000,\"86\":1554076800000,\"87\":1554076800000,\"88\":1554076800000,\"89\":1554076800000,\"90\":1554076800000,\"91\":1554076800000,\"92\":1554076800000,\"93\":1554076800000,\"94\":1554076800000,\"95\":1554076800000,\"96\":1554076800000,\"97\":1554076800000,\"98\":1554076800000,\"99\":1554076800000,\"100\":1554076800000,\"101\":1554076800000,\"102\":1554076800000,\"103\":1554076800000,\"104\":1554076800000,\"105\":1554076800000,\"106\":1554076800000,\"107\":1554076800000,\"108\":1554076800000,\"109\":1554076800000,\"110\":1554076800000,\"111\":1554076800000,\"112\":1554076800000,\"113\":1554076800000,\"114\":1554076800000,\"115\":1554076800000,\"116\":1554076800000,\"117\":1554076800000,\"118\":1554076800000,\"119\":1554076800000,\"120\":1554076800000,\"121\":1554076800000,\"122\":1554076800000,\"123\":1554076800000,\"124\":1554076800000,\"125\":1554076800000,\"126\":1554076800000,\"127\":1554076800000,\"128\":1554076800000,\"129\":1554076800000,\"130\":1554076800000,\"131\":1554076800000,\"132\":1554076800000,\"133\":1554076800000,\"134\":1554076800000,\"135\":1554076800000,\"136\":1554076800000,\"137\":1554076800000,\"138\":1554076800000,\"139\":1554076800000,\"140\":1554076800000,\"141\":1554076800000,\"142\":1554076800000,\"143\":1554076800000,\"144\":1554076800000,\"145\":1554076800000,\"146\":1554076800000,\"147\":1554076800000,\"148\":1554076800000,\"149\":1554076800000,\"150\":1554076800000,\"151\":1554076800000,\"152\":1554076800000,\"153\":1554076800000,\"154\":1554076800000,\"155\":1554076800000,\"156\":1554076800000,\"157\":1554076800000,\"158\":1554076800000,\"159\":1554076800000,\"160\":1554076800000,\"161\":1554076800000,\"162\":1554076800000,\"163\":1554076800000,\"164\":1554076800000,\"165\":1554076800000,\"166\":1554076800000,\"167\":1554076800000,\"168\":1554076800000,\"169\":1554076800000,\"170\":1554076800000,\"171\":1554076800000,\"172\":1554076800000,\"173\":1554076800000,\"174\":1554076800000,\"175\":1554076800000,\"176\":1554076800000,\"177\":1554076800000,\"178\":1554076800000,\"179\":1554076800000,\"180\":1554076800000,\"181\":1554076800000,\"182\":1554076800000,\"183\":1554076800000,\"184\":1554076800000,\"185\":1554076800000,\"186\":1554076800000,\"187\":1554076800000,\"188\":1554076800000,\"189\":1554076800000,\"190\":1554076800000,\"191\":1554076800000,\"192\":1554076800000,\"193\":1554076800000,\"194\":1554076800000,\"195\":1554076800000,\"196\":1554076800000,\"197\":1554076800000,\"198\":1554076800000,\"199\":1554076800000,\"200\":1554076800000,\"201\":1554076800000,\"202\":1554076800000,\"203\":1554076800000,\"204\":1554076800000,\"205\":1554076800000,\"206\":1554076800000,\"207\":1554076800000,\"208\":1554076800000,\"209\":1554076800000,\"210\":1554076800000,\"211\":1554076800000,\"212\":1554076800000,\"213\":1554076800000,\"214\":1554076800000,\"215\":1554076800000,\"216\":1554076800000,\"217\":1554076800000,\"218\":1554076800000,\"219\":1554076800000,\"220\":1554076800000,\"221\":1554076800000,\"222\":1554076800000,\"223\":1554076800000,\"224\":1554076800000,\"225\":1554076800000,\"226\":1554076800000,\"227\":1554076800000,\"228\":1554076800000,\"229\":1554076800000,\"230\":1554076800000,\"231\":1554076800000,\"232\":1554076800000,\"233\":1554076800000,\"234\":1554076800000,\"235\":1554076800000,\"236\":1554076800000,\"237\":1554076800000,\"238\":1554076800000,\"239\":1554076800000,\"240\":1554076800000,\"241\":1554076800000,\"242\":1554076800000,\"243\":1554076800000,\"244\":1554076800000,\"245\":1554076800000,\"246\":1554076800000,\"247\":1554076800000,\"248\":1554076800000,\"249\":1554076800000,\"250\":1554076800000,\"251\":1554076800000,\"252\":1554076800000,\"253\":1554076800000,\"254\":1554076800000,\"255\":1554076800000,\"256\":1554076800000,\"257\":1554076800000,\"258\":1554076800000,\"259\":1554076800000,\"260\":1554076800000,\"261\":1554076800000,\"262\":1554076800000,\"263\":1554076800000,\"264\":1554076800000,\"265\":1554076800000,\"266\":1554076800000,\"267\":1554076800000,\"268\":1554076800000,\"269\":1554076800000,\"270\":1554076800000,\"271\":1554076800000,\"272\":1554076800000,\"273\":1554076800000,\"274\":1554076800000,\"275\":1554076800000,\"276\":1554076800000,\"277\":1554076800000,\"278\":1554076800000,\"279\":1554076800000,\"280\":1554076800000,\"281\":1554076800000,\"282\":1554076800000,\"283\":1554076800000,\"284\":1554076800000,\"285\":1554076800000,\"286\":1554076800000,\"287\":1554076800000,\"288\":1554076800000,\"289\":1554076800000,\"290\":1554076800000,\"291\":1554076800000,\"292\":1554076800000,\"293\":1554076800000,\"294\":1554076800000,\"295\":1554076800000,\"296\":1554076800000,\"297\":1554076800000,\"298\":1554076800000,\"299\":1554076800000,\"300\":1554076800000,\"301\":1554076800000,\"302\":1554076800000,\"303\":1554076800000,\"304\":1554076800000,\"305\":1554076800000,\"306\":1554076800000,\"307\":1554076800000,\"308\":1554076800000,\"309\":1554076800000,\"310\":1554076800000,\"311\":1554076800000,\"312\":1554076800000,\"313\":1554076800000,\"314\":1554076800000,\"315\":1554076800000,\"316\":1554076800000,\"317\":1554076800000,\"318\":1554076800000,\"319\":1554076800000,\"320\":1554076800000,\"321\":1554076800000,\"322\":1554076800000,\"323\":1554076800000,\"324\":1554076800000,\"325\":1554076800000,\"326\":1554076800000,\"327\":1554076800000,\"328\":1554076800000,\"329\":1554076800000,\"330\":1554076800000,\"331\":1554076800000,\"332\":1554076800000,\"333\":1554076800000,\"334\":1554076800000,\"335\":1554076800000,\"336\":1554076800000,\"337\":1554076800000,\"338\":1554076800000,\"339\":1554076800000,\"340\":1554076800000,\"341\":1554076800000,\"342\":1554076800000,\"343\":1554076800000,\"344\":1554076800000,\"345\":1554076800000,\"346\":1554076800000,\"347\":1554076800000,\"348\":1554076800000,\"349\":1554076800000,\"350\":1554076800000,\"351\":1554076800000,\"352\":1554076800000,\"353\":1554076800000,\"354\":1554076800000,\"355\":1554076800000,\"356\":1554076800000,\"357\":1554076800000,\"358\":1554076800000,\"359\":1554076800000,\"360\":1554076800000,\"361\":1554076800000,\"362\":1554076800000,\"363\":1554076800000,\"364\":1554076800000,\"365\":1554076800000,\"366\":1554076800000,\"367\":1554076800000,\"368\":1554076800000,\"369\":1554076800000,\"370\":1554076800000,\"371\":1554076800000,\"372\":1554076800000,\"373\":1554076800000,\"374\":1554076800000,\"375\":1554076800000,\"376\":1554076800000,\"377\":1554076800000,\"378\":1554076800000,\"379\":1554076800000,\"380\":1554076800000,\"381\":1554076800000,\"382\":1554076800000,\"383\":1554076800000,\"384\":1554076800000,\"385\":1554076800000,\"386\":1554076800000,\"387\":1554076800000,\"388\":1554076800000,\"389\":1554076800000},\"frac_nonnull\":{\"0\":0.3965254662,\"1\":0.0146148775,\"2\":1.0,\"3\":1.0,\"4\":1.0,\"5\":1.0,\"6\":1.0,\"7\":1.0,\"8\":1.0,\"9\":0.3966942595,\"10\":0.0147604716,\"11\":0.0146583237,\"12\":1.0,\"13\":0.3967149997,\"14\":1.0,\"15\":1.0,\"16\":1.0,\"17\":1.0,\"18\":1.0,\"19\":1.0,\"20\":1.0,\"21\":0.3962959081,\"22\":0.0145844392,\"23\":1.0,\"24\":0.3967065039,\"25\":1.0,\"26\":1.0,\"27\":1.0,\"28\":1.0,\"29\":1.0,\"30\":1.0,\"31\":0.3971961986,\"32\":1.0,\"33\":1.0,\"34\":0.0147437091,\"35\":1.0,\"36\":1.0,\"37\":1.0,\"38\":1.0,\"39\":1.0,\"40\":0.3964792055,\"41\":1.0,\"42\":0.0146007869,\"43\":1.0,\"44\":1.0,\"45\":1.0,\"46\":0.0145542126,\"47\":0.3968429856,\"48\":1.0,\"49\":0.3970991089,\"50\":1.0,\"51\":1.0,\"52\":1.0,\"53\":1.0,\"54\":0.396954262,\"55\":0.0144565921,\"56\":1.0,\"57\":1.0,\"58\":1.0,\"59\":1.0,\"60\":0.0146283024,\"61\":1.0,\"62\":1.0,\"63\":0.014541648,\"64\":0.3971012007,\"65\":0.3963939929,\"66\":0.3965355467,\"67\":0.0145438677,\"68\":1.0,\"69\":1.0,\"70\":1.0,\"71\":1.0,\"72\":1.0,\"73\":1.0,\"74\":0.3968373458,\"75\":0.0145725903,\"76\":1.0,\"77\":0.3969614625,\"78\":1.0,\"79\":1.0,\"80\":0.0145291055,\"81\":1.0,\"82\":1.0,\"83\":1.0,\"84\":1.0,\"85\":0.3964361454,\"86\":1.0,\"87\":0.0146223433,\"88\":1.0,\"89\":0.0145507814,\"90\":0.0145370163,\"91\":1.0,\"92\":1.0,\"93\":1.0,\"94\":1.0,\"95\":1.0,\"96\":0.3968422803,\"97\":0.014487749,\"98\":1.0,\"99\":1.0,\"100\":1.0,\"101\":1.0,\"102\":1.0,\"103\":1.0,\"104\":1.0,\"105\":1.0,\"106\":1.0,\"107\":0.3967094458,\"108\":1.0,\"109\":0.0145396269,\"110\":1.0,\"111\":1.0,\"112\":1.0,\"113\":1.0,\"114\":0.3959503022,\"115\":1.0,\"116\":1.0,\"117\":1.0,\"118\":0.396314562,\"119\":0.3968879144,\"120\":0.0145600619,\"121\":1.0,\"122\":1.0,\"123\":0.3964918807,\"124\":1.0,\"125\":1.0,\"126\":1.0,\"127\":1.0,\"128\":1.0,\"129\":1.0,\"130\":0.3959898886,\"131\":0.0145787228,\"132\":1.0,\"133\":1.0,\"134\":0.0144745033,\"135\":1.0,\"136\":1.0,\"137\":1.0,\"138\":0.0145654247,\"139\":1.0,\"140\":1.0,\"141\":1.0,\"142\":1.0,\"143\":0.3967734949,\"144\":0.014662252,\"145\":1.0,\"146\":0.3960782381,\"147\":1.0,\"148\":1.0,\"149\":1.0,\"150\":0.396879907,\"151\":0.0144899555,\"152\":1.0,\"153\":1.0,\"154\":1.0,\"155\":0.3968063603,\"156\":0.3977220883,\"157\":1.0,\"158\":1.0,\"159\":1.0,\"160\":1.0,\"161\":1.0,\"162\":0.3964572107,\"163\":0.0146376656,\"164\":1.0,\"165\":1.0,\"166\":1.0,\"167\":1.0,\"168\":0.0147749724,\"169\":0.0145023099,\"170\":0.0146014263,\"171\":1.0,\"172\":1.0,\"173\":1.0,\"174\":1.0,\"175\":1.0,\"176\":0.3963961226,\"177\":1.0,\"178\":0.3960573089,\"179\":1.0,\"180\":0.3964292263,\"181\":0.3965541658,\"182\":0.0144636292,\"183\":1.0,\"184\":1.0,\"185\":1.0,\"186\":1.0,\"187\":1.0,\"188\":0.3962957944,\"189\":1.0,\"190\":1.0,\"191\":0.396629074,\"192\":0.014494739,\"193\":0.0144739832,\"194\":1.0,\"195\":1.0,\"196\":0.396674687,\"197\":0.0145487243,\"198\":1.0,\"199\":1.0,\"200\":1.0,\"201\":0.0144242432,\"202\":0.3971212742,\"203\":0.0146576516,\"204\":0.3964413384,\"205\":1.0,\"206\":1.0,\"207\":1.0,\"208\":1.0,\"209\":0.0145832953,\"210\":1.0,\"211\":0.3961935984,\"212\":1.0,\"213\":0.0144530614,\"214\":0.0145008696,\"215\":1.0,\"216\":1.0,\"217\":1.0,\"218\":1.0,\"219\":0.3962382568,\"220\":1.0,\"221\":1.0,\"222\":1.0,\"223\":0.3972619691,\"224\":1.0,\"225\":0.3966458162,\"226\":1.0,\"227\":0.0146123533,\"228\":1.0,\"229\":1.0,\"230\":1.0,\"231\":1.0,\"232\":1.0,\"233\":0.3968619673,\"234\":0.0145150992,\"235\":1.0,\"236\":0.0145025935,\"237\":1.0,\"238\":1.0,\"239\":1.0,\"240\":1.0,\"241\":1.0,\"242\":1.0,\"243\":1.0,\"244\":0.3968593621,\"245\":0.0146903421,\"246\":1.0,\"247\":1.0,\"248\":1.0,\"249\":1.0,\"250\":1.0,\"251\":1.0,\"252\":1.0,\"253\":0.3964534113,\"254\":0.3967201491,\"255\":0.0147117216,\"256\":1.0,\"257\":1.0,\"258\":1.0,\"259\":0.0145334446,\"260\":1.0,\"261\":1.0,\"262\":0.0145486914,\"263\":1.0,\"264\":1.0,\"265\":1.0,\"266\":0.3964671803,\"267\":0.0145213058,\"268\":0.3968888802,\"269\":0.0144971016,\"270\":1.0,\"271\":1.0,\"272\":1.0,\"273\":1.0,\"274\":1.0,\"275\":1.0,\"276\":0.3963948819,\"277\":0.3958884129,\"278\":0.014608837,\"279\":1.0,\"280\":1.0,\"281\":1.0,\"282\":0.0145406204,\"283\":1.0,\"284\":1.0,\"285\":1.0,\"286\":1.0,\"287\":0.3964536203,\"288\":0.396579029,\"289\":0.0145772854,\"290\":0.0145213046,\"291\":1.0,\"292\":0.0144979786,\"293\":1.0,\"294\":1.0,\"295\":1.0,\"296\":1.0,\"297\":1.0,\"298\":1.0,\"299\":0.014456115,\"300\":1.0,\"301\":1.0,\"302\":1.0,\"303\":1.0,\"304\":0.3964085243,\"305\":0.0145675618,\"306\":1.0,\"307\":1.0,\"308\":1.0,\"309\":1.0,\"310\":1.0,\"311\":1.0,\"312\":1.0,\"313\":1.0,\"314\":1.0,\"315\":0.3962229045,\"316\":0.0145519596,\"317\":1.0,\"318\":1.0,\"319\":1.0,\"320\":1.0,\"321\":1.0,\"322\":1.0,\"323\":1.0,\"324\":1.0,\"325\":1.0,\"326\":0.3965533911,\"327\":0.3969888095,\"328\":0.0146224006,\"329\":1.0,\"330\":1.0,\"331\":0.3962929258,\"332\":0.3966445392,\"333\":1.0,\"334\":1.0,\"335\":1.0,\"336\":1.0,\"337\":1.0,\"338\":1.0,\"339\":0.0144562037,\"340\":0.3972363545,\"341\":0.0146855425,\"342\":1.0,\"343\":0.0145243198,\"344\":1.0,\"345\":1.0,\"346\":0.0144758881,\"347\":0.0145496963,\"348\":1.0,\"349\":1.0,\"350\":0.3964717842,\"351\":0.3962389932,\"352\":1.0,\"353\":0.0146430981,\"354\":1.0,\"355\":1.0,\"356\":1.0,\"357\":1.0,\"358\":1.0,\"359\":1.0,\"360\":0.3965518642,\"361\":1.0,\"362\":0.0144191445,\"363\":1.0,\"364\":1.0,\"365\":1.0,\"366\":0.0145230138,\"367\":1.0,\"368\":1.0,\"369\":1.0,\"370\":1.0,\"371\":1.0,\"372\":1.0,\"373\":1.0,\"374\":0.3961685953,\"375\":1.0,\"376\":0.0145789686,\"377\":1.0,\"378\":1.0,\"379\":1.0,\"380\":1.0,\"381\":1.0,\"382\":1.0,\"383\":1.0,\"384\":0.397208691,\"385\":1.0,\"386\":0.3968803832,\"387\":0.0145516817,\"388\":1.0,\"389\":1.0},\"mean\":{\"0\":104.9116440607,\"1\":0.0556612323,\"2\":38267.5511921719,\"3\":20.9213793135,\"4\":21.4459765577,\"5\":515.3084505912,\"6\":520.6507734407,\"7\":38233.3738980104,\"8\":20.6683558647,\"9\":105.0472079785,\"10\":0.0549151141,\"11\":0.0552716471,\"12\":0.9354921317,\"13\":104.5931791783,\"14\":20.2265888805,\"15\":455.60244952,\"16\":525.299190401,\"17\":0.9406985371,\"18\":38518.4948677146,\"19\":38375.3894674193,\"20\":38187.1415524679,\"21\":105.0336269064,\"22\":0.0552205855,\"23\":0.940050956,\"24\":105.2953762693,\"25\":21.8144543482,\"26\":492.488658948,\"27\":554.8958008109,\"28\":0.9386679243,\"29\":23.2339113156,\"30\":38420.4852219144,\"31\":103.9162483097,\"32\":21.4529225259,\"33\":38067.6720404196,\"34\":0.0552696783,\"35\":552.9271005253,\"36\":0.9404396774,\"37\":21.9470986593,\"38\":552.4758134529,\"39\":38171.5182904525,\"40\":104.0894036628,\"41\":563.5899862087,\"42\":0.0546675604,\"43\":38653.710288626,\"44\":21.6325397424,\"45\":38144.053488703,\"46\":0.0552935772,\"47\":104.0611154343,\"48\":0.939545626,\"49\":105.7451600535,\"50\":21.7283674865,\"51\":523.885061884,\"52\":38096.7475320342,\"53\":38706.932275148,\"54\":105.6897333224,\"55\":0.0550815056,\"56\":0.9392192378,\"57\":0.9380915707,\"58\":21.4364451918,\"59\":538.7726667515,\"60\":0.0534331585,\"61\":38585.6947908241,\"62\":543.0642908833,\"63\":0.0571089684,\"64\":105.6279923786,\"65\":105.3712201596,\"66\":105.0387874751,\"67\":0.0536758562,\"68\":21.2105671312,\"69\":0.9384944242,\"70\":21.4685362375,\"71\":544.1002722355,\"72\":38670.2899680019,\"73\":38229.5942969935,\"74\":104.7138616317,\"75\":0.0549480921,\"76\":0.9391518002,\"77\":105.6156608775,\"78\":0.9375848377,\"79\":544.4328632698,\"80\":0.0554332737,\"81\":20.9723713256,\"82\":551.0185862215,\"83\":516.8279581976,\"84\":38616.7930217767,\"85\":105.1470499923,\"86\":0.9384821555,\"87\":0.055691891,\"88\":0.9384973337,\"89\":0.0566504341,\"90\":0.0538538983,\"91\":0.9371727117,\"92\":21.1131824194,\"93\":516.776334116,\"94\":541.6481222561,\"95\":38477.9602945049,\"96\":104.6220149723,\"97\":0.054530944,\"98\":38244.3007292471,\"99\":21.5165546391,\"100\":0.9377048405,\"101\":38490.6760149277,\"102\":0.9368878487,\"103\":21.1242267711,\"104\":526.4764170192,\"105\":21.3025686758,\"106\":37978.5610778367,\"107\":104.8815882473,\"108\":38453.2284814906,\"109\":0.057248515,\"110\":0.9400514825,\"111\":22.580330584,\"112\":21.7898063681,\"113\":21.0263969695,\"114\":105.2616405132,\"115\":20.5638973954,\"116\":557.2749244063,\"117\":37959.3496700464,\"118\":106.1644720051,\"119\":106.3260383194,\"120\":0.0558211183,\"121\":542.1682945442,\"122\":0.9379495313,\"123\":104.3332165538,\"124\":531.3590130848,\"125\":20.9199875188,\"126\":529.7496076675,\"127\":38269.0414743111,\"128\":538.9407132478,\"129\":38867.0532823817,\"130\":104.6364526842,\"131\":0.0540482116,\"132\":0.936419844,\"133\":20.7810044705,\"134\":0.0554875093,\"135\":38070.6615046122,\"136\":509.024693062,\"137\":38483.0144575375,\"138\":0.0545878788,\"139\":526.8627430412,\"140\":482.9892635124,\"141\":38051.0491329108,\"142\":38024.8904427889,\"143\":104.9638045474,\"144\":0.0555728366,\"145\":0.9376021088,\"146\":105.5511209182,\"147\":21.9669040461,\"148\":528.0137468009,\"149\":38319.3730031064,\"150\":104.992125846,\"151\":0.0554464923,\"152\":38168.7292002849,\"153\":0.9377544272,\"154\":0.9383182638,\"155\":105.39226359,\"156\":105.644401232,\"157\":38115.4540500413,\"158\":0.9369888771,\"159\":21.1337117696,\"160\":516.8937065447,\"161\":38430.892831462,\"162\":104.2981182267,\"163\":0.0542875073,\"164\":510.5339072013,\"165\":0.9391190867,\"166\":21.5006281831,\"167\":538.0625328887,\"168\":0.0569061281,\"169\":0.0549350575,\"170\":0.0534817876,\"171\":0.9381863204,\"172\":537.8642144819,\"173\":21.0942580202,\"174\":532.3814442831,\"175\":38358.8911870503,\"176\":105.1089699821,\"177\":20.2642912772,\"178\":106.6164134063,\"179\":0.9373052893,\"180\":105.211312051,\"181\":105.3626009177,\"182\":0.0549959134,\"183\":21.2501796829,\"184\":0.9374288622,\"185\":21.0551691993,\"186\":524.0888165839,\"187\":38370.0546203599,\"188\":105.4696969181,\"189\":38203.3842503333,\"190\":20.6615846664,\"191\":105.6657572167,\"192\":0.0539313074,\"193\":0.0540375116,\"194\":0.9380161801,\"195\":21.0569680247,\"196\":105.1307543813,\"197\":0.054048751,\"198\":530.8698427874,\"199\":38644.8477229497,\"200\":530.4065245271,\"201\":0.0566171984,\"202\":104.2223895342,\"203\":0.0557263563,\"204\":104.7181448333,\"205\":0.9384035151,\"206\":21.4537909615,\"207\":0.9355765327,\"208\":539.1674095603,\"209\":0.0567574854,\"210\":39258.5757199842,\"211\":105.1629063871,\"212\":38275.3339322642,\"213\":0.0548467295,\"214\":0.0545725939,\"215\":0.937962734,\"216\":0.9362806215,\"217\":20.7041305066,\"218\":506.1119814293,\"219\":105.1379404925,\"220\":38483.8095366782,\"221\":0.9393987552,\"222\":0.9376853389,\"223\":105.2545607365,\"224\":477.5368180527,\"225\":105.572308549,\"226\":0.9365163813,\"227\":0.0510697187,\"228\":0.9378986258,\"229\":20.89955755,\"230\":533.9904900941,\"231\":38212.7856056812,\"232\":21.0407460535,\"233\":105.3807221551,\"234\":0.0539327293,\"235\":38119.5889161698,\"236\":0.0546101993,\"237\":21.2387307981,\"238\":20.7159567634,\"239\":0.938805435,\"240\":0.9391071562,\"241\":21.52980053,\"242\":547.9563818478,\"243\":38055.4492421815,\"244\":105.1346911794,\"245\":0.0554588099,\"246\":21.7429085278,\"247\":0.9371432675,\"248\":21.1296322288,\"249\":526.3642591909,\"250\":497.16795329,\"251\":21.2657115265,\"252\":38447.102356721,\"253\":106.4847606039,\"254\":105.5409329714,\"255\":0.0567109652,\"256\":0.9370754109,\"257\":507.6750126562,\"258\":511.500098371,\"259\":0.0540205392,\"260\":37938.4744782539,\"261\":21.0608359954,\"262\":0.0553859266,\"263\":0.9379850326,\"264\":522.6523517314,\"265\":38505.375332209,\"266\":105.5534088629,\"267\":0.0554264307,\"268\":104.5856442365,\"269\":0.0549984425,\"270\":0.9371939122,\"271\":20.8862336795,\"272\":0.9385186825,\"273\":528.5209258106,\"274\":37728.0789037874,\"275\":38043.7614696314,\"276\":104.9421653934,\"277\":105.3332669623,\"278\":0.0541540758,\"279\":38291.9381833004,\"280\":0.9385174873,\"281\":0.9367487962,\"282\":0.0538766757,\"283\":20.7924146526,\"284\":504.7006985544,\"285\":489.0665678791,\"286\":38248.5349675273,\"287\":104.8127998201,\"288\":105.2292814143,\"289\":0.0553065851,\"290\":0.0549215739,\"291\":0.9384416163,\"292\":0.0541037773,\"293\":21.2679346166,\"294\":537.8728139162,\"295\":38176.2758879173,\"296\":0.9377815341,\"297\":21.1811920735,\"298\":0.9387477008,\"299\":0.0545766224,\"300\":467.1119339759,\"301\":0.9375300051,\"302\":535.1580719146,\"303\":38317.4964317734,\"304\":104.5190460937,\"305\":0.0571957241,\"306\":0.9376079516,\"307\":0.9363379767,\"308\":20.8732223044,\"309\":510.1076882483,\"310\":20.9615509082,\"311\":0.9393300642,\"312\":21.0995492588,\"313\":21.7165193772,\"314\":37956.4810937051,\"315\":103.7193429832,\"316\":0.054169311,\"317\":38601.1354972046,\"318\":0.9393606969,\"319\":21.7743593051,\"320\":546.5640355537,\"321\":38439.5959883836,\"322\":20.7724017279,\"323\":523.358581337,\"324\":525.5397033903,\"325\":38346.9151411847,\"326\":104.1947966862,\"327\":107.0719128026,\"328\":0.0564402074,\"329\":0.9359267209,\"330\":22.0897940939,\"331\":104.0284850642,\"332\":106.5314060271,\"333\":0.9387831142,\"334\":38595.4227044908,\"335\":527.1153112705,\"336\":21.217467922,\"337\":540.2634593004,\"338\":38439.7411593351,\"339\":0.0533705111,\"340\":105.2410736859,\"341\":0.0543995111,\"342\":0.9387728328,\"343\":0.0555033348,\"344\":21.2911106939,\"345\":538.7717983769,\"346\":0.0532385134,\"347\":0.0551444365,\"348\":38325.9421533161,\"349\":20.6575791947,\"350\":105.1890433492,\"351\":106.21433227,\"352\":38453.5081002566,\"353\":0.0542578117,\"354\":0.9391486064,\"355\":38294.1020935233,\"356\":21.2618872897,\"357\":0.9381532714,\"358\":545.9566169859,\"359\":38255.3217863117,\"360\":105.623813019,\"361\":0.9369674044,\"362\":0.0561246323,\"363\":0.9366441361,\"364\":20.7296217983,\"365\":0.9371548984,\"366\":0.056253682,\"367\":539.8435103917,\"368\":21.3544129852,\"369\":38055.7085664149,\"370\":0.9393487142,\"371\":22.3029549771,\"372\":547.0585822628,\"373\":38205.2652673624,\"374\":106.0524550436,\"375\":20.7114011899,\"376\":0.0550023185,\"377\":0.936424317,\"378\":21.129884781,\"379\":532.2264058044,\"380\":38442.2770274193,\"381\":0.937981269,\"382\":21.3102709685,\"383\":531.4746979941,\"384\":105.4301605378,\"385\":38637.070837955,\"386\":105.5233072802,\"387\":0.0521850153,\"388\":0.9370550332,\"389\":507.3454764777},\"metric_name\":{\"0\":\"is_live_watch_time_given_iphone\",\"1\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"2\":\"wilde_scroll_frame_drops_per_minute\",\"3\":\"video:encoding:iphone_live_playback_mos_loss\",\"4\":\"video:encoding:iphone_live_playback_mos_loss\",\"5\":\"video:sbl_iphone_is_live__smtbr\",\"6\":\"video:sbl_iphone_is_live__smtbr\",\"7\":\"wilde_scroll_frame_drops_per_minute\",\"8\":\"video:encoding:iphone_live_playback_mos_loss\",\"9\":\"is_live_watch_time_given_iphone\",\"10\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"11\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"12\":\"sbl_iphone_is_live__psr_1_start\",\"13\":\"is_live_watch_time_given_iphone\",\"14\":\"video:encoding:iphone_live_playback_mos_loss\",\"15\":\"video:sbl_iphone_is_live__smtbr\",\"16\":\"video:sbl_iphone_is_live__smtbr\",\"17\":\"sbl_iphone_is_live__psr_1_start\",\"18\":\"wilde_scroll_frame_drops_per_minute\",\"19\":\"wilde_scroll_frame_drops_per_minute\",\"20\":\"wilde_scroll_frame_drops_per_minute\",\"21\":\"is_live_watch_time_given_iphone\",\"22\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"23\":\"sbl_iphone_is_live__psr_1_start\",\"24\":\"is_live_watch_time_given_iphone\",\"25\":\"video:encoding:iphone_live_playback_mos_loss\",\"26\":\"video:sbl_iphone_is_live__smtbr\",\"27\":\"video:sbl_iphone_is_live__smtbr\",\"28\":\"sbl_iphone_is_live__psr_1_start\",\"29\":\"video:encoding:iphone_live_playback_mos_loss\",\"30\":\"wilde_scroll_frame_drops_per_minute\",\"31\":\"is_live_watch_time_given_iphone\",\"32\":\"video:encoding:iphone_live_playback_mos_loss\",\"33\":\"wilde_scroll_frame_drops_per_minute\",\"34\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"35\":\"video:sbl_iphone_is_live__smtbr\",\"36\":\"sbl_iphone_is_live__psr_1_start\",\"37\":\"video:encoding:iphone_live_playback_mos_loss\",\"38\":\"video:sbl_iphone_is_live__smtbr\",\"39\":\"wilde_scroll_frame_drops_per_minute\",\"40\":\"is_live_watch_time_given_iphone\",\"41\":\"video:sbl_iphone_is_live__smtbr\",\"42\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"43\":\"wilde_scroll_frame_drops_per_minute\",\"44\":\"video:encoding:iphone_live_playback_mos_loss\",\"45\":\"wilde_scroll_frame_drops_per_minute\",\"46\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"47\":\"is_live_watch_time_given_iphone\",\"48\":\"sbl_iphone_is_live__psr_1_start\",\"49\":\"is_live_watch_time_given_iphone\",\"50\":\"video:encoding:iphone_live_playback_mos_loss\",\"51\":\"video:sbl_iphone_is_live__smtbr\",\"52\":\"wilde_scroll_frame_drops_per_minute\",\"53\":\"wilde_scroll_frame_drops_per_minute\",\"54\":\"is_live_watch_time_given_iphone\",\"55\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"56\":\"sbl_iphone_is_live__psr_1_start\",\"57\":\"sbl_iphone_is_live__psr_1_start\",\"58\":\"video:encoding:iphone_live_playback_mos_loss\",\"59\":\"video:sbl_iphone_is_live__smtbr\",\"60\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"61\":\"wilde_scroll_frame_drops_per_minute\",\"62\":\"video:sbl_iphone_is_live__smtbr\",\"63\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"64\":\"is_live_watch_time_given_iphone\",\"65\":\"is_live_watch_time_given_iphone\",\"66\":\"is_live_watch_time_given_iphone\",\"67\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"68\":\"video:encoding:iphone_live_playback_mos_loss\",\"69\":\"sbl_iphone_is_live__psr_1_start\",\"70\":\"video:encoding:iphone_live_playback_mos_loss\",\"71\":\"video:sbl_iphone_is_live__smtbr\",\"72\":\"wilde_scroll_frame_drops_per_minute\",\"73\":\"wilde_scroll_frame_drops_per_minute\",\"74\":\"is_live_watch_time_given_iphone\",\"75\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"76\":\"sbl_iphone_is_live__psr_1_start\",\"77\":\"is_live_watch_time_given_iphone\",\"78\":\"sbl_iphone_is_live__psr_1_start\",\"79\":\"video:sbl_iphone_is_live__smtbr\",\"80\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"81\":\"video:encoding:iphone_live_playback_mos_loss\",\"82\":\"video:sbl_iphone_is_live__smtbr\",\"83\":\"video:sbl_iphone_is_live__smtbr\",\"84\":\"wilde_scroll_frame_drops_per_minute\",\"85\":\"is_live_watch_time_given_iphone\",\"86\":\"sbl_iphone_is_live__psr_1_start\",\"87\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"88\":\"sbl_iphone_is_live__psr_1_start\",\"89\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"90\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"91\":\"sbl_iphone_is_live__psr_1_start\",\"92\":\"video:encoding:iphone_live_playback_mos_loss\",\"93\":\"video:sbl_iphone_is_live__smtbr\",\"94\":\"video:sbl_iphone_is_live__smtbr\",\"95\":\"wilde_scroll_frame_drops_per_minute\",\"96\":\"is_live_watch_time_given_iphone\",\"97\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"98\":\"wilde_scroll_frame_drops_per_minute\",\"99\":\"video:encoding:iphone_live_playback_mos_loss\",\"100\":\"sbl_iphone_is_live__psr_1_start\",\"101\":\"wilde_scroll_frame_drops_per_minute\",\"102\":\"sbl_iphone_is_live__psr_1_start\",\"103\":\"video:encoding:iphone_live_playback_mos_loss\",\"104\":\"video:sbl_iphone_is_live__smtbr\",\"105\":\"video:encoding:iphone_live_playback_mos_loss\",\"106\":\"wilde_scroll_frame_drops_per_minute\",\"107\":\"is_live_watch_time_given_iphone\",\"108\":\"wilde_scroll_frame_drops_per_minute\",\"109\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"110\":\"sbl_iphone_is_live__psr_1_start\",\"111\":\"video:encoding:iphone_live_playback_mos_loss\",\"112\":\"video:encoding:iphone_live_playback_mos_loss\",\"113\":\"video:encoding:iphone_live_playback_mos_loss\",\"114\":\"is_live_watch_time_given_iphone\",\"115\":\"video:encoding:iphone_live_playback_mos_loss\",\"116\":\"video:sbl_iphone_is_live__smtbr\",\"117\":\"wilde_scroll_frame_drops_per_minute\",\"118\":\"is_live_watch_time_given_iphone\",\"119\":\"is_live_watch_time_given_iphone\",\"120\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"121\":\"video:sbl_iphone_is_live__smtbr\",\"122\":\"sbl_iphone_is_live__psr_1_start\",\"123\":\"is_live_watch_time_given_iphone\",\"124\":\"video:sbl_iphone_is_live__smtbr\",\"125\":\"video:encoding:iphone_live_playback_mos_loss\",\"126\":\"video:sbl_iphone_is_live__smtbr\",\"127\":\"wilde_scroll_frame_drops_per_minute\",\"128\":\"video:sbl_iphone_is_live__smtbr\",\"129\":\"wilde_scroll_frame_drops_per_minute\",\"130\":\"is_live_watch_time_given_iphone\",\"131\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"132\":\"sbl_iphone_is_live__psr_1_start\",\"133\":\"video:encoding:iphone_live_playback_mos_loss\",\"134\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"135\":\"wilde_scroll_frame_drops_per_minute\",\"136\":\"video:sbl_iphone_is_live__smtbr\",\"137\":\"wilde_scroll_frame_drops_per_minute\",\"138\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"139\":\"video:sbl_iphone_is_live__smtbr\",\"140\":\"video:sbl_iphone_is_live__smtbr\",\"141\":\"wilde_scroll_frame_drops_per_minute\",\"142\":\"wilde_scroll_frame_drops_per_minute\",\"143\":\"is_live_watch_time_given_iphone\",\"144\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"145\":\"sbl_iphone_is_live__psr_1_start\",\"146\":\"is_live_watch_time_given_iphone\",\"147\":\"video:encoding:iphone_live_playback_mos_loss\",\"148\":\"video:sbl_iphone_is_live__smtbr\",\"149\":\"wilde_scroll_frame_drops_per_minute\",\"150\":\"is_live_watch_time_given_iphone\",\"151\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"152\":\"wilde_scroll_frame_drops_per_minute\",\"153\":\"sbl_iphone_is_live__psr_1_start\",\"154\":\"sbl_iphone_is_live__psr_1_start\",\"155\":\"is_live_watch_time_given_iphone\",\"156\":\"is_live_watch_time_given_iphone\",\"157\":\"wilde_scroll_frame_drops_per_minute\",\"158\":\"sbl_iphone_is_live__psr_1_start\",\"159\":\"video:encoding:iphone_live_playback_mos_loss\",\"160\":\"video:sbl_iphone_is_live__smtbr\",\"161\":\"wilde_scroll_frame_drops_per_minute\",\"162\":\"is_live_watch_time_given_iphone\",\"163\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"164\":\"video:sbl_iphone_is_live__smtbr\",\"165\":\"sbl_iphone_is_live__psr_1_start\",\"166\":\"video:encoding:iphone_live_playback_mos_loss\",\"167\":\"video:sbl_iphone_is_live__smtbr\",\"168\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"169\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"170\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"171\":\"sbl_iphone_is_live__psr_1_start\",\"172\":\"video:sbl_iphone_is_live__smtbr\",\"173\":\"video:encoding:iphone_live_playback_mos_loss\",\"174\":\"video:sbl_iphone_is_live__smtbr\",\"175\":\"wilde_scroll_frame_drops_per_minute\",\"176\":\"is_live_watch_time_given_iphone\",\"177\":\"video:encoding:iphone_live_playback_mos_loss\",\"178\":\"is_live_watch_time_given_iphone\",\"179\":\"sbl_iphone_is_live__psr_1_start\",\"180\":\"is_live_watch_time_given_iphone\",\"181\":\"is_live_watch_time_given_iphone\",\"182\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"183\":\"video:encoding:iphone_live_playback_mos_loss\",\"184\":\"sbl_iphone_is_live__psr_1_start\",\"185\":\"video:encoding:iphone_live_playback_mos_loss\",\"186\":\"video:sbl_iphone_is_live__smtbr\",\"187\":\"wilde_scroll_frame_drops_per_minute\",\"188\":\"is_live_watch_time_given_iphone\",\"189\":\"wilde_scroll_frame_drops_per_minute\",\"190\":\"video:encoding:iphone_live_playback_mos_loss\",\"191\":\"is_live_watch_time_given_iphone\",\"192\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"193\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"194\":\"sbl_iphone_is_live__psr_1_start\",\"195\":\"video:encoding:iphone_live_playback_mos_loss\",\"196\":\"is_live_watch_time_given_iphone\",\"197\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"198\":\"video:sbl_iphone_is_live__smtbr\",\"199\":\"wilde_scroll_frame_drops_per_minute\",\"200\":\"video:sbl_iphone_is_live__smtbr\",\"201\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"202\":\"is_live_watch_time_given_iphone\",\"203\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"204\":\"is_live_watch_time_given_iphone\",\"205\":\"sbl_iphone_is_live__psr_1_start\",\"206\":\"video:encoding:iphone_live_playback_mos_loss\",\"207\":\"sbl_iphone_is_live__psr_1_start\",\"208\":\"video:sbl_iphone_is_live__smtbr\",\"209\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"210\":\"wilde_scroll_frame_drops_per_minute\",\"211\":\"is_live_watch_time_given_iphone\",\"212\":\"wilde_scroll_frame_drops_per_minute\",\"213\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"214\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"215\":\"sbl_iphone_is_live__psr_1_start\",\"216\":\"sbl_iphone_is_live__psr_1_start\",\"217\":\"video:encoding:iphone_live_playback_mos_loss\",\"218\":\"video:sbl_iphone_is_live__smtbr\",\"219\":\"is_live_watch_time_given_iphone\",\"220\":\"wilde_scroll_frame_drops_per_minute\",\"221\":\"sbl_iphone_is_live__psr_1_start\",\"222\":\"sbl_iphone_is_live__psr_1_start\",\"223\":\"is_live_watch_time_given_iphone\",\"224\":\"video:sbl_iphone_is_live__smtbr\",\"225\":\"is_live_watch_time_given_iphone\",\"226\":\"sbl_iphone_is_live__psr_1_start\",\"227\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"228\":\"sbl_iphone_is_live__psr_1_start\",\"229\":\"video:encoding:iphone_live_playback_mos_loss\",\"230\":\"video:sbl_iphone_is_live__smtbr\",\"231\":\"wilde_scroll_frame_drops_per_minute\",\"232\":\"video:encoding:iphone_live_playback_mos_loss\",\"233\":\"is_live_watch_time_given_iphone\",\"234\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"235\":\"wilde_scroll_frame_drops_per_minute\",\"236\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"237\":\"video:encoding:iphone_live_playback_mos_loss\",\"238\":\"video:encoding:iphone_live_playback_mos_loss\",\"239\":\"sbl_iphone_is_live__psr_1_start\",\"240\":\"sbl_iphone_is_live__psr_1_start\",\"241\":\"video:encoding:iphone_live_playback_mos_loss\",\"242\":\"video:sbl_iphone_is_live__smtbr\",\"243\":\"wilde_scroll_frame_drops_per_minute\",\"244\":\"is_live_watch_time_given_iphone\",\"245\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"246\":\"video:encoding:iphone_live_playback_mos_loss\",\"247\":\"sbl_iphone_is_live__psr_1_start\",\"248\":\"video:encoding:iphone_live_playback_mos_loss\",\"249\":\"video:sbl_iphone_is_live__smtbr\",\"250\":\"video:sbl_iphone_is_live__smtbr\",\"251\":\"video:encoding:iphone_live_playback_mos_loss\",\"252\":\"wilde_scroll_frame_drops_per_minute\",\"253\":\"is_live_watch_time_given_iphone\",\"254\":\"is_live_watch_time_given_iphone\",\"255\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"256\":\"sbl_iphone_is_live__psr_1_start\",\"257\":\"video:sbl_iphone_is_live__smtbr\",\"258\":\"video:sbl_iphone_is_live__smtbr\",\"259\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"260\":\"wilde_scroll_frame_drops_per_minute\",\"261\":\"video:encoding:iphone_live_playback_mos_loss\",\"262\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"263\":\"sbl_iphone_is_live__psr_1_start\",\"264\":\"video:sbl_iphone_is_live__smtbr\",\"265\":\"wilde_scroll_frame_drops_per_minute\",\"266\":\"is_live_watch_time_given_iphone\",\"267\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"268\":\"is_live_watch_time_given_iphone\",\"269\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"270\":\"sbl_iphone_is_live__psr_1_start\",\"271\":\"video:encoding:iphone_live_playback_mos_loss\",\"272\":\"sbl_iphone_is_live__psr_1_start\",\"273\":\"video:sbl_iphone_is_live__smtbr\",\"274\":\"wilde_scroll_frame_drops_per_minute\",\"275\":\"wilde_scroll_frame_drops_per_minute\",\"276\":\"is_live_watch_time_given_iphone\",\"277\":\"is_live_watch_time_given_iphone\",\"278\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"279\":\"wilde_scroll_frame_drops_per_minute\",\"280\":\"sbl_iphone_is_live__psr_1_start\",\"281\":\"sbl_iphone_is_live__psr_1_start\",\"282\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"283\":\"video:encoding:iphone_live_playback_mos_loss\",\"284\":\"video:sbl_iphone_is_live__smtbr\",\"285\":\"video:sbl_iphone_is_live__smtbr\",\"286\":\"wilde_scroll_frame_drops_per_minute\",\"287\":\"is_live_watch_time_given_iphone\",\"288\":\"is_live_watch_time_given_iphone\",\"289\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"290\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"291\":\"sbl_iphone_is_live__psr_1_start\",\"292\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"293\":\"video:encoding:iphone_live_playback_mos_loss\",\"294\":\"video:sbl_iphone_is_live__smtbr\",\"295\":\"wilde_scroll_frame_drops_per_minute\",\"296\":\"sbl_iphone_is_live__psr_1_start\",\"297\":\"video:encoding:iphone_live_playback_mos_loss\",\"298\":\"sbl_iphone_is_live__psr_1_start\",\"299\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"300\":\"video:sbl_iphone_is_live__smtbr\",\"301\":\"sbl_iphone_is_live__psr_1_start\",\"302\":\"video:sbl_iphone_is_live__smtbr\",\"303\":\"wilde_scroll_frame_drops_per_minute\",\"304\":\"is_live_watch_time_given_iphone\",\"305\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"306\":\"sbl_iphone_is_live__psr_1_start\",\"307\":\"sbl_iphone_is_live__psr_1_start\",\"308\":\"video:encoding:iphone_live_playback_mos_loss\",\"309\":\"video:sbl_iphone_is_live__smtbr\",\"310\":\"video:encoding:iphone_live_playback_mos_loss\",\"311\":\"sbl_iphone_is_live__psr_1_start\",\"312\":\"video:encoding:iphone_live_playback_mos_loss\",\"313\":\"video:encoding:iphone_live_playback_mos_loss\",\"314\":\"wilde_scroll_frame_drops_per_minute\",\"315\":\"is_live_watch_time_given_iphone\",\"316\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"317\":\"wilde_scroll_frame_drops_per_minute\",\"318\":\"sbl_iphone_is_live__psr_1_start\",\"319\":\"video:encoding:iphone_live_playback_mos_loss\",\"320\":\"video:sbl_iphone_is_live__smtbr\",\"321\":\"wilde_scroll_frame_drops_per_minute\",\"322\":\"video:encoding:iphone_live_playback_mos_loss\",\"323\":\"video:sbl_iphone_is_live__smtbr\",\"324\":\"video:sbl_iphone_is_live__smtbr\",\"325\":\"wilde_scroll_frame_drops_per_minute\",\"326\":\"is_live_watch_time_given_iphone\",\"327\":\"is_live_watch_time_given_iphone\",\"328\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"329\":\"sbl_iphone_is_live__psr_1_start\",\"330\":\"video:encoding:iphone_live_playback_mos_loss\",\"331\":\"is_live_watch_time_given_iphone\",\"332\":\"is_live_watch_time_given_iphone\",\"333\":\"sbl_iphone_is_live__psr_1_start\",\"334\":\"wilde_scroll_frame_drops_per_minute\",\"335\":\"video:sbl_iphone_is_live__smtbr\",\"336\":\"video:encoding:iphone_live_playback_mos_loss\",\"337\":\"video:sbl_iphone_is_live__smtbr\",\"338\":\"wilde_scroll_frame_drops_per_minute\",\"339\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"340\":\"is_live_watch_time_given_iphone\",\"341\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"342\":\"sbl_iphone_is_live__psr_1_start\",\"343\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"344\":\"video:encoding:iphone_live_playback_mos_loss\",\"345\":\"video:sbl_iphone_is_live__smtbr\",\"346\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"347\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"348\":\"wilde_scroll_frame_drops_per_minute\",\"349\":\"video:encoding:iphone_live_playback_mos_loss\",\"350\":\"is_live_watch_time_given_iphone\",\"351\":\"is_live_watch_time_given_iphone\",\"352\":\"wilde_scroll_frame_drops_per_minute\",\"353\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"354\":\"sbl_iphone_is_live__psr_1_start\",\"355\":\"wilde_scroll_frame_drops_per_minute\",\"356\":\"video:encoding:iphone_live_playback_mos_loss\",\"357\":\"sbl_iphone_is_live__psr_1_start\",\"358\":\"video:sbl_iphone_is_live__smtbr\",\"359\":\"wilde_scroll_frame_drops_per_minute\",\"360\":\"is_live_watch_time_given_iphone\",\"361\":\"sbl_iphone_is_live__psr_1_start\",\"362\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"363\":\"sbl_iphone_is_live__psr_1_start\",\"364\":\"video:encoding:iphone_live_playback_mos_loss\",\"365\":\"sbl_iphone_is_live__psr_1_start\",\"366\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"367\":\"video:sbl_iphone_is_live__smtbr\",\"368\":\"video:encoding:iphone_live_playback_mos_loss\",\"369\":\"wilde_scroll_frame_drops_per_minute\",\"370\":\"sbl_iphone_is_live__psr_1_start\",\"371\":\"video:encoding:iphone_live_playback_mos_loss\",\"372\":\"video:sbl_iphone_is_live__smtbr\",\"373\":\"wilde_scroll_frame_drops_per_minute\",\"374\":\"is_live_watch_time_given_iphone\",\"375\":\"video:encoding:iphone_live_playback_mos_loss\",\"376\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"377\":\"sbl_iphone_is_live__psr_1_start\",\"378\":\"video:encoding:iphone_live_playback_mos_loss\",\"379\":\"video:sbl_iphone_is_live__smtbr\",\"380\":\"wilde_scroll_frame_drops_per_minute\",\"381\":\"sbl_iphone_is_live__psr_1_start\",\"382\":\"video:encoding:iphone_live_playback_mos_loss\",\"383\":\"video:sbl_iphone_is_live__smtbr\",\"384\":\"is_live_watch_time_given_iphone\",\"385\":\"wilde_scroll_frame_drops_per_minute\",\"386\":\"is_live_watch_time_given_iphone\",\"387\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"388\":\"sbl_iphone_is_live__psr_1_start\",\"389\":\"video:sbl_iphone_is_live__smtbr\"},\"n\":{\"0\":1481983,\"1\":1481983,\"2\":1478873,\"3\":1480310,\"4\":1480218,\"5\":1479019,\"6\":1480310,\"7\":1480310,\"8\":1478983,\"9\":1480576,\"10\":1480576,\"11\":1480524,\"12\":1480576,\"13\":1479939,\"14\":1480576,\"15\":1480576,\"16\":1479981,\"17\":1469191,\"18\":1479939,\"19\":1479019,\"20\":1480576,\"21\":1478905,\"22\":1478905,\"23\":1478905,\"24\":1480190,\"25\":1478905,\"26\":1478983,\"27\":1478905,\"28\":1480524,\"29\":1469191,\"30\":1478905,\"31\":1481988,\"32\":1479513,\"33\":1480512,\"34\":1481988,\"35\":1467130,\"36\":1481988,\"37\":1481988,\"38\":1481988,\"39\":1481988,\"40\":1481427,\"41\":1469191,\"42\":1481427,\"43\":1478983,\"44\":1480524,\"45\":1480359,\"46\":1480190,\"47\":1479119,\"48\":1481427,\"49\":1478787,\"50\":1481427,\"51\":1481427,\"52\":1481427,\"53\":1469191,\"54\":1481677,\"55\":1481677,\"56\":1481677,\"57\":1480190,\"58\":1481677,\"59\":1481677,\"60\":1479119,\"61\":1481677,\"62\":1480524,\"63\":1478787,\"64\":1481096,\"65\":1480585,\"66\":1480349,\"67\":1480349,\"68\":1478570,\"69\":1480349,\"70\":1480349,\"71\":1480349,\"72\":1480349,\"73\":1481018,\"74\":1479833,\"75\":1479833,\"76\":1479833,\"77\":1469062,\"78\":1478787,\"79\":1480585,\"80\":1481096,\"81\":1478787,\"82\":1481096,\"83\":1478787,\"84\":1478787,\"85\":1482047,\"86\":1479119,\"87\":1482047,\"88\":1478135,\"89\":1469062,\"90\":1478983,\"91\":1482047,\"92\":1482047,\"93\":1482047,\"94\":1479833,\"95\":1482047,\"96\":1479802,\"97\":1479802,\"98\":1481096,\"99\":1479119,\"100\":1479802,\"101\":1479619,\"102\":1469062,\"103\":1479802,\"104\":1479802,\"105\":1478135,\"106\":1479802,\"107\":1481331,\"108\":1479833,\"109\":1481331,\"110\":1481331,\"111\":1481331,\"112\":1467130,\"113\":1480190,\"114\":1478135,\"115\":1469062,\"116\":1481331,\"117\":1481331,\"118\":1481018,\"119\":1479458,\"120\":1479458,\"121\":1478135,\"122\":1479458,\"123\":1478570,\"124\":1480190,\"125\":1479458,\"126\":1479458,\"127\":1478584,\"128\":1479119,\"129\":1479458,\"130\":1480308,\"131\":1480308,\"132\":1480308,\"133\":1480308,\"134\":1481018,\"135\":1480190,\"136\":1480308,\"137\":1478135,\"138\":1478570,\"139\":1480973,\"140\":1469062,\"141\":1480308,\"142\":1479119,\"143\":1482037,\"144\":1482037,\"145\":1482037,\"146\":1481018,\"147\":1482037,\"148\":1482037,\"149\":1482037,\"150\":1481302,\"151\":1481302,\"152\":1469062,\"153\":1481018,\"154\":1478570,\"155\":1481695,\"156\":1479513,\"157\":1467130,\"158\":1481302,\"159\":1481302,\"160\":1481302,\"161\":1481302,\"162\":1480359,\"163\":1480359,\"164\":1480218,\"165\":1480359,\"166\":1480359,\"167\":1480359,\"168\":1481018,\"169\":1481695,\"170\":1479513,\"171\":1481695,\"172\":1479513,\"173\":1481695,\"174\":1481695,\"175\":1481695,\"176\":1480683,\"177\":1481983,\"178\":1478584,\"179\":1481018,\"180\":1477999,\"181\":1482892,\"182\":1482892,\"183\":1481018,\"184\":1482892,\"185\":1482892,\"186\":1482892,\"187\":1479513,\"188\":1468547,\"189\":1482892,\"190\":1481018,\"191\":1481848,\"192\":1481848,\"193\":1478584,\"194\":1481848,\"195\":1481848,\"196\":1479981,\"197\":1477999,\"198\":1481848,\"199\":1481848,\"200\":1478570,\"201\":1479939,\"202\":1480933,\"203\":1480933,\"204\":1478983,\"205\":1480933,\"206\":1480933,\"207\":1481983,\"208\":1480933,\"209\":1479981,\"210\":1480933,\"211\":1467843,\"212\":1480585,\"213\":1468547,\"214\":1467843,\"215\":1477999,\"216\":1467843,\"217\":1467843,\"218\":1467843,\"219\":1480218,\"220\":1467843,\"221\":1481096,\"222\":1479981,\"223\":1478873,\"224\":1481018,\"225\":1469031,\"226\":1468547,\"227\":1469031,\"228\":1469031,\"229\":1469031,\"230\":1469031,\"231\":1469031,\"232\":1477999,\"233\":1472260,\"234\":1472260,\"235\":1481018,\"236\":1480218,\"237\":1479981,\"238\":1468547,\"239\":1478584,\"240\":1472260,\"241\":1472260,\"242\":1472260,\"243\":1472260,\"244\":1480973,\"245\":1480973,\"246\":1481096,\"247\":1480973,\"248\":1480973,\"249\":1477999,\"250\":1468547,\"251\":1478584,\"252\":1468547,\"253\":1479619,\"254\":1480860,\"255\":1480860,\"256\":1480860,\"257\":1481172,\"258\":1476856,\"259\":1480585,\"260\":1480218,\"261\":1480860,\"262\":1480683,\"263\":1480218,\"264\":1480860,\"265\":1480860,\"266\":1479951,\"267\":1479619,\"268\":1481203,\"269\":1479951,\"270\":1479951,\"271\":1479951,\"272\":1480585,\"273\":1479951,\"274\":1479951,\"275\":1480973,\"276\":1481172,\"277\":1481569,\"278\":1481569,\"279\":1479981,\"280\":1480683,\"281\":1481569,\"282\":1478135,\"283\":1481569,\"284\":1481569,\"285\":1479939,\"286\":1481569,\"287\":1467130,\"288\":11825590,\"289\":11825590,\"290\":1481203,\"291\":11825590,\"292\":1481172,\"293\":11825590,\"294\":11825590,\"295\":11825590,\"296\":1479619,\"297\":1480683,\"298\":1479513,\"299\":1467130,\"300\":1481983,\"301\":1481203,\"302\":1480683,\"303\":1480683,\"304\":1479726,\"305\":1479726,\"306\":1479726,\"307\":1481172,\"308\":1479726,\"309\":1479726,\"310\":1479619,\"311\":1467130,\"312\":1481203,\"313\":1480585,\"314\":1479726,\"315\":1478014,\"316\":1478014,\"317\":1481983,\"318\":1478014,\"319\":1478014,\"320\":1478014,\"321\":1478014,\"322\":1481172,\"323\":1481203,\"324\":1481018,\"325\":1481203,\"326\":1479019,\"327\":1478485,\"328\":1478485,\"329\":1479939,\"330\":1479833,\"331\":1469191,\"332\":1480512,\"333\":1478485,\"334\":1481172,\"335\":1479619,\"336\":1478485,\"337\":1478485,\"338\":1478485,\"339\":1479019,\"340\":1479278,\"341\":1479278,\"342\":1479278,\"343\":1469191,\"344\":1479278,\"345\":1479278,\"346\":1478873,\"347\":1480512,\"348\":1479278,\"349\":1479939,\"350\":1478481,\"351\":1480561,\"352\":1478570,\"353\":1480561,\"354\":1480561,\"355\":1480524,\"356\":1480561,\"357\":1478873,\"358\":1480561,\"359\":1480561,\"360\":1476856,\"361\":1480512,\"362\":1476856,\"363\":1476856,\"364\":1476856,\"365\":1479019,\"366\":1478481,\"367\":1478584,\"368\":1478873,\"369\":1476856,\"370\":1478481,\"371\":1478481,\"372\":1478481,\"373\":1478481,\"374\":1477265,\"375\":1480512,\"376\":1477265,\"377\":1478983,\"378\":1479019,\"379\":1478873,\"380\":1477999,\"381\":1477265,\"382\":1477265,\"383\":1477265,\"384\":1480524,\"385\":1477265,\"386\":1480310,\"387\":1480310,\"388\":1480310,\"389\":1480512},\"random_split\":{\"0\":-1,\"1\":-1,\"2\":-1,\"3\":-1,\"4\":-1,\"5\":-1,\"6\":-1,\"7\":-1,\"8\":-1,\"9\":-1,\"10\":-1,\"11\":-1,\"12\":-1,\"13\":-1,\"14\":-1,\"15\":-1,\"16\":-1,\"17\":-1,\"18\":-1,\"19\":-1,\"20\":-1,\"21\":-1,\"22\":-1,\"23\":-1,\"24\":-1,\"25\":-1,\"26\":-1,\"27\":-1,\"28\":-1,\"29\":-1,\"30\":-1,\"31\":-1,\"32\":-1,\"33\":-1,\"34\":-1,\"35\":-1,\"36\":-1,\"37\":-1,\"38\":-1,\"39\":-1,\"40\":-1,\"41\":-1,\"42\":-1,\"43\":-1,\"44\":-1,\"45\":-1,\"46\":-1,\"47\":-1,\"48\":-1,\"49\":-1,\"50\":-1,\"51\":-1,\"52\":-1,\"53\":-1,\"54\":-1,\"55\":-1,\"56\":-1,\"57\":-1,\"58\":-1,\"59\":-1,\"60\":-1,\"61\":-1,\"62\":-1,\"63\":-1,\"64\":-1,\"65\":-1,\"66\":-1,\"67\":-1,\"68\":-1,\"69\":-1,\"70\":-1,\"71\":-1,\"72\":-1,\"73\":-1,\"74\":-1,\"75\":-1,\"76\":-1,\"77\":-1,\"78\":-1,\"79\":-1,\"80\":-1,\"81\":-1,\"82\":-1,\"83\":-1,\"84\":-1,\"85\":-1,\"86\":-1,\"87\":-1,\"88\":-1,\"89\":-1,\"90\":-1,\"91\":-1,\"92\":-1,\"93\":-1,\"94\":-1,\"95\":-1,\"96\":-1,\"97\":-1,\"98\":-1,\"99\":-1,\"100\":-1,\"101\":-1,\"102\":-1,\"103\":-1,\"104\":-1,\"105\":-1,\"106\":-1,\"107\":-1,\"108\":-1,\"109\":-1,\"110\":-1,\"111\":-1,\"112\":-1,\"113\":-1,\"114\":-1,\"115\":-1,\"116\":-1,\"117\":-1,\"118\":-1,\"119\":-1,\"120\":-1,\"121\":-1,\"122\":-1,\"123\":-1,\"124\":-1,\"125\":-1,\"126\":-1,\"127\":-1,\"128\":-1,\"129\":-1,\"130\":-1,\"131\":-1,\"132\":-1,\"133\":-1,\"134\":-1,\"135\":-1,\"136\":-1,\"137\":-1,\"138\":-1,\"139\":-1,\"140\":-1,\"141\":-1,\"142\":-1,\"143\":-1,\"144\":-1,\"145\":-1,\"146\":-1,\"147\":-1,\"148\":-1,\"149\":-1,\"150\":-1,\"151\":-1,\"152\":-1,\"153\":-1,\"154\":-1,\"155\":-1,\"156\":-1,\"157\":-1,\"158\":-1,\"159\":-1,\"160\":-1,\"161\":-1,\"162\":-1,\"163\":-1,\"164\":-1,\"165\":-1,\"166\":-1,\"167\":-1,\"168\":-1,\"169\":-1,\"170\":-1,\"171\":-1,\"172\":-1,\"173\":-1,\"174\":-1,\"175\":-1,\"176\":-1,\"177\":-1,\"178\":-1,\"179\":-1,\"180\":-1,\"181\":-1,\"182\":-1,\"183\":-1,\"184\":-1,\"185\":-1,\"186\":-1,\"187\":-1,\"188\":-1,\"189\":-1,\"190\":-1,\"191\":-1,\"192\":-1,\"193\":-1,\"194\":-1,\"195\":-1,\"196\":-1,\"197\":-1,\"198\":-1,\"199\":-1,\"200\":-1,\"201\":-1,\"202\":-1,\"203\":-1,\"204\":-1,\"205\":-1,\"206\":-1,\"207\":-1,\"208\":-1,\"209\":-1,\"210\":-1,\"211\":-1,\"212\":-1,\"213\":-1,\"214\":-1,\"215\":-1,\"216\":-1,\"217\":-1,\"218\":-1,\"219\":-1,\"220\":-1,\"221\":-1,\"222\":-1,\"223\":-1,\"224\":-1,\"225\":-1,\"226\":-1,\"227\":-1,\"228\":-1,\"229\":-1,\"230\":-1,\"231\":-1,\"232\":-1,\"233\":-1,\"234\":-1,\"235\":-1,\"236\":-1,\"237\":-1,\"238\":-1,\"239\":-1,\"240\":-1,\"241\":-1,\"242\":-1,\"243\":-1,\"244\":-1,\"245\":-1,\"246\":-1,\"247\":-1,\"248\":-1,\"249\":-1,\"250\":-1,\"251\":-1,\"252\":-1,\"253\":-1,\"254\":-1,\"255\":-1,\"256\":-1,\"257\":-1,\"258\":-1,\"259\":-1,\"260\":-1,\"261\":-1,\"262\":-1,\"263\":-1,\"264\":-1,\"265\":-1,\"266\":-1,\"267\":-1,\"268\":-1,\"269\":-1,\"270\":-1,\"271\":-1,\"272\":-1,\"273\":-1,\"274\":-1,\"275\":-1,\"276\":-1,\"277\":-1,\"278\":-1,\"279\":-1,\"280\":-1,\"281\":-1,\"282\":-1,\"283\":-1,\"284\":-1,\"285\":-1,\"286\":-1,\"287\":-1,\"288\":-1,\"289\":-1,\"290\":-1,\"291\":-1,\"292\":-1,\"293\":-1,\"294\":-1,\"295\":-1,\"296\":-1,\"297\":-1,\"298\":-1,\"299\":-1,\"300\":-1,\"301\":-1,\"302\":-1,\"303\":-1,\"304\":-1,\"305\":-1,\"306\":-1,\"307\":-1,\"308\":-1,\"309\":-1,\"310\":-1,\"311\":-1,\"312\":-1,\"313\":-1,\"314\":-1,\"315\":-1,\"316\":-1,\"317\":-1,\"318\":-1,\"319\":-1,\"320\":-1,\"321\":-1,\"322\":-1,\"323\":-1,\"324\":-1,\"325\":-1,\"326\":-1,\"327\":-1,\"328\":-1,\"329\":-1,\"330\":-1,\"331\":-1,\"332\":-1,\"333\":-1,\"334\":-1,\"335\":-1,\"336\":-1,\"337\":-1,\"338\":-1,\"339\":-1,\"340\":-1,\"341\":-1,\"342\":-1,\"343\":-1,\"344\":-1,\"345\":-1,\"346\":-1,\"347\":-1,\"348\":-1,\"349\":-1,\"350\":-1,\"351\":-1,\"352\":-1,\"353\":-1,\"354\":-1,\"355\":-1,\"356\":-1,\"357\":-1,\"358\":-1,\"359\":-1,\"360\":-1,\"361\":-1,\"362\":-1,\"363\":-1,\"364\":-1,\"365\":-1,\"366\":-1,\"367\":-1,\"368\":-1,\"369\":-1,\"370\":-1,\"371\":-1,\"372\":-1,\"373\":-1,\"374\":-1,\"375\":-1,\"376\":-1,\"377\":-1,\"378\":-1,\"379\":-1,\"380\":-1,\"381\":-1,\"382\":-1,\"383\":-1,\"384\":-1,\"385\":-1,\"386\":-1,\"387\":-1,\"388\":-1,\"389\":-1},\"sem\":{\"0\":0.6438783831,\"1\":0.0013165743,\"2\":283.7723847434,\"3\":0.0809140685,\"4\":0.0811411149,\"5\":3.0642047952,\"6\":3.1059965213,\"7\":282.8720052837,\"8\":0.0797522203,\"9\":0.6496813829,\"10\":0.001212866,\"11\":0.0012595912,\"12\":0.0003098182,\"13\":0.6447858935,\"14\":0.0788658132,\"15\":2.7428774802,\"16\":3.1856317874,\"17\":0.0002911616,\"18\":286.3947593292,\"19\":283.1680736661,\"20\":281.2743734519,\"21\":0.6479318224,\"22\":0.0012540285,\"23\":0.0002907722,\"24\":0.648257544,\"25\":0.0813509598,\"26\":2.960039117,\"27\":3.3887646921,\"28\":0.0003184253,\"29\":0.0928064209,\"30\":286.6654931808,\"31\":0.6369141637,\"32\":0.080884216,\"33\":277.8300120803,\"34\":0.0012550992,\"35\":3.3648583992,\"36\":0.0002908116,\"37\":0.0839173129,\"38\":3.4043069237,\"39\":277.0711970686,\"40\":0.6399438419,\"41\":3.4722073554,\"42\":0.0012832591,\"43\":288.3566750293,\"44\":0.0822475278,\"45\":282.2402798037,\"46\":0.0012855621,\"47\":0.64261778,\"48\":0.0003015461,\"49\":0.6480361782,\"50\":0.0809169857,\"51\":3.2014458683,\"52\":278.4346008441,\"53\":286.0972144661,\"54\":0.6549631657,\"55\":0.0012637703,\"56\":0.0002913484,\"57\":0.0002974362,\"58\":0.0794328098,\"59\":3.2776977894,\"60\":0.0011822577,\"61\":284.6174148954,\"62\":3.2845471921,\"63\":0.0013062405,\"64\":0.6504554673,\"65\":0.6465844814,\"66\":0.6448982132,\"67\":0.0011963874,\"68\":0.0806785916,\"69\":0.0002846951,\"70\":0.0817873792,\"71\":3.300185453,\"72\":283.2024860454,\"73\":276.5419182419,\"74\":0.6380372589,\"75\":0.0012628273,\"76\":0.0003044162,\"77\":0.6512173951,\"78\":0.0003015343,\"79\":3.2666004137,\"80\":0.0012987526,\"81\":0.078364983,\"82\":3.3693976309,\"83\":3.0574206814,\"84\":286.2965815835,\"85\":0.6447556567,\"86\":0.000288794,\"87\":0.0012716809,\"88\":0.0002933589,\"89\":0.0013364411,\"90\":0.001235421,\"91\":0.0002983727,\"92\":0.0819031598,\"93\":3.115313898,\"94\":3.2699763775,\"95\":285.9775844343,\"96\":0.6428251902,\"97\":0.0012293667,\"98\":279.1069509759,\"99\":0.081922531,\"100\":0.0003056654,\"101\":286.6083751636,\"102\":0.0003044537,\"103\":0.0799137947,\"104\":3.162627227,\"105\":0.0797707668,\"106\":280.6193946417,\"107\":0.6478216724,\"108\":282.0939719039,\"109\":0.0013351494,\"110\":0.0002868228,\"111\":0.0887555675,\"112\":0.0827505804,\"113\":0.079642608,\"114\":0.6481445772,\"115\":0.0798213142,\"116\":3.421934122,\"117\":279.5055938477,\"118\":0.6555349423,\"119\":0.6522903708,\"120\":0.0012401523,\"121\":3.2794823102,\"122\":0.0003004482,\"123\":0.6395857527,\"124\":3.2007952522,\"125\":0.080191765,\"126\":3.1660465211,\"127\":285.6793437753,\"128\":3.2542402464,\"129\":287.22088276,\"130\":0.6454789531,\"131\":0.001247708,\"132\":0.0003251488,\"133\":0.0805126392,\"134\":0.0012910856,\"135\":281.2317319543,\"136\":3.0582145471,\"137\":283.7932343887,\"138\":0.0012182823,\"139\":3.1827660245,\"140\":2.9105989278,\"141\":283.053191502,\"142\":282.3119166468,\"143\":0.6473938384,\"144\":0.0012776994,\"145\":0.0003142524,\"146\":0.6501908763,\"147\":0.0849416926,\"148\":3.1969989571,\"149\":286.5599255105,\"150\":0.6405644596,\"151\":0.0012511419,\"152\":280.2900996286,\"153\":0.0003138512,\"154\":0.0003172899,\"155\":0.6513139382,\"156\":0.6506230846,\"157\":278.5189104104,\"158\":0.0003051889,\"159\":0.0792286791,\"160\":3.1052026703,\"161\":277.9431899637,\"162\":0.6382085604,\"163\":0.0012654424,\"164\":3.0549719441,\"165\":0.0003014566,\"166\":0.0826723617,\"167\":3.2378828313,\"168\":0.0012525566,\"169\":0.0012357338,\"170\":0.0012331696,\"171\":0.0002882185,\"172\":3.2191689492,\"173\":0.0805274051,\"174\":3.1912893944,\"175\":282.9706434302,\"176\":0.6483727137,\"177\":0.0798427722,\"178\":0.6526885478,\"179\":0.0003074522,\"180\":0.6470059999,\"181\":0.6446593929,\"182\":0.0012781153,\"183\":0.0824241367,\"184\":0.0003063617,\"185\":0.0796455216,\"186\":3.1060971969,\"187\":282.2633428389,\"188\":0.651775473,\"189\":278.6398068411,\"190\":0.0795283044,\"191\":0.6481339031,\"192\":0.0012343887,\"193\":0.0012008368,\"194\":0.0002895019,\"195\":0.0810703243,\"196\":0.6471987737,\"197\":0.0012432457,\"198\":3.185534023,\"199\":284.20541277,\"200\":3.2403354798,\"201\":0.0013149893,\"202\":0.6399200991,\"203\":0.0012391745,\"204\":0.6462932217,\"205\":0.0003130787,\"206\":0.0826486767,\"207\":0.0003133031,\"208\":3.2584805342,\"209\":0.0013265749,\"210\":290.9337313187,\"211\":0.6457742969,\"212\":282.0143063207,\"213\":0.0012688817,\"214\":0.0012610256,\"215\":0.000295251,\"216\":0.0003176392,\"217\":0.0791318708,\"218\":3.0197626234,\"219\":0.6498362462,\"220\":287.1380947149,\"221\":0.0002889531,\"222\":0.0003109648,\"223\":0.6467427093,\"224\":2.8488151095,\"225\":0.6564496166,\"226\":0.0003075024,\"227\":0.0011462634,\"228\":0.0002976949,\"229\":0.0812672394,\"230\":3.2484257029,\"231\":287.6922388307,\"232\":0.0807687757,\"233\":0.6456571635,\"234\":0.0012164398,\"235\":280.0213278868,\"236\":0.0012649086,\"237\":0.0800357054,\"238\":0.0801967677,\"239\":0.0002878186,\"240\":0.0002862892,\"241\":0.0821513165,\"242\":3.3144326642,\"243\":283.1844435894,\"244\":0.6452097675,\"245\":0.0012326041,\"246\":0.0812237913,\"247\":0.0003227272,\"248\":0.0799957173,\"249\":3.1689279219,\"250\":2.9764309392,\"251\":0.0802257419,\"252\":282.9674655793,\"253\":0.6528350015,\"254\":0.6493101072,\"255\":0.0012394347,\"256\":0.0003106276,\"257\":3.0223129529,\"258\":3.0563413868,\"259\":0.0012181699,\"260\":272.4768897764,\"261\":0.0806877559,\"262\":0.0012573883,\"263\":0.000307409,\"264\":3.1349595067,\"265\":286.3012845933,\"266\":0.6514522829,\"267\":0.0012749353,\"268\":0.6420484326,\"269\":0.0012295415,\"270\":0.0003020993,\"271\":0.0801177728,\"272\":0.000335402,\"273\":3.1930796575,\"274\":273.9303739105,\"275\":281.3138986826,\"276\":0.6485957151,\"277\":0.6480295742,\"278\":0.0012529199,\"279\":285.7058094397,\"280\":0.0002974581,\"281\":0.0003003918,\"282\":0.0012488136,\"283\":0.0803990426,\"284\":3.0163311113,\"285\":2.9553845083,\"286\":282.6912397022,\"287\":0.6526255067,\"288\":0.2288291887,\"289\":0.000447223,\"290\":0.0012837262,\"291\":0.0001070233,\"292\":0.0011984298,\"293\":0.0285642775,\"294\":1.1501723589,\"295\":99.9722636227,\"296\":0.0003274158,\"297\":0.0799998335,\"298\":0.0003164621,\"299\":0.0012782802,\"300\":2.7995591693,\"301\":0.0003135666,\"302\":3.2319682231,\"303\":285.746698147,\"304\":0.6393158965,\"305\":0.0013272597,\"306\":0.0003076867,\"307\":0.0003029876,\"308\":0.07911946,\"309\":3.1004932527,\"310\":0.0797741084,\"311\":0.0002955348,\"312\":0.0804520976,\"313\":0.0821882124,\"314\":280.5440921102,\"315\":0.6344001155,\"316\":0.0012173422,\"317\":287.0395690212,\"318\":0.0003101611,\"319\":0.0841571171,\"320\":3.3568274275,\"321\":282.6519114376,\"322\":0.0810040297,\"323\":3.1731804451,\"324\":3.1348533146,\"325\":279.3436617869,\"326\":0.6390040261,\"327\":0.6595613981,\"328\":0.0012877196,\"329\":0.0003236822,\"330\":0.0862643523,\"331\":0.6459219559,\"332\":0.6541037887,\"333\":0.0002988969,\"334\":285.586505789,\"335\":3.1562903205,\"336\":0.0801927661,\"337\":3.2777099724,\"338\":283.5107544467,\"339\":0.0012237639,\"340\":0.6467182059,\"341\":0.0012474857,\"342\":0.0002935751,\"343\":0.0013152073,\"344\":0.0814928069,\"345\":3.2420798692,\"346\":0.0012194474,\"347\":0.0012615272,\"348\":283.8023615777,\"349\":0.0798661205,\"350\":0.6474421068,\"351\":0.6498041005,\"352\":287.9895598548,\"353\":0.0012305226,\"354\":0.0002902185,\"355\":282.141818891,\"356\":0.081458047,\"357\":0.0003004984,\"358\":3.3095076055,\"359\":281.5563591185,\"360\":0.6490310218,\"361\":0.0003006316,\"362\":0.0012955655,\"363\":0.0003024574,\"364\":0.0791228977,\"365\":0.0002959996,\"366\":0.0012987164,\"367\":3.2438667924,\"368\":0.0808244668,\"369\":277.7351410664,\"370\":0.0002919429,\"371\":0.0862718544,\"372\":3.3148940661,\"373\":282.8312089163,\"374\":0.6533251689,\"375\":0.0792092374,\"376\":0.0012809473,\"377\":0.0002954293,\"378\":0.0821675973,\"379\":3.2167787791,\"380\":282.5393171893,\"381\":0.0003057554,\"382\":0.0813591895,\"383\":3.2199858614,\"384\":0.649326425,\"385\":289.9387108706,\"386\":0.6486911575,\"387\":0.0012028984,\"388\":0.000303618,\"389\":3.0483049574},\"start_time\":{\"0\":1553817600000,\"1\":1553817600000,\"2\":1553817600000,\"3\":1553817600000,\"4\":1553817600000,\"5\":1553817600000,\"6\":1553817600000,\"7\":1553817600000,\"8\":1553817600000,\"9\":1553817600000,\"10\":1553817600000,\"11\":1553817600000,\"12\":1553817600000,\"13\":1553817600000,\"14\":1553817600000,\"15\":1553817600000,\"16\":1553817600000,\"17\":1553817600000,\"18\":1553817600000,\"19\":1553817600000,\"20\":1553817600000,\"21\":1553817600000,\"22\":1553817600000,\"23\":1553817600000,\"24\":1553817600000,\"25\":1553817600000,\"26\":1553817600000,\"27\":1553817600000,\"28\":1553817600000,\"29\":1553817600000,\"30\":1553817600000,\"31\":1553817600000,\"32\":1553817600000,\"33\":1553817600000,\"34\":1553817600000,\"35\":1553817600000,\"36\":1553817600000,\"37\":1553817600000,\"38\":1553817600000,\"39\":1553817600000,\"40\":1553817600000,\"41\":1553817600000,\"42\":1553817600000,\"43\":1553817600000,\"44\":1553817600000,\"45\":1553817600000,\"46\":1553817600000,\"47\":1553817600000,\"48\":1553817600000,\"49\":1553817600000,\"50\":1553817600000,\"51\":1553817600000,\"52\":1553817600000,\"53\":1553817600000,\"54\":1553817600000,\"55\":1553817600000,\"56\":1553817600000,\"57\":1553817600000,\"58\":1553817600000,\"59\":1553817600000,\"60\":1553817600000,\"61\":1553817600000,\"62\":1553817600000,\"63\":1553817600000,\"64\":1553817600000,\"65\":1553817600000,\"66\":1553817600000,\"67\":1553817600000,\"68\":1553817600000,\"69\":1553817600000,\"70\":1553817600000,\"71\":1553817600000,\"72\":1553817600000,\"73\":1553817600000,\"74\":1553817600000,\"75\":1553817600000,\"76\":1553817600000,\"77\":1553817600000,\"78\":1553817600000,\"79\":1553817600000,\"80\":1553817600000,\"81\":1553817600000,\"82\":1553817600000,\"83\":1553817600000,\"84\":1553817600000,\"85\":1553817600000,\"86\":1553817600000,\"87\":1553817600000,\"88\":1553817600000,\"89\":1553817600000,\"90\":1553817600000,\"91\":1553817600000,\"92\":1553817600000,\"93\":1553817600000,\"94\":1553817600000,\"95\":1553817600000,\"96\":1553817600000,\"97\":1553817600000,\"98\":1553817600000,\"99\":1553817600000,\"100\":1553817600000,\"101\":1553817600000,\"102\":1553817600000,\"103\":1553817600000,\"104\":1553817600000,\"105\":1553817600000,\"106\":1553817600000,\"107\":1553817600000,\"108\":1553817600000,\"109\":1553817600000,\"110\":1553817600000,\"111\":1553817600000,\"112\":1553817600000,\"113\":1553817600000,\"114\":1553817600000,\"115\":1553817600000,\"116\":1553817600000,\"117\":1553817600000,\"118\":1553817600000,\"119\":1553817600000,\"120\":1553817600000,\"121\":1553817600000,\"122\":1553817600000,\"123\":1553817600000,\"124\":1553817600000,\"125\":1553817600000,\"126\":1553817600000,\"127\":1553817600000,\"128\":1553817600000,\"129\":1553817600000,\"130\":1553817600000,\"131\":1553817600000,\"132\":1553817600000,\"133\":1553817600000,\"134\":1553817600000,\"135\":1553817600000,\"136\":1553817600000,\"137\":1553817600000,\"138\":1553817600000,\"139\":1553817600000,\"140\":1553817600000,\"141\":1553817600000,\"142\":1553817600000,\"143\":1553817600000,\"144\":1553817600000,\"145\":1553817600000,\"146\":1553817600000,\"147\":1553817600000,\"148\":1553817600000,\"149\":1553817600000,\"150\":1553817600000,\"151\":1553817600000,\"152\":1553817600000,\"153\":1553817600000,\"154\":1553817600000,\"155\":1553817600000,\"156\":1553817600000,\"157\":1553817600000,\"158\":1553817600000,\"159\":1553817600000,\"160\":1553817600000,\"161\":1553817600000,\"162\":1553817600000,\"163\":1553817600000,\"164\":1553817600000,\"165\":1553817600000,\"166\":1553817600000,\"167\":1553817600000,\"168\":1553817600000,\"169\":1553817600000,\"170\":1553817600000,\"171\":1553817600000,\"172\":1553817600000,\"173\":1553817600000,\"174\":1553817600000,\"175\":1553817600000,\"176\":1553817600000,\"177\":1553817600000,\"178\":1553817600000,\"179\":1553817600000,\"180\":1553817600000,\"181\":1553817600000,\"182\":1553817600000,\"183\":1553817600000,\"184\":1553817600000,\"185\":1553817600000,\"186\":1553817600000,\"187\":1553817600000,\"188\":1553817600000,\"189\":1553817600000,\"190\":1553817600000,\"191\":1553817600000,\"192\":1553817600000,\"193\":1553817600000,\"194\":1553817600000,\"195\":1553817600000,\"196\":1553817600000,\"197\":1553817600000,\"198\":1553817600000,\"199\":1553817600000,\"200\":1553817600000,\"201\":1553817600000,\"202\":1553817600000,\"203\":1553817600000,\"204\":1553817600000,\"205\":1553817600000,\"206\":1553817600000,\"207\":1553817600000,\"208\":1553817600000,\"209\":1553817600000,\"210\":1553817600000,\"211\":1553817600000,\"212\":1553817600000,\"213\":1553817600000,\"214\":1553817600000,\"215\":1553817600000,\"216\":1553817600000,\"217\":1553817600000,\"218\":1553817600000,\"219\":1553817600000,\"220\":1553817600000,\"221\":1553817600000,\"222\":1553817600000,\"223\":1553817600000,\"224\":1553817600000,\"225\":1553817600000,\"226\":1553817600000,\"227\":1553817600000,\"228\":1553817600000,\"229\":1553817600000,\"230\":1553817600000,\"231\":1553817600000,\"232\":1553817600000,\"233\":1553817600000,\"234\":1553817600000,\"235\":1553817600000,\"236\":1553817600000,\"237\":1553817600000,\"238\":1553817600000,\"239\":1553817600000,\"240\":1553817600000,\"241\":1553817600000,\"242\":1553817600000,\"243\":1553817600000,\"244\":1553817600000,\"245\":1553817600000,\"246\":1553817600000,\"247\":1553817600000,\"248\":1553817600000,\"249\":1553817600000,\"250\":1553817600000,\"251\":1553817600000,\"252\":1553817600000,\"253\":1553817600000,\"254\":1553817600000,\"255\":1553817600000,\"256\":1553817600000,\"257\":1553817600000,\"258\":1553817600000,\"259\":1553817600000,\"260\":1553817600000,\"261\":1553817600000,\"262\":1553817600000,\"263\":1553817600000,\"264\":1553817600000,\"265\":1553817600000,\"266\":1553817600000,\"267\":1553817600000,\"268\":1553817600000,\"269\":1553817600000,\"270\":1553817600000,\"271\":1553817600000,\"272\":1553817600000,\"273\":1553817600000,\"274\":1553817600000,\"275\":1553817600000,\"276\":1553817600000,\"277\":1553817600000,\"278\":1553817600000,\"279\":1553817600000,\"280\":1553817600000,\"281\":1553817600000,\"282\":1553817600000,\"283\":1553817600000,\"284\":1553817600000,\"285\":1553817600000,\"286\":1553817600000,\"287\":1553817600000,\"288\":1553817600000,\"289\":1553817600000,\"290\":1553817600000,\"291\":1553817600000,\"292\":1553817600000,\"293\":1553817600000,\"294\":1553817600000,\"295\":1553817600000,\"296\":1553817600000,\"297\":1553817600000,\"298\":1553817600000,\"299\":1553817600000,\"300\":1553817600000,\"301\":1553817600000,\"302\":1553817600000,\"303\":1553817600000,\"304\":1553817600000,\"305\":1553817600000,\"306\":1553817600000,\"307\":1553817600000,\"308\":1553817600000,\"309\":1553817600000,\"310\":1553817600000,\"311\":1553817600000,\"312\":1553817600000,\"313\":1553817600000,\"314\":1553817600000,\"315\":1553817600000,\"316\":1553817600000,\"317\":1553817600000,\"318\":1553817600000,\"319\":1553817600000,\"320\":1553817600000,\"321\":1553817600000,\"322\":1553817600000,\"323\":1553817600000,\"324\":1553817600000,\"325\":1553817600000,\"326\":1553817600000,\"327\":1553817600000,\"328\":1553817600000,\"329\":1553817600000,\"330\":1553817600000,\"331\":1553817600000,\"332\":1553817600000,\"333\":1553817600000,\"334\":1553817600000,\"335\":1553817600000,\"336\":1553817600000,\"337\":1553817600000,\"338\":1553817600000,\"339\":1553817600000,\"340\":1553817600000,\"341\":1553817600000,\"342\":1553817600000,\"343\":1553817600000,\"344\":1553817600000,\"345\":1553817600000,\"346\":1553817600000,\"347\":1553817600000,\"348\":1553817600000,\"349\":1553817600000,\"350\":1553817600000,\"351\":1553817600000,\"352\":1553817600000,\"353\":1553817600000,\"354\":1553817600000,\"355\":1553817600000,\"356\":1553817600000,\"357\":1553817600000,\"358\":1553817600000,\"359\":1553817600000,\"360\":1553817600000,\"361\":1553817600000,\"362\":1553817600000,\"363\":1553817600000,\"364\":1553817600000,\"365\":1553817600000,\"366\":1553817600000,\"367\":1553817600000,\"368\":1553817600000,\"369\":1553817600000,\"370\":1553817600000,\"371\":1553817600000,\"372\":1553817600000,\"373\":1553817600000,\"374\":1553817600000,\"375\":1553817600000,\"376\":1553817600000,\"377\":1553817600000,\"378\":1553817600000,\"379\":1553817600000,\"380\":1553817600000,\"381\":1553817600000,\"382\":1553817600000,\"383\":1553817600000,\"384\":1553817600000,\"385\":1553817600000,\"386\":1553817600000,\"387\":1553817600000,\"388\":1553817600000,\"389\":1553817600000}}"},"description":null}],[1556078905244,{"__type":"Data","df":{"__type":"DataFrame","value":"{\"arm_name\":{\"0\":\"0_0\",\"1\":\"0_0\",\"2\":\"0_17\",\"3\":\"0_30\",\"4\":\"0_27\",\"5\":\"0_51\",\"6\":\"0_30\",\"7\":\"0_30\",\"8\":\"0_10\",\"9\":\"0_31\",\"10\":\"0_31\",\"11\":\"0_24\",\"12\":\"0_31\",\"13\":\"0_1\",\"14\":\"0_31\",\"15\":\"0_31\",\"16\":\"0_5\",\"17\":\"0_61\",\"18\":\"0_1\",\"19\":\"0_51\",\"20\":\"0_31\",\"21\":\"0_32\",\"22\":\"0_32\",\"23\":\"0_32\",\"24\":\"0_18\",\"25\":\"0_32\",\"26\":\"0_10\",\"27\":\"0_32\",\"28\":\"0_24\",\"29\":\"0_61\",\"30\":\"0_32\",\"31\":\"0_33\",\"32\":\"0_26\",\"33\":\"0_40\",\"34\":\"0_33\",\"35\":\"0_60\",\"36\":\"0_33\",\"37\":\"0_33\",\"38\":\"0_33\",\"39\":\"0_33\",\"40\":\"0_34\",\"41\":\"0_61\",\"42\":\"0_34\",\"43\":\"0_10\",\"44\":\"0_24\",\"45\":\"0_49\",\"46\":\"0_18\",\"47\":\"0_52\",\"48\":\"0_34\",\"49\":\"0_41\",\"50\":\"0_34\",\"51\":\"0_34\",\"52\":\"0_34\",\"53\":\"0_61\",\"54\":\"0_35\",\"55\":\"0_35\",\"56\":\"0_35\",\"57\":\"0_18\",\"58\":\"0_35\",\"59\":\"0_35\",\"60\":\"0_52\",\"61\":\"0_35\",\"62\":\"0_24\",\"63\":\"0_41\",\"64\":\"0_11\",\"65\":\"0_50\",\"66\":\"0_36\",\"67\":\"0_36\",\"68\":\"0_38\",\"69\":\"0_36\",\"70\":\"0_36\",\"71\":\"0_36\",\"72\":\"0_36\",\"73\":\"0_12\",\"74\":\"0_37\",\"75\":\"0_37\",\"76\":\"0_37\",\"77\":\"0_62\",\"78\":\"0_41\",\"79\":\"0_50\",\"80\":\"0_11\",\"81\":\"0_41\",\"82\":\"0_11\",\"83\":\"0_41\",\"84\":\"0_41\",\"85\":\"0_42\",\"86\":\"0_52\",\"87\":\"0_42\",\"88\":\"0_25\",\"89\":\"0_62\",\"90\":\"0_10\",\"91\":\"0_42\",\"92\":\"0_42\",\"93\":\"0_42\",\"94\":\"0_37\",\"95\":\"0_42\",\"96\":\"0_43\",\"97\":\"0_43\",\"98\":\"0_11\",\"99\":\"0_52\",\"100\":\"0_43\",\"101\":\"0_4\",\"102\":\"0_62\",\"103\":\"0_43\",\"104\":\"0_43\",\"105\":\"0_25\",\"106\":\"0_43\",\"107\":\"0_44\",\"108\":\"0_37\",\"109\":\"0_44\",\"110\":\"0_44\",\"111\":\"0_44\",\"112\":\"0_60\",\"113\":\"0_18\",\"114\":\"0_25\",\"115\":\"0_62\",\"116\":\"0_44\",\"117\":\"0_44\",\"118\":\"0_12\",\"119\":\"0_45\",\"120\":\"0_45\",\"121\":\"0_25\",\"122\":\"0_45\",\"123\":\"0_38\",\"124\":\"0_18\",\"125\":\"0_45\",\"126\":\"0_45\",\"127\":\"0_39\",\"128\":\"0_52\",\"129\":\"0_45\",\"130\":\"0_46\",\"131\":\"0_46\",\"132\":\"0_46\",\"133\":\"0_46\",\"134\":\"0_12\",\"135\":\"0_18\",\"136\":\"0_46\",\"137\":\"0_25\",\"138\":\"0_38\",\"139\":\"0_6\",\"140\":\"0_62\",\"141\":\"0_46\",\"142\":\"0_52\",\"143\":\"0_47\",\"144\":\"0_47\",\"145\":\"0_47\",\"146\":\"0_19\",\"147\":\"0_47\",\"148\":\"0_47\",\"149\":\"0_47\",\"150\":\"0_48\",\"151\":\"0_48\",\"152\":\"0_62\",\"153\":\"0_12\",\"154\":\"0_38\",\"155\":\"0_53\",\"156\":\"0_26\",\"157\":\"0_60\",\"158\":\"0_48\",\"159\":\"0_48\",\"160\":\"0_48\",\"161\":\"0_48\",\"162\":\"0_49\",\"163\":\"0_49\",\"164\":\"0_27\",\"165\":\"0_49\",\"166\":\"0_49\",\"167\":\"0_49\",\"168\":\"0_19\",\"169\":\"0_53\",\"170\":\"0_26\",\"171\":\"0_53\",\"172\":\"0_26\",\"173\":\"0_53\",\"174\":\"0_53\",\"175\":\"0_53\",\"176\":\"0_14\",\"177\":\"0_0\",\"178\":\"0_39\",\"179\":\"0_19\",\"180\":\"0_13\",\"181\":\"0_54\",\"182\":\"0_54\",\"183\":\"0_12\",\"184\":\"0_54\",\"185\":\"0_54\",\"186\":\"0_54\",\"187\":\"0_26\",\"188\":\"0_63\",\"189\":\"0_54\",\"190\":\"0_19\",\"191\":\"0_55\",\"192\":\"0_55\",\"193\":\"0_39\",\"194\":\"0_55\",\"195\":\"0_55\",\"196\":\"0_5\",\"197\":\"0_13\",\"198\":\"0_55\",\"199\":\"0_55\",\"200\":\"0_38\",\"201\":\"0_1\",\"202\":\"0_56\",\"203\":\"0_56\",\"204\":\"0_10\",\"205\":\"0_56\",\"206\":\"0_56\",\"207\":\"0_0\",\"208\":\"0_56\",\"209\":\"0_5\",\"210\":\"0_56\",\"211\":\"0_57\",\"212\":\"0_50\",\"213\":\"0_63\",\"214\":\"0_57\",\"215\":\"0_13\",\"216\":\"0_57\",\"217\":\"0_57\",\"218\":\"0_57\",\"219\":\"0_27\",\"220\":\"0_57\",\"221\":\"0_11\",\"222\":\"0_5\",\"223\":\"0_17\",\"224\":\"0_19\",\"225\":\"0_58\",\"226\":\"0_63\",\"227\":\"0_58\",\"228\":\"0_58\",\"229\":\"0_58\",\"230\":\"0_58\",\"231\":\"0_58\",\"232\":\"0_13\",\"233\":\"0_59\",\"234\":\"0_59\",\"235\":\"0_19\",\"236\":\"0_27\",\"237\":\"0_5\",\"238\":\"0_63\",\"239\":\"0_39\",\"240\":\"0_59\",\"241\":\"0_59\",\"242\":\"0_59\",\"243\":\"0_59\",\"244\":\"0_6\",\"245\":\"0_6\",\"246\":\"0_11\",\"247\":\"0_6\",\"248\":\"0_6\",\"249\":\"0_13\",\"250\":\"0_63\",\"251\":\"0_39\",\"252\":\"0_63\",\"253\":\"0_4\",\"254\":\"0_7\",\"255\":\"0_7\",\"256\":\"0_7\",\"257\":\"0_28\",\"258\":\"0_23\",\"259\":\"0_50\",\"260\":\"0_27\",\"261\":\"0_7\",\"262\":\"0_14\",\"263\":\"0_27\",\"264\":\"0_7\",\"265\":\"0_7\",\"266\":\"0_8\",\"267\":\"0_4\",\"268\":\"0_2\",\"269\":\"0_8\",\"270\":\"0_8\",\"271\":\"0_8\",\"272\":\"0_50\",\"273\":\"0_8\",\"274\":\"0_8\",\"275\":\"0_6\",\"276\":\"0_28\",\"277\":\"0_9\",\"278\":\"0_9\",\"279\":\"0_5\",\"280\":\"0_14\",\"281\":\"0_9\",\"282\":\"0_25\",\"283\":\"0_9\",\"284\":\"0_9\",\"285\":\"0_1\",\"286\":\"0_9\",\"287\":\"0_60\",\"288\":\"status_quo\",\"289\":\"status_quo\",\"290\":\"0_2\",\"291\":\"status_quo\",\"292\":\"0_28\",\"293\":\"status_quo\",\"294\":\"status_quo\",\"295\":\"status_quo\",\"296\":\"0_4\",\"297\":\"0_14\",\"298\":\"0_26\",\"299\":\"0_60\",\"300\":\"0_0\",\"301\":\"0_2\",\"302\":\"0_14\",\"303\":\"0_14\",\"304\":\"0_15\",\"305\":\"0_15\",\"306\":\"0_15\",\"307\":\"0_28\",\"308\":\"0_15\",\"309\":\"0_15\",\"310\":\"0_4\",\"311\":\"0_60\",\"312\":\"0_2\",\"313\":\"0_50\",\"314\":\"0_15\",\"315\":\"0_16\",\"316\":\"0_16\",\"317\":\"0_0\",\"318\":\"0_16\",\"319\":\"0_16\",\"320\":\"0_16\",\"321\":\"0_16\",\"322\":\"0_28\",\"323\":\"0_2\",\"324\":\"0_12\",\"325\":\"0_2\",\"326\":\"0_51\",\"327\":\"0_20\",\"328\":\"0_20\",\"329\":\"0_1\",\"330\":\"0_37\",\"331\":\"0_61\",\"332\":\"0_40\",\"333\":\"0_20\",\"334\":\"0_28\",\"335\":\"0_4\",\"336\":\"0_20\",\"337\":\"0_20\",\"338\":\"0_20\",\"339\":\"0_51\",\"340\":\"0_21\",\"341\":\"0_21\",\"342\":\"0_21\",\"343\":\"0_61\",\"344\":\"0_21\",\"345\":\"0_21\",\"346\":\"0_17\",\"347\":\"0_40\",\"348\":\"0_21\",\"349\":\"0_1\",\"350\":\"0_29\",\"351\":\"0_22\",\"352\":\"0_38\",\"353\":\"0_22\",\"354\":\"0_22\",\"355\":\"0_24\",\"356\":\"0_22\",\"357\":\"0_17\",\"358\":\"0_22\",\"359\":\"0_22\",\"360\":\"0_23\",\"361\":\"0_40\",\"362\":\"0_23\",\"363\":\"0_23\",\"364\":\"0_23\",\"365\":\"0_51\",\"366\":\"0_29\",\"367\":\"0_39\",\"368\":\"0_17\",\"369\":\"0_23\",\"370\":\"0_29\",\"371\":\"0_29\",\"372\":\"0_29\",\"373\":\"0_29\",\"374\":\"0_3\",\"375\":\"0_40\",\"376\":\"0_3\",\"377\":\"0_10\",\"378\":\"0_51\",\"379\":\"0_17\",\"380\":\"0_13\",\"381\":\"0_3\",\"382\":\"0_3\",\"383\":\"0_3\",\"384\":\"0_24\",\"385\":\"0_3\",\"386\":\"0_30\",\"387\":\"0_30\",\"388\":\"0_30\",\"389\":\"0_40\"},\"trial_index\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":0,\"113\":0,\"114\":0,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":0,\"120\":0,\"121\":0,\"122\":0,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":0,\"128\":0,\"129\":0,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":0,\"144\":0,\"145\":0,\"146\":0,\"147\":0,\"148\":0,\"149\":0,\"150\":0,\"151\":0,\"152\":0,\"153\":0,\"154\":0,\"155\":0,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":0,\"163\":0,\"164\":0,\"165\":0,\"166\":0,\"167\":0,\"168\":0,\"169\":0,\"170\":0,\"171\":0,\"172\":0,\"173\":0,\"174\":0,\"175\":0,\"176\":0,\"177\":0,\"178\":0,\"179\":0,\"180\":0,\"181\":0,\"182\":0,\"183\":0,\"184\":0,\"185\":0,\"186\":0,\"187\":0,\"188\":0,\"189\":0,\"190\":0,\"191\":0,\"192\":0,\"193\":0,\"194\":0,\"195\":0,\"196\":0,\"197\":0,\"198\":0,\"199\":0,\"200\":0,\"201\":0,\"202\":0,\"203\":0,\"204\":0,\"205\":0,\"206\":0,\"207\":0,\"208\":0,\"209\":0,\"210\":0,\"211\":0,\"212\":0,\"213\":0,\"214\":0,\"215\":0,\"216\":0,\"217\":0,\"218\":0,\"219\":0,\"220\":0,\"221\":0,\"222\":0,\"223\":0,\"224\":0,\"225\":0,\"226\":0,\"227\":0,\"228\":0,\"229\":0,\"230\":0,\"231\":0,\"232\":0,\"233\":0,\"234\":0,\"235\":0,\"236\":0,\"237\":0,\"238\":0,\"239\":0,\"240\":0,\"241\":0,\"242\":0,\"243\":0,\"244\":0,\"245\":0,\"246\":0,\"247\":0,\"248\":0,\"249\":0,\"250\":0,\"251\":0,\"252\":0,\"253\":0,\"254\":0,\"255\":0,\"256\":0,\"257\":0,\"258\":0,\"259\":0,\"260\":0,\"261\":0,\"262\":0,\"263\":0,\"264\":0,\"265\":0,\"266\":0,\"267\":0,\"268\":0,\"269\":0,\"270\":0,\"271\":0,\"272\":0,\"273\":0,\"274\":0,\"275\":0,\"276\":0,\"277\":0,\"278\":0,\"279\":0,\"280\":0,\"281\":0,\"282\":0,\"283\":0,\"284\":0,\"285\":0,\"286\":0,\"287\":0,\"288\":0,\"289\":0,\"290\":0,\"291\":0,\"292\":0,\"293\":0,\"294\":0,\"295\":0,\"296\":0,\"297\":0,\"298\":0,\"299\":0,\"300\":0,\"301\":0,\"302\":0,\"303\":0,\"304\":0,\"305\":0,\"306\":0,\"307\":0,\"308\":0,\"309\":0,\"310\":0,\"311\":0,\"312\":0,\"313\":0,\"314\":0,\"315\":0,\"316\":0,\"317\":0,\"318\":0,\"319\":0,\"320\":0,\"321\":0,\"322\":0,\"323\":0,\"324\":0,\"325\":0,\"326\":0,\"327\":0,\"328\":0,\"329\":0,\"330\":0,\"331\":0,\"332\":0,\"333\":0,\"334\":0,\"335\":0,\"336\":0,\"337\":0,\"338\":0,\"339\":0,\"340\":0,\"341\":0,\"342\":0,\"343\":0,\"344\":0,\"345\":0,\"346\":0,\"347\":0,\"348\":0,\"349\":0,\"350\":0,\"351\":0,\"352\":0,\"353\":0,\"354\":0,\"355\":0,\"356\":0,\"357\":0,\"358\":0,\"359\":0,\"360\":0,\"361\":0,\"362\":0,\"363\":0,\"364\":0,\"365\":0,\"366\":0,\"367\":0,\"368\":0,\"369\":0,\"370\":0,\"371\":0,\"372\":0,\"373\":0,\"374\":0,\"375\":0,\"376\":0,\"377\":0,\"378\":0,\"379\":0,\"380\":0,\"381\":0,\"382\":0,\"383\":0,\"384\":0,\"385\":0,\"386\":0,\"387\":0,\"388\":0,\"389\":0},\"end_time\":{\"0\":1554163200000,\"1\":1554163200000,\"2\":1554163200000,\"3\":1554163200000,\"4\":1554163200000,\"5\":1554163200000,\"6\":1554163200000,\"7\":1554163200000,\"8\":1554163200000,\"9\":1554163200000,\"10\":1554163200000,\"11\":1554163200000,\"12\":1554163200000,\"13\":1554163200000,\"14\":1554163200000,\"15\":1554163200000,\"16\":1554163200000,\"17\":1554163200000,\"18\":1554163200000,\"19\":1554163200000,\"20\":1554163200000,\"21\":1554163200000,\"22\":1554163200000,\"23\":1554163200000,\"24\":1554163200000,\"25\":1554163200000,\"26\":1554163200000,\"27\":1554163200000,\"28\":1554163200000,\"29\":1554163200000,\"30\":1554163200000,\"31\":1554163200000,\"32\":1554163200000,\"33\":1554163200000,\"34\":1554163200000,\"35\":1554163200000,\"36\":1554163200000,\"37\":1554163200000,\"38\":1554163200000,\"39\":1554163200000,\"40\":1554163200000,\"41\":1554163200000,\"42\":1554163200000,\"43\":1554163200000,\"44\":1554163200000,\"45\":1554163200000,\"46\":1554163200000,\"47\":1554163200000,\"48\":1554163200000,\"49\":1554163200000,\"50\":1554163200000,\"51\":1554163200000,\"52\":1554163200000,\"53\":1554163200000,\"54\":1554163200000,\"55\":1554163200000,\"56\":1554163200000,\"57\":1554163200000,\"58\":1554163200000,\"59\":1554163200000,\"60\":1554163200000,\"61\":1554163200000,\"62\":1554163200000,\"63\":1554163200000,\"64\":1554163200000,\"65\":1554163200000,\"66\":1554163200000,\"67\":1554163200000,\"68\":1554163200000,\"69\":1554163200000,\"70\":1554163200000,\"71\":1554163200000,\"72\":1554163200000,\"73\":1554163200000,\"74\":1554163200000,\"75\":1554163200000,\"76\":1554163200000,\"77\":1554163200000,\"78\":1554163200000,\"79\":1554163200000,\"80\":1554163200000,\"81\":1554163200000,\"82\":1554163200000,\"83\":1554163200000,\"84\":1554163200000,\"85\":1554163200000,\"86\":1554163200000,\"87\":1554163200000,\"88\":1554163200000,\"89\":1554163200000,\"90\":1554163200000,\"91\":1554163200000,\"92\":1554163200000,\"93\":1554163200000,\"94\":1554163200000,\"95\":1554163200000,\"96\":1554163200000,\"97\":1554163200000,\"98\":1554163200000,\"99\":1554163200000,\"100\":1554163200000,\"101\":1554163200000,\"102\":1554163200000,\"103\":1554163200000,\"104\":1554163200000,\"105\":1554163200000,\"106\":1554163200000,\"107\":1554163200000,\"108\":1554163200000,\"109\":1554163200000,\"110\":1554163200000,\"111\":1554163200000,\"112\":1554163200000,\"113\":1554163200000,\"114\":1554163200000,\"115\":1554163200000,\"116\":1554163200000,\"117\":1554163200000,\"118\":1554163200000,\"119\":1554163200000,\"120\":1554163200000,\"121\":1554163200000,\"122\":1554163200000,\"123\":1554163200000,\"124\":1554163200000,\"125\":1554163200000,\"126\":1554163200000,\"127\":1554163200000,\"128\":1554163200000,\"129\":1554163200000,\"130\":1554163200000,\"131\":1554163200000,\"132\":1554163200000,\"133\":1554163200000,\"134\":1554163200000,\"135\":1554163200000,\"136\":1554163200000,\"137\":1554163200000,\"138\":1554163200000,\"139\":1554163200000,\"140\":1554163200000,\"141\":1554163200000,\"142\":1554163200000,\"143\":1554163200000,\"144\":1554163200000,\"145\":1554163200000,\"146\":1554163200000,\"147\":1554163200000,\"148\":1554163200000,\"149\":1554163200000,\"150\":1554163200000,\"151\":1554163200000,\"152\":1554163200000,\"153\":1554163200000,\"154\":1554163200000,\"155\":1554163200000,\"156\":1554163200000,\"157\":1554163200000,\"158\":1554163200000,\"159\":1554163200000,\"160\":1554163200000,\"161\":1554163200000,\"162\":1554163200000,\"163\":1554163200000,\"164\":1554163200000,\"165\":1554163200000,\"166\":1554163200000,\"167\":1554163200000,\"168\":1554163200000,\"169\":1554163200000,\"170\":1554163200000,\"171\":1554163200000,\"172\":1554163200000,\"173\":1554163200000,\"174\":1554163200000,\"175\":1554163200000,\"176\":1554163200000,\"177\":1554163200000,\"178\":1554163200000,\"179\":1554163200000,\"180\":1554163200000,\"181\":1554163200000,\"182\":1554163200000,\"183\":1554163200000,\"184\":1554163200000,\"185\":1554163200000,\"186\":1554163200000,\"187\":1554163200000,\"188\":1554163200000,\"189\":1554163200000,\"190\":1554163200000,\"191\":1554163200000,\"192\":1554163200000,\"193\":1554163200000,\"194\":1554163200000,\"195\":1554163200000,\"196\":1554163200000,\"197\":1554163200000,\"198\":1554163200000,\"199\":1554163200000,\"200\":1554163200000,\"201\":1554163200000,\"202\":1554163200000,\"203\":1554163200000,\"204\":1554163200000,\"205\":1554163200000,\"206\":1554163200000,\"207\":1554163200000,\"208\":1554163200000,\"209\":1554163200000,\"210\":1554163200000,\"211\":1554163200000,\"212\":1554163200000,\"213\":1554163200000,\"214\":1554163200000,\"215\":1554163200000,\"216\":1554163200000,\"217\":1554163200000,\"218\":1554163200000,\"219\":1554163200000,\"220\":1554163200000,\"221\":1554163200000,\"222\":1554163200000,\"223\":1554163200000,\"224\":1554163200000,\"225\":1554163200000,\"226\":1554163200000,\"227\":1554163200000,\"228\":1554163200000,\"229\":1554163200000,\"230\":1554163200000,\"231\":1554163200000,\"232\":1554163200000,\"233\":1554163200000,\"234\":1554163200000,\"235\":1554163200000,\"236\":1554163200000,\"237\":1554163200000,\"238\":1554163200000,\"239\":1554163200000,\"240\":1554163200000,\"241\":1554163200000,\"242\":1554163200000,\"243\":1554163200000,\"244\":1554163200000,\"245\":1554163200000,\"246\":1554163200000,\"247\":1554163200000,\"248\":1554163200000,\"249\":1554163200000,\"250\":1554163200000,\"251\":1554163200000,\"252\":1554163200000,\"253\":1554163200000,\"254\":1554163200000,\"255\":1554163200000,\"256\":1554163200000,\"257\":1554163200000,\"258\":1554163200000,\"259\":1554163200000,\"260\":1554163200000,\"261\":1554163200000,\"262\":1554163200000,\"263\":1554163200000,\"264\":1554163200000,\"265\":1554163200000,\"266\":1554163200000,\"267\":1554163200000,\"268\":1554163200000,\"269\":1554163200000,\"270\":1554163200000,\"271\":1554163200000,\"272\":1554163200000,\"273\":1554163200000,\"274\":1554163200000,\"275\":1554163200000,\"276\":1554163200000,\"277\":1554163200000,\"278\":1554163200000,\"279\":1554163200000,\"280\":1554163200000,\"281\":1554163200000,\"282\":1554163200000,\"283\":1554163200000,\"284\":1554163200000,\"285\":1554163200000,\"286\":1554163200000,\"287\":1554163200000,\"288\":1554163200000,\"289\":1554163200000,\"290\":1554163200000,\"291\":1554163200000,\"292\":1554163200000,\"293\":1554163200000,\"294\":1554163200000,\"295\":1554163200000,\"296\":1554163200000,\"297\":1554163200000,\"298\":1554163200000,\"299\":1554163200000,\"300\":1554163200000,\"301\":1554163200000,\"302\":1554163200000,\"303\":1554163200000,\"304\":1554163200000,\"305\":1554163200000,\"306\":1554163200000,\"307\":1554163200000,\"308\":1554163200000,\"309\":1554163200000,\"310\":1554163200000,\"311\":1554163200000,\"312\":1554163200000,\"313\":1554163200000,\"314\":1554163200000,\"315\":1554163200000,\"316\":1554163200000,\"317\":1554163200000,\"318\":1554163200000,\"319\":1554163200000,\"320\":1554163200000,\"321\":1554163200000,\"322\":1554163200000,\"323\":1554163200000,\"324\":1554163200000,\"325\":1554163200000,\"326\":1554163200000,\"327\":1554163200000,\"328\":1554163200000,\"329\":1554163200000,\"330\":1554163200000,\"331\":1554163200000,\"332\":1554163200000,\"333\":1554163200000,\"334\":1554163200000,\"335\":1554163200000,\"336\":1554163200000,\"337\":1554163200000,\"338\":1554163200000,\"339\":1554163200000,\"340\":1554163200000,\"341\":1554163200000,\"342\":1554163200000,\"343\":1554163200000,\"344\":1554163200000,\"345\":1554163200000,\"346\":1554163200000,\"347\":1554163200000,\"348\":1554163200000,\"349\":1554163200000,\"350\":1554163200000,\"351\":1554163200000,\"352\":1554163200000,\"353\":1554163200000,\"354\":1554163200000,\"355\":1554163200000,\"356\":1554163200000,\"357\":1554163200000,\"358\":1554163200000,\"359\":1554163200000,\"360\":1554163200000,\"361\":1554163200000,\"362\":1554163200000,\"363\":1554163200000,\"364\":1554163200000,\"365\":1554163200000,\"366\":1554163200000,\"367\":1554163200000,\"368\":1554163200000,\"369\":1554163200000,\"370\":1554163200000,\"371\":1554163200000,\"372\":1554163200000,\"373\":1554163200000,\"374\":1554163200000,\"375\":1554163200000,\"376\":1554163200000,\"377\":1554163200000,\"378\":1554163200000,\"379\":1554163200000,\"380\":1554163200000,\"381\":1554163200000,\"382\":1554163200000,\"383\":1554163200000,\"384\":1554163200000,\"385\":1554163200000,\"386\":1554163200000,\"387\":1554163200000,\"388\":1554163200000,\"389\":1554163200000},\"frac_nonnull\":{\"0\":0.4154643104,\"1\":0.0157497091,\"2\":1.0,\"3\":1.0,\"4\":1.0,\"5\":1.0,\"6\":1.0,\"7\":1.0,\"8\":1.0,\"9\":0.4158893879,\"10\":0.0158745795,\"11\":0.0158136892,\"12\":1.0,\"13\":0.4153797106,\"14\":1.0,\"15\":1.0,\"16\":1.0,\"17\":1.0,\"18\":1.0,\"19\":1.0,\"20\":1.0,\"21\":0.415123633,\"22\":0.0156570592,\"23\":1.0,\"24\":0.4158009049,\"25\":1.0,\"26\":1.0,\"27\":1.0,\"28\":1.0,\"29\":1.0,\"30\":1.0,\"31\":0.4159476931,\"32\":1.0,\"33\":1.0,\"34\":0.0158543338,\"35\":1.0,\"36\":1.0,\"37\":1.0,\"38\":1.0,\"39\":1.0,\"40\":0.4153439477,\"41\":1.0,\"42\":0.0157200495,\"43\":1.0,\"44\":1.0,\"45\":1.0,\"46\":0.0156771632,\"47\":0.4154609372,\"48\":1.0,\"49\":0.4160217185,\"50\":1.0,\"51\":1.0,\"52\":1.0,\"53\":1.0,\"54\":0.4160560167,\"55\":0.0156089077,\"56\":1.0,\"57\":1.0,\"58\":1.0,\"59\":1.0,\"60\":0.0158216726,\"61\":1.0,\"62\":1.0,\"63\":0.0156645164,\"64\":0.4159383494,\"65\":0.4154913378,\"66\":0.4158105334,\"67\":0.0156342709,\"68\":1.0,\"69\":1.0,\"70\":1.0,\"71\":1.0,\"72\":1.0,\"73\":1.0,\"74\":0.4156722663,\"75\":0.0157705137,\"76\":1.0,\"77\":0.4153603815,\"78\":1.0,\"79\":1.0,\"80\":0.0156650734,\"81\":1.0,\"82\":1.0,\"83\":1.0,\"84\":1.0,\"85\":0.415358932,\"86\":1.0,\"87\":0.0156979648,\"88\":1.0,\"89\":0.015800088,\"90\":0.0156977681,\"91\":1.0,\"92\":1.0,\"93\":1.0,\"94\":1.0,\"95\":1.0,\"96\":0.4153695539,\"97\":0.0157045657,\"98\":1.0,\"99\":1.0,\"100\":1.0,\"101\":1.0,\"102\":1.0,\"103\":1.0,\"104\":1.0,\"105\":1.0,\"106\":1.0,\"107\":0.4157742498,\"108\":1.0,\"109\":0.0156284317,\"110\":1.0,\"111\":1.0,\"112\":1.0,\"113\":1.0,\"114\":0.4147051557,\"115\":1.0,\"116\":1.0,\"117\":1.0,\"118\":0.4153955045,\"119\":0.4156779978,\"120\":0.0156751614,\"121\":1.0,\"122\":1.0,\"123\":0.4154603674,\"124\":1.0,\"125\":1.0,\"126\":1.0,\"127\":1.0,\"128\":1.0,\"129\":1.0,\"130\":0.4153133476,\"131\":0.0157140924,\"132\":1.0,\"133\":1.0,\"134\":0.0155456932,\"135\":1.0,\"136\":1.0,\"137\":1.0,\"138\":0.015706239,\"139\":1.0,\"140\":1.0,\"141\":1.0,\"142\":1.0,\"143\":0.4159152713,\"144\":0.0157234668,\"145\":1.0,\"146\":0.415144528,\"147\":1.0,\"148\":1.0,\"149\":1.0,\"150\":0.4155306684,\"151\":0.0156146368,\"152\":1.0,\"153\":1.0,\"154\":1.0,\"155\":0.415354446,\"156\":0.4165743527,\"157\":1.0,\"158\":1.0,\"159\":1.0,\"160\":1.0,\"161\":1.0,\"162\":0.415530683,\"163\":0.0157572033,\"164\":1.0,\"165\":1.0,\"166\":1.0,\"167\":1.0,\"168\":0.015905168,\"169\":0.0157247585,\"170\":0.0157879533,\"171\":1.0,\"172\":1.0,\"173\":1.0,\"174\":1.0,\"175\":1.0,\"176\":0.4155767273,\"177\":1.0,\"178\":0.4150010546,\"179\":1.0,\"180\":0.4149944728,\"181\":0.4152803664,\"182\":0.0156097856,\"183\":1.0,\"184\":1.0,\"185\":1.0,\"186\":1.0,\"187\":1.0,\"188\":0.4152182187,\"189\":1.0,\"190\":1.0,\"191\":0.415453151,\"192\":0.0156292058,\"193\":0.0156250504,\"194\":1.0,\"195\":1.0,\"196\":0.4154759173,\"197\":0.0156581232,\"198\":1.0,\"199\":1.0,\"200\":1.0,\"201\":0.0155825921,\"202\":0.4156594343,\"203\":0.0159033984,\"204\":0.4149813314,\"205\":1.0,\"206\":1.0,\"207\":1.0,\"208\":1.0,\"209\":0.0157360687,\"210\":1.0,\"211\":0.4155302772,\"212\":1.0,\"213\":0.01561609,\"214\":0.0156277516,\"215\":1.0,\"216\":1.0,\"217\":1.0,\"218\":1.0,\"219\":0.4152856203,\"220\":1.0,\"221\":1.0,\"222\":1.0,\"223\":0.4165761487,\"224\":1.0,\"225\":0.4154777185,\"226\":1.0,\"227\":0.0158470148,\"228\":1.0,\"229\":1.0,\"230\":1.0,\"231\":1.0,\"232\":1.0,\"233\":0.4156726262,\"234\":0.0156498213,\"235\":1.0,\"236\":0.0155815151,\"237\":1.0,\"238\":1.0,\"239\":1.0,\"240\":1.0,\"241\":1.0,\"242\":1.0,\"243\":1.0,\"244\":0.4158850332,\"245\":0.0157911213,\"246\":1.0,\"247\":1.0,\"248\":1.0,\"249\":1.0,\"250\":1.0,\"251\":1.0,\"252\":1.0,\"253\":0.4153813616,\"254\":0.415369485,\"255\":0.0158006158,\"256\":1.0,\"257\":1.0,\"258\":1.0,\"259\":0.0156110561,\"260\":1.0,\"261\":1.0,\"262\":0.0156804391,\"263\":1.0,\"264\":1.0,\"265\":1.0,\"266\":0.4155856378,\"267\":0.0156835158,\"268\":0.4155262492,\"269\":0.0157485898,\"270\":1.0,\"271\":1.0,\"272\":1.0,\"273\":1.0,\"274\":1.0,\"275\":1.0,\"276\":0.4154036329,\"277\":0.4149617196,\"278\":0.015815744,\"279\":1.0,\"280\":1.0,\"281\":1.0,\"282\":0.0155761833,\"283\":1.0,\"284\":1.0,\"285\":1.0,\"286\":1.0,\"287\":0.4150598662,\"288\":0.4154730278,\"289\":0.0157223623,\"290\":0.0157566617,\"291\":1.0,\"292\":0.0156704434,\"293\":1.0,\"294\":1.0,\"295\":1.0,\"296\":1.0,\"297\":1.0,\"298\":1.0,\"299\":0.0156261273,\"300\":1.0,\"301\":1.0,\"302\":1.0,\"303\":1.0,\"304\":0.415438852,\"305\":0.0156534685,\"306\":1.0,\"307\":1.0,\"308\":1.0,\"309\":1.0,\"310\":1.0,\"311\":1.0,\"312\":1.0,\"313\":1.0,\"314\":1.0,\"315\":0.415392558,\"316\":0.0157739517,\"317\":1.0,\"318\":1.0,\"319\":1.0,\"320\":1.0,\"321\":1.0,\"322\":1.0,\"323\":1.0,\"324\":1.0,\"325\":1.0,\"326\":0.415639259,\"327\":0.4152883859,\"328\":0.0158575657,\"329\":1.0,\"330\":1.0,\"331\":0.4153826772,\"332\":0.4151816712,\"333\":1.0,\"334\":1.0,\"335\":1.0,\"336\":1.0,\"337\":1.0,\"338\":1.0,\"339\":0.0156191344,\"340\":0.4162505013,\"341\":0.0158710203,\"342\":1.0,\"343\":0.0157085368,\"344\":1.0,\"345\":1.0,\"346\":0.0157817402,\"347\":0.0156918063,\"348\":1.0,\"349\":1.0,\"350\":0.4154767781,\"351\":0.4150777636,\"352\":1.0,\"353\":0.0157781412,\"354\":1.0,\"355\":1.0,\"356\":1.0,\"357\":1.0,\"358\":1.0,\"359\":1.0,\"360\":0.4152539527,\"361\":1.0,\"362\":0.0155939856,\"363\":1.0,\"364\":1.0,\"365\":1.0,\"366\":0.015743886,\"367\":1.0,\"368\":1.0,\"369\":1.0,\"370\":1.0,\"371\":1.0,\"372\":1.0,\"373\":1.0,\"374\":0.415066832,\"375\":1.0,\"376\":0.0156568352,\"377\":1.0,\"378\":1.0,\"379\":1.0,\"380\":1.0,\"381\":1.0,\"382\":1.0,\"383\":1.0,\"384\":0.4160474411,\"385\":1.0,\"386\":0.4156495571,\"387\":0.0157288166,\"388\":1.0,\"389\":1.0},\"mean\":{\"0\":111.4481622228,\"1\":0.0601242521,\"2\":37837.8370024775,\"3\":20.8008476639,\"4\":21.529279084,\"5\":521.7629967972,\"6\":524.4533368519,\"7\":37870.9157783153,\"8\":20.5557265355,\"9\":110.903359248,\"10\":0.0587892543,\"11\":0.0593013344,\"12\":0.9336643158,\"13\":110.6264615523,\"14\":20.0790389147,\"15\":445.7149196689,\"16\":534.3950449249,\"17\":0.9405982275,\"18\":37891.1811082951,\"19\":37747.0638616572,\"20\":37599.7561940206,\"21\":110.8762780137,\"22\":0.0589155387,\"23\":0.9394754672,\"24\":111.2292996997,\"25\":22.0004860066,\"26\":489.0704224151,\"27\":566.9445646438,\"28\":0.9377160996,\"29\":23.7469775395,\"30\":37942.6008857155,\"31\":109.8432356388,\"32\":21.6191160396,\"33\":37305.6025702543,\"34\":0.0594112572,\"35\":567.404713807,\"36\":0.9400543519,\"37\":22.2157285668,\"38\":563.3754693367,\"39\":37612.2604210269,\"40\":110.0489118994,\"41\":580.1200718693,\"42\":0.0589350565,\"43\":37813.386566067,\"44\":21.7721511203,\"45\":37514.9573991959,\"46\":0.0593431381,\"47\":110.1857780993,\"48\":0.9390388143,\"49\":111.8164769609,\"50\":21.8186923468,\"51\":527.2877453067,\"52\":37528.0623014086,\"53\":37751.2574734779,\"54\":111.7187712419,\"55\":0.0597314771,\"56\":0.9383180349,\"57\":0.9370815122,\"58\":21.4850631199,\"59\":550.1151615234,\"60\":0.0584199221,\"61\":37668.1948274553,\"62\":554.3939710601,\"63\":0.0611223162,\"64\":111.405846328,\"65\":110.7125099148,\"66\":110.9184734746,\"67\":0.0578238677,\"68\":21.1959166365,\"69\":0.9376444877,\"70\":21.6670753935,\"71\":554.0056085592,\"72\":37950.4705510361,\"73\":37734.860252001,\"74\":110.845431818,\"75\":0.0591747218,\"76\":0.9385102972,\"77\":111.3356937585,\"78\":0.9362072945,\"79\":552.4046893386,\"80\":0.0593158185,\"81\":20.9443451809,\"82\":563.7719486326,\"83\":520.1364711036,\"84\":37904.665927559,\"85\":111.5743548852,\"86\":0.9372817806,\"87\":0.0593938083,\"88\":0.9376859282,\"89\":0.060854428,\"90\":0.0577153986,\"91\":0.9359501372,\"92\":21.1413543561,\"93\":524.2243365093,\"94\":553.2271185786,\"95\":37727.9554751,\"96\":110.7264761821,\"97\":0.0587295459,\"98\":37838.49095954,\"99\":21.5335488541,\"100\":0.9362637157,\"101\":37601.61319871,\"102\":0.9355304912,\"103\":21.0599942435,\"104\":530.9356826533,\"105\":21.4058571449,\"106\":37477.0307108252,\"107\":110.5605979316,\"108\":37813.2497843142,\"109\":0.0612590726,\"110\":0.9396449374,\"111\":23.0431918007,\"112\":21.9859898523,\"113\":21.0544341209,\"114\":111.4106370914,\"115\":20.4829706173,\"116\":571.9928458611,\"117\":37434.3500087024,\"118\":111.8715538544,\"119\":112.3093601007,\"120\":0.0601646163,\"121\":554.8778788074,\"122\":0.9368084415,\"123\":110.6616866711,\"124\":540.5377828586,\"125\":20.8916500111,\"126\":534.5607267015,\"127\":37511.5097786972,\"128\":544.3821406042,\"129\":37858.6822281465,\"130\":110.7833181927,\"131\":0.0579765609,\"132\":0.9350057151,\"133\":20.7206852905,\"134\":0.0591461526,\"135\":37311.6847225132,\"136\":510.9300734833,\"137\":37867.8403752819,\"138\":0.0588995248,\"139\":531.195475613,\"140\":479.3189018748,\"141\":37461.1599737431,\"142\":37101.3599426439,\"143\":110.8904854006,\"144\":0.059529564,\"145\":0.9364334336,\"146\":111.3552942086,\"147\":22.1905756148,\"148\":532.1234263618,\"149\":37640.8072742975,\"150\":111.247475476,\"151\":0.0594977611,\"152\":37675.6397844112,\"153\":0.9363290835,\"154\":0.9372139183,\"155\":111.7922947718,\"156\":111.4278042075,\"157\":37520.9370118588,\"158\":0.935751953,\"159\":21.1219233211,\"160\":523.5608040536,\"161\":37946.9351952871,\"162\":110.6102234343,\"163\":0.0588501713,\"164\":510.8943513619,\"165\":0.9382227677,\"166\":21.5188806084,\"167\":547.4796026722,\"168\":0.0608801783,\"169\":0.0592557828,\"170\":0.05815525,\"171\":0.9369097413,\"172\":551.1687541662,\"173\":21.1938277363,\"174\":538.2540761543,\"175\":37769.3182595688,\"176\":111.6434242904,\"177\":20.0987459962,\"178\":112.5304396287,\"179\":0.9359409819,\"180\":111.3913020752,\"181\":111.3994602723,\"182\":0.059043977,\"183\":21.2413626589,\"184\":0.9363667043,\"185\":21.0708443381,\"186\":529.0949473228,\"187\":37739.9228456824,\"188\":110.8924422645,\"189\":37411.5079327687,\"190\":20.6368287573,\"191\":111.4819199369,\"192\":0.057941589,\"193\":0.0578740927,\"194\":0.9366099492,\"195\":21.0859054484,\"196\":111.1011116382,\"197\":0.0579042095,\"198\":532.8621176818,\"199\":37844.6942559459,\"200\":540.3496852137,\"201\":0.0606628753,\"202\":110.241217322,\"203\":0.0602014443,\"204\":110.9392860137,\"205\":0.9374848425,\"206\":21.6277955416,\"207\":0.9338525083,\"208\":549.2523632886,\"209\":0.0607649587,\"210\":38276.9988799493,\"211\":111.3842396831,\"212\":37697.2191931416,\"213\":0.0592838577,\"214\":0.0585535443,\"215\":0.936530869,\"216\":0.9345772548,\"217\":20.6658774275,\"218\":505.7710645355,\"219\":110.7969325402,\"220\":37678.5907652007,\"221\":0.9385761986,\"222\":0.9366452405,\"223\":111.5382949245,\"224\":471.2323664006,\"225\":111.9233424684,\"226\":0.9351478873,\"227\":0.0550126702,\"228\":0.936687294,\"229\":20.9979294647,\"230\":537.6972579795,\"231\":37496.4850348733,\"232\":21.1278725805,\"233\":111.6600724831,\"234\":0.0581141175,\"235\":37703.3360259459,\"236\":0.0585790478,\"237\":21.198089909,\"238\":20.763760361,\"239\":0.9378594596,\"240\":0.938456088,\"241\":21.6032295016,\"242\":559.3792334581,\"243\":37651.7630513187,\"244\":110.8794828788,\"245\":0.0594968947,\"246\":21.8990079776,\"247\":0.935906963,\"248\":21.0821655969,\"249\":532.7600386422,\"250\":496.0572582402,\"251\":21.3691717985,\"252\":37636.2276164743,\"253\":112.6877779096,\"254\":111.7805142269,\"255\":0.0604607187,\"256\":0.9357968674,\"257\":509.0213930495,\"258\":513.1600571654,\"259\":0.0582405538,\"260\":37372.9186930849,\"261\":20.9975956799,\"262\":0.0600535951,\"263\":0.9370416925,\"264\":527.3036327896,\"265\":37791.3383689982,\"266\":111.6728506353,\"267\":0.0591895872,\"268\":111.0415721372,\"269\":0.0595889974,\"270\":0.936026024,\"271\":20.8610186286,\"272\":0.9376554104,\"273\":535.3977841989,\"274\":37266.078739973,\"275\":37586.5705681207,\"276\":111.4270107246,\"277\":111.3177348197,\"278\":0.0580359241,\"279\":37631.9103839202,\"280\":0.9375145347,\"281\":0.9350634843,\"282\":0.058746951,\"283\":20.7577517083,\"284\":507.6737454516,\"285\":486.5419629149,\"286\":37565.6635262251,\"287\":110.2692047451,\"288\":111.4755462942,\"289\":0.0594299293,\"290\":0.0593656765,\"291\":0.937612567,\"292\":0.0582963425,\"293\":21.3690621537,\"294\":548.6878713792,\"295\":37550.7473959076,\"296\":0.9366620038,\"297\":21.176101558,\"298\":0.9379342103,\"299\":0.0584856937,\"300\":457.300393524,\"301\":0.9364456016,\"302\":545.2306721909,\"303\":37838.3759941854,\"304\":110.4770434486,\"305\":0.0615878397,\"306\":0.9365849822,\"307\":0.934745662,\"308\":20.8539509922,\"309\":507.5570442574,\"310\":21.0188505178,\"311\":0.9387114438,\"312\":21.1221276373,\"313\":21.8223478954,\"314\":37435.302819261,\"315\":109.4492443114,\"316\":0.058527472,\"317\":37714.3753881731,\"318\":0.9386669678,\"319\":21.9354654998,\"320\":558.8371204133,\"321\":37814.1084351549,\"322\":20.778119722,\"323\":529.8385989602,\"324\":531.3605359355,\"325\":37521.0312674838,\"326\":110.2268931629,\"327\":113.4389721738,\"328\":0.0605824288,\"329\":0.9343817657,\"330\":22.3754767898,\"331\":109.656932439,\"332\":112.0700102413,\"333\":0.9378171069,\"334\":37744.0593939247,\"335\":534.1735327021,\"336\":21.3428839448,\"337\":549.3775756288,\"338\":37925.4311690183,\"339\":0.0579601146,\"340\":111.7968274722,\"341\":0.0586312897,\"342\":0.9376635242,\"343\":0.0595333415,\"344\":21.3510813705,\"345\":550.1142331425,\"346\":0.0573185426,\"347\":0.0597521465,\"348\":37693.1927769689,\"349\":20.5718905477,\"350\":110.7659927674,\"351\":112.2477213896,\"352\":37499.7947154221,\"353\":0.0582078603,\"354\":0.9384127818,\"355\":37841.767876518,\"356\":21.33224912,\"357\":0.9368803698,\"358\":558.7718771743,\"359\":37622.7652901354,\"360\":111.7549290554,\"361\":0.935518087,\"362\":0.0602108643,\"363\":0.9352957803,\"364\":20.661391527,\"365\":0.9359846678,\"366\":0.0600399372,\"367\":549.0755728867,\"368\":21.4409086299,\"369\":37335.4383864143,\"370\":0.9383615901,\"371\":22.5904450166,\"372\":554.8986360257,\"373\":37673.3553245262,\"374\":111.989711407,\"375\":20.6733666194,\"376\":0.0589828995,\"377\":0.9347019846,\"378\":21.1376352724,\"379\":542.7706181279,\"380\":37734.7154087242,\"381\":0.936776349,\"382\":21.2771283701,\"383\":538.0956270427,\"384\":111.7751413754,\"385\":37850.5153460394,\"386\":111.4161508894,\"387\":0.0567349608,\"388\":0.9356984821,\"389\":504.0822473824},\"metric_name\":{\"0\":\"is_live_watch_time_given_iphone\",\"1\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"2\":\"wilde_scroll_frame_drops_per_minute\",\"3\":\"video:encoding:iphone_live_playback_mos_loss\",\"4\":\"video:encoding:iphone_live_playback_mos_loss\",\"5\":\"video:sbl_iphone_is_live__smtbr\",\"6\":\"video:sbl_iphone_is_live__smtbr\",\"7\":\"wilde_scroll_frame_drops_per_minute\",\"8\":\"video:encoding:iphone_live_playback_mos_loss\",\"9\":\"is_live_watch_time_given_iphone\",\"10\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"11\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"12\":\"sbl_iphone_is_live__psr_1_start\",\"13\":\"is_live_watch_time_given_iphone\",\"14\":\"video:encoding:iphone_live_playback_mos_loss\",\"15\":\"video:sbl_iphone_is_live__smtbr\",\"16\":\"video:sbl_iphone_is_live__smtbr\",\"17\":\"sbl_iphone_is_live__psr_1_start\",\"18\":\"wilde_scroll_frame_drops_per_minute\",\"19\":\"wilde_scroll_frame_drops_per_minute\",\"20\":\"wilde_scroll_frame_drops_per_minute\",\"21\":\"is_live_watch_time_given_iphone\",\"22\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"23\":\"sbl_iphone_is_live__psr_1_start\",\"24\":\"is_live_watch_time_given_iphone\",\"25\":\"video:encoding:iphone_live_playback_mos_loss\",\"26\":\"video:sbl_iphone_is_live__smtbr\",\"27\":\"video:sbl_iphone_is_live__smtbr\",\"28\":\"sbl_iphone_is_live__psr_1_start\",\"29\":\"video:encoding:iphone_live_playback_mos_loss\",\"30\":\"wilde_scroll_frame_drops_per_minute\",\"31\":\"is_live_watch_time_given_iphone\",\"32\":\"video:encoding:iphone_live_playback_mos_loss\",\"33\":\"wilde_scroll_frame_drops_per_minute\",\"34\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"35\":\"video:sbl_iphone_is_live__smtbr\",\"36\":\"sbl_iphone_is_live__psr_1_start\",\"37\":\"video:encoding:iphone_live_playback_mos_loss\",\"38\":\"video:sbl_iphone_is_live__smtbr\",\"39\":\"wilde_scroll_frame_drops_per_minute\",\"40\":\"is_live_watch_time_given_iphone\",\"41\":\"video:sbl_iphone_is_live__smtbr\",\"42\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"43\":\"wilde_scroll_frame_drops_per_minute\",\"44\":\"video:encoding:iphone_live_playback_mos_loss\",\"45\":\"wilde_scroll_frame_drops_per_minute\",\"46\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"47\":\"is_live_watch_time_given_iphone\",\"48\":\"sbl_iphone_is_live__psr_1_start\",\"49\":\"is_live_watch_time_given_iphone\",\"50\":\"video:encoding:iphone_live_playback_mos_loss\",\"51\":\"video:sbl_iphone_is_live__smtbr\",\"52\":\"wilde_scroll_frame_drops_per_minute\",\"53\":\"wilde_scroll_frame_drops_per_minute\",\"54\":\"is_live_watch_time_given_iphone\",\"55\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"56\":\"sbl_iphone_is_live__psr_1_start\",\"57\":\"sbl_iphone_is_live__psr_1_start\",\"58\":\"video:encoding:iphone_live_playback_mos_loss\",\"59\":\"video:sbl_iphone_is_live__smtbr\",\"60\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"61\":\"wilde_scroll_frame_drops_per_minute\",\"62\":\"video:sbl_iphone_is_live__smtbr\",\"63\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"64\":\"is_live_watch_time_given_iphone\",\"65\":\"is_live_watch_time_given_iphone\",\"66\":\"is_live_watch_time_given_iphone\",\"67\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"68\":\"video:encoding:iphone_live_playback_mos_loss\",\"69\":\"sbl_iphone_is_live__psr_1_start\",\"70\":\"video:encoding:iphone_live_playback_mos_loss\",\"71\":\"video:sbl_iphone_is_live__smtbr\",\"72\":\"wilde_scroll_frame_drops_per_minute\",\"73\":\"wilde_scroll_frame_drops_per_minute\",\"74\":\"is_live_watch_time_given_iphone\",\"75\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"76\":\"sbl_iphone_is_live__psr_1_start\",\"77\":\"is_live_watch_time_given_iphone\",\"78\":\"sbl_iphone_is_live__psr_1_start\",\"79\":\"video:sbl_iphone_is_live__smtbr\",\"80\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"81\":\"video:encoding:iphone_live_playback_mos_loss\",\"82\":\"video:sbl_iphone_is_live__smtbr\",\"83\":\"video:sbl_iphone_is_live__smtbr\",\"84\":\"wilde_scroll_frame_drops_per_minute\",\"85\":\"is_live_watch_time_given_iphone\",\"86\":\"sbl_iphone_is_live__psr_1_start\",\"87\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"88\":\"sbl_iphone_is_live__psr_1_start\",\"89\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"90\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"91\":\"sbl_iphone_is_live__psr_1_start\",\"92\":\"video:encoding:iphone_live_playback_mos_loss\",\"93\":\"video:sbl_iphone_is_live__smtbr\",\"94\":\"video:sbl_iphone_is_live__smtbr\",\"95\":\"wilde_scroll_frame_drops_per_minute\",\"96\":\"is_live_watch_time_given_iphone\",\"97\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"98\":\"wilde_scroll_frame_drops_per_minute\",\"99\":\"video:encoding:iphone_live_playback_mos_loss\",\"100\":\"sbl_iphone_is_live__psr_1_start\",\"101\":\"wilde_scroll_frame_drops_per_minute\",\"102\":\"sbl_iphone_is_live__psr_1_start\",\"103\":\"video:encoding:iphone_live_playback_mos_loss\",\"104\":\"video:sbl_iphone_is_live__smtbr\",\"105\":\"video:encoding:iphone_live_playback_mos_loss\",\"106\":\"wilde_scroll_frame_drops_per_minute\",\"107\":\"is_live_watch_time_given_iphone\",\"108\":\"wilde_scroll_frame_drops_per_minute\",\"109\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"110\":\"sbl_iphone_is_live__psr_1_start\",\"111\":\"video:encoding:iphone_live_playback_mos_loss\",\"112\":\"video:encoding:iphone_live_playback_mos_loss\",\"113\":\"video:encoding:iphone_live_playback_mos_loss\",\"114\":\"is_live_watch_time_given_iphone\",\"115\":\"video:encoding:iphone_live_playback_mos_loss\",\"116\":\"video:sbl_iphone_is_live__smtbr\",\"117\":\"wilde_scroll_frame_drops_per_minute\",\"118\":\"is_live_watch_time_given_iphone\",\"119\":\"is_live_watch_time_given_iphone\",\"120\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"121\":\"video:sbl_iphone_is_live__smtbr\",\"122\":\"sbl_iphone_is_live__psr_1_start\",\"123\":\"is_live_watch_time_given_iphone\",\"124\":\"video:sbl_iphone_is_live__smtbr\",\"125\":\"video:encoding:iphone_live_playback_mos_loss\",\"126\":\"video:sbl_iphone_is_live__smtbr\",\"127\":\"wilde_scroll_frame_drops_per_minute\",\"128\":\"video:sbl_iphone_is_live__smtbr\",\"129\":\"wilde_scroll_frame_drops_per_minute\",\"130\":\"is_live_watch_time_given_iphone\",\"131\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"132\":\"sbl_iphone_is_live__psr_1_start\",\"133\":\"video:encoding:iphone_live_playback_mos_loss\",\"134\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"135\":\"wilde_scroll_frame_drops_per_minute\",\"136\":\"video:sbl_iphone_is_live__smtbr\",\"137\":\"wilde_scroll_frame_drops_per_minute\",\"138\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"139\":\"video:sbl_iphone_is_live__smtbr\",\"140\":\"video:sbl_iphone_is_live__smtbr\",\"141\":\"wilde_scroll_frame_drops_per_minute\",\"142\":\"wilde_scroll_frame_drops_per_minute\",\"143\":\"is_live_watch_time_given_iphone\",\"144\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"145\":\"sbl_iphone_is_live__psr_1_start\",\"146\":\"is_live_watch_time_given_iphone\",\"147\":\"video:encoding:iphone_live_playback_mos_loss\",\"148\":\"video:sbl_iphone_is_live__smtbr\",\"149\":\"wilde_scroll_frame_drops_per_minute\",\"150\":\"is_live_watch_time_given_iphone\",\"151\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"152\":\"wilde_scroll_frame_drops_per_minute\",\"153\":\"sbl_iphone_is_live__psr_1_start\",\"154\":\"sbl_iphone_is_live__psr_1_start\",\"155\":\"is_live_watch_time_given_iphone\",\"156\":\"is_live_watch_time_given_iphone\",\"157\":\"wilde_scroll_frame_drops_per_minute\",\"158\":\"sbl_iphone_is_live__psr_1_start\",\"159\":\"video:encoding:iphone_live_playback_mos_loss\",\"160\":\"video:sbl_iphone_is_live__smtbr\",\"161\":\"wilde_scroll_frame_drops_per_minute\",\"162\":\"is_live_watch_time_given_iphone\",\"163\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"164\":\"video:sbl_iphone_is_live__smtbr\",\"165\":\"sbl_iphone_is_live__psr_1_start\",\"166\":\"video:encoding:iphone_live_playback_mos_loss\",\"167\":\"video:sbl_iphone_is_live__smtbr\",\"168\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"169\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"170\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"171\":\"sbl_iphone_is_live__psr_1_start\",\"172\":\"video:sbl_iphone_is_live__smtbr\",\"173\":\"video:encoding:iphone_live_playback_mos_loss\",\"174\":\"video:sbl_iphone_is_live__smtbr\",\"175\":\"wilde_scroll_frame_drops_per_minute\",\"176\":\"is_live_watch_time_given_iphone\",\"177\":\"video:encoding:iphone_live_playback_mos_loss\",\"178\":\"is_live_watch_time_given_iphone\",\"179\":\"sbl_iphone_is_live__psr_1_start\",\"180\":\"is_live_watch_time_given_iphone\",\"181\":\"is_live_watch_time_given_iphone\",\"182\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"183\":\"video:encoding:iphone_live_playback_mos_loss\",\"184\":\"sbl_iphone_is_live__psr_1_start\",\"185\":\"video:encoding:iphone_live_playback_mos_loss\",\"186\":\"video:sbl_iphone_is_live__smtbr\",\"187\":\"wilde_scroll_frame_drops_per_minute\",\"188\":\"is_live_watch_time_given_iphone\",\"189\":\"wilde_scroll_frame_drops_per_minute\",\"190\":\"video:encoding:iphone_live_playback_mos_loss\",\"191\":\"is_live_watch_time_given_iphone\",\"192\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"193\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"194\":\"sbl_iphone_is_live__psr_1_start\",\"195\":\"video:encoding:iphone_live_playback_mos_loss\",\"196\":\"is_live_watch_time_given_iphone\",\"197\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"198\":\"video:sbl_iphone_is_live__smtbr\",\"199\":\"wilde_scroll_frame_drops_per_minute\",\"200\":\"video:sbl_iphone_is_live__smtbr\",\"201\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"202\":\"is_live_watch_time_given_iphone\",\"203\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"204\":\"is_live_watch_time_given_iphone\",\"205\":\"sbl_iphone_is_live__psr_1_start\",\"206\":\"video:encoding:iphone_live_playback_mos_loss\",\"207\":\"sbl_iphone_is_live__psr_1_start\",\"208\":\"video:sbl_iphone_is_live__smtbr\",\"209\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"210\":\"wilde_scroll_frame_drops_per_minute\",\"211\":\"is_live_watch_time_given_iphone\",\"212\":\"wilde_scroll_frame_drops_per_minute\",\"213\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"214\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"215\":\"sbl_iphone_is_live__psr_1_start\",\"216\":\"sbl_iphone_is_live__psr_1_start\",\"217\":\"video:encoding:iphone_live_playback_mos_loss\",\"218\":\"video:sbl_iphone_is_live__smtbr\",\"219\":\"is_live_watch_time_given_iphone\",\"220\":\"wilde_scroll_frame_drops_per_minute\",\"221\":\"sbl_iphone_is_live__psr_1_start\",\"222\":\"sbl_iphone_is_live__psr_1_start\",\"223\":\"is_live_watch_time_given_iphone\",\"224\":\"video:sbl_iphone_is_live__smtbr\",\"225\":\"is_live_watch_time_given_iphone\",\"226\":\"sbl_iphone_is_live__psr_1_start\",\"227\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"228\":\"sbl_iphone_is_live__psr_1_start\",\"229\":\"video:encoding:iphone_live_playback_mos_loss\",\"230\":\"video:sbl_iphone_is_live__smtbr\",\"231\":\"wilde_scroll_frame_drops_per_minute\",\"232\":\"video:encoding:iphone_live_playback_mos_loss\",\"233\":\"is_live_watch_time_given_iphone\",\"234\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"235\":\"wilde_scroll_frame_drops_per_minute\",\"236\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"237\":\"video:encoding:iphone_live_playback_mos_loss\",\"238\":\"video:encoding:iphone_live_playback_mos_loss\",\"239\":\"sbl_iphone_is_live__psr_1_start\",\"240\":\"sbl_iphone_is_live__psr_1_start\",\"241\":\"video:encoding:iphone_live_playback_mos_loss\",\"242\":\"video:sbl_iphone_is_live__smtbr\",\"243\":\"wilde_scroll_frame_drops_per_minute\",\"244\":\"is_live_watch_time_given_iphone\",\"245\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"246\":\"video:encoding:iphone_live_playback_mos_loss\",\"247\":\"sbl_iphone_is_live__psr_1_start\",\"248\":\"video:encoding:iphone_live_playback_mos_loss\",\"249\":\"video:sbl_iphone_is_live__smtbr\",\"250\":\"video:sbl_iphone_is_live__smtbr\",\"251\":\"video:encoding:iphone_live_playback_mos_loss\",\"252\":\"wilde_scroll_frame_drops_per_minute\",\"253\":\"is_live_watch_time_given_iphone\",\"254\":\"is_live_watch_time_given_iphone\",\"255\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"256\":\"sbl_iphone_is_live__psr_1_start\",\"257\":\"video:sbl_iphone_is_live__smtbr\",\"258\":\"video:sbl_iphone_is_live__smtbr\",\"259\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"260\":\"wilde_scroll_frame_drops_per_minute\",\"261\":\"video:encoding:iphone_live_playback_mos_loss\",\"262\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"263\":\"sbl_iphone_is_live__psr_1_start\",\"264\":\"video:sbl_iphone_is_live__smtbr\",\"265\":\"wilde_scroll_frame_drops_per_minute\",\"266\":\"is_live_watch_time_given_iphone\",\"267\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"268\":\"is_live_watch_time_given_iphone\",\"269\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"270\":\"sbl_iphone_is_live__psr_1_start\",\"271\":\"video:encoding:iphone_live_playback_mos_loss\",\"272\":\"sbl_iphone_is_live__psr_1_start\",\"273\":\"video:sbl_iphone_is_live__smtbr\",\"274\":\"wilde_scroll_frame_drops_per_minute\",\"275\":\"wilde_scroll_frame_drops_per_minute\",\"276\":\"is_live_watch_time_given_iphone\",\"277\":\"is_live_watch_time_given_iphone\",\"278\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"279\":\"wilde_scroll_frame_drops_per_minute\",\"280\":\"sbl_iphone_is_live__psr_1_start\",\"281\":\"sbl_iphone_is_live__psr_1_start\",\"282\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"283\":\"video:encoding:iphone_live_playback_mos_loss\",\"284\":\"video:sbl_iphone_is_live__smtbr\",\"285\":\"video:sbl_iphone_is_live__smtbr\",\"286\":\"wilde_scroll_frame_drops_per_minute\",\"287\":\"is_live_watch_time_given_iphone\",\"288\":\"is_live_watch_time_given_iphone\",\"289\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"290\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"291\":\"sbl_iphone_is_live__psr_1_start\",\"292\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"293\":\"video:encoding:iphone_live_playback_mos_loss\",\"294\":\"video:sbl_iphone_is_live__smtbr\",\"295\":\"wilde_scroll_frame_drops_per_minute\",\"296\":\"sbl_iphone_is_live__psr_1_start\",\"297\":\"video:encoding:iphone_live_playback_mos_loss\",\"298\":\"sbl_iphone_is_live__psr_1_start\",\"299\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"300\":\"video:sbl_iphone_is_live__smtbr\",\"301\":\"sbl_iphone_is_live__psr_1_start\",\"302\":\"video:sbl_iphone_is_live__smtbr\",\"303\":\"wilde_scroll_frame_drops_per_minute\",\"304\":\"is_live_watch_time_given_iphone\",\"305\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"306\":\"sbl_iphone_is_live__psr_1_start\",\"307\":\"sbl_iphone_is_live__psr_1_start\",\"308\":\"video:encoding:iphone_live_playback_mos_loss\",\"309\":\"video:sbl_iphone_is_live__smtbr\",\"310\":\"video:encoding:iphone_live_playback_mos_loss\",\"311\":\"sbl_iphone_is_live__psr_1_start\",\"312\":\"video:encoding:iphone_live_playback_mos_loss\",\"313\":\"video:encoding:iphone_live_playback_mos_loss\",\"314\":\"wilde_scroll_frame_drops_per_minute\",\"315\":\"is_live_watch_time_given_iphone\",\"316\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"317\":\"wilde_scroll_frame_drops_per_minute\",\"318\":\"sbl_iphone_is_live__psr_1_start\",\"319\":\"video:encoding:iphone_live_playback_mos_loss\",\"320\":\"video:sbl_iphone_is_live__smtbr\",\"321\":\"wilde_scroll_frame_drops_per_minute\",\"322\":\"video:encoding:iphone_live_playback_mos_loss\",\"323\":\"video:sbl_iphone_is_live__smtbr\",\"324\":\"video:sbl_iphone_is_live__smtbr\",\"325\":\"wilde_scroll_frame_drops_per_minute\",\"326\":\"is_live_watch_time_given_iphone\",\"327\":\"is_live_watch_time_given_iphone\",\"328\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"329\":\"sbl_iphone_is_live__psr_1_start\",\"330\":\"video:encoding:iphone_live_playback_mos_loss\",\"331\":\"is_live_watch_time_given_iphone\",\"332\":\"is_live_watch_time_given_iphone\",\"333\":\"sbl_iphone_is_live__psr_1_start\",\"334\":\"wilde_scroll_frame_drops_per_minute\",\"335\":\"video:sbl_iphone_is_live__smtbr\",\"336\":\"video:encoding:iphone_live_playback_mos_loss\",\"337\":\"video:sbl_iphone_is_live__smtbr\",\"338\":\"wilde_scroll_frame_drops_per_minute\",\"339\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"340\":\"is_live_watch_time_given_iphone\",\"341\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"342\":\"sbl_iphone_is_live__psr_1_start\",\"343\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"344\":\"video:encoding:iphone_live_playback_mos_loss\",\"345\":\"video:sbl_iphone_is_live__smtbr\",\"346\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"347\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"348\":\"wilde_scroll_frame_drops_per_minute\",\"349\":\"video:encoding:iphone_live_playback_mos_loss\",\"350\":\"is_live_watch_time_given_iphone\",\"351\":\"is_live_watch_time_given_iphone\",\"352\":\"wilde_scroll_frame_drops_per_minute\",\"353\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"354\":\"sbl_iphone_is_live__psr_1_start\",\"355\":\"wilde_scroll_frame_drops_per_minute\",\"356\":\"video:encoding:iphone_live_playback_mos_loss\",\"357\":\"sbl_iphone_is_live__psr_1_start\",\"358\":\"video:sbl_iphone_is_live__smtbr\",\"359\":\"wilde_scroll_frame_drops_per_minute\",\"360\":\"is_live_watch_time_given_iphone\",\"361\":\"sbl_iphone_is_live__psr_1_start\",\"362\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"363\":\"sbl_iphone_is_live__psr_1_start\",\"364\":\"video:encoding:iphone_live_playback_mos_loss\",\"365\":\"sbl_iphone_is_live__psr_1_start\",\"366\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"367\":\"video:sbl_iphone_is_live__smtbr\",\"368\":\"video:encoding:iphone_live_playback_mos_loss\",\"369\":\"wilde_scroll_frame_drops_per_minute\",\"370\":\"sbl_iphone_is_live__psr_1_start\",\"371\":\"video:encoding:iphone_live_playback_mos_loss\",\"372\":\"video:sbl_iphone_is_live__smtbr\",\"373\":\"wilde_scroll_frame_drops_per_minute\",\"374\":\"is_live_watch_time_given_iphone\",\"375\":\"video:encoding:iphone_live_playback_mos_loss\",\"376\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"377\":\"sbl_iphone_is_live__psr_1_start\",\"378\":\"video:encoding:iphone_live_playback_mos_loss\",\"379\":\"video:sbl_iphone_is_live__smtbr\",\"380\":\"wilde_scroll_frame_drops_per_minute\",\"381\":\"sbl_iphone_is_live__psr_1_start\",\"382\":\"video:encoding:iphone_live_playback_mos_loss\",\"383\":\"video:sbl_iphone_is_live__smtbr\",\"384\":\"is_live_watch_time_given_iphone\",\"385\":\"wilde_scroll_frame_drops_per_minute\",\"386\":\"is_live_watch_time_given_iphone\",\"387\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"388\":\"sbl_iphone_is_live__psr_1_start\",\"389\":\"video:sbl_iphone_is_live__smtbr\"},\"n\":{\"0\":1553616,\"1\":1553616,\"2\":1550336,\"3\":1551865,\"4\":1551903,\"5\":1550342,\"6\":1551865,\"7\":1551865,\"8\":1550730,\"9\":1553175,\"10\":1553175,\"11\":1552073,\"12\":1553175,\"13\":1552630,\"14\":1553175,\"15\":1553175,\"16\":1551404,\"17\":1539927,\"18\":1552630,\"19\":1550342,\"20\":1553175,\"21\":1550355,\"22\":1550355,\"23\":1550355,\"24\":1551620,\"25\":1550355,\"26\":1550730,\"27\":1550355,\"28\":1552073,\"29\":1539927,\"30\":1550355,\"31\":1553140,\"32\":1550866,\"33\":1552530,\"34\":1553140,\"35\":1538513,\"36\":1553140,\"37\":1553140,\"38\":1553140,\"39\":1553140,\"40\":1553303,\"41\":1539927,\"42\":1553303,\"43\":1550730,\"44\":1552073,\"45\":1552179,\"46\":1551620,\"47\":1550721,\"48\":1553303,\"49\":1550383,\"50\":1553303,\"51\":1553303,\"52\":1553303,\"53\":1539927,\"54\":1553536,\"55\":1553536,\"56\":1553536,\"57\":1551620,\"58\":1553536,\"59\":1553536,\"60\":1550721,\"61\":1553536,\"62\":1552073,\"63\":1550383,\"64\":1553009,\"65\":1551977,\"66\":1552231,\"67\":1552231,\"68\":1550403,\"69\":1552231,\"70\":1552231,\"71\":1552231,\"72\":1552231,\"73\":1552713,\"74\":1551186,\"75\":1551186,\"76\":1551186,\"77\":1540118,\"78\":1550383,\"79\":1551977,\"80\":1553009,\"81\":1550383,\"82\":1553009,\"83\":1550383,\"84\":1550383,\"85\":1553832,\"86\":1550721,\"87\":1553832,\"88\":1550123,\"89\":1540118,\"90\":1550730,\"91\":1553832,\"92\":1553832,\"93\":1553832,\"94\":1551186,\"95\":1553832,\"96\":1551587,\"97\":1551587,\"98\":1553009,\"99\":1550721,\"100\":1551587,\"101\":1550864,\"102\":1540118,\"103\":1551587,\"104\":1551587,\"105\":1550123,\"106\":1551587,\"107\":1552619,\"108\":1551186,\"109\":1552619,\"110\":1552619,\"111\":1552619,\"112\":1538513,\"113\":1551620,\"114\":1550123,\"115\":1540118,\"116\":1552619,\"117\":1552619,\"118\":1552713,\"119\":1551244,\"120\":1551244,\"121\":1550123,\"122\":1551244,\"123\":1550403,\"124\":1551620,\"125\":1551244,\"126\":1551244,\"127\":1550331,\"128\":1550721,\"129\":1551244,\"130\":1552110,\"131\":1552110,\"132\":1552110,\"133\":1552110,\"134\":1552713,\"135\":1551620,\"136\":1552110,\"137\":1550123,\"138\":1550403,\"139\":1552518,\"140\":1540118,\"141\":1552110,\"142\":1550721,\"143\":1553665,\"144\":1553665,\"145\":1553665,\"146\":1552640,\"147\":1553665,\"148\":1553665,\"149\":1553665,\"150\":1552966,\"151\":1552966,\"152\":1540118,\"153\":1552713,\"154\":1550403,\"155\":1553283,\"156\":1550866,\"157\":1538513,\"158\":1552966,\"159\":1552966,\"160\":1552966,\"161\":1552966,\"162\":1552179,\"163\":1552179,\"164\":1551903,\"165\":1552179,\"166\":1552179,\"167\":1552179,\"168\":1552640,\"169\":1553283,\"170\":1550866,\"171\":1553283,\"172\":1550866,\"173\":1553283,\"174\":1553283,\"175\":1553283,\"176\":1552380,\"177\":1553616,\"178\":1550331,\"179\":1552640,\"180\":1549611,\"181\":1554858,\"182\":1554858,\"183\":1552713,\"184\":1554858,\"185\":1554858,\"186\":1554858,\"187\":1550866,\"188\":1539694,\"189\":1554858,\"190\":1552640,\"191\":1552926,\"192\":1552926,\"193\":1550331,\"194\":1552926,\"195\":1552926,\"196\":1551404,\"197\":1549611,\"198\":1552926,\"199\":1552926,\"200\":1550403,\"201\":1552630,\"202\":1552687,\"203\":1552687,\"204\":1550730,\"205\":1552687,\"206\":1552687,\"207\":1553616,\"208\":1552687,\"209\":1551404,\"210\":1552687,\"211\":1538865,\"212\":1551977,\"213\":1539694,\"214\":1538865,\"215\":1549611,\"216\":1538865,\"217\":1538865,\"218\":1538865,\"219\":1551903,\"220\":1538865,\"221\":1553009,\"222\":1551404,\"223\":1550336,\"224\":1552640,\"225\":1540227,\"226\":1539694,\"227\":1540227,\"228\":1540227,\"229\":1540227,\"230\":1540227,\"231\":1540227,\"232\":1549611,\"233\":1543532,\"234\":1543532,\"235\":1552640,\"236\":1551903,\"237\":1551404,\"238\":1539694,\"239\":1550331,\"240\":1543532,\"241\":1543532,\"242\":1543532,\"243\":1543532,\"244\":1552518,\"245\":1552518,\"246\":1553009,\"247\":1552518,\"248\":1552518,\"249\":1549611,\"250\":1539694,\"251\":1550331,\"252\":1539694,\"253\":1550864,\"254\":1552661,\"255\":1552661,\"256\":1552661,\"257\":1552413,\"258\":1548674,\"259\":1551977,\"260\":1551903,\"261\":1552661,\"262\":1552380,\"263\":1551903,\"264\":1552661,\"265\":1552661,\"266\":1551377,\"267\":1550864,\"268\":1552867,\"269\":1551377,\"270\":1551377,\"271\":1551377,\"272\":1551977,\"273\":1551377,\"274\":1551377,\"275\":1552518,\"276\":1552413,\"277\":1552883,\"278\":1552883,\"279\":1551404,\"280\":1552380,\"281\":1552883,\"282\":1550123,\"283\":1552883,\"284\":1552883,\"285\":1552630,\"286\":1552883,\"287\":1538513,\"288\":12399409,\"289\":12399409,\"290\":1552867,\"291\":12399409,\"292\":1552413,\"293\":12399409,\"294\":12399409,\"295\":12399409,\"296\":1550864,\"297\":1552380,\"298\":1550866,\"299\":1538513,\"300\":1553616,\"301\":1552867,\"302\":1552380,\"303\":1552380,\"304\":1551605,\"305\":1551605,\"306\":1551605,\"307\":1552413,\"308\":1551605,\"309\":1551605,\"310\":1550864,\"311\":1538513,\"312\":1552867,\"313\":1551977,\"314\":1551605,\"315\":1549580,\"316\":1549580,\"317\":1553616,\"318\":1549580,\"319\":1549580,\"320\":1549580,\"321\":1549580,\"322\":1552413,\"323\":1552867,\"324\":1552713,\"325\":1552867,\"326\":1550342,\"327\":1550301,\"328\":1550301,\"329\":1552630,\"330\":1551186,\"331\":1539927,\"332\":1552530,\"333\":1550301,\"334\":1552413,\"335\":1550864,\"336\":1550301,\"337\":1550301,\"338\":1550301,\"339\":1550342,\"340\":1551066,\"341\":1551066,\"342\":1551066,\"343\":1539927,\"344\":1551066,\"345\":1551066,\"346\":1550336,\"347\":1552530,\"348\":1551066,\"349\":1552630,\"350\":1549935,\"351\":1552591,\"352\":1550403,\"353\":1552591,\"354\":1552591,\"355\":1552073,\"356\":1552591,\"357\":1550336,\"358\":1552591,\"359\":1552591,\"360\":1548674,\"361\":1552530,\"362\":1548674,\"363\":1548674,\"364\":1548674,\"365\":1550342,\"366\":1549935,\"367\":1550331,\"368\":1550336,\"369\":1548674,\"370\":1549935,\"371\":1549935,\"372\":1549935,\"373\":1549935,\"374\":1549483,\"375\":1552530,\"376\":1549483,\"377\":1550730,\"378\":1550342,\"379\":1550336,\"380\":1549611,\"381\":1549483,\"382\":1549483,\"383\":1549483,\"384\":1552073,\"385\":1549483,\"386\":1551865,\"387\":1551865,\"388\":1551865,\"389\":1552530},\"random_split\":{\"0\":-1,\"1\":-1,\"2\":-1,\"3\":-1,\"4\":-1,\"5\":-1,\"6\":-1,\"7\":-1,\"8\":-1,\"9\":-1,\"10\":-1,\"11\":-1,\"12\":-1,\"13\":-1,\"14\":-1,\"15\":-1,\"16\":-1,\"17\":-1,\"18\":-1,\"19\":-1,\"20\":-1,\"21\":-1,\"22\":-1,\"23\":-1,\"24\":-1,\"25\":-1,\"26\":-1,\"27\":-1,\"28\":-1,\"29\":-1,\"30\":-1,\"31\":-1,\"32\":-1,\"33\":-1,\"34\":-1,\"35\":-1,\"36\":-1,\"37\":-1,\"38\":-1,\"39\":-1,\"40\":-1,\"41\":-1,\"42\":-1,\"43\":-1,\"44\":-1,\"45\":-1,\"46\":-1,\"47\":-1,\"48\":-1,\"49\":-1,\"50\":-1,\"51\":-1,\"52\":-1,\"53\":-1,\"54\":-1,\"55\":-1,\"56\":-1,\"57\":-1,\"58\":-1,\"59\":-1,\"60\":-1,\"61\":-1,\"62\":-1,\"63\":-1,\"64\":-1,\"65\":-1,\"66\":-1,\"67\":-1,\"68\":-1,\"69\":-1,\"70\":-1,\"71\":-1,\"72\":-1,\"73\":-1,\"74\":-1,\"75\":-1,\"76\":-1,\"77\":-1,\"78\":-1,\"79\":-1,\"80\":-1,\"81\":-1,\"82\":-1,\"83\":-1,\"84\":-1,\"85\":-1,\"86\":-1,\"87\":-1,\"88\":-1,\"89\":-1,\"90\":-1,\"91\":-1,\"92\":-1,\"93\":-1,\"94\":-1,\"95\":-1,\"96\":-1,\"97\":-1,\"98\":-1,\"99\":-1,\"100\":-1,\"101\":-1,\"102\":-1,\"103\":-1,\"104\":-1,\"105\":-1,\"106\":-1,\"107\":-1,\"108\":-1,\"109\":-1,\"110\":-1,\"111\":-1,\"112\":-1,\"113\":-1,\"114\":-1,\"115\":-1,\"116\":-1,\"117\":-1,\"118\":-1,\"119\":-1,\"120\":-1,\"121\":-1,\"122\":-1,\"123\":-1,\"124\":-1,\"125\":-1,\"126\":-1,\"127\":-1,\"128\":-1,\"129\":-1,\"130\":-1,\"131\":-1,\"132\":-1,\"133\":-1,\"134\":-1,\"135\":-1,\"136\":-1,\"137\":-1,\"138\":-1,\"139\":-1,\"140\":-1,\"141\":-1,\"142\":-1,\"143\":-1,\"144\":-1,\"145\":-1,\"146\":-1,\"147\":-1,\"148\":-1,\"149\":-1,\"150\":-1,\"151\":-1,\"152\":-1,\"153\":-1,\"154\":-1,\"155\":-1,\"156\":-1,\"157\":-1,\"158\":-1,\"159\":-1,\"160\":-1,\"161\":-1,\"162\":-1,\"163\":-1,\"164\":-1,\"165\":-1,\"166\":-1,\"167\":-1,\"168\":-1,\"169\":-1,\"170\":-1,\"171\":-1,\"172\":-1,\"173\":-1,\"174\":-1,\"175\":-1,\"176\":-1,\"177\":-1,\"178\":-1,\"179\":-1,\"180\":-1,\"181\":-1,\"182\":-1,\"183\":-1,\"184\":-1,\"185\":-1,\"186\":-1,\"187\":-1,\"188\":-1,\"189\":-1,\"190\":-1,\"191\":-1,\"192\":-1,\"193\":-1,\"194\":-1,\"195\":-1,\"196\":-1,\"197\":-1,\"198\":-1,\"199\":-1,\"200\":-1,\"201\":-1,\"202\":-1,\"203\":-1,\"204\":-1,\"205\":-1,\"206\":-1,\"207\":-1,\"208\":-1,\"209\":-1,\"210\":-1,\"211\":-1,\"212\":-1,\"213\":-1,\"214\":-1,\"215\":-1,\"216\":-1,\"217\":-1,\"218\":-1,\"219\":-1,\"220\":-1,\"221\":-1,\"222\":-1,\"223\":-1,\"224\":-1,\"225\":-1,\"226\":-1,\"227\":-1,\"228\":-1,\"229\":-1,\"230\":-1,\"231\":-1,\"232\":-1,\"233\":-1,\"234\":-1,\"235\":-1,\"236\":-1,\"237\":-1,\"238\":-1,\"239\":-1,\"240\":-1,\"241\":-1,\"242\":-1,\"243\":-1,\"244\":-1,\"245\":-1,\"246\":-1,\"247\":-1,\"248\":-1,\"249\":-1,\"250\":-1,\"251\":-1,\"252\":-1,\"253\":-1,\"254\":-1,\"255\":-1,\"256\":-1,\"257\":-1,\"258\":-1,\"259\":-1,\"260\":-1,\"261\":-1,\"262\":-1,\"263\":-1,\"264\":-1,\"265\":-1,\"266\":-1,\"267\":-1,\"268\":-1,\"269\":-1,\"270\":-1,\"271\":-1,\"272\":-1,\"273\":-1,\"274\":-1,\"275\":-1,\"276\":-1,\"277\":-1,\"278\":-1,\"279\":-1,\"280\":-1,\"281\":-1,\"282\":-1,\"283\":-1,\"284\":-1,\"285\":-1,\"286\":-1,\"287\":-1,\"288\":-1,\"289\":-1,\"290\":-1,\"291\":-1,\"292\":-1,\"293\":-1,\"294\":-1,\"295\":-1,\"296\":-1,\"297\":-1,\"298\":-1,\"299\":-1,\"300\":-1,\"301\":-1,\"302\":-1,\"303\":-1,\"304\":-1,\"305\":-1,\"306\":-1,\"307\":-1,\"308\":-1,\"309\":-1,\"310\":-1,\"311\":-1,\"312\":-1,\"313\":-1,\"314\":-1,\"315\":-1,\"316\":-1,\"317\":-1,\"318\":-1,\"319\":-1,\"320\":-1,\"321\":-1,\"322\":-1,\"323\":-1,\"324\":-1,\"325\":-1,\"326\":-1,\"327\":-1,\"328\":-1,\"329\":-1,\"330\":-1,\"331\":-1,\"332\":-1,\"333\":-1,\"334\":-1,\"335\":-1,\"336\":-1,\"337\":-1,\"338\":-1,\"339\":-1,\"340\":-1,\"341\":-1,\"342\":-1,\"343\":-1,\"344\":-1,\"345\":-1,\"346\":-1,\"347\":-1,\"348\":-1,\"349\":-1,\"350\":-1,\"351\":-1,\"352\":-1,\"353\":-1,\"354\":-1,\"355\":-1,\"356\":-1,\"357\":-1,\"358\":-1,\"359\":-1,\"360\":-1,\"361\":-1,\"362\":-1,\"363\":-1,\"364\":-1,\"365\":-1,\"366\":-1,\"367\":-1,\"368\":-1,\"369\":-1,\"370\":-1,\"371\":-1,\"372\":-1,\"373\":-1,\"374\":-1,\"375\":-1,\"376\":-1,\"377\":-1,\"378\":-1,\"379\":-1,\"380\":-1,\"381\":-1,\"382\":-1,\"383\":-1,\"384\":-1,\"385\":-1,\"386\":-1,\"387\":-1,\"388\":-1,\"389\":-1},\"sem\":{\"0\":0.6471498483,\"1\":0.0013574816,\"2\":256.6275164782,\"3\":0.0754947872,\"4\":0.0763078232,\"5\":2.9478350531,\"6\":2.9945837122,\"7\":256.9288225351,\"8\":0.0758348694,\"9\":0.6441743921,\"10\":0.0012286974,\"11\":0.001289038,\"12\":0.0003057944,\"13\":0.6425034228,\"14\":0.0741525107,\"15\":2.5288985278,\"16\":3.0767770475,\"17\":0.0002671992,\"18\":259.4105941142,\"19\":252.8108841647,\"20\":256.2268525142,\"21\":0.6471498155,\"22\":0.0012800611,\"23\":0.0002900887,\"24\":0.6458756111,\"25\":0.0774951691,\"26\":2.7897603191,\"27\":3.324471824,\"28\":0.0003081959,\"29\":0.0884529529,\"30\":258.5170572419,\"31\":0.633587965,\"32\":0.0767144929,\"33\":250.9905193307,\"34\":0.0012894869,\"35\":3.2942149975,\"36\":0.0002849435,\"37\":0.0787732291,\"38\":3.3100915619,\"39\":250.291498659,\"40\":0.6383882321,\"41\":3.4405644546,\"42\":0.0013042314,\"43\":257.2631398014,\"44\":0.0771697708,\"45\":253.5300293009,\"46\":0.0013135498,\"47\":0.6390170094,\"48\":0.0002877538,\"49\":0.6466206379,\"50\":0.0759857526,\"51\":3.1175248606,\"52\":253.0844391311,\"53\":255.673677773,\"54\":0.6523271529,\"55\":0.0013280769,\"56\":0.0002823519,\"57\":0.0002880345,\"58\":0.074953937,\"59\":3.1969448956,\"60\":0.0012423486,\"61\":253.4526613438,\"62\":3.1918814004,\"63\":0.0013371084,\"64\":0.6480698935,\"65\":0.642504411,\"66\":0.6425836313,\"67\":0.0012296907,\"68\":0.0765120638,\"69\":0.0002762127,\"70\":0.0773479708,\"71\":3.1881969021,\"72\":254.709574966,\"73\":253.7774805229,\"74\":0.6362979346,\"75\":0.0012882986,\"76\":0.000292144,\"77\":0.6494914846,\"78\":0.0002857992,\"79\":3.1623091974,\"80\":0.0013256857,\"81\":0.074312245,\"82\":3.2938066614,\"83\":2.9354492791,\"84\":255.816983752,\"85\":0.6459072637,\"86\":0.0002802886,\"87\":0.00130349,\"88\":0.0002760542,\"89\":0.0013572079,\"90\":0.0012650436,\"91\":0.0002906915,\"92\":0.0770377542,\"93\":3.0075061008,\"94\":3.1940212717,\"95\":256.3085404925,\"96\":0.6426322286,\"97\":0.0012587211,\"98\":253.2714416326,\"99\":0.076853115,\"100\":0.0002982954,\"101\":254.7207818667,\"102\":0.0002924359,\"103\":0.0753525047,\"104\":3.0178164383,\"105\":0.0762640341,\"106\":253.2092260565,\"107\":0.6454306089,\"108\":252.9960878804,\"109\":0.0013756209,\"110\":0.0002674404,\"111\":0.0851396517,\"112\":0.0784050563,\"113\":0.0756240792,\"114\":0.6472047862,\"115\":0.0759343942,\"116\":3.3419336928,\"117\":252.6420199662,\"118\":0.6525739848,\"119\":0.6493493916,\"120\":0.0012715276,\"121\":3.1856372466,\"122\":0.0002834617,\"123\":0.6383518778,\"124\":3.0875193145,\"125\":0.0756576557,\"126\":3.0251439053,\"127\":255.6846130889,\"128\":3.1227187145,\"129\":255.1488538717,\"130\":0.644886226,\"131\":0.001260832,\"132\":0.0003218598,\"133\":0.0751117525,\"134\":0.0012997462,\"135\":252.3244337065,\"136\":2.8956483951,\"137\":256.722985381,\"138\":0.0012546632,\"139\":3.0582591634,\"140\":2.7446314173,\"141\":253.0902744172,\"142\":250.5473855926,\"143\":0.6456449622,\"144\":0.0013076456,\"145\":0.0003088538,\"146\":0.6466712762,\"147\":0.0811206052,\"148\":3.045120718,\"149\":256.6588598258,\"150\":0.6438532762,\"151\":0.0012852278,\"152\":255.9443340014,\"153\":0.0003093077,\"154\":0.0003043732,\"155\":0.6523175901,\"156\":0.6459967986,\"157\":253.0679434152,\"158\":0.000300048,\"159\":0.0746439959,\"160\":2.9891452226,\"161\":253.2309117374,\"162\":0.6389191806,\"163\":0.001308694,\"164\":2.8940684504,\"165\":0.0002916785,\"166\":0.0778740989,\"167\":3.1433705093,\"168\":0.0012660615,\"169\":0.0012577045,\"170\":0.0012735851,\"171\":0.0002811016,\"172\":3.1478428174,\"173\":0.0755907657,\"174\":3.0707243799,\"175\":256.3388525711,\"176\":0.6485351243,\"177\":0.0751187829,\"178\":0.6524013114,\"179\":0.0002955676,\"180\":0.6475114967,\"181\":0.6427388263,\"182\":0.0013165589,\"183\":0.0774510495,\"184\":0.0002964181,\"185\":0.0745341288,\"186\":2.9685392762,\"187\":254.7192479093,\"188\":0.6449751683,\"189\":252.4619404115,\"190\":0.0750591246,\"191\":0.6474044175,\"192\":0.001259408,\"193\":0.0012298682,\"194\":0.0002865731,\"195\":0.0766148737,\"196\":0.6454137031,\"197\":0.0012647321,\"198\":3.0584379846,\"199\":255.4219202957,\"200\":3.1259496654,\"201\":0.0013360855,\"202\":0.6398145531,\"203\":0.0012971595,\"204\":0.6473651564,\"205\":0.0003012714,\"206\":0.0778504937,\"207\":0.000312199,\"208\":3.1631503776,\"209\":0.0013568227,\"210\":259.6965673381,\"211\":0.6467356815,\"212\":255.7949868604,\"213\":0.001326326,\"214\":0.0012887604,\"215\":0.0002862237,\"216\":0.0003096663,\"217\":0.075296083,\"218\":2.8759860195,\"219\":0.644024894,\"220\":255.542613648,\"221\":0.0002835315,\"222\":0.0002976445,\"223\":0.6454321268,\"224\":2.6872727147,\"225\":0.6543778091,\"226\":0.0002998854,\"227\":0.0011664621,\"228\":0.0002875761,\"229\":0.0762071694,\"230\":3.0781304263,\"231\":256.6805258018,\"232\":0.0765001579,\"233\":0.6451460337,\"234\":0.0012472682,\"235\":254.9853023445,\"236\":0.0012943311,\"237\":0.0761106054,\"238\":0.075630443,\"239\":0.0002827915,\"240\":0.0002805979,\"241\":0.0772724018,\"242\":3.2360669798,\"243\":257.1532571416,\"244\":0.6438352195,\"245\":0.0012600763,\"246\":0.0782808626,\"247\":0.0003017948,\"248\":0.0749248903,\"249\":3.0348054432,\"250\":2.8063926478,\"251\":0.0757004826,\"252\":253.3286505791,\"253\":0.651288834,\"254\":0.6500575518,\"255\":0.0012577863,\"256\":0.0003011532,\"257\":2.8669912019,\"258\":2.9039169971,\"259\":0.0012587728,\"260\":249.4523580862,\"261\":0.0759822501,\"262\":0.0013041265,\"263\":0.0002884299,\"264\":3.0086968144,\"265\":256.5197525626,\"266\":0.6483959587,\"267\":0.0012942377,\"268\":0.644993917,\"269\":0.0012737367,\"270\":0.000294563,\"271\":0.0753437726,\"272\":0.0003146779,\"273\":3.0656616117,\"274\":249.3951410467,\"275\":253.7483613756,\"276\":0.6485653133,\"277\":0.6478307063,\"278\":0.0012762969,\"279\":259.0305446264,\"280\":0.0002884252,\"281\":0.0002954365,\"282\":0.0013031125,\"283\":0.0749775063,\"284\":2.882973719,\"285\":2.7871011434,\"286\":255.8527320204,\"287\":0.6465297042,\"288\":0.2284635923,\"289\":0.0004575153,\"290\":0.0013281074,\"291\":0.0001027208,\"292\":0.0012358053,\"293\":0.0269595312,\"294\":1.1159242892,\"295\":90.1938685962,\"296\":0.0003135443,\"297\":0.0749646887,\"298\":0.0003086146,\"299\":0.0012994574,\"300\":2.6094848172,\"301\":0.0003057819,\"302\":3.1168978336,\"303\":258.8173448032,\"304\":0.6399157368,\"305\":0.0013610725,\"306\":0.0003008436,\"307\":0.0003022942,\"308\":0.0743360259,\"309\":2.9541191494,\"310\":0.0750521614,\"311\":0.0002786891,\"312\":0.0765375238,\"313\":0.0786170208,\"314\":254.7377791558,\"315\":0.6332146949,\"316\":0.0012511994,\"317\":255.4818691128,\"318\":0.0002993789,\"319\":0.0795709467,\"320\":3.2918581546,\"321\":257.0717435017,\"322\":0.075620955,\"323\":3.0455739373,\"324\":3.017927999,\"325\":248.36436771,\"326\":0.6379927582,\"327\":0.6590214898,\"328\":0.001320904,\"329\":0.0003095879,\"330\":0.0819953092,\"331\":0.6430504477,\"332\":0.6475359063,\"333\":0.0002835411,\"334\":254.0055031297,\"335\":3.0224912372,\"336\":0.0754360683,\"337\":3.1755819894,\"338\":258.0712157231,\"339\":0.001269575,\"340\":0.6500374322,\"341\":0.0012801779,\"342\":0.0002853545,\"343\":0.0013302131,\"344\":0.0772560755,\"345\":3.1618892322,\"346\":0.0012445772,\"347\":0.0013146078,\"348\":254.9435445427,\"349\":0.0753367786,\"350\":0.6431993264,\"351\":0.6456951464,\"352\":255.0007888682,\"353\":0.0012510583,\"354\":0.000280869,\"355\":255.6296527485,\"356\":0.076037207,\"357\":0.0002909724,\"358\":3.2318942339,\"359\":254.4914089011,\"360\":0.648028199,\"361\":0.0002920462,\"362\":0.0013244939,\"363\":0.0002916378,\"364\":0.0744906409,\"365\":0.0002864286,\"366\":0.0013065438,\"367\":3.1322985321,\"368\":0.0761860326,\"369\":247.8726553922,\"370\":0.0002827609,\"371\":0.0822679693,\"372\":3.2108159712,\"373\":255.7023829207,\"374\":0.6527717517,\"375\":0.0743961115,\"376\":0.0013119883,\"377\":0.0002884829,\"378\":0.0778897431,\"379\":3.127486051,\"380\":254.4063818748,\"381\":0.0002985507,\"382\":0.0768944759,\"383\":3.1095381336,\"384\":0.6514375499,\"385\":260.1100760155,\"386\":0.6475548961,\"387\":0.0012563157,\"388\":0.0002940727,\"389\":2.8612102457},\"start_time\":{\"0\":1553904000000,\"1\":1553904000000,\"2\":1553904000000,\"3\":1553904000000,\"4\":1553904000000,\"5\":1553904000000,\"6\":1553904000000,\"7\":1553904000000,\"8\":1553904000000,\"9\":1553904000000,\"10\":1553904000000,\"11\":1553904000000,\"12\":1553904000000,\"13\":1553904000000,\"14\":1553904000000,\"15\":1553904000000,\"16\":1553904000000,\"17\":1553904000000,\"18\":1553904000000,\"19\":1553904000000,\"20\":1553904000000,\"21\":1553904000000,\"22\":1553904000000,\"23\":1553904000000,\"24\":1553904000000,\"25\":1553904000000,\"26\":1553904000000,\"27\":1553904000000,\"28\":1553904000000,\"29\":1553904000000,\"30\":1553904000000,\"31\":1553904000000,\"32\":1553904000000,\"33\":1553904000000,\"34\":1553904000000,\"35\":1553904000000,\"36\":1553904000000,\"37\":1553904000000,\"38\":1553904000000,\"39\":1553904000000,\"40\":1553904000000,\"41\":1553904000000,\"42\":1553904000000,\"43\":1553904000000,\"44\":1553904000000,\"45\":1553904000000,\"46\":1553904000000,\"47\":1553904000000,\"48\":1553904000000,\"49\":1553904000000,\"50\":1553904000000,\"51\":1553904000000,\"52\":1553904000000,\"53\":1553904000000,\"54\":1553904000000,\"55\":1553904000000,\"56\":1553904000000,\"57\":1553904000000,\"58\":1553904000000,\"59\":1553904000000,\"60\":1553904000000,\"61\":1553904000000,\"62\":1553904000000,\"63\":1553904000000,\"64\":1553904000000,\"65\":1553904000000,\"66\":1553904000000,\"67\":1553904000000,\"68\":1553904000000,\"69\":1553904000000,\"70\":1553904000000,\"71\":1553904000000,\"72\":1553904000000,\"73\":1553904000000,\"74\":1553904000000,\"75\":1553904000000,\"76\":1553904000000,\"77\":1553904000000,\"78\":1553904000000,\"79\":1553904000000,\"80\":1553904000000,\"81\":1553904000000,\"82\":1553904000000,\"83\":1553904000000,\"84\":1553904000000,\"85\":1553904000000,\"86\":1553904000000,\"87\":1553904000000,\"88\":1553904000000,\"89\":1553904000000,\"90\":1553904000000,\"91\":1553904000000,\"92\":1553904000000,\"93\":1553904000000,\"94\":1553904000000,\"95\":1553904000000,\"96\":1553904000000,\"97\":1553904000000,\"98\":1553904000000,\"99\":1553904000000,\"100\":1553904000000,\"101\":1553904000000,\"102\":1553904000000,\"103\":1553904000000,\"104\":1553904000000,\"105\":1553904000000,\"106\":1553904000000,\"107\":1553904000000,\"108\":1553904000000,\"109\":1553904000000,\"110\":1553904000000,\"111\":1553904000000,\"112\":1553904000000,\"113\":1553904000000,\"114\":1553904000000,\"115\":1553904000000,\"116\":1553904000000,\"117\":1553904000000,\"118\":1553904000000,\"119\":1553904000000,\"120\":1553904000000,\"121\":1553904000000,\"122\":1553904000000,\"123\":1553904000000,\"124\":1553904000000,\"125\":1553904000000,\"126\":1553904000000,\"127\":1553904000000,\"128\":1553904000000,\"129\":1553904000000,\"130\":1553904000000,\"131\":1553904000000,\"132\":1553904000000,\"133\":1553904000000,\"134\":1553904000000,\"135\":1553904000000,\"136\":1553904000000,\"137\":1553904000000,\"138\":1553904000000,\"139\":1553904000000,\"140\":1553904000000,\"141\":1553904000000,\"142\":1553904000000,\"143\":1553904000000,\"144\":1553904000000,\"145\":1553904000000,\"146\":1553904000000,\"147\":1553904000000,\"148\":1553904000000,\"149\":1553904000000,\"150\":1553904000000,\"151\":1553904000000,\"152\":1553904000000,\"153\":1553904000000,\"154\":1553904000000,\"155\":1553904000000,\"156\":1553904000000,\"157\":1553904000000,\"158\":1553904000000,\"159\":1553904000000,\"160\":1553904000000,\"161\":1553904000000,\"162\":1553904000000,\"163\":1553904000000,\"164\":1553904000000,\"165\":1553904000000,\"166\":1553904000000,\"167\":1553904000000,\"168\":1553904000000,\"169\":1553904000000,\"170\":1553904000000,\"171\":1553904000000,\"172\":1553904000000,\"173\":1553904000000,\"174\":1553904000000,\"175\":1553904000000,\"176\":1553904000000,\"177\":1553904000000,\"178\":1553904000000,\"179\":1553904000000,\"180\":1553904000000,\"181\":1553904000000,\"182\":1553904000000,\"183\":1553904000000,\"184\":1553904000000,\"185\":1553904000000,\"186\":1553904000000,\"187\":1553904000000,\"188\":1553904000000,\"189\":1553904000000,\"190\":1553904000000,\"191\":1553904000000,\"192\":1553904000000,\"193\":1553904000000,\"194\":1553904000000,\"195\":1553904000000,\"196\":1553904000000,\"197\":1553904000000,\"198\":1553904000000,\"199\":1553904000000,\"200\":1553904000000,\"201\":1553904000000,\"202\":1553904000000,\"203\":1553904000000,\"204\":1553904000000,\"205\":1553904000000,\"206\":1553904000000,\"207\":1553904000000,\"208\":1553904000000,\"209\":1553904000000,\"210\":1553904000000,\"211\":1553904000000,\"212\":1553904000000,\"213\":1553904000000,\"214\":1553904000000,\"215\":1553904000000,\"216\":1553904000000,\"217\":1553904000000,\"218\":1553904000000,\"219\":1553904000000,\"220\":1553904000000,\"221\":1553904000000,\"222\":1553904000000,\"223\":1553904000000,\"224\":1553904000000,\"225\":1553904000000,\"226\":1553904000000,\"227\":1553904000000,\"228\":1553904000000,\"229\":1553904000000,\"230\":1553904000000,\"231\":1553904000000,\"232\":1553904000000,\"233\":1553904000000,\"234\":1553904000000,\"235\":1553904000000,\"236\":1553904000000,\"237\":1553904000000,\"238\":1553904000000,\"239\":1553904000000,\"240\":1553904000000,\"241\":1553904000000,\"242\":1553904000000,\"243\":1553904000000,\"244\":1553904000000,\"245\":1553904000000,\"246\":1553904000000,\"247\":1553904000000,\"248\":1553904000000,\"249\":1553904000000,\"250\":1553904000000,\"251\":1553904000000,\"252\":1553904000000,\"253\":1553904000000,\"254\":1553904000000,\"255\":1553904000000,\"256\":1553904000000,\"257\":1553904000000,\"258\":1553904000000,\"259\":1553904000000,\"260\":1553904000000,\"261\":1553904000000,\"262\":1553904000000,\"263\":1553904000000,\"264\":1553904000000,\"265\":1553904000000,\"266\":1553904000000,\"267\":1553904000000,\"268\":1553904000000,\"269\":1553904000000,\"270\":1553904000000,\"271\":1553904000000,\"272\":1553904000000,\"273\":1553904000000,\"274\":1553904000000,\"275\":1553904000000,\"276\":1553904000000,\"277\":1553904000000,\"278\":1553904000000,\"279\":1553904000000,\"280\":1553904000000,\"281\":1553904000000,\"282\":1553904000000,\"283\":1553904000000,\"284\":1553904000000,\"285\":1553904000000,\"286\":1553904000000,\"287\":1553904000000,\"288\":1553904000000,\"289\":1553904000000,\"290\":1553904000000,\"291\":1553904000000,\"292\":1553904000000,\"293\":1553904000000,\"294\":1553904000000,\"295\":1553904000000,\"296\":1553904000000,\"297\":1553904000000,\"298\":1553904000000,\"299\":1553904000000,\"300\":1553904000000,\"301\":1553904000000,\"302\":1553904000000,\"303\":1553904000000,\"304\":1553904000000,\"305\":1553904000000,\"306\":1553904000000,\"307\":1553904000000,\"308\":1553904000000,\"309\":1553904000000,\"310\":1553904000000,\"311\":1553904000000,\"312\":1553904000000,\"313\":1553904000000,\"314\":1553904000000,\"315\":1553904000000,\"316\":1553904000000,\"317\":1553904000000,\"318\":1553904000000,\"319\":1553904000000,\"320\":1553904000000,\"321\":1553904000000,\"322\":1553904000000,\"323\":1553904000000,\"324\":1553904000000,\"325\":1553904000000,\"326\":1553904000000,\"327\":1553904000000,\"328\":1553904000000,\"329\":1553904000000,\"330\":1553904000000,\"331\":1553904000000,\"332\":1553904000000,\"333\":1553904000000,\"334\":1553904000000,\"335\":1553904000000,\"336\":1553904000000,\"337\":1553904000000,\"338\":1553904000000,\"339\":1553904000000,\"340\":1553904000000,\"341\":1553904000000,\"342\":1553904000000,\"343\":1553904000000,\"344\":1553904000000,\"345\":1553904000000,\"346\":1553904000000,\"347\":1553904000000,\"348\":1553904000000,\"349\":1553904000000,\"350\":1553904000000,\"351\":1553904000000,\"352\":1553904000000,\"353\":1553904000000,\"354\":1553904000000,\"355\":1553904000000,\"356\":1553904000000,\"357\":1553904000000,\"358\":1553904000000,\"359\":1553904000000,\"360\":1553904000000,\"361\":1553904000000,\"362\":1553904000000,\"363\":1553904000000,\"364\":1553904000000,\"365\":1553904000000,\"366\":1553904000000,\"367\":1553904000000,\"368\":1553904000000,\"369\":1553904000000,\"370\":1553904000000,\"371\":1553904000000,\"372\":1553904000000,\"373\":1553904000000,\"374\":1553904000000,\"375\":1553904000000,\"376\":1553904000000,\"377\":1553904000000,\"378\":1553904000000,\"379\":1553904000000,\"380\":1553904000000,\"381\":1553904000000,\"382\":1553904000000,\"383\":1553904000000,\"384\":1553904000000,\"385\":1553904000000,\"386\":1553904000000,\"387\":1553904000000,\"388\":1553904000000,\"389\":1553904000000}}"},"description":null}],[1556078905259,{"__type":"Data","df":{"__type":"DataFrame","value":"{\"arm_name\":{\"0\":\"0_0\",\"1\":\"0_0\",\"2\":\"0_17\",\"3\":\"0_30\",\"4\":\"0_27\",\"5\":\"0_51\",\"6\":\"0_30\",\"7\":\"0_30\",\"8\":\"0_10\",\"9\":\"0_31\",\"10\":\"0_31\",\"11\":\"0_24\",\"12\":\"0_31\",\"13\":\"0_1\",\"14\":\"0_31\",\"15\":\"0_31\",\"16\":\"0_5\",\"17\":\"0_61\",\"18\":\"0_1\",\"19\":\"0_51\",\"20\":\"0_31\",\"21\":\"0_32\",\"22\":\"0_32\",\"23\":\"0_32\",\"24\":\"0_18\",\"25\":\"0_32\",\"26\":\"0_10\",\"27\":\"0_32\",\"28\":\"0_24\",\"29\":\"0_61\",\"30\":\"0_32\",\"31\":\"0_33\",\"32\":\"0_26\",\"33\":\"0_40\",\"34\":\"0_33\",\"35\":\"0_60\",\"36\":\"0_33\",\"37\":\"0_33\",\"38\":\"0_33\",\"39\":\"0_33\",\"40\":\"0_34\",\"41\":\"0_61\",\"42\":\"0_34\",\"43\":\"0_10\",\"44\":\"0_24\",\"45\":\"0_49\",\"46\":\"0_18\",\"47\":\"0_52\",\"48\":\"0_34\",\"49\":\"0_41\",\"50\":\"0_34\",\"51\":\"0_34\",\"52\":\"0_34\",\"53\":\"0_61\",\"54\":\"0_35\",\"55\":\"0_35\",\"56\":\"0_35\",\"57\":\"0_18\",\"58\":\"0_35\",\"59\":\"0_35\",\"60\":\"0_52\",\"61\":\"0_35\",\"62\":\"0_24\",\"63\":\"0_41\",\"64\":\"0_11\",\"65\":\"0_50\",\"66\":\"0_36\",\"67\":\"0_36\",\"68\":\"0_38\",\"69\":\"0_36\",\"70\":\"0_36\",\"71\":\"0_36\",\"72\":\"0_36\",\"73\":\"0_12\",\"74\":\"0_37\",\"75\":\"0_37\",\"76\":\"0_37\",\"77\":\"0_62\",\"78\":\"0_41\",\"79\":\"0_50\",\"80\":\"0_11\",\"81\":\"0_41\",\"82\":\"0_11\",\"83\":\"0_41\",\"84\":\"0_41\",\"85\":\"0_42\",\"86\":\"0_52\",\"87\":\"0_42\",\"88\":\"0_25\",\"89\":\"0_62\",\"90\":\"0_10\",\"91\":\"0_42\",\"92\":\"0_42\",\"93\":\"0_42\",\"94\":\"0_37\",\"95\":\"0_42\",\"96\":\"0_43\",\"97\":\"0_43\",\"98\":\"0_11\",\"99\":\"0_52\",\"100\":\"0_43\",\"101\":\"0_4\",\"102\":\"0_62\",\"103\":\"0_43\",\"104\":\"0_43\",\"105\":\"0_25\",\"106\":\"0_43\",\"107\":\"0_44\",\"108\":\"0_37\",\"109\":\"0_44\",\"110\":\"0_44\",\"111\":\"0_44\",\"112\":\"0_60\",\"113\":\"0_18\",\"114\":\"0_25\",\"115\":\"0_62\",\"116\":\"0_44\",\"117\":\"0_44\",\"118\":\"0_12\",\"119\":\"0_45\",\"120\":\"0_45\",\"121\":\"0_25\",\"122\":\"0_45\",\"123\":\"0_38\",\"124\":\"0_18\",\"125\":\"0_45\",\"126\":\"0_45\",\"127\":\"0_39\",\"128\":\"0_52\",\"129\":\"0_45\",\"130\":\"0_46\",\"131\":\"0_46\",\"132\":\"0_46\",\"133\":\"0_46\",\"134\":\"0_12\",\"135\":\"0_18\",\"136\":\"0_46\",\"137\":\"0_25\",\"138\":\"0_38\",\"139\":\"0_6\",\"140\":\"0_62\",\"141\":\"0_46\",\"142\":\"0_52\",\"143\":\"0_47\",\"144\":\"0_47\",\"145\":\"0_47\",\"146\":\"0_19\",\"147\":\"0_47\",\"148\":\"0_47\",\"149\":\"0_47\",\"150\":\"0_48\",\"151\":\"0_48\",\"152\":\"0_62\",\"153\":\"0_12\",\"154\":\"0_38\",\"155\":\"0_53\",\"156\":\"0_26\",\"157\":\"0_60\",\"158\":\"0_48\",\"159\":\"0_48\",\"160\":\"0_48\",\"161\":\"0_48\",\"162\":\"0_49\",\"163\":\"0_49\",\"164\":\"0_27\",\"165\":\"0_49\",\"166\":\"0_49\",\"167\":\"0_49\",\"168\":\"0_19\",\"169\":\"0_53\",\"170\":\"0_26\",\"171\":\"0_53\",\"172\":\"0_26\",\"173\":\"0_53\",\"174\":\"0_53\",\"175\":\"0_53\",\"176\":\"0_14\",\"177\":\"0_0\",\"178\":\"0_39\",\"179\":\"0_19\",\"180\":\"0_13\",\"181\":\"0_54\",\"182\":\"0_54\",\"183\":\"0_12\",\"184\":\"0_54\",\"185\":\"0_54\",\"186\":\"0_54\",\"187\":\"0_26\",\"188\":\"0_63\",\"189\":\"0_54\",\"190\":\"0_19\",\"191\":\"0_55\",\"192\":\"0_55\",\"193\":\"0_39\",\"194\":\"0_55\",\"195\":\"0_55\",\"196\":\"0_5\",\"197\":\"0_13\",\"198\":\"0_55\",\"199\":\"0_55\",\"200\":\"0_38\",\"201\":\"0_1\",\"202\":\"0_56\",\"203\":\"0_56\",\"204\":\"0_10\",\"205\":\"0_56\",\"206\":\"0_56\",\"207\":\"0_0\",\"208\":\"0_56\",\"209\":\"0_5\",\"210\":\"0_56\",\"211\":\"0_57\",\"212\":\"0_50\",\"213\":\"0_63\",\"214\":\"0_57\",\"215\":\"0_13\",\"216\":\"0_57\",\"217\":\"0_57\",\"218\":\"0_57\",\"219\":\"0_27\",\"220\":\"0_57\",\"221\":\"0_11\",\"222\":\"0_5\",\"223\":\"0_17\",\"224\":\"0_19\",\"225\":\"0_58\",\"226\":\"0_63\",\"227\":\"0_58\",\"228\":\"0_58\",\"229\":\"0_58\",\"230\":\"0_58\",\"231\":\"0_58\",\"232\":\"0_13\",\"233\":\"0_59\",\"234\":\"0_59\",\"235\":\"0_19\",\"236\":\"0_27\",\"237\":\"0_5\",\"238\":\"0_63\",\"239\":\"0_39\",\"240\":\"0_59\",\"241\":\"0_59\",\"242\":\"0_59\",\"243\":\"0_59\",\"244\":\"0_6\",\"245\":\"0_6\",\"246\":\"0_11\",\"247\":\"0_6\",\"248\":\"0_6\",\"249\":\"0_13\",\"250\":\"0_63\",\"251\":\"0_39\",\"252\":\"0_63\",\"253\":\"0_4\",\"254\":\"0_7\",\"255\":\"0_7\",\"256\":\"0_7\",\"257\":\"0_28\",\"258\":\"0_23\",\"259\":\"0_50\",\"260\":\"0_27\",\"261\":\"0_7\",\"262\":\"0_14\",\"263\":\"0_27\",\"264\":\"0_7\",\"265\":\"0_7\",\"266\":\"0_8\",\"267\":\"0_4\",\"268\":\"0_2\",\"269\":\"0_8\",\"270\":\"0_8\",\"271\":\"0_8\",\"272\":\"0_50\",\"273\":\"0_8\",\"274\":\"0_8\",\"275\":\"0_6\",\"276\":\"0_28\",\"277\":\"0_9\",\"278\":\"0_9\",\"279\":\"0_5\",\"280\":\"0_14\",\"281\":\"0_9\",\"282\":\"0_25\",\"283\":\"0_9\",\"284\":\"0_9\",\"285\":\"0_1\",\"286\":\"0_9\",\"287\":\"0_60\",\"288\":\"status_quo\",\"289\":\"status_quo\",\"290\":\"0_2\",\"291\":\"status_quo\",\"292\":\"0_28\",\"293\":\"status_quo\",\"294\":\"status_quo\",\"295\":\"status_quo\",\"296\":\"0_4\",\"297\":\"0_14\",\"298\":\"0_26\",\"299\":\"0_60\",\"300\":\"0_0\",\"301\":\"0_2\",\"302\":\"0_14\",\"303\":\"0_14\",\"304\":\"0_15\",\"305\":\"0_15\",\"306\":\"0_15\",\"307\":\"0_28\",\"308\":\"0_15\",\"309\":\"0_15\",\"310\":\"0_4\",\"311\":\"0_60\",\"312\":\"0_2\",\"313\":\"0_50\",\"314\":\"0_15\",\"315\":\"0_16\",\"316\":\"0_16\",\"317\":\"0_0\",\"318\":\"0_16\",\"319\":\"0_16\",\"320\":\"0_16\",\"321\":\"0_16\",\"322\":\"0_28\",\"323\":\"0_2\",\"324\":\"0_12\",\"325\":\"0_2\",\"326\":\"0_51\",\"327\":\"0_20\",\"328\":\"0_20\",\"329\":\"0_1\",\"330\":\"0_37\",\"331\":\"0_61\",\"332\":\"0_40\",\"333\":\"0_20\",\"334\":\"0_28\",\"335\":\"0_4\",\"336\":\"0_20\",\"337\":\"0_20\",\"338\":\"0_20\",\"339\":\"0_51\",\"340\":\"0_21\",\"341\":\"0_21\",\"342\":\"0_21\",\"343\":\"0_61\",\"344\":\"0_21\",\"345\":\"0_21\",\"346\":\"0_17\",\"347\":\"0_40\",\"348\":\"0_21\",\"349\":\"0_1\",\"350\":\"0_29\",\"351\":\"0_22\",\"352\":\"0_38\",\"353\":\"0_22\",\"354\":\"0_22\",\"355\":\"0_24\",\"356\":\"0_22\",\"357\":\"0_17\",\"358\":\"0_22\",\"359\":\"0_22\",\"360\":\"0_23\",\"361\":\"0_40\",\"362\":\"0_23\",\"363\":\"0_23\",\"364\":\"0_23\",\"365\":\"0_51\",\"366\":\"0_29\",\"367\":\"0_39\",\"368\":\"0_17\",\"369\":\"0_23\",\"370\":\"0_29\",\"371\":\"0_29\",\"372\":\"0_29\",\"373\":\"0_29\",\"374\":\"0_3\",\"375\":\"0_40\",\"376\":\"0_3\",\"377\":\"0_10\",\"378\":\"0_51\",\"379\":\"0_17\",\"380\":\"0_13\",\"381\":\"0_3\",\"382\":\"0_3\",\"383\":\"0_3\",\"384\":\"0_24\",\"385\":\"0_3\",\"386\":\"0_30\",\"387\":\"0_30\",\"388\":\"0_30\",\"389\":\"0_40\"},\"trial_index\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":0,\"113\":0,\"114\":0,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":0,\"120\":0,\"121\":0,\"122\":0,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":0,\"128\":0,\"129\":0,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":0,\"144\":0,\"145\":0,\"146\":0,\"147\":0,\"148\":0,\"149\":0,\"150\":0,\"151\":0,\"152\":0,\"153\":0,\"154\":0,\"155\":0,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":0,\"163\":0,\"164\":0,\"165\":0,\"166\":0,\"167\":0,\"168\":0,\"169\":0,\"170\":0,\"171\":0,\"172\":0,\"173\":0,\"174\":0,\"175\":0,\"176\":0,\"177\":0,\"178\":0,\"179\":0,\"180\":0,\"181\":0,\"182\":0,\"183\":0,\"184\":0,\"185\":0,\"186\":0,\"187\":0,\"188\":0,\"189\":0,\"190\":0,\"191\":0,\"192\":0,\"193\":0,\"194\":0,\"195\":0,\"196\":0,\"197\":0,\"198\":0,\"199\":0,\"200\":0,\"201\":0,\"202\":0,\"203\":0,\"204\":0,\"205\":0,\"206\":0,\"207\":0,\"208\":0,\"209\":0,\"210\":0,\"211\":0,\"212\":0,\"213\":0,\"214\":0,\"215\":0,\"216\":0,\"217\":0,\"218\":0,\"219\":0,\"220\":0,\"221\":0,\"222\":0,\"223\":0,\"224\":0,\"225\":0,\"226\":0,\"227\":0,\"228\":0,\"229\":0,\"230\":0,\"231\":0,\"232\":0,\"233\":0,\"234\":0,\"235\":0,\"236\":0,\"237\":0,\"238\":0,\"239\":0,\"240\":0,\"241\":0,\"242\":0,\"243\":0,\"244\":0,\"245\":0,\"246\":0,\"247\":0,\"248\":0,\"249\":0,\"250\":0,\"251\":0,\"252\":0,\"253\":0,\"254\":0,\"255\":0,\"256\":0,\"257\":0,\"258\":0,\"259\":0,\"260\":0,\"261\":0,\"262\":0,\"263\":0,\"264\":0,\"265\":0,\"266\":0,\"267\":0,\"268\":0,\"269\":0,\"270\":0,\"271\":0,\"272\":0,\"273\":0,\"274\":0,\"275\":0,\"276\":0,\"277\":0,\"278\":0,\"279\":0,\"280\":0,\"281\":0,\"282\":0,\"283\":0,\"284\":0,\"285\":0,\"286\":0,\"287\":0,\"288\":0,\"289\":0,\"290\":0,\"291\":0,\"292\":0,\"293\":0,\"294\":0,\"295\":0,\"296\":0,\"297\":0,\"298\":0,\"299\":0,\"300\":0,\"301\":0,\"302\":0,\"303\":0,\"304\":0,\"305\":0,\"306\":0,\"307\":0,\"308\":0,\"309\":0,\"310\":0,\"311\":0,\"312\":0,\"313\":0,\"314\":0,\"315\":0,\"316\":0,\"317\":0,\"318\":0,\"319\":0,\"320\":0,\"321\":0,\"322\":0,\"323\":0,\"324\":0,\"325\":0,\"326\":0,\"327\":0,\"328\":0,\"329\":0,\"330\":0,\"331\":0,\"332\":0,\"333\":0,\"334\":0,\"335\":0,\"336\":0,\"337\":0,\"338\":0,\"339\":0,\"340\":0,\"341\":0,\"342\":0,\"343\":0,\"344\":0,\"345\":0,\"346\":0,\"347\":0,\"348\":0,\"349\":0,\"350\":0,\"351\":0,\"352\":0,\"353\":0,\"354\":0,\"355\":0,\"356\":0,\"357\":0,\"358\":0,\"359\":0,\"360\":0,\"361\":0,\"362\":0,\"363\":0,\"364\":0,\"365\":0,\"366\":0,\"367\":0,\"368\":0,\"369\":0,\"370\":0,\"371\":0,\"372\":0,\"373\":0,\"374\":0,\"375\":0,\"376\":0,\"377\":0,\"378\":0,\"379\":0,\"380\":0,\"381\":0,\"382\":0,\"383\":0,\"384\":0,\"385\":0,\"386\":0,\"387\":0,\"388\":0,\"389\":0},\"end_time\":{\"0\":1554249600000,\"1\":1554249600000,\"2\":1554249600000,\"3\":1554249600000,\"4\":1554249600000,\"5\":1554249600000,\"6\":1554249600000,\"7\":1554249600000,\"8\":1554249600000,\"9\":1554249600000,\"10\":1554249600000,\"11\":1554249600000,\"12\":1554249600000,\"13\":1554249600000,\"14\":1554249600000,\"15\":1554249600000,\"16\":1554249600000,\"17\":1554249600000,\"18\":1554249600000,\"19\":1554249600000,\"20\":1554249600000,\"21\":1554249600000,\"22\":1554249600000,\"23\":1554249600000,\"24\":1554249600000,\"25\":1554249600000,\"26\":1554249600000,\"27\":1554249600000,\"28\":1554249600000,\"29\":1554249600000,\"30\":1554249600000,\"31\":1554249600000,\"32\":1554249600000,\"33\":1554249600000,\"34\":1554249600000,\"35\":1554249600000,\"36\":1554249600000,\"37\":1554249600000,\"38\":1554249600000,\"39\":1554249600000,\"40\":1554249600000,\"41\":1554249600000,\"42\":1554249600000,\"43\":1554249600000,\"44\":1554249600000,\"45\":1554249600000,\"46\":1554249600000,\"47\":1554249600000,\"48\":1554249600000,\"49\":1554249600000,\"50\":1554249600000,\"51\":1554249600000,\"52\":1554249600000,\"53\":1554249600000,\"54\":1554249600000,\"55\":1554249600000,\"56\":1554249600000,\"57\":1554249600000,\"58\":1554249600000,\"59\":1554249600000,\"60\":1554249600000,\"61\":1554249600000,\"62\":1554249600000,\"63\":1554249600000,\"64\":1554249600000,\"65\":1554249600000,\"66\":1554249600000,\"67\":1554249600000,\"68\":1554249600000,\"69\":1554249600000,\"70\":1554249600000,\"71\":1554249600000,\"72\":1554249600000,\"73\":1554249600000,\"74\":1554249600000,\"75\":1554249600000,\"76\":1554249600000,\"77\":1554249600000,\"78\":1554249600000,\"79\":1554249600000,\"80\":1554249600000,\"81\":1554249600000,\"82\":1554249600000,\"83\":1554249600000,\"84\":1554249600000,\"85\":1554249600000,\"86\":1554249600000,\"87\":1554249600000,\"88\":1554249600000,\"89\":1554249600000,\"90\":1554249600000,\"91\":1554249600000,\"92\":1554249600000,\"93\":1554249600000,\"94\":1554249600000,\"95\":1554249600000,\"96\":1554249600000,\"97\":1554249600000,\"98\":1554249600000,\"99\":1554249600000,\"100\":1554249600000,\"101\":1554249600000,\"102\":1554249600000,\"103\":1554249600000,\"104\":1554249600000,\"105\":1554249600000,\"106\":1554249600000,\"107\":1554249600000,\"108\":1554249600000,\"109\":1554249600000,\"110\":1554249600000,\"111\":1554249600000,\"112\":1554249600000,\"113\":1554249600000,\"114\":1554249600000,\"115\":1554249600000,\"116\":1554249600000,\"117\":1554249600000,\"118\":1554249600000,\"119\":1554249600000,\"120\":1554249600000,\"121\":1554249600000,\"122\":1554249600000,\"123\":1554249600000,\"124\":1554249600000,\"125\":1554249600000,\"126\":1554249600000,\"127\":1554249600000,\"128\":1554249600000,\"129\":1554249600000,\"130\":1554249600000,\"131\":1554249600000,\"132\":1554249600000,\"133\":1554249600000,\"134\":1554249600000,\"135\":1554249600000,\"136\":1554249600000,\"137\":1554249600000,\"138\":1554249600000,\"139\":1554249600000,\"140\":1554249600000,\"141\":1554249600000,\"142\":1554249600000,\"143\":1554249600000,\"144\":1554249600000,\"145\":1554249600000,\"146\":1554249600000,\"147\":1554249600000,\"148\":1554249600000,\"149\":1554249600000,\"150\":1554249600000,\"151\":1554249600000,\"152\":1554249600000,\"153\":1554249600000,\"154\":1554249600000,\"155\":1554249600000,\"156\":1554249600000,\"157\":1554249600000,\"158\":1554249600000,\"159\":1554249600000,\"160\":1554249600000,\"161\":1554249600000,\"162\":1554249600000,\"163\":1554249600000,\"164\":1554249600000,\"165\":1554249600000,\"166\":1554249600000,\"167\":1554249600000,\"168\":1554249600000,\"169\":1554249600000,\"170\":1554249600000,\"171\":1554249600000,\"172\":1554249600000,\"173\":1554249600000,\"174\":1554249600000,\"175\":1554249600000,\"176\":1554249600000,\"177\":1554249600000,\"178\":1554249600000,\"179\":1554249600000,\"180\":1554249600000,\"181\":1554249600000,\"182\":1554249600000,\"183\":1554249600000,\"184\":1554249600000,\"185\":1554249600000,\"186\":1554249600000,\"187\":1554249600000,\"188\":1554249600000,\"189\":1554249600000,\"190\":1554249600000,\"191\":1554249600000,\"192\":1554249600000,\"193\":1554249600000,\"194\":1554249600000,\"195\":1554249600000,\"196\":1554249600000,\"197\":1554249600000,\"198\":1554249600000,\"199\":1554249600000,\"200\":1554249600000,\"201\":1554249600000,\"202\":1554249600000,\"203\":1554249600000,\"204\":1554249600000,\"205\":1554249600000,\"206\":1554249600000,\"207\":1554249600000,\"208\":1554249600000,\"209\":1554249600000,\"210\":1554249600000,\"211\":1554249600000,\"212\":1554249600000,\"213\":1554249600000,\"214\":1554249600000,\"215\":1554249600000,\"216\":1554249600000,\"217\":1554249600000,\"218\":1554249600000,\"219\":1554249600000,\"220\":1554249600000,\"221\":1554249600000,\"222\":1554249600000,\"223\":1554249600000,\"224\":1554249600000,\"225\":1554249600000,\"226\":1554249600000,\"227\":1554249600000,\"228\":1554249600000,\"229\":1554249600000,\"230\":1554249600000,\"231\":1554249600000,\"232\":1554249600000,\"233\":1554249600000,\"234\":1554249600000,\"235\":1554249600000,\"236\":1554249600000,\"237\":1554249600000,\"238\":1554249600000,\"239\":1554249600000,\"240\":1554249600000,\"241\":1554249600000,\"242\":1554249600000,\"243\":1554249600000,\"244\":1554249600000,\"245\":1554249600000,\"246\":1554249600000,\"247\":1554249600000,\"248\":1554249600000,\"249\":1554249600000,\"250\":1554249600000,\"251\":1554249600000,\"252\":1554249600000,\"253\":1554249600000,\"254\":1554249600000,\"255\":1554249600000,\"256\":1554249600000,\"257\":1554249600000,\"258\":1554249600000,\"259\":1554249600000,\"260\":1554249600000,\"261\":1554249600000,\"262\":1554249600000,\"263\":1554249600000,\"264\":1554249600000,\"265\":1554249600000,\"266\":1554249600000,\"267\":1554249600000,\"268\":1554249600000,\"269\":1554249600000,\"270\":1554249600000,\"271\":1554249600000,\"272\":1554249600000,\"273\":1554249600000,\"274\":1554249600000,\"275\":1554249600000,\"276\":1554249600000,\"277\":1554249600000,\"278\":1554249600000,\"279\":1554249600000,\"280\":1554249600000,\"281\":1554249600000,\"282\":1554249600000,\"283\":1554249600000,\"284\":1554249600000,\"285\":1554249600000,\"286\":1554249600000,\"287\":1554249600000,\"288\":1554249600000,\"289\":1554249600000,\"290\":1554249600000,\"291\":1554249600000,\"292\":1554249600000,\"293\":1554249600000,\"294\":1554249600000,\"295\":1554249600000,\"296\":1554249600000,\"297\":1554249600000,\"298\":1554249600000,\"299\":1554249600000,\"300\":1554249600000,\"301\":1554249600000,\"302\":1554249600000,\"303\":1554249600000,\"304\":1554249600000,\"305\":1554249600000,\"306\":1554249600000,\"307\":1554249600000,\"308\":1554249600000,\"309\":1554249600000,\"310\":1554249600000,\"311\":1554249600000,\"312\":1554249600000,\"313\":1554249600000,\"314\":1554249600000,\"315\":1554249600000,\"316\":1554249600000,\"317\":1554249600000,\"318\":1554249600000,\"319\":1554249600000,\"320\":1554249600000,\"321\":1554249600000,\"322\":1554249600000,\"323\":1554249600000,\"324\":1554249600000,\"325\":1554249600000,\"326\":1554249600000,\"327\":1554249600000,\"328\":1554249600000,\"329\":1554249600000,\"330\":1554249600000,\"331\":1554249600000,\"332\":1554249600000,\"333\":1554249600000,\"334\":1554249600000,\"335\":1554249600000,\"336\":1554249600000,\"337\":1554249600000,\"338\":1554249600000,\"339\":1554249600000,\"340\":1554249600000,\"341\":1554249600000,\"342\":1554249600000,\"343\":1554249600000,\"344\":1554249600000,\"345\":1554249600000,\"346\":1554249600000,\"347\":1554249600000,\"348\":1554249600000,\"349\":1554249600000,\"350\":1554249600000,\"351\":1554249600000,\"352\":1554249600000,\"353\":1554249600000,\"354\":1554249600000,\"355\":1554249600000,\"356\":1554249600000,\"357\":1554249600000,\"358\":1554249600000,\"359\":1554249600000,\"360\":1554249600000,\"361\":1554249600000,\"362\":1554249600000,\"363\":1554249600000,\"364\":1554249600000,\"365\":1554249600000,\"366\":1554249600000,\"367\":1554249600000,\"368\":1554249600000,\"369\":1554249600000,\"370\":1554249600000,\"371\":1554249600000,\"372\":1554249600000,\"373\":1554249600000,\"374\":1554249600000,\"375\":1554249600000,\"376\":1554249600000,\"377\":1554249600000,\"378\":1554249600000,\"379\":1554249600000,\"380\":1554249600000,\"381\":1554249600000,\"382\":1554249600000,\"383\":1554249600000,\"384\":1554249600000,\"385\":1554249600000,\"386\":1554249600000,\"387\":1554249600000,\"388\":1554249600000,\"389\":1554249600000},\"frac_nonnull\":{\"0\":0.446734088,\"1\":0.0153955991,\"2\":1.0,\"3\":1.0,\"4\":1.0,\"5\":1.0,\"6\":1.0,\"7\":1.0,\"8\":1.0,\"9\":0.446702369,\"10\":0.0155206889,\"11\":0.0154532424,\"12\":1.0,\"13\":0.4464610492,\"14\":1.0,\"15\":1.0,\"16\":1.0,\"17\":1.0,\"18\":1.0,\"19\":1.0,\"20\":1.0,\"21\":0.4459469185,\"22\":0.0152970324,\"23\":1.0,\"24\":0.4467779373,\"25\":1.0,\"26\":1.0,\"27\":1.0,\"28\":1.0,\"29\":1.0,\"30\":1.0,\"31\":0.446990466,\"32\":1.0,\"33\":1.0,\"34\":0.015492509,\"35\":1.0,\"36\":1.0,\"37\":1.0,\"38\":1.0,\"39\":1.0,\"40\":0.4461323162,\"41\":1.0,\"42\":0.015380146,\"43\":1.0,\"44\":1.0,\"45\":1.0,\"46\":0.0153180543,\"47\":0.4464471311,\"48\":1.0,\"49\":0.4469001983,\"50\":1.0,\"51\":1.0,\"52\":1.0,\"53\":1.0,\"54\":0.4469610813,\"55\":0.0152609494,\"56\":1.0,\"57\":1.0,\"58\":1.0,\"59\":1.0,\"60\":0.0154611856,\"61\":1.0,\"62\":1.0,\"63\":0.0153151501,\"64\":0.4467881184,\"65\":0.4465674124,\"66\":0.446614891,\"67\":0.0152827101,\"68\":1.0,\"69\":1.0,\"70\":1.0,\"71\":1.0,\"72\":1.0,\"73\":1.0,\"74\":0.446741304,\"75\":0.0154120117,\"76\":1.0,\"77\":0.4465092842,\"78\":1.0,\"79\":1.0,\"80\":0.0153118412,\"81\":1.0,\"82\":1.0,\"83\":1.0,\"84\":1.0,\"85\":0.4464851702,\"86\":1.0,\"87\":0.0153393693,\"88\":1.0,\"89\":0.0154569046,\"90\":0.0153553422,\"91\":1.0,\"92\":1.0,\"93\":1.0,\"94\":1.0,\"95\":1.0,\"96\":0.4461995102,\"97\":0.0153447712,\"98\":1.0,\"99\":1.0,\"100\":1.0,\"101\":1.0,\"102\":1.0,\"103\":1.0,\"104\":1.0,\"105\":1.0,\"106\":1.0,\"107\":0.446915164,\"108\":1.0,\"109\":0.0152819509,\"110\":1.0,\"111\":1.0,\"112\":1.0,\"113\":1.0,\"114\":0.4457290612,\"115\":1.0,\"116\":1.0,\"117\":1.0,\"118\":0.4464202597,\"119\":0.4467915016,\"120\":0.0153123426,\"121\":1.0,\"122\":1.0,\"123\":0.4467890557,\"124\":1.0,\"125\":1.0,\"126\":1.0,\"127\":1.0,\"128\":1.0,\"129\":1.0,\"130\":0.4466126528,\"131\":0.0153672001,\"132\":1.0,\"133\":1.0,\"134\":0.01519577,\"135\":1.0,\"136\":1.0,\"137\":1.0,\"138\":0.0153611119,\"139\":1.0,\"140\":1.0,\"141\":1.0,\"142\":1.0,\"143\":0.4466883718,\"144\":0.0153663498,\"145\":1.0,\"146\":0.4461103257,\"147\":1.0,\"148\":1.0,\"149\":1.0,\"150\":0.4465936859,\"151\":0.0152644808,\"152\":1.0,\"153\":1.0,\"154\":1.0,\"155\":0.4461242123,\"156\":0.447303011,\"157\":1.0,\"158\":1.0,\"159\":1.0,\"160\":1.0,\"161\":1.0,\"162\":0.4468198697,\"163\":0.0154155362,\"164\":1.0,\"165\":1.0,\"166\":1.0,\"167\":1.0,\"168\":0.0155591973,\"169\":0.0153714896,\"170\":0.0154313806,\"171\":1.0,\"172\":1.0,\"173\":1.0,\"174\":1.0,\"175\":1.0,\"176\":0.4464123456,\"177\":1.0,\"178\":0.4459536847,\"179\":1.0,\"180\":0.4461132905,\"181\":0.4463064033,\"182\":0.0152642089,\"183\":1.0,\"184\":1.0,\"185\":1.0,\"186\":1.0,\"187\":1.0,\"188\":0.4460688006,\"189\":1.0,\"190\":1.0,\"191\":0.4462129689,\"192\":0.0152800764,\"193\":0.0152811357,\"194\":1.0,\"195\":1.0,\"196\":0.4467456509,\"197\":0.0153132817,\"198\":1.0,\"199\":1.0,\"200\":1.0,\"201\":0.0152488072,\"202\":0.4465175396,\"203\":0.0155459226,\"204\":0.4464124149,\"205\":1.0,\"206\":1.0,\"207\":1.0,\"208\":1.0,\"209\":0.0153924281,\"210\":1.0,\"211\":0.4466758693,\"212\":1.0,\"213\":0.0152581376,\"214\":0.0152599694,\"215\":1.0,\"216\":1.0,\"217\":1.0,\"218\":1.0,\"219\":0.4461845918,\"220\":1.0,\"221\":1.0,\"222\":1.0,\"223\":0.4473646175,\"224\":1.0,\"225\":0.4461478767,\"226\":1.0,\"227\":0.0154858435,\"228\":1.0,\"229\":1.0,\"230\":1.0,\"231\":1.0,\"232\":1.0,\"233\":0.4469509906,\"234\":0.0152964501,\"235\":1.0,\"236\":0.015239247,\"237\":1.0,\"238\":1.0,\"239\":1.0,\"240\":1.0,\"241\":1.0,\"242\":1.0,\"243\":1.0,\"244\":0.4468633995,\"245\":0.015451148,\"246\":1.0,\"247\":1.0,\"248\":1.0,\"249\":1.0,\"250\":1.0,\"251\":1.0,\"252\":1.0,\"253\":0.4462703072,\"254\":0.4463047731,\"255\":0.0154447536,\"256\":1.0,\"257\":1.0,\"258\":1.0,\"259\":0.0152657391,\"260\":1.0,\"261\":1.0,\"262\":0.0153238819,\"263\":1.0,\"264\":1.0,\"265\":1.0,\"266\":0.446342423,\"267\":0.0153325769,\"268\":0.4464823397,\"269\":0.0153955179,\"270\":1.0,\"271\":1.0,\"272\":1.0,\"273\":1.0,\"274\":1.0,\"275\":1.0,\"276\":0.4461637391,\"277\":0.4458502154,\"278\":0.0154493144,\"279\":1.0,\"280\":1.0,\"281\":1.0,\"282\":0.0152276225,\"283\":1.0,\"284\":1.0,\"285\":1.0,\"286\":1.0,\"287\":0.4459754327,\"288\":0.4465432894,\"289\":0.015373904,\"290\":0.0154000149,\"291\":1.0,\"292\":0.0153355447,\"293\":1.0,\"294\":1.0,\"295\":1.0,\"296\":1.0,\"297\":1.0,\"298\":1.0,\"299\":0.0152691012,\"300\":1.0,\"301\":1.0,\"302\":1.0,\"303\":1.0,\"304\":0.4466696771,\"305\":0.0153000468,\"306\":1.0,\"307\":1.0,\"308\":1.0,\"309\":1.0,\"310\":1.0,\"311\":1.0,\"312\":1.0,\"313\":1.0,\"314\":1.0,\"315\":0.4464310309,\"316\":0.0154201652,\"317\":1.0,\"318\":1.0,\"319\":1.0,\"320\":1.0,\"321\":1.0,\"322\":1.0,\"323\":1.0,\"324\":1.0,\"325\":1.0,\"326\":0.446811267,\"327\":0.4463889982,\"328\":0.0154932901,\"329\":1.0,\"330\":1.0,\"331\":0.4461496302,\"332\":0.4459547379,\"333\":1.0,\"334\":1.0,\"335\":1.0,\"336\":1.0,\"337\":1.0,\"338\":1.0,\"339\":0.0152663395,\"340\":0.4471423272,\"341\":0.0155054761,\"342\":1.0,\"343\":0.0153561214,\"344\":1.0,\"345\":1.0,\"346\":0.0154239281,\"347\":0.0153325788,\"348\":1.0,\"349\":1.0,\"350\":0.4461240349,\"351\":0.446061012,\"352\":1.0,\"353\":0.0154276534,\"354\":1.0,\"355\":1.0,\"356\":1.0,\"357\":1.0,\"358\":1.0,\"359\":1.0,\"360\":0.4462525903,\"361\":1.0,\"362\":0.015239082,\"363\":1.0,\"364\":1.0,\"365\":1.0,\"366\":0.0153935799,\"367\":1.0,\"368\":1.0,\"369\":1.0,\"370\":1.0,\"371\":1.0,\"372\":1.0,\"373\":1.0,\"374\":0.4460243176,\"375\":1.0,\"376\":0.0153096302,\"377\":1.0,\"378\":1.0,\"379\":1.0,\"380\":1.0,\"381\":1.0,\"382\":1.0,\"383\":1.0,\"384\":0.4472238735,\"385\":1.0,\"386\":0.4465571027,\"387\":0.0153684636,\"388\":1.0,\"389\":1.0},\"mean\":{\"0\":143.8914856366,\"1\":0.0584180785,\"2\":37741.4133704068,\"3\":21.0473200141,\"4\":21.7704708828,\"5\":534.8772454669,\"6\":534.8840893416,\"7\":37714.9316292328,\"8\":20.8561277107,\"9\":143.0279623521,\"10\":0.0573039877,\"11\":0.0578247941,\"12\":0.9334024777,\"13\":142.5915928435,\"14\":20.3694726715,\"15\":453.0657960088,\"16\":549.0511518835,\"17\":0.9407118171,\"18\":37995.9865940078,\"19\":37715.2835743502,\"20\":37630.6778735692,\"21\":143.3441475584,\"22\":0.0572762596,\"23\":0.9395435629,\"24\":143.6019150538,\"25\":22.3289678016,\"26\":496.9535891264,\"27\":579.8755075795,\"28\":0.9376057997,\"29\":23.9760921492,\"30\":37745.2536362535,\"31\":141.9427801172,\"32\":21.8797036224,\"33\":37209.4680889798,\"34\":0.0577834285,\"35\":577.466025923,\"36\":0.9401324043,\"37\":22.4920081911,\"38\":579.5490838314,\"39\":37503.7736203781,\"40\":142.1509825788,\"41\":591.7112903438,\"42\":0.0573110047,\"43\":37688.3680487265,\"44\":22.061401753,\"45\":37413.4098394856,\"46\":0.0577029859,\"47\":142.5972764435,\"48\":0.9391002251,\"49\":144.6938540989,\"50\":22.0823489199,\"51\":538.8404308226,\"52\":37510.3854859313,\"53\":37800.8998592237,\"54\":144.5525780175,\"55\":0.0581322512,\"56\":0.9381490743,\"57\":0.937104709,\"58\":21.7785559743,\"59\":564.0915622365,\"60\":0.0569815616,\"61\":37659.3946927048,\"62\":565.6264647098,\"63\":0.0595218499,\"64\":144.1787874736,\"65\":142.8710667388,\"66\":143.028651019,\"67\":0.0564470261,\"68\":21.4723590682,\"69\":0.9376156265,\"70\":21.9157166512,\"71\":563.9575508896,\"72\":37931.6119463242,\"73\":37690.881516649,\"74\":143.1766676904,\"75\":0.0576818308,\"76\":0.938270113,\"77\":143.7420208612,\"78\":0.9361545549,\"79\":562.7090597954,\"80\":0.0577853781,\"81\":21.2604964675,\"82\":577.6802807769,\"83\":531.7389392235,\"84\":37836.5268675367,\"85\":143.800058695,\"86\":0.9373067002,\"87\":0.057802685,\"88\":0.9376681151,\"89\":0.0593724018,\"90\":0.0562023919,\"91\":0.9358286945,\"92\":21.3937173897,\"93\":533.2995099946,\"94\":565.5011648274,\"95\":37696.9563709506,\"96\":143.1661300801,\"97\":0.0571616331,\"98\":37621.8240329866,\"99\":21.8315714862,\"100\":0.9360797336,\"101\":37572.6598271402,\"102\":0.9353596441,\"103\":21.338490998,\"104\":540.1556866168,\"105\":21.6400346563,\"106\":37536.8761088298,\"107\":142.9462781035,\"108\":37783.6672199085,\"109\":0.0595498439,\"110\":0.9395470001,\"111\":23.2929146801,\"112\":22.2431650654,\"113\":21.3535329606,\"114\":143.6867727868,\"115\":20.8066326138,\"116\":585.7843090537,\"117\":37437.6174654059,\"118\":144.4957899557,\"119\":144.6386446021,\"120\":0.0585270651,\"121\":564.7346483405,\"122\":0.9367142599,\"123\":143.4439670522,\"124\":553.0256150304,\"125\":21.1609294892,\"126\":543.4917462892,\"127\":37590.7261981341,\"128\":556.6430987863,\"129\":37931.3754928706,\"130\":143.5249644339,\"131\":0.0564301591,\"132\":0.935007802,\"133\":20.9745011961,\"134\":0.057511135,\"135\":37454.0847704278,\"136\":521.8436058271,\"137\":37797.7701668786,\"138\":0.0574189151,\"139\":540.7413033532,\"140\":486.9978083981,\"141\":37652.1432286414,\"142\":37172.8255777464,\"143\":143.0910626726,\"144\":0.0579235942,\"145\":0.9363543611,\"146\":143.5931783039,\"147\":22.5055156411,\"148\":541.1493906184,\"149\":37502.2550021898,\"150\":143.6691810688,\"151\":0.0579276769,\"152\":37723.5315466473,\"153\":0.9363017163,\"154\":0.9371256203,\"155\":144.2960737152,\"156\":144.0455723596,\"157\":37531.2474014044,\"158\":0.9355693118,\"159\":21.3843847146,\"160\":535.162617066,\"161\":37966.3382660157,\"162\":142.764492817,\"163\":0.0572585989,\"164\":521.4885673544,\"165\":0.9379799599,\"166\":21.8001539366,\"167\":558.9373312742,\"168\":0.0593104552,\"169\":0.0578140644,\"170\":0.0565729726,\"171\":0.9366606719,\"172\":562.6174250382,\"173\":21.4374334625,\"174\":548.3876911099,\"175\":37576.0600885693,\"176\":143.8877990129,\"177\":20.3938551623,\"178\":145.03791056,\"179\":0.9358451792,\"180\":143.7940709247,\"181\":144.313440601,\"182\":0.0575303909,\"183\":21.5082145841,\"184\":0.9364150673,\"185\":21.3634470762,\"186\":540.354941559,\"187\":37625.6899626645,\"188\":143.1259579262,\"189\":37393.0202153951,\"190\":20.9149831146,\"191\":144.4092907513,\"192\":0.0565400939,\"193\":0.0563635829,\"194\":0.9365523944,\"195\":21.4088999606,\"196\":143.9384083984,\"197\":0.0564429932,\"198\":543.3509256103,\"199\":37753.5422188382,\"200\":553.5400395602,\"201\":0.0590814716,\"202\":142.3328069707,\"203\":0.0586449589,\"204\":143.2556159844,\"205\":0.9373983606,\"206\":21.8761495501,\"207\":0.9335864431,\"208\":561.0153373251,\"209\":0.0591187566,\"210\":38269.7618231633,\"211\":143.9688065769,\"212\":37694.0082688384,\"213\":0.0577061944,\"214\":0.0569724861,\"215\":0.9365934412,\"216\":0.934326508,\"217\":20.9381701672,\"218\":515.5469981054,\"219\":143.1546323034,\"220\":37620.7183003718,\"221\":0.9385734776,\"222\":0.9364854169,\"223\":143.3323355635,\"224\":477.5755207251,\"225\":144.2934650811,\"226\":0.9349796093,\"227\":0.0535507209,\"228\":0.9364874416,\"229\":21.3210724987,\"230\":547.1011628546,\"231\":37444.039343096,\"232\":21.4183918127,\"233\":144.1562763107,\"234\":0.0565780646,\"235\":37652.0901917769,\"236\":0.0571632777,\"237\":21.4727492046,\"238\":21.038950512,\"239\":0.9377017126,\"240\":0.9383050636,\"241\":21.8518919135,\"242\":572.7317928028,\"243\":37759.4407895925,\"244\":143.2886391191,\"245\":0.0580130489,\"246\":22.1811563552,\"247\":0.9358185661,\"248\":21.3514435661,\"249\":544.5891065864,\"250\":506.3635257112,\"251\":21.6640149689,\"252\":37621.2147348105,\"253\":145.365280476,\"254\":144.5954251743,\"255\":0.0588839819,\"256\":0.9357846433,\"257\":518.5691087639,\"258\":524.3677121973,\"259\":0.0567124803,\"260\":37309.8655156026,\"261\":21.2963493601,\"262\":0.0583971073,\"263\":0.9368342486,\"264\":537.7218273947,\"265\":37806.5562427545,\"266\":144.2457259518,\"267\":0.0575243711,\"268\":143.8346180738,\"269\":0.0580700123,\"270\":0.9358554236,\"271\":21.1658724048,\"272\":0.9377622802,\"273\":546.8571018679,\"274\":37247.2494108395,\"275\":37528.1926167592,\"276\":144.0449942632,\"277\":143.4493988079,\"278\":0.0565249917,\"279\":37592.5314814776,\"280\":0.9374922308,\"281\":0.9348941146,\"282\":0.0571367588,\"283\":21.0336997163,\"284\":515.9073035981,\"285\":495.7630483864,\"286\":37559.243246574,\"287\":142.3935924262,\"288\":143.9449307822,\"289\":0.0578741258,\"290\":0.05769554,\"291\":0.9374997733,\"292\":0.0568921213,\"293\":21.6372636518,\"294\":560.6473614869,\"295\":37530.2423022424,\"296\":0.9365615485,\"297\":21.4602436992,\"298\":0.937922726,\"299\":0.056941286,\"300\":464.4467049594,\"301\":0.9362925812,\"302\":556.068091252,\"303\":37734.6181096142,\"304\":142.5249855524,\"305\":0.0599887171,\"306\":0.936491483,\"307\":0.9346209688,\"308\":21.1164428415,\"309\":517.0287055503,\"310\":21.3033959051,\"311\":0.9385272723,\"312\":21.4194272163,\"313\":22.1199857861,\"314\":37595.7547040222,\"315\":141.2644253764,\"316\":0.0570491647,\"317\":37706.6437032465,\"318\":0.9385948157,\"319\":22.1907197586,\"320\":574.5273877209,\"321\":37825.5471044068,\"322\":21.0854461784,\"323\":542.3029350722,\"324\":543.4399676676,\"325\":37586.9763182764,\"326\":142.8924503185,\"327\":146.2392522967,\"328\":0.0589146811,\"329\":0.9343198036,\"330\":22.6371209753,\"331\":141.6542768587,\"332\":144.4815247207,\"333\":0.9377193216,\"334\":37876.4839451125,\"335\":544.4295676658,\"336\":21.6224324583,\"337\":561.14681338,\"338\":37919.6325350314,\"339\":0.0564453393,\"340\":144.7734704231,\"341\":0.0571772252,\"342\":0.9375368034,\"343\":0.0579873754,\"344\":21.6598472233,\"345\":563.6541000894,\"346\":0.0558079527,\"347\":0.0580841808,\"348\":37602.5711361761,\"349\":20.8668886394,\"350\":143.2991054887,\"351\":144.8196776626,\"352\":37580.6086540124,\"353\":0.056664915,\"354\":0.9383412737,\"355\":37717.2860314765,\"356\":21.6216898678,\"357\":0.9367555561,\"358\":570.8228707945,\"359\":37484.9479844466,\"360\":144.1637072182,\"361\":0.9354594315,\"362\":0.0585965787,\"363\":0.9353137149,\"364\":20.9474084514,\"365\":0.9360136126,\"366\":0.0584855897,\"367\":559.7036228384,\"368\":21.7126315645,\"369\":37446.9200638244,\"370\":0.938262596,\"371\":22.9278848853,\"372\":569.4895133769,\"373\":37740.1561811734,\"374\":144.3333272804,\"375\":20.9308294427,\"376\":0.0574201927,\"377\":0.9344953871,\"378\":21.3405492897,\"379\":553.9417568228,\"380\":37739.3270564333,\"381\":0.9367502698,\"382\":21.5463005234,\"383\":548.2345843739,\"384\":144.3553551883,\"385\":37815.5131818618,\"386\":143.5446844112,\"387\":0.0552684416,\"388\":0.9356262912,\"389\":512.3005012676},\"metric_name\":{\"0\":\"is_live_watch_time_given_iphone\",\"1\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"2\":\"wilde_scroll_frame_drops_per_minute\",\"3\":\"video:encoding:iphone_live_playback_mos_loss\",\"4\":\"video:encoding:iphone_live_playback_mos_loss\",\"5\":\"video:sbl_iphone_is_live__smtbr\",\"6\":\"video:sbl_iphone_is_live__smtbr\",\"7\":\"wilde_scroll_frame_drops_per_minute\",\"8\":\"video:encoding:iphone_live_playback_mos_loss\",\"9\":\"is_live_watch_time_given_iphone\",\"10\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"11\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"12\":\"sbl_iphone_is_live__psr_1_start\",\"13\":\"is_live_watch_time_given_iphone\",\"14\":\"video:encoding:iphone_live_playback_mos_loss\",\"15\":\"video:sbl_iphone_is_live__smtbr\",\"16\":\"video:sbl_iphone_is_live__smtbr\",\"17\":\"sbl_iphone_is_live__psr_1_start\",\"18\":\"wilde_scroll_frame_drops_per_minute\",\"19\":\"wilde_scroll_frame_drops_per_minute\",\"20\":\"wilde_scroll_frame_drops_per_minute\",\"21\":\"is_live_watch_time_given_iphone\",\"22\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"23\":\"sbl_iphone_is_live__psr_1_start\",\"24\":\"is_live_watch_time_given_iphone\",\"25\":\"video:encoding:iphone_live_playback_mos_loss\",\"26\":\"video:sbl_iphone_is_live__smtbr\",\"27\":\"video:sbl_iphone_is_live__smtbr\",\"28\":\"sbl_iphone_is_live__psr_1_start\",\"29\":\"video:encoding:iphone_live_playback_mos_loss\",\"30\":\"wilde_scroll_frame_drops_per_minute\",\"31\":\"is_live_watch_time_given_iphone\",\"32\":\"video:encoding:iphone_live_playback_mos_loss\",\"33\":\"wilde_scroll_frame_drops_per_minute\",\"34\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"35\":\"video:sbl_iphone_is_live__smtbr\",\"36\":\"sbl_iphone_is_live__psr_1_start\",\"37\":\"video:encoding:iphone_live_playback_mos_loss\",\"38\":\"video:sbl_iphone_is_live__smtbr\",\"39\":\"wilde_scroll_frame_drops_per_minute\",\"40\":\"is_live_watch_time_given_iphone\",\"41\":\"video:sbl_iphone_is_live__smtbr\",\"42\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"43\":\"wilde_scroll_frame_drops_per_minute\",\"44\":\"video:encoding:iphone_live_playback_mos_loss\",\"45\":\"wilde_scroll_frame_drops_per_minute\",\"46\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"47\":\"is_live_watch_time_given_iphone\",\"48\":\"sbl_iphone_is_live__psr_1_start\",\"49\":\"is_live_watch_time_given_iphone\",\"50\":\"video:encoding:iphone_live_playback_mos_loss\",\"51\":\"video:sbl_iphone_is_live__smtbr\",\"52\":\"wilde_scroll_frame_drops_per_minute\",\"53\":\"wilde_scroll_frame_drops_per_minute\",\"54\":\"is_live_watch_time_given_iphone\",\"55\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"56\":\"sbl_iphone_is_live__psr_1_start\",\"57\":\"sbl_iphone_is_live__psr_1_start\",\"58\":\"video:encoding:iphone_live_playback_mos_loss\",\"59\":\"video:sbl_iphone_is_live__smtbr\",\"60\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"61\":\"wilde_scroll_frame_drops_per_minute\",\"62\":\"video:sbl_iphone_is_live__smtbr\",\"63\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"64\":\"is_live_watch_time_given_iphone\",\"65\":\"is_live_watch_time_given_iphone\",\"66\":\"is_live_watch_time_given_iphone\",\"67\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"68\":\"video:encoding:iphone_live_playback_mos_loss\",\"69\":\"sbl_iphone_is_live__psr_1_start\",\"70\":\"video:encoding:iphone_live_playback_mos_loss\",\"71\":\"video:sbl_iphone_is_live__smtbr\",\"72\":\"wilde_scroll_frame_drops_per_minute\",\"73\":\"wilde_scroll_frame_drops_per_minute\",\"74\":\"is_live_watch_time_given_iphone\",\"75\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"76\":\"sbl_iphone_is_live__psr_1_start\",\"77\":\"is_live_watch_time_given_iphone\",\"78\":\"sbl_iphone_is_live__psr_1_start\",\"79\":\"video:sbl_iphone_is_live__smtbr\",\"80\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"81\":\"video:encoding:iphone_live_playback_mos_loss\",\"82\":\"video:sbl_iphone_is_live__smtbr\",\"83\":\"video:sbl_iphone_is_live__smtbr\",\"84\":\"wilde_scroll_frame_drops_per_minute\",\"85\":\"is_live_watch_time_given_iphone\",\"86\":\"sbl_iphone_is_live__psr_1_start\",\"87\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"88\":\"sbl_iphone_is_live__psr_1_start\",\"89\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"90\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"91\":\"sbl_iphone_is_live__psr_1_start\",\"92\":\"video:encoding:iphone_live_playback_mos_loss\",\"93\":\"video:sbl_iphone_is_live__smtbr\",\"94\":\"video:sbl_iphone_is_live__smtbr\",\"95\":\"wilde_scroll_frame_drops_per_minute\",\"96\":\"is_live_watch_time_given_iphone\",\"97\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"98\":\"wilde_scroll_frame_drops_per_minute\",\"99\":\"video:encoding:iphone_live_playback_mos_loss\",\"100\":\"sbl_iphone_is_live__psr_1_start\",\"101\":\"wilde_scroll_frame_drops_per_minute\",\"102\":\"sbl_iphone_is_live__psr_1_start\",\"103\":\"video:encoding:iphone_live_playback_mos_loss\",\"104\":\"video:sbl_iphone_is_live__smtbr\",\"105\":\"video:encoding:iphone_live_playback_mos_loss\",\"106\":\"wilde_scroll_frame_drops_per_minute\",\"107\":\"is_live_watch_time_given_iphone\",\"108\":\"wilde_scroll_frame_drops_per_minute\",\"109\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"110\":\"sbl_iphone_is_live__psr_1_start\",\"111\":\"video:encoding:iphone_live_playback_mos_loss\",\"112\":\"video:encoding:iphone_live_playback_mos_loss\",\"113\":\"video:encoding:iphone_live_playback_mos_loss\",\"114\":\"is_live_watch_time_given_iphone\",\"115\":\"video:encoding:iphone_live_playback_mos_loss\",\"116\":\"video:sbl_iphone_is_live__smtbr\",\"117\":\"wilde_scroll_frame_drops_per_minute\",\"118\":\"is_live_watch_time_given_iphone\",\"119\":\"is_live_watch_time_given_iphone\",\"120\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"121\":\"video:sbl_iphone_is_live__smtbr\",\"122\":\"sbl_iphone_is_live__psr_1_start\",\"123\":\"is_live_watch_time_given_iphone\",\"124\":\"video:sbl_iphone_is_live__smtbr\",\"125\":\"video:encoding:iphone_live_playback_mos_loss\",\"126\":\"video:sbl_iphone_is_live__smtbr\",\"127\":\"wilde_scroll_frame_drops_per_minute\",\"128\":\"video:sbl_iphone_is_live__smtbr\",\"129\":\"wilde_scroll_frame_drops_per_minute\",\"130\":\"is_live_watch_time_given_iphone\",\"131\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"132\":\"sbl_iphone_is_live__psr_1_start\",\"133\":\"video:encoding:iphone_live_playback_mos_loss\",\"134\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"135\":\"wilde_scroll_frame_drops_per_minute\",\"136\":\"video:sbl_iphone_is_live__smtbr\",\"137\":\"wilde_scroll_frame_drops_per_minute\",\"138\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"139\":\"video:sbl_iphone_is_live__smtbr\",\"140\":\"video:sbl_iphone_is_live__smtbr\",\"141\":\"wilde_scroll_frame_drops_per_minute\",\"142\":\"wilde_scroll_frame_drops_per_minute\",\"143\":\"is_live_watch_time_given_iphone\",\"144\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"145\":\"sbl_iphone_is_live__psr_1_start\",\"146\":\"is_live_watch_time_given_iphone\",\"147\":\"video:encoding:iphone_live_playback_mos_loss\",\"148\":\"video:sbl_iphone_is_live__smtbr\",\"149\":\"wilde_scroll_frame_drops_per_minute\",\"150\":\"is_live_watch_time_given_iphone\",\"151\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"152\":\"wilde_scroll_frame_drops_per_minute\",\"153\":\"sbl_iphone_is_live__psr_1_start\",\"154\":\"sbl_iphone_is_live__psr_1_start\",\"155\":\"is_live_watch_time_given_iphone\",\"156\":\"is_live_watch_time_given_iphone\",\"157\":\"wilde_scroll_frame_drops_per_minute\",\"158\":\"sbl_iphone_is_live__psr_1_start\",\"159\":\"video:encoding:iphone_live_playback_mos_loss\",\"160\":\"video:sbl_iphone_is_live__smtbr\",\"161\":\"wilde_scroll_frame_drops_per_minute\",\"162\":\"is_live_watch_time_given_iphone\",\"163\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"164\":\"video:sbl_iphone_is_live__smtbr\",\"165\":\"sbl_iphone_is_live__psr_1_start\",\"166\":\"video:encoding:iphone_live_playback_mos_loss\",\"167\":\"video:sbl_iphone_is_live__smtbr\",\"168\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"169\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"170\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"171\":\"sbl_iphone_is_live__psr_1_start\",\"172\":\"video:sbl_iphone_is_live__smtbr\",\"173\":\"video:encoding:iphone_live_playback_mos_loss\",\"174\":\"video:sbl_iphone_is_live__smtbr\",\"175\":\"wilde_scroll_frame_drops_per_minute\",\"176\":\"is_live_watch_time_given_iphone\",\"177\":\"video:encoding:iphone_live_playback_mos_loss\",\"178\":\"is_live_watch_time_given_iphone\",\"179\":\"sbl_iphone_is_live__psr_1_start\",\"180\":\"is_live_watch_time_given_iphone\",\"181\":\"is_live_watch_time_given_iphone\",\"182\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"183\":\"video:encoding:iphone_live_playback_mos_loss\",\"184\":\"sbl_iphone_is_live__psr_1_start\",\"185\":\"video:encoding:iphone_live_playback_mos_loss\",\"186\":\"video:sbl_iphone_is_live__smtbr\",\"187\":\"wilde_scroll_frame_drops_per_minute\",\"188\":\"is_live_watch_time_given_iphone\",\"189\":\"wilde_scroll_frame_drops_per_minute\",\"190\":\"video:encoding:iphone_live_playback_mos_loss\",\"191\":\"is_live_watch_time_given_iphone\",\"192\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"193\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"194\":\"sbl_iphone_is_live__psr_1_start\",\"195\":\"video:encoding:iphone_live_playback_mos_loss\",\"196\":\"is_live_watch_time_given_iphone\",\"197\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"198\":\"video:sbl_iphone_is_live__smtbr\",\"199\":\"wilde_scroll_frame_drops_per_minute\",\"200\":\"video:sbl_iphone_is_live__smtbr\",\"201\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"202\":\"is_live_watch_time_given_iphone\",\"203\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"204\":\"is_live_watch_time_given_iphone\",\"205\":\"sbl_iphone_is_live__psr_1_start\",\"206\":\"video:encoding:iphone_live_playback_mos_loss\",\"207\":\"sbl_iphone_is_live__psr_1_start\",\"208\":\"video:sbl_iphone_is_live__smtbr\",\"209\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"210\":\"wilde_scroll_frame_drops_per_minute\",\"211\":\"is_live_watch_time_given_iphone\",\"212\":\"wilde_scroll_frame_drops_per_minute\",\"213\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"214\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"215\":\"sbl_iphone_is_live__psr_1_start\",\"216\":\"sbl_iphone_is_live__psr_1_start\",\"217\":\"video:encoding:iphone_live_playback_mos_loss\",\"218\":\"video:sbl_iphone_is_live__smtbr\",\"219\":\"is_live_watch_time_given_iphone\",\"220\":\"wilde_scroll_frame_drops_per_minute\",\"221\":\"sbl_iphone_is_live__psr_1_start\",\"222\":\"sbl_iphone_is_live__psr_1_start\",\"223\":\"is_live_watch_time_given_iphone\",\"224\":\"video:sbl_iphone_is_live__smtbr\",\"225\":\"is_live_watch_time_given_iphone\",\"226\":\"sbl_iphone_is_live__psr_1_start\",\"227\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"228\":\"sbl_iphone_is_live__psr_1_start\",\"229\":\"video:encoding:iphone_live_playback_mos_loss\",\"230\":\"video:sbl_iphone_is_live__smtbr\",\"231\":\"wilde_scroll_frame_drops_per_minute\",\"232\":\"video:encoding:iphone_live_playback_mos_loss\",\"233\":\"is_live_watch_time_given_iphone\",\"234\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"235\":\"wilde_scroll_frame_drops_per_minute\",\"236\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"237\":\"video:encoding:iphone_live_playback_mos_loss\",\"238\":\"video:encoding:iphone_live_playback_mos_loss\",\"239\":\"sbl_iphone_is_live__psr_1_start\",\"240\":\"sbl_iphone_is_live__psr_1_start\",\"241\":\"video:encoding:iphone_live_playback_mos_loss\",\"242\":\"video:sbl_iphone_is_live__smtbr\",\"243\":\"wilde_scroll_frame_drops_per_minute\",\"244\":\"is_live_watch_time_given_iphone\",\"245\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"246\":\"video:encoding:iphone_live_playback_mos_loss\",\"247\":\"sbl_iphone_is_live__psr_1_start\",\"248\":\"video:encoding:iphone_live_playback_mos_loss\",\"249\":\"video:sbl_iphone_is_live__smtbr\",\"250\":\"video:sbl_iphone_is_live__smtbr\",\"251\":\"video:encoding:iphone_live_playback_mos_loss\",\"252\":\"wilde_scroll_frame_drops_per_minute\",\"253\":\"is_live_watch_time_given_iphone\",\"254\":\"is_live_watch_time_given_iphone\",\"255\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"256\":\"sbl_iphone_is_live__psr_1_start\",\"257\":\"video:sbl_iphone_is_live__smtbr\",\"258\":\"video:sbl_iphone_is_live__smtbr\",\"259\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"260\":\"wilde_scroll_frame_drops_per_minute\",\"261\":\"video:encoding:iphone_live_playback_mos_loss\",\"262\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"263\":\"sbl_iphone_is_live__psr_1_start\",\"264\":\"video:sbl_iphone_is_live__smtbr\",\"265\":\"wilde_scroll_frame_drops_per_minute\",\"266\":\"is_live_watch_time_given_iphone\",\"267\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"268\":\"is_live_watch_time_given_iphone\",\"269\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"270\":\"sbl_iphone_is_live__psr_1_start\",\"271\":\"video:encoding:iphone_live_playback_mos_loss\",\"272\":\"sbl_iphone_is_live__psr_1_start\",\"273\":\"video:sbl_iphone_is_live__smtbr\",\"274\":\"wilde_scroll_frame_drops_per_minute\",\"275\":\"wilde_scroll_frame_drops_per_minute\",\"276\":\"is_live_watch_time_given_iphone\",\"277\":\"is_live_watch_time_given_iphone\",\"278\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"279\":\"wilde_scroll_frame_drops_per_minute\",\"280\":\"sbl_iphone_is_live__psr_1_start\",\"281\":\"sbl_iphone_is_live__psr_1_start\",\"282\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"283\":\"video:encoding:iphone_live_playback_mos_loss\",\"284\":\"video:sbl_iphone_is_live__smtbr\",\"285\":\"video:sbl_iphone_is_live__smtbr\",\"286\":\"wilde_scroll_frame_drops_per_minute\",\"287\":\"is_live_watch_time_given_iphone\",\"288\":\"is_live_watch_time_given_iphone\",\"289\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"290\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"291\":\"sbl_iphone_is_live__psr_1_start\",\"292\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"293\":\"video:encoding:iphone_live_playback_mos_loss\",\"294\":\"video:sbl_iphone_is_live__smtbr\",\"295\":\"wilde_scroll_frame_drops_per_minute\",\"296\":\"sbl_iphone_is_live__psr_1_start\",\"297\":\"video:encoding:iphone_live_playback_mos_loss\",\"298\":\"sbl_iphone_is_live__psr_1_start\",\"299\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"300\":\"video:sbl_iphone_is_live__smtbr\",\"301\":\"sbl_iphone_is_live__psr_1_start\",\"302\":\"video:sbl_iphone_is_live__smtbr\",\"303\":\"wilde_scroll_frame_drops_per_minute\",\"304\":\"is_live_watch_time_given_iphone\",\"305\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"306\":\"sbl_iphone_is_live__psr_1_start\",\"307\":\"sbl_iphone_is_live__psr_1_start\",\"308\":\"video:encoding:iphone_live_playback_mos_loss\",\"309\":\"video:sbl_iphone_is_live__smtbr\",\"310\":\"video:encoding:iphone_live_playback_mos_loss\",\"311\":\"sbl_iphone_is_live__psr_1_start\",\"312\":\"video:encoding:iphone_live_playback_mos_loss\",\"313\":\"video:encoding:iphone_live_playback_mos_loss\",\"314\":\"wilde_scroll_frame_drops_per_minute\",\"315\":\"is_live_watch_time_given_iphone\",\"316\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"317\":\"wilde_scroll_frame_drops_per_minute\",\"318\":\"sbl_iphone_is_live__psr_1_start\",\"319\":\"video:encoding:iphone_live_playback_mos_loss\",\"320\":\"video:sbl_iphone_is_live__smtbr\",\"321\":\"wilde_scroll_frame_drops_per_minute\",\"322\":\"video:encoding:iphone_live_playback_mos_loss\",\"323\":\"video:sbl_iphone_is_live__smtbr\",\"324\":\"video:sbl_iphone_is_live__smtbr\",\"325\":\"wilde_scroll_frame_drops_per_minute\",\"326\":\"is_live_watch_time_given_iphone\",\"327\":\"is_live_watch_time_given_iphone\",\"328\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"329\":\"sbl_iphone_is_live__psr_1_start\",\"330\":\"video:encoding:iphone_live_playback_mos_loss\",\"331\":\"is_live_watch_time_given_iphone\",\"332\":\"is_live_watch_time_given_iphone\",\"333\":\"sbl_iphone_is_live__psr_1_start\",\"334\":\"wilde_scroll_frame_drops_per_minute\",\"335\":\"video:sbl_iphone_is_live__smtbr\",\"336\":\"video:encoding:iphone_live_playback_mos_loss\",\"337\":\"video:sbl_iphone_is_live__smtbr\",\"338\":\"wilde_scroll_frame_drops_per_minute\",\"339\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"340\":\"is_live_watch_time_given_iphone\",\"341\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"342\":\"sbl_iphone_is_live__psr_1_start\",\"343\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"344\":\"video:encoding:iphone_live_playback_mos_loss\",\"345\":\"video:sbl_iphone_is_live__smtbr\",\"346\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"347\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"348\":\"wilde_scroll_frame_drops_per_minute\",\"349\":\"video:encoding:iphone_live_playback_mos_loss\",\"350\":\"is_live_watch_time_given_iphone\",\"351\":\"is_live_watch_time_given_iphone\",\"352\":\"wilde_scroll_frame_drops_per_minute\",\"353\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"354\":\"sbl_iphone_is_live__psr_1_start\",\"355\":\"wilde_scroll_frame_drops_per_minute\",\"356\":\"video:encoding:iphone_live_playback_mos_loss\",\"357\":\"sbl_iphone_is_live__psr_1_start\",\"358\":\"video:sbl_iphone_is_live__smtbr\",\"359\":\"wilde_scroll_frame_drops_per_minute\",\"360\":\"is_live_watch_time_given_iphone\",\"361\":\"sbl_iphone_is_live__psr_1_start\",\"362\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"363\":\"sbl_iphone_is_live__psr_1_start\",\"364\":\"video:encoding:iphone_live_playback_mos_loss\",\"365\":\"sbl_iphone_is_live__psr_1_start\",\"366\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"367\":\"video:sbl_iphone_is_live__smtbr\",\"368\":\"video:encoding:iphone_live_playback_mos_loss\",\"369\":\"wilde_scroll_frame_drops_per_minute\",\"370\":\"sbl_iphone_is_live__psr_1_start\",\"371\":\"video:encoding:iphone_live_playback_mos_loss\",\"372\":\"video:sbl_iphone_is_live__smtbr\",\"373\":\"wilde_scroll_frame_drops_per_minute\",\"374\":\"is_live_watch_time_given_iphone\",\"375\":\"video:encoding:iphone_live_playback_mos_loss\",\"376\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"377\":\"sbl_iphone_is_live__psr_1_start\",\"378\":\"video:encoding:iphone_live_playback_mos_loss\",\"379\":\"video:sbl_iphone_is_live__smtbr\",\"380\":\"wilde_scroll_frame_drops_per_minute\",\"381\":\"sbl_iphone_is_live__psr_1_start\",\"382\":\"video:encoding:iphone_live_playback_mos_loss\",\"383\":\"video:sbl_iphone_is_live__smtbr\",\"384\":\"is_live_watch_time_given_iphone\",\"385\":\"wilde_scroll_frame_drops_per_minute\",\"386\":\"is_live_watch_time_given_iphone\",\"387\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"388\":\"sbl_iphone_is_live__psr_1_start\",\"389\":\"video:sbl_iphone_is_live__smtbr\"},\"n\":{\"0\":1600977,\"1\":1600977,\"2\":1598231,\"3\":1599249,\"4\":1599226,\"5\":1597829,\"6\":1599249,\"7\":1599249,\"8\":1598206,\"9\":1600831,\"10\":1600831,\"11\":1599729,\"12\":1600831,\"13\":1599994,\"14\":1600831,\"15\":1600831,\"16\":1598968,\"17\":1587380,\"18\":1599994,\"19\":1597829,\"20\":1600831,\"21\":1597957,\"22\":1597957,\"23\":1597957,\"24\":1599224,\"25\":1597957,\"26\":1598206,\"27\":1597957,\"28\":1599729,\"29\":1587380,\"30\":1597957,\"31\":1600580,\"32\":1598820,\"33\":1600057,\"34\":1600580,\"35\":1585686,\"36\":1600580,\"37\":1600580,\"38\":1600580,\"39\":1600580,\"40\":1600635,\"41\":1587380,\"42\":1600635,\"43\":1598206,\"44\":1599729,\"45\":1599620,\"46\":1599224,\"47\":1598131,\"48\":1600635,\"49\":1597699,\"50\":1600635,\"51\":1600635,\"52\":1600635,\"53\":1587380,\"54\":1601211,\"55\":1601211,\"56\":1601211,\"57\":1599224,\"58\":1601211,\"59\":1601211,\"60\":1598131,\"61\":1601211,\"62\":1599729,\"63\":1597699,\"64\":1600526,\"65\":1599595,\"66\":1599978,\"67\":1599978,\"68\":1597801,\"69\":1599978,\"70\":1599978,\"71\":1599978,\"72\":1599978,\"73\":1600577,\"74\":1598753,\"75\":1598753,\"76\":1598753,\"77\":1587640,\"78\":1597699,\"79\":1599595,\"80\":1600526,\"81\":1597699,\"82\":1600526,\"83\":1597699,\"84\":1597699,\"85\":1601500,\"86\":1598131,\"87\":1601500,\"88\":1597623,\"89\":1587640,\"90\":1598206,\"91\":1601500,\"92\":1601500,\"93\":1601500,\"94\":1598753,\"95\":1601500,\"96\":1599307,\"97\":1599307,\"98\":1600526,\"99\":1598131,\"100\":1599307,\"101\":1598818,\"102\":1587640,\"103\":1599307,\"104\":1599307,\"105\":1597623,\"106\":1599307,\"107\":1599534,\"108\":1598753,\"109\":1599534,\"110\":1599534,\"111\":1599534,\"112\":1585686,\"113\":1599224,\"114\":1597623,\"115\":1587640,\"116\":1599534,\"117\":1599534,\"118\":1600577,\"119\":1598645,\"120\":1598645,\"121\":1597623,\"122\":1598645,\"123\":1597801,\"124\":1599224,\"125\":1598645,\"126\":1598645,\"127\":1597787,\"128\":1598131,\"129\":1598645,\"130\":1599836,\"131\":1599836,\"132\":1599836,\"133\":1599836,\"134\":1600577,\"135\":1599224,\"136\":1599836,\"137\":1597623,\"138\":1597801,\"139\":1600140,\"140\":1587640,\"141\":1599836,\"142\":1598131,\"143\":1601161,\"144\":1601161,\"145\":1601161,\"146\":1599954,\"147\":1601161,\"148\":1601161,\"149\":1601161,\"150\":1600513,\"151\":1600513,\"152\":1587640,\"153\":1600577,\"154\":1597801,\"155\":1601081,\"156\":1598820,\"157\":1585686,\"158\":1600513,\"159\":1600513,\"160\":1600513,\"161\":1600513,\"162\":1599620,\"163\":1599620,\"164\":1599226,\"165\":1599620,\"166\":1599620,\"167\":1599620,\"168\":1599954,\"169\":1601081,\"170\":1598820,\"171\":1601081,\"172\":1598820,\"173\":1601081,\"174\":1601081,\"175\":1601081,\"176\":1600182,\"177\":1600977,\"178\":1597787,\"179\":1599954,\"180\":1597045,\"181\":1603031,\"182\":1603031,\"183\":1600577,\"184\":1603031,\"185\":1603031,\"186\":1603031,\"187\":1598820,\"188\":1587022,\"189\":1603031,\"190\":1599954,\"191\":1600581,\"192\":1600581,\"193\":1597787,\"194\":1600581,\"195\":1600581,\"196\":1598968,\"197\":1597045,\"198\":1600581,\"199\":1600581,\"200\":1597801,\"201\":1599994,\"202\":1600291,\"203\":1600291,\"204\":1598206,\"205\":1600291,\"206\":1600291,\"207\":1600977,\"208\":1600291,\"209\":1598968,\"210\":1600291,\"211\":1585783,\"212\":1599595,\"213\":1587022,\"214\":1585783,\"215\":1597045,\"216\":1585783,\"217\":1585783,\"218\":1585783,\"219\":1599226,\"220\":1585783,\"221\":1600526,\"222\":1598968,\"223\":1598231,\"224\":1599954,\"225\":1587579,\"226\":1587022,\"227\":1587579,\"228\":1587579,\"229\":1587579,\"230\":1587579,\"231\":1587579,\"232\":1597045,\"233\":1590369,\"234\":1590369,\"235\":1599954,\"236\":1599226,\"237\":1598968,\"238\":1587022,\"239\":1597787,\"240\":1590369,\"241\":1590369,\"242\":1590369,\"243\":1590369,\"244\":1600140,\"245\":1600140,\"246\":1600526,\"247\":1600140,\"248\":1600140,\"249\":1597045,\"250\":1587022,\"251\":1597787,\"252\":1587022,\"253\":1598818,\"254\":1600673,\"255\":1600673,\"256\":1600673,\"257\":1600204,\"258\":1596356,\"259\":1599595,\"260\":1599226,\"261\":1600673,\"262\":1600182,\"263\":1599226,\"264\":1600673,\"265\":1600673,\"266\":1598777,\"267\":1598818,\"268\":1600453,\"269\":1598777,\"270\":1598777,\"271\":1598777,\"272\":1599595,\"273\":1598777,\"274\":1598777,\"275\":1600140,\"276\":1600204,\"277\":1600071,\"278\":1600071,\"279\":1598968,\"280\":1600182,\"281\":1600071,\"282\":1597623,\"283\":1600071,\"284\":1600071,\"285\":1599994,\"286\":1600071,\"287\":1585686,\"288\":12780098,\"289\":12780098,\"290\":1600453,\"291\":12780098,\"292\":1600204,\"293\":12780098,\"294\":12780098,\"295\":12780098,\"296\":1598818,\"297\":1600182,\"298\":1598820,\"299\":1585686,\"300\":1600977,\"301\":1600453,\"302\":1600182,\"303\":1600182,\"304\":1598884,\"305\":1598884,\"306\":1598884,\"307\":1600204,\"308\":1598884,\"309\":1598884,\"310\":1598818,\"311\":1585686,\"312\":1600453,\"313\":1599595,\"314\":1598884,\"315\":1597324,\"316\":1597324,\"317\":1600977,\"318\":1597324,\"319\":1597324,\"320\":1597324,\"321\":1597324,\"322\":1600204,\"323\":1600453,\"324\":1600577,\"325\":1600453,\"326\":1597829,\"327\":1597853,\"328\":1597853,\"329\":1599994,\"330\":1598753,\"331\":1587380,\"332\":1600057,\"333\":1597853,\"334\":1600204,\"335\":1598818,\"336\":1597853,\"337\":1597853,\"338\":1597853,\"339\":1597829,\"340\":1598661,\"341\":1598661,\"342\":1598661,\"343\":1587380,\"344\":1598661,\"345\":1598661,\"346\":1598231,\"347\":1600057,\"348\":1598661,\"349\":1599994,\"350\":1597744,\"351\":1600373,\"352\":1597801,\"353\":1600373,\"354\":1600373,\"355\":1599729,\"356\":1600373,\"357\":1598231,\"358\":1600373,\"359\":1600373,\"360\":1596356,\"361\":1600057,\"362\":1596356,\"363\":1596356,\"364\":1596356,\"365\":1597829,\"366\":1597744,\"367\":1597787,\"368\":1598231,\"369\":1596356,\"370\":1597744,\"371\":1597744,\"372\":1597744,\"373\":1597744,\"374\":1597034,\"375\":1600057,\"376\":1597034,\"377\":1598206,\"378\":1597829,\"379\":1598231,\"380\":1597045,\"381\":1597034,\"382\":1597034,\"383\":1597034,\"384\":1599729,\"385\":1597034,\"386\":1599249,\"387\":1599249,\"388\":1599249,\"389\":1600057},\"random_split\":{\"0\":-1,\"1\":-1,\"2\":-1,\"3\":-1,\"4\":-1,\"5\":-1,\"6\":-1,\"7\":-1,\"8\":-1,\"9\":-1,\"10\":-1,\"11\":-1,\"12\":-1,\"13\":-1,\"14\":-1,\"15\":-1,\"16\":-1,\"17\":-1,\"18\":-1,\"19\":-1,\"20\":-1,\"21\":-1,\"22\":-1,\"23\":-1,\"24\":-1,\"25\":-1,\"26\":-1,\"27\":-1,\"28\":-1,\"29\":-1,\"30\":-1,\"31\":-1,\"32\":-1,\"33\":-1,\"34\":-1,\"35\":-1,\"36\":-1,\"37\":-1,\"38\":-1,\"39\":-1,\"40\":-1,\"41\":-1,\"42\":-1,\"43\":-1,\"44\":-1,\"45\":-1,\"46\":-1,\"47\":-1,\"48\":-1,\"49\":-1,\"50\":-1,\"51\":-1,\"52\":-1,\"53\":-1,\"54\":-1,\"55\":-1,\"56\":-1,\"57\":-1,\"58\":-1,\"59\":-1,\"60\":-1,\"61\":-1,\"62\":-1,\"63\":-1,\"64\":-1,\"65\":-1,\"66\":-1,\"67\":-1,\"68\":-1,\"69\":-1,\"70\":-1,\"71\":-1,\"72\":-1,\"73\":-1,\"74\":-1,\"75\":-1,\"76\":-1,\"77\":-1,\"78\":-1,\"79\":-1,\"80\":-1,\"81\":-1,\"82\":-1,\"83\":-1,\"84\":-1,\"85\":-1,\"86\":-1,\"87\":-1,\"88\":-1,\"89\":-1,\"90\":-1,\"91\":-1,\"92\":-1,\"93\":-1,\"94\":-1,\"95\":-1,\"96\":-1,\"97\":-1,\"98\":-1,\"99\":-1,\"100\":-1,\"101\":-1,\"102\":-1,\"103\":-1,\"104\":-1,\"105\":-1,\"106\":-1,\"107\":-1,\"108\":-1,\"109\":-1,\"110\":-1,\"111\":-1,\"112\":-1,\"113\":-1,\"114\":-1,\"115\":-1,\"116\":-1,\"117\":-1,\"118\":-1,\"119\":-1,\"120\":-1,\"121\":-1,\"122\":-1,\"123\":-1,\"124\":-1,\"125\":-1,\"126\":-1,\"127\":-1,\"128\":-1,\"129\":-1,\"130\":-1,\"131\":-1,\"132\":-1,\"133\":-1,\"134\":-1,\"135\":-1,\"136\":-1,\"137\":-1,\"138\":-1,\"139\":-1,\"140\":-1,\"141\":-1,\"142\":-1,\"143\":-1,\"144\":-1,\"145\":-1,\"146\":-1,\"147\":-1,\"148\":-1,\"149\":-1,\"150\":-1,\"151\":-1,\"152\":-1,\"153\":-1,\"154\":-1,\"155\":-1,\"156\":-1,\"157\":-1,\"158\":-1,\"159\":-1,\"160\":-1,\"161\":-1,\"162\":-1,\"163\":-1,\"164\":-1,\"165\":-1,\"166\":-1,\"167\":-1,\"168\":-1,\"169\":-1,\"170\":-1,\"171\":-1,\"172\":-1,\"173\":-1,\"174\":-1,\"175\":-1,\"176\":-1,\"177\":-1,\"178\":-1,\"179\":-1,\"180\":-1,\"181\":-1,\"182\":-1,\"183\":-1,\"184\":-1,\"185\":-1,\"186\":-1,\"187\":-1,\"188\":-1,\"189\":-1,\"190\":-1,\"191\":-1,\"192\":-1,\"193\":-1,\"194\":-1,\"195\":-1,\"196\":-1,\"197\":-1,\"198\":-1,\"199\":-1,\"200\":-1,\"201\":-1,\"202\":-1,\"203\":-1,\"204\":-1,\"205\":-1,\"206\":-1,\"207\":-1,\"208\":-1,\"209\":-1,\"210\":-1,\"211\":-1,\"212\":-1,\"213\":-1,\"214\":-1,\"215\":-1,\"216\":-1,\"217\":-1,\"218\":-1,\"219\":-1,\"220\":-1,\"221\":-1,\"222\":-1,\"223\":-1,\"224\":-1,\"225\":-1,\"226\":-1,\"227\":-1,\"228\":-1,\"229\":-1,\"230\":-1,\"231\":-1,\"232\":-1,\"233\":-1,\"234\":-1,\"235\":-1,\"236\":-1,\"237\":-1,\"238\":-1,\"239\":-1,\"240\":-1,\"241\":-1,\"242\":-1,\"243\":-1,\"244\":-1,\"245\":-1,\"246\":-1,\"247\":-1,\"248\":-1,\"249\":-1,\"250\":-1,\"251\":-1,\"252\":-1,\"253\":-1,\"254\":-1,\"255\":-1,\"256\":-1,\"257\":-1,\"258\":-1,\"259\":-1,\"260\":-1,\"261\":-1,\"262\":-1,\"263\":-1,\"264\":-1,\"265\":-1,\"266\":-1,\"267\":-1,\"268\":-1,\"269\":-1,\"270\":-1,\"271\":-1,\"272\":-1,\"273\":-1,\"274\":-1,\"275\":-1,\"276\":-1,\"277\":-1,\"278\":-1,\"279\":-1,\"280\":-1,\"281\":-1,\"282\":-1,\"283\":-1,\"284\":-1,\"285\":-1,\"286\":-1,\"287\":-1,\"288\":-1,\"289\":-1,\"290\":-1,\"291\":-1,\"292\":-1,\"293\":-1,\"294\":-1,\"295\":-1,\"296\":-1,\"297\":-1,\"298\":-1,\"299\":-1,\"300\":-1,\"301\":-1,\"302\":-1,\"303\":-1,\"304\":-1,\"305\":-1,\"306\":-1,\"307\":-1,\"308\":-1,\"309\":-1,\"310\":-1,\"311\":-1,\"312\":-1,\"313\":-1,\"314\":-1,\"315\":-1,\"316\":-1,\"317\":-1,\"318\":-1,\"319\":-1,\"320\":-1,\"321\":-1,\"322\":-1,\"323\":-1,\"324\":-1,\"325\":-1,\"326\":-1,\"327\":-1,\"328\":-1,\"329\":-1,\"330\":-1,\"331\":-1,\"332\":-1,\"333\":-1,\"334\":-1,\"335\":-1,\"336\":-1,\"337\":-1,\"338\":-1,\"339\":-1,\"340\":-1,\"341\":-1,\"342\":-1,\"343\":-1,\"344\":-1,\"345\":-1,\"346\":-1,\"347\":-1,\"348\":-1,\"349\":-1,\"350\":-1,\"351\":-1,\"352\":-1,\"353\":-1,\"354\":-1,\"355\":-1,\"356\":-1,\"357\":-1,\"358\":-1,\"359\":-1,\"360\":-1,\"361\":-1,\"362\":-1,\"363\":-1,\"364\":-1,\"365\":-1,\"366\":-1,\"367\":-1,\"368\":-1,\"369\":-1,\"370\":-1,\"371\":-1,\"372\":-1,\"373\":-1,\"374\":-1,\"375\":-1,\"376\":-1,\"377\":-1,\"378\":-1,\"379\":-1,\"380\":-1,\"381\":-1,\"382\":-1,\"383\":-1,\"384\":-1,\"385\":-1,\"386\":-1,\"387\":-1,\"388\":-1,\"389\":-1},\"sem\":{\"0\":0.8028093701,\"1\":0.0012989092,\"2\":241.5347493779,\"3\":0.0698465553,\"4\":0.0698253327,\"5\":2.783752586,\"6\":2.8158796571,\"7\":240.2955486411,\"8\":0.0702160042,\"9\":0.7993916614,\"10\":0.0011918046,\"11\":0.0012451277,\"12\":0.0002917555,\"13\":0.7949623522,\"14\":0.0684760418,\"15\":2.3857300705,\"16\":2.9154130175,\"17\":0.0002551003,\"18\":247.0605242799,\"19\":238.0254605724,\"20\":242.5508062674,\"21\":0.8057394529,\"22\":0.0012288513,\"23\":0.0002665255,\"24\":0.79999907,\"25\":0.0713937536,\"26\":2.6112705249,\"27\":3.1195666905,\"28\":0.0002925736,\"29\":0.0816951994,\"30\":241.9562840338,\"31\":0.7860031416,\"32\":0.0706258773,\"33\":234.9625257748,\"34\":0.0012363631,\"35\":3.102853141,\"36\":0.0002655336,\"37\":0.0725283055,\"38\":3.1292394905,\"39\":236.1268471153,\"40\":0.7916860435,\"41\":3.2310670035,\"42\":0.0012500233,\"43\":241.3629667352,\"44\":0.0708376384,\"45\":239.0983949003,\"46\":0.0012612052,\"47\":0.7951853371,\"48\":0.0002688819,\"49\":0.8046284404,\"50\":0.070407386,\"51\":2.9438013994,\"52\":239.8024206074,\"53\":243.2088845309,\"54\":0.8111098302,\"55\":0.0012772861,\"56\":0.0002658232,\"57\":0.0002719138,\"58\":0.0690979637,\"59\":3.009105453,\"60\":0.0012011983,\"61\":239.1729299739,\"62\":3.0034929442,\"63\":0.0012886218,\"64\":0.8079090391,\"65\":0.7972829355,\"66\":0.7946762522,\"67\":0.0011946235,\"68\":0.0706149827,\"69\":0.000264659,\"70\":0.0713569863,\"71\":3.0030136766,\"72\":241.5471836843,\"73\":239.96184487,\"74\":0.7905971397,\"75\":0.0012440306,\"76\":0.0002786466,\"77\":0.8062384272,\"78\":0.0002764683,\"79\":2.9730795738,\"80\":0.0012751391,\"81\":0.0683446892,\"82\":3.1134867511,\"83\":2.7643106411,\"84\":241.5187217801,\"85\":0.7999623574,\"86\":0.0002670101,\"87\":0.0012581638,\"88\":0.00026059,\"89\":0.001309959,\"90\":0.0012148787,\"91\":0.0002786328,\"92\":0.0710862138,\"93\":2.8198433102,\"94\":3.00326874,\"95\":241.8728016972,\"96\":0.7998842795,\"97\":0.0012133756,\"98\":238.4356605536,\"99\":0.0705066715,\"100\":0.0002869298,\"101\":240.3700911609,\"102\":0.0002832835,\"103\":0.0694331648,\"104\":2.8291664617,\"105\":0.0700465392,\"106\":240.718730735,\"107\":0.8013754245,\"108\":240.1897344295,\"109\":0.0013212647,\"110\":0.000253026,\"111\":0.0778574609,\"112\":0.0715660369,\"113\":0.06952925,\"114\":0.8009174981,\"115\":0.0700480465,\"116\":3.1586364057,\"117\":238.7969096688,\"118\":0.8093104335,\"119\":0.8016804145,\"120\":0.0012234969,\"121\":2.9838099716,\"122\":0.0002728211,\"123\":0.7952152623,\"124\":2.9124826796,\"125\":0.0701278539,\"126\":2.8442612237,\"127\":243.0408797541,\"128\":2.9452175859,\"129\":242.2887725066,\"130\":0.7999067354,\"131\":0.0012138411,\"132\":0.000308005,\"133\":0.0696417231,\"134\":0.0012491075,\"135\":240.3824000119,\"136\":2.7260937474,\"137\":243.2869161616,\"138\":0.00121172,\"139\":2.8711309227,\"140\":2.5846515915,\"141\":242.1701839836,\"142\":237.1430199929,\"143\":0.7983762571,\"144\":0.0012562674,\"145\":0.000292706,\"146\":0.7995599877,\"147\":0.0741212286,\"148\":2.8582044377,\"149\":240.8247027173,\"150\":0.7985108442,\"151\":0.0012382766,\"152\":242.4974598016,\"153\":0.0002931729,\"154\":0.0002881234,\"155\":0.8085423823,\"156\":0.8024411167,\"157\":238.4050245422,\"158\":0.000284117,\"159\":0.0683852573,\"160\":2.8163422486,\"161\":240.3078773603,\"162\":0.7918102646,\"163\":0.0012502804,\"164\":2.7235333075,\"165\":0.0002762071,\"166\":0.0709851152,\"167\":2.9578066977,\"168\":0.0012223799,\"169\":0.0012179646,\"170\":0.001226068,\"171\":0.0002794893,\"172\":2.9586066121,\"173\":0.0699414615,\"174\":2.8934857582,\"175\":239.8013985564,\"176\":0.8021059627,\"177\":0.0694551705,\"178\":0.8076736527,\"179\":0.0002804043,\"180\":0.8001617938,\"181\":0.8014003974,\"182\":0.0012688242,\"183\":0.0711404223,\"184\":0.000276232,\"185\":0.0688945934,\"186\":2.8053833949,\"187\":240.8794343109,\"188\":0.7974631032,\"189\":238.3914352833,\"190\":0.0692515434,\"191\":0.8066622453,\"192\":0.0012147933,\"193\":0.0011853088,\"194\":0.0002707084,\"195\":0.0701939655,\"196\":0.804587543,\"197\":0.0012227722,\"198\":2.8663260433,\"199\":240.0946487336,\"200\":2.9480469903,\"201\":0.0012853695,\"202\":0.7936582019,\"203\":0.0012495674,\"204\":0.8021753197,\"205\":0.0002863931,\"206\":0.0718543885,\"207\":0.0002953896,\"208\":2.9914440155,\"209\":0.0013020026,\"210\":246.7921034296,\"211\":0.8045490637,\"212\":240.8683374522,\"213\":0.0012741179,\"214\":0.0012404217,\"215\":0.0002748965,\"216\":0.0002950064,\"217\":0.0694771091,\"218\":2.7170580726,\"219\":0.7987865251,\"220\":239.6012498058,\"221\":0.000277136,\"222\":0.0002871882,\"223\":0.7972352041,\"224\":2.5195832227,\"225\":0.807854194,\"226\":0.0002847746,\"227\":0.0011243656,\"228\":0.0002763583,\"229\":0.0706757884,\"230\":2.8829537327,\"231\":241.8589240608,\"232\":0.0700077284,\"233\":0.7976802194,\"234\":0.0012060139,\"235\":240.1557027906,\"236\":0.001252849,\"237\":0.0698422044,\"238\":0.0694696067,\"239\":0.0002693926,\"240\":0.0002631255,\"241\":0.0709192508,\"242\":3.0555746837,\"243\":243.7477818446,\"244\":0.7983136637,\"245\":0.0012180837,\"246\":0.0722102511,\"247\":0.000286472,\"248\":0.0691774093,\"249\":2.8486424948,\"250\":2.6363145732,\"251\":0.069634278,\"252\":240.1068799642,\"253\":0.8059404227,\"254\":0.8084818074,\"255\":0.0012138093,\"256\":0.0002818912,\"257\":2.701949743,\"258\":2.7316473644,\"259\":0.0012156093,\"260\":234.5843308907,\"261\":0.0700923133,\"262\":0.0012585,\"263\":0.0002752959,\"264\":2.8234036506,\"265\":243.0676810005,\"266\":0.8036605877,\"267\":0.0012431019,\"268\":0.8007982801,\"269\":0.0012306339,\"270\":0.0002788228,\"271\":0.0695879392,\"272\":0.0002929609,\"273\":2.8831373555,\"274\":235.421903786,\"275\":239.7477846904,\"276\":0.8057327808,\"277\":0.8019888688,\"278\":0.001227379,\"279\":243.2080112292,\"280\":0.0002796216,\"281\":0.000280599,\"282\":0.001252626,\"283\":0.0689109005,\"284\":2.7049721736,\"285\":2.6216409435,\"286\":240.6727670895,\"287\":0.801018814,\"288\":0.2830848945,\"289\":0.000441106,\"290\":0.0012723651,\"291\":0.0000980199,\"292\":0.0011957729,\"293\":0.0248319452,\"294\":1.0529151667,\"295\":84.9304880813,\"296\":0.0002909778,\"297\":0.0694574465,\"298\":0.0002890485,\"299\":0.001251362,\"300\":2.4541150028,\"301\":0.0002964616,\"302\":2.9237408078,\"303\":243.0599862825,\"304\":0.790027485,\"305\":0.001311726,\"306\":0.0002855763,\"307\":0.0002921713,\"308\":0.0685759121,\"309\":2.7674054992,\"310\":0.0692537889,\"311\":0.0002676292,\"312\":0.0701049493,\"313\":0.0717212437,\"314\":242.9795064257,\"315\":0.7850114758,\"316\":0.00120825,\"317\":241.7406268916,\"318\":0.0002845676,\"319\":0.0730182607,\"320\":3.1103538681,\"321\":242.8756544298,\"322\":0.0695252939,\"323\":2.8770888454,\"324\":2.8433814588,\"325\":237.379549805,\"326\":0.796089921,\"327\":0.8158623217,\"328\":0.0012710567,\"329\":0.0002969374,\"330\":0.0742655206,\"331\":0.7959818286,\"332\":0.8007487112,\"333\":0.0002682595,\"334\":240.2104853951,\"335\":2.8429709499,\"336\":0.0693693706,\"337\":2.9839934298,\"338\":242.5434275286,\"339\":0.0012189816,\"340\":0.8072247169,\"341\":0.0012315223,\"342\":0.0002810724,\"343\":0.0012806115,\"344\":0.0709320681,\"345\":2.9926736276,\"346\":0.0011988455,\"347\":0.001263062,\"348\":238.7910902865,\"349\":0.0691735371,\"350\":0.8002342835,\"351\":0.8015956941,\"352\":241.6634089622,\"353\":0.0012038559,\"354\":0.0002646097,\"355\":241.6562784931,\"356\":0.0703355431,\"357\":0.0002761084,\"358\":3.0531204924,\"359\":239.5629890034,\"360\":0.8031210477,\"361\":0.0002792426,\"362\":0.001276586,\"363\":0.0002799633,\"364\":0.06913457,\"365\":0.00027198,\"366\":0.0012580628,\"367\":2.9606895478,\"368\":0.0700468754,\"369\":235.8604324508,\"370\":0.0002661932,\"371\":0.0751827664,\"372\":3.0343519579,\"373\":242.1890642492,\"374\":0.8089023492,\"375\":0.0688989821,\"376\":0.0012602043,\"377\":0.0002759299,\"378\":0.0715058678,\"379\":2.95323019,\"380\":240.8352526204,\"381\":0.0002866816,\"382\":0.0701869289,\"383\":2.9137197351,\"384\":0.8071680002,\"385\":245.3068431735,\"386\":0.7995383597,\"387\":0.0012131102,\"388\":0.0002794771,\"389\":2.6723613999},\"start_time\":{\"0\":1553904000000,\"1\":1553904000000,\"2\":1553904000000,\"3\":1553904000000,\"4\":1553904000000,\"5\":1553904000000,\"6\":1553904000000,\"7\":1553904000000,\"8\":1553904000000,\"9\":1553904000000,\"10\":1553904000000,\"11\":1553904000000,\"12\":1553904000000,\"13\":1553904000000,\"14\":1553904000000,\"15\":1553904000000,\"16\":1553904000000,\"17\":1553904000000,\"18\":1553904000000,\"19\":1553904000000,\"20\":1553904000000,\"21\":1553904000000,\"22\":1553904000000,\"23\":1553904000000,\"24\":1553904000000,\"25\":1553904000000,\"26\":1553904000000,\"27\":1553904000000,\"28\":1553904000000,\"29\":1553904000000,\"30\":1553904000000,\"31\":1553904000000,\"32\":1553904000000,\"33\":1553904000000,\"34\":1553904000000,\"35\":1553904000000,\"36\":1553904000000,\"37\":1553904000000,\"38\":1553904000000,\"39\":1553904000000,\"40\":1553904000000,\"41\":1553904000000,\"42\":1553904000000,\"43\":1553904000000,\"44\":1553904000000,\"45\":1553904000000,\"46\":1553904000000,\"47\":1553904000000,\"48\":1553904000000,\"49\":1553904000000,\"50\":1553904000000,\"51\":1553904000000,\"52\":1553904000000,\"53\":1553904000000,\"54\":1553904000000,\"55\":1553904000000,\"56\":1553904000000,\"57\":1553904000000,\"58\":1553904000000,\"59\":1553904000000,\"60\":1553904000000,\"61\":1553904000000,\"62\":1553904000000,\"63\":1553904000000,\"64\":1553904000000,\"65\":1553904000000,\"66\":1553904000000,\"67\":1553904000000,\"68\":1553904000000,\"69\":1553904000000,\"70\":1553904000000,\"71\":1553904000000,\"72\":1553904000000,\"73\":1553904000000,\"74\":1553904000000,\"75\":1553904000000,\"76\":1553904000000,\"77\":1553904000000,\"78\":1553904000000,\"79\":1553904000000,\"80\":1553904000000,\"81\":1553904000000,\"82\":1553904000000,\"83\":1553904000000,\"84\":1553904000000,\"85\":1553904000000,\"86\":1553904000000,\"87\":1553904000000,\"88\":1553904000000,\"89\":1553904000000,\"90\":1553904000000,\"91\":1553904000000,\"92\":1553904000000,\"93\":1553904000000,\"94\":1553904000000,\"95\":1553904000000,\"96\":1553904000000,\"97\":1553904000000,\"98\":1553904000000,\"99\":1553904000000,\"100\":1553904000000,\"101\":1553904000000,\"102\":1553904000000,\"103\":1553904000000,\"104\":1553904000000,\"105\":1553904000000,\"106\":1553904000000,\"107\":1553904000000,\"108\":1553904000000,\"109\":1553904000000,\"110\":1553904000000,\"111\":1553904000000,\"112\":1553904000000,\"113\":1553904000000,\"114\":1553904000000,\"115\":1553904000000,\"116\":1553904000000,\"117\":1553904000000,\"118\":1553904000000,\"119\":1553904000000,\"120\":1553904000000,\"121\":1553904000000,\"122\":1553904000000,\"123\":1553904000000,\"124\":1553904000000,\"125\":1553904000000,\"126\":1553904000000,\"127\":1553904000000,\"128\":1553904000000,\"129\":1553904000000,\"130\":1553904000000,\"131\":1553904000000,\"132\":1553904000000,\"133\":1553904000000,\"134\":1553904000000,\"135\":1553904000000,\"136\":1553904000000,\"137\":1553904000000,\"138\":1553904000000,\"139\":1553904000000,\"140\":1553904000000,\"141\":1553904000000,\"142\":1553904000000,\"143\":1553904000000,\"144\":1553904000000,\"145\":1553904000000,\"146\":1553904000000,\"147\":1553904000000,\"148\":1553904000000,\"149\":1553904000000,\"150\":1553904000000,\"151\":1553904000000,\"152\":1553904000000,\"153\":1553904000000,\"154\":1553904000000,\"155\":1553904000000,\"156\":1553904000000,\"157\":1553904000000,\"158\":1553904000000,\"159\":1553904000000,\"160\":1553904000000,\"161\":1553904000000,\"162\":1553904000000,\"163\":1553904000000,\"164\":1553904000000,\"165\":1553904000000,\"166\":1553904000000,\"167\":1553904000000,\"168\":1553904000000,\"169\":1553904000000,\"170\":1553904000000,\"171\":1553904000000,\"172\":1553904000000,\"173\":1553904000000,\"174\":1553904000000,\"175\":1553904000000,\"176\":1553904000000,\"177\":1553904000000,\"178\":1553904000000,\"179\":1553904000000,\"180\":1553904000000,\"181\":1553904000000,\"182\":1553904000000,\"183\":1553904000000,\"184\":1553904000000,\"185\":1553904000000,\"186\":1553904000000,\"187\":1553904000000,\"188\":1553904000000,\"189\":1553904000000,\"190\":1553904000000,\"191\":1553904000000,\"192\":1553904000000,\"193\":1553904000000,\"194\":1553904000000,\"195\":1553904000000,\"196\":1553904000000,\"197\":1553904000000,\"198\":1553904000000,\"199\":1553904000000,\"200\":1553904000000,\"201\":1553904000000,\"202\":1553904000000,\"203\":1553904000000,\"204\":1553904000000,\"205\":1553904000000,\"206\":1553904000000,\"207\":1553904000000,\"208\":1553904000000,\"209\":1553904000000,\"210\":1553904000000,\"211\":1553904000000,\"212\":1553904000000,\"213\":1553904000000,\"214\":1553904000000,\"215\":1553904000000,\"216\":1553904000000,\"217\":1553904000000,\"218\":1553904000000,\"219\":1553904000000,\"220\":1553904000000,\"221\":1553904000000,\"222\":1553904000000,\"223\":1553904000000,\"224\":1553904000000,\"225\":1553904000000,\"226\":1553904000000,\"227\":1553904000000,\"228\":1553904000000,\"229\":1553904000000,\"230\":1553904000000,\"231\":1553904000000,\"232\":1553904000000,\"233\":1553904000000,\"234\":1553904000000,\"235\":1553904000000,\"236\":1553904000000,\"237\":1553904000000,\"238\":1553904000000,\"239\":1553904000000,\"240\":1553904000000,\"241\":1553904000000,\"242\":1553904000000,\"243\":1553904000000,\"244\":1553904000000,\"245\":1553904000000,\"246\":1553904000000,\"247\":1553904000000,\"248\":1553904000000,\"249\":1553904000000,\"250\":1553904000000,\"251\":1553904000000,\"252\":1553904000000,\"253\":1553904000000,\"254\":1553904000000,\"255\":1553904000000,\"256\":1553904000000,\"257\":1553904000000,\"258\":1553904000000,\"259\":1553904000000,\"260\":1553904000000,\"261\":1553904000000,\"262\":1553904000000,\"263\":1553904000000,\"264\":1553904000000,\"265\":1553904000000,\"266\":1553904000000,\"267\":1553904000000,\"268\":1553904000000,\"269\":1553904000000,\"270\":1553904000000,\"271\":1553904000000,\"272\":1553904000000,\"273\":1553904000000,\"274\":1553904000000,\"275\":1553904000000,\"276\":1553904000000,\"277\":1553904000000,\"278\":1553904000000,\"279\":1553904000000,\"280\":1553904000000,\"281\":1553904000000,\"282\":1553904000000,\"283\":1553904000000,\"284\":1553904000000,\"285\":1553904000000,\"286\":1553904000000,\"287\":1553904000000,\"288\":1553904000000,\"289\":1553904000000,\"290\":1553904000000,\"291\":1553904000000,\"292\":1553904000000,\"293\":1553904000000,\"294\":1553904000000,\"295\":1553904000000,\"296\":1553904000000,\"297\":1553904000000,\"298\":1553904000000,\"299\":1553904000000,\"300\":1553904000000,\"301\":1553904000000,\"302\":1553904000000,\"303\":1553904000000,\"304\":1553904000000,\"305\":1553904000000,\"306\":1553904000000,\"307\":1553904000000,\"308\":1553904000000,\"309\":1553904000000,\"310\":1553904000000,\"311\":1553904000000,\"312\":1553904000000,\"313\":1553904000000,\"314\":1553904000000,\"315\":1553904000000,\"316\":1553904000000,\"317\":1553904000000,\"318\":1553904000000,\"319\":1553904000000,\"320\":1553904000000,\"321\":1553904000000,\"322\":1553904000000,\"323\":1553904000000,\"324\":1553904000000,\"325\":1553904000000,\"326\":1553904000000,\"327\":1553904000000,\"328\":1553904000000,\"329\":1553904000000,\"330\":1553904000000,\"331\":1553904000000,\"332\":1553904000000,\"333\":1553904000000,\"334\":1553904000000,\"335\":1553904000000,\"336\":1553904000000,\"337\":1553904000000,\"338\":1553904000000,\"339\":1553904000000,\"340\":1553904000000,\"341\":1553904000000,\"342\":1553904000000,\"343\":1553904000000,\"344\":1553904000000,\"345\":1553904000000,\"346\":1553904000000,\"347\":1553904000000,\"348\":1553904000000,\"349\":1553904000000,\"350\":1553904000000,\"351\":1553904000000,\"352\":1553904000000,\"353\":1553904000000,\"354\":1553904000000,\"355\":1553904000000,\"356\":1553904000000,\"357\":1553904000000,\"358\":1553904000000,\"359\":1553904000000,\"360\":1553904000000,\"361\":1553904000000,\"362\":1553904000000,\"363\":1553904000000,\"364\":1553904000000,\"365\":1553904000000,\"366\":1553904000000,\"367\":1553904000000,\"368\":1553904000000,\"369\":1553904000000,\"370\":1553904000000,\"371\":1553904000000,\"372\":1553904000000,\"373\":1553904000000,\"374\":1553904000000,\"375\":1553904000000,\"376\":1553904000000,\"377\":1553904000000,\"378\":1553904000000,\"379\":1553904000000,\"380\":1553904000000,\"381\":1553904000000,\"382\":1553904000000,\"383\":1553904000000,\"384\":1553904000000,\"385\":1553904000000,\"386\":1553904000000,\"387\":1553904000000,\"388\":1553904000000,\"389\":1553904000000}}"},"description":null}],[1556078905273,{"__type":"Data","df":{"__type":"DataFrame","value":"{\"arm_name\":{\"0\":\"0_0\",\"1\":\"0_0\",\"2\":\"0_17\",\"3\":\"0_30\",\"4\":\"0_27\",\"5\":\"0_51\",\"6\":\"0_30\",\"7\":\"0_30\",\"8\":\"0_10\",\"9\":\"0_31\",\"10\":\"0_31\",\"11\":\"0_24\",\"12\":\"0_31\",\"13\":\"0_1\",\"14\":\"0_31\",\"15\":\"0_31\",\"16\":\"0_5\",\"17\":\"0_61\",\"18\":\"0_1\",\"19\":\"0_51\",\"20\":\"0_31\",\"21\":\"0_32\",\"22\":\"0_32\",\"23\":\"0_32\",\"24\":\"0_18\",\"25\":\"0_32\",\"26\":\"0_10\",\"27\":\"0_32\",\"28\":\"0_24\",\"29\":\"0_61\",\"30\":\"0_32\",\"31\":\"0_33\",\"32\":\"0_26\",\"33\":\"0_40\",\"34\":\"0_33\",\"35\":\"0_60\",\"36\":\"0_33\",\"37\":\"0_33\",\"38\":\"0_33\",\"39\":\"0_33\",\"40\":\"0_34\",\"41\":\"0_61\",\"42\":\"0_34\",\"43\":\"0_10\",\"44\":\"0_24\",\"45\":\"0_49\",\"46\":\"0_18\",\"47\":\"0_52\",\"48\":\"0_34\",\"49\":\"0_41\",\"50\":\"0_34\",\"51\":\"0_34\",\"52\":\"0_34\",\"53\":\"0_61\",\"54\":\"0_35\",\"55\":\"0_35\",\"56\":\"0_35\",\"57\":\"0_18\",\"58\":\"0_35\",\"59\":\"0_35\",\"60\":\"0_52\",\"61\":\"0_35\",\"62\":\"0_24\",\"63\":\"0_41\",\"64\":\"0_11\",\"65\":\"0_50\",\"66\":\"0_36\",\"67\":\"0_36\",\"68\":\"0_38\",\"69\":\"0_36\",\"70\":\"0_36\",\"71\":\"0_36\",\"72\":\"0_36\",\"73\":\"0_12\",\"74\":\"0_37\",\"75\":\"0_37\",\"76\":\"0_37\",\"77\":\"0_62\",\"78\":\"0_41\",\"79\":\"0_50\",\"80\":\"0_11\",\"81\":\"0_41\",\"82\":\"0_11\",\"83\":\"0_41\",\"84\":\"0_41\",\"85\":\"0_42\",\"86\":\"0_52\",\"87\":\"0_42\",\"88\":\"0_25\",\"89\":\"0_62\",\"90\":\"0_10\",\"91\":\"0_42\",\"92\":\"0_42\",\"93\":\"0_42\",\"94\":\"0_37\",\"95\":\"0_42\",\"96\":\"0_43\",\"97\":\"0_43\",\"98\":\"0_11\",\"99\":\"0_52\",\"100\":\"0_43\",\"101\":\"0_4\",\"102\":\"0_62\",\"103\":\"0_43\",\"104\":\"0_43\",\"105\":\"0_25\",\"106\":\"0_43\",\"107\":\"0_44\",\"108\":\"0_37\",\"109\":\"0_44\",\"110\":\"0_44\",\"111\":\"0_44\",\"112\":\"0_60\",\"113\":\"0_18\",\"114\":\"0_25\",\"115\":\"0_62\",\"116\":\"0_44\",\"117\":\"0_44\",\"118\":\"0_12\",\"119\":\"0_45\",\"120\":\"0_45\",\"121\":\"0_25\",\"122\":\"0_45\",\"123\":\"0_38\",\"124\":\"0_18\",\"125\":\"0_45\",\"126\":\"0_45\",\"127\":\"0_39\",\"128\":\"0_52\",\"129\":\"0_45\",\"130\":\"0_46\",\"131\":\"0_46\",\"132\":\"0_46\",\"133\":\"0_46\",\"134\":\"0_12\",\"135\":\"0_18\",\"136\":\"0_46\",\"137\":\"0_25\",\"138\":\"0_38\",\"139\":\"0_6\",\"140\":\"0_62\",\"141\":\"0_46\",\"142\":\"0_52\",\"143\":\"0_47\",\"144\":\"0_47\",\"145\":\"0_47\",\"146\":\"0_19\",\"147\":\"0_47\",\"148\":\"0_47\",\"149\":\"0_47\",\"150\":\"0_48\",\"151\":\"0_48\",\"152\":\"0_62\",\"153\":\"0_12\",\"154\":\"0_38\",\"155\":\"0_53\",\"156\":\"0_26\",\"157\":\"0_60\",\"158\":\"0_48\",\"159\":\"0_48\",\"160\":\"0_48\",\"161\":\"0_48\",\"162\":\"0_49\",\"163\":\"0_49\",\"164\":\"0_27\",\"165\":\"0_49\",\"166\":\"0_49\",\"167\":\"0_49\",\"168\":\"0_19\",\"169\":\"0_53\",\"170\":\"0_26\",\"171\":\"0_53\",\"172\":\"0_26\",\"173\":\"0_53\",\"174\":\"0_53\",\"175\":\"0_53\",\"176\":\"0_14\",\"177\":\"0_0\",\"178\":\"0_39\",\"179\":\"0_19\",\"180\":\"0_13\",\"181\":\"0_54\",\"182\":\"0_54\",\"183\":\"0_12\",\"184\":\"0_54\",\"185\":\"0_54\",\"186\":\"0_54\",\"187\":\"0_26\",\"188\":\"0_63\",\"189\":\"0_54\",\"190\":\"0_19\",\"191\":\"0_55\",\"192\":\"0_55\",\"193\":\"0_39\",\"194\":\"0_55\",\"195\":\"0_55\",\"196\":\"0_5\",\"197\":\"0_13\",\"198\":\"0_55\",\"199\":\"0_55\",\"200\":\"0_38\",\"201\":\"0_1\",\"202\":\"0_56\",\"203\":\"0_56\",\"204\":\"0_10\",\"205\":\"0_56\",\"206\":\"0_56\",\"207\":\"0_0\",\"208\":\"0_56\",\"209\":\"0_5\",\"210\":\"0_56\",\"211\":\"0_57\",\"212\":\"0_50\",\"213\":\"0_63\",\"214\":\"0_57\",\"215\":\"0_13\",\"216\":\"0_57\",\"217\":\"0_57\",\"218\":\"0_57\",\"219\":\"0_27\",\"220\":\"0_57\",\"221\":\"0_11\",\"222\":\"0_5\",\"223\":\"0_17\",\"224\":\"0_19\",\"225\":\"0_58\",\"226\":\"0_63\",\"227\":\"0_58\",\"228\":\"0_58\",\"229\":\"0_58\",\"230\":\"0_58\",\"231\":\"0_58\",\"232\":\"0_13\",\"233\":\"0_59\",\"234\":\"0_59\",\"235\":\"0_19\",\"236\":\"0_27\",\"237\":\"0_5\",\"238\":\"0_63\",\"239\":\"0_39\",\"240\":\"0_59\",\"241\":\"0_59\",\"242\":\"0_59\",\"243\":\"0_59\",\"244\":\"0_6\",\"245\":\"0_6\",\"246\":\"0_11\",\"247\":\"0_6\",\"248\":\"0_6\",\"249\":\"0_13\",\"250\":\"0_63\",\"251\":\"0_39\",\"252\":\"0_63\",\"253\":\"0_4\",\"254\":\"0_7\",\"255\":\"0_7\",\"256\":\"0_7\",\"257\":\"0_28\",\"258\":\"0_23\",\"259\":\"0_50\",\"260\":\"0_27\",\"261\":\"0_7\",\"262\":\"0_14\",\"263\":\"0_27\",\"264\":\"0_7\",\"265\":\"0_7\",\"266\":\"0_8\",\"267\":\"0_4\",\"268\":\"0_2\",\"269\":\"0_8\",\"270\":\"0_8\",\"271\":\"0_8\",\"272\":\"0_50\",\"273\":\"0_8\",\"274\":\"0_8\",\"275\":\"0_6\",\"276\":\"0_28\",\"277\":\"0_9\",\"278\":\"0_9\",\"279\":\"0_5\",\"280\":\"0_14\",\"281\":\"0_9\",\"282\":\"0_25\",\"283\":\"0_9\",\"284\":\"0_9\",\"285\":\"0_1\",\"286\":\"0_9\",\"287\":\"0_60\",\"288\":\"status_quo\",\"289\":\"status_quo\",\"290\":\"0_2\",\"291\":\"status_quo\",\"292\":\"0_28\",\"293\":\"status_quo\",\"294\":\"status_quo\",\"295\":\"status_quo\",\"296\":\"0_4\",\"297\":\"0_14\",\"298\":\"0_26\",\"299\":\"0_60\",\"300\":\"0_0\",\"301\":\"0_2\",\"302\":\"0_14\",\"303\":\"0_14\",\"304\":\"0_15\",\"305\":\"0_15\",\"306\":\"0_15\",\"307\":\"0_28\",\"308\":\"0_15\",\"309\":\"0_15\",\"310\":\"0_4\",\"311\":\"0_60\",\"312\":\"0_2\",\"313\":\"0_50\",\"314\":\"0_15\",\"315\":\"0_16\",\"316\":\"0_16\",\"317\":\"0_0\",\"318\":\"0_16\",\"319\":\"0_16\",\"320\":\"0_16\",\"321\":\"0_16\",\"322\":\"0_28\",\"323\":\"0_2\",\"324\":\"0_12\",\"325\":\"0_2\",\"326\":\"0_51\",\"327\":\"0_20\",\"328\":\"0_20\",\"329\":\"0_1\",\"330\":\"0_37\",\"331\":\"0_61\",\"332\":\"0_40\",\"333\":\"0_20\",\"334\":\"0_28\",\"335\":\"0_4\",\"336\":\"0_20\",\"337\":\"0_20\",\"338\":\"0_20\",\"339\":\"0_51\",\"340\":\"0_21\",\"341\":\"0_21\",\"342\":\"0_21\",\"343\":\"0_61\",\"344\":\"0_21\",\"345\":\"0_21\",\"346\":\"0_17\",\"347\":\"0_40\",\"348\":\"0_21\",\"349\":\"0_1\",\"350\":\"0_29\",\"351\":\"0_22\",\"352\":\"0_38\",\"353\":\"0_22\",\"354\":\"0_22\",\"355\":\"0_24\",\"356\":\"0_22\",\"357\":\"0_17\",\"358\":\"0_22\",\"359\":\"0_22\",\"360\":\"0_23\",\"361\":\"0_40\",\"362\":\"0_23\",\"363\":\"0_23\",\"364\":\"0_23\",\"365\":\"0_51\",\"366\":\"0_29\",\"367\":\"0_39\",\"368\":\"0_17\",\"369\":\"0_23\",\"370\":\"0_29\",\"371\":\"0_29\",\"372\":\"0_29\",\"373\":\"0_29\",\"374\":\"0_3\",\"375\":\"0_40\",\"376\":\"0_3\",\"377\":\"0_10\",\"378\":\"0_51\",\"379\":\"0_17\",\"380\":\"0_13\",\"381\":\"0_3\",\"382\":\"0_3\",\"383\":\"0_3\",\"384\":\"0_24\",\"385\":\"0_3\",\"386\":\"0_30\",\"387\":\"0_30\",\"388\":\"0_30\",\"389\":\"0_40\"},\"trial_index\":{\"0\":0,\"1\":0,\"2\":0,\"3\":0,\"4\":0,\"5\":0,\"6\":0,\"7\":0,\"8\":0,\"9\":0,\"10\":0,\"11\":0,\"12\":0,\"13\":0,\"14\":0,\"15\":0,\"16\":0,\"17\":0,\"18\":0,\"19\":0,\"20\":0,\"21\":0,\"22\":0,\"23\":0,\"24\":0,\"25\":0,\"26\":0,\"27\":0,\"28\":0,\"29\":0,\"30\":0,\"31\":0,\"32\":0,\"33\":0,\"34\":0,\"35\":0,\"36\":0,\"37\":0,\"38\":0,\"39\":0,\"40\":0,\"41\":0,\"42\":0,\"43\":0,\"44\":0,\"45\":0,\"46\":0,\"47\":0,\"48\":0,\"49\":0,\"50\":0,\"51\":0,\"52\":0,\"53\":0,\"54\":0,\"55\":0,\"56\":0,\"57\":0,\"58\":0,\"59\":0,\"60\":0,\"61\":0,\"62\":0,\"63\":0,\"64\":0,\"65\":0,\"66\":0,\"67\":0,\"68\":0,\"69\":0,\"70\":0,\"71\":0,\"72\":0,\"73\":0,\"74\":0,\"75\":0,\"76\":0,\"77\":0,\"78\":0,\"79\":0,\"80\":0,\"81\":0,\"82\":0,\"83\":0,\"84\":0,\"85\":0,\"86\":0,\"87\":0,\"88\":0,\"89\":0,\"90\":0,\"91\":0,\"92\":0,\"93\":0,\"94\":0,\"95\":0,\"96\":0,\"97\":0,\"98\":0,\"99\":0,\"100\":0,\"101\":0,\"102\":0,\"103\":0,\"104\":0,\"105\":0,\"106\":0,\"107\":0,\"108\":0,\"109\":0,\"110\":0,\"111\":0,\"112\":0,\"113\":0,\"114\":0,\"115\":0,\"116\":0,\"117\":0,\"118\":0,\"119\":0,\"120\":0,\"121\":0,\"122\":0,\"123\":0,\"124\":0,\"125\":0,\"126\":0,\"127\":0,\"128\":0,\"129\":0,\"130\":0,\"131\":0,\"132\":0,\"133\":0,\"134\":0,\"135\":0,\"136\":0,\"137\":0,\"138\":0,\"139\":0,\"140\":0,\"141\":0,\"142\":0,\"143\":0,\"144\":0,\"145\":0,\"146\":0,\"147\":0,\"148\":0,\"149\":0,\"150\":0,\"151\":0,\"152\":0,\"153\":0,\"154\":0,\"155\":0,\"156\":0,\"157\":0,\"158\":0,\"159\":0,\"160\":0,\"161\":0,\"162\":0,\"163\":0,\"164\":0,\"165\":0,\"166\":0,\"167\":0,\"168\":0,\"169\":0,\"170\":0,\"171\":0,\"172\":0,\"173\":0,\"174\":0,\"175\":0,\"176\":0,\"177\":0,\"178\":0,\"179\":0,\"180\":0,\"181\":0,\"182\":0,\"183\":0,\"184\":0,\"185\":0,\"186\":0,\"187\":0,\"188\":0,\"189\":0,\"190\":0,\"191\":0,\"192\":0,\"193\":0,\"194\":0,\"195\":0,\"196\":0,\"197\":0,\"198\":0,\"199\":0,\"200\":0,\"201\":0,\"202\":0,\"203\":0,\"204\":0,\"205\":0,\"206\":0,\"207\":0,\"208\":0,\"209\":0,\"210\":0,\"211\":0,\"212\":0,\"213\":0,\"214\":0,\"215\":0,\"216\":0,\"217\":0,\"218\":0,\"219\":0,\"220\":0,\"221\":0,\"222\":0,\"223\":0,\"224\":0,\"225\":0,\"226\":0,\"227\":0,\"228\":0,\"229\":0,\"230\":0,\"231\":0,\"232\":0,\"233\":0,\"234\":0,\"235\":0,\"236\":0,\"237\":0,\"238\":0,\"239\":0,\"240\":0,\"241\":0,\"242\":0,\"243\":0,\"244\":0,\"245\":0,\"246\":0,\"247\":0,\"248\":0,\"249\":0,\"250\":0,\"251\":0,\"252\":0,\"253\":0,\"254\":0,\"255\":0,\"256\":0,\"257\":0,\"258\":0,\"259\":0,\"260\":0,\"261\":0,\"262\":0,\"263\":0,\"264\":0,\"265\":0,\"266\":0,\"267\":0,\"268\":0,\"269\":0,\"270\":0,\"271\":0,\"272\":0,\"273\":0,\"274\":0,\"275\":0,\"276\":0,\"277\":0,\"278\":0,\"279\":0,\"280\":0,\"281\":0,\"282\":0,\"283\":0,\"284\":0,\"285\":0,\"286\":0,\"287\":0,\"288\":0,\"289\":0,\"290\":0,\"291\":0,\"292\":0,\"293\":0,\"294\":0,\"295\":0,\"296\":0,\"297\":0,\"298\":0,\"299\":0,\"300\":0,\"301\":0,\"302\":0,\"303\":0,\"304\":0,\"305\":0,\"306\":0,\"307\":0,\"308\":0,\"309\":0,\"310\":0,\"311\":0,\"312\":0,\"313\":0,\"314\":0,\"315\":0,\"316\":0,\"317\":0,\"318\":0,\"319\":0,\"320\":0,\"321\":0,\"322\":0,\"323\":0,\"324\":0,\"325\":0,\"326\":0,\"327\":0,\"328\":0,\"329\":0,\"330\":0,\"331\":0,\"332\":0,\"333\":0,\"334\":0,\"335\":0,\"336\":0,\"337\":0,\"338\":0,\"339\":0,\"340\":0,\"341\":0,\"342\":0,\"343\":0,\"344\":0,\"345\":0,\"346\":0,\"347\":0,\"348\":0,\"349\":0,\"350\":0,\"351\":0,\"352\":0,\"353\":0,\"354\":0,\"355\":0,\"356\":0,\"357\":0,\"358\":0,\"359\":0,\"360\":0,\"361\":0,\"362\":0,\"363\":0,\"364\":0,\"365\":0,\"366\":0,\"367\":0,\"368\":0,\"369\":0,\"370\":0,\"371\":0,\"372\":0,\"373\":0,\"374\":0,\"375\":0,\"376\":0,\"377\":0,\"378\":0,\"379\":0,\"380\":0,\"381\":0,\"382\":0,\"383\":0,\"384\":0,\"385\":0,\"386\":0,\"387\":0,\"388\":0,\"389\":0},\"end_time\":{\"0\":1554249600000,\"1\":1554249600000,\"2\":1554249600000,\"3\":1554249600000,\"4\":1554249600000,\"5\":1554249600000,\"6\":1554249600000,\"7\":1554249600000,\"8\":1554249600000,\"9\":1554249600000,\"10\":1554249600000,\"11\":1554249600000,\"12\":1554249600000,\"13\":1554249600000,\"14\":1554249600000,\"15\":1554249600000,\"16\":1554249600000,\"17\":1554249600000,\"18\":1554249600000,\"19\":1554249600000,\"20\":1554249600000,\"21\":1554249600000,\"22\":1554249600000,\"23\":1554249600000,\"24\":1554249600000,\"25\":1554249600000,\"26\":1554249600000,\"27\":1554249600000,\"28\":1554249600000,\"29\":1554249600000,\"30\":1554249600000,\"31\":1554249600000,\"32\":1554249600000,\"33\":1554249600000,\"34\":1554249600000,\"35\":1554249600000,\"36\":1554249600000,\"37\":1554249600000,\"38\":1554249600000,\"39\":1554249600000,\"40\":1554249600000,\"41\":1554249600000,\"42\":1554249600000,\"43\":1554249600000,\"44\":1554249600000,\"45\":1554249600000,\"46\":1554249600000,\"47\":1554249600000,\"48\":1554249600000,\"49\":1554249600000,\"50\":1554249600000,\"51\":1554249600000,\"52\":1554249600000,\"53\":1554249600000,\"54\":1554249600000,\"55\":1554249600000,\"56\":1554249600000,\"57\":1554249600000,\"58\":1554249600000,\"59\":1554249600000,\"60\":1554249600000,\"61\":1554249600000,\"62\":1554249600000,\"63\":1554249600000,\"64\":1554249600000,\"65\":1554249600000,\"66\":1554249600000,\"67\":1554249600000,\"68\":1554249600000,\"69\":1554249600000,\"70\":1554249600000,\"71\":1554249600000,\"72\":1554249600000,\"73\":1554249600000,\"74\":1554249600000,\"75\":1554249600000,\"76\":1554249600000,\"77\":1554249600000,\"78\":1554249600000,\"79\":1554249600000,\"80\":1554249600000,\"81\":1554249600000,\"82\":1554249600000,\"83\":1554249600000,\"84\":1554249600000,\"85\":1554249600000,\"86\":1554249600000,\"87\":1554249600000,\"88\":1554249600000,\"89\":1554249600000,\"90\":1554249600000,\"91\":1554249600000,\"92\":1554249600000,\"93\":1554249600000,\"94\":1554249600000,\"95\":1554249600000,\"96\":1554249600000,\"97\":1554249600000,\"98\":1554249600000,\"99\":1554249600000,\"100\":1554249600000,\"101\":1554249600000,\"102\":1554249600000,\"103\":1554249600000,\"104\":1554249600000,\"105\":1554249600000,\"106\":1554249600000,\"107\":1554249600000,\"108\":1554249600000,\"109\":1554249600000,\"110\":1554249600000,\"111\":1554249600000,\"112\":1554249600000,\"113\":1554249600000,\"114\":1554249600000,\"115\":1554249600000,\"116\":1554249600000,\"117\":1554249600000,\"118\":1554249600000,\"119\":1554249600000,\"120\":1554249600000,\"121\":1554249600000,\"122\":1554249600000,\"123\":1554249600000,\"124\":1554249600000,\"125\":1554249600000,\"126\":1554249600000,\"127\":1554249600000,\"128\":1554249600000,\"129\":1554249600000,\"130\":1554249600000,\"131\":1554249600000,\"132\":1554249600000,\"133\":1554249600000,\"134\":1554249600000,\"135\":1554249600000,\"136\":1554249600000,\"137\":1554249600000,\"138\":1554249600000,\"139\":1554249600000,\"140\":1554249600000,\"141\":1554249600000,\"142\":1554249600000,\"143\":1554249600000,\"144\":1554249600000,\"145\":1554249600000,\"146\":1554249600000,\"147\":1554249600000,\"148\":1554249600000,\"149\":1554249600000,\"150\":1554249600000,\"151\":1554249600000,\"152\":1554249600000,\"153\":1554249600000,\"154\":1554249600000,\"155\":1554249600000,\"156\":1554249600000,\"157\":1554249600000,\"158\":1554249600000,\"159\":1554249600000,\"160\":1554249600000,\"161\":1554249600000,\"162\":1554249600000,\"163\":1554249600000,\"164\":1554249600000,\"165\":1554249600000,\"166\":1554249600000,\"167\":1554249600000,\"168\":1554249600000,\"169\":1554249600000,\"170\":1554249600000,\"171\":1554249600000,\"172\":1554249600000,\"173\":1554249600000,\"174\":1554249600000,\"175\":1554249600000,\"176\":1554249600000,\"177\":1554249600000,\"178\":1554249600000,\"179\":1554249600000,\"180\":1554249600000,\"181\":1554249600000,\"182\":1554249600000,\"183\":1554249600000,\"184\":1554249600000,\"185\":1554249600000,\"186\":1554249600000,\"187\":1554249600000,\"188\":1554249600000,\"189\":1554249600000,\"190\":1554249600000,\"191\":1554249600000,\"192\":1554249600000,\"193\":1554249600000,\"194\":1554249600000,\"195\":1554249600000,\"196\":1554249600000,\"197\":1554249600000,\"198\":1554249600000,\"199\":1554249600000,\"200\":1554249600000,\"201\":1554249600000,\"202\":1554249600000,\"203\":1554249600000,\"204\":1554249600000,\"205\":1554249600000,\"206\":1554249600000,\"207\":1554249600000,\"208\":1554249600000,\"209\":1554249600000,\"210\":1554249600000,\"211\":1554249600000,\"212\":1554249600000,\"213\":1554249600000,\"214\":1554249600000,\"215\":1554249600000,\"216\":1554249600000,\"217\":1554249600000,\"218\":1554249600000,\"219\":1554249600000,\"220\":1554249600000,\"221\":1554249600000,\"222\":1554249600000,\"223\":1554249600000,\"224\":1554249600000,\"225\":1554249600000,\"226\":1554249600000,\"227\":1554249600000,\"228\":1554249600000,\"229\":1554249600000,\"230\":1554249600000,\"231\":1554249600000,\"232\":1554249600000,\"233\":1554249600000,\"234\":1554249600000,\"235\":1554249600000,\"236\":1554249600000,\"237\":1554249600000,\"238\":1554249600000,\"239\":1554249600000,\"240\":1554249600000,\"241\":1554249600000,\"242\":1554249600000,\"243\":1554249600000,\"244\":1554249600000,\"245\":1554249600000,\"246\":1554249600000,\"247\":1554249600000,\"248\":1554249600000,\"249\":1554249600000,\"250\":1554249600000,\"251\":1554249600000,\"252\":1554249600000,\"253\":1554249600000,\"254\":1554249600000,\"255\":1554249600000,\"256\":1554249600000,\"257\":1554249600000,\"258\":1554249600000,\"259\":1554249600000,\"260\":1554249600000,\"261\":1554249600000,\"262\":1554249600000,\"263\":1554249600000,\"264\":1554249600000,\"265\":1554249600000,\"266\":1554249600000,\"267\":1554249600000,\"268\":1554249600000,\"269\":1554249600000,\"270\":1554249600000,\"271\":1554249600000,\"272\":1554249600000,\"273\":1554249600000,\"274\":1554249600000,\"275\":1554249600000,\"276\":1554249600000,\"277\":1554249600000,\"278\":1554249600000,\"279\":1554249600000,\"280\":1554249600000,\"281\":1554249600000,\"282\":1554249600000,\"283\":1554249600000,\"284\":1554249600000,\"285\":1554249600000,\"286\":1554249600000,\"287\":1554249600000,\"288\":1554249600000,\"289\":1554249600000,\"290\":1554249600000,\"291\":1554249600000,\"292\":1554249600000,\"293\":1554249600000,\"294\":1554249600000,\"295\":1554249600000,\"296\":1554249600000,\"297\":1554249600000,\"298\":1554249600000,\"299\":1554249600000,\"300\":1554249600000,\"301\":1554249600000,\"302\":1554249600000,\"303\":1554249600000,\"304\":1554249600000,\"305\":1554249600000,\"306\":1554249600000,\"307\":1554249600000,\"308\":1554249600000,\"309\":1554249600000,\"310\":1554249600000,\"311\":1554249600000,\"312\":1554249600000,\"313\":1554249600000,\"314\":1554249600000,\"315\":1554249600000,\"316\":1554249600000,\"317\":1554249600000,\"318\":1554249600000,\"319\":1554249600000,\"320\":1554249600000,\"321\":1554249600000,\"322\":1554249600000,\"323\":1554249600000,\"324\":1554249600000,\"325\":1554249600000,\"326\":1554249600000,\"327\":1554249600000,\"328\":1554249600000,\"329\":1554249600000,\"330\":1554249600000,\"331\":1554249600000,\"332\":1554249600000,\"333\":1554249600000,\"334\":1554249600000,\"335\":1554249600000,\"336\":1554249600000,\"337\":1554249600000,\"338\":1554249600000,\"339\":1554249600000,\"340\":1554249600000,\"341\":1554249600000,\"342\":1554249600000,\"343\":1554249600000,\"344\":1554249600000,\"345\":1554249600000,\"346\":1554249600000,\"347\":1554249600000,\"348\":1554249600000,\"349\":1554249600000,\"350\":1554249600000,\"351\":1554249600000,\"352\":1554249600000,\"353\":1554249600000,\"354\":1554249600000,\"355\":1554249600000,\"356\":1554249600000,\"357\":1554249600000,\"358\":1554249600000,\"359\":1554249600000,\"360\":1554249600000,\"361\":1554249600000,\"362\":1554249600000,\"363\":1554249600000,\"364\":1554249600000,\"365\":1554249600000,\"366\":1554249600000,\"367\":1554249600000,\"368\":1554249600000,\"369\":1554249600000,\"370\":1554249600000,\"371\":1554249600000,\"372\":1554249600000,\"373\":1554249600000,\"374\":1554249600000,\"375\":1554249600000,\"376\":1554249600000,\"377\":1554249600000,\"378\":1554249600000,\"379\":1554249600000,\"380\":1554249600000,\"381\":1554249600000,\"382\":1554249600000,\"383\":1554249600000,\"384\":1554249600000,\"385\":1554249600000,\"386\":1554249600000,\"387\":1554249600000,\"388\":1554249600000,\"389\":1554249600000},\"frac_nonnull\":{\"0\":0.4006647191,\"1\":0.0151982196,\"2\":1.0,\"3\":1.0,\"4\":1.0,\"5\":1.0,\"6\":1.0,\"7\":1.0,\"8\":1.0,\"9\":0.400760605,\"10\":0.0152601992,\"11\":0.0151656937,\"12\":1.0,\"13\":0.4006552525,\"14\":1.0,\"15\":1.0,\"16\":1.0,\"17\":1.0,\"18\":1.0,\"19\":1.0,\"20\":1.0,\"21\":0.4001985035,\"22\":0.0149559719,\"23\":1.0,\"24\":0.400938205,\"25\":1.0,\"26\":1.0,\"27\":1.0,\"28\":1.0,\"29\":1.0,\"30\":1.0,\"31\":0.4010821077,\"32\":1.0,\"33\":1.0,\"34\":0.0152126104,\"35\":1.0,\"36\":1.0,\"37\":1.0,\"38\":1.0,\"39\":1.0,\"40\":0.4002239113,\"41\":1.0,\"42\":0.0152552051,\"43\":1.0,\"44\":1.0,\"45\":1.0,\"46\":0.0150129063,\"47\":0.4006498841,\"48\":1.0,\"49\":0.4010185899,\"50\":1.0,\"51\":1.0,\"52\":1.0,\"53\":1.0,\"54\":0.4011022914,\"55\":0.015038627,\"56\":1.0,\"57\":1.0,\"58\":1.0,\"59\":1.0,\"60\":0.0152040102,\"61\":1.0,\"62\":1.0,\"63\":0.0151455312,\"64\":0.4009188229,\"65\":0.4007839484,\"66\":0.40072426,\"67\":0.0150845824,\"68\":1.0,\"69\":1.0,\"70\":1.0,\"71\":1.0,\"72\":1.0,\"73\":1.0,\"74\":0.4008617967,\"75\":0.0151155307,\"76\":1.0,\"77\":0.400684664,\"78\":1.0,\"79\":1.0,\"80\":0.0150250605,\"81\":1.0,\"82\":1.0,\"83\":1.0,\"84\":1.0,\"85\":0.4007686544,\"86\":1.0,\"87\":0.0150565095,\"88\":1.0,\"89\":0.0152288932,\"90\":0.0150387372,\"91\":1.0,\"92\":1.0,\"93\":1.0,\"94\":1.0,\"95\":1.0,\"96\":0.4001714493,\"97\":0.0150721531,\"98\":1.0,\"99\":1.0,\"100\":1.0,\"101\":1.0,\"102\":1.0,\"103\":1.0,\"104\":1.0,\"105\":1.0,\"106\":1.0,\"107\":0.4009186426,\"108\":1.0,\"109\":0.0151225294,\"110\":1.0,\"111\":1.0,\"112\":1.0,\"113\":1.0,\"114\":0.3996468504,\"115\":1.0,\"116\":1.0,\"117\":1.0,\"118\":0.4004868244,\"119\":0.401189132,\"120\":0.0150421138,\"121\":1.0,\"122\":1.0,\"123\":0.4009397916,\"124\":1.0,\"125\":1.0,\"126\":1.0,\"127\":1.0,\"128\":1.0,\"129\":1.0,\"130\":0.4004329194,\"131\":0.015122175,\"132\":1.0,\"133\":1.0,\"134\":0.0149714759,\"135\":1.0,\"136\":1.0,\"137\":1.0,\"138\":0.0150719645,\"139\":1.0,\"140\":1.0,\"141\":1.0,\"142\":1.0,\"143\":0.40074421,\"144\":0.0150534518,\"145\":1.0,\"146\":0.4002186314,\"147\":1.0,\"148\":1.0,\"149\":1.0,\"150\":0.4005793146,\"151\":0.0150889215,\"152\":1.0,\"153\":1.0,\"154\":1.0,\"155\":0.3998123768,\"156\":0.4015930499,\"157\":1.0,\"158\":1.0,\"159\":1.0,\"160\":1.0,\"161\":1.0,\"162\":0.4009548524,\"163\":0.0151173498,\"164\":1.0,\"165\":1.0,\"166\":1.0,\"167\":1.0,\"168\":0.0152323224,\"169\":0.01508231,\"170\":0.0150867515,\"171\":1.0,\"172\":1.0,\"173\":1.0,\"174\":1.0,\"175\":1.0,\"176\":0.4005838086,\"177\":1.0,\"178\":0.4001950199,\"179\":1.0,\"180\":0.4000547261,\"181\":0.4008762151,\"182\":0.0150271579,\"183\":1.0,\"184\":1.0,\"185\":1.0,\"186\":1.0,\"187\":1.0,\"188\":0.3999673603,\"189\":1.0,\"190\":1.0,\"191\":0.400477327,\"192\":0.0149558285,\"193\":0.0150577111,\"194\":1.0,\"195\":1.0,\"196\":0.4008329122,\"197\":0.0150703425,\"198\":1.0,\"199\":1.0,\"200\":1.0,\"201\":0.0150538065,\"202\":0.4006358843,\"203\":0.0152734721,\"204\":0.4006435966,\"205\":1.0,\"206\":1.0,\"207\":1.0,\"208\":1.0,\"209\":0.0151366381,\"210\":1.0,\"211\":0.4006569625,\"212\":1.0,\"213\":0.0149695467,\"214\":0.0149711531,\"215\":1.0,\"216\":1.0,\"217\":1.0,\"218\":1.0,\"219\":0.4003067734,\"220\":1.0,\"221\":1.0,\"222\":1.0,\"223\":0.4015295661,\"224\":1.0,\"225\":0.4002131547,\"226\":1.0,\"227\":0.015231368,\"228\":1.0,\"229\":1.0,\"230\":1.0,\"231\":1.0,\"232\":1.0,\"233\":0.4012182078,\"234\":0.0150518527,\"235\":1.0,\"236\":0.0149459801,\"237\":1.0,\"238\":1.0,\"239\":1.0,\"240\":1.0,\"241\":1.0,\"242\":1.0,\"243\":1.0,\"244\":0.4007214373,\"245\":0.0151311855,\"246\":1.0,\"247\":1.0,\"248\":1.0,\"249\":1.0,\"250\":1.0,\"251\":1.0,\"252\":1.0,\"253\":0.4004389493,\"254\":0.4004784238,\"255\":0.0151505023,\"256\":1.0,\"257\":1.0,\"258\":1.0,\"259\":0.0149231524,\"260\":1.0,\"261\":1.0,\"262\":0.015068286,\"263\":1.0,\"264\":1.0,\"265\":1.0,\"266\":0.4007403163,\"267\":0.0151637022,\"268\":0.4006455676,\"269\":0.0151953745,\"270\":1.0,\"271\":1.0,\"272\":1.0,\"273\":1.0,\"274\":1.0,\"275\":1.0,\"276\":0.4002292209,\"277\":0.400068497,\"278\":0.0151868261,\"279\":1.0,\"280\":1.0,\"281\":1.0,\"282\":0.0149428244,\"283\":1.0,\"284\":1.0,\"285\":1.0,\"286\":1.0,\"287\":0.4002400223,\"288\":0.4006553628,\"289\":0.0150827506,\"290\":0.0151294759,\"291\":1.0,\"292\":0.0150518403,\"293\":1.0,\"294\":1.0,\"295\":1.0,\"296\":1.0,\"297\":1.0,\"298\":1.0,\"299\":0.0150042316,\"300\":1.0,\"301\":1.0,\"302\":1.0,\"303\":1.0,\"304\":0.4008739846,\"305\":0.0150636319,\"306\":1.0,\"307\":1.0,\"308\":1.0,\"309\":1.0,\"310\":1.0,\"311\":1.0,\"312\":1.0,\"313\":1.0,\"314\":1.0,\"315\":0.4007229596,\"316\":0.0151290628,\"317\":1.0,\"318\":1.0,\"319\":1.0,\"320\":1.0,\"321\":1.0,\"322\":1.0,\"323\":1.0,\"324\":1.0,\"325\":1.0,\"326\":0.4012565808,\"327\":0.4004763896,\"328\":0.015237957,\"329\":1.0,\"330\":1.0,\"331\":0.4002211191,\"332\":0.4000476233,\"333\":1.0,\"334\":1.0,\"335\":1.0,\"336\":1.0,\"337\":1.0,\"338\":1.0,\"339\":0.0151030023,\"340\":0.4014774874,\"341\":0.015260906,\"342\":1.0,\"343\":0.0150726354,\"344\":1.0,\"345\":1.0,\"346\":0.0151630146,\"347\":0.0150332144,\"348\":1.0,\"349\":1.0,\"350\":0.4002082938,\"351\":0.4004310245,\"352\":1.0,\"353\":0.0151402204,\"354\":1.0,\"355\":1.0,\"356\":1.0,\"357\":1.0,\"358\":1.0,\"359\":1.0,\"360\":0.4005788186,\"361\":1.0,\"362\":0.0149164816,\"363\":1.0,\"364\":1.0,\"365\":1.0,\"366\":0.0151732788,\"367\":1.0,\"368\":1.0,\"369\":1.0,\"370\":1.0,\"371\":1.0,\"372\":1.0,\"373\":1.0,\"374\":0.4002656177,\"375\":1.0,\"376\":0.0150955022,\"377\":1.0,\"378\":1.0,\"379\":1.0,\"380\":1.0,\"381\":1.0,\"382\":1.0,\"383\":1.0,\"384\":0.4012060793,\"385\":1.0,\"386\":0.4007449747,\"387\":0.0150758262,\"388\":1.0,\"389\":1.0},\"mean\":{\"0\":107.826161775,\"1\":0.0575654741,\"2\":37584.8752081701,\"3\":20.9665899154,\"4\":21.7242086794,\"5\":557.4607775851,\"6\":556.5377087941,\"7\":37566.6513249893,\"8\":20.8329037214,\"9\":107.0019833449,\"10\":0.0563588536,\"11\":0.0570646653,\"12\":0.930568168,\"13\":106.6552643322,\"14\":20.3378701446,\"15\":467.2184408422,\"16\":573.3120395727,\"17\":0.9384860068,\"18\":38015.5793197679,\"19\":37558.3819295608,\"20\":37533.3697541759,\"21\":107.4664950308,\"22\":0.0563475738,\"23\":0.9371255278,\"24\":107.7177581127,\"25\":22.3791848423,\"26\":515.295209408,\"27\":607.4074370139,\"28\":0.9352998933,\"29\":23.9757863101,\"30\":37582.3339326604,\"31\":106.366162891,\"32\":21.8464368291,\"33\":37122.0014078079,\"34\":0.0565551238,\"35\":603.675982595,\"36\":0.9378539443,\"37\":22.5021574507,\"38\":608.8510984511,\"39\":37307.9439049054,\"40\":106.6284397308,\"41\":616.4068382959,\"42\":0.0569686762,\"43\":37612.6090885912,\"44\":22.0497886839,\"45\":37348.8890484436,\"46\":0.0567631551,\"47\":106.7610433688,\"48\":0.9367926947,\"49\":108.6824364289,\"50\":22.0964238686,\"51\":559.8941905515,\"52\":37482.3726293896,\"53\":37640.1722391869,\"54\":108.3062952392,\"55\":0.0571898752,\"56\":0.9353994604,\"57\":0.9346985611,\"58\":21.7628653048,\"59\":591.6689343409,\"60\":0.0563051464,\"61\":37580.2224375069,\"62\":591.7159041231,\"63\":0.0585348054,\"64\":108.1598999329,\"65\":106.8755916341,\"66\":107.0354461124,\"67\":0.0558451429,\"68\":21.4024551149,\"69\":0.9354913324,\"70\":21.8909111727,\"71\":587.3041249134,\"72\":37748.9505820162,\"73\":37629.124471035,\"74\":106.9719575194,\"75\":0.056618502,\"76\":0.9356149453,\"77\":107.4930305359,\"78\":0.9335151004,\"79\":585.7442575994,\"80\":0.0570993536,\"81\":21.2805836847,\"82\":606.0287973786,\"83\":553.5282754224,\"84\":37776.1838534741,\"85\":107.7478157977,\"86\":0.9348967596,\"87\":0.0564514518,\"88\":0.9355589403,\"89\":0.0582770653,\"90\":0.055300756,\"91\":0.9331811473,\"92\":21.3634606871,\"93\":553.021289756,\"94\":590.4366189889,\"95\":37522.4963610281,\"96\":107.2274485136,\"97\":0.0564013038,\"98\":37430.1112124263,\"99\":21.7808962788,\"100\":0.9334716909,\"101\":37445.1185012562,\"102\":0.9328706913,\"103\":21.2952493848,\"104\":562.1577972569,\"105\":21.6179985553,\"106\":37450.9120865565,\"107\":107.2156721895,\"108\":37604.858691387,\"109\":0.0585864383,\"110\":0.9372682859,\"111\":23.3437396788,\"112\":22.2449087638,\"113\":21.3699028783,\"114\":107.5561493544,\"115\":20.8142903897,\"116\":613.7780565408,\"117\":37410.7168974204,\"118\":108.2876525153,\"119\":108.0091402406,\"120\":0.0576031577,\"121\":591.8642702883,\"122\":0.9341589925,\"123\":107.8408343717,\"124\":578.7612852938,\"125\":21.1457521274,\"126\":563.3181260603,\"127\":37442.0746679861,\"128\":578.7157437369,\"129\":37679.090258879,\"130\":107.6882249181,\"131\":0.0555481937,\"132\":0.9327510676,\"133\":20.9139036438,\"134\":0.0563415568,\"135\":37266.2074408905,\"136\":542.4201844972,\"137\":37664.1559475007,\"138\":0.0563568304,\"139\":563.8285873521,\"140\":504.485065891,\"141\":37560.4529999272,\"142\":36961.4111743747,\"143\":107.2038227261,\"144\":0.0569917703,\"145\":0.9335912162,\"146\":107.3369423977,\"147\":22.5496550999,\"148\":564.6809308568,\"149\":37429.7299639896,\"150\":107.5271538108,\"151\":0.0573778891,\"152\":37552.9974667582,\"153\":0.9335441794,\"154\":0.9344545597,\"155\":108.1737819636,\"156\":108.1201798827,\"157\":37483.3925762854,\"158\":0.9330542836,\"159\":21.4099901782,\"160\":558.7468507311,\"161\":37771.2375049122,\"162\":106.8864904705,\"163\":0.0570473344,\"164\":544.6137262552,\"165\":0.9351752867,\"166\":21.7682980906,\"167\":582.1566478377,\"168\":0.0584673425,\"169\":0.0569796281,\"170\":0.0556704319,\"171\":0.9340237195,\"172\":588.2993554271,\"173\":21.4399818215,\"174\":569.0913562641,\"175\":37430.2529471499,\"176\":107.7661059804,\"177\":20.3718346369,\"178\":108.3178154021,\"179\":0.9333949805,\"180\":107.5474564257,\"181\":108.2667609048,\"182\":0.0564324707,\"183\":21.439423418,\"184\":0.933923306,\"185\":21.3288524244,\"186\":563.378597096,\"187\":37531.5730015806,\"188\":107.0605442143,\"189\":37233.3660610549,\"190\":20.9493417548,\"191\":108.4109953892,\"192\":0.0555348686,\"193\":0.0554460985,\"194\":0.9343857089,\"195\":21.4251428748,\"196\":108.1469572875,\"197\":0.0555219518,\"198\":565.6646868022,\"199\":37663.3582107362,\"200\":580.7430090023,\"201\":0.0584889693,\"202\":106.6952529259,\"203\":0.0578244832,\"204\":107.2539972945,\"205\":0.9349934925,\"206\":21.8386480153,\"207\":0.9310968496,\"208\":587.1104222543,\"209\":0.058235687,\"210\":38133.2309694954,\"211\":107.9365493261,\"212\":37521.8127005736,\"213\":0.0573432504,\"214\":0.0561703587,\"215\":0.9340968742,\"216\":0.9317235544,\"217\":20.8760544195,\"218\":536.7727423826,\"219\":107.3677335161,\"220\":37484.1436674012,\"221\":0.9361198394,\"222\":0.9338255485,\"223\":107.3881184885,\"224\":494.0849962599,\"225\":108.0600096121,\"226\":0.9324179336,\"227\":0.0527639884,\"228\":0.9338243596,\"229\":21.3419029391,\"230\":570.6400540192,\"231\":37312.8094523108,\"232\":21.3887146337,\"233\":107.8491821709,\"234\":0.0556003041,\"235\":37663.4121010289,\"236\":0.0565955031,\"237\":21.4443189432,\"238\":21.0192880554,\"239\":0.9350288217,\"240\":0.9359929284,\"241\":21.8883782866,\"242\":597.9848551407,\"243\":37650.8326431073,\"244\":107.481058833,\"245\":0.0570325453,\"246\":22.2460380664,\"247\":0.9335160274,\"248\":21.3611621173,\"249\":567.2419293581,\"250\":525.7443768856,\"251\":21.6940362717,\"252\":37595.8425660567,\"253\":108.8554188157,\"254\":108.8979060683,\"255\":0.0577988134,\"256\":0.9333494475,\"257\":537.9460234981,\"258\":545.4608952069,\"259\":0.0559272816,\"260\":37263.6270763449,\"261\":21.2418857324,\"262\":0.0573172302,\"263\":0.9343076079,\"264\":560.4658964853,\"265\":37663.786589795,\"266\":108.2160896836,\"267\":0.0569683354,\"268\":108.0543652668,\"269\":0.0576891322,\"270\":0.9335799645,\"271\":21.1345879133,\"272\":0.9353241273,\"273\":568.1433548751,\"274\":37063.3847876582,\"275\":37494.644541449,\"276\":107.7843198644,\"277\":107.399279157,\"278\":0.0555912831,\"279\":37495.1409590009,\"280\":0.9350378463,\"281\":0.9322968789,\"282\":0.0568363124,\"283\":21.0013732769,\"284\":535.203876843,\"285\":515.7126930737,\"286\":37539.4694854888,\"287\":106.7416071025,\"288\":107.8859740177,\"289\":0.0569384612,\"290\":0.0569095481,\"291\":0.9350923011,\"292\":0.056023517,\"293\":21.6335257209,\"294\":586.3861053697,\"295\":37446.9854386155,\"296\":0.9340406699,\"297\":21.4693171637,\"298\":0.9354395555,\"299\":0.0561164064,\"300\":480.2483906147,\"301\":0.9338580717,\"302\":580.6437354793,\"303\":37576.5827919862,\"304\":106.5938223161,\"305\":0.0592469497,\"306\":0.9337679695,\"307\":0.9322490439,\"308\":21.0690555743,\"309\":533.838540231,\"310\":21.2685250627,\"311\":0.9359832023,\"312\":21.4276161476,\"313\":22.1673585764,\"314\":37531.5923667457,\"315\":105.7240113615,\"316\":0.0558809959,\"317\":37632.0757980624,\"318\":0.9362771291,\"319\":22.1223815743,\"320\":602.7819638778,\"321\":37709.7886667735,\"322\":21.1403304733,\"323\":565.2938494126,\"324\":565.6119294856,\"325\":37468.3297780697,\"326\":107.2613472789,\"327\":109.3682043143,\"328\":0.0580754663,\"329\":0.9319814826,\"330\":22.6739207706,\"331\":105.9620355554,\"332\":108.0386654975,\"333\":0.9351364141,\"334\":37647.1782120187,\"335\":568.9180717457,\"336\":21.6748662007,\"337\":585.2059607528,\"338\":37878.6308495364,\"339\":0.0556399062,\"340\":108.4597525428,\"341\":0.0564622872,\"342\":0.9348463759,\"343\":0.0572219632,\"344\":21.6473922281,\"345\":589.9976112943,\"346\":0.0550702621,\"347\":0.0575423251,\"348\":37436.5309788938,\"349\":20.8531297276,\"350\":107.2169547919,\"351\":108.2950237226,\"352\":37370.9407466289,\"353\":0.0561444113,\"354\":0.9359114584,\"355\":37492.8270398294,\"356\":21.625076637,\"357\":0.9343331548,\"358\":597.6064080328,\"359\":37373.0917519477,\"360\":107.9953494054,\"361\":0.9330083285,\"362\":0.0575536143,\"363\":0.9330932709,\"364\":20.8818104012,\"365\":0.9333562061,\"366\":0.0573828206,\"367\":586.0497267315,\"368\":21.674842235,\"369\":37337.6661936355,\"370\":0.9360415151,\"371\":23.0129427805,\"372\":591.9954763641,\"373\":37652.1481579212,\"374\":108.147545572,\"375\":20.9034144346,\"376\":0.0562556041,\"377\":0.9318916145,\"378\":21.3355048,\"379\":578.4840793957,\"380\":37638.7998899846,\"381\":0.9340079042,\"382\":21.5310980232,\"383\":568.6786242275,\"384\":108.299395085,\"385\":37644.5325722723,\"386\":107.1486704072,\"387\":0.054461813,\"388\":0.9330929645,\"389\":529.4822824938},\"metric_name\":{\"0\":\"is_live_watch_time_given_iphone\",\"1\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"2\":\"wilde_scroll_frame_drops_per_minute\",\"3\":\"video:encoding:iphone_live_playback_mos_loss\",\"4\":\"video:encoding:iphone_live_playback_mos_loss\",\"5\":\"video:sbl_iphone_is_live__smtbr\",\"6\":\"video:sbl_iphone_is_live__smtbr\",\"7\":\"wilde_scroll_frame_drops_per_minute\",\"8\":\"video:encoding:iphone_live_playback_mos_loss\",\"9\":\"is_live_watch_time_given_iphone\",\"10\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"11\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"12\":\"sbl_iphone_is_live__psr_1_start\",\"13\":\"is_live_watch_time_given_iphone\",\"14\":\"video:encoding:iphone_live_playback_mos_loss\",\"15\":\"video:sbl_iphone_is_live__smtbr\",\"16\":\"video:sbl_iphone_is_live__smtbr\",\"17\":\"sbl_iphone_is_live__psr_1_start\",\"18\":\"wilde_scroll_frame_drops_per_minute\",\"19\":\"wilde_scroll_frame_drops_per_minute\",\"20\":\"wilde_scroll_frame_drops_per_minute\",\"21\":\"is_live_watch_time_given_iphone\",\"22\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"23\":\"sbl_iphone_is_live__psr_1_start\",\"24\":\"is_live_watch_time_given_iphone\",\"25\":\"video:encoding:iphone_live_playback_mos_loss\",\"26\":\"video:sbl_iphone_is_live__smtbr\",\"27\":\"video:sbl_iphone_is_live__smtbr\",\"28\":\"sbl_iphone_is_live__psr_1_start\",\"29\":\"video:encoding:iphone_live_playback_mos_loss\",\"30\":\"wilde_scroll_frame_drops_per_minute\",\"31\":\"is_live_watch_time_given_iphone\",\"32\":\"video:encoding:iphone_live_playback_mos_loss\",\"33\":\"wilde_scroll_frame_drops_per_minute\",\"34\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"35\":\"video:sbl_iphone_is_live__smtbr\",\"36\":\"sbl_iphone_is_live__psr_1_start\",\"37\":\"video:encoding:iphone_live_playback_mos_loss\",\"38\":\"video:sbl_iphone_is_live__smtbr\",\"39\":\"wilde_scroll_frame_drops_per_minute\",\"40\":\"is_live_watch_time_given_iphone\",\"41\":\"video:sbl_iphone_is_live__smtbr\",\"42\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"43\":\"wilde_scroll_frame_drops_per_minute\",\"44\":\"video:encoding:iphone_live_playback_mos_loss\",\"45\":\"wilde_scroll_frame_drops_per_minute\",\"46\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"47\":\"is_live_watch_time_given_iphone\",\"48\":\"sbl_iphone_is_live__psr_1_start\",\"49\":\"is_live_watch_time_given_iphone\",\"50\":\"video:encoding:iphone_live_playback_mos_loss\",\"51\":\"video:sbl_iphone_is_live__smtbr\",\"52\":\"wilde_scroll_frame_drops_per_minute\",\"53\":\"wilde_scroll_frame_drops_per_minute\",\"54\":\"is_live_watch_time_given_iphone\",\"55\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"56\":\"sbl_iphone_is_live__psr_1_start\",\"57\":\"sbl_iphone_is_live__psr_1_start\",\"58\":\"video:encoding:iphone_live_playback_mos_loss\",\"59\":\"video:sbl_iphone_is_live__smtbr\",\"60\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"61\":\"wilde_scroll_frame_drops_per_minute\",\"62\":\"video:sbl_iphone_is_live__smtbr\",\"63\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"64\":\"is_live_watch_time_given_iphone\",\"65\":\"is_live_watch_time_given_iphone\",\"66\":\"is_live_watch_time_given_iphone\",\"67\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"68\":\"video:encoding:iphone_live_playback_mos_loss\",\"69\":\"sbl_iphone_is_live__psr_1_start\",\"70\":\"video:encoding:iphone_live_playback_mos_loss\",\"71\":\"video:sbl_iphone_is_live__smtbr\",\"72\":\"wilde_scroll_frame_drops_per_minute\",\"73\":\"wilde_scroll_frame_drops_per_minute\",\"74\":\"is_live_watch_time_given_iphone\",\"75\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"76\":\"sbl_iphone_is_live__psr_1_start\",\"77\":\"is_live_watch_time_given_iphone\",\"78\":\"sbl_iphone_is_live__psr_1_start\",\"79\":\"video:sbl_iphone_is_live__smtbr\",\"80\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"81\":\"video:encoding:iphone_live_playback_mos_loss\",\"82\":\"video:sbl_iphone_is_live__smtbr\",\"83\":\"video:sbl_iphone_is_live__smtbr\",\"84\":\"wilde_scroll_frame_drops_per_minute\",\"85\":\"is_live_watch_time_given_iphone\",\"86\":\"sbl_iphone_is_live__psr_1_start\",\"87\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"88\":\"sbl_iphone_is_live__psr_1_start\",\"89\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"90\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"91\":\"sbl_iphone_is_live__psr_1_start\",\"92\":\"video:encoding:iphone_live_playback_mos_loss\",\"93\":\"video:sbl_iphone_is_live__smtbr\",\"94\":\"video:sbl_iphone_is_live__smtbr\",\"95\":\"wilde_scroll_frame_drops_per_minute\",\"96\":\"is_live_watch_time_given_iphone\",\"97\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"98\":\"wilde_scroll_frame_drops_per_minute\",\"99\":\"video:encoding:iphone_live_playback_mos_loss\",\"100\":\"sbl_iphone_is_live__psr_1_start\",\"101\":\"wilde_scroll_frame_drops_per_minute\",\"102\":\"sbl_iphone_is_live__psr_1_start\",\"103\":\"video:encoding:iphone_live_playback_mos_loss\",\"104\":\"video:sbl_iphone_is_live__smtbr\",\"105\":\"video:encoding:iphone_live_playback_mos_loss\",\"106\":\"wilde_scroll_frame_drops_per_minute\",\"107\":\"is_live_watch_time_given_iphone\",\"108\":\"wilde_scroll_frame_drops_per_minute\",\"109\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"110\":\"sbl_iphone_is_live__psr_1_start\",\"111\":\"video:encoding:iphone_live_playback_mos_loss\",\"112\":\"video:encoding:iphone_live_playback_mos_loss\",\"113\":\"video:encoding:iphone_live_playback_mos_loss\",\"114\":\"is_live_watch_time_given_iphone\",\"115\":\"video:encoding:iphone_live_playback_mos_loss\",\"116\":\"video:sbl_iphone_is_live__smtbr\",\"117\":\"wilde_scroll_frame_drops_per_minute\",\"118\":\"is_live_watch_time_given_iphone\",\"119\":\"is_live_watch_time_given_iphone\",\"120\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"121\":\"video:sbl_iphone_is_live__smtbr\",\"122\":\"sbl_iphone_is_live__psr_1_start\",\"123\":\"is_live_watch_time_given_iphone\",\"124\":\"video:sbl_iphone_is_live__smtbr\",\"125\":\"video:encoding:iphone_live_playback_mos_loss\",\"126\":\"video:sbl_iphone_is_live__smtbr\",\"127\":\"wilde_scroll_frame_drops_per_minute\",\"128\":\"video:sbl_iphone_is_live__smtbr\",\"129\":\"wilde_scroll_frame_drops_per_minute\",\"130\":\"is_live_watch_time_given_iphone\",\"131\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"132\":\"sbl_iphone_is_live__psr_1_start\",\"133\":\"video:encoding:iphone_live_playback_mos_loss\",\"134\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"135\":\"wilde_scroll_frame_drops_per_minute\",\"136\":\"video:sbl_iphone_is_live__smtbr\",\"137\":\"wilde_scroll_frame_drops_per_minute\",\"138\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"139\":\"video:sbl_iphone_is_live__smtbr\",\"140\":\"video:sbl_iphone_is_live__smtbr\",\"141\":\"wilde_scroll_frame_drops_per_minute\",\"142\":\"wilde_scroll_frame_drops_per_minute\",\"143\":\"is_live_watch_time_given_iphone\",\"144\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"145\":\"sbl_iphone_is_live__psr_1_start\",\"146\":\"is_live_watch_time_given_iphone\",\"147\":\"video:encoding:iphone_live_playback_mos_loss\",\"148\":\"video:sbl_iphone_is_live__smtbr\",\"149\":\"wilde_scroll_frame_drops_per_minute\",\"150\":\"is_live_watch_time_given_iphone\",\"151\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"152\":\"wilde_scroll_frame_drops_per_minute\",\"153\":\"sbl_iphone_is_live__psr_1_start\",\"154\":\"sbl_iphone_is_live__psr_1_start\",\"155\":\"is_live_watch_time_given_iphone\",\"156\":\"is_live_watch_time_given_iphone\",\"157\":\"wilde_scroll_frame_drops_per_minute\",\"158\":\"sbl_iphone_is_live__psr_1_start\",\"159\":\"video:encoding:iphone_live_playback_mos_loss\",\"160\":\"video:sbl_iphone_is_live__smtbr\",\"161\":\"wilde_scroll_frame_drops_per_minute\",\"162\":\"is_live_watch_time_given_iphone\",\"163\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"164\":\"video:sbl_iphone_is_live__smtbr\",\"165\":\"sbl_iphone_is_live__psr_1_start\",\"166\":\"video:encoding:iphone_live_playback_mos_loss\",\"167\":\"video:sbl_iphone_is_live__smtbr\",\"168\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"169\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"170\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"171\":\"sbl_iphone_is_live__psr_1_start\",\"172\":\"video:sbl_iphone_is_live__smtbr\",\"173\":\"video:encoding:iphone_live_playback_mos_loss\",\"174\":\"video:sbl_iphone_is_live__smtbr\",\"175\":\"wilde_scroll_frame_drops_per_minute\",\"176\":\"is_live_watch_time_given_iphone\",\"177\":\"video:encoding:iphone_live_playback_mos_loss\",\"178\":\"is_live_watch_time_given_iphone\",\"179\":\"sbl_iphone_is_live__psr_1_start\",\"180\":\"is_live_watch_time_given_iphone\",\"181\":\"is_live_watch_time_given_iphone\",\"182\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"183\":\"video:encoding:iphone_live_playback_mos_loss\",\"184\":\"sbl_iphone_is_live__psr_1_start\",\"185\":\"video:encoding:iphone_live_playback_mos_loss\",\"186\":\"video:sbl_iphone_is_live__smtbr\",\"187\":\"wilde_scroll_frame_drops_per_minute\",\"188\":\"is_live_watch_time_given_iphone\",\"189\":\"wilde_scroll_frame_drops_per_minute\",\"190\":\"video:encoding:iphone_live_playback_mos_loss\",\"191\":\"is_live_watch_time_given_iphone\",\"192\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"193\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"194\":\"sbl_iphone_is_live__psr_1_start\",\"195\":\"video:encoding:iphone_live_playback_mos_loss\",\"196\":\"is_live_watch_time_given_iphone\",\"197\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"198\":\"video:sbl_iphone_is_live__smtbr\",\"199\":\"wilde_scroll_frame_drops_per_minute\",\"200\":\"video:sbl_iphone_is_live__smtbr\",\"201\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"202\":\"is_live_watch_time_given_iphone\",\"203\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"204\":\"is_live_watch_time_given_iphone\",\"205\":\"sbl_iphone_is_live__psr_1_start\",\"206\":\"video:encoding:iphone_live_playback_mos_loss\",\"207\":\"sbl_iphone_is_live__psr_1_start\",\"208\":\"video:sbl_iphone_is_live__smtbr\",\"209\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"210\":\"wilde_scroll_frame_drops_per_minute\",\"211\":\"is_live_watch_time_given_iphone\",\"212\":\"wilde_scroll_frame_drops_per_minute\",\"213\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"214\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"215\":\"sbl_iphone_is_live__psr_1_start\",\"216\":\"sbl_iphone_is_live__psr_1_start\",\"217\":\"video:encoding:iphone_live_playback_mos_loss\",\"218\":\"video:sbl_iphone_is_live__smtbr\",\"219\":\"is_live_watch_time_given_iphone\",\"220\":\"wilde_scroll_frame_drops_per_minute\",\"221\":\"sbl_iphone_is_live__psr_1_start\",\"222\":\"sbl_iphone_is_live__psr_1_start\",\"223\":\"is_live_watch_time_given_iphone\",\"224\":\"video:sbl_iphone_is_live__smtbr\",\"225\":\"is_live_watch_time_given_iphone\",\"226\":\"sbl_iphone_is_live__psr_1_start\",\"227\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"228\":\"sbl_iphone_is_live__psr_1_start\",\"229\":\"video:encoding:iphone_live_playback_mos_loss\",\"230\":\"video:sbl_iphone_is_live__smtbr\",\"231\":\"wilde_scroll_frame_drops_per_minute\",\"232\":\"video:encoding:iphone_live_playback_mos_loss\",\"233\":\"is_live_watch_time_given_iphone\",\"234\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"235\":\"wilde_scroll_frame_drops_per_minute\",\"236\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"237\":\"video:encoding:iphone_live_playback_mos_loss\",\"238\":\"video:encoding:iphone_live_playback_mos_loss\",\"239\":\"sbl_iphone_is_live__psr_1_start\",\"240\":\"sbl_iphone_is_live__psr_1_start\",\"241\":\"video:encoding:iphone_live_playback_mos_loss\",\"242\":\"video:sbl_iphone_is_live__smtbr\",\"243\":\"wilde_scroll_frame_drops_per_minute\",\"244\":\"is_live_watch_time_given_iphone\",\"245\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"246\":\"video:encoding:iphone_live_playback_mos_loss\",\"247\":\"sbl_iphone_is_live__psr_1_start\",\"248\":\"video:encoding:iphone_live_playback_mos_loss\",\"249\":\"video:sbl_iphone_is_live__smtbr\",\"250\":\"video:sbl_iphone_is_live__smtbr\",\"251\":\"video:encoding:iphone_live_playback_mos_loss\",\"252\":\"wilde_scroll_frame_drops_per_minute\",\"253\":\"is_live_watch_time_given_iphone\",\"254\":\"is_live_watch_time_given_iphone\",\"255\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"256\":\"sbl_iphone_is_live__psr_1_start\",\"257\":\"video:sbl_iphone_is_live__smtbr\",\"258\":\"video:sbl_iphone_is_live__smtbr\",\"259\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"260\":\"wilde_scroll_frame_drops_per_minute\",\"261\":\"video:encoding:iphone_live_playback_mos_loss\",\"262\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"263\":\"sbl_iphone_is_live__psr_1_start\",\"264\":\"video:sbl_iphone_is_live__smtbr\",\"265\":\"wilde_scroll_frame_drops_per_minute\",\"266\":\"is_live_watch_time_given_iphone\",\"267\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"268\":\"is_live_watch_time_given_iphone\",\"269\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"270\":\"sbl_iphone_is_live__psr_1_start\",\"271\":\"video:encoding:iphone_live_playback_mos_loss\",\"272\":\"sbl_iphone_is_live__psr_1_start\",\"273\":\"video:sbl_iphone_is_live__smtbr\",\"274\":\"wilde_scroll_frame_drops_per_minute\",\"275\":\"wilde_scroll_frame_drops_per_minute\",\"276\":\"is_live_watch_time_given_iphone\",\"277\":\"is_live_watch_time_given_iphone\",\"278\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"279\":\"wilde_scroll_frame_drops_per_minute\",\"280\":\"sbl_iphone_is_live__psr_1_start\",\"281\":\"sbl_iphone_is_live__psr_1_start\",\"282\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"283\":\"video:encoding:iphone_live_playback_mos_loss\",\"284\":\"video:sbl_iphone_is_live__smtbr\",\"285\":\"video:sbl_iphone_is_live__smtbr\",\"286\":\"wilde_scroll_frame_drops_per_minute\",\"287\":\"is_live_watch_time_given_iphone\",\"288\":\"is_live_watch_time_given_iphone\",\"289\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"290\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"291\":\"sbl_iphone_is_live__psr_1_start\",\"292\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"293\":\"video:encoding:iphone_live_playback_mos_loss\",\"294\":\"video:sbl_iphone_is_live__smtbr\",\"295\":\"wilde_scroll_frame_drops_per_minute\",\"296\":\"sbl_iphone_is_live__psr_1_start\",\"297\":\"video:encoding:iphone_live_playback_mos_loss\",\"298\":\"sbl_iphone_is_live__psr_1_start\",\"299\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"300\":\"video:sbl_iphone_is_live__smtbr\",\"301\":\"sbl_iphone_is_live__psr_1_start\",\"302\":\"video:sbl_iphone_is_live__smtbr\",\"303\":\"wilde_scroll_frame_drops_per_minute\",\"304\":\"is_live_watch_time_given_iphone\",\"305\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"306\":\"sbl_iphone_is_live__psr_1_start\",\"307\":\"sbl_iphone_is_live__psr_1_start\",\"308\":\"video:encoding:iphone_live_playback_mos_loss\",\"309\":\"video:sbl_iphone_is_live__smtbr\",\"310\":\"video:encoding:iphone_live_playback_mos_loss\",\"311\":\"sbl_iphone_is_live__psr_1_start\",\"312\":\"video:encoding:iphone_live_playback_mos_loss\",\"313\":\"video:encoding:iphone_live_playback_mos_loss\",\"314\":\"wilde_scroll_frame_drops_per_minute\",\"315\":\"is_live_watch_time_given_iphone\",\"316\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"317\":\"wilde_scroll_frame_drops_per_minute\",\"318\":\"sbl_iphone_is_live__psr_1_start\",\"319\":\"video:encoding:iphone_live_playback_mos_loss\",\"320\":\"video:sbl_iphone_is_live__smtbr\",\"321\":\"wilde_scroll_frame_drops_per_minute\",\"322\":\"video:encoding:iphone_live_playback_mos_loss\",\"323\":\"video:sbl_iphone_is_live__smtbr\",\"324\":\"video:sbl_iphone_is_live__smtbr\",\"325\":\"wilde_scroll_frame_drops_per_minute\",\"326\":\"is_live_watch_time_given_iphone\",\"327\":\"is_live_watch_time_given_iphone\",\"328\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"329\":\"sbl_iphone_is_live__psr_1_start\",\"330\":\"video:encoding:iphone_live_playback_mos_loss\",\"331\":\"is_live_watch_time_given_iphone\",\"332\":\"is_live_watch_time_given_iphone\",\"333\":\"sbl_iphone_is_live__psr_1_start\",\"334\":\"wilde_scroll_frame_drops_per_minute\",\"335\":\"video:sbl_iphone_is_live__smtbr\",\"336\":\"video:encoding:iphone_live_playback_mos_loss\",\"337\":\"video:sbl_iphone_is_live__smtbr\",\"338\":\"wilde_scroll_frame_drops_per_minute\",\"339\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"340\":\"is_live_watch_time_given_iphone\",\"341\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"342\":\"sbl_iphone_is_live__psr_1_start\",\"343\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"344\":\"video:encoding:iphone_live_playback_mos_loss\",\"345\":\"video:sbl_iphone_is_live__smtbr\",\"346\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"347\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"348\":\"wilde_scroll_frame_drops_per_minute\",\"349\":\"video:encoding:iphone_live_playback_mos_loss\",\"350\":\"is_live_watch_time_given_iphone\",\"351\":\"is_live_watch_time_given_iphone\",\"352\":\"wilde_scroll_frame_drops_per_minute\",\"353\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"354\":\"sbl_iphone_is_live__psr_1_start\",\"355\":\"wilde_scroll_frame_drops_per_minute\",\"356\":\"video:encoding:iphone_live_playback_mos_loss\",\"357\":\"sbl_iphone_is_live__psr_1_start\",\"358\":\"video:sbl_iphone_is_live__smtbr\",\"359\":\"wilde_scroll_frame_drops_per_minute\",\"360\":\"is_live_watch_time_given_iphone\",\"361\":\"sbl_iphone_is_live__psr_1_start\",\"362\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"363\":\"sbl_iphone_is_live__psr_1_start\",\"364\":\"video:encoding:iphone_live_playback_mos_loss\",\"365\":\"sbl_iphone_is_live__psr_1_start\",\"366\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"367\":\"video:sbl_iphone_is_live__smtbr\",\"368\":\"video:encoding:iphone_live_playback_mos_loss\",\"369\":\"wilde_scroll_frame_drops_per_minute\",\"370\":\"sbl_iphone_is_live__psr_1_start\",\"371\":\"video:encoding:iphone_live_playback_mos_loss\",\"372\":\"video:sbl_iphone_is_live__smtbr\",\"373\":\"wilde_scroll_frame_drops_per_minute\",\"374\":\"is_live_watch_time_given_iphone\",\"375\":\"video:encoding:iphone_live_playback_mos_loss\",\"376\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"377\":\"sbl_iphone_is_live__psr_1_start\",\"378\":\"video:encoding:iphone_live_playback_mos_loss\",\"379\":\"video:sbl_iphone_is_live__smtbr\",\"380\":\"wilde_scroll_frame_drops_per_minute\",\"381\":\"sbl_iphone_is_live__psr_1_start\",\"382\":\"video:encoding:iphone_live_playback_mos_loss\",\"383\":\"video:sbl_iphone_is_live__smtbr\",\"384\":\"is_live_watch_time_given_iphone\",\"385\":\"wilde_scroll_frame_drops_per_minute\",\"386\":\"is_live_watch_time_given_iphone\",\"387\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"388\":\"sbl_iphone_is_live__psr_1_start\",\"389\":\"video:sbl_iphone_is_live__smtbr\"},\"n\":{\"0\":1600977,\"1\":1600977,\"2\":1598231,\"3\":1599249,\"4\":1599226,\"5\":1597828,\"6\":1599249,\"7\":1599249,\"8\":1598206,\"9\":1600831,\"10\":1600831,\"11\":1599729,\"12\":1600831,\"13\":1599994,\"14\":1600831,\"15\":1600831,\"16\":1598968,\"17\":1587380,\"18\":1599994,\"19\":1597828,\"20\":1600831,\"21\":1597957,\"22\":1597957,\"23\":1597957,\"24\":1599224,\"25\":1597957,\"26\":1598206,\"27\":1597957,\"28\":1599729,\"29\":1587380,\"30\":1597957,\"31\":1600580,\"32\":1598820,\"33\":1600057,\"34\":1600580,\"35\":1585686,\"36\":1600580,\"37\":1600580,\"38\":1600580,\"39\":1600580,\"40\":1600634,\"41\":1587380,\"42\":1600634,\"43\":1598206,\"44\":1599729,\"45\":1599619,\"46\":1599224,\"47\":1598131,\"48\":1600634,\"49\":1597699,\"50\":1600634,\"51\":1600634,\"52\":1600634,\"53\":1587380,\"54\":1601210,\"55\":1601210,\"56\":1601210,\"57\":1599224,\"58\":1601210,\"59\":1601210,\"60\":1598131,\"61\":1601210,\"62\":1599729,\"63\":1597699,\"64\":1600526,\"65\":1599595,\"66\":1599978,\"67\":1599978,\"68\":1597801,\"69\":1599978,\"70\":1599978,\"71\":1599978,\"72\":1599978,\"73\":1600577,\"74\":1598753,\"75\":1598753,\"76\":1598753,\"77\":1587640,\"78\":1597699,\"79\":1599595,\"80\":1600526,\"81\":1597699,\"82\":1600526,\"83\":1597699,\"84\":1597699,\"85\":1601500,\"86\":1598131,\"87\":1601500,\"88\":1597623,\"89\":1587640,\"90\":1598206,\"91\":1601500,\"92\":1601500,\"93\":1601500,\"94\":1598753,\"95\":1601500,\"96\":1599307,\"97\":1599307,\"98\":1600526,\"99\":1598131,\"100\":1599307,\"101\":1598818,\"102\":1587640,\"103\":1599307,\"104\":1599307,\"105\":1597623,\"106\":1599307,\"107\":1599534,\"108\":1598753,\"109\":1599534,\"110\":1599534,\"111\":1599534,\"112\":1585686,\"113\":1599224,\"114\":1597623,\"115\":1587640,\"116\":1599534,\"117\":1599534,\"118\":1600577,\"119\":1598645,\"120\":1598645,\"121\":1597623,\"122\":1598645,\"123\":1597801,\"124\":1599224,\"125\":1598645,\"126\":1598645,\"127\":1597786,\"128\":1598131,\"129\":1598645,\"130\":1599836,\"131\":1599836,\"132\":1599836,\"133\":1599836,\"134\":1600577,\"135\":1599224,\"136\":1599836,\"137\":1597623,\"138\":1597801,\"139\":1600139,\"140\":1587640,\"141\":1599836,\"142\":1598131,\"143\":1601161,\"144\":1601161,\"145\":1601161,\"146\":1599953,\"147\":1601161,\"148\":1601161,\"149\":1601161,\"150\":1600512,\"151\":1600512,\"152\":1587640,\"153\":1600577,\"154\":1597801,\"155\":1601081,\"156\":1598820,\"157\":1585686,\"158\":1600512,\"159\":1600512,\"160\":1600512,\"161\":1600512,\"162\":1599619,\"163\":1599619,\"164\":1599226,\"165\":1599619,\"166\":1599619,\"167\":1599619,\"168\":1599953,\"169\":1601081,\"170\":1598820,\"171\":1601081,\"172\":1598820,\"173\":1601081,\"174\":1601081,\"175\":1601081,\"176\":1600182,\"177\":1600977,\"178\":1597786,\"179\":1599953,\"180\":1597044,\"181\":1603031,\"182\":1603031,\"183\":1600577,\"184\":1603031,\"185\":1603031,\"186\":1603031,\"187\":1598820,\"188\":1587022,\"189\":1603031,\"190\":1599953,\"191\":1600580,\"192\":1600580,\"193\":1597786,\"194\":1600580,\"195\":1600580,\"196\":1598968,\"197\":1597044,\"198\":1600580,\"199\":1600580,\"200\":1597801,\"201\":1599994,\"202\":1600291,\"203\":1600291,\"204\":1598206,\"205\":1600291,\"206\":1600291,\"207\":1600977,\"208\":1600291,\"209\":1598968,\"210\":1600291,\"211\":1585783,\"212\":1599595,\"213\":1587022,\"214\":1585783,\"215\":1597044,\"216\":1585783,\"217\":1585783,\"218\":1585783,\"219\":1599226,\"220\":1585783,\"221\":1600526,\"222\":1598968,\"223\":1598231,\"224\":1599953,\"225\":1587579,\"226\":1587022,\"227\":1587579,\"228\":1587579,\"229\":1587579,\"230\":1587579,\"231\":1587579,\"232\":1597044,\"233\":1590369,\"234\":1590369,\"235\":1599953,\"236\":1599226,\"237\":1598968,\"238\":1587022,\"239\":1597786,\"240\":1590369,\"241\":1590369,\"242\":1590369,\"243\":1590369,\"244\":1600139,\"245\":1600139,\"246\":1600526,\"247\":1600139,\"248\":1600139,\"249\":1597044,\"250\":1587022,\"251\":1597786,\"252\":1587022,\"253\":1598818,\"254\":1600673,\"255\":1600673,\"256\":1600673,\"257\":1600203,\"258\":1596355,\"259\":1599595,\"260\":1599226,\"261\":1600673,\"262\":1600182,\"263\":1599226,\"264\":1600673,\"265\":1600673,\"266\":1598776,\"267\":1598818,\"268\":1600452,\"269\":1598776,\"270\":1598776,\"271\":1598776,\"272\":1599595,\"273\":1598776,\"274\":1598776,\"275\":1600139,\"276\":1600203,\"277\":1600071,\"278\":1600071,\"279\":1598968,\"280\":1600182,\"281\":1600071,\"282\":1597623,\"283\":1600071,\"284\":1600071,\"285\":1599994,\"286\":1600071,\"287\":1585686,\"288\":12780096,\"289\":12780096,\"290\":1600452,\"291\":12780096,\"292\":1600203,\"293\":12780096,\"294\":12780096,\"295\":12780096,\"296\":1598818,\"297\":1600182,\"298\":1598820,\"299\":1585686,\"300\":1600977,\"301\":1600452,\"302\":1600182,\"303\":1600182,\"304\":1598884,\"305\":1598884,\"306\":1598884,\"307\":1600203,\"308\":1598884,\"309\":1598884,\"310\":1598818,\"311\":1585686,\"312\":1600452,\"313\":1599595,\"314\":1598884,\"315\":1597323,\"316\":1597323,\"317\":1600977,\"318\":1597323,\"319\":1597323,\"320\":1597323,\"321\":1597323,\"322\":1600203,\"323\":1600452,\"324\":1600577,\"325\":1600452,\"326\":1597828,\"327\":1597852,\"328\":1597852,\"329\":1599994,\"330\":1598753,\"331\":1587380,\"332\":1600057,\"333\":1597852,\"334\":1600203,\"335\":1598818,\"336\":1597852,\"337\":1597852,\"338\":1597852,\"339\":1597828,\"340\":1598660,\"341\":1598660,\"342\":1598660,\"343\":1587380,\"344\":1598660,\"345\":1598660,\"346\":1598231,\"347\":1600057,\"348\":1598660,\"349\":1599994,\"350\":1597743,\"351\":1600373,\"352\":1597801,\"353\":1600373,\"354\":1600373,\"355\":1599729,\"356\":1600373,\"357\":1598231,\"358\":1600373,\"359\":1600373,\"360\":1596355,\"361\":1600057,\"362\":1596355,\"363\":1596355,\"364\":1596355,\"365\":1597828,\"366\":1597743,\"367\":1597786,\"368\":1598231,\"369\":1596355,\"370\":1597743,\"371\":1597743,\"372\":1597743,\"373\":1597743,\"374\":1597032,\"375\":1600057,\"376\":1597032,\"377\":1598206,\"378\":1597828,\"379\":1598231,\"380\":1597044,\"381\":1597032,\"382\":1597032,\"383\":1597032,\"384\":1599729,\"385\":1597032,\"386\":1599249,\"387\":1599249,\"388\":1599249,\"389\":1600057},\"random_split\":{\"0\":-1,\"1\":-1,\"2\":-1,\"3\":-1,\"4\":-1,\"5\":-1,\"6\":-1,\"7\":-1,\"8\":-1,\"9\":-1,\"10\":-1,\"11\":-1,\"12\":-1,\"13\":-1,\"14\":-1,\"15\":-1,\"16\":-1,\"17\":-1,\"18\":-1,\"19\":-1,\"20\":-1,\"21\":-1,\"22\":-1,\"23\":-1,\"24\":-1,\"25\":-1,\"26\":-1,\"27\":-1,\"28\":-1,\"29\":-1,\"30\":-1,\"31\":-1,\"32\":-1,\"33\":-1,\"34\":-1,\"35\":-1,\"36\":-1,\"37\":-1,\"38\":-1,\"39\":-1,\"40\":-1,\"41\":-1,\"42\":-1,\"43\":-1,\"44\":-1,\"45\":-1,\"46\":-1,\"47\":-1,\"48\":-1,\"49\":-1,\"50\":-1,\"51\":-1,\"52\":-1,\"53\":-1,\"54\":-1,\"55\":-1,\"56\":-1,\"57\":-1,\"58\":-1,\"59\":-1,\"60\":-1,\"61\":-1,\"62\":-1,\"63\":-1,\"64\":-1,\"65\":-1,\"66\":-1,\"67\":-1,\"68\":-1,\"69\":-1,\"70\":-1,\"71\":-1,\"72\":-1,\"73\":-1,\"74\":-1,\"75\":-1,\"76\":-1,\"77\":-1,\"78\":-1,\"79\":-1,\"80\":-1,\"81\":-1,\"82\":-1,\"83\":-1,\"84\":-1,\"85\":-1,\"86\":-1,\"87\":-1,\"88\":-1,\"89\":-1,\"90\":-1,\"91\":-1,\"92\":-1,\"93\":-1,\"94\":-1,\"95\":-1,\"96\":-1,\"97\":-1,\"98\":-1,\"99\":-1,\"100\":-1,\"101\":-1,\"102\":-1,\"103\":-1,\"104\":-1,\"105\":-1,\"106\":-1,\"107\":-1,\"108\":-1,\"109\":-1,\"110\":-1,\"111\":-1,\"112\":-1,\"113\":-1,\"114\":-1,\"115\":-1,\"116\":-1,\"117\":-1,\"118\":-1,\"119\":-1,\"120\":-1,\"121\":-1,\"122\":-1,\"123\":-1,\"124\":-1,\"125\":-1,\"126\":-1,\"127\":-1,\"128\":-1,\"129\":-1,\"130\":-1,\"131\":-1,\"132\":-1,\"133\":-1,\"134\":-1,\"135\":-1,\"136\":-1,\"137\":-1,\"138\":-1,\"139\":-1,\"140\":-1,\"141\":-1,\"142\":-1,\"143\":-1,\"144\":-1,\"145\":-1,\"146\":-1,\"147\":-1,\"148\":-1,\"149\":-1,\"150\":-1,\"151\":-1,\"152\":-1,\"153\":-1,\"154\":-1,\"155\":-1,\"156\":-1,\"157\":-1,\"158\":-1,\"159\":-1,\"160\":-1,\"161\":-1,\"162\":-1,\"163\":-1,\"164\":-1,\"165\":-1,\"166\":-1,\"167\":-1,\"168\":-1,\"169\":-1,\"170\":-1,\"171\":-1,\"172\":-1,\"173\":-1,\"174\":-1,\"175\":-1,\"176\":-1,\"177\":-1,\"178\":-1,\"179\":-1,\"180\":-1,\"181\":-1,\"182\":-1,\"183\":-1,\"184\":-1,\"185\":-1,\"186\":-1,\"187\":-1,\"188\":-1,\"189\":-1,\"190\":-1,\"191\":-1,\"192\":-1,\"193\":-1,\"194\":-1,\"195\":-1,\"196\":-1,\"197\":-1,\"198\":-1,\"199\":-1,\"200\":-1,\"201\":-1,\"202\":-1,\"203\":-1,\"204\":-1,\"205\":-1,\"206\":-1,\"207\":-1,\"208\":-1,\"209\":-1,\"210\":-1,\"211\":-1,\"212\":-1,\"213\":-1,\"214\":-1,\"215\":-1,\"216\":-1,\"217\":-1,\"218\":-1,\"219\":-1,\"220\":-1,\"221\":-1,\"222\":-1,\"223\":-1,\"224\":-1,\"225\":-1,\"226\":-1,\"227\":-1,\"228\":-1,\"229\":-1,\"230\":-1,\"231\":-1,\"232\":-1,\"233\":-1,\"234\":-1,\"235\":-1,\"236\":-1,\"237\":-1,\"238\":-1,\"239\":-1,\"240\":-1,\"241\":-1,\"242\":-1,\"243\":-1,\"244\":-1,\"245\":-1,\"246\":-1,\"247\":-1,\"248\":-1,\"249\":-1,\"250\":-1,\"251\":-1,\"252\":-1,\"253\":-1,\"254\":-1,\"255\":-1,\"256\":-1,\"257\":-1,\"258\":-1,\"259\":-1,\"260\":-1,\"261\":-1,\"262\":-1,\"263\":-1,\"264\":-1,\"265\":-1,\"266\":-1,\"267\":-1,\"268\":-1,\"269\":-1,\"270\":-1,\"271\":-1,\"272\":-1,\"273\":-1,\"274\":-1,\"275\":-1,\"276\":-1,\"277\":-1,\"278\":-1,\"279\":-1,\"280\":-1,\"281\":-1,\"282\":-1,\"283\":-1,\"284\":-1,\"285\":-1,\"286\":-1,\"287\":-1,\"288\":-1,\"289\":-1,\"290\":-1,\"291\":-1,\"292\":-1,\"293\":-1,\"294\":-1,\"295\":-1,\"296\":-1,\"297\":-1,\"298\":-1,\"299\":-1,\"300\":-1,\"301\":-1,\"302\":-1,\"303\":-1,\"304\":-1,\"305\":-1,\"306\":-1,\"307\":-1,\"308\":-1,\"309\":-1,\"310\":-1,\"311\":-1,\"312\":-1,\"313\":-1,\"314\":-1,\"315\":-1,\"316\":-1,\"317\":-1,\"318\":-1,\"319\":-1,\"320\":-1,\"321\":-1,\"322\":-1,\"323\":-1,\"324\":-1,\"325\":-1,\"326\":-1,\"327\":-1,\"328\":-1,\"329\":-1,\"330\":-1,\"331\":-1,\"332\":-1,\"333\":-1,\"334\":-1,\"335\":-1,\"336\":-1,\"337\":-1,\"338\":-1,\"339\":-1,\"340\":-1,\"341\":-1,\"342\":-1,\"343\":-1,\"344\":-1,\"345\":-1,\"346\":-1,\"347\":-1,\"348\":-1,\"349\":-1,\"350\":-1,\"351\":-1,\"352\":-1,\"353\":-1,\"354\":-1,\"355\":-1,\"356\":-1,\"357\":-1,\"358\":-1,\"359\":-1,\"360\":-1,\"361\":-1,\"362\":-1,\"363\":-1,\"364\":-1,\"365\":-1,\"366\":-1,\"367\":-1,\"368\":-1,\"369\":-1,\"370\":-1,\"371\":-1,\"372\":-1,\"373\":-1,\"374\":-1,\"375\":-1,\"376\":-1,\"377\":-1,\"378\":-1,\"379\":-1,\"380\":-1,\"381\":-1,\"382\":-1,\"383\":-1,\"384\":-1,\"385\":-1,\"386\":-1,\"387\":-1,\"388\":-1,\"389\":-1},\"sem\":{\"0\":0.6317990573,\"1\":0.0013160752,\"2\":253.7424586607,\"3\":0.0765276371,\"4\":0.0763210129,\"5\":3.2227907006,\"6\":3.2336616637,\"7\":253.3693566678,\"8\":0.0774844124,\"9\":0.6256174849,\"10\":0.0012011513,\"11\":0.001255106,\"12\":0.0002838784,\"13\":0.6246747407,\"14\":0.0753796133,\"15\":2.7149185401,\"16\":3.3575055579,\"17\":0.0002464528,\"18\":261.6306877756,\"19\":248.9795560671,\"20\":254.92059857,\"21\":0.6330783632,\"22\":0.001242836,\"23\":0.0002634728,\"24\":0.6285488442,\"25\":0.0784263576,\"26\":2.9799067127,\"27\":3.6191932815,\"28\":0.0002921748,\"29\":0.0896916105,\"30\":252.9525687781,\"31\":0.6167266784,\"32\":0.0777312339,\"33\":246.9814892811,\"34\":0.0012364203,\"35\":3.5953166389,\"36\":0.0002697161,\"37\":0.0795479397,\"38\":3.635009435,\"39\":246.9258314444,\"40\":0.621016094,\"41\":3.7563217245,\"42\":0.0012835359,\"43\":254.3517617543,\"44\":0.0779753461,\"45\":252.8932233487,\"46\":0.0012832882,\"47\":0.6234926066,\"48\":0.0002587932,\"49\":0.6330586702,\"50\":0.0774949562,\"51\":3.3979225658,\"52\":253.4336749661,\"53\":257.05991197,\"54\":0.6363047093,\"55\":0.0012968108,\"56\":0.0002572083,\"57\":0.0002603408,\"58\":0.0763108721,\"59\":3.493325341,\"60\":0.0012273573,\"61\":250.3408909269,\"62\":3.4857853511,\"63\":0.0013028591,\"64\":0.6374207936,\"65\":0.6255538037,\"66\":0.6232885773,\"67\":0.0012133069,\"68\":0.0773688703,\"69\":0.0002577173,\"70\":0.0780184539,\"71\":3.4730510835,\"72\":254.5771286583,\"73\":254.7235760505,\"74\":0.6195293677,\"75\":0.0012507417,\"76\":0.000274209,\"77\":0.632187316,\"78\":0.0002688443,\"79\":3.4295844418,\"80\":0.0013114672,\"81\":0.0754533415,\"82\":3.6000742649,\"83\":3.1757704621,\"84\":255.0986171462,\"85\":0.6270726726,\"86\":0.000261725,\"87\":0.0012585723,\"88\":0.0002526315,\"89\":0.001318368,\"90\":0.0012276087,\"91\":0.0002719623,\"92\":0.0778566246,\"93\":3.2366786228,\"94\":3.4755205558,\"95\":255.5390526578,\"96\":0.6279970164,\"97\":0.0012257525,\"98\":251.3784893094,\"99\":0.0776952132,\"100\":0.0002863952,\"101\":251.2152175762,\"102\":0.0002787761,\"103\":0.0763994236,\"104\":3.2628184284,\"105\":0.0778551242,\"106\":253.2757347133,\"107\":0.6303512439,\"108\":250.9142279094,\"109\":0.0013380088,\"110\":0.0002448514,\"111\":0.0853619231,\"112\":0.0790273526,\"113\":0.0762515016,\"114\":0.6278679458,\"115\":0.0767993756,\"116\":3.675426766,\"117\":252.0620137368,\"118\":0.6356168465,\"119\":0.6250457164,\"120\":0.0012469915,\"121\":3.4517285401,\"122\":0.0002627634,\"123\":0.6265701684,\"124\":3.3758092655,\"125\":0.0770682672,\"126\":3.2684663673,\"127\":255.1444684283,\"128\":3.3863119124,\"129\":256.3947932927,\"130\":0.62754454,\"131\":0.0012363805,\"132\":0.0002984224,\"133\":0.0762548055,\"134\":0.0012595812,\"135\":253.8789903543,\"136\":3.1440459162,\"137\":255.0570226145,\"138\":0.0012127517,\"139\":3.3022136684,\"140\":2.9669818864,\"141\":254.9382241336,\"142\":248.2431211503,\"143\":0.625657482,\"144\":0.0012777884,\"145\":0.0002841416,\"146\":0.6274004769,\"147\":0.0815859211,\"148\":3.2945339006,\"149\":254.45251381,\"150\":0.6272113177,\"151\":0.001260613,\"152\":254.8729053485,\"153\":0.0002823643,\"154\":0.0002784071,\"155\":0.6362324886,\"156\":0.6307844011,\"157\":252.7383531502,\"158\":0.0002677695,\"159\":0.0760606072,\"160\":3.2520269132,\"161\":253.1685400367,\"162\":0.6232098022,\"163\":0.0013049828,\"164\":3.1609847881,\"165\":0.0002706498,\"166\":0.0780939018,\"167\":3.419853903,\"168\":0.0012413054,\"169\":0.00122998,\"170\":0.0012453901,\"171\":0.000280494,\"172\":3.4272199518,\"173\":0.0767305008,\"174\":3.3194115351,\"175\":251.889438847,\"176\":0.6289099126,\"177\":0.0763315352,\"178\":0.6330370714,\"179\":0.0002723042,\"180\":0.626480613,\"181\":0.6306575161,\"182\":0.0012912005,\"183\":0.0780520093,\"184\":0.0002601343,\"185\":0.0758761539,\"186\":3.2443389043,\"187\":253.3641796739,\"188\":0.6265380043,\"189\":249.105232426,\"190\":0.0759921249,\"191\":0.6362685901,\"192\":0.0012279052,\"193\":0.0012029672,\"194\":0.000261684,\"195\":0.0766904123,\"196\":0.6336425371,\"197\":0.0012414443,\"198\":3.3059625594,\"199\":253.0471988496,\"200\":3.4212272651,\"201\":0.0013070548,\"202\":0.6235465448,\"203\":0.0012901238,\"204\":0.6291178227,\"205\":0.0002726989,\"206\":0.0792514933,\"207\":0.0002900478,\"208\":3.4689687016,\"209\":0.0013182007,\"210\":258.7362732524,\"211\":0.6324235656,\"212\":252.6909839209,\"213\":0.0013232951,\"214\":0.0012647776,\"215\":0.000273628,\"216\":0.0002884997,\"217\":0.0767091319,\"218\":3.1349459876,\"219\":0.6272455707,\"220\":251.0738128954,\"221\":0.0002763404,\"222\":0.0002815282,\"223\":0.625522943,\"224\":2.8860805297,\"225\":0.633919388,\"226\":0.0002757041,\"227\":0.0011360566,\"228\":0.0002692669,\"229\":0.0777220417,\"230\":3.317553458,\"231\":253.0913076007,\"232\":0.0770234955,\"233\":0.6246150448,\"234\":0.0012065979,\"235\":253.8876054739,\"236\":0.00127737,\"237\":0.0766821203,\"238\":0.0772165431,\"239\":0.0002643824,\"240\":0.0002560819,\"241\":0.078154499,\"242\":3.546045267,\"243\":253.6401730739,\"244\":0.6271844,\"245\":0.00122204,\"246\":0.0799963949,\"247\":0.0002794639,\"248\":0.0760813136,\"249\":3.2879592274,\"250\":3.0297604432,\"251\":0.0768925327,\"252\":253.6355964346,\"253\":0.6327399647,\"254\":0.6385456504,\"255\":0.0012262556,\"256\":0.0002789106,\"257\":3.0976106395,\"258\":3.1460683812,\"259\":0.0012350175,\"260\":248.7009684559,\"261\":0.0767952448,\"262\":0.001258266,\"263\":0.000266396,\"264\":3.2601526635,\"265\":255.6876835431,\"266\":0.6311514595,\"267\":0.0012725501,\"268\":0.6314322115,\"269\":0.0012686104,\"270\":0.0002724719,\"271\":0.0767118968,\"272\":0.0002769412,\"273\":3.3049846269,\"274\":247.5129853164,\"275\":252.6824010611,\"276\":0.630273546,\"277\":0.6287040378,\"278\":0.0012446121,\"279\":254.9886348719,\"280\":0.0002733758,\"281\":0.0002754742,\"282\":0.0012937086,\"283\":0.0758788194,\"284\":3.1085334848,\"285\":3.0135427218,\"286\":254.4430450384,\"287\":0.627598164,\"288\":0.2222027939,\"289\":0.0004470251,\"290\":0.0013026855,\"291\":0.0000969754,\"292\":0.0012048285,\"293\":0.0273424895,\"294\":1.2204164623,\"295\":89.5043001688,\"296\":0.0002693637,\"297\":0.0763248862,\"298\":0.000294783,\"299\":0.0012794314,\"300\":2.8025957354,\"301\":0.0002963182,\"302\":3.3741882913,\"303\":254.6402908723,\"304\":0.6196587931,\"305\":0.0013216667,\"306\":0.0002768763,\"307\":0.000292372,\"308\":0.075582386,\"309\":3.1789809616,\"310\":0.07583398,\"311\":0.0002646729,\"312\":0.0775230614,\"313\":0.079488601,\"314\":254.1573389694,\"315\":0.6158397422,\"316\":0.0012120651,\"317\":252.9367087513,\"318\":0.000269412,\"319\":0.0799606095,\"320\":3.6235739114,\"321\":256.9484908434,\"322\":0.0769396738,\"323\":3.3353850551,\"324\":3.2729536382,\"325\":250.2434360176,\"326\":0.6267857717,\"327\":0.6389593636,\"328\":0.0013005573,\"329\":0.000288715,\"330\":0.081355635,\"331\":0.6235705302,\"332\":0.6283732244,\"333\":0.0002583009,\"334\":251.1669606249,\"335\":3.2827579333,\"336\":0.0764599168,\"337\":3.4414452778,\"338\":254.8695670599,\"339\":0.0012298543,\"340\":0.6325236755,\"341\":0.0012555073,\"342\":0.0002806843,\"343\":0.0013073614,\"344\":0.0778252875,\"345\":3.4745145338,\"346\":0.0012175693,\"347\":0.0012876361,\"348\":251.0032639815,\"349\":0.075626813,\"350\":0.6285500973,\"351\":0.6301862961,\"352\":254.1545478598,\"353\":0.0012383061,\"354\":0.0002589152,\"355\":254.2079398148,\"356\":0.0771230812,\"357\":0.000270003,\"358\":3.5545831132,\"359\":252.7565587478,\"360\":0.6301825574,\"361\":0.0002661077,\"362\":0.0012883796,\"363\":0.0002760602,\"364\":0.0764034919,\"365\":0.0002640426,\"366\":0.0012579328,\"367\":3.4392195683,\"368\":0.0771836755,\"369\":249.3043397869,\"370\":0.0002701242,\"371\":0.0833332315,\"372\":3.5155043457,\"373\":255.8636145177,\"374\":0.6361170252,\"375\":0.0758914036,\"376\":0.0012823321,\"377\":0.0002680169,\"378\":0.0784037661,\"379\":3.4084890952,\"380\":254.5231410102,\"381\":0.000290657,\"382\":0.0775762591,\"383\":3.3441064236,\"384\":0.6334756777,\"385\":257.0271844491,\"386\":0.6253426267,\"387\":0.0012228987,\"388\":0.0002711764,\"389\":3.0528018155},\"start_time\":{\"0\":1553990400000,\"1\":1553990400000,\"2\":1553990400000,\"3\":1553990400000,\"4\":1553990400000,\"5\":1553990400000,\"6\":1553990400000,\"7\":1553990400000,\"8\":1553990400000,\"9\":1553990400000,\"10\":1553990400000,\"11\":1553990400000,\"12\":1553990400000,\"13\":1553990400000,\"14\":1553990400000,\"15\":1553990400000,\"16\":1553990400000,\"17\":1553990400000,\"18\":1553990400000,\"19\":1553990400000,\"20\":1553990400000,\"21\":1553990400000,\"22\":1553990400000,\"23\":1553990400000,\"24\":1553990400000,\"25\":1553990400000,\"26\":1553990400000,\"27\":1553990400000,\"28\":1553990400000,\"29\":1553990400000,\"30\":1553990400000,\"31\":1553990400000,\"32\":1553990400000,\"33\":1553990400000,\"34\":1553990400000,\"35\":1553990400000,\"36\":1553990400000,\"37\":1553990400000,\"38\":1553990400000,\"39\":1553990400000,\"40\":1553990400000,\"41\":1553990400000,\"42\":1553990400000,\"43\":1553990400000,\"44\":1553990400000,\"45\":1553990400000,\"46\":1553990400000,\"47\":1553990400000,\"48\":1553990400000,\"49\":1553990400000,\"50\":1553990400000,\"51\":1553990400000,\"52\":1553990400000,\"53\":1553990400000,\"54\":1553990400000,\"55\":1553990400000,\"56\":1553990400000,\"57\":1553990400000,\"58\":1553990400000,\"59\":1553990400000,\"60\":1553990400000,\"61\":1553990400000,\"62\":1553990400000,\"63\":1553990400000,\"64\":1553990400000,\"65\":1553990400000,\"66\":1553990400000,\"67\":1553990400000,\"68\":1553990400000,\"69\":1553990400000,\"70\":1553990400000,\"71\":1553990400000,\"72\":1553990400000,\"73\":1553990400000,\"74\":1553990400000,\"75\":1553990400000,\"76\":1553990400000,\"77\":1553990400000,\"78\":1553990400000,\"79\":1553990400000,\"80\":1553990400000,\"81\":1553990400000,\"82\":1553990400000,\"83\":1553990400000,\"84\":1553990400000,\"85\":1553990400000,\"86\":1553990400000,\"87\":1553990400000,\"88\":1553990400000,\"89\":1553990400000,\"90\":1553990400000,\"91\":1553990400000,\"92\":1553990400000,\"93\":1553990400000,\"94\":1553990400000,\"95\":1553990400000,\"96\":1553990400000,\"97\":1553990400000,\"98\":1553990400000,\"99\":1553990400000,\"100\":1553990400000,\"101\":1553990400000,\"102\":1553990400000,\"103\":1553990400000,\"104\":1553990400000,\"105\":1553990400000,\"106\":1553990400000,\"107\":1553990400000,\"108\":1553990400000,\"109\":1553990400000,\"110\":1553990400000,\"111\":1553990400000,\"112\":1553990400000,\"113\":1553990400000,\"114\":1553990400000,\"115\":1553990400000,\"116\":1553990400000,\"117\":1553990400000,\"118\":1553990400000,\"119\":1553990400000,\"120\":1553990400000,\"121\":1553990400000,\"122\":1553990400000,\"123\":1553990400000,\"124\":1553990400000,\"125\":1553990400000,\"126\":1553990400000,\"127\":1553990400000,\"128\":1553990400000,\"129\":1553990400000,\"130\":1553990400000,\"131\":1553990400000,\"132\":1553990400000,\"133\":1553990400000,\"134\":1553990400000,\"135\":1553990400000,\"136\":1553990400000,\"137\":1553990400000,\"138\":1553990400000,\"139\":1553990400000,\"140\":1553990400000,\"141\":1553990400000,\"142\":1553990400000,\"143\":1553990400000,\"144\":1553990400000,\"145\":1553990400000,\"146\":1553990400000,\"147\":1553990400000,\"148\":1553990400000,\"149\":1553990400000,\"150\":1553990400000,\"151\":1553990400000,\"152\":1553990400000,\"153\":1553990400000,\"154\":1553990400000,\"155\":1553990400000,\"156\":1553990400000,\"157\":1553990400000,\"158\":1553990400000,\"159\":1553990400000,\"160\":1553990400000,\"161\":1553990400000,\"162\":1553990400000,\"163\":1553990400000,\"164\":1553990400000,\"165\":1553990400000,\"166\":1553990400000,\"167\":1553990400000,\"168\":1553990400000,\"169\":1553990400000,\"170\":1553990400000,\"171\":1553990400000,\"172\":1553990400000,\"173\":1553990400000,\"174\":1553990400000,\"175\":1553990400000,\"176\":1553990400000,\"177\":1553990400000,\"178\":1553990400000,\"179\":1553990400000,\"180\":1553990400000,\"181\":1553990400000,\"182\":1553990400000,\"183\":1553990400000,\"184\":1553990400000,\"185\":1553990400000,\"186\":1553990400000,\"187\":1553990400000,\"188\":1553990400000,\"189\":1553990400000,\"190\":1553990400000,\"191\":1553990400000,\"192\":1553990400000,\"193\":1553990400000,\"194\":1553990400000,\"195\":1553990400000,\"196\":1553990400000,\"197\":1553990400000,\"198\":1553990400000,\"199\":1553990400000,\"200\":1553990400000,\"201\":1553990400000,\"202\":1553990400000,\"203\":1553990400000,\"204\":1553990400000,\"205\":1553990400000,\"206\":1553990400000,\"207\":1553990400000,\"208\":1553990400000,\"209\":1553990400000,\"210\":1553990400000,\"211\":1553990400000,\"212\":1553990400000,\"213\":1553990400000,\"214\":1553990400000,\"215\":1553990400000,\"216\":1553990400000,\"217\":1553990400000,\"218\":1553990400000,\"219\":1553990400000,\"220\":1553990400000,\"221\":1553990400000,\"222\":1553990400000,\"223\":1553990400000,\"224\":1553990400000,\"225\":1553990400000,\"226\":1553990400000,\"227\":1553990400000,\"228\":1553990400000,\"229\":1553990400000,\"230\":1553990400000,\"231\":1553990400000,\"232\":1553990400000,\"233\":1553990400000,\"234\":1553990400000,\"235\":1553990400000,\"236\":1553990400000,\"237\":1553990400000,\"238\":1553990400000,\"239\":1553990400000,\"240\":1553990400000,\"241\":1553990400000,\"242\":1553990400000,\"243\":1553990400000,\"244\":1553990400000,\"245\":1553990400000,\"246\":1553990400000,\"247\":1553990400000,\"248\":1553990400000,\"249\":1553990400000,\"250\":1553990400000,\"251\":1553990400000,\"252\":1553990400000,\"253\":1553990400000,\"254\":1553990400000,\"255\":1553990400000,\"256\":1553990400000,\"257\":1553990400000,\"258\":1553990400000,\"259\":1553990400000,\"260\":1553990400000,\"261\":1553990400000,\"262\":1553990400000,\"263\":1553990400000,\"264\":1553990400000,\"265\":1553990400000,\"266\":1553990400000,\"267\":1553990400000,\"268\":1553990400000,\"269\":1553990400000,\"270\":1553990400000,\"271\":1553990400000,\"272\":1553990400000,\"273\":1553990400000,\"274\":1553990400000,\"275\":1553990400000,\"276\":1553990400000,\"277\":1553990400000,\"278\":1553990400000,\"279\":1553990400000,\"280\":1553990400000,\"281\":1553990400000,\"282\":1553990400000,\"283\":1553990400000,\"284\":1553990400000,\"285\":1553990400000,\"286\":1553990400000,\"287\":1553990400000,\"288\":1553990400000,\"289\":1553990400000,\"290\":1553990400000,\"291\":1553990400000,\"292\":1553990400000,\"293\":1553990400000,\"294\":1553990400000,\"295\":1553990400000,\"296\":1553990400000,\"297\":1553990400000,\"298\":1553990400000,\"299\":1553990400000,\"300\":1553990400000,\"301\":1553990400000,\"302\":1553990400000,\"303\":1553990400000,\"304\":1553990400000,\"305\":1553990400000,\"306\":1553990400000,\"307\":1553990400000,\"308\":1553990400000,\"309\":1553990400000,\"310\":1553990400000,\"311\":1553990400000,\"312\":1553990400000,\"313\":1553990400000,\"314\":1553990400000,\"315\":1553990400000,\"316\":1553990400000,\"317\":1553990400000,\"318\":1553990400000,\"319\":1553990400000,\"320\":1553990400000,\"321\":1553990400000,\"322\":1553990400000,\"323\":1553990400000,\"324\":1553990400000,\"325\":1553990400000,\"326\":1553990400000,\"327\":1553990400000,\"328\":1553990400000,\"329\":1553990400000,\"330\":1553990400000,\"331\":1553990400000,\"332\":1553990400000,\"333\":1553990400000,\"334\":1553990400000,\"335\":1553990400000,\"336\":1553990400000,\"337\":1553990400000,\"338\":1553990400000,\"339\":1553990400000,\"340\":1553990400000,\"341\":1553990400000,\"342\":1553990400000,\"343\":1553990400000,\"344\":1553990400000,\"345\":1553990400000,\"346\":1553990400000,\"347\":1553990400000,\"348\":1553990400000,\"349\":1553990400000,\"350\":1553990400000,\"351\":1553990400000,\"352\":1553990400000,\"353\":1553990400000,\"354\":1553990400000,\"355\":1553990400000,\"356\":1553990400000,\"357\":1553990400000,\"358\":1553990400000,\"359\":1553990400000,\"360\":1553990400000,\"361\":1553990400000,\"362\":1553990400000,\"363\":1553990400000,\"364\":1553990400000,\"365\":1553990400000,\"366\":1553990400000,\"367\":1553990400000,\"368\":1553990400000,\"369\":1553990400000,\"370\":1553990400000,\"371\":1553990400000,\"372\":1553990400000,\"373\":1553990400000,\"374\":1553990400000,\"375\":1553990400000,\"376\":1553990400000,\"377\":1553990400000,\"378\":1553990400000,\"379\":1553990400000,\"380\":1553990400000,\"381\":1553990400000,\"382\":1553990400000,\"383\":1553990400000,\"384\":1553990400000,\"385\":1553990400000,\"386\":1553990400000,\"387\":1553990400000,\"388\":1553990400000,\"389\":1553990400000}}"},"description":null}]]},"1":{"__type":"OrderedDict","value":[[1556078905288,{"__type":"Data","df":{"__type":"DataFrame","value":"{\"arm_name\":{\"0\":\"0_22\",\"1\":\"0_22\",\"2\":\"1_4\",\"3\":\"1_4\",\"4\":\"1_2\",\"5\":\"1_4\",\"6\":\"0_35\",\"7\":\"status_quo\",\"8\":\"1_1\",\"9\":\"status_quo\",\"10\":\"status_quo\",\"11\":\"status_quo\",\"12\":\"1_3\",\"13\":\"status_quo\",\"14\":\"0_22\",\"15\":\"0_25\",\"16\":\"1_2\",\"17\":\"0_25\",\"18\":\"0_25\",\"19\":\"0_25\",\"20\":\"0_25\",\"21\":\"0_35\",\"22\":\"0_35\",\"23\":\"1_3\",\"24\":\"0_35\",\"25\":\"0_59\",\"26\":\"0_59\",\"27\":\"0_59\",\"28\":\"0_59\",\"29\":\"1_0\",\"30\":\"1_0\",\"31\":\"1_0\",\"32\":\"1_0\",\"33\":\"1_0\",\"34\":\"1_1\",\"35\":\"1_1\",\"36\":\"1_1\",\"37\":\"1_1\",\"38\":\"0_22\",\"39\":\"1_2\",\"40\":\"1_2\",\"41\":\"1_2\",\"42\":\"1_3\",\"43\":\"0_35\",\"44\":\"1_3\",\"45\":\"1_3\",\"46\":\"0_22\",\"47\":\"1_4\",\"48\":\"0_59\",\"49\":\"1_4\"},\"trial_index\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1},\"end_time\":{\"0\":1554336000000,\"1\":1554336000000,\"2\":1554336000000,\"3\":1554336000000,\"4\":1554336000000,\"5\":1554336000000,\"6\":1554336000000,\"7\":1554336000000,\"8\":1554336000000,\"9\":1554336000000,\"10\":1554336000000,\"11\":1554336000000,\"12\":1554336000000,\"13\":1554336000000,\"14\":1554336000000,\"15\":1554336000000,\"16\":1554336000000,\"17\":1554336000000,\"18\":1554336000000,\"19\":1554336000000,\"20\":1554336000000,\"21\":1554336000000,\"22\":1554336000000,\"23\":1554336000000,\"24\":1554336000000,\"25\":1554336000000,\"26\":1554336000000,\"27\":1554336000000,\"28\":1554336000000,\"29\":1554336000000,\"30\":1554336000000,\"31\":1554336000000,\"32\":1554336000000,\"33\":1554336000000,\"34\":1554336000000,\"35\":1554336000000,\"36\":1554336000000,\"37\":1554336000000,\"38\":1554336000000,\"39\":1554336000000,\"40\":1554336000000,\"41\":1554336000000,\"42\":1554336000000,\"43\":1554336000000,\"44\":1554336000000,\"45\":1554336000000,\"46\":1554336000000,\"47\":1554336000000,\"48\":1554336000000,\"49\":1554336000000},\"frac_nonnull\":{\"0\":0.3304347826,\"1\":1.0,\"2\":1.0,\"3\":1.0,\"4\":1.0,\"5\":1.0,\"6\":1.0,\"7\":0.3734177215,\"8\":1.0,\"9\":1.0,\"10\":1.0,\"11\":1.0,\"12\":1.0,\"13\":1.0,\"14\":1.0,\"15\":0.36,\"16\":1.0,\"17\":1.0,\"18\":1.0,\"19\":1.0,\"20\":1.0,\"21\":0.3608247423,\"22\":1.0,\"23\":1.0,\"24\":1.0,\"25\":0.3796296296,\"26\":1.0,\"27\":1.0,\"28\":1.0,\"29\":0.3793969849,\"30\":1.0,\"31\":1.0,\"32\":1.0,\"33\":1.0,\"34\":0.3292682927,\"35\":1.0,\"36\":1.0,\"37\":1.0,\"38\":1.0,\"39\":0.3466666667,\"40\":1.0,\"41\":1.0,\"42\":0.3717277487,\"43\":1.0,\"44\":1.0,\"45\":1.0,\"46\":1.0,\"47\":0.3770053476,\"48\":1.0,\"49\":1.0},\"mean\":{\"0\":18.3826086957,\"1\":0.9240506329,\"2\":11.1001588399,\"3\":1145.3548387097,\"4\":0.9407665505,\"5\":51928.7153541098,\"6\":18.4529990701,\"7\":99.046835443,\"8\":0.9622377622,\"9\":0.947225573,\"10\":27.3083950985,\"11\":539.6344827586,\"12\":24.8054607433,\"13\":39717.327652652,\"14\":18.7419289955,\"15\":154.52,\"16\":17.3503326586,\"17\":0.9006410256,\"18\":31.0102455007,\"19\":302.9803921569,\"20\":12047.0679712968,\"21\":122.3298969072,\"22\":1318.4444444444,\"23\":865.0285714286,\"24\":14158.4064116542,\"25\":116.8148148148,\"26\":0.9338521401,\"27\":20.2710877144,\"28\":742.1176470588,\"29\":50.540201005,\"30\":0.9480701754,\"31\":15.34214851,\"32\":394.4117647059,\"33\":70435.1026905562,\"34\":74.1219512195,\"35\":20.8657322921,\"36\":759.75,\"37\":19885.1273133705,\"38\":422.8,\"39\":65.136,\"40\":478.9411764706,\"41\":17116.0241126394,\"42\":79.2565445026,\"43\":0.9654320988,\"44\":0.9192200557,\"45\":52798.0980829464,\"46\":78873.9018880681,\"47\":94.935828877,\"48\":33496.8022229248,\"49\":0.9515151515},\"metric_name\":{\"0\":\"is_live_watch_time_given_iphone\",\"1\":\"sbl_iphone_is_live__psr_1_start\",\"2\":\"video:encoding:iphone_live_playback_mos_loss\",\"3\":\"video:sbl_iphone_is_live__smtbr\",\"4\":\"sbl_iphone_is_live__psr_1_start\",\"5\":\"wilde_scroll_frame_drops_per_minute\",\"6\":\"video:encoding:iphone_live_playback_mos_loss\",\"7\":\"is_live_watch_time_given_iphone\",\"8\":\"sbl_iphone_is_live__psr_1_start\",\"9\":\"sbl_iphone_is_live__psr_1_start\",\"10\":\"video:encoding:iphone_live_playback_mos_loss\",\"11\":\"video:sbl_iphone_is_live__smtbr\",\"12\":\"video:encoding:iphone_live_playback_mos_loss\",\"13\":\"wilde_scroll_frame_drops_per_minute\",\"14\":\"video:encoding:iphone_live_playback_mos_loss\",\"15\":\"is_live_watch_time_given_iphone\",\"16\":\"video:encoding:iphone_live_playback_mos_loss\",\"17\":\"sbl_iphone_is_live__psr_1_start\",\"18\":\"video:encoding:iphone_live_playback_mos_loss\",\"19\":\"video:sbl_iphone_is_live__smtbr\",\"20\":\"wilde_scroll_frame_drops_per_minute\",\"21\":\"is_live_watch_time_given_iphone\",\"22\":\"video:sbl_iphone_is_live__smtbr\",\"23\":\"video:sbl_iphone_is_live__smtbr\",\"24\":\"wilde_scroll_frame_drops_per_minute\",\"25\":\"is_live_watch_time_given_iphone\",\"26\":\"sbl_iphone_is_live__psr_1_start\",\"27\":\"video:encoding:iphone_live_playback_mos_loss\",\"28\":\"video:sbl_iphone_is_live__smtbr\",\"29\":\"is_live_watch_time_given_iphone\",\"30\":\"sbl_iphone_is_live__psr_1_start\",\"31\":\"video:encoding:iphone_live_playback_mos_loss\",\"32\":\"video:sbl_iphone_is_live__smtbr\",\"33\":\"wilde_scroll_frame_drops_per_minute\",\"34\":\"is_live_watch_time_given_iphone\",\"35\":\"video:encoding:iphone_live_playback_mos_loss\",\"36\":\"video:sbl_iphone_is_live__smtbr\",\"37\":\"wilde_scroll_frame_drops_per_minute\",\"38\":\"video:sbl_iphone_is_live__smtbr\",\"39\":\"is_live_watch_time_given_iphone\",\"40\":\"video:sbl_iphone_is_live__smtbr\",\"41\":\"wilde_scroll_frame_drops_per_minute\",\"42\":\"is_live_watch_time_given_iphone\",\"43\":\"sbl_iphone_is_live__psr_1_start\",\"44\":\"sbl_iphone_is_live__psr_1_start\",\"45\":\"wilde_scroll_frame_drops_per_minute\",\"46\":\"wilde_scroll_frame_drops_per_minute\",\"47\":\"is_live_watch_time_given_iphone\",\"48\":\"wilde_scroll_frame_drops_per_minute\",\"49\":\"sbl_iphone_is_live__psr_1_start\"},\"n\":{\"0\":115,\"1\":115,\"2\":374,\"3\":374,\"4\":375,\"5\":374,\"6\":97,\"7\":790,\"8\":410,\"9\":790,\"10\":790,\"11\":790,\"12\":382,\"13\":790,\"14\":115,\"15\":100,\"16\":375,\"17\":100,\"18\":100,\"19\":100,\"20\":100,\"21\":97,\"22\":97,\"23\":382,\"24\":97,\"25\":108,\"26\":108,\"27\":108,\"28\":108,\"29\":398,\"30\":398,\"31\":398,\"32\":398,\"33\":398,\"34\":410,\"35\":410,\"36\":410,\"37\":410,\"38\":115,\"39\":375,\"40\":375,\"41\":375,\"42\":382,\"43\":97,\"44\":382,\"45\":382,\"46\":115,\"47\":374,\"48\":108,\"49\":374},\"random_split\":{\"0\":-1,\"1\":-1,\"2\":-1,\"3\":-1,\"4\":-1,\"5\":-1,\"6\":-1,\"7\":-1,\"8\":-1,\"9\":-1,\"10\":-1,\"11\":-1,\"12\":-1,\"13\":-1,\"14\":-1,\"15\":-1,\"16\":-1,\"17\":-1,\"18\":-1,\"19\":-1,\"20\":-1,\"21\":-1,\"22\":-1,\"23\":-1,\"24\":-1,\"25\":-1,\"26\":-1,\"27\":-1,\"28\":-1,\"29\":-1,\"30\":-1,\"31\":-1,\"32\":-1,\"33\":-1,\"34\":-1,\"35\":-1,\"36\":-1,\"37\":-1,\"38\":-1,\"39\":-1,\"40\":-1,\"41\":-1,\"42\":-1,\"43\":-1,\"44\":-1,\"45\":-1,\"46\":-1,\"47\":-1,\"48\":-1,\"49\":-1},\"sem\":{\"0\":7.6143966438,\"1\":0.023612101,\"2\":3.7387832266,\"3\":528.3577098709,\"4\":0.0113307967,\"5\":22101.2264906174,\"6\":2.9227717958,\"7\":24.0978452365,\"8\":0.0067278309,\"9\":0.005689872,\"10\":2.518821678,\"11\":77.256782728,\"12\":8.5748789626,\"13\":8779.5822257026,\"14\":2.4319625077,\"15\":70.3874565272,\"16\":6.6823649385,\"17\":0.0191492075,\"18\":4.792160379,\"19\":71.4036828669,\"20\":3363.5742421581,\"21\":77.3488240115,\"22\":884.0613529532,\"23\":205.6404808942,\"24\":6314.1268238277,\"25\":43.0568022762,\"26\":0.0235496486,\"27\":4.5985864345,\"28\":195.281824095,\"29\":15.0971200453,\"30\":0.0086663679,\"31\":2.9006027113,\"32\":119.4160205664,\"33\":33166.7741218912,\"34\":23.6306563344,\"35\":3.8351089642,\"36\":226.0686875097,\"37\":5486.154492961,\"38\":278.7129878945,\"39\":21.0994886463,\"40\":161.8504954384,\"41\":4881.267866131,\"42\":23.1504111153,\"43\":0.0126440933,\"44\":0.0242924193,\"45\":16671.3973219923,\"46\":21860.9913685882,\"47\":30.9113897687,\"48\":13879.4417420248,\"49\":0.0095014003},\"start_time\":{\"0\":1554249600000,\"1\":1554249600000,\"2\":1554249600000,\"3\":1554249600000,\"4\":1554249600000,\"5\":1554249600000,\"6\":1554249600000,\"7\":1554249600000,\"8\":1554249600000,\"9\":1554249600000,\"10\":1554249600000,\"11\":1554249600000,\"12\":1554249600000,\"13\":1554249600000,\"14\":1554249600000,\"15\":1554249600000,\"16\":1554249600000,\"17\":1554249600000,\"18\":1554249600000,\"19\":1554249600000,\"20\":1554249600000,\"21\":1554249600000,\"22\":1554249600000,\"23\":1554249600000,\"24\":1554249600000,\"25\":1554249600000,\"26\":1554249600000,\"27\":1554249600000,\"28\":1554249600000,\"29\":1554249600000,\"30\":1554249600000,\"31\":1554249600000,\"32\":1554249600000,\"33\":1554249600000,\"34\":1554249600000,\"35\":1554249600000,\"36\":1554249600000,\"37\":1554249600000,\"38\":1554249600000,\"39\":1554249600000,\"40\":1554249600000,\"41\":1554249600000,\"42\":1554249600000,\"43\":1554249600000,\"44\":1554249600000,\"45\":1554249600000,\"46\":1554249600000,\"47\":1554249600000,\"48\":1554249600000,\"49\":1554249600000}}"},"description":null}],[1556078905303,{"__type":"Data","df":{"__type":"DataFrame","value":"{\"arm_name\":{\"0\":\"0_22\",\"1\":\"0_22\",\"2\":\"1_3\",\"3\":\"1_3\",\"4\":\"1_1\",\"5\":\"1_3\",\"6\":\"0_35\",\"7\":\"1_3\",\"8\":\"1_0\",\"9\":\"1_3\",\"10\":\"1_3\",\"11\":\"1_4\",\"12\":\"1_2\",\"13\":\"1_4\",\"14\":\"0_22\",\"15\":\"0_22\",\"16\":\"1_1\",\"17\":\"1_4\",\"18\":\"1_4\",\"19\":\"1_4\",\"20\":\"1_4\",\"21\":\"0_25\",\"22\":\"0_35\",\"23\":\"1_2\",\"24\":\"status_quo\",\"25\":\"status_quo\",\"26\":\"status_quo\",\"27\":\"status_quo\",\"28\":\"0_59\",\"29\":\"0_59\",\"30\":\"status_quo\",\"31\":\"status_quo\",\"32\":\"0_25\",\"33\":\"0_25\",\"34\":\"1_0\",\"35\":\"1_0\",\"36\":\"0_25\",\"37\":\"0_25\",\"38\":\"0_35\",\"39\":\"0_35\",\"40\":\"1_1\",\"41\":\"0_35\",\"42\":\"0_35\",\"43\":\"0_59\",\"44\":\"0_59\",\"45\":\"1_2\",\"46\":\"0_59\",\"47\":\"1_0\",\"48\":\"1_0\",\"49\":\"1_0\",\"50\":\"0_22\",\"51\":\"1_1\",\"52\":\"1_1\",\"53\":\"1_1\",\"54\":\"0_25\",\"55\":\"1_2\",\"56\":\"0_22\",\"57\":\"1_2\",\"58\":\"0_59\",\"59\":\"1_2\"},\"trial_index\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":1},\"end_time\":{\"0\":1554422400000,\"1\":1554422400000,\"2\":1554422400000,\"3\":1554422400000,\"4\":1554422400000,\"5\":1554422400000,\"6\":1554422400000,\"7\":1554422400000,\"8\":1554422400000,\"9\":1554422400000,\"10\":1554422400000,\"11\":1554422400000,\"12\":1554422400000,\"13\":1554422400000,\"14\":1554422400000,\"15\":1554422400000,\"16\":1554422400000,\"17\":1554422400000,\"18\":1554422400000,\"19\":1554422400000,\"20\":1554422400000,\"21\":1554422400000,\"22\":1554422400000,\"23\":1554422400000,\"24\":1554422400000,\"25\":1554422400000,\"26\":1554422400000,\"27\":1554422400000,\"28\":1554422400000,\"29\":1554422400000,\"30\":1554422400000,\"31\":1554422400000,\"32\":1554422400000,\"33\":1554422400000,\"34\":1554422400000,\"35\":1554422400000,\"36\":1554422400000,\"37\":1554422400000,\"38\":1554422400000,\"39\":1554422400000,\"40\":1554422400000,\"41\":1554422400000,\"42\":1554422400000,\"43\":1554422400000,\"44\":1554422400000,\"45\":1554422400000,\"46\":1554422400000,\"47\":1554422400000,\"48\":1554422400000,\"49\":1554422400000,\"50\":1554422400000,\"51\":1554422400000,\"52\":1554422400000,\"53\":1554422400000,\"54\":1554422400000,\"55\":1554422400000,\"56\":1554422400000,\"57\":1554422400000,\"58\":1554422400000,\"59\":1554422400000},\"frac_nonnull\":{\"0\":0.3359519806,\"1\":0.0100754031,\"2\":0.33587924,\"3\":0.0101693135,\"4\":0.010065547,\"5\":1.0,\"6\":0.3359256663,\"7\":1.0,\"8\":1.0,\"9\":1.0,\"10\":1.0,\"11\":0.3360080974,\"12\":0.0100617053,\"13\":0.0101145605,\"14\":1.0,\"15\":1.0,\"16\":1.0,\"17\":1.0,\"18\":1.0,\"19\":1.0,\"20\":1.0,\"21\":1.0,\"22\":0.0100274088,\"23\":1.0,\"24\":0.3357879805,\"25\":0.0100874023,\"26\":1.0,\"27\":1.0,\"28\":0.3359922733,\"29\":1.0,\"30\":1.0,\"31\":1.0,\"32\":0.335529786,\"33\":0.0100837101,\"34\":0.0101580068,\"35\":1.0,\"36\":1.0,\"37\":1.0,\"38\":1.0,\"39\":1.0,\"40\":1.0,\"41\":1.0,\"42\":1.0,\"43\":1.0,\"44\":1.0,\"45\":1.0,\"46\":1.0,\"47\":0.3357591396,\"48\":1.0,\"49\":1.0,\"50\":1.0,\"51\":0.3358162038,\"52\":1.0,\"53\":1.0,\"54\":1.0,\"55\":0.3357780895,\"56\":1.0,\"57\":1.0,\"58\":0.0101857242,\"59\":1.0},\"mean\":{\"0\":73.8490497912,\"1\":0.0395746002,\"2\":73.7163170994,\"3\":0.0400841733,\"4\":0.0399349094,\"5\":0.9337243921,\"6\":74.1158805483,\"7\":22.5333598816,\"8\":0.9342093343,\"9\":607.8012117735,\"10\":37306.2448075371,\"11\":73.8548479185,\"12\":0.0387377787,\"13\":0.039402907,\"14\":0.9341253134,\"15\":37541.510750113,\"16\":0.9341012751,\"17\":0.9343170274,\"18\":22.7236841549,\"19\":612.5115088319,\"20\":37453.7986767275,\"21\":607.7000350728,\"22\":0.039057634,\"23\":0.9338761835,\"24\":74.0209845942,\"25\":0.0394352568,\"26\":0.933763894,\"27\":22.5101367044,\"28\":73.1802814333,\"29\":0.9341824444,\"30\":606.3293588519,\"31\":37339.4449841197,\"32\":74.004243316,\"33\":0.040198776,\"34\":0.0399782642,\"35\":22.6808878091,\"36\":0.9333171905,\"37\":22.5344108868,\"38\":0.9339123198,\"39\":22.4424186541,\"40\":22.6045777213,\"41\":610.3772236987,\"42\":36990.0760880729,\"43\":22.7703428112,\"44\":608.1943519321,\"45\":22.6334302183,\"46\":37252.6017938087,\"47\":74.0518529404,\"48\":611.7212418434,\"49\":37497.9314738985,\"50\":22.6612905513,\"51\":73.7730038896,\"52\":608.8126187084,\"53\":37411.8084913019,\"54\":37583.2733964863,\"55\":73.9887454788,\"56\":614.071184051,\"57\":608.8828044048,\"58\":0.0393217324,\"59\":37340.3243662069},\"metric_name\":{\"0\":\"is_live_watch_time_given_iphone\",\"1\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"2\":\"is_live_watch_time_given_iphone\",\"3\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"4\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"5\":\"sbl_iphone_is_live__psr_1_start\",\"6\":\"is_live_watch_time_given_iphone\",\"7\":\"video:encoding:iphone_live_playback_mos_loss\",\"8\":\"sbl_iphone_is_live__psr_1_start\",\"9\":\"video:sbl_iphone_is_live__smtbr\",\"10\":\"wilde_scroll_frame_drops_per_minute\",\"11\":\"is_live_watch_time_given_iphone\",\"12\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"13\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"14\":\"sbl_iphone_is_live__psr_1_start\",\"15\":\"wilde_scroll_frame_drops_per_minute\",\"16\":\"sbl_iphone_is_live__psr_1_start\",\"17\":\"sbl_iphone_is_live__psr_1_start\",\"18\":\"video:encoding:iphone_live_playback_mos_loss\",\"19\":\"video:sbl_iphone_is_live__smtbr\",\"20\":\"wilde_scroll_frame_drops_per_minute\",\"21\":\"video:sbl_iphone_is_live__smtbr\",\"22\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"23\":\"sbl_iphone_is_live__psr_1_start\",\"24\":\"is_live_watch_time_given_iphone\",\"25\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"26\":\"sbl_iphone_is_live__psr_1_start\",\"27\":\"video:encoding:iphone_live_playback_mos_loss\",\"28\":\"is_live_watch_time_given_iphone\",\"29\":\"sbl_iphone_is_live__psr_1_start\",\"30\":\"video:sbl_iphone_is_live__smtbr\",\"31\":\"wilde_scroll_frame_drops_per_minute\",\"32\":\"is_live_watch_time_given_iphone\",\"33\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"34\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"35\":\"video:encoding:iphone_live_playback_mos_loss\",\"36\":\"sbl_iphone_is_live__psr_1_start\",\"37\":\"video:encoding:iphone_live_playback_mos_loss\",\"38\":\"sbl_iphone_is_live__psr_1_start\",\"39\":\"video:encoding:iphone_live_playback_mos_loss\",\"40\":\"video:encoding:iphone_live_playback_mos_loss\",\"41\":\"video:sbl_iphone_is_live__smtbr\",\"42\":\"wilde_scroll_frame_drops_per_minute\",\"43\":\"video:encoding:iphone_live_playback_mos_loss\",\"44\":\"video:sbl_iphone_is_live__smtbr\",\"45\":\"video:encoding:iphone_live_playback_mos_loss\",\"46\":\"wilde_scroll_frame_drops_per_minute\",\"47\":\"is_live_watch_time_given_iphone\",\"48\":\"video:sbl_iphone_is_live__smtbr\",\"49\":\"wilde_scroll_frame_drops_per_minute\",\"50\":\"video:encoding:iphone_live_playback_mos_loss\",\"51\":\"is_live_watch_time_given_iphone\",\"52\":\"video:sbl_iphone_is_live__smtbr\",\"53\":\"wilde_scroll_frame_drops_per_minute\",\"54\":\"wilde_scroll_frame_drops_per_minute\",\"55\":\"is_live_watch_time_given_iphone\",\"56\":\"video:sbl_iphone_is_live__smtbr\",\"57\":\"video:sbl_iphone_is_live__smtbr\",\"58\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"59\":\"wilde_scroll_frame_drops_per_minute\"},\"n\":{\"0\":3279174,\"1\":3279174,\"2\":13134810,\"3\":13134810,\"4\":13147820,\"5\":13134810,\"6\":3278514,\"7\":13134810,\"8\":13146969,\"9\":13134810,\"10\":13134810,\"11\":13136112,\"12\":13136143,\"13\":13136112,\"14\":3279174,\"15\":3279174,\"16\":13147820,\"17\":13136112,\"18\":13136112,\"19\":13136112,\"20\":13136112,\"21\":3277861,\"22\":3278514,\"23\":13136143,\"24\":26280899,\"25\":26280899,\"26\":26280899,\"27\":26280899,\"28\":3279001,\"29\":3279001,\"30\":26280899,\"31\":26280899,\"32\":3277861,\"33\":3277861,\"34\":13146969,\"35\":13146969,\"36\":3277861,\"37\":3277861,\"38\":3278514,\"39\":3278514,\"40\":13147820,\"41\":3278514,\"42\":3278514,\"43\":3279001,\"44\":3279001,\"45\":13136143,\"46\":3279001,\"47\":13146969,\"48\":13146969,\"49\":13146969,\"50\":3279174,\"51\":13147820,\"52\":13147820,\"53\":13147820,\"54\":3277861,\"55\":13136143,\"56\":3279174,\"57\":13136143,\"58\":3279001,\"59\":13136143},\"random_split\":{\"0\":-1,\"1\":-1,\"2\":-1,\"3\":-1,\"4\":-1,\"5\":-1,\"6\":-1,\"7\":-1,\"8\":-1,\"9\":-1,\"10\":-1,\"11\":-1,\"12\":-1,\"13\":-1,\"14\":-1,\"15\":-1,\"16\":-1,\"17\":-1,\"18\":-1,\"19\":-1,\"20\":-1,\"21\":-1,\"22\":-1,\"23\":-1,\"24\":-1,\"25\":-1,\"26\":-1,\"27\":-1,\"28\":-1,\"29\":-1,\"30\":-1,\"31\":-1,\"32\":-1,\"33\":-1,\"34\":-1,\"35\":-1,\"36\":-1,\"37\":-1,\"38\":-1,\"39\":-1,\"40\":-1,\"41\":-1,\"42\":-1,\"43\":-1,\"44\":-1,\"45\":-1,\"46\":-1,\"47\":-1,\"48\":-1,\"49\":-1,\"50\":-1,\"51\":-1,\"52\":-1,\"53\":-1,\"54\":-1,\"55\":-1,\"56\":-1,\"57\":-1,\"58\":-1,\"59\":-1},\"sem\":{\"0\":0.3287346741,\"1\":0.0006729243,\"2\":0.1641446716,\"3\":0.000342542,\"4\":0.0003369562,\"5\":0.000111774,\"6\":0.3299846277,\"7\":0.0314701445,\"8\":0.000108028,\"9\":1.4494954127,\"10\":98.5487947019,\"11\":0.1641425793,\"12\":0.0003285447,\"13\":0.0003325016,\"14\":0.0002208663,\"15\":199.5152979883,\"16\":0.0001104009,\"17\":0.0001078824,\"18\":0.0314029138,\"19\":1.4575770368,\"20\":99.4053194749,\"21\":2.8884970067,\"22\":0.0006527361,\"23\":0.000106309,\"24\":0.1162712337,\"25\":0.0002353783,\"26\":0.0000785772,\"27\":0.0221315509,\"28\":0.3260732308,\"29\":0.0002121053,\"30\":1.0208675102,\"31\":70.014380362,\"32\":0.3295030483,\"33\":0.0006883162,\"34\":0.0003371195,\"35\":0.0313362361,\"36\":0.0002361857,\"37\":0.0626787742,\"38\":0.0002091436,\"39\":0.0633342441,\"40\":0.0316687986,\"41\":2.8961295633,\"42\":195.8748078364,\"43\":0.0635609486,\"44\":2.881845056,\"45\":0.0314309395,\"46\":195.7245872038,\"47\":0.1642406191,\"48\":1.4542715917,\"49\":99.7503037858,\"50\":0.0634754543,\"51\":0.1639330184,\"52\":1.4472184215,\"53\":98.7676287605,\"54\":200.5857727307,\"55\":0.1643771871,\"56\":2.9231672373,\"57\":1.4442422981,\"58\":0.0006663262,\"59\":99.5048896981},\"start_time\":{\"0\":1554249600000,\"1\":1554249600000,\"2\":1554249600000,\"3\":1554249600000,\"4\":1554249600000,\"5\":1554249600000,\"6\":1554249600000,\"7\":1554249600000,\"8\":1554249600000,\"9\":1554249600000,\"10\":1554249600000,\"11\":1554249600000,\"12\":1554249600000,\"13\":1554249600000,\"14\":1554249600000,\"15\":1554249600000,\"16\":1554249600000,\"17\":1554249600000,\"18\":1554249600000,\"19\":1554249600000,\"20\":1554249600000,\"21\":1554249600000,\"22\":1554249600000,\"23\":1554249600000,\"24\":1554249600000,\"25\":1554249600000,\"26\":1554249600000,\"27\":1554249600000,\"28\":1554249600000,\"29\":1554249600000,\"30\":1554249600000,\"31\":1554249600000,\"32\":1554249600000,\"33\":1554249600000,\"34\":1554249600000,\"35\":1554249600000,\"36\":1554249600000,\"37\":1554249600000,\"38\":1554249600000,\"39\":1554249600000,\"40\":1554249600000,\"41\":1554249600000,\"42\":1554249600000,\"43\":1554249600000,\"44\":1554249600000,\"45\":1554249600000,\"46\":1554249600000,\"47\":1554249600000,\"48\":1554249600000,\"49\":1554249600000,\"50\":1554249600000,\"51\":1554249600000,\"52\":1554249600000,\"53\":1554249600000,\"54\":1554249600000,\"55\":1554249600000,\"56\":1554249600000,\"57\":1554249600000,\"58\":1554249600000,\"59\":1554249600000}}"},"description":null}],[1556078905316,{"__type":"Data","df":{"__type":"DataFrame","value":"{\"arm_name\":{\"0\":\"0_22\",\"1\":\"0_22\",\"2\":\"1_3\",\"3\":\"1_3\",\"4\":\"1_1\",\"5\":\"1_3\",\"6\":\"0_35\",\"7\":\"1_3\",\"8\":\"1_0\",\"9\":\"1_3\",\"10\":\"1_3\",\"11\":\"1_4\",\"12\":\"1_2\",\"13\":\"1_4\",\"14\":\"0_22\",\"15\":\"0_22\",\"16\":\"1_1\",\"17\":\"1_4\",\"18\":\"1_4\",\"19\":\"1_4\",\"20\":\"1_4\",\"21\":\"0_25\",\"22\":\"0_35\",\"23\":\"1_2\",\"24\":\"status_quo\",\"25\":\"status_quo\",\"26\":\"status_quo\",\"27\":\"status_quo\",\"28\":\"0_59\",\"29\":\"0_59\",\"30\":\"status_quo\",\"31\":\"status_quo\",\"32\":\"0_25\",\"33\":\"0_25\",\"34\":\"1_0\",\"35\":\"1_0\",\"36\":\"0_25\",\"37\":\"0_25\",\"38\":\"0_35\",\"39\":\"0_35\",\"40\":\"1_1\",\"41\":\"0_35\",\"42\":\"0_35\",\"43\":\"0_59\",\"44\":\"0_59\",\"45\":\"1_2\",\"46\":\"0_59\",\"47\":\"1_0\",\"48\":\"1_0\",\"49\":\"1_0\",\"50\":\"0_22\",\"51\":\"1_1\",\"52\":\"1_1\",\"53\":\"1_1\",\"54\":\"0_25\",\"55\":\"1_2\",\"56\":\"0_22\",\"57\":\"1_2\",\"58\":\"0_59\",\"59\":\"1_2\"},\"trial_index\":{\"0\":1,\"1\":1,\"2\":1,\"3\":1,\"4\":1,\"5\":1,\"6\":1,\"7\":1,\"8\":1,\"9\":1,\"10\":1,\"11\":1,\"12\":1,\"13\":1,\"14\":1,\"15\":1,\"16\":1,\"17\":1,\"18\":1,\"19\":1,\"20\":1,\"21\":1,\"22\":1,\"23\":1,\"24\":1,\"25\":1,\"26\":1,\"27\":1,\"28\":1,\"29\":1,\"30\":1,\"31\":1,\"32\":1,\"33\":1,\"34\":1,\"35\":1,\"36\":1,\"37\":1,\"38\":1,\"39\":1,\"40\":1,\"41\":1,\"42\":1,\"43\":1,\"44\":1,\"45\":1,\"46\":1,\"47\":1,\"48\":1,\"49\":1,\"50\":1,\"51\":1,\"52\":1,\"53\":1,\"54\":1,\"55\":1,\"56\":1,\"57\":1,\"58\":1,\"59\":1},\"end_time\":{\"0\":1554595200000,\"1\":1554595200000,\"2\":1554595200000,\"3\":1554595200000,\"4\":1554595200000,\"5\":1554595200000,\"6\":1554595200000,\"7\":1554595200000,\"8\":1554595200000,\"9\":1554595200000,\"10\":1554595200000,\"11\":1554595200000,\"12\":1554595200000,\"13\":1554595200000,\"14\":1554595200000,\"15\":1554595200000,\"16\":1554595200000,\"17\":1554595200000,\"18\":1554595200000,\"19\":1554595200000,\"20\":1554595200000,\"21\":1554595200000,\"22\":1554595200000,\"23\":1554595200000,\"24\":1554595200000,\"25\":1554595200000,\"26\":1554595200000,\"27\":1554595200000,\"28\":1554595200000,\"29\":1554595200000,\"30\":1554595200000,\"31\":1554595200000,\"32\":1554595200000,\"33\":1554595200000,\"34\":1554595200000,\"35\":1554595200000,\"36\":1554595200000,\"37\":1554595200000,\"38\":1554595200000,\"39\":1554595200000,\"40\":1554595200000,\"41\":1554595200000,\"42\":1554595200000,\"43\":1554595200000,\"44\":1554595200000,\"45\":1554595200000,\"46\":1554595200000,\"47\":1554595200000,\"48\":1554595200000,\"49\":1554595200000,\"50\":1554595200000,\"51\":1554595200000,\"52\":1554595200000,\"53\":1554595200000,\"54\":1554595200000,\"55\":1554595200000,\"56\":1554595200000,\"57\":1554595200000,\"58\":1554595200000,\"59\":1554595200000},\"frac_nonnull\":{\"0\":0.4417603654,\"1\":0.0121402022,\"2\":0.4417391901,\"3\":0.0122199392,\"4\":0.0121342308,\"5\":1.0,\"6\":0.4415914082,\"7\":1.0,\"8\":1.0,\"9\":1.0,\"10\":1.0,\"11\":0.4418676554,\"12\":0.0120965715,\"13\":0.0121739276,\"14\":1.0,\"15\":1.0,\"16\":1.0,\"17\":1.0,\"18\":1.0,\"19\":1.0,\"20\":1.0,\"21\":1.0,\"22\":0.0120408946,\"23\":1.0,\"24\":0.441589599,\"25\":0.0121634103,\"26\":1.0,\"27\":1.0,\"28\":0.441871651,\"29\":1.0,\"30\":1.0,\"31\":1.0,\"32\":0.4413894961,\"33\":0.012152388,\"34\":0.0121956755,\"35\":1.0,\"36\":1.0,\"37\":1.0,\"38\":1.0,\"39\":1.0,\"40\":1.0,\"41\":1.0,\"42\":1.0,\"43\":1.0,\"44\":1.0,\"45\":1.0,\"46\":1.0,\"47\":0.4416284683,\"48\":1.0,\"49\":1.0,\"50\":1.0,\"51\":0.4416105859,\"52\":1.0,\"53\":1.0,\"54\":1.0,\"55\":0.4416425293,\"56\":1.0,\"57\":1.0,\"58\":0.0122686878,\"59\":1.0},\"mean\":{\"0\":145.1528116824,\"1\":0.0509273357,\"2\":145.0491246294,\"3\":0.0516081874,\"4\":0.0516154463,\"5\":0.9373911199,\"6\":145.8843460323,\"7\":22.6710675543,\"8\":0.938127077,\"9\":561.8599254585,\"10\":37210.8405464161,\"11\":145.5688446973,\"12\":0.050096178,\"13\":0.050850853,\"14\":0.937991492,\"15\":37351.0931890173,\"16\":0.9379236054,\"17\":0.9380805085,\"18\":22.9070303767,\"19\":568.546120622,\"20\":37183.2884367717,\"21\":563.6030692645,\"22\":0.0504938951,\"23\":0.937568918,\"24\":145.5605032429,\"25\":0.0509666146,\"26\":0.9374120113,\"27\":22.5921285466,\"28\":144.4885245092,\"29\":0.938124089,\"30\":560.1558298797,\"31\":37175.6710662625,\"32\":145.3468711694,\"33\":0.0519083745,\"34\":0.0516493463,\"35\":22.8254422973,\"36\":0.9372137139,\"37\":22.6855686466,\"38\":0.937534063,\"39\":22.6625440215,\"40\":22.7494038564,\"41\":565.4322041646,\"42\":36937.0524087734,\"43\":22.9532672948,\"44\":566.3308272312,\"45\":22.8070294574,\"46\":37142.4427221455,\"47\":145.5538935803,\"48\":568.2034766986,\"49\":37306.6961043705,\"50\":22.8009878131,\"51\":145.1274951344,\"52\":564.3544946658,\"53\":37252.093785465,\"54\":37134.5439659089,\"55\":145.744176598,\"56\":569.1716372463,\"57\":564.47191512,\"58\":0.0509499086,\"59\":37180.3113022166},\"metric_name\":{\"0\":\"is_live_watch_time_given_iphone\",\"1\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"2\":\"is_live_watch_time_given_iphone\",\"3\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"4\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"5\":\"sbl_iphone_is_live__psr_1_start\",\"6\":\"is_live_watch_time_given_iphone\",\"7\":\"video:encoding:iphone_live_playback_mos_loss\",\"8\":\"sbl_iphone_is_live__psr_1_start\",\"9\":\"video:sbl_iphone_is_live__smtbr\",\"10\":\"wilde_scroll_frame_drops_per_minute\",\"11\":\"is_live_watch_time_given_iphone\",\"12\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"13\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"14\":\"sbl_iphone_is_live__psr_1_start\",\"15\":\"wilde_scroll_frame_drops_per_minute\",\"16\":\"sbl_iphone_is_live__psr_1_start\",\"17\":\"sbl_iphone_is_live__psr_1_start\",\"18\":\"video:encoding:iphone_live_playback_mos_loss\",\"19\":\"video:sbl_iphone_is_live__smtbr\",\"20\":\"wilde_scroll_frame_drops_per_minute\",\"21\":\"video:sbl_iphone_is_live__smtbr\",\"22\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"23\":\"sbl_iphone_is_live__psr_1_start\",\"24\":\"is_live_watch_time_given_iphone\",\"25\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"26\":\"sbl_iphone_is_live__psr_1_start\",\"27\":\"video:encoding:iphone_live_playback_mos_loss\",\"28\":\"is_live_watch_time_given_iphone\",\"29\":\"sbl_iphone_is_live__psr_1_start\",\"30\":\"video:sbl_iphone_is_live__smtbr\",\"31\":\"wilde_scroll_frame_drops_per_minute\",\"32\":\"is_live_watch_time_given_iphone\",\"33\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"34\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"35\":\"video:encoding:iphone_live_playback_mos_loss\",\"36\":\"sbl_iphone_is_live__psr_1_start\",\"37\":\"video:encoding:iphone_live_playback_mos_loss\",\"38\":\"sbl_iphone_is_live__psr_1_start\",\"39\":\"video:encoding:iphone_live_playback_mos_loss\",\"40\":\"video:encoding:iphone_live_playback_mos_loss\",\"41\":\"video:sbl_iphone_is_live__smtbr\",\"42\":\"wilde_scroll_frame_drops_per_minute\",\"43\":\"video:encoding:iphone_live_playback_mos_loss\",\"44\":\"video:sbl_iphone_is_live__smtbr\",\"45\":\"video:encoding:iphone_live_playback_mos_loss\",\"46\":\"wilde_scroll_frame_drops_per_minute\",\"47\":\"is_live_watch_time_given_iphone\",\"48\":\"video:sbl_iphone_is_live__smtbr\",\"49\":\"wilde_scroll_frame_drops_per_minute\",\"50\":\"video:encoding:iphone_live_playback_mos_loss\",\"51\":\"is_live_watch_time_given_iphone\",\"52\":\"video:sbl_iphone_is_live__smtbr\",\"53\":\"wilde_scroll_frame_drops_per_minute\",\"54\":\"wilde_scroll_frame_drops_per_minute\",\"55\":\"is_live_watch_time_given_iphone\",\"56\":\"video:sbl_iphone_is_live__smtbr\",\"57\":\"video:sbl_iphone_is_live__smtbr\",\"58\":\"performance:foreground_app_death:ios:all_fads_by_exception\",\"59\":\"wilde_scroll_frame_drops_per_minute\"},\"n\":{\"0\":3605706,\"1\":3605706,\"2\":14440170,\"3\":14440170,\"4\":14455634,\"5\":14440170,\"6\":3603802,\"7\":14440170,\"8\":14453484,\"9\":14440170,\"10\":14440170,\"11\":14441272,\"12\":14443018,\"13\":14441272,\"14\":3605706,\"15\":3605706,\"16\":14455634,\"17\":14441272,\"18\":14441272,\"19\":14441272,\"20\":14441272,\"21\":3603407,\"22\":3603802,\"23\":14443018,\"24\":28891815,\"25\":28891815,\"26\":28891815,\"27\":28891815,\"28\":3605031,\"29\":3605031,\"30\":28891815,\"31\":28891815,\"32\":3603407,\"33\":3603407,\"34\":14453484,\"35\":14453484,\"36\":3603407,\"37\":3603407,\"38\":3603802,\"39\":3603802,\"40\":14455634,\"41\":3603802,\"42\":3603802,\"43\":3605031,\"44\":3605031,\"45\":14443018,\"46\":3605031,\"47\":14453484,\"48\":14453484,\"49\":14453484,\"50\":3605706,\"51\":14455634,\"52\":14455634,\"53\":14455634,\"54\":3603407,\"55\":14443018,\"56\":3605706,\"57\":14443018,\"58\":3605031,\"59\":14443018},\"random_split\":{\"0\":-1,\"1\":-1,\"2\":-1,\"3\":-1,\"4\":-1,\"5\":-1,\"6\":-1,\"7\":-1,\"8\":-1,\"9\":-1,\"10\":-1,\"11\":-1,\"12\":-1,\"13\":-1,\"14\":-1,\"15\":-1,\"16\":-1,\"17\":-1,\"18\":-1,\"19\":-1,\"20\":-1,\"21\":-1,\"22\":-1,\"23\":-1,\"24\":-1,\"25\":-1,\"26\":-1,\"27\":-1,\"28\":-1,\"29\":-1,\"30\":-1,\"31\":-1,\"32\":-1,\"33\":-1,\"34\":-1,\"35\":-1,\"36\":-1,\"37\":-1,\"38\":-1,\"39\":-1,\"40\":-1,\"41\":-1,\"42\":-1,\"43\":-1,\"44\":-1,\"45\":-1,\"46\":-1,\"47\":-1,\"48\":-1,\"49\":-1,\"50\":-1,\"51\":-1,\"52\":-1,\"53\":-1,\"54\":-1,\"55\":-1,\"56\":-1,\"57\":-1,\"58\":-1,\"59\":-1},\"sem\":{\"0\":0.5522326723,\"1\":0.0008205924,\"2\":0.2754643557,\"3\":0.0004174499,\"4\":0.0004142322,\"5\":0.0000934187,\"6\":0.5536942407,\"7\":0.0239291504,\"8\":0.0000899117,\"9\":1.0032205854,\"10\":80.6581330182,\"11\":0.2760774732,\"12\":0.0004043822,\"13\":0.000408969,\"14\":0.0001846662,\"15\":161.3262179174,\"16\":0.000093144,\"17\":0.0000909971,\"18\":0.0238407585,\"19\":1.0130549657,\"20\":80.3925581473,\"21\":2.0236902763,\"22\":0.0008024614,\"23\":0.0000912139,\"24\":0.1952650996,\"25\":0.0002899054,\"26\":0.0000663178,\"27\":0.0168000268,\"28\":0.5479736003,\"29\":0.0001790632,\"30\":0.7059923877,\"31\":57.0038557644,\"32\":0.5522522672,\"33\":0.0008474374,\"34\":0.0004143167,\"35\":0.0239743403,\"36\":0.0001920637,\"37\":0.0476577306,\"38\":0.0001776924,\"39\":0.0481889592,\"40\":0.0239727568,\"41\":2.0161456094,\"42\":158.5242332191,\"43\":0.0480834468,\"44\":2.003077117,\"45\":0.0238411891,\"46\":159.6334943604,\"47\":0.2753827993,\"48\":1.0123357842,\"49\":80.9419247578,\"50\":0.0481458475,\"51\":0.2750202398,\"52\":1.0070202077,\"53\":80.7478880097,\"54\":162.096639186,\"55\":0.2761737148,\"56\":2.0290951678,\"57\":1.0023388639,\"58\":0.0008157563,\"59\":80.6562480943},\"start_time\":{\"0\":1554249600000,\"1\":1554249600000,\"2\":1554249600000,\"3\":1554249600000,\"4\":1554249600000,\"5\":1554249600000,\"6\":1554249600000,\"7\":1554249600000,\"8\":1554249600000,\"9\":1554249600000,\"10\":1554249600000,\"11\":1554249600000,\"12\":1554249600000,\"13\":1554249600000,\"14\":1554249600000,\"15\":1554249600000,\"16\":1554249600000,\"17\":1554249600000,\"18\":1554249600000,\"19\":1554249600000,\"20\":1554249600000,\"21\":1554249600000,\"22\":1554249600000,\"23\":1554249600000,\"24\":1554249600000,\"25\":1554249600000,\"26\":1554249600000,\"27\":1554249600000,\"28\":1554249600000,\"29\":1554249600000,\"30\":1554249600000,\"31\":1554249600000,\"32\":1554249600000,\"33\":1554249600000,\"34\":1554249600000,\"35\":1554249600000,\"36\":1554249600000,\"37\":1554249600000,\"38\":1554249600000,\"39\":1554249600000,\"40\":1554249600000,\"41\":1554249600000,\"42\":1554249600000,\"43\":1554249600000,\"44\":1554249600000,\"45\":1554249600000,\"46\":1554249600000,\"47\":1554249600000,\"48\":1554249600000,\"49\":1554249600000,\"50\":1554249600000,\"51\":1554249600000,\"52\":1554249600000,\"53\":1554249600000,\"54\":1554249600000,\"55\":1554249600000,\"56\":1554249600000,\"57\":1554249600000,\"58\":1554249600000,\"59\":1554249600000}}"},"description":null}]]}}} diff --git a/tutorials/human_in_the_loop/human_in_the_loop.ipynb b/tutorials/human_in_the_loop/human_in_the_loop.ipynb deleted file mode 100644 index f9a221b4ffa..00000000000 --- a/tutorials/human_in_the_loop/human_in_the_loop.ipynb +++ /dev/null @@ -1,628 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - } - }, - "source": [ - "# Using Ax for Human-in-the-loop Experimentation¶" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "While Ax can be used in as a fully automated service, generating and deploying candidates Ax can be also used in a trial-by-trial fashion, allowing for human oversight. \n", - "\n", - "Typically, human intervention in Ax is necessary when there are clear tradeoffs between multiple metrics of interest. Condensing multiple outcomes of interest into a single scalar quantity can be really challenging. Instead, it can be useful to specify an objective and constraints, and tweak these based on the information from the experiment. \n", - "\n", - "To facilitate this, Ax provides the following key features:\n", - "\n", - "1. Constrained optimization\n", - "2. Interfaces for easily modifying optimization goals\n", - "3. Utilities for visualizing and deploying new trials composed of multiple optimizations. \n", - "\n", - "\n", - "In this tutorial, we'll demonstrate how Ax enables users to explore these tradeoffs. With an understanding of the tradeoffs present in our data, we'll then make use of the constrained optimization utilities to generate candidates from multiple different optimization objectives, and create a conglomerate batch, with all of these candidates in together in one trial. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Experiment Setup\n", - "\n", - "For this tutorial, we will assume our experiment has already been created." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import sys\n", - "in_colab = 'google.colab' in sys.modules\n", - "if in_colab:\n", - " %pip install ax-platform" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import os\n", - "\n", - "from ax import (\n", - " Data,\n", - " Metric,\n", - " OptimizationConfig,\n", - " Objective,\n", - " OutcomeConstraint,\n", - " ComparisonOp,\n", - " json_load,\n", - ")\n", - "from ax.modelbridge.cross_validation import cross_validate\n", - "from ax.modelbridge.registry import Generators\n", - "from ax.plot.diagnostic import tile_cross_validation\n", - "from ax.plot.scatter import plot_multiple_metrics, tile_fitted\n", - "from ax.utils.notebook.plotting import render, init_notebook_plotting\n", - "\n", - "import pandas as pd\n", - "import plotly.io as pio\n", - "\n", - "init_notebook_plotting()\n", - "if in_colab:\n", - " pio.renderers.default = \"colab\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "NOTE: The path below assumes the tutorial is being run either from the root directory of the Ax package or from the `human_in_the_loop` directory that this tutorial lives in. This is needed since the jupyter notebooks may change active directory during runtime, making it tricky to find the file in a consistent way." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "curr_dir = os.getcwd()\n", - "if \"human_in_the_loop\" not in curr_dir:\n", - " curr_dir = os.path.join(curr_dir, \"tutorials\", \"human_in_the_loop\")\n", - "experiment = json_load.load_experiment(os.path.join(curr_dir, \"hitl_exp.json\"))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Initial Sobol Trial" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Bayesian Optimization experiments almost always begin with a set of random points. In this experiment, these points were chosen via a Sobol sequence, accessible via the `Adapter` factory.\n", - "\n", - "A collection of points run and analyzed together form a `BatchTrial`. A `Trial` object provides metadata pertaining to the deployment of these points, including details such as when they were deployed, and the current status of their experiment. \n", - "\n", - "Here, we see an initial experiment has finished running (COMPLETED status)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "experiment.trials[0]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "experiment.trials[0].time_created" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Number of arms in first experiment, including status_quo\n", - "len(experiment.trials[0].arms)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "# Sample arm configuration\n", - "experiment.trials[0].arms[0]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Experiment Analysis\n", - "\n", - "**Optimization Config**\n", - "\n", - "An important construct for analyzing an experiment is an OptimizationConfig. An OptimizationConfig contains an objective, and outcome constraints. Experiment's can have a default OptimizationConfig, but models can also take an OptimizationConfig as input independent of the default.\n", - "\n", - "**Objective:** A metric to optimize, along with a direction to optimize (default: maximize)\n", - "\n", - "**Outcome Constraint:** A metric to constrain, along with a constraint direction (<= or >=), as well as a bound. \n", - "\n", - "Let's start with a simple OptimizationConfig. By default, our objective metric will be maximized, but can be minimized by setting the `minimize` flag. Our outcome constraint will, by default, be evaluated as a relative percentage change. This percentage change is computed relative to the experiment's status quo arm. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "experiment.status_quo" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "objective_metric = Metric(name=\"metric_1\")\n", - "constraint_metric = Metric(name=\"metric_2\")\n", - "\n", - "experiment.optimization_config = OptimizationConfig(\n", - " objective=Objective(objective_metric, minimize=False),\n", - " outcome_constraints=[\n", - " OutcomeConstraint(metric=constraint_metric, op=ComparisonOp.LEQ, bound=5),\n", - " ],\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Data**\n", - "\n", - "Another critical piece of analysis is data itself! Ax data follows a standard format, shown below. This format is imposed upon the underlying data structure, which is a Pandas DataFrame. \n", - "\n", - "A key set of fields are required for all data, for use with Ax models. \n", - "\n", - "It's a good idea to double check our data before fitting models -- let's make sure all of our expected metrics and arms are present." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "data = Data(pd.read_json(os.path.join(curr_dir, \"hitl_data.json\")))\n", - "data.df.head()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "data.df[\"arm_name\"].unique()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "data.df[\"metric_name\"].unique()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Search Space** \n", - "\n", - "The final component necessary for human-in-the-loop optimization is a SearchSpace. A SearchSpace defines the feasible region for our parameters, as well as their types.\n", - "\n", - "Here, we have both parameters and a set of constraints on those parameters. \n", - "\n", - "Without a SearchSpace, our models are unable to generate new candidates. By default, the models will read the search space off of the experiment, when they are told to generate candidates. SearchSpaces can also be specified by the user at this time. Sometimes, the first round of an experiment is too restrictive--perhaps the experimenter was too cautious when defining their initial ranges for exploration! In this case, it can be useful to generate candidates from new, expanded search spaces, beyond that specified in the experiment. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "experiment.search_space.parameters" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "experiment.search_space.parameter_constraints" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Model Fit\n", - "\n", - "Fitting a Modular BoTorch Model will allow us to predict new candidates based on our first Sobol batch. \n", - "Here, we make use of the default settings for `BOTORCH_MODULAR` defined in the Adapter registry (uses BoTorch's `SingleTaskGP` and `qLogNoisyExpectedImprovement` by default for single objective optimization)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "gp = Generators.BOTORCH_MODULAR(\n", - " search_space=experiment.search_space,\n", - " experiment=experiment,\n", - " data=data,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can validate the model fits using cross validation, shown below for each metric of interest. Here, our model fits leave something to be desired--the tail ends of each metric are hard to model. In this situation, there are three potential actions to take: \n", - "\n", - "1. Increase the amount of traffic in this experiment, to reduce the measurement noise.\n", - "2. Increase the number of points run in the random batch, to assist the GP in covering the space.\n", - "3. Reduce the number of parameters tuned at one time. \n", - "\n", - "However, away from the tail effects, the fits do show a strong correlations, so we will proceed with candidate generation. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "cv_result = cross_validate(gp)\n", - "render(tile_cross_validation(cv_result))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The parameters from the initial batch have a wide range of effects on the metrics of interest, as shown from the outcomes from our fitted GP model. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "render(tile_fitted(gp, rel=True))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "METRIC_X_AXIS = \"metric_1\"\n", - "METRIC_Y_AXIS = \"metric_2\"\n", - "\n", - "render(\n", - " plot_multiple_metrics(\n", - " gp,\n", - " metric_x=METRIC_X_AXIS,\n", - " metric_y=METRIC_Y_AXIS,\n", - " )\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Candidate Generation\n", - "\n", - "With our fitted GPEI model, we can optimize EI (Expected Improvement) based on any optimization config.\n", - "We can start with our initial optimization config, and aim to simply maximize the playback smoothness, without worrying about the constraint on quality. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "unconstrained = gp.gen(\n", - " n=3,\n", - " optimization_config=OptimizationConfig(\n", - " objective=Objective(objective_metric, minimize=False),\n", - " ),\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's plot the tradeoffs again, but with our new arms. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "render(\n", - " plot_multiple_metrics(\n", - " gp,\n", - " metric_x=METRIC_X_AXIS,\n", - " metric_y=METRIC_Y_AXIS,\n", - " generator_runs_dict={\n", - " \"unconstrained\": unconstrained,\n", - " },\n", - " )\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Change Objectives" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "With our unconstrained optimization, we generate some candidates which are pretty promising with respect to our objective! However, there is a clear regression in our constraint metric, above our initial 5% desired constraint. Let's add that constraint back in. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "constraint_5 = OutcomeConstraint(metric=constraint_metric, op=ComparisonOp.LEQ, bound=5)\n", - "constraint_5_results = gp.gen(\n", - " n=3,\n", - " optimization_config=OptimizationConfig(\n", - " objective=Objective(objective_metric, minimize=False), outcome_constraints=[constraint_5]\n", - " ),\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "This yields a *GeneratorRun*, which contains points according to our specified optimization config, along with metadata about how the points were generated. Let's plot the tradeoffs in these new points. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "from ax.plot.scatter import plot_multiple_metrics\n", - "\n", - "render(\n", - " plot_multiple_metrics(\n", - " gp,\n", - " metric_x=METRIC_X_AXIS,\n", - " metric_y=METRIC_Y_AXIS,\n", - " generator_runs_dict={\"constraint_5\": constraint_5_results},\n", - " )\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "It is important to note that the treatment of constraints in GP EI is probabilistic. The acquisition function weights our objective by the probability that each constraint is feasible. Thus, we may allow points with a very small probability of violating the constraint to be generated, as long as the chance of the points increasing our objective is high enough. \n", - "\n", - "You can see above that the point estimate for each point is significantly below a 5% increase in the constraint metric, but that there is uncertainty in our prediction, and the tail probabilities do include probabilities of small regressions beyond 5%. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "constraint_1 = OutcomeConstraint(metric=constraint_metric, op=ComparisonOp.LEQ, bound=1)\n", - "constraint_1_results = gp.gen(\n", - " n=3,\n", - " optimization_config=OptimizationConfig(\n", - " objective=Objective(objective_metric, minimize=False),\n", - " outcome_constraints=[constraint_1],\n", - " ),\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "scrolled": true - }, - "outputs": [], - "source": [ - "render(\n", - " plot_multiple_metrics(\n", - " gp,\n", - " metric_x=METRIC_X_AXIS,\n", - " metric_y=METRIC_Y_AXIS,\n", - " generator_runs_dict={\n", - " \"constraint_1\": constraint_1_results,\n", - " },\n", - " )\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Finally, let's view all three sets of candidates together. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "render(\n", - " plot_multiple_metrics(\n", - " gp,\n", - " metric_x=METRIC_X_AXIS,\n", - " metric_y=METRIC_Y_AXIS,\n", - " generator_runs_dict={\n", - " \"unconstrained\": unconstrained,\n", - " \"loose_constraint\": constraint_5_results,\n", - " \"tight_constraint\": constraint_1_results,\n", - " },\n", - " )\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Creating a New Trial\n", - "\n", - "Having done the analysis and candidate generation for three different optimization configs, we can easily create a new `BatchTrial` which combines the candidates from these three different optimizations. Each set of candidates looks promising -- the point estimates are higher along both metric values than in the previous batch. However, there is still a good bit of uncertainty in our predictions. It is hard to choose between the different constraint settings without reducing this noise, so we choose to run a new trial with all three constraint settings. However, we're generally convinced that the tight constraint is too conservative. We'd still like to reduce our uncertainty in that region, but we'll only take one arm from that set." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# We can add entire generator runs, when constructing a new trial.\n", - "trial = (\n", - " experiment.new_batch_trial()\n", - " .add_generator_run(unconstrained)\n", - " .add_generator_run(constraint_5_results)\n", - ")\n", - "\n", - "# Or, we can hand-pick arms.\n", - "trial.add_arm(constraint_1_results.arms[0])" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The arms are combined into a single trial, along with the `status_quo` arm. Their generator can be accessed from the trial as well. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "experiment.trials[1].arms" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The original `GeneratorRuns` can be accessed from within the trial as well. This is useful for later analyses, allowing introspection of the `OptimizationConfig` used for generation (as well as other information, e.g. `SearchSpace` used for generation)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "experiment.trials[1]._generator_run_structs" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here, we can see the unconstrained set-up used for our first set of candidates. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "experiment.trials[1]._generator_run_structs[0].generator_run.optimization_config" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.16" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/tutorials/modular_botax/modular_botax.ipynb b/tutorials/modular_botax/modular_botax.ipynb deleted file mode 100644 index a9014bc8898..00000000000 --- a/tutorials/modular_botax/modular_botax.ipynb +++ /dev/null @@ -1,1471 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": null, - "id": "dc0b0d48", - "metadata": {}, - "outputs": [], - "source": [ - "import sys\n", - "import plotly.io as pio\n", - "if 'google.colab' in sys.modules:\n", - " pio.renderers.default = \"colab\"\n", - " %pip install ax-platform" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "eda150e5", - "metadata": { - "collapsed": false, - "customOutput": null, - "executionStartTime": 1730916291451, - "executionStopTime": 1730916298337, - "id": "about-preview", - "isAgentGenerated": false, - "jupyter": { - "outputs_hidden": false - }, - "language": "python", - "metadata": { - "originalKey": "cca773d8-5e94-4b5a-ae54-22295be8936a" - }, - "originalKey": "f4e8ae18-2aa3-4943-a15a-29851889445c", - "outputsInitialized": true, - "requestMsgId": "f4e8ae18-2aa3-4943-a15a-29851889445c", - "serverExecutionDuration": 4531.2523420434 - }, - "outputs": [], - "source": [ - "from typing import Any, Dict, Optional, Tuple, Type\n", - "\n", - "from ax.modelbridge.registry import Generators\n", - "\n", - "# Ax data tranformation layer\n", - "from ax.models.torch.botorch_modular.acquisition import Acquisition\n", - "\n", - "# Ax wrappers for BoTorch components\n", - "from ax.models.torch.botorch_modular.model import BoTorchGenerator\n", - "from ax.models.torch.botorch_modular.surrogate import Surrogate, SurrogateSpec\n", - "from ax.models.torch.botorch_modular.utils import ModelConfig\n", - "\n", - "# Experiment examination utilities\n", - "from ax.service.utils.report_utils import exp_to_df\n", - "\n", - "# Test Ax objects\n", - "from ax.utils.testing.core_stubs import (\n", - " get_branin_data,\n", - " get_branin_data_multi_objective,\n", - " get_branin_experiment,\n", - " get_branin_experiment_with_multi_objective,\n", - ")\n", - "from botorch.acquisition.logei import (\n", - " qLogExpectedImprovement,\n", - " qLogNoisyExpectedImprovement,\n", - ")\n", - "from botorch.models.gp_regression import SingleTaskGP\n", - "\n", - "# BoTorch components\n", - "from botorch.models.model import Model\n", - "from gpytorch.mlls.exact_marginal_log_likelihood import ExactMarginalLogLikelihood" - ] - }, - { - "cell_type": "markdown", - "id": "d6f55f44", - "metadata": { - "id": "northern-affairs", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "originalKey": "58ea5ebf-ff3a-40b4-8be3-1b85c99d1c4a" - }, - "originalKey": "c9a665ca-497e-4d7c-bbb5-1b9f8d1d311c", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "# Setup and Usage of BoTorch Models in Ax\n", - "\n", - "Ax provides a set of flexible wrapper abstractions to mix-and-match BoTorch components like `Model` and `AcquisitionFunction` and combine them into a single `Generator` object in Ax. The wrapper abstractions: `Surrogate`, `Acquisition`, and `BoTorchGenerator` – are located in `ax/models/torch/botorch_modular` directory and aim to encapsulate boilerplate code that interfaces between Ax and BoTorch. This functionality is in beta-release and still evolving.\n", - "\n", - "This tutorial walks through setting up a custom combination of BoTorch components in Ax in following steps:\n", - "\n", - "1. **Quick-start example of `BoTorchGenerator` use**\n", - "1. **`BoTorchGenerator` = `Surrogate` + `Acquisition` (overview)**\n", - " 1. Example with minimal options that uses the defaults\n", - " 2. Example showing all possible options\n", - " 3. Surrogate and Acquisition Q&A\n", - "2. **I know which Botorch Model and AcquisitionFunction I'd like to combine in Ax. How do set this up?**\n", - " 1. Making a `Surrogate` from BoTorch `Model`\n", - " 2. Using an arbitrary BoTorch `AcquisitionFunction` in Ax\n", - "3. **Using `Generators.BOTORCH_MODULAR`** (convenience wrapper that enables storage and resumability)\n", - "4. **Utilizing `BoTorchGenerator` in generation strategies** (abstraction that allows to chain models together and use them in Ax Service API etc.)\n", - " 1. Specifying `pending_observations` to avoid the model re-suggesting points that are part of `RUNNING` or `ABANDONED` trials.\n", - "5. **Customizing a `Surrogate` or `Acquisition`** (for cases where existing subcomponent classes are not sufficient)" - ] - }, - { - "cell_type": "markdown", - "id": "835d6cf9", - "metadata": { - "id": "pending-support", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "originalKey": "c06d1b5c-067d-4618-977e-c8269a98bd0a" - }, - "originalKey": "4706d02e-6b3f-4161-9e08-f5a31328b1d1", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "## 1. Quick-start example\n", - "\n", - "Here we set up a `BoTorchGenerator` with `SingleTaskGP` with `qLogNoisyExpectedImprovement`, one of the most popular combinations in Ax:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "6a2d738c", - "metadata": { - "collapsed": false, - "customOutput": null, - "executionStartTime": 1730916294801, - "executionStopTime": 1730916298389, - "id": "parental-sending", - "isAgentGenerated": false, - "jupyter": { - "outputs_hidden": false - }, - "language": "python", - "metadata": { - "originalKey": "72934cf2-4ecf-483a-93bd-4df88b19a7b8" - }, - "originalKey": "20f25ded-5aae-47ee-955e-a2d5a2a1fe09", - "outputsInitialized": true, - "requestMsgId": "20f25ded-5aae-47ee-955e-a2d5a2a1fe09", - "serverExecutionDuration": 22.605526028201 - }, - "outputs": [], - "source": [ - "experiment = get_branin_experiment(with_trial=True)\n", - "data = get_branin_data(trials=[experiment.trials[0]])" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b60e1c29", - "metadata": { - "collapsed": false, - "executionStartTime": 1730916295849, - "executionStopTime": 1730916299900, - "id": "rough-somerset", - "isAgentGenerated": false, - "jupyter": { - "outputs_hidden": false - }, - "language": "python", - "metadata": { - "originalKey": "e571212c-7872-4ebc-b646-8dad8d4266fd" - }, - "originalKey": "c0806cce-a1d3-41b8-96fc-678aa3c9dd92", - "outputsInitialized": true, - "requestMsgId": "c0806cce-a1d3-41b8-96fc-678aa3c9dd92", - "serverExecutionDuration": 852.73489891551 - }, - "outputs": [], - "source": [ - "# `Generators` automatically selects a model + model bridge combination.\n", - "# For `BOTORCH_MODULAR`, it will select `BoTorchModel` and `TorchModelBridge`.\n", - "adapter_with_GPEI = Generators.BOTORCH_MODULAR(\n", - " experiment=experiment,\n", - " data=data,\n", - " surrogate_spec=SurrogateSpec(\n", - " model_configs=[ModelConfig(botorch_model_class=SingleTaskGP)]\n", - " ), # Optional, will use default if unspecified\n", - " botorch_acqf_class=qLogNoisyExpectedImprovement, # Optional, will use default if unspecified\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "154ef580", - "metadata": { - "id": "hairy-wiring", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "originalKey": "fba91372-7aa6-456d-a22b-78ab30c26cd8" - }, - "originalKey": "46f5c2c7-400d-4d8d-b0b9-a241657b173f", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "Now we can use this model to generate candidates (`gen`), predict outcome at a point (`predict`), or evaluate acquisition function value at a given point (`evaluate_acquisition_function`)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "72dee941", - "metadata": { - "collapsed": false, - "executionStartTime": 1730916299852, - "executionStopTime": 1730916300305, - "id": "consecutive-summary", - "isAgentGenerated": false, - "jupyter": { - "outputs_hidden": false - }, - "language": "python", - "metadata": { - "originalKey": "59582fc6-8089-4320-864e-d98ee271d4f7" - }, - "originalKey": "f64e9d2e-bfd4-47da-8292-dbe7e70cbe1f", - "outputsInitialized": true, - "requestMsgId": "f64e9d2e-bfd4-47da-8292-dbe7e70cbe1f", - "serverExecutionDuration": 233.20194100961 - }, - "outputs": [], - "source": [ - "generator_run = adapter_with_GPEI.gen(n=1)\n", - "generator_run.arms[0]" - ] - }, - { - "cell_type": "markdown", - "id": "b0096e71", - "metadata": { - "id": "diverse-richards", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "originalKey": "8cfe0fa9-8cce-4718-ba43-e8a63744d626" - }, - "originalKey": "804bac30-db07-4444-98a2-7a5f05007495", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "-----\n", - "Before you read the rest of this tutorial:\n", - "\n", - "- We use ['Generator'](https://ax.dev/docs/glossary.html#model) to refer to an optimization setup capable of producing candidate points for optimization (and often capable of being fit to data, with exception for quasi-random generators). See [Generators documentation page](https://ax.dev/docs/models.html) for more information.\n", - "- Learn about `Adapter` in Ax, as users should rarely be interacting with a `Generator` object directly (more about Adapter, a data transformation layer in Ax, [here](https://ax.dev/docs/models.html#deeper-dive-organization-of-the-modeling-stack))." - ] - }, - { - "cell_type": "markdown", - "id": "e3fc3685", - "metadata": { - "id": "grand-committee", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "originalKey": "7037fd14-bcfe-44f9-b915-c23915d2bda9" - }, - "originalKey": "31b54ce5-2590-4617-b10c-d24ed3cce51d", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "## 2. BoTorchGenerator = Surrogate + Acquisition\n", - "\n", - "A `BoTorchGenerator` in Ax consists of two main subcomponents: a surrogate model and an acquisition function. A surrogate model is represented as an instance of Ax’s `Surrogate` class, which is a wrapper around BoTorch's `Model` class. The Surrogate is defined by a `SurrogateSpec`. The acquisition function is represented as an instance of Ax’s `Acquisition` class, a wrapper around BoTorch's `AcquisitionFunction` class." - ] - }, - { - "cell_type": "markdown", - "id": "2a3f2ed1", - "metadata": { - "id": "thousand-blanket", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "originalKey": "08b12c6c-14da-4342-95bd-f607a131ce9d" - }, - "originalKey": "4a4e006e-07fa-4d63-8b9a-31b67075e40e", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "### 2A. Example that uses defaults and requires no options\n", - "\n", - "`BoTorchGenerator` does not always require surrogate and acquisition specification. If instantiated without one or both components specified, defaults are selected based on properties of experiment and data (see Appendix 2 for auto-selection logic)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "65469897", - "metadata": { - "collapsed": false, - "executionStartTime": 1730916302730, - "executionStopTime": 1730916304031, - "id": "changing-xerox", - "isAgentGenerated": false, - "jupyter": { - "outputs_hidden": false - }, - "language": "python", - "metadata": { - "originalKey": "b1bca702-07b2-4818-b2b9-2107268c383c" - }, - "originalKey": "fa86552a-0b80-4040-a0c4-61a0de37bdc1", - "outputsInitialized": true, - "requestMsgId": "fa86552a-0b80-4040-a0c4-61a0de37bdc1", - "serverExecutionDuration": 1.7747740494087 - }, - "outputs": [], - "source": [ - "# The surrogate is not specified, so it will be auto-selected\n", - "# during `model.fit`.\n", - "GPEI_model = BoTorchGenerator(botorch_acqf_class=qLogExpectedImprovement)\n", - "\n", - "# The acquisition class is not specified, so it will be\n", - "# auto-selected during `model.gen` or `model.evaluate_acquisition`\n", - "GPEI_model = BoTorchGenerator(\n", - " surrogate_spec=SurrogateSpec(\n", - " model_configs=[ModelConfig(botorch_model_class=SingleTaskGP)]\n", - " )\n", - ")\n", - "\n", - "# Both the surrogate and acquisition class will be auto-selected.\n", - "GPEI_model = BoTorchGenerator()" - ] - }, - { - "cell_type": "markdown", - "id": "5b63129f", - "metadata": { - "id": "lovely-mechanics", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "originalKey": "5cec0f06-ae2c-47d3-bd95-441c45762e38" - }, - "originalKey": "7b9fae38-fe5d-4e5b-8b5f-2953c1ef09d2", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "### 2B. Example with all the options\n", - "Below are the full set of configurable settings of a `BoTorchGenerator` with their descriptions:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "06f04d49", - "metadata": { - "collapsed": false, - "executionStartTime": 1730916305930, - "executionStopTime": 1730916306168, - "id": "twenty-greek", - "isAgentGenerated": false, - "jupyter": { - "outputs_hidden": false - }, - "language": "python", - "metadata": { - "originalKey": "25b13c48-edb0-4b3f-ba34-4f4a4176162a" - }, - "originalKey": "8d824e37-b087-4bab-9b16-4354e9509df7", - "outputsInitialized": true, - "requestMsgId": "8d824e37-b087-4bab-9b16-4354e9509df7", - "serverExecutionDuration": 2.6916969800368 - }, - "outputs": [], - "source": [ - "model = BoTorchGenerator(\n", - " # Optional `Surrogate` specification to use instead of default\n", - " surrogate_spec=SurrogateSpec(\n", - " model_configs=[\n", - " ModelConfig(\n", - " # BoTorch `Model` type\n", - " botorch_model_class=SingleTaskGP,\n", - " # Optional, MLL class with which to optimize model parameters\n", - " mll_class=ExactMarginalLogLikelihood,\n", - " # Optional, dictionary of keyword arguments to underlying\n", - " # BoTorch `Model` constructor\n", - " model_options={},\n", - " )\n", - " ]\n", - " ),\n", - " # Optional BoTorch `AcquisitionFunction` to use instead of default\n", - " botorch_acqf_class=qLogExpectedImprovement,\n", - " # Optional dict of keyword arguments, passed to the input\n", - " # constructor for the given BoTorch `AcquisitionFunction`\n", - " acquisition_options={},\n", - " # Optional Ax `Acquisition` subclass (if the given BoTorch\n", - " # `AcquisitionFunction` requires one, which is rare)\n", - " acquisition_class=None,\n", - " # Less common model settings shown with default values, refer\n", - " # to `BoTorchModel` documentation for detail\n", - " refit_on_cv=False,\n", - " warm_start_refit=True,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "91771a7f", - "metadata": { - "id": "fourth-material", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "originalKey": "db0feafe-8af9-40a3-9f67-72c7d1fd808e" - }, - "originalKey": "7140bb19-09b4-4abe-951d-53902ae07833", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "## 2C. `Surrogate` and `Acquisition` Q&A\n", - "\n", - "**Why is the `surrogate` argument expected to be an instance, but `botorch_acqf_class` –– a class?** Because a BoTorch `AcquisitionFunction` object (and therefore its Ax wrapper, `Acquisition`) is ephemeral: it is constructed, immediately used, and destroyed during `BoTorchGenerator.gen`, so there is no reason to keep around an `Acquisition` instance. A `Surrogate`, on another hand, is kept in memory as long as its parent `BoTorchGenerator` is.\n", - "\n", - "**How to know when to use specify acquisition_class (and thereby a non-default Acquisition type) instead of just passing in botorch_acqf_class?** In short, custom `Acquisition` subclasses are needed when a given `AcquisitionFunction` in BoTorch needs some non-standard subcomponents or inputs (e.g. a custom BoTorch `MCAcquisitionObjective`). \n", - "\n", - "**Please post any other questions you have to our dedicated issue on Github: https://github.com/facebook/Ax/issues/363.** This functionality is in beta-release and your feedback will be of great help to us!" - ] - }, - { - "cell_type": "markdown", - "id": "f801bfce", - "metadata": { - "id": "violent-course", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "originalKey": "86018ee5-f7b8-41ae-8e2d-460fe5f0c15b" - }, - "originalKey": "71f92895-874d-4fc7-ae87-a5519b18d1a0", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "## 3. I know which Botorch `Model` and `AcquisitionFunction` I'd like to combine in Ax. How do set this up?" - ] - }, - { - "cell_type": "markdown", - "id": "1a08a274", - "metadata": { - "id": "unlike-football", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "b29a846d-d7bc-4143-8318-10170c9b4298", - "showInput": false - }, - "originalKey": "4af8afa2-5056-46be-b7b9-428127e668cc", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "### 3a. Making a `Surrogate` from BoTorch `Model`:\n", - "Most models should work with base `Surrogate` in Ax, except for BoTorch `ModelListGP`. `ModelListGP` is a special case because its purpose is to combine multiple sub-models into a single `Model` in BoTorch. It is most commonly used for multi-objective and constrained optimization. Whether or not `ModelListGP` is used is determined automatically based on the `Model` class and the data being used via the `ax.models.torch.botorch_modular.utils.use_model_list` function.\n", - "\n", - "If your `Model` is not a `ModelListGP`, the steps to set it up as a `Surrogate` are:\n", - "1. Implement a [`construct_inputs` class method](https://github.com/pytorch/botorch/blob/main/botorch/models/model.py#L143). The purpose of this method is to produce arguments to a particular model from a standardized set of inputs passed to BoTorch `Model`-s from [`Surrogate.construct`](https://github.com/facebook/Ax/blob/main/ax/models/torch/botorch_modular/surrogate.py#L148) in Ax. It should accept training data in form of a `SupervisedDataset` container and optionally other keyword arguments and produce a dictionary of arguments to `__init__` of the `Model`. See [`SingleTaskMultiFidelityGP.construct_inputs`](https://github.com/pytorch/botorch/blob/5b3172f3daa22f6ea2f6f4d1d0a378a9518dcd8d/botorch/models/gp_regression_fidelity.py#L131) for an example.\n", - "2. Pass any additional needed keyword arguments for the `Model` constructor (that cannot be constructed from the training data and other arguments to `construct_inputs`) via the `model_options` argument to `ModelConfig` in `SurrogateSpec`." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "0eaa0481", - "metadata": { - "collapsed": false, - "executionStartTime": 1730916308518, - "executionStopTime": 1730916308769, - "id": "dynamic-university", - "isAgentGenerated": false, - "jupyter": { - "outputs_hidden": false - }, - "language": "python", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "6c2ea955-c7a4-42ff-a4d7-f787113d4d53" - }, - "originalKey": "746fc2a3-0e0e-4ab4-84d9-32434eb1fc34", - "outputsInitialized": true, - "requestMsgId": "746fc2a3-0e0e-4ab4-84d9-32434eb1fc34", - "serverExecutionDuration": 2.4644429795444 - }, - "outputs": [], - "source": [ - "from botorch.models.model import Model\n", - "from botorch.utils.datasets import SupervisedDataset\n", - "\n", - "\n", - "class MyModelClass(Model):\n", - "\n", - " ... # Implementation of `MyModelClass`\n", - "\n", - " @classmethod\n", - " def construct_inputs(\n", - " cls, training_data: SupervisedDataset, **kwargs\n", - " ) -> Dict[str, Any]:\n", - " fidelity_features = kwargs.get(\"fidelity_features\")\n", - " if fidelity_features is None:\n", - " raise ValueError(f\"Fidelity features required for {cls.__name__}.\")\n", - "\n", - " return {\n", - " **super().construct_inputs(training_data=training_data, **kwargs),\n", - " \"fidelity_features\": fidelity_features,\n", - " }\n", - "\n", - "\n", - "surrogate_spec = SurrogateSpec(\n", - " model_configs=[\n", - " ModelConfig(\n", - " botorch_model_class=MyModelClass, # Must implement `construct_inputs`\n", - " # Optional dict of additional keyword arguments to `MyModelClass`\n", - " model_options={},\n", - " )\n", - " ]\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "bd78ae03", - "metadata": { - "id": "otherwise-context", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "originalKey": "b9072296-956d-4add-b1f6-e7e0415ba65c" - }, - "originalKey": "5a27fd2c-4c4c-41fe-a634-f6d0ec4f1666", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "NOTE: if you run into a case where base `Surrogate` does not work with your BoTorch `Model`, please let us know in this Github issue: https://github.com/facebook/Ax/issues/363, so we can find the right solution and augment this tutorial." - ] - }, - { - "cell_type": "markdown", - "id": "415c682c", - "metadata": { - "id": "northern-invite", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "originalKey": "335cabdf-2bf6-48e8-ba0c-1404a8ef47f9" - }, - "originalKey": "df06d02b-95cb-4d34-aac6-773231f1a129", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "### 3B. Using an arbitrary BoTorch `AcquisitionFunction` in Ax" - ] - }, - { - "cell_type": "markdown", - "id": "3d04c34c", - "metadata": { - "id": "surrounded-denial", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "e3f0c788-2131-4116-9518-4ae7daeb991f", - "showInput": false - }, - "originalKey": "d4861847-b757-4fcd-9f35-ba258080812c", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "Steps to set up any `AcquisitionFunction` in Ax are:\n", - "1. Define an input constructor function. The purpose of this method is to produce arguments to a acquisition function from a standardized set of inputs passed to BoTorch `AcquisitionFunction`-s from `Acquisition.__init__` in Ax. For example, see [`construct_inputs_qEHVI`](https://github.com/pytorch/botorch/blob/main/botorch/acquisition/input_constructors.py#L477), which creates a fairly complex set of arguments needed by `qExpectedHypervolumeImprovement` –– a popular multi-objective optimization acquisition function offered in Ax and BoTorch. For more examples, see this collection in BoTorch: [botorch/acquisition/input_constructors.py](https://github.com/pytorch/botorch/blob/main/botorch/acquisition/input_constructors.py) \n", - " 1. Note that the new input constructor needs to be decorated with `@acqf_input_constructor(AcquisitionFunctionClass)` to register it.\n", - "3. Specify the BoTorch `AcquisitionFunction` class as `botorch_acqf_class` to `BoTorchGenerator`\n", - "4. (Optional) Pass any additional keyword arguments to acquisition function constructor or to the optimizer function via `acquisition_options` argument to `BoTorchGenerator`." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "602ec648", - "metadata": { - "collapsed": false, - "customOutput": null, - "executionStartTime": 1730916310518, - "executionStopTime": 1730916310772, - "id": "interested-search", - "isAgentGenerated": false, - "jupyter": { - "outputs_hidden": false - }, - "language": "python", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "6967ce3e-929b-4d9a-8cd1-72bf94f0be3a" - }, - "originalKey": "f188f40b-64ba-4b0c-b216-f3dea8c7465e", - "outputsInitialized": true, - "requestMsgId": "f188f40b-64ba-4b0c-b216-f3dea8c7465e", - "serverExecutionDuration": 4.9752569757402 - }, - "outputs": [], - "source": [ - "from ax.models.torch.botorch_modular.optimizer_argparse import optimizer_argparse\n", - "from botorch.acquisition.acquisition import AcquisitionFunction\n", - "from botorch.acquisition.input_constructors import acqf_input_constructor, MaybeDict\n", - "from botorch.utils.datasets import SupervisedDataset\n", - "from torch import Tensor\n", - "\n", - "\n", - "class MyAcquisitionFunctionClass(AcquisitionFunction):\n", - " ... # Actual contents of the acquisition function class.\n", - "\n", - "\n", - "# 1. Add input constructor\n", - "@acqf_input_constructor(MyAcquisitionFunctionClass)\n", - "def construct_inputs_my_acqf(\n", - " model: Model,\n", - " training_data: MaybeDict[SupervisedDataset],\n", - " objective_thresholds: Tensor,\n", - " **kwargs: Any,\n", - ") -> Dict[str, Any]:\n", - " pass\n", - "\n", - "\n", - "\n", - "# 2-3. Specifying `botorch_acqf_class` and `acquisition_options`\n", - "BoTorchGenerator(\n", - " botorch_acqf_class=MyAcquisitionFunctionClass,\n", - " acquisition_options={\n", - " \"alpha\": 10**-6,\n", - " # The sub-dict by the key \"optimizer_options\" can be passed\n", - " # to propagate options to `optimize_acqf`, used in\n", - " # `Acquisition.optimize`, to add/override the default\n", - " # optimizer options registered above.\n", - " \"optimizer_options\": {\"sequential\": False},\n", - " },\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "508948ac", - "metadata": { - "id": "metallic-imaging", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "originalKey": "29256ab1-f214-4604-a423-4c7b4b36baa0" - }, - "originalKey": "b057722d-b8ca-47dd-b2c8-1ff4a71c4863", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "See section 2A for combining the resulting `Surrogate` instance and `Acquisition` type into a `BoTorchGenerator`. You can also leverage `Generators.BOTORCH_MODULAR` for ease of use; more on it in section 4 below or in section 1 quick-start example." - ] - }, - { - "cell_type": "markdown", - "id": "8f840899", - "metadata": { - "id": "descending-australian", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "originalKey": "1d15082f-1df7-4cdb-958b-300483eb7808" - }, - "originalKey": "a7406f13-1468-487d-ac5e-7d2a45394850", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "## 4. Using `Generators.BOTORCH_MODULAR` \n", - "\n", - "To simplify the instantiation of an Ax `Adapter` and its undelying `Generator`, Ax provides a [`Generator` registry enum](https://github.com/facebook/Ax/blob/main/ax/modelbridge/registry.py#L355). When calling entries of that enum (e.g. `Generators.BOTORCH_MODULAR(experiment, data)`), the inputs are automatically distributed between a `Generator` and an `Adapter` for a given setup. A call to a `Model` enum member yields an `Adapter` with an underlying `Generator`, ready for use to generate candidates.\n", - "\n", - "Here we use `Generators.BOTORCH_MODULAR` to set up a model with all-default subcomponents:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a879268e", - "metadata": { - "collapsed": false, - "executionStartTime": 1730916311983, - "executionStopTime": 1730916312395, - "id": "attached-border", - "isAgentGenerated": false, - "jupyter": { - "outputs_hidden": false - }, - "language": "python", - "metadata": { - "originalKey": "385b2f30-fd86-4d88-8784-f238ea8a6abb" - }, - "originalKey": "052cf2e4-8de0-4ec3-a3f9-478194b10928", - "outputsInitialized": true, - "requestMsgId": "052cf2e4-8de0-4ec3-a3f9-478194b10928", - "serverExecutionDuration": 202.78578903526 - }, - "outputs": [], - "source": [ - "adapter_with_GPEI = Generators.BOTORCH_MODULAR(\n", - " experiment=experiment,\n", - " data=data,\n", - ")\n", - "adapter_with_GPEI.gen(1)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "666089a4", - "metadata": { - "collapsed": false, - "executionStartTime": 1730916312432, - "executionStopTime": 1730916312657, - "id": "powerful-gamma", - "isAgentGenerated": false, - "jupyter": { - "outputs_hidden": false - }, - "language": "python", - "metadata": { - "originalKey": "89930a31-e058-434b-b587-181931e247b6" - }, - "originalKey": "b7f924fe-f3d9-4211-b402-421f4c90afe5", - "outputsInitialized": true, - "requestMsgId": "b7f924fe-f3d9-4211-b402-421f4c90afe5", - "serverExecutionDuration": 3.1334219966084 - }, - "outputs": [], - "source": [ - "adapter_with_GPEI.model.botorch_acqf_class" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "0462b383", - "metadata": { - "collapsed": false, - "executionStartTime": 1730916312847, - "executionStopTime": 1730916313093, - "id": "improved-replication", - "isAgentGenerated": false, - "jupyter": { - "outputs_hidden": false - }, - "language": "python", - "metadata": { - "originalKey": "f9a9cb14-20c3-4e1d-93a3-6a35c281ae01" - }, - "originalKey": "942f1817-8d40-48f8-8725-90c25a079e4c", - "outputsInitialized": true, - "requestMsgId": "942f1817-8d40-48f8-8725-90c25a079e4c", - "serverExecutionDuration": 3.410067060031 - }, - "outputs": [], - "source": [ - "adapter_with_GPEI.model.surrogate.model.__class__" - ] - }, - { - "cell_type": "markdown", - "id": "20878dbc", - "metadata": { - "id": "connected-sheet", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "originalKey": "8b6a9ddc-d2d2-4cd5-a6a8-820113f78262" - }, - "originalKey": "f5c0adbd-00a6-428d-810f-1e7ed0954b08", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "We can use the same `Models.BOTORCH_MODULAR` to set up a model for multi-objective optimization:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "6a440b4f", - "metadata": { - "collapsed": false, - "executionStartTime": 1730916314009, - "executionStopTime": 1730916314736, - "id": "documentary-jurisdiction", - "isAgentGenerated": false, - "jupyter": { - "outputs_hidden": false - }, - "language": "python", - "metadata": { - "originalKey": "8001de33-d9d9-4888-a5d1-7a59ebeccfd5" - }, - "originalKey": "9c64c497-f663-42a6-aa48-1f1f2ae2b80b", - "outputsInitialized": true, - "requestMsgId": "9c64c497-f663-42a6-aa48-1f1f2ae2b80b", - "serverExecutionDuration": 518.53136904538 - }, - "outputs": [], - "source": [ - "adapter_with_EHVI = Generators.BOTORCH_MODULAR(\n", - " experiment=get_branin_experiment_with_multi_objective(\n", - " has_objective_thresholds=True, with_batch=True\n", - " ),\n", - " data=get_branin_data_multi_objective(),\n", - ")\n", - "adapter_with_EHVI.gen(1)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "6e85102e", - "metadata": { - "collapsed": false, - "executionStartTime": 1730916314586, - "executionStopTime": 1730916314842, - "id": "changed-maintenance", - "isAgentGenerated": false, - "jupyter": { - "outputs_hidden": false - }, - "language": "python", - "metadata": { - "originalKey": "dcfdbecc-4a9a-49ac-ad55-0bc04b2ec566" - }, - "originalKey": "ab6e84ac-2a55-4f48-9ab7-06b8d9b58d1f", - "outputsInitialized": true, - "requestMsgId": "ab6e84ac-2a55-4f48-9ab7-06b8d9b58d1f", - "serverExecutionDuration": 3.3097150735557 - }, - "outputs": [], - "source": [ - "adapter_with_EHVI.model.botorch_acqf_class" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "d0994478", - "metadata": { - "collapsed": false, - "executionStartTime": 1730916315097, - "executionStopTime": 1730916315308, - "id": "operating-shelf", - "isAgentGenerated": false, - "jupyter": { - "outputs_hidden": false - }, - "language": "python", - "metadata": { - "originalKey": "16727a51-337d-4715-bf51-9cb6637a950f" - }, - "originalKey": "1e980e3c-09f6-44c1-a79f-f59867de0c3e", - "outputsInitialized": true, - "requestMsgId": "1e980e3c-09f6-44c1-a79f-f59867de0c3e", - "serverExecutionDuration": 3.4662369871512 - }, - "outputs": [], - "source": [ - "adapter_with_EHVI.model.surrogate.model.__class__" - ] - }, - { - "cell_type": "markdown", - "id": "89e7d57d", - "metadata": { - "id": "fatal-butterfly", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "originalKey": "5c64eecc-5ce5-4907-bbcc-5b3cbf4358ae" - }, - "originalKey": "3ad7c4a7-fe19-44ad-938d-1be4f8b09bfb", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "Furthermore, the quick-start example at the top of this tutorial shows how to specify surrogate and acquisition subcomponents to `Generators.BOTORCH_MODULAR`. " - ] - }, - { - "cell_type": "markdown", - "id": "f9bc3db7", - "metadata": { - "id": "hearing-interface", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "originalKey": "a0163432-f0ca-4582-ad84-16c77c99f20b" - }, - "originalKey": "44adf1ce-6d3e-455d-b53c-32d3c42a843f", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "## 5. Utilizing `BoTorchGenerator` in generation strategies\n", - "\n", - "Generation strategy is a key concept in Ax, enabling use of Service API (a.k.a. `AxClient`) and many other higher-level abstractions. A `GenerationStrategy` allows to chain multiple models in Ax and thereby automate candidate generation. Refer to the \"Generation Strategy\" tutorial for more detail in generation strategies.\n", - "\n", - "An example generation stategy with the modular `BoTorchGenerator` would look like this:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "8b7f0ffb", - "metadata": { - "collapsed": false, - "executionStartTime": 1730916316730, - "executionStopTime": 1730916316968, - "id": "received-registration", - "isAgentGenerated": false, - "jupyter": { - "outputs_hidden": false - }, - "language": "python", - "metadata": { - "originalKey": "f7eabbcf-607c-4bed-9a0e-6ac6e8b04350" - }, - "originalKey": "4ee172c8-0648-418b-9968-647e8e916507", - "outputsInitialized": true, - "requestMsgId": "4ee172c8-0648-418b-9968-647e8e916507", - "serverExecutionDuration": 2.2927720565349 - }, - "outputs": [], - "source": [ - "from ax.generation_strategy.generation_strategy import GenerationStep, GenerationStrategy\n", - "from ax.modelbridge.modelbridge_utils import get_pending_observation_features\n", - "\n", - "gs = GenerationStrategy(\n", - " steps=[\n", - " GenerationStep( # Initialization step\n", - " # Which model to use for this step\n", - " model=Generators.SOBOL,\n", - " # How many generator runs (each of which is then made a trial)\n", - " # to produce with this step\n", - " num_trials=5,\n", - " # How many trials generated from this step must be `COMPLETED`\n", - " # before the next one\n", - " min_trials_observed=5,\n", - " ),\n", - " GenerationStep( # BayesOpt step\n", - " model=Generators.BOTORCH_MODULAR,\n", - " # No limit on how many generator runs will be produced\n", - " num_trials=-1,\n", - " model_kwargs={ # Kwargs to pass to `BoTorchModel.__init__`\n", - " \"surrogate_spec\": SurrogateSpec(\n", - " model_configs=[ModelConfig(botorch_model_class=SingleTaskGP)]\n", - " ),\n", - " \"botorch_acqf_class\": qLogNoisyExpectedImprovement,\n", - " },\n", - " ),\n", - " ]\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "157b623b", - "metadata": { - "id": "logical-windsor", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "originalKey": "212c4543-220e-4605-8f72-5f86cf52f722" - }, - "originalKey": "ba3783ee-3d88-4e44-ad07-77de3c50f84d", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "Set up an experiment and generate 10 trials in it, adding synthetic data to experiment after each one:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "b75f3f73", - "metadata": { - "collapsed": false, - "executionStartTime": 1730916317751, - "executionStopTime": 1730916318153, - "id": "viral-cheese", - "isAgentGenerated": false, - "jupyter": { - "outputs_hidden": false - }, - "language": "python", - "metadata": { - "originalKey": "30cfcdd7-721d-4f89-b851-7a94140dfad6" - }, - "originalKey": "1b7d0cfc-f7cf-477d-b109-d34db9604938", - "outputsInitialized": true, - "requestMsgId": "1b7d0cfc-f7cf-477d-b109-d34db9604938", - "serverExecutionDuration": 3.9581339806318 - }, - "outputs": [], - "source": [ - "experiment = get_branin_experiment(minimize=True)\n", - "\n", - "assert len(experiment.trials) == 0\n", - "experiment.search_space" - ] - }, - { - "cell_type": "markdown", - "id": "ce37a384", - "metadata": { - "id": "incident-newspaper", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "originalKey": "2807d7ce-8a6b-423c-b5f5-32edba09c78e" - }, - "originalKey": "df2e90f5-4132-4d87-989b-e6d47c748ddc", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "## 5a. Specifying `pending_observations`\n", - "Note that it's important to **specify pending observations** to the call to `gen` to avoid getting the same points re-suggested. Without `pending_observations` argument, Ax models are not aware of points that should be excluded from generation. Points are considered \"pending\" when they belong to `STAGED`, `RUNNING`, or `ABANDONED` trials (with the latter included so model does not re-suggest points that are considered \"bad\" and should not be re-suggested).\n", - "\n", - "If the call to `get_pending_observation_features` becomes slow in your setup (since it performs data-fetching etc.), you can opt for `get_pending_observation_features_based_on_trial_status` (also from `ax.modelbridge.modelbridge_utils`), but note the limitations of that utility (detailed in its docstring)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "4b5f671d", - "metadata": { - "collapsed": false, - "executionStartTime": 1730916318830, - "executionStopTime": 1730916321328, - "id": "casual-spread", - "isAgentGenerated": false, - "jupyter": { - "outputs_hidden": false - }, - "language": "python", - "metadata": { - "originalKey": "58aafd65-a366-4b66-a1b1-31b207037a2e" - }, - "originalKey": "fe7437c5-8834-46cc-94b2-91782d91ee96", - "outputsInitialized": true, - "requestMsgId": "fe7437c5-8834-46cc-94b2-91782d91ee96", - "serverExecutionDuration": 2274.8276960338 - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Completed trial #5, suggested by BoTorch.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Completed trial #6, suggested by BoTorch.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Completed trial #7, suggested by BoTorch.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Completed trial #8, suggested by BoTorch.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Completed trial #9, suggested by BoTorch.\n" - ] - } - ], - "source": [ - "for _ in range(10):\n", - " # Produce a new generator run and attach it to experiment as a trial\n", - " generator_run = gs.gen(\n", - " experiment=experiment,\n", - " n=1,\n", - " pending_observations=get_pending_observation_features(experiment=experiment),\n", - " )\n", - " trial = experiment.new_trial(generator_run)\n", - "\n", - " # Mark the trial as 'RUNNING' so we can mark it 'COMPLETED' later\n", - " trial.mark_running(no_runner_required=True)\n", - "\n", - " # Attach data for the new trial and mark it 'COMPLETED'\n", - " experiment.attach_data(get_branin_data(trials=[trial]))\n", - " trial.mark_completed()\n", - "\n", - " print(f\"Completed trial #{trial.index}, suggested by {generator_run._model_key}.\")" - ] - }, - { - "cell_type": "markdown", - "id": "e4720316", - "metadata": { - "id": "circular-vermont", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "originalKey": "9d3b86bf-b691-4315-8b8f-60504b37818c" - }, - "originalKey": "6a78ef13-fbaa-4cae-934b-d57f5807fe25", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "Now we examine the experiment and observe the trials that were added to it and produced by the generation strategy:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a69b4418", - "metadata": { - "collapsed": false, - "executionStartTime": 1730916319576, - "executionStopTime": 1730916321368, - "id": "significant-particular", - "isAgentGenerated": false, - "jupyter": { - "outputs_hidden": false - }, - "language": "python", - "metadata": { - "originalKey": "ca12913d-e3fd-4617-a247-e3432665bac1" - }, - "originalKey": "b3160bc0-d5d1-45fa-bf62-4b9dd5778cac", - "outputsInitialized": true, - "requestMsgId": "b3160bc0-d5d1-45fa-bf62-4b9dd5778cac", - "serverExecutionDuration": 35.789265064523 - }, - "outputs": [], - "source": [ - "exp_to_df(experiment)" - ] - }, - { - "cell_type": "markdown", - "id": "5c778f3a", - "metadata": { - "id": "obvious-transparency", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "originalKey": "c25da720-6d3d-4f16-b878-24f2d2755783" - }, - "originalKey": "633c66af-a89f-4f03-a88b-866767d0a52f", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "## 6. Customizing a `Surrogate` or `Acquisition`\n", - "\n", - "We expect the base `Surrogate` and `Acquisition` classes to work with most BoTorch components, but there could be a case where you would need to subclass one of aforementioned abstractions to handle a given BoTorch component. If you run into a case like this, feel free to open an issue on our [Github issues page](https://github.com/facebook/Ax/issues) –– it would be very useful for us to know \n", - "\n", - "One such example would be a need for a custom `MCAcquisitionObjective` or posterior transform. To subclass `Acquisition` accordingly, one would override the `get_botorch_objective_and_transform` method:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "84e98211", - "metadata": { - "collapsed": false, - "executionStartTime": 1730916320585, - "executionStopTime": 1730916321384, - "id": "organizational-balance", - "isAgentGenerated": false, - "jupyter": { - "outputs_hidden": false - }, - "language": "python", - "metadata": { - "originalKey": "e7f8e413-f01e-4f9d-82c1-4912097637af" - }, - "originalKey": "2949718a-8a4e-41e5-91ac-5b020eface47", - "outputsInitialized": true, - "requestMsgId": "2949718a-8a4e-41e5-91ac-5b020eface47", - "serverExecutionDuration": 2.2059100447223 - }, - "outputs": [], - "source": [ - "from botorch.acquisition.objective import MCAcquisitionObjective, PosteriorTransform\n", - "from botorch.acquisition.risk_measures import RiskMeasureMCObjective\n", - "\n", - "\n", - "class CustomObjectiveAcquisition(Acquisition):\n", - " def get_botorch_objective_and_transform(\n", - " self,\n", - " botorch_acqf_class: Type[AcquisitionFunction],\n", - " model: Model,\n", - " objective_weights: Tensor,\n", - " objective_thresholds: Optional[Tensor] = None,\n", - " outcome_constraints: Optional[Tuple[Tensor, Tensor]] = None,\n", - " X_observed: Optional[Tensor] = None,\n", - " risk_measure: Optional[RiskMeasureMCObjective] = None,\n", - " ) -> Tuple[Optional[MCAcquisitionObjective], Optional[PosteriorTransform]]:\n", - " ... # Produce the desired `MCAcquisitionObjective` and `PosteriorTransform` instead of the default" - ] - }, - { - "cell_type": "markdown", - "id": "13843a20", - "metadata": { - "id": "theoretical-horizon", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "originalKey": "7299f0fc-e19e-4383-99de-ef7a9a987fe9" - }, - "originalKey": "0ec8606d-9d5b-4bcb-ad7e-f54839ad6f9b", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "Then to use the new subclass in `BoTorchGenerator`, just specify `acquisition_class` argument along with `botorch_acqf_class` (to `BoTorchGenerator` directly or to `Generators.BOTORCH_MODULAR`, which just passes the relevant arguments to `BoTorchGenerator` under the hood, as discussed in section 4):" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "2fffef64", - "metadata": { - "collapsed": false, - "executionStartTime": 1730916321675, - "executionStopTime": 1730916321901, - "id": "approximate-rolling", - "isAgentGenerated": false, - "jupyter": { - "outputs_hidden": false - }, - "language": "python", - "metadata": { - "originalKey": "07fe169a-78de-437e-9857-7c99cc48eedc" - }, - "originalKey": "e231ea1e-c70d-48dc-b6c6-1611c5ea1b26", - "outputsInitialized": true, - "requestMsgId": "e231ea1e-c70d-48dc-b6c6-1611c5ea1b26", - "serverExecutionDuration": 12.351316981949 - }, - "outputs": [], - "source": [ - "Generators.BOTORCH_MODULAR(\n", - " experiment=experiment,\n", - " data=data,\n", - " acquisition_class=CustomObjectiveAcquisition,\n", - " botorch_acqf_class=MyAcquisitionFunctionClass,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "id": "16b06c8e", - "metadata": { - "id": "representative-implement", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "originalKey": "608d5f0d-4528-4aa6-869d-db38fcbfb256" - }, - "originalKey": "cdcfb2bc-3016-4681-9fff-407f28321c3f", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "To use a custom `Surrogate` subclass, pass the `surrogate` argument of that type:\n", - "```\n", - "Generators.BOTORCH_MODULAR(\n", - " experiment=experiment, \n", - " data=data,\n", - " surrogate=CustomSurrogate(botorch_model_class=MyModelClass),\n", - ")\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "e47f94c4", - "metadata": { - "id": "framed-intermediate", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "originalKey": "64f1289e-73c7-4cc5-96ee-5091286a8361" - }, - "originalKey": "ff03d674-f584-403f-ba65-f1bab921845b", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "------" - ] - }, - { - "cell_type": "markdown", - "id": "44dc1fae", - "metadata": { - "id": "metropolitan-feedback", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "originalKey": "d1e37569-dd0d-4561-b890-2f0097a345e0" - }, - "originalKey": "f71fcfa1-fc59-4bfb-84d6-b94ea5298bfa", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "## Appendix 1: Methods available on `BoTorchGenerator`\n", - "\n", - "Note that usually all these methods are used through `Adapter` –– a convertion and transformation layer that adapts Ax abstractions to inputs required by the given model.\n", - "\n", - "**Core methods on `BoTorchGenerator`:**\n", - "* `fit` selects a surrogate if needed and fits the surrogate model to data via `Surrogate.fit`,\n", - "* `predict` estimates metric values at a given point via `Surrogate.predict`,\n", - "* `gen` instantiates an acquisition function via `Acquisition.__init__` and optimizes it to generate candidates.\n", - "\n", - "**Other methods on `BoTorchGenerator`:**\n", - "* `update` updates surrogate model with training data and optionally reoptimizes model parameters via `Surrogate.update`,\n", - "* `cross_validate` re-fits the surrogate model to subset of training data and makes predictions for test data,\n", - "* `evaluate_acquisition_function` instantiates an acquisition function and evaluates it for a given point.\n", - "------\n" - ] - }, - { - "cell_type": "markdown", - "id": "720415a6", - "metadata": { - "id": "possible-transsexual", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "originalKey": "b02f928c-57d9-4b2a-b4fe-c6d28d368b12" - }, - "originalKey": "91cedde4-8911-441f-af05-eb124581cbbc", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "## Appendix 2: Default surrogate models and acquisition functions\n", - "\n", - "By default, the chosen surrogate model will be:\n", - "* if fidelity parameters are present in search space: `SingleTaskMultiFidelityGP`,\n", - "* if task parameters are present: a set of `MultiTaskGP` wrapped in a `ModelListGP` and each modeling one task,\n", - "* `SingleTaskGP` otherwise.\n", - "\n", - "The chosen acquisition function will be:\n", - "* for multi-objective settings: `qLogExpectedHypervolumeImprovement`,\n", - "* for single-objective settings: `qLogNoisyExpectedImprovement`.\n", - "----" - ] - }, - { - "cell_type": "markdown", - "id": "45a8d6dc", - "metadata": { - "id": "continuous-strain", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "originalKey": "76ae9852-9d21-43d6-bf75-bb087a474dd6" - }, - "originalKey": "c8b0f933-8df6-479b-aa61-db75ca877624", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "## Appendix 3: Handling storage errors that arise from objects that don't have serialization logic in A\n", - "\n", - "Attempting to store a generator run produced via `Generators.BOTORCH_MODULAR` instance that included options without serization logic with will produce an error like: `\"Object passed to 'object_to_json' (of type ) is not registered with a corresponding encoder in ENCODER_REGISTRY.\"`" - ] - }, - { - "cell_type": "markdown", - "id": "7e0b9122", - "metadata": { - "id": "broadband-voice", - "isAgentGenerated": false, - "language": "markdown", - "metadata": { - "originalKey": "6487b68e-b808-4372-b6ba-ab02ce4826bc" - }, - "originalKey": "4d82f49a-3a8b-42f0-a4f5-5c079b793344", - "outputsInitialized": false, - "showInput": false - }, - "source": [ - "The two options for handling this error are:\n", - "1. disabling storage of `BoTorchGenerator`'s options by passing `no_model_options_storage=True` to `Generators.BOTORCH_MODULAR(...)` call –– this will prevent model options from being stored on the generator run, so a generator run can be saved but cannot be used to restore the model that produced it,\n", - "2. specifying serialization logic for a given object that needs to occur among the `Model` or `AcquisitionFunction` options. Tutorial for this is in the works, but in the meantime you can [post an issue on the Ax GitHub](https://github.com/facebook/Ax/issues) to get help with this." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "a8ce55f4-74e6-4983-9013-1ec308a76b24", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.4" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/tutorials/multi_task/multi_task.ipynb b/tutorials/multi_task/multi_task.ipynb deleted file mode 100644 index 7a6c5269251..00000000000 --- a/tutorials/multi_task/multi_task.ipynb +++ /dev/null @@ -1,585 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "bbfd01ea-97cb-4830-ab6d-60236151a3cd", - "showInput": false - }, - "source": [ - "# Multi-task Bayesian Optimization\n", - "\n", - "This tutorial uses synthetic functions to illustrate Bayesian optimization using a multi-task Gaussian Process in Ax. A typical use case is optimizing an expensive-to-evaluate (online) system with supporting (offline) simulations of that system.\n", - "\n", - "Bayesian optimization with a multi-task kernel (Multi-task Bayesian optimization) is described by Swersky et al. (2013). Letham and Bakshy (2019) describe using multi-task Bayesian optimization to tune a ranking system with a mix of online and offline (simulator) experiments.\n", - "\n", - "This tutorial produces the results of Online Appendix 2 from [that paper](https://arxiv.org/pdf/1904.01049.pdf).\n", - "\n", - "The synthetic problem used here is to maximize the Hartmann 6 function, a classic optimization test problem in 6 dimensions. The objective is treated as unknown and are modeled with separate GPs. The objective is noisy.\n", - "\n", - "Throughout the optimization we can make nosiy observations directly of the objective (an online observation), and we can make noisy observations of a biased version of the objective (offline observations). Bias is simulated by passing the function values through a piecewise linear function. Offline observations are much less time-consuming than online observations, so we wish to use them to improve our ability to optimize the online objective." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import sys\n", - "in_colab = 'google.colab' in sys.modules\n", - "if in_colab:\n", - " %pip install ax-platform" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "3ce827be-d20b-48d3-a6ff-291bd442c748" - }, - "outputs": [], - "source": [ - "import os\n", - "import time\n", - "\n", - "from copy import deepcopy\n", - "from typing import Optional\n", - "\n", - "import numpy as np\n", - "\n", - "import torch\n", - "\n", - "from ax.core.data import Data\n", - "from ax.core.experiment import Experiment\n", - "from ax.core.generator_run import GeneratorRun\n", - "from ax.core.multi_type_experiment import MultiTypeExperiment\n", - "from ax.core.objective import Objective\n", - "from ax.core.observation import ObservationFeatures, observations_from_data\n", - "from ax.core.optimization_config import OptimizationConfig\n", - "from ax.core.parameter import ParameterType, RangeParameter\n", - "from ax.core.search_space import SearchSpace\n", - "from ax.metrics.hartmann6 import Hartmann6Metric\n", - "from ax.modelbridge.factory import get_sobol\n", - "from ax.modelbridge.registry import Generators, MBM_X_trans, ST_MTGP_trans\n", - "from ax.modelbridge.torch import TorchAdapter\n", - "from ax.modelbridge.transforms.convert_metric_names import tconfig_from_mt_experiment\n", - "from ax.modelbridge.transforms.derelativize import Derelativize\n", - "from ax.modelbridge.transforms.convert_metric_names import ConvertMetricNames\n", - "from ax.modelbridge.transforms.trial_as_task import TrialAsTask\n", - "from ax.modelbridge.transforms.stratified_standardize_y import StratifiedStandardizeY\n", - "from ax.modelbridge.transforms.task_encode import TaskChoiceToIntTaskChoice\n", - "from ax.plot.diagnostic import interact_batch_comparison\n", - "from ax.runners.synthetic import SyntheticRunner\n", - "from ax.utils.notebook.plotting import init_notebook_plotting, render\n", - "from pyre_extensions import assert_is_instance\n", - "import plotly.io as pio\n", - "\n", - "init_notebook_plotting()\n", - "if in_colab:\n", - " pio.renderers.default = \"colab\"\n", - "\n", - "# Transforms for pre-processing the data from a multi-type experiment to \n", - "# construct a multi-task GP model.\n", - "MT_MTGP_trans = MBM_X_trans + [\n", - " Derelativize,\n", - " ConvertMetricNames,\n", - " TrialAsTask,\n", - " StratifiedStandardizeY,\n", - " TaskChoiceToIntTaskChoice,\n", - "]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "SMOKE_TEST = os.environ.get(\"SMOKE_TEST\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "76100312-e604-46ed-a123-9b0296ced6ff", - "showInput": false - }, - "source": [ - "## 1. Define Metric classes\n", - "For this example, the online system is optimizing a Hartmann6 function. The Metric objects for these are directly imported above. We create analagous offline versions of this metrics which are identical but have a transform applied (a piecewise linear function). We construct Metric objects for each of them." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "2315ca64-74e5-4084-829e-e8a482c653e5" - }, - "outputs": [], - "source": [ - "# Create metric with artificial offline bias, for the objective\n", - "# by passing the true values through a piecewise linear function.\n", - "\n", - "\n", - "class OfflineHartmann6Metric(Hartmann6Metric):\n", - " def f(self, x: np.ndarray) -> float:\n", - " raw_res = super().f(x)\n", - " m = -0.35\n", - " if raw_res < m:\n", - " return (1.5 * (raw_res - m)) + m\n", - " else:\n", - " return (6.0 * (raw_res - m)) + m" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "b0e2089f-a7a3-4a8b-b8b3-ab6d75ca7f09", - "showInput": false - }, - "source": [ - "## 2. Create experiment\n", - "\n", - "A MultiTypeExperiment is used for managing online and offline trials together. It is constructed in several steps:\n", - "\n", - "1. Create the search space - This is done in the usual way.\n", - "2. Specify optimization config - Also done in the usual way.\n", - "3. Initialize Experiment - In addition to the search_space and optimization_config, specify that \"online\" is the default trial_type. This is the main trial type for which we're optimizing. Optimization metrics are defined to be for this type and new trials assume this trial type by default.\n", - "4. Establish offline trial_type - Register the \"offline\" trial type and specify how to deploy trials of this type.\n", - "5. Add offline metrics - Create the offline metrics and add them to the experiment. When adding the metrics, we need to specify the trial type (\"offline\") and online metric name it is associated with so the model can link them.\n", - "\n", - "Finally, because this is a synthetic benchmark problem where the true function values are known, we will also register metrics with the true (noiseless) function values for plotting below." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "39504f84-793e-4dae-ae55-068f1b762706" - }, - "outputs": [], - "source": [ - "def get_experiment(include_true_metric=True):\n", - " noise_sd = 0.1 # Observations will have this much Normal noise added to them\n", - "\n", - " # 1. Create simple search space for [0,1]^d, d=6\n", - " param_names = [f\"x{i}\" for i in range(6)]\n", - " parameters = [\n", - " RangeParameter(\n", - " name=param_names[i],\n", - " parameter_type=ParameterType.FLOAT,\n", - " lower=0.0,\n", - " upper=1.0,\n", - " )\n", - " for i in range(6)\n", - " ]\n", - " search_space = SearchSpace(parameters=parameters)\n", - "\n", - " # 2. Specify optimization config\n", - " online_objective = Hartmann6Metric(\n", - " \"objective\", param_names=param_names, noise_sd=noise_sd\n", - " )\n", - " opt_config = OptimizationConfig(\n", - " objective=Objective(online_objective, minimize=True)\n", - " )\n", - "\n", - " # 3. Init experiment\n", - " exp = MultiTypeExperiment(\n", - " name=\"mt_exp\",\n", - " search_space=search_space,\n", - " default_trial_type=\"online\",\n", - " default_runner=SyntheticRunner(),\n", - " optimization_config=opt_config,\n", - " )\n", - "\n", - " # 4. Establish offline trial_type, and how those trials are deployed\n", - " exp.add_trial_type(\"offline\", SyntheticRunner())\n", - "\n", - " # 5. Add offline metrics that provide biased estimates of the online metrics\n", - " offline_objective = OfflineHartmann6Metric(\n", - " \"offline_objective\", param_names=param_names, noise_sd=noise_sd\n", - " )\n", - " # Associate each offline metric with corresponding online metric\n", - " exp.add_tracking_metric(\n", - " metric=offline_objective, trial_type=\"offline\", canonical_name=\"objective\"\n", - " )\n", - "\n", - " return exp" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "5a00218e-c27d-4d6f-bef0-3e562217533a", - "showInput": false - }, - "source": [ - "## 3. Vizualize the simulator bias\n", - "\n", - "These figures compare the online measurements to the offline measurements on a random set of points, for the objective metric. You can see the offline measurements are biased but highly correlated. This produces Fig. S3 from the paper." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "originalKey": "8260b668-91ef-404e-aa8c-4bf43f6a5660" - }, - "outputs": [], - "source": [ - "# Generate 50 points from a Sobol sequence\n", - "exp = get_experiment(include_true_metric=False)\n", - "s = get_sobol(exp.search_space, scramble=False)\n", - "gr = s.gen(50)\n", - "# Deploy them both online and offline\n", - "exp.new_batch_trial(trial_type=\"online\", generator_run=gr).run()\n", - "exp.new_batch_trial(trial_type=\"offline\", generator_run=gr).run()\n", - "# Fetch data\n", - "data = exp.fetch_data()\n", - "observations = observations_from_data(exp, data)\n", - "# Plot the arms in batch 0 (online) vs. batch 1 (offline)\n", - "render(interact_batch_comparison(observations, exp, 1, 0))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "69cf9e8e-361e-4546-871f-6bb8641d1b97" - }, - "source": [ - "## 4. The Bayesian optimization loop\n", - "\n", - "Here we construct a Bayesian optimization loop that interleaves online and offline batches. The loop defined here is described in Algorithm 1 of the paper. We compare multi-task Bayesian optimization to regular Bayesian optimization using only online observations.\n", - "\n", - "Here we measure performance over 3 repetitions of the loop. Each one takes 1-2 hours so the whole benchmark run will take several hours to complete." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "originalKey": "3d124563-8a1f-411e-9822-972568ce1970" - }, - "outputs": [], - "source": [ - "# Settings for the optimization benchmark.\n", - "\n", - "# Number of repeated experiments, each with independent observation noise.\n", - "# This should be changed to 50 to reproduce the results from the paper.\n", - "if SMOKE_TEST:\n", - " n_batches = 1\n", - " n_init_online = 2\n", - " n_init_offline = 2\n", - " n_opt_online = 2\n", - " n_opt_offline = 2\n", - "else:\n", - " n_batches = 3 # Number of optimized BO batches\n", - " n_init_online = 5 # Size of the quasirandom initialization run online\n", - " n_init_offline = 20 # Size of the quasirandom initialization run offline\n", - " n_opt_online = 5 # Batch size for BO selected points to be run online\n", - " n_opt_offline = 20 # Batch size for BO selected to be run offline" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "5447b3e7-b245-4fab-ad4a-165d7c63e09c" - }, - "source": [ - "#### 4a. Optimization with online observations only\n", - "For the online-only case, we run `n_init_online` sobol points followed by `n_batches` batches of `n_opt_online` points selected by the GP. This is a normal Bayesian optimization loop." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "040354c2-4313-46db-b40d-8adc8da6fafb" - }, - "outputs": [], - "source": [ - "# This function runs a Bayesian optimization loop, making online observations only.\n", - "def run_online_only_bo():\n", - " t1 = time.time()\n", - " ### Do BO with online only\n", - " ## Quasi-random initialization\n", - " exp_online = get_experiment()\n", - " m = get_sobol(exp_online.search_space, scramble=False)\n", - " gr = m.gen(n=n_init_online)\n", - " exp_online.new_batch_trial(trial_type=\"online\", generator_run=gr).run()\n", - " ## Do BO\n", - " for b in range(n_batches):\n", - " print(\"Online-only batch\", b, time.time() - t1)\n", - " # Fit the GP\n", - " m = Generators.BOTORCH_MODULAR(\n", - " experiment=exp_online,\n", - " data=exp_online.fetch_data(),\n", - " search_space=exp_online.search_space,\n", - " )\n", - " # Generate the new batch\n", - " gr = m.gen(\n", - " n=n_opt_online,\n", - " search_space=exp_online.search_space,\n", - " optimization_config=exp_online.optimization_config,\n", - " )\n", - " exp_online.new_batch_trial(trial_type=\"online\", generator_run=gr).run()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "c1837efe-9f41-4eb8-a415-309392724141" - }, - "source": [ - "#### 4b. Multi-task Bayesian optimization\n", - "Here we incorporate offline observations to accelerate the optimization, while using the same total number of online observations as in the loop above. The strategy here is that outlined in Algorithm 1 of the paper.\n", - "\n", - "1. Initialization - Run `n_init_online` Sobol points online, and `n_init_offline` Sobol points offline.\n", - "2. Fit model - Fit an MTGP to both online and offline observations.\n", - "3. Generate candidates - Generate `n_opt_offline` candidates using NEI.\n", - "4. Launch offline batch - Run the `n_opt_offline` candidates offline and observe their offline metrics.\n", - "5. Update model - Update the MTGP with the new offline observations.\n", - "6. Select points for online batch - Select the best (maximum utility) `n_opt_online` of the NEI candidates, after incorporating their offline observations, and run them online.\n", - "7. Update model and repeat - Update the model with the online observations, and repeat from step 3 for the next batch." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "def get_MTGP(\n", - " experiment: Experiment,\n", - " data: Data,\n", - " search_space: Optional[SearchSpace] = None,\n", - " trial_index: Optional[int] = None,\n", - " device: torch.device = torch.device(\"cpu\"),\n", - " dtype: torch.dtype = torch.double,\n", - ") -> TorchAdapter:\n", - " \"\"\"Instantiates a Multi-task Gaussian Process (MTGP) model that generates\n", - " points with EI.\n", - "\n", - " If the input experiment is a MultiTypeExperiment then a\n", - " Multi-type Multi-task GP model will be instantiated.\n", - " Otherwise, the model will be a Single-type Multi-task GP.\n", - " \"\"\"\n", - "\n", - " if isinstance(experiment, MultiTypeExperiment):\n", - " trial_index_to_type = {\n", - " t.index: t.trial_type for t in experiment.trials.values()\n", - " }\n", - " transforms = MT_MTGP_trans\n", - " transform_configs = {\n", - " \"TrialAsTask\": {\"trial_level_map\": {\"trial_type\": trial_index_to_type}},\n", - " \"ConvertMetricNames\": tconfig_from_mt_experiment(experiment),\n", - " }\n", - " else:\n", - " # Set transforms for a Single-type MTGP model.\n", - " transforms = ST_MTGP_trans\n", - " transform_configs = None\n", - "\n", - " # Choose the status quo features for the experiment from the selected trial.\n", - " # If trial_index is None, we will look for a status quo from the last\n", - " # experiment trial to use as a status quo for the experiment.\n", - " if trial_index is None:\n", - " trial_index = len(experiment.trials) - 1\n", - " elif trial_index >= len(experiment.trials):\n", - " raise ValueError(\"trial_index is bigger than the number of experiment trials\")\n", - "\n", - " status_quo = experiment.trials[trial_index].status_quo\n", - " if status_quo is None:\n", - " status_quo_features = None\n", - " else:\n", - " status_quo_features = ObservationFeatures(\n", - " parameters=status_quo.parameters,\n", - " trial_index=trial_index, # pyre-ignore[6]\n", - " )\n", - "\n", - " \n", - " return assert_is_instance(\n", - " Generators.ST_MTGP(\n", - " experiment=experiment,\n", - " search_space=search_space or experiment.search_space,\n", - " data=data,\n", - " transforms=transforms,\n", - " transform_configs=transform_configs,\n", - " torch_dtype=dtype,\n", - " torch_device=device,\n", - " status_quo_features=status_quo_features,\n", - " ),\n", - " TorchAdapter,\n", - " )" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "37735b0e-e488-4927-a3da-a7d32d9f1ae0" - }, - "outputs": [], - "source": [ - "# Online batches are constructed by selecting the maximum utility points from the offline\n", - "# batch, after updating the model with the offline results. This function selects the max utility points according\n", - "# to the MTGP predictions.\n", - "def max_utility_from_GP(n, m, experiment, search_space, gr):\n", - " obsf = []\n", - " for arm in gr.arms:\n", - " params = deepcopy(arm.parameters)\n", - " params[\"trial_type\"] = \"online\"\n", - " obsf.append(ObservationFeatures(parameters=params))\n", - " # Make predictions\n", - " f, cov = m.predict(obsf)\n", - " # Compute expected utility\n", - " u = -np.array(f[\"objective\"])\n", - " best_arm_indx = np.flip(np.argsort(u))[:n]\n", - " gr_new = GeneratorRun(\n", - " arms=[gr.arms[i] for i in best_arm_indx],\n", - " weights=[1.0] * n,\n", - " )\n", - " return gr_new\n", - "\n", - "\n", - "# This function runs a multi-task Bayesian optimization loop, as outlined in Algorithm 1 and above.\n", - "def run_mtbo():\n", - " t1 = time.time()\n", - " online_trials = []\n", - " ## 1. Quasi-random initialization, online and offline\n", - " exp_multitask = get_experiment()\n", - " # Online points\n", - " m = get_sobol(exp_multitask.search_space, scramble=False)\n", - " gr = m.gen(\n", - " n=n_init_online,\n", - " )\n", - " tr = exp_multitask.new_batch_trial(trial_type=\"online\", generator_run=gr)\n", - " tr.run()\n", - " online_trials.append(tr.index)\n", - " # Offline points\n", - " m = get_sobol(exp_multitask.search_space, scramble=False)\n", - " gr = m.gen(\n", - " n=n_init_offline,\n", - " )\n", - " exp_multitask.new_batch_trial(trial_type=\"offline\", generator_run=gr).run()\n", - " ## Do BO\n", - " for b in range(n_batches):\n", - " print(\"Multi-task batch\", b, time.time() - t1)\n", - " # (2 / 7). Fit the MTGP\n", - " m = get_MTGP(\n", - " experiment=exp_multitask,\n", - " data=exp_multitask.fetch_data(),\n", - " search_space=exp_multitask.search_space,\n", - " )\n", - "\n", - " # 3. Finding the best points for the online task\n", - " gr = m.gen(\n", - " n=n_opt_offline,\n", - " optimization_config=exp_multitask.optimization_config,\n", - " fixed_features=ObservationFeatures(\n", - " parameters={}, trial_index=online_trials[-1]\n", - " ),\n", - " )\n", - "\n", - " # 4. But launch them offline\n", - " exp_multitask.new_batch_trial(trial_type=\"offline\", generator_run=gr).run()\n", - "\n", - " # 5. Update the model\n", - " m = get_MTGP(\n", - " experiment=exp_multitask,\n", - " data=exp_multitask.fetch_data(),\n", - " search_space=exp_multitask.search_space,\n", - " )\n", - "\n", - " # 6. Select max-utility points from the offline batch to generate an online batch\n", - " gr = max_utility_from_GP(\n", - " n=n_opt_online,\n", - " m=m,\n", - " experiment=exp_multitask,\n", - " search_space=exp_multitask.search_space,\n", - " gr=gr,\n", - " )\n", - " tr = exp_multitask.new_batch_trial(trial_type=\"online\", generator_run=gr)\n", - " tr.run()\n", - " online_trials.append(tr.index)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "6708d9ee-34be-4d85-91cc-ed2af5dd8026" - }, - "source": [ - "#### 4c. Run both loops\n", - "Run both Bayesian optimization loops and aggregate results." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "f94a7537-61a6-4200-8e56-01de41aff6c9" - }, - "outputs": [], - "source": [ - "runners = {\n", - " \"GP, online only\": run_online_only_bo,\n", - " \"MTGP\": run_mtbo,\n", - "}\n", - "for k, r in runners.items():\n", - " r()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "1de5ae27-c925-4599-9425-332765a03416" - }, - "source": [ - "#### References\n", - "Benjamin Letham and Eytan Bakshy. Bayesian optimization for policy search via online-offline experimentation. _arXiv preprint arXiv:1603.09326_, 2019.\n", - "\n", - "Kevin Swersky, Jasper Snoek, and Ryan P Adams. Multi-task Bayesian optimization. In _Advances in Neural Information Processing Systems_ 26, NIPS, pages 2004–2012, 2013." - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.16" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/tutorials/multiobjective_optimization/multiobjective_optimization.ipynb b/tutorials/multiobjective_optimization/multiobjective_optimization.ipynb deleted file mode 100644 index 0f68ce287bd..00000000000 --- a/tutorials/multiobjective_optimization/multiobjective_optimization.ipynb +++ /dev/null @@ -1,1042 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "customInput": null, - "hidden_ranges": [], - "originalKey": "95e7a97a-bf78-48d4-a0c1-c0e8dfc4fed9", - "showInput": true - }, - "source": [ - "# Multi-Objective Optimization Ax API\n", - "### Using the Service API\n", - "For Multi-objective optimization (MOO) in the `AxClient`, objectives are specified through the `ObjectiveProperties` dataclass. An `ObjectiveProperties` requires a boolean `minimize`, and also accepts an optional floating point `threshold`. If a `threshold` is not specified, Ax will infer it through the use of heuristics. If the user knows the region of interest (because they have specs or prior knowledge), then specifying the thresholds is preferable to inferring it. But if the user would need to guess, inferring is preferable.\n", - "\n", - "\n", - "To learn more about how to choose a threshold, see [Set Objective Thresholds to focus candidate generation in a region of interest](/docs/tutorials/multiobjective_optimization/#set-objective-thresholds-to-focus-candidate-generation-in-a-region-of-interest). See the [Service API Tutorial](/docs/tutorials/gpei_hartmann_service) for more infomation on running experiments with the Service API." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import sys\n", - "in_colab = 'google.colab' in sys.modules\n", - "if in_colab:\n", - " %pip install ax-platform" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "customInput": null, - "hidden_ranges": [], - "originalKey": "06bf2029-0ea4-40b4-aced-956f1411cb6e", - "showInput": true - }, - "outputs": [], - "source": [ - "import torch\n", - "from ax.plot.pareto_frontier import plot_pareto_frontier\n", - "from ax.plot.pareto_utils import compute_posterior_pareto_frontier\n", - "from ax.service.ax_client import AxClient\n", - "from ax.service.utils.instantiation import ObjectiveProperties\n", - "\n", - "# Plotting imports and initialization\n", - "from ax.utils.notebook.plotting import init_notebook_plotting, render\n", - "from botorch.test_functions.multi_objective import BraninCurrin\n", - "import plotly.io as pio\n", - "\n", - "init_notebook_plotting()\n", - "if in_colab:\n", - " pio.renderers.default = \"colab\"" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Load our sample 2-objective problem\n", - "branin_currin = BraninCurrin(negate=True).to(\n", - " dtype=torch.double,\n", - " device=torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\"),\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "customInput": null, - "executionStartTime": 1628191188673, - "executionStopTime": 1628191188746, - "hidden_ranges": [], - "originalKey": "c687973d-1b09-4a8f-9108-1f74adf64d4d", - "requestMsgId": "ea523260-8896-48e4-a62f-3530d268b209", - "showInput": true - }, - "outputs": [], - "source": [ - "ax_client = AxClient()\n", - "ax_client.create_experiment(\n", - " name=\"moo_experiment\",\n", - " parameters=[\n", - " {\n", - " \"name\": f\"x{i+1}\",\n", - " \"type\": \"range\",\n", - " \"bounds\": [0.0, 1.0],\n", - " }\n", - " for i in range(2)\n", - " ],\n", - " objectives={\n", - " # `threshold` arguments are optional\n", - " \"a\": ObjectiveProperties(minimize=False, threshold=branin_currin.ref_point[0]),\n", - " \"b\": ObjectiveProperties(minimize=False, threshold=branin_currin.ref_point[1]),\n", - " },\n", - " overwrite_existing_experiment=True,\n", - " is_test=True,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "customInput": null, - "hidden_ranges": [], - "originalKey": "70fd45e1-a2ce-4034-bb44-086507833472", - "showInput": true - }, - "source": [ - "### Create an Evaluation Function\n", - "In the case of MOO experiments, evaluation functions can be any arbitrary function that takes in a `dict` of parameter names mapped to values and returns a `dict` of objective names mapped to a `tuple` of mean and SEM values." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "customInput": null, - "executionStartTime": 1628191201840, - "executionStopTime": 1628191201871, - "hidden_ranges": [], - "originalKey": "a0e4fa8d-ebc7-4dc6-b370-ed4a83e3208f", - "requestMsgId": "9cfd336d-c317-4d1c-a028-42d45903bac6", - "showInput": true - }, - "outputs": [], - "source": [ - "def evaluate(parameters):\n", - " evaluation = branin_currin(\n", - " torch.tensor([parameters.get(\"x1\"), parameters.get(\"x2\")])\n", - " )\n", - " # In our case, standard error is 0, since we are computing a synthetic function.\n", - " # Set standard error to None if the noise level is unknown.\n", - " return {\"a\": (evaluation[0].item(), 0.0), \"b\": (evaluation[1].item(), 0.0)}" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "customInput": null, - "hidden_ranges": [], - "originalKey": "4200cd7c-8e13-4cbf-b0c1-72b52d900aaf", - "showInput": true - }, - "source": [ - "### Run Optimization" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "executionStartTime": 1628191208271, - "executionStopTime": 1628191238749, - "originalKey": "f91b1a1e-c78a-4262-a211-a13115c007c1", - "requestMsgId": "842a1cf8-97a3-43d6-83a3-f258ea96ae20", - "showInput": true - }, - "outputs": [], - "source": [ - "for i in range(25):\n", - " parameters, trial_index = ax_client.get_next_trial()\n", - " # Local evaluation here can be replaced with deployment to external system.\n", - " ax_client.complete_trial(trial_index=trial_index, raw_data=evaluate(parameters))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "customInput": null, - "hidden_ranges": [], - "originalKey": "e0a6feb4-8c38-42e4-9d7c-62b79307e043", - "showInput": false - }, - "source": [ - "### Plot Pareto Frontier" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "customInput": null, - "executionStartTime": 1628191262231, - "executionStopTime": 1628191270720, - "hidden_ranges": [], - "originalKey": "c2c2b222-6b68-4f1a-839f-16b50019ada4", - "requestMsgId": "563d345b-573c-4d93-a480-5db88a283250", - "showInput": true - }, - "outputs": [], - "source": [ - "objectives = ax_client.experiment.optimization_config.objective.objectives\n", - "frontier = compute_posterior_pareto_frontier(\n", - " experiment=ax_client.experiment,\n", - " data=ax_client.experiment.fetch_data(),\n", - " primary_objective=objectives[1].metric,\n", - " secondary_objective=objectives[0].metric,\n", - " absolute_metrics=[\"a\", \"b\"],\n", - " num_points=20,\n", - ")\n", - "render(plot_pareto_frontier(frontier, CI_level=0.90))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "f4f6ce29-4a0c-4ac5-84a7-f83a4de9112c", - "showInput": true - }, - "source": [ - "# Deep Dive\n", - "\n", - "In the rest of this tutorial, we will show two algorithms available in Ax for multi-objective optimization\n", - "and visualize how they compare to eachother and to quasirandom search.\n", - "\n", - "MOO covers the case where we care about multiple\n", - "outcomes in our experiment but we do not know before hand a specific weighting of those\n", - "objectives (covered by `ScalarizedObjective`) or a specific constraint on one objective \n", - "(covered by `OutcomeConstraint`s) that will produce the best result.\n", - "\n", - "The solution in this case is to find a whole Pareto frontier, a surface in outcome-space\n", - "containing points that can't be improved on in every outcome. This shows us the\n", - "tradeoffs between objectives that we can choose to make." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "e04a24fa-dcfc-4430-960f-9c0e772fd754", - "showInput": true - }, - "source": [ - "### Problem Statement\n", - "\n", - "Optimize a list of M objective functions $ \\bigl(f^{(1)}( x),..., f^{(M)}( x) \\bigr)$ over a bounded search space $\\mathcal X \\subset \\mathbb R^d$.\n", - "\n", - "We assume $f^{(i)}$ are expensive-to-evaluate black-box functions with no known analytical expression, and no observed gradients. For instance, a machine learning model where we're interested in maximizing accuracy and minimizing inference time, with $\\mathcal X$ the set of possible configuration spaces" - ] - }, - { - "attachments": { - "pareto_front%20%281%29.png": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAE5wAABCzCAIAAACj6tz9AAAABGdBTUEAALGPC/xhBQAADGVpQ0NQSUNDIFByb2ZpbGUAAEiJlZcHXJNHG8DvHZkkrEAEZIS9RJEZQEYIK4KATEFUQhJIGDEmBBUXoqUK1i2iOCpaFVCwDkDqQMQ6i+K2juJApVKLVVyofBcS0Npv/L7jd+/93+eee+55Hu7y3gGg08mXyXJRXQDypPnyuPBg1qSUVBbpESDAP20AAIUvUMg4sbFRkMFQ+/fy+jpAVO0VF5Wtf/b/16IvFCkEACBpkDOECkEe5BYA8GKBTJ4PADEEyq1n5stULIZsIIcOQp6r4iw1r1Rxhpp3DOokxHEhNwFApvH58iwAtNugnFUgyIJ2tB9BdpUKJVIAdAwgBwjEfCHkBMij8vKmq7gIsgPUl0HeDZmd8YXNrL/Zzxi2z+dnDbM6rsFCDpEoZLn82f9nav53yctVDs1hBytNLI+IU8UPc3gzZ3qkimmQe6QZ0TGqXEN+KxGq8w4AShUrIxLV+qipQMGF+QNMyK5CfkgkZFPIYdLc6CiNPCNTEsaDDFcLOkuSz0vQjF0iUoTGa2xukk+PixniTDmXoxlbx5cPzqvSb1PmJHI09m+KRbwh+68KxQnJkKkAYNQCSVI0ZLgGMQNFTnykWgezKhRzo4d05Mo4lf82kNkiaXiw2j6WlikPi9Poy/IUQ/FiJWIJL1rDFfnihAh1frAaAX/QfyPIDSIpJ3HIjkgxKWooFqEoJFQdO9YukiZq4sXuyfKD4zRje2W5sRp9nCzKDVfJrSCbKAriNWPxcflwcart41Gy/NgEtZ94ejZ/fKzaH7wARAEuCAEsoIQ1A0wH2UDS3tPYA9/UPWGAD+QgC4iAi0YyNCJ5sEcKn/GgEPwBSQQUw+OCB3tFoADKPw5L1U8XkDnYWzA4Igc8hpwHIkEufFcOjpIOz5YEHkGJ5B+zC6CvubCq+v4p40BJlEaiHLLL0hnSJIYSQ4gRxDCiI26CB+B+eBR8BsHqhrNxnyFvP+sTHhM6CA8I1widhFvTJMXyr3yZADqh/TBNxBlfRozbQZueeDDuD61DyzgTNwEuuAech4MHwpk9oZSr8VsVO+vfxDkcwRc51+hRXCkoZQQliOLw9UhtJ23PYSuqjH6ZH7WvGcNZ5Q73fD0/94s8C2Eb+bUmtgQ7gJ3GTmBnsSNYI2Bhx7Em7AJ2VMXDa+jR4Boami1u0J8caEfyj/n4mjlVmVS41rp2u37Q9IF80ax81QbjTpfNlkuyxPksDvwKiFg8qWD0KJabq5srAKpvivpn6iVz8FuBMM99lhXfBcA/ZWBg4MhnWRTcpwefwm3e81lmXwsA/RgAZ74RKOUFahmuehDgr4EO3FHGwBxYAwcYkRvwAn4gCISC8SAGJIAUMBXmWQzXsxzMBHPBQlACysBKsA5sBFvBdrAb7AX7QSM4Ak6An8F5cAlcA7fh+ukCz0AveA36EQQhIXSEgRgjFogt4oy4IWwkAAlFopA4JAVJR7IQKaJE5iKLkDJkNbIR2YZUIz8ih5ETyFmkA7mF3Ee6kb+Q9yiG0lAD1Ay1Q8egbJSDRqIJ6BQ0C52BFqKL0eVoBVqF7kEb0BPoefQa2ok+Q/swgGlhTMwSc8HYGBeLwVKxTEyOzcdKsXKsCqvDmuF/+grWifVg73AizsBZuAtcwxF4Ii7AZ+Dz8WX4Rnw33oC34Vfw+3gv/olAJ5gSnAm+BB5hEiGLMJNQQign7CQcIpyCu6mL8JpIJDKJ9kRvuBtTiNnEOcRlxM3EemILsYP4kNhHIpGMSc4kf1IMiU/KJ5WQNpD2kI6TLpO6SG/JWmQLshs5jJxKlpKLyeXkGvIx8mXyE3I/RZdiS/GlxFCElNmUFZQdlGbKRUoXpZ+qR7Wn+lMTqNnUhdQKah31FPUO9aWWlpaVlo/WRC2JVpFWhdY+rTNa97Xe0fRpTjQuLY2mpC2n7aK10G7RXtLpdDt6ED2Vnk9fTq+mn6Tfo7/VZmiP1uZpC7UXaFdqN2hf1n6uQ9Gx1eHoTNUp1CnXOaBzUadHl6Jrp8vV5evO163UPax7Q7dPj6E3Vi9GL09vmV6N3lm9p/okfTv9UH2h/mL97fon9R8yMIY1g8sQMBYxdjBOMboMiAb2BjyDbIMyg70G7Qa9hvqGHoZJhrMMKw2PGnYyMaYdk8fMZa5g7mdeZ74fYTaCM0I0YumIuhGXR7wxGmkUZCQyKjWqN7pm9N6YZRxqnGO8yrjR+K4JbuJkMtFkpskWk1MmPSMNRvqNFIwsHbl/5K+mqKmTaZzpHNPtphdM+8zMzcLNZGYbzE6a9ZgzzYPMs83Xmh8z77ZgWARYSCzWWhy3+J1lyOKwclkVrDZWr6WpZYSl0nKbZbtlv5W9VaJVsVW91V1rqjXbOtN6rXWrda+Nhc0Em7k2tTa/2lJs2bZi2/W2p23f2NnbJdt9a9do99TeyJ5nX2hfa3/Hge4Q6DDDocrhqiPRke2Y47jZ8ZIT6uTpJHaqdLrojDp7OUucNzt3jCKM8hklHVU16oYLzYXjUuBS63J/NHN01Oji0Y2jn4+xGZM6ZtWY02M+uXq65rrucL09Vn/s+LHFY5vH/uXm5CZwq3S76k53D3Nf4N7k/sLD2UPkscXjpifDc4Lnt56tnh+9vL3kXnVe3d423unem7xvsA3Ysexl7DM+BJ9gnwU+R3ze+Xr55vvu9/3Tz8Uvx6/G7+k4+3GicTvGPfS38uf7b/PvDGAFpAd8H9AZaBnID6wKfBBkHSQM2hn0hOPIyebs4TwPdg2WBx8KfsP15c7jtoRgIeEhpSHtofqhiaEbQ++FWYVlhdWG9YZ7hs8Jb4kgRERGrIq4wTPjCXjVvN7x3uPnjW+LpEXGR26MfBDlFCWPap6AThg/Yc2EO9G20dLoxhgQw4tZE3M31j52RuxPE4kTYydWTnwcNzZubtzpeEb8tPia+NcJwQkrEm4nOiQqE1uTdJLSkqqT3iSHJK9O7pw0ZtK8SedTTFIkKU2ppNSk1J2pfZNDJ6+b3JXmmVaSdn2K/ZRZU85ONZmaO/XoNJ1p/GkH0gnpyek16R/4Mfwqfl8GL2NTRq+AK1gveCYMEq4Vdov8RatFTzL9M1dnPs3yz1qT1S0OFJeLeyRcyUbJi+yI7K3Zb3JicnblDOQm59bnkfPS8w5L9aU50rbp5tNnTe+QOctKZJ0zfGesm9Erj5TvVCCKKYqmfAN4eL+gdFB+o7xfEFBQWfB2ZtLMA7P0ZklnXZjtNHvp7CeFYYU/zMHnCOa0zrWcu3Du/XmcedvmI/Mz5rcusF6weEFXUXjR7oXUhTkLfyl2LV5d/GpR8qLmxWaLixY//Cb8m9oS7RJ5yY1v/b7dugRfIlnSvtR96Yaln0qFpefKXMvKyz4sEyw7993Y7yq+G1ieubx9hdeKLSuJK6Urr68KXLV7td7qwtUP10xY07CWtbZ07at109adLfco37qeul65vrMiqqJpg82GlRs+bBRvvFYZXFm/yXTT0k1vNgs3X94StKVuq9nWsq3vv5d8f3Nb+LaGKruq8u3E7QXbH+9I2nH6B/YP1TtNdpbt/LhLuqtzd9zutmrv6uoa05oVtWitsrZ7T9qeS3tD9jbVudRtq2fWl+0D+5T7fv8x/cfr+yP3tx5gH6g7aHtw0yHGodIGpGF2Q2+juLGzKaWp4/D4w63Nfs2Hfhr9064jlkcqjxoeXXGMemzxsYHjhcf7WmQtPSeyTjxsndZ6++Skk1fbJra1n4o8debnsJ9PnuacPn7G/8yRs75nD59jn2s873W+4YLnhUO/eP5yqN2rveGi98WmSz6XmjvGdRy7HHj5xJWQKz9f5V09fy36Wsf1xOs3b6Td6LwpvPn0Vu6tF78W/Np/u+gO4U7pXd275fdM71X95vhbfadX59H7IfcvPIh/cPuh4OGzR4pHH7oWP6Y/Ln9i8aT6qdvTI91h3Zd+n/x71zPZs/6ekj/0/tj03OH5wT+D/rzQO6m364X8xcBfy14av9z1yuNVa19s373Xea/735S+NX67+x373en3ye+f9M/8QPpQ8dHxY/OnyE93BvIGBmR8OX/wKIDBimZmAvDXLnhOSAGAcQmeHyar73yDBVHfUwcJ/CdW3wsHixcAdbBRHde5LQDsg9WuCNqG76qjekIQQN3dh6umKDLd3dS2aPDGQ3g7MPDSDABSMwAf5QMD/ZsHBj7COyp2C4CWGeq7pqoQ4d3g+yAVXTMSFoGvivoe+kWMX7dA5YEH+Lr9F7miiVD3w44kAAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAAJcEhZcwABM5UAATOVAWBIbPYAACAASURBVHic7N1BbttKEADRjOH7X3n+IkEQ2PiJSKk8HPq9pWFRLa16oUKPOecPAAAAAAAAAAAAAAAAAAAova0eAAAAAAAAAAAAAAAAAACA+xO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAA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AAAAAAAAAAAAAAAAAADhRK0AAAAAAAAAAAAAAAAAAIQTtQIAAAAAAAAAAAAAAAAAEE7UCgAAAAAAAAAAAAAAAABAOFErAAAAAAAAAAAAAAAAAADhRK0AAAAAAAAAAAAAAAAAAIQTtQIAAAAAAAAAAAAAAAAAEE7UCgAAAAAAAAAAAAAAAABAOFErAAAAAAAAAAAAAAAAAADhRK0AAAAAAAAAAAAAAAAAAIQTtQIAAAAAAAAAAAAAAAAAEE7UCgAAAAAAAAAAAAAAAABAOFErAAAAAAAAAAAAAAAAAADhRK0AAAAAAAAAAAAAAAAAAIQTtQIAAAAAAAAAAAAAAAAAEE7UCgAAAAAAAAAAAAAAAABAOFErAAAAAAAAAAAAAAAAAADhRK0AAAAAAAAAAAAAAAAAAIQTtQIAAAAAAAAAAAAAAAAAEE7UCgAAAAAAAAAAAAAAAABAOFErAAAAAAAAAAAAAAAAAADhRK0AAAAAAAAAAAAAAAAAAIQTtQIAAAAAAAAAAAAAAAAAEE7UCgAAAAAAAAAAAAAAAABAOFErAAAAAAAAAAAAAAAAAADhRK0AAAAAAAAAAAAAAAAAAIQTtQIAAAAAAAAAAAAAAAAAEE7UCgAAAAAAAAAAAAAAAABAOFErAAAAAAAAAAAAAAAAAADhRK0AAAAAAAAAAAAAAAAAAIQTtQIAAAAAAAAAAAAAAAAAEE7UCgAAAAAAAAAAAAAAAABAOFErAAAAAAAAAAAAAAAAAADhRK0AAAAAAAAAAAAAAAAAAIQTtQIAAAAAAAAAAAAAAAAAEE7UCgAAAAAAAAAAAAAAAABAOFErAAAAAAAAAAAAAAAAAADhRK0AAAAAAAAAAAAAAAAAAIQTtQIAAAAAAAAAAAAAAAAAEE7UCgAAAAAAAAAAAAAAAABAOFErAAAAAAAAAAAAAAAAAADhRK0AAAAAAAAAAAAAAAAAAIQTtQIAAAAAAAAAAAAAAAAAEE7UCgAAAAAAAAAAAAAAAABAOFErAAAAAAAAAAAAAAAAAADhRK0AAAAAAAAAAAAAAAAAAIQTtQIAAAAAAAAAAAAAAAAAEE7UCgAAAAAAAAAAAAAAAABAOFErAAAAAAAAAAAAAAAAAADhRK0AAAAAAAAAAAAAAAAAAIQTtQIAAAAAAAAAAAAAAAAAEE7UCgAAAAAAAAAAAAAAAABAOFErAAAA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AAAAAAAAAAAAAABAOFErAAAAAAAAAAAAAAAAAADhRK0AAAAAAAAAAAAAAAAAAIQTtQIAAAAAAAAAAAAAAAAAEE7UCgAAAAAAAAAAAAAAAABAOFErAAAAAAAAAAAAAAAAAADhRK0AAAAAAAAAAAAAAAAAAIQTtQIAAAAAAAAAAAAAAAAAEE7UCgAAAAAAAAAAAAAAAABAOFErAAAAAAAAAAAAAAAAAADhRK0AAAAAAAAAAAAAAAAAAIQTtQIAAAAAAAAAAAAAAAAAEE7UCgAAAAAAAAAAAAAAAABAOFErAAAAAAAAAAAAAAAAAADhRK0AAAAAAAAAAAAAAAAAAIQTtQIAAAAAAAAAAAAAAAAAEE7UCgAAAAAAAAAAAAAAAABAOFErAAAAAAAAAAAAAAAAAADhRK0AAAAAAAAAAAAAAAAAAIQTtQIAAAAAAAAAAAAAAAAAEE7UCgAAAAAAAAAAAAAAAABAOFErAAAAAAAAAAAAAAAAAADhRK0AAAAAAAAAAAAAAAAAAIRbrtdr7TUAAEA5y7JkOY4P0gAAAAAAAAAAAAAAsItJrQAAAAAAAAAAAAAAAAAAhBO1AgAAAAAAAAAAAAAAAAAQTtQKAAAAAAAAAAAAAAAAAEA4USsAAAAAAAAAAAAAAAAAAOFErQAAAAAAAAAAAAAAAAAAhBO1AgAAAAAAAAAAAAAAAAAQTtQKAAAAAAAAAAAAAAAAAEA4USsAAAAAAAAAAAAAAAAAAOFErQAAAAAAAAAAAAAAAAAAhBO1AgAAAAAAAAAAAAAAAAAQTtQKAAAAAAAAAAAAAAAAAEA4USsAAAAAAAAAAAAAAAAAAOFErQAAAAAAAAAAAAAAAAAAhBO1AgAAAAAAAAAAAAAAAAAQTtQKAAAAAAAAAAAAAAAAAEA4USsAAAAAAAAAAAAAAAAAAOFErQAAAAAAAAAAAAAAAAAAhBO1AgAAAAAAAAAAAAAAAAAQTtQKAAAAAAAAAAAAAAAAAEA4USsAAAAAAAAAAAAAAAAAAOFErQAAAAAAAAAAAAAAAAAAhBO1AgAAAAAAAAAAAAAAAAAQTtQKAAAAAAAAAAAAAAAAAEA4USsAAAAAAAAAAAAAAAAAAOFErQAAAAAAAAAAAAAAAAAAhBO1AgAAAAAAAAAAAAAAAAAQTtQKAAAAAAAAAAAAAAAAAEA4USsAAAAAAAAAAAAAAAAAAOFErQAAAAAAAAAAAAAAAAAAhBO1AgAAAAAAAAAAAAAAAAAQTtQKAAAAAAAAAAAAAAAAAEA4USsAAAAAAAAAAAAAAAAAAOFErQAAAAAAAAAAAAAAAAAAhBO1AgAAAAAAAAAAAAAAAAAQTtQKAAAAAAAAAAAAAAAAAEA4USsAAAAAAAAAAAAAAAAAAOFErQAAAAAAAAAAAAAAAAAAhBO1AgAAAAAAAAAAAAAAAAAQTtQKAAAAAAAAAAAAAAAAAEA4USsAAAAAAAAAAAAAAAAAAOFErQAAAAAAAAAAAAAAAAAAhBO1AgAAAAAAAAAAAAAAAAAQTtQKAAAAAAAAAAAAAAAAAEA4USsAAAAAAAAAAAAAAAAAAOFErQAAAAAAAAAAAAAAAAAAhBO1AgAAAAAAAAAAAAAAAAAQTtQKAAAAAAAAAAAAAAAAAEA4USsAAAAAAAAAAAAAAAAAAOFErQAAAAAAAAAAAAAAAAAAhBO1AgAAAAAAAAAAAAAAAAAQTtQKAAAAAAAAAAAAAAAAAEA4USsAAAAAAAAAAAAAAAAAAOFErQAAAAAAAAAAAAAAAAAAhBO1AgAAAAAAAAAAAAAAAAAQTtQKAAAAAAAAAAAAAAAAAEA4USsAAAAAAAAAAAAAAAAAAOFuay8Aune5XLIc53w+ZzkOAAAAjMT3bgDoi2c3AHQk14P75NkNAEX40g0AffHsBgD4ikmtAAAAAAAAAAAAAAAAAACEE7UCAAAAAAAAAAAAAAAAABBO1AoAAAAAAAAAAAAAAAAAQDhRKwAAAAAAAAAAAAAAAAAA4UStAAAAAAAAAAAAAAAAAACEE7UCAAAAAAAAAAAAAAAAABBO1AoAAAAAAAAAAAAAAAAAQDhRKwAAAAAAAAAAAAAAAAAA4UStAAAAAAAAAAAAAAAAAACEE7UCAAAAAAAA8A97d2zDQAgEQNBIbor+gy8LV+DAEvsvrJkCTmQHwQoAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAIDcWGs9fQYAALjPGGPLHBdpAAAAAAAAAAAAAAD4iZ9aAQAAAAAAAAAAAAAAAADIiVoBAAAAAAAAAAAAAAAAAMiJWgEAAAAAAAAAAAAAAAAAyIlaAQAAAAAAAAAAAAAAAADIiVoBAAAAAAAAAAAAAAAAAMiJWgEAAAAAAAAAAAAAAAAAyIlaAQAAAAAAAAAAAAAAAADIiVoBAAAAAAAAAAAAAAAAAMiJWgEAAAAAAAAAAAAAAAAAyIlaAQAAAAAAAAAAAAAAAADIiVoBAAAAAAAAAAAAAAAAAMiJWgEAAAAAAAAAAAAAAAAAyIlaAQAAAAAAAAAAAAAAAADIiVoBAAAAAAAAAAAAAAAAAMiJWgEAAAAAAAAAAAAAAAAAyIlaAQAAAAAAAAAAAAAAAADIiVoBAAAAAAAAAAAAAAAAAMiJWgEAAAAAAAAAAAAAAAAAyIlaAQAAAAAAAAAAAAAAAADIiVoBAAAAAAAAAAAAAAAAAMiJWgEAAAAAAAAAAAAAAAAAyIlaAQAAAAAAAAAAAAAAAADIiVoBAAAAAAAAAAAAAAAAAMiJWgEAAAAAAAAAAAAAAAAAyIlaAQAAAAAAAAAAAAAAAADIiVoBAAAAAAAAAAAAAAAAAMiJWgEAAAAAAAAAAAAAAAAAyIlaAQAAAAAAAAAAAAAAAADIiVoBAAAAAAAAAAAAAAAAAMiJWgEAAAAAAAAAAAAAAAAAyIlaAQAAAAAAAAAAAAAAAADIiVoBAAAAAAAAAAAAAAAAAMiJWgEAAAAAAAAAAAAAAAAAyIlaAQAAAAAAAAAAAAAAAADIiVoBAAAAAAAAAAAAAAAAAMiJWgEAAAAAAAAAAAAAAAAAyIlaAQAAAAAAAAAAAAAAAADIiVoBAAAAAAAAAAAAAAAAAMiJWgEAAAAAAAAAAAAAAAAAyIlaAQAAAAAAAAAAAAAAAADIiVoBAAAAAAAAAAAAAAAAAMiJWgEAAAAAAAAAAAAAAAAAyIlaAQAAAAAAAAAAAAAAAADIiVoBAAAAAAAAAAAAAAAAAMiJWgEAAAAAAAAAAAAAAAAAyIlaAQAAAAAAAAAAAAAAAADIiVoBAAAAAAAAAAAAAAAAAMiJWgEAAAAAAAAA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AAAAAAAAAAAAAAAAyIlaAQAAAAAAAAAAAAAAAADIiVoBAAAAAAAAAAAAAAAAAMiJWgEAAAAAAAAAAAAAAAAAyIlaAQAAAAAAAAAAAAAAAADIiVoBAAAAAAAAAAAAAAAAAMiJWgEAAAAAAAAAAAAAAAAAyIlaAQAAAAAAAAAAAAAAAADIiVoBAAAAAAAAAAAAAAAAAMiJWgEAAAAAAAAAAAAAAAAAyIlaAQAAAAAAAAAAAAAAAADIiVoBAAAAAAAAAAAAAAAAAMiNtdbTZwAAgPuMMbbMcZEGAAAAAAAAAAAAAICf+KkVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAA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AAAAAAAAyIlaAQAAAAAAAAAAAAAAAADIiVoBAAAAAAAAAAAAAAAAAMiJWgEAAAAAAAAAAAAAAAAAyIlaAQAAAAAAAAAAAAAAAADIiVoBAAAAAAAAAAAAAAAAAMiJWgEAAAAAAAAAAAAAAAAAyIlaAQAAAAAAAAAAAAAAAADIiVoBAAAAAAAAAAAAAAAAAMiJWgEAAAAAAAAAAAAAAAAAyIlaAQAAAAAAAAAAAAAAAADIiVoBAAAAAAAAAAAAAAAAAMiJWgEAAAAAAAAAAAAAAAAAyIlaAQAAAAAAAAAAAAAAAADIiVoBAAAAAAAAAAAAAAAAAMiJWgEAAAAAAAAAAAAAAAAAyIlaAQAAAAAAAAAAAAAAAADIiVoBAAAAAAAAAAAAAAAAAMiJWgEAAAAAAAAAAAAAAAAAyC3btp19BwAAOM6yLLuc44c0AAAAAAAAAAAAAAD8iTe1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJATtQIAAAAAAAAAAAAAAAAAkBO1AgAAAAAAAAAAAAAAAACQE7UCAAAAAAAAAAAAAAAAAJB7nn0BmN4YY5dz1nXd5RwAAAD4Jp67AWAudjcATGSvxf2wuwHgEB66AWAudjcAwCve1AoAAAAAAAAAAAAAAAAAQE7UCgAAAAAAAAAAAAAAAABATtQKAAAAAAAAAAAAAAAAAEBO1AoAAAAAAAAAAAAAAAAAQE7UCgAAAAAAAAAAAAAAAABATtQKAAAAAAAAAAAAAAAAAEBO1AoAAAAAAAAAAAAAAAAAQE7UCgAAAAAAAAAAAAAAAABATtQKAAAAAAAAAAAAAAAAAEBO1AoAAAAAAAAAAAAAAAAAQE7UCgAAAAAAAAAAAAAAAABATtQKAAAAAAAAAAAAAAAAAEBO1AoAAAAAAAAAAAAAAAAAQE7UCgAAAAAAAAAAAAAAAABATtQKAAAAAAAAAAAAAAAAAEBO1AoAAAAAAAAAAAAAAAAAQE7UCgAAAAAAAAAAAAAAAABATtQKAAAAAAAAAAAAAAAAAEBO1AoAAAAAAAAAAAAAAAAAQE7UCgAAAAAAAAAAAAAAAABATtQKAAAAAAAAAAAAAAAAAEBO1AoAAAAAAAAAAAAAAAAAQE7UCgAAAAAAAAAAAAAAAABAbtm27ew7AADAcZZl2eUcP6QBAAAAAAAAAAAAAOBPvKkVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAJ98IBgAAH+JJREFUAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAAAAAAAAAAAAAAAICcqBUAAAAAAAAAAAAAAAAAgJyoFQAAAAAAAAAAAAAAAACAnKgVAAAA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AAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAAAgJ2oFAAAAAAAAAAAAAAAAACAnagUAAAAAAAAAAAAAAAAAICdqBQAAAAAAAAAAAAAAAG77diwAAAAAMMjfehT7yiMA2EmtAAAAAAAAAAAAAAAAAADspFYAAAAAAAAAAAAAAAAAAHZSKwAAAAAAAAAAAAAAAAAAO6kVAAAAAAAAAAAAAAAAAICd1AoAAAAAAAAAAAAAAAAAwE5qBQAAAAAAAAAAAAAAAABgJ7UCAAAAAAAAAAAAAAAAALCTWgEAAAAAAAAAAAAAAAAA2EmtAAAAAAAAAAAAAAAAAADspFYAAAAAAAAAAAAAAAAAAHZSKwAAAAAAAAAAAAAAAAAAO6kVAAAAAAAAAAAAAAAAAICd1AoAAAAAAAAAAAAAAAAAwE5qBQAAAAAAAAAAAAAAAABgJ7UCAAAAAAAAAAAAAAAAALCTWgEAAAAAAAAAAAAAAAAA2EmtAAAAAAAAAAAAAAAAAADspFYAAAAAAAAAAAAAAAAAAHZSKwAAAAAAAAAAAAAAAAAAO6kVAAAAAAAAAAAAAAAAAICd1AoAAAAAAAAAAAAAAAAAwE5qBQAAAAAAAAAAAAAAAABgJ7UCAAAAAAAAAAAAAAAAALCTWgEAAAAAAAAAAAAAAAAA2EmtAAAAAAAAAAAAAAAAAADsAmIeM7La1XzAAAAAAElFTkSuQmCC" - } - }, - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "1842c5bf-4113-406b-b2c7-bc2535e9dd6c", - "showInput": false - }, - "source": [ - "### Pareto Optimality\n", - "\n", - "In a multi-objective optimization problem, there typically is no single best solution. Rather, the *goal* is to identify the set of Pareto optimal solutions such that any improvement in one objective means deteriorating another. Provided with the Pareto set, decision-makers can select an objective trade-off according to their preferences. In the plot below, the red dots are the Pareto optimal solutions (assuming both objectives are to be minimized).\n", - "![pareto front](attachment:pareto_front%20%281%29.png)" - ] - }, - { - "attachments": { - "hv_figure%20%281%29.png": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAEo0AABAwCAIAAAAyLI+dAAAABGdBTUEAALGPC/xhBQAADGVpQ0NQSUNDIFByb2ZpbGUAAEiJlZcHXJNHG8DvHZkkrEAEZIS9RJEZQEYIK4KATEFUQhJIGDEmBBUXoqUK1i2iOCpaFVCwDkDqQMQ6i+K2juJApVKLVVyofBcS0Npv/L7jd+/93+eee+55Hu7y3gGg08mXyXJRXQDypPnyuPBg1qSUVBbpESDAP20AAIUvUMg4sbFRkMFQ+/fy+jpAVO0VF5Wtf/b/16IvFCkEACBpkDOECkEe5BYA8GKBTJ4PADEEyq1n5stULIZsIIcOQp6r4iw1r1Rxhpp3DOokxHEhNwFApvH58iwAtNugnFUgyIJ2tB9BdpUKJVIAdAwgBwjEfCHkBMij8vKmq7gIsgPUl0HeDZmd8YXNrL/Zzxi2z+dnDbM6rsFCDpEoZLn82f9nav53yctVDs1hBytNLI+IU8UPc3gzZ3qkimmQe6QZ0TGqXEN+KxGq8w4AShUrIxLV+qipQMGF+QNMyK5CfkgkZFPIYdLc6CiNPCNTEsaDDFcLOkuSz0vQjF0iUoTGa2xukk+PixniTDmXoxlbx5cPzqvSb1PmJHI09m+KRbwh+68KxQnJkKkAYNQCSVI0ZLgGMQNFTnykWgezKhRzo4d05Mo4lf82kNkiaXiw2j6WlikPi9Poy/IUQ/FiJWIJL1rDFfnihAh1frAaAX/QfyPIDSIpJ3HIjkgxKWooFqEoJFQdO9YukiZq4sXuyfKD4zRje2W5sRp9nCzKDVfJrSCbKAriNWPxcflwcart41Gy/NgEtZ94ejZ/fKzaH7wARAEuCAEsoIQ1A0wH2UDS3tPYA9/UPWGAD+QgC4iAi0YyNCJ5sEcKn/GgEPwBSQQUw+OCB3tFoADKPw5L1U8XkDnYWzA4Igc8hpwHIkEufFcOjpIOz5YEHkGJ5B+zC6CvubCq+v4p40BJlEaiHLLL0hnSJIYSQ4gRxDCiI26CB+B+eBR8BsHqhrNxnyFvP+sTHhM6CA8I1widhFvTJMXyr3yZADqh/TBNxBlfRozbQZueeDDuD61DyzgTNwEuuAech4MHwpk9oZSr8VsVO+vfxDkcwRc51+hRXCkoZQQliOLw9UhtJ23PYSuqjH6ZH7WvGcNZ5Q73fD0/94s8C2Eb+bUmtgQ7gJ3GTmBnsSNYI2Bhx7Em7AJ2VMXDa+jR4Boami1u0J8caEfyj/n4mjlVmVS41rp2u37Q9IF80ax81QbjTpfNlkuyxPksDvwKiFg8qWD0KJabq5srAKpvivpn6iVz8FuBMM99lhXfBcA/ZWBg4MhnWRTcpwefwm3e81lmXwsA/RgAZ74RKOUFahmuehDgr4EO3FHGwBxYAwcYkRvwAn4gCISC8SAGJIAUMBXmWQzXsxzMBHPBQlACysBKsA5sBFvBdrAb7AX7QSM4Ak6An8F5cAlcA7fh+ukCz0AveA36EQQhIXSEgRgjFogt4oy4IWwkAAlFopA4JAVJR7IQKaJE5iKLkDJkNbIR2YZUIz8ih5ETyFmkA7mF3Ee6kb+Q9yiG0lAD1Ay1Q8egbJSDRqIJ6BQ0C52BFqKL0eVoBVqF7kEb0BPoefQa2ok+Q/swgGlhTMwSc8HYGBeLwVKxTEyOzcdKsXKsCqvDmuF/+grWifVg73AizsBZuAtcwxF4Ii7AZ+Dz8WX4Rnw33oC34Vfw+3gv/olAJ5gSnAm+BB5hEiGLMJNQQign7CQcIpyCu6mL8JpIJDKJ9kRvuBtTiNnEOcRlxM3EemILsYP4kNhHIpGMSc4kf1IMiU/KJ5WQNpD2kI6TLpO6SG/JWmQLshs5jJxKlpKLyeXkGvIx8mXyE3I/RZdiS/GlxFCElNmUFZQdlGbKRUoXpZ+qR7Wn+lMTqNnUhdQKah31FPUO9aWWlpaVlo/WRC2JVpFWhdY+rTNa97Xe0fRpTjQuLY2mpC2n7aK10G7RXtLpdDt6ED2Vnk9fTq+mn6Tfo7/VZmiP1uZpC7UXaFdqN2hf1n6uQ9Gx1eHoTNUp1CnXOaBzUadHl6Jrp8vV5evO163UPax7Q7dPj6E3Vi9GL09vmV6N3lm9p/okfTv9UH2h/mL97fon9R8yMIY1g8sQMBYxdjBOMboMiAb2BjyDbIMyg70G7Qa9hvqGHoZJhrMMKw2PGnYyMaYdk8fMZa5g7mdeZ74fYTaCM0I0YumIuhGXR7wxGmkUZCQyKjWqN7pm9N6YZRxqnGO8yrjR+K4JbuJkMtFkpskWk1MmPSMNRvqNFIwsHbl/5K+mqKmTaZzpHNPtphdM+8zMzcLNZGYbzE6a9ZgzzYPMs83Xmh8z77ZgWARYSCzWWhy3+J1lyOKwclkVrDZWr6WpZYSl0nKbZbtlv5W9VaJVsVW91V1rqjXbOtN6rXWrda+Nhc0Em7k2tTa/2lJs2bZi2/W2p23f2NnbJdt9a9do99TeyJ5nX2hfa3/Hge4Q6DDDocrhqiPRke2Y47jZ8ZIT6uTpJHaqdLrojDp7OUucNzt3jCKM8hklHVU16oYLzYXjUuBS63J/NHN01Oji0Y2jn4+xGZM6ZtWY02M+uXq65rrucL09Vn/s+LHFY5vH/uXm5CZwq3S76k53D3Nf4N7k/sLD2UPkscXjpifDc4Lnt56tnh+9vL3kXnVe3d423unem7xvsA3Ysexl7DM+BJ9gnwU+R3ze+Xr55vvu9/3Tz8Uvx6/G7+k4+3GicTvGPfS38uf7b/PvDGAFpAd8H9AZaBnID6wKfBBkHSQM2hn0hOPIyebs4TwPdg2WBx8KfsP15c7jtoRgIeEhpSHtofqhiaEbQ++FWYVlhdWG9YZ7hs8Jb4kgRERGrIq4wTPjCXjVvN7x3uPnjW+LpEXGR26MfBDlFCWPap6AThg/Yc2EO9G20dLoxhgQw4tZE3M31j52RuxPE4kTYydWTnwcNzZubtzpeEb8tPia+NcJwQkrEm4nOiQqE1uTdJLSkqqT3iSHJK9O7pw0ZtK8SedTTFIkKU2ppNSk1J2pfZNDJ6+b3JXmmVaSdn2K/ZRZU85ONZmaO/XoNJ1p/GkH0gnpyek16R/4Mfwqfl8GL2NTRq+AK1gveCYMEq4Vdov8RatFTzL9M1dnPs3yz1qT1S0OFJeLeyRcyUbJi+yI7K3Zb3JicnblDOQm59bnkfPS8w5L9aU50rbp5tNnTe+QOctKZJ0zfGesm9Erj5TvVCCKKYqmfAN4eL+gdFB+o7xfEFBQWfB2ZtLMA7P0ZklnXZjtNHvp7CeFYYU/zMHnCOa0zrWcu3Du/XmcedvmI/Mz5rcusF6weEFXUXjR7oXUhTkLfyl2LV5d/GpR8qLmxWaLixY//Cb8m9oS7RJ5yY1v/b7dugRfIlnSvtR96Yaln0qFpefKXMvKyz4sEyw7993Y7yq+G1ieubx9hdeKLSuJK6Urr68KXLV7td7qwtUP10xY07CWtbZ07at109adLfco37qeul65vrMiqqJpg82GlRs+bBRvvFYZXFm/yXTT0k1vNgs3X94StKVuq9nWsq3vv5d8f3Nb+LaGKruq8u3E7QXbH+9I2nH6B/YP1TtNdpbt/LhLuqtzd9zutmrv6uoa05oVtWitsrZ7T9qeS3tD9jbVudRtq2fWl+0D+5T7fv8x/cfr+yP3tx5gH6g7aHtw0yHGodIGpGF2Q2+juLGzKaWp4/D4w63Nfs2Hfhr9064jlkcqjxoeXXGMemzxsYHjhcf7WmQtPSeyTjxsndZ6++Skk1fbJra1n4o8debnsJ9PnuacPn7G/8yRs75nD59jn2s873W+4YLnhUO/eP5yqN2rveGi98WmSz6XmjvGdRy7HHj5xJWQKz9f5V09fy36Wsf1xOs3b6Td6LwpvPn0Vu6tF78W/Np/u+gO4U7pXd275fdM71X95vhbfadX59H7IfcvPIh/cPuh4OGzR4pHH7oWP6Y/Ln9i8aT6qdvTI91h3Zd+n/x71zPZs/6ekj/0/tj03OH5wT+D/rzQO6m364X8xcBfy14av9z1yuNVa19s373Xea/735S+NX67+x373en3ye+f9M/8QPpQ8dHxY/OnyE93BvIGBmR8OX/wKIDBimZmAvDXLnhOSAGAcQmeHyar73yDBVHfUwcJ/CdW3wsHixcAdbBRHde5LQDsg9WuCNqG76qjekIQQN3dh6umKDLd3dS2aPDGQ3g7MPDSDABSMwAf5QMD/ZsHBj7COyp2C4CWGeq7pqoQ4d3g+yAVXTMSFoGvivoe+kWMX7dA5YEH+Lr9F7miiVD3w44kAAAAIGNIUk0AAHomAACAhAAA+gAAAIDoAAB1MAAA6mAAADqYAAAXcJy6UTwAAAAJcEhZcwABM5UAATOVAWBIbPYAACAASURBVHic7N1BbttAEADBrOD/f3lzSGAkduyQLUpL2lVXCas5zkGNGXPOHwAAAAAAAAAAAAAAAABAcls9AAAAAAAAAAAAAAAAAABcmE4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAALqX1QMAAMCRxhgffTTnfOYkAAAAAAAAAAAAAMA3MfxZGQCAS/skzPuENRgAAAAAAAAAAAAAOIpODwCAq2qF3hv2YQAAAAAAAAAAAADgTjo9AACu55BC70+2YgAAAAAAAAAAAAAg0+kBAHAlhxd6ryzGAAAAAAAAAAAAAEBzWz0AAABs9bhI79GPAwAAAAAAAAAAAABfmHt6AABcwK6I7qMVd+MjNmQAAAAAAAAAAAAAYJeX1QMAAMB/bI/0Pk/sXj91Og8AAAAAAAAAAAAAOJB7egAAnNpRkd6uly3JAAAAAAAAAAAAAMB2Oj0AAM5rY6S3a6d9xJsAAAAAAAAAAAAAwHf2snoAAAC4y/agbvtpPgAAAAAAAAAAAACA7W6rBwAAgH87NqsT6QEAAAAAAAAAAAAAD6LTAwDgjDZmdRuP6YVIT9cHAAAAAAAAAAAAAGyk0wMA4HSWR3oAAAAAAAAAAAAAANvp9AAAAAAAAAAAAAAAAACg0+kBAHAux56/c0wPAAAAAAAAAAAAAHg0nR4AAAAAAAAAAAAAAAAAdDo9AABOZPv5uznnga8BAAAAAAAAAAAAAGQ6PQAAzuJUWd2WDhAAAAAAAAAAAAAA4IdODwAAAAAAAAAAAAAAAADuodMDAAAAAAAAAAAAAAAAgE6nBwDAKYwxtn95zvm4SZ7wPgAAAAAAAAAAAADwlej0AAD4suR2AAAAAAAAAAAAAMAT6PQAAFhv1zG9R1P3AQAAAAAAAAAAAAC76PQAAPjK9kZ3Ij0AAAAAAAAAAAAAYC+dHgAA/CbSAwAAAAAAAAAAAACC4b/IAACsNcbY9f22wX7+K7ZiAAAAAAAAAAAAACB7WT0AAAA8w68S732tp9ADAAAAAAAAAAAAAO6k0wMA4BtR5QEAAAAAAAAAAAAAh7utHgAAgG/t/YE7AAAAAAAAAAAAAIBr0ekBAAAAAAAAAAAAAAAAQKfTAwDgSuacq0cAAAAAAAAAAAAAAPiLTg8AAAAAAAAAAAAAAAAAOp0eAADLjDFWjwAAAAAAAAAAAAAAcC+dHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAuIw55+oRAAAAAAAAAAAAAADe0ukBAAAAAAAAAAAAAAAAQKfTAwBgjTHG6hEAAAAAAAAAAPjJ3h3sNqsDARj9HeX9X9l30auqahMCg43H5pxl1cJAF40QXwcAAGhApwcAAAAAAAAAAAAAAAAAcTo9AAAAAAAAAAAAAAAAAIjT6QEAMIda6+gRAAAAAAAAAAAAAABe0OkBAAAAAAAAAAAAAAAAQJxODwCAAUopo0cAAAAAAAAAAAAAAGhDpwcAAAAAAAAAAAAAAAAAcTo9AAAAAAAAAAAAAAAAAIjT6QEAMIFa6+gRAAAAAAAAAAAAAABe0+kBAAAAAAAAAAAAAAAAQJxODwCAq5VSRo8AAAAAAAAAAAAAANCMTg8AAAAAAAAAAAAAAAAA4nR6AAAAAAAAAAAAAAAAABCn0wMAAAAAAAAAAAAAAACAOJ0eAADZ1VpHjwAAAAAAAAAAAAAA8JZODwAAAAAAAAAAAAAAAADidHoAAFyqlDJ6BAAAAAAAAAAAAACAlnR6AAAAAAAAAAAAAAAAABCn0wMAAAAAAAAAAAAAAACAOJ0eAAAAAAAAAAAAAAAAAMSVWuvoGQAAmEYpZfQIcT76AgAAAAAAAAAAAAA92KcHAMBeU0d6/+afHwAAAAAAAAAAAADISacHAMAuIjcAAAAAAAAAAAAAgJd0egAA3IjaEAAAAAAAAAAAAABoTqcHAMCN1FpHjwAAAAAAAAAAAAAArEanBwAAAAAAAAAAAAAAAABxxUYRAAD2K6WMHiHOR18AAAAAAAAAAAAAoAedHgAAFwk0fj6sAgAAAAAAAAAAAAD5PUYPAAAAAAAAAAAAAAAAAAAT0+kBAJCUZXoAAAAAAAAAAAAAwBR0egAAAAAAAAAAAAAAAAAQp9MDAAAAAAAAAAAAAAAAgDidHgAAVyiljB4BAAAAAAAAAAAAAKALnR4AAAAAAAAAAAAAAAAAxD1HDwAAALfzcrtgrfX6SQAAAAAAAAAAAACA83R6AABktFK09rLK2/9tK90KAAAAAAAAAAAAAFiSTg8AANrb2eYFDiXbAwAAAAAAAAAAAIBsdHoAAHTXMFrLr/fFfh1frQcAAAAAAAAAAAAAeej0AACggYtbxO/TCfYAAAAAAAAAAAAAYDidHgAAnDJ2W6D1egAAAAAAAAAAAAAwnE4PAIB0JqrODkV6G9d1MvZT6wEAAAAAAAAAAADAQDo9AACI2FnW7Wznfn5buNkrpUj1AAAAAAAAAAAAAOB6XuQFAKCvQHWW/zPqx4tqcgnhYC//DQQAAAAAAAAAAACAlTxGDwAAAJPZzudqra0yufChwoEfAAAAAAAAAAAAABCg0wMAgAM2EriGhd75w0r1AAAAAAAAAAAAAOAyOj0AANhrO9LremqpHgAAAAAAAAAAAACkpdMDACCX3sFb2LvsrdMavZcnOvojUj0AAAAAAAAAAAAAuIBODwAAPtuI9K4cQ6oHAAAAAAAAAAAAAAnp9AAA6GiNSCxJpBc+6Rq/BQAAAAAAAAAAAABIS6cHAAARQyK98KmlegAAAAAAAAAAAADQj04PAAC2vCzcBkZ6SQYAAAAAAAAAAAAAAL7p9AAASCRbfpZ5Dd3Re5X5WgAAAAAAAAAAAABgajo9AAA4JltMuJ9UDwAAAAAAAAAAAAB60OkBANDL7FXYy/lTRXqphgEAAAAAAAAAAACA29LpAQDAjcweTwIAAAAAAAAAAABAQjo9AAB44V3PVkpJlbpZqQcAAAAAAAAAAAAAwz1HDwAAAPP5TvVkcgAAAAAAAAAAAACAfXoAAGQxY/OWYbfe0fuWYWYAAAAAAAAAAAAAWIlODwAATpG9AQAAAAAAAAAAAMDN6fQAAOhi6nrt6PBTXywAAAAAAAAAAAAAcJJODwAAAAAAAAAAAAAAAADidHoAANDA2JV6tdaBZwcAAAAAAAAAAACAm9PpAQCQgtLsSmOrQgAAAAAAAAAAAABYjE4PAAAAAAAAAAAAAAAAAOJ0egAAtGddGwAAAAAAAAAAAABwHzo9AAAAAAAAAAAAAAAAAIjT6QEAAAAAAAAAAAAAAABAnE4PAAB+q7Ve8CMAAAAAAAAAAAAAwBp0egAAjCdyAwAAAAAAAAAAAADmpdMDAKCxUsroERo4lA7qDAEAAAAAAAAAAADgznR6AADw2s76TqQHAAAAAAAAAAAAADen0wMAgLc+NngiPQAAAAAAAAAAAADgOXoAAABI7avEK6X8/WIev8b7KNv8AAAAAAAAAAAAADA1nR4AAINN0YxNMSQAAAAAAAAAAAAAMMRj9AAAAAAAAAAAAAAAAAAAMDGdHgAALZVSRo8AAAAAAAAAAAAAAHApnR4AAMztaBtZa+00CQAAAAAAAAAAAADck04PAAAAAAAAAAAAAAAAAOJ0egAAAAAAAAAAAAAAAAAQp9MDAGCkWuvoEeZWSjn0/W44AAAAAAAAAAAAADSn0wMAoJmjzRgAAAAAAAAAAAAAwAJ0egAAMCvL9AAAAAAAAAAAAAAgA50eAAAAAAAAAAAAAAAAAMTp9AAAYEqW6QEAAAAAAAAAAABAEjo9AACGUY4BAAAAAAAAAAAAAAvQ6QEAwHws0wMAAAAAAAAAAACAPHR6AAC0cbQcI0ykBwAAAAAAAAAAAACp6PQAAGBlIj0AAAAAAAAAAAAA6E2nBwAAM7G3EAAAAAAAAAAAAACy0ekBAMA0jkZ6lukBAAAAAAAAAAAAwAV0egAAjCEh680dBgAAAAAAAAAAAIBr6PQAAGjg6J43Ag7dZJEeAAAAAAAAAAAAAFxGpwcAABMQ6QEAAAAAAAAAAABAWjo9AADITqQHAAAAAAAAAAAAAJnp9AAAIDWRHgAAAAAAAAAAAAAkp9MDAGAAOdlOIj0AAAAAAAAAAAAAyE+nBwDAWYdaMvYT6QEAAAAAAAAAAADAFJ6jBwAAAE5R6AEAAAAAAAAAAADAWPbpAQBARjuX6Yn0AAAAAAAAAAAAAGA4nR4AAKQj0gMAAAAAAAAAAACAiTxHDwAAwO2oyzYo9AAAAAAAAAAAAABgOvbpAQBAFiI9AAAAAAAAAAAAAJiRTg8AgFN2pmV8JNIDAAAAAAAAAAAAgEnp9AAAYDyRHgAAAAAAAAAAAADM6zl6AAAAuLs9kZ5CDwAAAAAAAAAAAADSsk8PAIBL6c1+EekBAAAAAAAAAAAAwOx0egAAMIxIDwAAAAAAAAAAAAAW8Bw9AAAAE9uTmfHOx7un0AMAAAAAAAAAAACAKdinBwAAA4j0AAAAAAAAAAAAAGAZOj0AALiaSA8AAAAAAAAAAAAAVqLTAwDgOvKzfyI9AAAAAAAAAAAAAFjOc/QAAABwI9uRnkIPAAAAAAAAAAAAAGZknx4AAFxEpAcAAAAAAAAAAAAAS7JPDwCAoO3qjJ8+3qvekd7fAWSBAAAAAAAAAAAAANCKfXoAAFzktmHY8EgPAAAAAAAAAAAAAOjKPj0AAOhoO9JT6AEAAAAAAAAAAADAAuzTAwCAXtJGevpAAAAAAAAAAAAAAGhIpwcAwBVuGIblifS2JwEAAAAAAAAAAAAATtLpAQAQIf3alifSAwAAAAAAAAAAAAB6e44eAAAAVrMR6Sn0AAAAAAAAAAAAAGA99ukBAEBLIj0AAAAAAAAAAAAAuBudHgAA3d2nTxPpAQAAAAAAAAAAAMAN6fQAAKCNnJHe36kUgwAAAAAAAAAAAADQlk4PAIDDNoK028oZ6QEAAAAAAAAAAAAAF3iOHgAAgMXdoVJ7F+nd4doBAAAAAAAAAAAAAJ0eAADEJV+jZ/MhAAAAAAAAAAAAAFzgMXoAAACYVfJIDwAAAAAAAAAAAAC4hk4PAICOFs7V8kd6lukBAAAAAAAAAAAAwDV0egAAHKP++ifSAwAAAAAAAAAAAAB+eI4eAACAZSUp1prbTuCSB3Kr/lIAAAAAAAAAAAAAYCD79AAA4IDkGR4AAAAAAAAAAAAAcD379AAAFve3K7NRLUykBwAAAAAAAAAAAAD8pdMDAFjWu6js6+uxWm9/qLZeDSjSAwAAAAAAAAAAAABe0ukBACxoT1F2pta7IZEeAAAAAAAAAAAAAPDOY/QAAAA0pihrzi0FAAAAAAAAAAAAADbo9AAAlnK0KOtUoK20pm+lSG+l3wsAAAAAAAAAAAAA5KHTAwBYR++ibKVibacbXjIAAAAAAAAAAAAAcJRODwDg7pqnaMssbRPpAQAAAAAAAAAAAAB76PQAABYhKmvL/QQAAAAAAAAAAAAAdtLpAQCwy85ubY1leiI9AAAAAAAAAAAAAGA/nR4AAAAAAAAAAAAAAAAAxOn0AABWkGT/2xrL9FbltwMAAAAAAAAAA1nkOQAAIABJREFUAAAAnej0AADubk++tacDlIEBAAAAAAAAAAAAAPek0wMAAAAAAAAAAAAAAACAuOfoAQAAGKnVErzFluktdjkAAAAAAAAAAAAAQFf26QEA8EEpZfQIAAAAAAAAAAAAAAB56fQAAO7LMj0AAAAAAAAAAAAAgPN0egAAN7Uzrvu4TE+kBwAAAAAAAAAAAADcnE4PAGAFR2M5kR4AAAAAAAAAAAAAQCvP0QMAAHApZR0AAAAAAAAAAAAAQFvFi9oAAMvYXn939IOfZXoAAAAAAAAAAAAAAHs8Rg8AAEBGIj0AAAAAAAAAAAAAgJ3s0wMAWMr5vu7jEfYcBAAAAAAAAAAAAADgPnR6AACr2RPa/XvV2oV/EAAAAAAAAAAAAADgznR6AAAL2lncBfj0CAAAAAAAAAAAAADwi04PAGBNzVM9nxsBAAAAAAAAAAAAAF56jB4AAIAu2mZ1Ij0AAAAAAAAAAAAAgHfs0wMAWNzJxXo+LgIAAAAAAAAAAAAAbNPpAQDcxaFgz6dEAAAAAAAAAAAAAICddHoAAHf0rtnz4RAAAAAAAAAAAAAA4CidHgAAAAAAAAAAAAAAAADEPUYPAAAAAAAAAAAAAAAAAAAT0+kBAAAAAAAAAAAAAAAAQJxODwAAAAAAAAAAAAAAAADidHoAAAAAAAAAAAAAAAAAEKfTAwAAAAAAAAAAAAAAAIA4nR4AAAAAAAAAAAAAAAAAxOn0AAAAAAAAAAAAAAAAACBOpwcAAAAAAAAAAAAAAAAAcTo9AAAAAAAAAAAAAAAAAIjT6QEAAAAAAAAAAAAAAABAnE4PAAAAAAAAAAAAAAAAAOJ0egAAAAAAAAAAAAAAAAAQp9MDAAAAAAAAAAAAAAAAgDidHgAAAAAAAAAAAAAAAADE6fQAAAAAAAAAAAAAAAAAIE6nBwAAAAAAAAAAAAAAAABxOj0AAAAAAAAAAAAAAAAAiNPpAQAAAAAAAAAAAAAAAECcTg8AAAAAAAAAAAAAAAAA4nR6AAAAAAAAAAAAAAAAABCn0wMAAAAAAAAAAAAAAACAOJ0eAAAAAAAAAAAAAAAAAMTp9AAAAAAAAAAAAAAAAAAgTqcHAAAAAAAAAAAAAAAAAHE6PQAAAAAAAAAAAAAAAACI0+kBAAAAAAAAAAAAAAAAQJxODwAAAAAAAAAAAAAAAADidHoAAAAAAAAAAAAAAAAAEKfTAwAAAAAAAAAAAAAAAIA4nR4AAAAAAAAAAAAAAAAAxOn0AAAAAAAAAAAAAAAAACBOpwcAAAAAAAAAAAAAAAAAcTo9AAAAAAAAAAAAAAAAAIjT6QEAAAAAAAAAAAAAAABAnE4PAAAAAAAAAAAAAAAAAOJ0egAAAAAAAAAAAAAAAAAQp9MDAAAAAAAAAAAAAAAAgDidHgAAAAAAAAAAAAAAAADE6fQAAAAAAAAAAAAAAAAAIE6nBwAAAAAAAAAAAAAAAABxOj0AAAAAAAAAAAAAAAAAiNPpAQAAAAAAAAAAAAAAAECcTg8AAAAAAAAAAAAAAAAA4nR6AAAAAAAAAAAAAAAAABCn0wMAAAAAAAAAAAAAAACAOJ0eAAAAAAAAAAAAAAAAAMTp9AAAAAAAAAAAAAAAAAAgTqcHAAAAAAAAAAAAAAAAAHE6PQAAAAAAAAAAAAAAAACI0+kBAAAAAAAAAAAAAAAAQJxODwAAAAAAAAAAAAAAAADidHoAAAAAAAAAAAAAAAAAEKfTAwAAAAAAAAAAAAAAAIA4nR4AAAAAAAAAAAAAAAAAxOn0AAAAAAAAAAAAAAAAACBOpwcAAAAAAAAAAAAAAAAAcTo9AAAAAAAAAAAAAAAAAIjT6QEAAAAAAAAAAAAAAABAnE4PAAAAAAAAAAAAAAAAAOJ0egAAAAAAAAAAAAAAAAAQp9MDAAAAAAAAAAAAAAAAgLjn6AEAAAAAAAAAAAAAAOBqpZSXX6+1XjzJL2kHAwA2FH+qAQAAAAAAAAAAAAC4iXcV3EvXvG9/aKQvQgAAyEanBwAAAAAAAAAAAADA+gI53JdOb92H5/kmBwCAPHR6AAAAAAAAAAAAAAAsLlUUd36Yn0QBAJCBTg8AAAAAAAAAAAAAgGWliuLaDvOTNAAAxtLpAQAAAAAAAAAAAACwph5dXOwl/H6F3jd1AAAMpNMDAAAAAAAAAAAAAGBB22nc33fp96d0h97DP1TobRx5z3EEAgAwik4PAAAAAAAAAAAAAIAFvQvbTrZwHw9y9IANqz+BAACMotMDAAAAAAAAAAAAAGA1gUhv+wd7HCr8Pv/GkTUCADCETg8AAAAAAAAAAAAAgKWEI73tH99/wH6FXu+DAwAxz9EDAAAAAAAAAAAAAABAd5fVa9sdXddCDwAY5TF6AAAAAAAAAAAAAAAAaOZlzHaojtv/zX/P1SnSK6WI9AAgM50eAAAAAAAAAAAAAAA00C/S6/r9AMB5Oj0AAAAAAAAAAAAAABZxfple+IwbdVyt9bJIDwAYQqcHAAAAAAAAAAAAAACnbEd6PQ4LAKSi0wMAAAAAAAAAAAAAYAXXL9P7aOzZAYDL6PQAAAAAAAAAAAAAACDu3da7k5GeZXoAMBGdHgAAAAAAAAAAAAAA08u2TM8mPQC4FZ0eAAAAAAAAAAAAAADkYpkeAMxFpwcAAAAAAAAAAAAAwIJuu0zPKj8AuJ5ODwAAAAAAAAAAAACAuaXaPieTA4Ab0ukBAAAAAAAAAAAAAEAbIj0AuKfn6AEAAOA6P/9plsdhAAAAAAAAAACwhpfL9G77gtBtLxwAxtLpAQCwvpeP4b6/6LEUAAAAAAAAAADw08s3jvbwMhIA3NZj9AAAANDXx0dm4WdqAAAAAAAAAAAA39pGerGjCQUBYBSdHgAAK9vZ4En1AAAAAAAAAABgUgu//HM0uhPpAcBAOj0AAJZ16AHcwk/rAAAAAAAAAADgbq4v1oY3csMHAICbe44eAAAAutDdAQAAAAAAAAAAAalePfqq77ZHUugBQAb26QEAwP9SPV8DAAAAAAAAAABm0buUq7W+PMW7rwMA17NPDwAAAAAAAAAAAACAKb3839yrpmurXhcArME+PQAAFhTejGelHgAAAAAAAAAAcIh8DgD4p9MDAAAAAAAAAAAAAIAv/tM3ABCj0wMAYDUnn5R50AYAAAAAAAAAAAAAHKLTAwBgKU0qO6keAAAAAAAAAADk9/I9n1rrlTNcfDoAIC2dHgAAAAAAAAAAAAAA89HIAQB56PQAAFhHwz14VuoBAAAAAAAAAEB+v1K9k+Wet4YAgLDn6AEAAKCN5s/ISin+4RYAAAAAAAAAACTnJR8AIAP79AAAAAAAAAAAAAAA4DCJIADwTacHAMAKmi/T63pYAAAAAAAAAAAAAGAlOj0AAKbXtaaT6gEAAAAAAAAAwB14UwgAOEOnBwDA3C54OuYBHAAAAAAAAAAAAACwQacHAAAAAAAAAAAAAAAAAHE6PQAAJnbZpjsr9QAAAAAAAAAAgJ9qraNHAAAS0ekBADCri9s5qR4AAAAAAAAAAKzK20EAwEk6PQAApjTkuZiHcQAAAAAAAAAAAADAXzo9AADmM7CXk+oBAAAAAAAAAAAAAL/o9AAAmIxSDgAAAAAAAAAAGKvWOnoEACAXnR4AABwjFAQAAAAAAAAAgJV4IwgAOE+nBwDATJI8EUsyBgAAAAAAAAAAAACQgU4PAIBppKrjUg0DAAAAAAAAAAAAAAyk0wMAYA4Ju7iEIwEAAAAAAAAAAL3VWkePAACko9MDAGACaYu4tIMBAAAAAAAAAAB7eAUIAGhCpwcAQHbJH4QlHw8AAAAAAAAAAAAA6E2nBwBAalNUcFMMCQAAAAAAAAAAAAB0otMDACCvifq3iUYFAAAAAAAAAADCaq2jRwAAMtLpAQCQ1HTl23QDAwAAAAAAAADAzXnnBwBoRacHAEBGkz7/mnRsAAAAAAAAAAAAAOAMnR4AAOlMXbtNPTwAAAAAAAAAAAAAEKDTAwAglwU6twUuAQAAAAAAAAAA+KvWOnoEACApnR4AAIksU7gtcyEAAAAAAAAAALAqL/kAAA3p9AAAyGKxx16LXQ4AAAAAAAAAAAAA8I5ODwCAFJas2pa8KAAAAAAAAAAAAADgF50eAADjLdyzLXxpAAAAAAAAAABwK7XW0SMAAHnp9AAAGGz5km35CwTgP/buJilyJAnAaEYZZwGuwP0XeQWUV8D6DJpFztBMVUFKrvhVvLfqRZsIVy6SkunDAQAAAAAAABiOt3oAgLx0egAAtNTn067sf/iqzzEBAAAAAAAAAAAAgCx0egAANJO9XsvY10n1AAAAAAAAAAAAAICNdHoAADSQUuo50it0wRJTAwAAAAAAAAAAFWR/mwgAOBmdHgAAtZVo1Qo9BStxWakeAAAAAAAAAAC05R0eACA7nR4AAFUNFOmVu7jHfAAAAAAAAAAAAABwJjo9AAAqSSkNF+mV+xGF7gYAAAAAAAAAAAAAUJ9ODwCAGgo1aRUivaI/SKoHAAAAAAAAAAD9q/aeEgAwLp0eAABllVscV/nhV7lUT60HAAAAAAAAAADVeF0HAChBpwcAQEHlHmk1+QtV5X6oZ38AAAAAAAAAAAAAMC6dHgAARRRdE9ck0iv9oy3WAwAAAAAAAAAAAIBB6fQAAMisdG/WMNKrcAC1HgAAAAAAAAAAdKX5C0sAwBCeWh8AAICTqFOXdfLMa13XovN+XryTeQEAAAAAAAAA4Bz8EW0AoBCdHgAAcZUfWnUVrZVO9e6+/oiuxgcAAAAAAAAAAAAAPv1qfQAAAIaUUpo50rurfKT69xwAAAAAAAAAAAAA2EKnBwDAbvVrsQ4jvbv6B5PqAQAAAAAAAABANd2+uQQA9EanBwDAPvXX6HX+qKv+CaV6AAAAAAAAAAAQ4MUbAKAcnR4AAP3qvND7aqCjAgAAAAAAAAAAAAB56fQAANih5h+UGq58q3lgf9kLAAAAAAAAAAAAAPqh0wMAoEfDRXp3gx4bAAAAAAAAAAD4k9eBAIDtnlofAAAA/s/oz7bu57fvDgAAAAAAAAAAuuKVHgCgKPv0AADoyOiR3qfTDAIAAAAAAAAAAAAAPKTTAwCgC+u6nqxtO9k4AAAAAAAAAAAAAMB3dHoAALR31qTtfPEhAAAAAAAAAABMwps/AMAuOj0AAFqaoWQ7/YAAAAAAAAAAANC5lFLrIwAAJ6fTAwCgmXkCthlyRAAAAAAAAAAAAACY1lPrAwAAMKM5o7X71Fn+NNecNxAAAAAAAAAAAAAA+mSfHgAAOxzPw2yWcwcAAAAAAAAAAKBz3vABAPayTw8AgH3WdY1thPPo6qsju/XcSQAAAAAAAAAA2C72lk7RS3kFCADOR6cHAMBue1M9D5W+E6j13EwAAAAAAAAAAKgjY+D38MreCwKA0SVf5wAAxDx8CNXkV80sj8Za/ZLc5y0FAAAAAAAAAIDRlSvuSvCaEACMyD49AACCvj4Muj/G8njoIDcQAAAAAAAAAAD4WhV6pwgARqHTAwAgAw+DAAAAAAAAAAAAsvts9ryjBQCd+9X6AAAAAAAAAAAAAAAAUNAJIrf0P60PAgD8nU4PAAAAAAAAAAAAAADGoNYDgD49tT4AAAAAAAAAAAAAAACUcsqq7T7UCfYEAsBp6PQAAAAAAAAAAAAAADihUxZ6X30OKNgDgOZ0egAAAAAAAAAAAAAAnMrpC73fWK8HAM39an0AAAAAAAAAAAAAAADII6U0W6T3adrBAaAH9ukBAAAAAAAAAAAAADA8ldrFYj0AaMc+PQAAAAAAAAAAAAAAxibS+2rmpYIA0IpODwAAAAAAAAAAAACAUWnSvuO2AEBNOj0AAAAAAAAAAAAAAIYkRfuZiBEAqtHpAQAAAAAAAAAAAAAwGAXadm4UAFSg0wMAAAAAAAAAAAAAYCTCs71kjQBQmk4PAAAAAAAAAAAAAIAx6M2OcOsAoBydHgAAAAAAAAAAAAAAA5CZHSd0BIBCdHoAAAAAAAAAAAAAAPROXZaRmwkA2en0AAAAAAAAAAAAAADomq4sO7cUAPLS6QEAAAAAAAAAAAAA0KmUkqKsEDcWADLS6QEAAAAAAAAAAAAA0CMhWWnuMADkotMDAAAAAAAAAAAAAKA7ErI63GcAyEKnBwAAAAAAAAAAAABAX8RjNbnbAHCcTg8AAAAAAAAAAAAAgI7IxupzzwHgIJ0eAAAAAAAAAAAAAAC9EIy14s4DwBE6PQAAAAAAAAAAAAAAuiAVa8v9B4AwnR4AAAAAAAAAAAAAAO2JxHrgUwCAGJ0eAAAAAAAAAAAAAACNycP64bMAgACdHgAAAAAAAAAAAAAA8C+pHgDspdMDAAAAAAAAAAAAAKAlVViHfCgAsItODwAAAAAAAAAAAACAZvRg3fLRAMB2Oj0AAAAAAAAAAAAAANpQggEA56DTAwAAAAAAAAAAAACgAZFe/3xGALCRTg8AAAAAAAAAAAAAAPg7qR4AbKHTAwAAAAAAAAAAAACgNvXXQHxYAPCQTg8AAAAAAAAAAAAAgKp0XwDAyej0AAAAAAAAAAAAAACoR6Q3Ip8aAPxMpwcAAAAAAAAAAAAAADwg1QOAH+j0AAAAAAAAAAAAAACoROsFAJySTg8AAAAAAAAAAAAAgBpEeqPzCQLAd3R6AAAAAAAAAAAAAADAJlI9APgrnR4AAAAAAAAAAAAAAMXpuwCAE9PpAQAAAAAAAAAAAAAAW0kuAeBPOj0AAAAAAAAAAAAAAMpSdgEA56bTAwAAAAAAAAAAAAAAdhBeAsBvdHoAAAAAAAAAAAAAABSk6QIATk+nBwAAAAAAAAAAAAAA7CO/BICvdHoAAAAAAAAAAAAAAJSi5gIAZqDTAwAAAAAAAAAAAAAAdhNhAsAnnR4AAAAAAAAAAAAAAEXouACASej0AAAAAAAAAAAAAACACCkmANzp9AAAAAAAAAAAAAAAyE/BBQDMQ6cHAAAAAAAAAAAAAAAECTIB4KLTAwAAAAAAAAAAAAAgO+0WADAVnR4AAAAAAAAAAAAAAAAAxOn0AAAAAAAAAAAAAACAOOsTAUCnBwAAAAAAAAAAAABATqotAGA2Oj0AAAAAAAAAAAAAAOAQcSYAk9PpAQAAAAAAAAAAAAAAAECcTg8AAAAAAAAAAAAAgGzsVQMAJqTTAwAAAAAAAAAAAAAAAIA4nR4AAAAAAAAAAAAAAHCUVYoAzEynBwAAAAAAAAAAAABAHkotAGBOOj0AAAAAAAAAAAAAAAAAiNPpAQAAAAAAAAAAAAAAGVioCMC0dHoAAAAAAAAAAAAAAAAAEKfTAwAAAAAAAAAAAAAgA7vUAIBp6fQAAAAAAAAAAAAAAAAAIE6nBwAAAAAAAAAAAAAAAABxOj0AAAAAAAAAAAAAACCPlFLrIwBAAzo9AAAAAAAAAAAAAAAAAIjT6QEAAAAAAAAAAAAAAABAnE4PAAAAAAAAAAAAAICjUkqtjwAA0IxODwAAAAAAAAAAAAAAAADidHoAAAAAAAAAAAAAAAAAEPfU+gDAVtfr9fhF3t7ejl+kKGNuZ8xOGHM7Y3ZikjEPul6v/c84yUdpzO2M2QljbmfMTsww5gwzXoy5hzE7YcztjNmJGcacYcaLMfcwZieMuZ0xOzHDmDPMeDHmHsbshDG3M2YnZhhzhhkvxtzDmJ0w5nbGhCNSSuu6tj4FAFRlnx4AAAAAAAAAAAAAAAAAxOn0AAAAAAAAAAAAAAAAACBOpwcAAAAAAAAAAAAAAAAAcTo9AAAAAAAAAAAAAAAAAIjT6QEAAAAAAAAAAAAAAABAnE4PAAAAAAAAAAAAAIBDUkqtjwAA0JJODwAAAAAAAAAAAAAAAADidHoAAAAAAAAAAAAAAAAAEKfTAwAAAAAAAAAAAAAAAIA4nR4AAAAAAAAAAAAAAAAAxD21PgAAAAAA4/n4+Lj/x+vr6+12a3uYn30e9YjOZ7wYcw9jdsKY2xmzEzOMOcOMF2PuYcxOGHM7Y3ZihjFnmPFizD2M2QljbmfMTsww5gwzXoy5hzE7YcztjAkAwC726QEAAAAAAAAAAAAAAABAnE4PAAAAAAAAAAAAAAAAAOJ0egAAAAAAAAAAAAAAAAAQp9MDAAAAAAAAAAAAAAAAgDidHgAAAAAAAAAAAAAAhyzL0voIAAAt6fQAAAAAAAAAAAAAAAAAIE6nBwAAAAAAAAAAAAAAAABxOj0AAAAAAAAAAAAAAAAAiNPpAQAAAAAAAAAAAAAAAECcTg8AAAAAAAAAAAAAAAAA4nR6AAAAAAAAAAAAAABANuu6tj4CANSWfP8BAHAmKaXjF/FLMgA8dLvdWh8BAAAAAAAA6MvLy0vrI9ALr2ABMCH79AAAAAAAAAAAAAAAAAAgTqcHAAAAAAAAAAAAAAAAAHE6PQAAAAAAAAAAAAAAjlqWpfURAACa0ekBAAAAAAAAAAAAAAAAQJxODwAAAAAAAAAAAAAAAADidHoAAAAAAAAAAAAAAEAe67q2PgIANKDTAwAAAAAAAAAAAAAAAIA4nR4AAAAAAAAAAAAAABksy9L6CAAAbej0AAAAAAAAAAAAAAAAACBOpwcAAAAAAAAAAAAAAGSwrmvrIwBAGzo9AAAAAAAAAAAAAAAAAIjT6QEAAAAAAAAAAAAAkMeyLK2PAADQgE4PAAAAAAAAAAAAAAAAAOJ0egAAAAAAAAAAAAAAwFHrurY+AgA0k3wRQieu1+vxi7y9vR2/CAAMLaV0/CJ+SQaAh/9K/fj4eHiR19fXTMcBgFG9v78fv4ivVADwlQoAWfhKBaCyl5eX1kegAW9eATAz+/QAAAAAAAAAAAAAAAAAIE6nBwAAAAAAAAAAAAAAHGKZHgCT0+kBAAAAAAAAAAAAAJDTsiytjwAAUJVODwAAAAAAAAAAAAAAAADidHoAAAAAAAAAAAAAAEDcuq6tjwAAjen0AAAAAAAAAAAAAADIbFmW1kcAAKhHpwcAAAAAAAAAAAAAAARZpgcAF50eAAAAAAAAAAAAAAAlWKkHAMxDpwcAAAAAAAAAAAAAAAAAcTo9AAAAAAAAAAAAAAAgYl3X1kcAgC7o9AAAAAAAAAAAAAAAKGJZltZHAACoQacHAAAAAAAAAAAAAADsZpkeAHzS6QEAAAAAAAAAAAAAUIqVegDADHR6AAAAAAAAAAAAAADAPpbpAcBXOj0AAAAAAAAAAAAAAAqyUg8AOD2dHgAAAAAAAAAAAAAAZUn1TsYyPQD4jU4PAAAAAAAAAAAAAADYSqQHAH/S6QEAAAAAAAAAAAAAUJyVegDAien0AAAAAAAAAAAAAACATSzTA4C/0ukBAAAAAAAAAAAAAFCDlXoAwFnp9AAAAAAAAAAAAAAAqESqNzTL9ADgOzo9AAAAAAAAAAAAAADgAZEeAPwg+aYEAOBMUkrHL+KXZAB46Ha7tT4CAAAAAAAAMLCXl5fWR2A3L1YBwA/s0wMAAAAAAAAAAAAAoKplWVofgX1EegDwM50eAAAAAAAAAAAAAADwLZEeADyk0wMAAAAAAAAAAAAAoDYr9UYh0gOALXR6AAAAAAAAAAAAAAA0INUDAE5DpwcAAAAAAAAAAAAAQBtSvc5ZpgcAG+n0AAAAAAAAAAAAAACA34n0AGA7nR4AAAAAAAAAAAAAAM1YqdcnkR4A7KLTAwAAAAAAAAAAAACgJaleb0R6ALCXTg8AAAAAAAAAAAAAgMakegDA0HR6AAAAAAAAAAAAAAC0J9XrhGV6ABCg0wMAAAAAAAAAAAAAoAtSveZEegAQo9MDAAAAAAAAAAAAAKAXUr2GRHoAEKbTAwAAAAAAAAAAAACgI1K9JkR6AHCETg8AAAAAAAAAAAAAgL5I9SoT6QHAQTo9AAAAAAAAAAAAAAC6I9WrRqQHAMfp9AAAAAAAAAAAAAAA6JFUr7R1XUV6AJCFTg8AAAAAAAAAAAAAgE5J9cpR6AFARjo9AAAAAAAAAAAAAAD6JdUrQaQHAHnp9AAAAAAAAAAAAAAA6NqyLGq9jER6AJCdTg8AAAAAAAAAAAAAgAFI9bIQ6QFACTo9AAAAAAAAAAAAAADGINU7Yl1XkR4AFKLTAwAAAAAAAAAAAABgGMuyqPUCFHoAUJRODwAAAAAAAAAAAACAwUj1trNGDwAq0OkBAAAAAAAAAAAAADAei/W2UOgBQB06PQAAAAAAAAAAAAAARiXV+441egBQk04PAAAAAAAAAAAAAICBWaz3J4UeAFT21PoAAAAAAAAAAAAAAABw1D3Ve3l5aX2QxhR6ANCEfXoAAAAAAAAAAAAAAJzEzIv11nUV6QFAK/bpAQAAAAAAAAAAAABwHhMu1pPnAUBzOj0AAAAAAAAAAAAAAM7mc7HeuYM9hR4AdEKnBwAAAAAAAAAAAADAaZ11vZ5CDwC6otMDAAAAAAAAAAAAAODkTlPryfMAoE86PQAAAAAAAAAAAAAApnCv9S5jBnsKPQDomU4PAAAAAAAAAAAAAIC5DBTsyfMAYAg6PQAAAAAAAAAAAAAAJtVnsKfNA4Dh6PQAAAAAAAAAAAAAAJjdZ7B3adTsafMAYGg6PQAAAAAAAAAAAAAA+NfXZu+uRLknzAOAM9HpAQAAAAAAAAAAAADAT/4s9/70teXT4AHAbHR6AAAAAAAAAAAAAABw1L3le35+bn0QAKCBX60PAAAAAAAAAAAAAAAAAAAD0+kBAAAAAAAAAAAAAAAAQJxODwAAAAAAAAAAAAAAAADidHoAAAAAAAAAAAAAAAAAEKfTAwAAAAAAAAAAAAAAAIA4nR4AAAAAAAAAAAAAAAAAxOn0AAAAAAAAAAAAAAAAACBOpwcAAAAAAAAAAAAAAAAAcTo9AAAAAAAAAAAAAAAAAIjT6QEAAAAAAAAAAAAAAABAnE4PAAAAAAAAAAAAAAAAAOJ0egAAAAAAAAAAAAAAAAB3zlr+AAAgAElEQVQQp9MDAAAAAAAAAAAAAAAAgDidHgAAAAAAAAAAAAAAAADEPbU+APBf1+v1+EXe3t6OXwQAAAAe/iv14+Pj4UVeX18zHQcARvX+/n78Ir5SAcBXKgBk4SsVALLY8pX6zz///Pw/eOMXAE7JPj0AAAAAAAAAAAAAAAAAiNPpAQAAAAAAAAAAAAAAAECcTg8AAAAAAAAAAAAAAAAA4nR6AAAAAAAAAAAAAAAAABCn0wMAAAAAAAAAAAAAAACAOJ0eAAAAAAAAAAAAAAAAAMTp9AAAAAAAAAAAAAAAAAAgTqcHAAAAAAAAAAAAAAAAAHE6PQAAAAAAAAAAAAAAAACI0+kBAAAAAAAAAAAAAAAAQJxODwAAAAAAAAAAAAAAAADidHoAAAAAAAAAAAAAAAAAEKfTAwAAAAAAAAAAAAAAAIA4nR4AAAAAAAAAAAAAAAAAxOn0AAAAAAAAAAAAAAAAACBOpwcAAAAAAAAAAAAAAAAAcTo9AAAAAAAAAAAAAAAAAIjT6QEAAAAAAAAAAAAAAABAnE4PAAAAAAAAAAAAAAAAAOJ0egAAAAAAAAAAAAAAAAAQp9MDAAAAAAAAAAAAAAAAgDidHgAAAAAAAAAAAAAAAADEpXVdW58BAACySSkdv4hfkgHgodvt1voIAAAAAAAAAD16fn5ufQQAoAH79AAAAAAAAAAAAAAAAAAgTqcHAAAAAAAAAAAAAAAAAHE6PQAAAAAAAAAAAAAAAACI0+kBAAAAAAAAAAAAAAAAQJxODwAAAAAAAAAAAAAAAADidHoAAAAAAAAAAAAAAAAAEKfTAwAAAAAAAAAAAAAAAIA4nR4AAAAAAAAAAAAAAAAAxOn0AAAAAAAAAAAAAAAAACBOpwcAAAAAAAAAAAAAAAAAcTo9AAAAAAAAAAAAAAAAAIjT6QEAAAAAAAAAAAAAAABAnE4PAAAAAAAAAAAAAAAAAOJ0egAAAAAAAAAAAAAAAAAQp9MDAAAAAAAAAAAAAAAAgDidHgAAAAAAAAAAAAAAAADE6fQAAAAAAAAAAAAAAAAAIE6nBwAAAAAAAAAAAAAAAABxOj0AAAAAAAAAAAAAAAAAiNPpAQAAAAAAAAAAAAAAAECcTg8AAAAAAAAAAAAAAAAA4nR6AAAAAAAAAAAAAAAAABCn0wMAAAAAAAAAAAAAAACAOJ0eAAAAAAAAAAAAAAAAAMTp9AAAAAAAAAAAAAAAAAAgTqcHAAAAAAAAAAAAAAAAAHE6PQAAAAAAAAAAAAAAAACI0+kBAAAAAAAAAAAAAAAAQJxODwAAAAAAAAAAAAAAAADidHoAAAAAAAAAAAAAAAAAEKfTAwAAAAAAAAAAAAAAAIA4nR4AAAAAAAAAAAAAAAAAxOn0AAAAAAAAAAAAAAAAACBOpwcAAAAAAAAAAAAAAAAAcTo9AAAAAAAAAAAAAAAAAIjT6QEAAAAAAAAAAAAAAABAnE4PAAAAAAAAAAAAAAAAAOJ0egAAAAAAAAAAAAAAAAAQp9MDAAAAAAAAAAAAAAAAgDidHgAAAAAAAAAAAAAAAADE6fQAAAAA/sPe3eQ0kmwBGMWIFZS8BAsx94gt1A5qhb2D3gIjzxHysGdlagu8ASWeBTidGRmZEXHjHL0RD5KbP7aru+vTBQAAAAAAAAAAgHQ6PQAAAAAAAAAAAAAAAABIp9MDAAAAAAAAAAAAAAAAgHQ6PQAAAAAAAAAAAAAAAABIp9MDAAAAAAAAAAAAAAAAgHQ6PQAAAAAAAAAAAAAAAABIp9MDAAAAAAAAAAAAAAAAgHQ6PQAAAAAAAAAAAAAAAABIp9MDAAAAAAAAAAAAAAAAgHQ6PQAAAAAAAAAAAAAAAABIp9MDAAAAAAAAAAAAAAAAgHQ6PQAAAAAAAAAAAAAAAABIp9MDAAAAAAAAAAAAAAAAgHR3pQcA/np6epp/kMfHx/kHAQAAgKv/lPr79++rB3l4eMg0DgC06vn5ef5BfKQCgI9UAMjCRyoAZDHmI/X19XX4G/yNXwAIyT49AAAAAAAAAAAAAAAAAEin0wMAAAAAAAAAAAAAAACAdDo9AAAAAAAAAAAAAAAAAEin0wMAAAAAAAAAAAAAAACAdDo9AAAAAAAAAAAAAAAAAEin0wMAAAAAAAAAAAAAAACAdDo9AAAAAAAAAAAAAAAAAEin0wMAAAAAAAAAAAAAAACAdDo9AAAAAAAAAAAAAAAAAEin0wMAAAAAAAAAAAAAAACAdDo9AAAAAAAAAAAAAAAAAEin0wMAAAAAAAAAAAAAAACAdDo9AAAA4jjtd6f9rvQUXXMLAAAAAAAAAAAA6JBODwAAgAjO8zCdWCnnt8BdAAAAAAAAAAAAoB93pQcAAACAWfRg1Xq/NdvDsfQgAAAAAAAAAAAAsCz79AAAAGiYSK9+7hEAAAAAAAAAAADh2acHAABAkwbqLwvcSnm/8l9vjcV6AAAAAAAAAAAAxGafHgAAAO0R6dXs0i2wWA8AAAAAAAAAAICodHoAAAA0RqRXP6keAAAAAAAAAAAAXdHpAQAA0JJLodf2cBTpVUWqBwAAAAAAAAAAQD90egAAADRjINJbeRLGkOoBAAAAAAAAAADQCZ0eAAAAbRDptUiqBwAAAAAAAAAAQA82b29vpWcAAIBsNpvN/IP4QzJUSKTXNLcvpJeXl9IjAAAAAAAAANTo/v6+9AgAQAH26QEAAFA7lVfrbNUDAAAAAAAAAAAgNp0eAAAAVRPpxSDVAwAAAAAAAAAAIDCdHgAAAPXqPOI67Xcf/ys9SwZSPQAAAAAAAAAAAKLS6QEAAFCpgXyrh2V6n04/dswW++wAAAAAAAAAAAAIT6cHAABAjUR6I7/YloF7F+DsAAAAAAAAAAAA6JZODwAAgOqI9EqPsCCpHgAAAAAAAAAAAPHo9AAAAKhLz5Heab/roVWT6gEAAAAAAAAAABCMTg8AAICKdJtpdVLofZDqAQAAAAAAAAAAEIlODwAAgDYEXqanTAMAAAAAAAAAAICm6fQAAACoxUCuFjLSe9+h122kZ6UeAAAAAAAAAAAAYej0AAAAqEJXkV7Ped45qR4AAAAAAAAAAAAx3JUeAAAAALqIsno4x7xO+128RBMAAAAAAAAAAICQdHoAAABUrdFSS5U30vZwdK0AAAAAAAAAAABonU4PAACAwgYyrZojPXVZLgOpnpV6AAAAAAAAAAAANOG29AAAAAB0Te3GME8IAAAAAAAAAAAA9dPpAQAAUKkeFqltD8ceTvMqFwEAAAAAAAAAAICm3ZUeAAAAgH51uypNljbJab9zxQAAAAAAAAAAAKiZTg8AAIAyhiO9eF1WvDPKa3s4DjwSUj0AAAAAAAAAAABqptMDAACA/ERlAAAAAAAAAAAA0I/N29tb6RkAACCbzWYz/yD+kAwr6G2Z3rDhq3Eu/JXxYFRr/FP6559/F50EAAAAAAAAoHL39/elRwAACrBPDwAAAIC/xvd4l/z49fPbr+v3AAAAAAAAAACAwOzTAwAgFPv0oAl2pn1in945j8fK5od5aWR7AAAAAAAAQFT26QFAn+zTAwAAAOhLqTbv3PnaPc0eAAAAAAAAAADQOvv0AAAIxT49qJ9taV/Zp/eJh2QJNbR5Vwn2AAAAAAAAgADs0wOAPtmnBwAAABBWE3neh48le4I9AAAAAAAAAACgLfbpAQAQin16UDl70r5ln95XHpX52ir0LhHsAQAAAAAAAM2xTw8A+mSfHgAAAEAcMfK8D+8b9tR6AAAAAAAAAABA5XR6AAAArCRYPkRBp/3OSr2vAr/E3mu9G8EeAAAAAAAAAABQq9vSAwAAAMDNzc2N7IpznodJTvtd4Ejv3I9fPz+aPQAAAAAAAAAAgHro9AAAAFhDJxERq/FEveun0Dun1gMAAAAAAAAAAGqj0wMAAABqZKXesD4LvXNSPQAAAAAAAAAAoB46PQAAAMpTZMEknRd6HyzWAwAAAAAAAAAAKqHTAwAAYHGaIpbQ53Nljd5Xaj0AAAAAAAAAAKA4nR4AAACFWabHJZ6Ncwq9YVI9AAAAAAAAAACgIJ0eAAAAy1IWsZx+nq5+znQOi/UAAAAAAAAAAIBSdHoAAAAAVRPpTSLVAwAAAAAAAAAA1ndXegAAAAAAvqfQS/Oe6v3559/SgwAAAAAAAAAAAL2wTw8AAIAFXa2MtofjOpPQqKtPSOCSLfCprcNiPQAAAAAAAAAAYDU6PQAAAIDqiPSykOoBAAAAAAAAAADr0OkBAAAAVOS034n0MpLqAQAAAAAAAAAAK9DpAQAAsBStEVlsD8fhb4j0pEU6l3r8+PVTrQcAAAAAAAAAACxKpwcAAEAxV/sr6IpIb1FSPQAAAAAAAAAAYDk6PQAAAIDyRHorkOoBAAAAAAAAAAAL0ekBAAAAFCbSW41UDwAAAAAAAAAAWIJODwAAgEXojlhT089b08O3SKoHAAAAAAAAAABkp9MDAACgjO3hWHoEmhH4aRHpFSHVAwAAAAAAAAAA8tLpAQAAAJQh0itIqgcAAAAAAAAAAGSk0wMAAAAoQKRXnFQPAAAAAAAAAADIRacHAABAfgIk1tfWU9fWtIFJ9QAAAAAAAAAAgCx0egAAAACrEulVRaoHAAAAAAAAAADMp9MDAACggO3hWHoEGhPmmRHpVUiqBwAAAAAAAAAAzKTTAwAAAFiJSA8AAAAAAAAAACAknR4AAAAAvbNSDwAAAAAAAAAAmOOu9ADAX09PT/MP8vj4OP8gAAAwk41hlHLa77aHY+kpLvLSqNyPXz///PNv6SkAiOb5+Xn+QR4eHuYfBACa5iMVALLwkQoAWYz5SH19fR3+Bn/jFwBCsk8PAAAAYHEivSbYqgcAAAAAAAAAAKTR6QEAAAAsS6QHAAAAAAAAAAAQm04PAAAAAP6yUg8AAAAAAAAAAEig0wMAAABYkGV6zZHqAQAAAAAAAAAAU+n0AAAAWNv2cCw9AqxEpNcoqR4AAAAAAAAAADCJTg8AAABog8ITAAAAAAAAAACAOun0AAAAABZhmV7TrNQDAAAAAAAAAADG0+kBAACQkzCJsup5AuuZBAAAAAAAAAAAgKXp9AAAAADgG1bqAQAAAAAAAAAAI+n0AAAAADKzTC8MqR4AAAAAAAAAADCGTg8AAAAAAAAAAAAAAAAA0un0AAAAAHKyTC8YK/UAAAAAAAAAAICrdHoAAAAA2Yj0AAAAAAAAAAAAOqTTAwAAAIAhVuoBAAAAAAAAAADDdHoAAAAAeVimBwAAAAAAAAAA0CedHgAAAABcYaUeAAAAAAAAAAAwQKcHAAAAAAAAAAAAAAAAAOl0egAAAAAZnPa70iOwLCv1AAAAAAAAAACAS3R6AAAAAAAAAAAAAAAAAJBOpwcAAAAwl2V6nbBSDwAAAAAAAAAA+JZODwAAAAAAAAAAAAAAAADS6fQAAAAAZrFMDwAAAAAAAAAAoHObt7e30jMAAEA2m81m/kH8IRnmGBMsbQ/HFSZpyPjKy6Wr8wHT6fXmzz//lh4BAAAAAAAAqNf9/X3pEQCAAuzTAwAAAAAAAAAAAAAAAIB0Oj0AAACAdJbpAQAAAAAAAAAAoNMDAAAAgAl+/PpZegQAAAAAAAAAAKAuOj0AAAAAAAAAAAAAAAAASKfTAwAAIKft4Vh6BLq28hN42u/W/HUAAAAAAAAAAADUSacHAAAAANP8+PWz9AgAAAAAAAAAAEBFdHoAAAAAAAAAAAAAAAAAkE6nBwAAwNpO+13pEWhSbU9ObfMAAAAAAAAAAABQik4PAAAAACb78etn6REAAAAAAAAAAIBa6PQAAAAAAAAAAAAAAAAAIJ1ODwAAAAAAAAAAAAAAAADS6fQAAAAAAAAAAAAAAAAAIJ1ODwAAgMy2h2PpEejUms/eab9b7XcBAAAAAAAAAABQOZ0eAAAAAKT48etn6REAAAAAAAAAAIAq3JUeAAAAoArfrsayFw7qYX8dAAAAAAAAAAAA1dLpAQAA/bqa/Zx/g2Yvr9N+55ICAAAAAAAAAAAAMej0AACAHiUs5nr/kbbSMp0hAAAAAAAAAAAAwAp0egAAQF8SCr2vP15/8/b1ND++ss7w28Nx5qWGqdZ8YXq8AQAAAAAAAAAAOHdbegAAAICVnPa7XGlNzYnO1dOseXgAAAAAAAAAAACAFun0AACALmSP0zJWfxmNHKnCyQEa9ePXz9IjAAAAAAAAAAAA5d2VHgAAAGBxV7O07eE49UeANXlJAgAAAAAAAAAAUDP79AAAgOCG857t4fg10hv4+qSDr6yqYcZobmBqNuYFCwAAAAAAAAAAAAvR6QEAAJENlGAjS7w5v2JNlYxxTjcFAAAAAAAAAAAAdEKnBwAAhDUc6Y05wshvq7CRAwAAAAAAAAAAAGA1Oj0AACCmS+1crjV6ZCFxZAzPCQAAAAAAAAAAAJXT6QEAAAENRHor/8Z1VFsxSSJZhycNAAAAAAAAAACAsnR6AABAL5Q81GlSZlltkwkAAAAAAAAAAAA9uys9AAAAQGZCJlqR9qy+/5TuFAAAAAAAAAAAAOqh0wMAAEK5FD6tEDWd9rtW0qk159wejsM1WkPXbb6MEemnQwW+hlcvWuBzBwAAAAAAAAAAoBU6PQAAII6CkV5B9gcWVM/FnzpJ7BcFAAAAAAAAAAAArEynBwAABKdHAgAAqvXff/+VHgEAAAAAgMzu7+9LjwAAFKDTAwAAgqhnsxmfbA9Hd4eFCHGpgf/GBgAAAAAAAAAA3JYeAAAAYEEzG56QdVmFXVPI60wWng0AAAAAAAAAAACaoNMDAAAi6Dbm6fbEAQAAAAAAAAAAAOpxV3oAAACApVS4OK5b28Oxh6Sw5keuxet/deaaLzgAAAAAAAAAAABd0ekBAADN+zbmEfC05bTftXjLGpq5oVEBAAAAAAAAAACgObelBwAAAKhUi/vHrioYa+nEyMsTBQAAAAAAAAAAQD10egAAQNvqqenWr4bqOfcsgp0OM3keAAAAAAAAAAAAaIhODwAACMiirTq5L+TiWQIAAAAAAAAAAKAqOj0AAKBhy23csssLAAAAAAAAAAAAgJF0egAAQDRFFm01sd2rhiGHZ5BH8m74SajhSQYAAAAAAAAAAIBzOj0AAIAmSdoAAAAAAAAAAAAAKqHTAwAAWrVcqCaBW5SVegyzTA8AAAAAAAAAAIDm6PQAAIBQijQ8wiGAbvkIAAAAAAAAAAAAbnR6AAAAn0Td51ZVSWKlHpe0skyvnkkAAAAAAAAAAACogU4PAABoUucpV+enDwAAAAAAAAAAAFAVnR4AABBHkQ1X1mqlsVKPr1pZpgcAAAAAAAAAAACf6PQAAAD+Tx4GAAAAAAAAAAAAwFQ6PQAAgHStLPiqc04r9ThnmR4AAAAAAAAAAADt0ukBAABN+hrt9JPxRArY+rlrzOE5oVoeTgAAAAAAAAAA4N1d6QEAAAASZa8jIvVvMZz2Ow1MJ1p89W0PxxbHBgAAAAAAAAAAYAn26QEAACSSkGXhMjLMEwIAAAAAAAAAAED9dHoAAAA3N22u8xqp/sxpYMLA94UPA3e5/qcXAAAAAAAAAAAAbm5u7koPAPz19PQ0/yCPj4/zDwIAQM067NZO+51YK7AOH2nC8NYEwBhX/8Xv79+/rx7k4eEh0zgA0Krn5+f5B/GRCgA+UgEgizEfqa+vr8Pf4G/8AkBI9ukBAACkkGfk5XryVf1PRf0TAgAAAAAAAAAAsA6dHgAAgI1eVRhIntygqAburAQOAAAAAAAAAACAhuj0AAAAImsrdpLqdUWkBwAAAAAAAAAAQBg6PQAAgMlKRURaNaiNpLBbbj0AAAAAAAAAAHBOpwcAAPRO/FYVK/U6YZkeAAAAAAAAAAAAkej0AAAAqItULzyRHgAAAAAAAAAAAMHo9AAAAKZpqCNqaNRPpHqBxYv0Gh2bOdx0AAAAAAAAAADgE50eAADQtYair4ZGzUKqF1K8SA8AAAAAAAAAAABudHoAAABUS7jVD/caAAAAAAAAAACApun0AAAAJlATrezSBbdSr0WX7lqAl1WAU2A8txsAAAAAAAAAAPhKpwcAAPQrdusVviSJffviCRzpAQAAAAAAAAAAgE4PAACgAT03aQMdV8+XpS0iPcLw0AIAAAAAAAAAAN/S6QEAAIwlzyhlezheuvhSvfp1EukFOx0AAAAAAAAAAAAm0ekBAACd0nc1R6rXok4iPTrhuQUAAAAAAAAAAC7R6QEAAAQUNSaR6rWlt0gv6nkBAAAAAAAAAABwlU4PAABgFAVOJaR6regt0iM8jy4AAAAAAAAAADBApwcAAFA7BdonUr36dRvphT9BAAAAAAAAAAAAvqXTAwAAeiToat1AqufmFtdtpEdgnl4AAAAAAAAAAGCYTg8AAOC6tgqNtqZNtj0cLdar0LcXf+BmxdPPmQIAAAAAAAAAAPBBpwcAAEDDNFFVuRTprT8JZOQZBgAAAAAAAAAArtLpAQAAVM1quKu62tXWlm5vTZ9nDQAAAAAAAAAA0DOdHgAA0B3lW0jnZZRKqhR34UPnpx+JWwkAAAAAAAAAAIyxeXt7Kz0DAABks9ls5h/EH5LDS+j0CnYaU6eVlEAlJMExeFMFYGkvLy+lRwAAAAAAILP7+/vSIwAABdinBwAAcIVIA0jgrSMANxEAAAAAAAAAABhJpwcAAFAv+7gAShHpAQAAAAAAAAAA4+n0AAAAABYh9AIAAAAAAAAAAOiETg8AACAOURDUxquyUW4cAAAAAAAAAAAwiU4PAADoy2m/Kz0CAFUT6QEAAAAAAAAAAFPp9AAAAIYUrDUkhRCD6AsAAAAAAAAAACA8nR4AAADAsqR6DXGzAAAAAAAAAACABDo9AACAILQlUDOv0Ca4TQAAAAAAAAAAQBqdHgAAAACI9AAAAAAAAAAAgHQ6PQAAgBqd9rvSIwCZycAAAAAAAAAAAACi0ukBAAAArESqVy23BgAAAAAAAAAAmEOnBwAAEIHCBFrh1VohNwUAAAAAAAAAAJhJpwcAAFCd035XegRgQaqwqrgdAAAAAAAAAADAfDo9AACgL3oMoAbeiyrhRgAAAAAAAAAAAFno9AAAAOpimR50QiFWnFsAAAAAAAAAAADkotMDAACoSFqkJzUBmMo7JwAAAAAAAAAAkJFODwAAAKAMqVgprjwAAAAAAAAAAJCXTg8AAKAWacv0gKZtD0fN2MpccAAAAAAAAAAAIDudHgAA0J06Cw2RHvSszvelkFxqAAAAAAAAAABgCTo9AACAIevkc3N+i+YEYvBaXoGLDAAAAAAAAAAALESnBwAAUJhNesA7FdmiXF4AAAAAAAAAAGA5Oj0AAKBH9dQaIj3gXD3vTsG4sAAAAAAAAAAAwKJ0egAAAFcsl9KJ9ICvFGXZuaQAAAAAAAAAAMDSdHoAAECnimcbWSK94mcBLMFLO5ft4ehiAgAAAAAAAAAAK9DpAQAAXJd98Z1NesAwgdl8LiAAAAAAAAAAALAanR4AANCvSQlHrrLutN+J9ICRlGbJXDoAAAAAAAAAAGBNOj0AAKBrK4ccCj1gKov1pnLFAAAAAAAAAACA9en0AACA3o3POeaswrv6swlViRAF+uH1PpILBQAAAAAAAAAAFHFXegAAAIDytofj+ADvtN9NSvtGDjDygEC33t8orOW8xBspAAAAAAAAAABQkE4PAADg5mZ6qvfxU8PfMOb3Tv0RoGeT3qz6IdIDAAAAAAAAAADK0ukBAAD8lVC/zKxlhCVAAov1znkjBQAAAAAAAAAAaqDTAwAA+L/V6pf5YYk0BTqn1vM2CAAAAAAAAAAA1EOnBwAA8FnCYr1JB//6xZ5LG2COPms9hR4AAAAAAAAAAFAbnR4AAMA3PiKQjPWLsARYSD+1njdSAAAAAAAAAACgTjo9AACAIfODPVUJsI7YtZ73UgAAAAAAAAAAoGY6PQAAgFE+JSLDJczSPYleBbgkXq3nHQ8AAAAAAAAAAKifTg8AACBFxm4kUk4DVGL+LtDi5HkAAAAAAAAAAEBDdHoAAAAAYTW3Xk+eBwAAAAAAAAAAtEinBwAAABDcefxWZ7MnzwMAAAAAAAAAAJqm0wMAACgpIZhRswBzfLyHFA/2vJsBAAAAAAAAAABh6PQAAAAAevQpk1sn29PmAQAAAAAAAAAAIen0AAAAWiJxARby7dvLnHjP+xUAAAAAAAAAANAPnR4AAEAx62yvAkimtQMAAAAAAAAAABjjtvQAAAAAAAAAAAAAAAAAANAwnR4AAEAZCcv0LLYCAAAAAAAAAAAAqNBd6QEAAADW8DWK07wBAAAAAAAAAAAAkIVODwAACO7S2rr3r5eq9SzTAwAAAAAAAAAAAAhDpwcAAIQ1poUrW+uNV/+EAAAAAAAAAAAAAN26LT0AAADAIiYtrEvYbjfHyr8OAAAAAAAAAAAAgEXp9AAAgICChXCW6QEAAAAAAAAAAADUTKcHAABEkxbprZb2BWsIAQAAAAAAAAAAANDpAQAAVM0yPQAAAAAAAAAAAIDK6fQAAIBQKt9WN3U8kR4AAAAAAAAAAABA/e5KDwD89fT0NP8gj4+P8w8CAMBCKm8IAc75p1QAyOLqR+rv37+vHuTh4SHTOADQqufn5/kH8ZEKAD5SASCLMR+pr6+vw9/gv6UCQEj26QEAAFTKMj0AAAAAAAAAAACAJuj0AACAOGpeWDd1NpEeAAAAAAAAAAAAQCt0egAAADc3C3dxIj0AAAAAAAAAAACAwHR6AAAAyxLpAQAAAAAAAAAAAMSm0wMAAJDGAQAAAAAAAAAAAJBOpwcAALAgy/QAAAAAAAAAAAAAwtPpAQAAvVsujRPpAQAAAAAAAAAAAPRApwcAAHRNpAcAAAAAAAAAAADATDo9AACgXyI9AAAAAAAAAAAAAObT6QEAAHGMr922h6NIDwAAAAAAAH+6iMQAACAASURBVAAAAIAs7koPAAAAsJ4VijiRHgAAAAAAAAAAAEBvdHoAAEAX1snhJkV6Cj0AAAAAAAAAAACAGG5LDwAAAJDTpfht6pq7qU77nUgPAAAAAAAAAAAAoE86PQAAoBfLpXpTjyzSAwAAAAAAAAAAAIhEpwcAAEQzUMEtkepNXaMn0gMAAAAAAAAAAAAIRqcHAAD0JWOqd9rvpkZ6uX41AAAAAAAAAAAAAPXQ6QEAAAENF3HzU72phd6NSA8AAAAAAAAAAAAgrrvSAwAAACxiezgOpHQf/9fUfC6h8VPoAQAAAAAAAAAAAMSm0wMAAMIaTvXejQn2kvfvKfQAAAAAAAAAAAAAeqDTAwAAIhuT6r1LjvEu/d6MRwMAAAAAAAAAAACgZjo9AAAguPdkLm+Gd/XXAQAAAAAAAAAAANCP29IDAAAArGGFfG57OIr0AAAAAAAAAAAAADq0eXt7Kz0DAABks9ls5h/EH5Jjy75YT5sHAAAke3l5KT0CAAAAAACZ3d/flx4BACjgrvQAAAAAq/rI6mYGe/I8AAAAAAAAAAAAAN7p9AAAgE59Cu2Gsz1VHgAAAAAAAAAAAACX6PQAAABubpR4AAAAAAAAAAAAAKS6LT0AAAAAAAAAAAAAAAAAADRMpwcAAAAAAAAAAAAAAAAA6XR6AAAAAAAAAAAAAAAAAJBOpwcAAAAAAAAAAAAAAAAA6XR6AAAAAAAAAAAAAAAAAJBOpwcAAAAAAAAAAAAAAAAA6XR6AAAAAP9j7+6O48a1BYw2XYpFVAo6SShWJ3GcgqkUXI6B96FtHV+pm02CJLABrPU0NSOxwX+7pr/aAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpnkovAPjjx48f+zfy+vq6fyMAAADgb6kAcIiHr9Rfv3493MjLy8tBywGAWv38+XP/RrxSAcArFQAOseaV+vv37+Uf8P9SAaBJ5ukBAAAAAAAAAAAAAAAAQDqdHgAAAAAAAAAAAAAAAACk0+kBAAAAAAAAAAAAAAAAQLqn0gsAAAAAAAAAAIDqjeP49V9O05R/JQAAAABAfjo9AAAAAAAAAADY5maVt/7H9HsAAAAA0BidHgAAAAAAAAAAPLayzUvYlGwPAAAAAGqn0wMAAAAAAAAAgCUHFnoL21frAQAAAEC9dHoAAAAAAAAAAHDD2XnevY8T7AEAAABAdXR6AAAAAAAAAADw/2Qu9G5+uloPAAAAACqi0wMAAAAAAAAAgP/ZFOkt1HQ7Yz+1HgAAAABURKcHAAAAAAAAAACXy+qybmU79++PJTd74zhK9QAAAAAgPp0eAAAAAAAAAAA8Tun29HIfv5sQ7BmsBwAAAADxfSu9AAAAAAAAAAAAKGw5n5um6ahMLnlTyRP5AAAAAIAMdHoAAAAAAAAAAHRtIYE7sNDbv1mpHgAAAACEpdMDAAAAAAAAAKBfy5HeqR8t1QMAAACAZuj0AAAAAAAAAADo1L3s7aQxejc/aOuvSPUAAAAAICCdHgAAAAAAAAAAPVqI9HIuQ6oHAAAAAA3Q6QEAAAAAAAAA0J0gkV7yh0r1AAAAACAUnR4AAAAAAAAAAFwuhSK95I+W6gEAAABAHDo9AAAAAAAAAAD6crNwKxjpBVkAAAAAAJBMpwcAAAAAAAAAQEcij6HbmupF3hcAAAAA6IpODwAAAAAAAACA3tU7y06qBwAAAAARDPM8l14DAAAcZhiG/Rvxh2QAAADyeH9/L70EAIDu3KzaokV6W9O7aOsHAIDOPT8/l14CAFCAeXoAAAAAAAAAAFAxI/UAAAAAoDidHgAAAAAAAAAAXbjXs43jGCp1Mx8PAAAAAKrzVHoBAAAAAAAAAABQ3keqJ5MDAAAAALYyTw8AAAAAAAAAAP4nwmy9ra1ghDUDAAAAQM90egAAAAAAAAAA8P/I3gAAAACATXR6AAAAAAAAAAC0b2t6J9UDAAAAANbT6QEAAAAAAAAAAAAAAABAOp0eAAAAAAAAAADcUHak3jRNBT8dAAAAANhEpwcAAAAAAAAAANUrWxUCAAAAQOd0egAAAAAAAAAAAAAAAACQTqcHAAAAAAAAAAAAAAAAAOl0egAAAAAAAAAAAAAAAACQTqcHAAAAAAAAAAAAAAAAAOl0egAAAAAAAAAAtG+apgy/AgAAAAD0SacHAAAAAAAAAAAAAAAAAOl0egAAAAAAAAAAdGHTfDzD9AAAAACA9Z5KLwAAAAAAAAD4YxzH5R84MBh4+Fl5llHQ8hE4+1C3cQyhDXueh1Xr9kE0TdOak97t8QEAAAAA0gzzPJdeAwAAHGYYhv0b8YdkAAAA8nh/fy+9BGKpLhSpN2AIcqjrPYDQjCBPg1D6eTRlq7V32nqVxlk5AAD07Pn5ufQSAIACzNMDAAAAAACA8rQiHRrHUU0BRPPpfdTwY+q6a8H3V6QHAAAAABXR6QEAAAAAAAAAcMO/nViTDViTOwUAAAAAFKHTAwAAAAAAAADggY9mT9sGAAAAAPCVTg8AAAAAAADYTKSxn2MIVEqwBwAAAADw1bfSCwAAAAAAAAAu0zRVVDtUtNSbIqw/whoAd+JO4zh+NHscbuuxdT0DAAAAQFnm6QEAAAAAAEAUD79hny2HaP67/l938Lxj2/zBhKpd71Cx2R7Xo+dZBwAAAAB0TqcHAAAAAAAA1fi3gjijKum5sji21en5SEKN9mfSB971ax5Emz4uT4Wo1gMAAAAAOjfM81x6DQAAcJhhGPZvxB+SAQAAyOP9/b30EqjesemFuOKy+5A6htC8hafEIU+A5afQ/o/I0+x5GO639Uw55gAAEMrz83PpJQAABXwrvQAAAAAAAAAg0YFfyvf9/qvk4zBNk2MIPTj1Tj870rtsfFglf+I4jnmCQAAAAACAOJ5KLwAAAAAAAABIN02TFqIseR6QwbGPmuvW1rw+/v3cra+bcRw9IdMYpgcAAAAANdLpAQAAAAAAAKTQRQB5nPS0eVjrfQrtPv55fUV2/UlPSwAAAACgB99KLwAAAAAAAADYRf9QhMMO3Trp9i81HHV5d26uapqmTQfB3NdNDNMDAAAAgErp9AAAAAAAAAARxR8rj4MoAvjqpAdphgdO2kdsqvW8ZQAAAACA5un0AAAAAAAAoHqysWy2TpECqMLCk205sVv/VJTqrWGYHgAAAADUS6cHAAAAAAAAXC4KihVHQA4BNGzPI25lredFs0ykBwAAAABV0+kBAAAAAAAAiPQA7lrZj62p9aR6R/FWAgAAAIBonkovAAAAAAAAADjANE3ih/PIIUi4v1w2VOeQV8nDjYzj6O74ykscAAAAAGqn0wMAAAAAAAD+6LadWK4j+jwmnTskmPm6EdcS9dr0gpDqbbX1mePoAQAAAEBAOj0AAAAAAABohJF6aRYOmhCiKxlun08f4QIjoKNeJVK98zhuAAAAABCTTg8AAAAAAAD4n97CCZFe58qmrR+f7mKjSerxlTYdJY8LAAAAAAjrW+kFAADUZ9ii9GIBAAAA6Iuv728i0uvW+FfphfwRbT107t4DMOESXX6WuuYvIj0AAAAAaIh5egAAD+xs7T79+jzP+5YDAAAAAKfrZKSeSK9D8aMgE/Zoj6l6C0R6AAAAANASnR4AwA3nzcGT7QEAAABABCK93hyYCV2vkJsbXPhPWwn2aMlCqtdJGX6TSA8AAAAAGqPTAwD4n/PyvOVPVOsBAAAAcCCTi/YQQjRm572Qdj3c/K3klVx/0ZVJZoe/SqR6n4j0AAAAAKA9Oj0AgMulRKF389MFewAAAAAE0XY1ca+OaHiXO5SWGJ13DXza8tblqfUIou23QzYiPQAAAABokk4PAOhd2ULvE+P1AAAAADiEkXoLRHrNS7j485/9j0/ctFq1HlXzbtrKzQ4AAAAAddHpAQD9Sij0NhV0yQWgWg8AAACACJocmiTSa151U6oSgr0m700619VVvfJm7+eAAAAAAEAzdHoAQI/WF3R7YrmP300L9tR6AAAAAHAskV7b1nduMc/4pmDPYD0qZaSeSA8AAAAAGqbTAwC6s6aaO7aOu25NrQcAAABAToe0EC0NOBLpNaz2Qu+T6yLVetAYhR4AAAAANO9b6QUAAOQzDMPDWG6e55OiuD1bTmv8AAAAAICrzsc3tW19+lJX/bJ+wS5vTnLSLXNvs21fySI9AAAAAOiBeXoAQC/WFHoZlpE8W28YBlP1AAAAANjkkJF6DVg4CIqIqvXQvaycrWewHkTWw8MKAAAAALiYpwcAdGK5iztvht7CJyb8lql6AAAAAORXe+kn0mvVmiuzuhl696zckdrvVmrhSttEpAcAAAAA/dDpAQDtexjpZVvJ/s8dhkGtBwAAAMB6nX/vX6TXqofdSzOF3r/W7JSACkLpqigGAAAAAHR6AEDjFqq2/GP0vi4g7RelegAAAADkVGn5I9Jr0jiOayK9PIsp4mHSs+YQQVlt36QfVkZ6GVYCAAAAAOSh0wMAWrYc6eVcCQAAAACQk0ivSX2O0bvJYD2a1NJ1K9IDAAAAgA49lV4A8MePHz/2b+T19XX/RgB6ECfSm+c5bTjeMAxx9gIAaI+/pQLAIR6+Un/9+vVwIy8vLwcth35N09RS+bCGSK9JnY/R++q6vwuHZRzHZo7Jz58/92/EK5VsPK+AsLxSAeAQa16pv3//Xv4B/y8VAJpknh4A0Kx7/Vu0vC15PWmBHwAAAAAkaKP000XUa/kK7GeM3lfLO97GnQt1EekBAAAAQLd0egBAm2qJ9HaS6gEAAACwRldJwL1AoquD0JiHkV62lcQk1YM4RHoAAAAA0DOdHgDQl2EYtG0AAAAAkKCK2kek1x6R3hpSPYhApAcAAAAAndPpAQANeljiDX/lWc9De6b8xdkLAAAAACLroQ0Q6bVnIXqZpsmZ/dfyAZHqwdkeRsUeWQAAAADQPJ0eANA1kRsAAAAArBc59RHptWc50su5kopI9aAIkz8BAAAAgMvl8lR6AQAAB9ua3l1/fs9Eu+KGYah6/QAAAACwk0ivPSK9ZNM03Tt64zg6enCshwXs2Tfd1wW4zQEAAACgFPP0AAAulwCD9YR2AAAAAJyt1S/umxLWHpHeTqbqQR7FIz0AAAAAIBSdHgAAAAAAALBWtMhH0NUe5/QQUj042/KtNE2TRxYAAAAA9EanBwDwR/GRentUvXgAAAAAsmmsGRB0tcc5PZBUj+pUdJs/jPSyrSTORwMAAAAAOj0AoClyNQAAAAA4W5DCR9DVFec0jeNGTEHeI8niRHq1H0kAAAAAaIxODwDgf2R+AAAAAFAFkV6T7p1W53SPe0dP3gNp4kR6AAAAAEA0Oj0AAAAAAADoyCEJQdnCR6TXJJHeeaR6cJTlF5DnFQAAAAB0TqcHAAAAAAAAVEOk1yTBWCmOPAm6fdh6AQEAAAAAy3R6AAAAAAAA0Jcmc4Imdwqn9SiOJHFUWoeK9AAAAACAh3R6AAAAAAAAwGZFQot7H6qRqJrTmse941lpNEV7It/yMSO9r6uKfAwBAAAAoAc6PQAAAAAAAOhOjV/lV3M1yWnNSarHJi6Mq5iRHgAAAAAQkE4PAAAAAAAASJEz4VBzATSguvZv4e3jBQQAAAAAfKLTAwCaMs9zwV8HAAAAAM4g0muVM5ufkXrEFPCuH8cx8jPKPQsAAAAAAen0AAAAAAAAoEcRMoM1pAitihzAtE2qRykVXWMLS/WMAgAAAADu0ekBAK1JnolnmB4AAAAAbHV2dKGUAAgl+dlb0fM8/lIrKh4BAAAAoCs6PQAAAAAAAOhUkN7gnvilBMkM0yvLSD0e6vZiiP/q6fbUAAAAAEB8T6UXAABwvHmeh2HY+isnLSaP2tcPAAAAQL3GcTwjXYhfSnA4ZzanaZrUPmRTyyN9+aYIfsuEOpIAAAAA0CedHkTx+vpaegkATdmU6oncAAA+8bdUADjEw1fq+/t7npXAgpitTi1FB2kCXnJ8OKm83enl5aX0EkhXyy1fyzoB9vBKBYBDrHmlPj8/Z1gJABDNt9ILAAA4yzzPDwO8NT+Tx9YBgAAAAAAQx7Ftg0ivT05ufo4599x7DidcM8sviDgXoUgPAAAAANjPPD0AoHHXDO9rBRckzwMAAAAA/iXSa54YJr6YI/WozsObPc5l5rkEAAAAABzCPD0AoAvzF6VXdKTGdgcAAACAzKooJeIskjM4v6U48nx1SLQm0gMAAAAAOqTTAwAAAAAAAPY6tXOIk3Owkx6mFs5Ut/b30uM4ivQAAAAAgD7p9AAAyhuGofQSAAAAAOhahGTiXiwRYW2cyikuy/HnQGuytziXXEuRXpyjCgAAAAA9eyq9AAAAdpnnufQSAAAAAOByuVzGcUzuBER6AMUlD9NbH7zFeaq3FOkBAAAAAEGYpwcAAAAAAACUJNLrxM0T7SxHcPMsqJh6k3bGx3EU6QEAAAAAXJmnBwBQ2DAMyb9rmB4AAAAAR5mmaX+3kDBST6QHUNbDh//XB3LC+yLOU12kBwAAAACcRKcHAAAAAAAAlCGW6IdzXaOE8pa6rLkxP66BPXdxnAvJswgAAAAAOI9ODwCgVobpAQAAAHCsQ0bqrbfwWXGKDk7lRMeR+fanuPWne+eF4TYHAAAAAPqh0wMAKGkYhrRfFOkBAAAAENPKAVwiPYDM8qeYnud5OM4AAAAAEIRODwAAAAAAAPgjz0wtkV5vDGqr18rylmiK33QuGwAAAACgQzo9AIBiDNMDAAAAoEnLYY9IjyunO5o8mS4JKjov7msAAAAAoGc6PQCAyoj0AAAAAKiXSA+gSbU8w2tZJwAAAABQI50eAEAZycP0AAAAAOBU583UEukBNMbTGwAAAADgw7fSCwAA6FFypGeYHgAAAABV+JrkifS6dfPUO+kx3TwvJ4W7VG36q/RCAAAAAAACMU8PAKAaIj0AAAAA8jh8pJ5ID6B2HtcAAAAAAMt0egAAuaUN0xPpAQAAAFCXcRwfRh2qD4DIPKUBAAAAANb7VnoBAAB9EekBAAAAUIUD24x7w/TkHwAAAAAAADTDPD0AgHxEegAAAAB05V6hdxHpdePmNeDsRzZN09eztmY8JgGtP2v3HtdOPQAAAADAejo9AIBMRHoAAAAAcKX6AFjv3jNTCw0AAAAAEMq30gsAAOiCSA8AAACA6sg8ACJbeEovJHxnbwoAAAAAoFs6PQCA0yVEevM8i/QAAAAAaJL8DyAgqR4AAAAAwE46PQCAEw3DkBbpnbEYAAAAANjq8KZOpAdwIHEdAAAAAEAcT6UXAKz148eP/Rt5fX3dv5FT2c317GYQdnO93nYzIc+7ZCn0OjmbO/348SP+PnZyKu3menYzCLu5nt0Moofd7GEfL3ZzC7sZhN1cz24G0cNu/vz5c/9GXl5e9m/kVHZzvTN289hIL+xuHqu93bx5GbS3mzfVspvTNO1JvGrZzT0W9nH97h+1jwvnaxzHTQ/e5U19//49YXnBT+Wljyv2Yje3sJtB2M31gu9mD/t4sZtb2M0g7OZ6djOITnYTAGiAeXoAAAdLm6F3MUYPAAAAgJCOiutM0gOo2tvbW+klAAAAAACEZp4eAMAu//nPf/ZvRKEHAAAAQNtEen3aM5ONaLZOZiOnPCP1AAAAAABYptMDALjrkAZvmUIPAAAAgOZpewDOlifVe3t7+/79e8r6AAAAAAA6oNMDAPgsQ553UegBAAAAUI8945VEegAAAAAAAPTgW+kFAADEcnakN/916qcAAAAAAABdWeiit7bWC5t6e3vbtCkAAAAAgH6YpwcAkNUwDBfD9AAAAADog2F6fJU8m7EKbe8d8S2MPx3HcdMzeWFTb29v379/T1kfAAAAAEDTdHoAAAVca70rzR4AAAAAwUmPAAAAAAAAYNm30gsAAIjlv//9b+ZPHP7K/LkAAAAAAEBjFobmbY2uF4bmvb29bdoUAAAAAEAPdHoAAJ/lT/Wu1HoAAAAAAEAcUj0AAAAAgPWeSi8AACCi5FTv9fX1+g/Jxd31F+d5Tvt1AAAAAAhiYaYTAOeZpune6LxxHD2cAQAAAABOYp4eAMAp5r/Sft1sPQAAAACCuBd7ABDWQoy39alupB4AAAAAwEo6PQCAc+0J9tR6AAAAAABAWVI9AAAAAIA1nkovAACgF/M8p0V3wzAkz+UDAAAAAAjl5pivnz9/7t/yy8vL/o2sd3Mo2cIQs0tVu2mQZgOmabp3HsdxXL5WAQAAAABIYJ4eAEA+BusBAAAA0AkFCEBxC4/irSmmkXoAAAAAAA/p9AAActtT6x2+GAAAAABYYKYWAA9J9QAAAAAALjo9AIBSpHoAAAAAAMCp8ozUAwAAAADgotMDAChIqgcAAAAAQBUWci+Cy5PqGakHAAAAAKDTAwAoSaoHAAAAQHv0PFy5EqArUj0AAAAAoHM6PQCAwqR6AAAAAMS0dc4SrOG6is85ak+ekXoAAAAAAJ17Kr0AAAASXVO9tMwPAAAAAAAgwffv3++Nznt7exPy0Zvl2NVoWQAAAICu6PQAAMqb59l8PAAAAAAA4CTTNN2ricZxPDAlkurRqrRZo/d+S78HAAAA0CSdHgBA3YZhMFIPAAAAgDh87xwgpgNTvYWRetCStDZv65b92QkAAACgGb7VDQAQxZ6Rev5Q9+GQyYSOJwAAAHm8v7+XXgLclfzFdN815183L6Q2LhK71rkzZmRlmLu18GxP+JRjtwZxnJfnPeTeAQBoxvPzc+klAAAFfCu9AAAA/tjThh0SpwEAAAAAHOtmb1Cwf+AhkV7bFk5lwo157NaguPGv4msouAAAAAAA9tDpAQAAAAAAAAB0IVtcpzWiItHquGjrAQAAAGAlnR4AQCOM1AMAAACgOEO3ALrisU/tIhdxkdcGAAAAwE06PQCAQOZ53vPrUj0AAAAADuFL4QANO3akXrYBfXC4Ki5RtR4AAABARZ5KLwD448ePH/s38vr6un8jAAAA4G+pAHCIh6/UX79+PdzIy8vLQcsBCGQcR2O4Agqbgvz8+XP/RrxS/zVN073Tfezt6WYnpmMfdxlqVbcSR/FKBYBDrHml/v79e/kH/L9UAGiSTg8AIJZ5nveMxRuGYedQPgAAAACAAy3kQFRBGcJDbnPqsv9yXf9g/Pcnd36uVA8AAAAgvm+lFwAAAAAAAAC0wHfHASpy7ASwDPPEcqpxzay08+RO05T8B57pr+RPH8fRxQkAAAAQmU4PAKA1e8bxAQAAAIDvfwN0IltcV8ubZfzr0z/TjD0ndGdid+CmXJYAAAAAYen0AAAAAAAAADjRzRpBZhDNzTNiTibrLV8t8W/5+Ctkp+RTfGCh92mzyb/rcgUAAACISacHABDOPM87t2CkHgAAAAAA8NCxI/WaDDsFUW3YE+kdu5JsGwcAAAAgP50eAAAAAAAAsJcvmgNwOTr8g0PEjPR2foQbCgAAACAgnR4AAAAAAADwh+98c5KbHYLrLY6b50J/24mcZZ27nvwiR3o7P8gNBQAAABCNTg8AoE3DMJReAgAAAAAAUIFjU73l6EhZRE7xI72dH+eGAgAAAAhFpwcAENE8z6WXAAAAAABwOoFBBM4Ch2tsGKN7hAykegAAAAAN0OkBAAAAAAAAuzTWY3AS10ldnK/eHDtS74wNwla1DNMDAAAAoBk6PQAAAAAAAOByEU4A9C1nWeeNw9lqvMaM1AMAAAConU4PAAAAAAAAgGLUBWU5/pxnOTpy7RGTYXoAAAAAJNPpAQANGm4pvagC+txrAAAAACAs8UM090IpZ6pbh4/Ua+ZaUhXWpcPz1eEuAwAAAASk0wMA2rGc5HVb6wEAAADAqZppMChIXQBx5Ez1Qt37XmdE4DoEAAAAqJpODwBoxMoGT60HAAAAADeFiiVomAIhDsP0iMDbh8PtuaiqfgC6mwAAAACK0+kBAC3Ymt5J9QAAAAAAQlEXQBw5R+olbxMAAAAAIBqdHgBQvbToTqoHAAAAAFDEvWJHq5OTYXosO/xKaCDVq2KRdM5VCgAAD3uZlAAAIABJREFUAFCWTg8AqJvcDgAAAAAKkvQA9CY5BIqf6nmpNSDChQQAAABAt3R6AEC/NH4AAAAAcOVL7WRmpF5ZhumxxsL10HCqtyz+CmmARzEAAABAvXR6AEDFhHYAAAAAALCJ0IjIXJ/s4fq5OAgAAAAARen0AICuKf0AAAAAAIowUi8aE5z4Kv9IveIeLs8zCgAAAAC4R6cHAAAAAAAAQAFSvfzuHdvg6RQF5U/1PAEAAAAAgEo9lV4A8Mfr62vpJQDQmnmeSy8BAKiVv6UCwCEevlLf39/zrASWtToTCfik3vzp5eWl9BJW2flUnKap3nO01fLOXv9T2LfMOI5h18YeTis9qOWVCgDBrXmlPj8/Z1gJABCNeXoAAAAAAAAAlGGkXgTSlK0yX5/Fb4czRuotb3b/xvdwR1Sq+J0Sh0MBAAAAUIpODwCo1TAMpZcAAAAAANXzTW6Kk+rlce94SpJYo7dU76GwCwMAAAAACtLpAQC1mue59BJOpEIEAAAAAFDCHMWRJKyYqd6aftVtBQAAAAB8otMDAGhT2x0jAAAAAIfQGBDESaO6uFo4hobpJShyTUa4Ec67T9ekehGOwFcxVwUAAAAAlKLTAwAAAAAAgO4c0jzoEziQYCw/x3yT8a97P3DI8Vxu4cLmapfzU71L9lrPDULVwj4rAAAAANr2VHoBAAAlGToHAAAAQD/O+Mb2xzb1DJxnHEcXWDKpxkoVpcsPP+i8+2WapoVPz3MErp+S55mwvL8f6/GAisCzDgAAAIAIdHoAAA3SHwIAAAD0I8gX09cvQ8/APQtJjBImzdnD39oQ5Cl6oFNLtjXpWgY5a72HPKAAAAAAgKtvpRcAAFBM2JhtGIbSSwAAAACgAuM4Rogltqp02eSx0Lq4bLYS6a3R8HXV8K59yLCPK2+WHo42OXlKAwAAAFRKpwcAAAAAAABAFFK9Q4j0OE9vl5BUDwAAAABYSacHAFRsz0C8sMP09mt41wAAAACAHkj1dhLpcTYX0k0eUAAAAADQOZ0eANCdeZ4jl2zDMJReAgAAAABAYVK9ZCI9ONz6e8cDCgAAAAB6ptMDAPoSudA7RPM7CAAAAEADxEKsIdVLINLjw9lnPMIVlXMNm1I9zygAAAAA6NNT6QUAAOwyz/OaAXSd1Gud7CYAAAAAV9M0rSkBsmUMK7OECGkHDRjH0bX0L11QmutV1N7Ry3N3rHwNnffp+T9x/f56RgEAAABAhwZf5gYAarfQ6VX3R501zeGC6vb3DDuP4ZUjCQAAQB7v7++llwBQgeUwplQJc3NVoRbzL70QHGVrmujuy+OQZDTUyWpvjwAAevP8/Fx6CQBAAd9KLwAAYC9J1ZXjAAAAAAA0aTkzaG8S2lYPO0adBhxo6w3lGZWBgwwAAABAEDo9AKBlh4xWy2bPakV6AAAAAEDDpHo3jeMYc9ggtC0h1ev2MQUAAAAAXdHpAQAtWKjU6kr1AAAAAAC46WGq11sG83B/RXpwnoT7q8PHFAAAAAD0RqcHADSi9lTPMD0AAAAAgGUPw5h+GhiRHhSXdpep9QAAAACgYTo9AKAd9aZ6Ij0AAAAAgDXWpHptNzBrdlCkB3kk32vNP6kAAAAAoE86PQCgF2FTPZEeAAAAAMB6a8KYJgOYlWGPSA9ymqZJrQcAAAAAXD2VXgAAwJHmeV7I3oZhaClsa2lfAAAAAADWu1Yxy33L9b82E60p9CCyaZqSi7uPX3QLAwAAAEDtzNMDAFqzXK8NwxBqsF7yYkR6AAAAAEDnVg7Wq31clTF6UIU9g/WuGnheAQAAAEDndHoAQIMeNmxBaj2RHgAAAADAHiurmErrl/XLFulBEPtvxvGvQ9YDAAAAAOT0VHoBAACnmOf5YQU3DEOp4G1PJSjSAwAAAAD4cK1i1jQtHz8TvGrb1OcE3xfo0PqH0rJ/t+BOBwAAAIAq6PQAgGZde7blIu7jv+aM34zRAwAAAAA41qYw5vpjAbsXhR4046ha70qzBwAAAABV0OkBAI1bM1jv8redOzuEM0YPAAAAAOA80zStr2LijNdLKHmKrxlYY9NDaSXNHgAAAACEpdMDANq3ZrDe1Xnj9RR6AAAAAAAZJMywKhXspdU7shyoy7GD9T75tFnPBwAAAAAoS6cHAPRifa336cd2ZnJ7Cr39nw4AAAAA0KG0MObs4mVnqKPAgXp93L8nBXv3Nu65AQAAAAA56fQAgL5sqvWuPv3wmnBuZ5u3/oMAAAAAALhn5xirncXLgTWO0gaacep4va9ufpBHCgAAAACcRKcHAPRonufklO6QBm+ZQg8AAAAA4CgHVjEPN3J4eyOngSblGa93z5oP9fABAAAAgAQ6PQCgUx8tXIbubj2FHgAAAADAGcpWMVspZKATmcfrrWciKAAAAAAk0OkBAL2LEOzJ8wAAAAAA8ghbxVwJWqBD/974YZ9Oya575OEGAAAAQA90egAAf+QP9uR5AAAAAABFRBuvp2ABrqI9nY4yjqMHHQAAAADN0+kBAHz2KZ87NtvT5gEAAAAAxFFwjJVkBVjQ9pA9AAAAAGiSTg8A4IGvZd3Kck+SBwAAAABQkU/h3BlhjDYPSKDZWzZNk8PylTcOAAAAQH46PQCAzQR4AAAAAADNu1k4rExB1BHA4aRoAAAAABCcTg8AAAAAAAAAVhHgATlp8/rkvAMAAABUSqcHAAAAAAAAAAAhNNloiZwBAAAA6IFODwAAAAAAAAAASmoyzwMAAACAruj0AAAAAAAAAACggLbzPGP0AAAAAOiKTg8AAAAAAAAAALIKWOjJ6gAAAABgD50eAAAAAAAAAADkUDbPU+IBAAAAwHl0egAAAADwf+zdXW4iORiG0VQrW+gtELbA/i/YAmYLiDVUXySa6elJ8/PalOvnnGvifIAlg9AjAwAAALzWlIXe1nq8UsoM7ycEAAAAYGt0egAAAAAAAAAA8CoTJGRbC/O4zX4AAAAA6EKnBwAAAAAAAAAA7b2u0BNiAQAAAMDc6PQAAAAAAAAAAKCl5oWeMO/VPj4+vMgAAAAA1NDpAQAAAAAAAABAGw0LPdkYAAAAACyITg8AAAAAAAAAABpoEunJ8wKllOZ3GC6U/QMAAADQi04PAAAAAAAAAACq1Edi8ioAAAAAWDSdHgAAAAAAAAAA5GoiPXkeAAAAAKyDTg8AAAAAAAAAABIKvfkopdTfatjdCp4CAAAAwGbp9AAAAAAAAAAA4GlxUqXQ40VsLQAAAICOdHoAAAAAAAAAAPCcLNKTUQEAAADAWg3jOPaeAXh7e3s7Ho/1ixwOh/pFAGDRhmGoX8SHZADwLRUAmrh7pF4ul7uL7Pf7RuMAwFKdTqf6RRyptBVEegq9acSXHH7q/jbVzN99eObPkQoATTxypP78+fP2A/yWCgCr5D49AAAAAAAAAAB4iEIPAAAAAPiWTg8AAAAAAAAAAO57NtJT6PGUyssAAQAAAOjrR+8BAAAAAAAAAABg7kR6i7DZl32zTxwAAABgPnR6AAAAAAAAAADQTClFNNVRzYvvRjsAAAAAYjo9AAAAAAAAAAC45fF8S6FHpiYRtOsAAAAA5kCnBwAAAAAAAAAAfyXSWxxX6gEAAAAwPZ0eAAAAAAAAAAB8T6THBFymBwAAALACOj0AAAAAAAAAAPiGSG+5NnKlno0HAAAAMB86PQAAAAAAAAAAyGml5mkpqV78v2w8AAAAgFnR6QEAAAAAAAAAwJ8erKe0Ums1Taq3oLv7AAAAALhNpwcAAAAAAAAAAP8h0luHyjfo1RFdzfr2HgAAAMDc6PQAAAAAAAAAAOBpQqlFmG2qJ9IDAAAAWBmdHgAAAAAAAAAA/OuRgEootSBzS/U+Pj5EegAAAADro9MDAAAAAAAAAIAnCKUWpz7Va1XrVa5j7wEAAADM1nvvAQAAAAAAAAAAYC6aX57GTHwWbjXv7+ffZqVck30l0gMAAACYM50eAAAAAAAAAAA8Siu1aKWUymTujz+/sR8aNp92HQAAAMD86fQAAAAAAAAAAODt7YGwSi61AvWp3u8muIDRrgMAAABYBJ0eAAAAAAAAAACwIZ/l2wSJXSWFHgAAAMCC/Og9AAAAAAAAAAAALIBoamVKKXN+T+c8GwAAAAD/5z49AAAAAAAAAABYwO1qvMLc7taT5wEAAAAslE4PAAAAAAAAAADuUE+t2xxqPXsMAAAAYNF0egAAAAAAAAAAbN18rlOjo99Lucm2hDwPAAAAYB2GcRx7zwAAAM0Mw1C/iA/JAAAATON8PvceAQCAL3ejLDHVljVv9mwnAIB12+12vUcAADpwnx4AAAAAAAAAANyiqtq4v22A2/2ebQMAAACwKTo9AAAAAAAAAACApynxAAAAAPjHj94DAAAAAAAAAABAT7dvRQMAAAAAuEunBwAAAAAAAAAAf+XONAAAAADgLp0eAAAAAAAAAAAAAAAAAOR0egAAAAAAAAAAAAAAAACQ0+kBAAAAAAAAAAAAAAAAQE6nBwAAAAAAAAAAAAAAAAA5nR4AAAAAAAAAAHyvlNJ7BAAAAABgAXR6AAAAAAAAAAAAAAAAAJDT6QEAAAAAAAAAAAAAAABATqcHAAAAAAAAAADfKKX0HgEAAAAAWAadHgAAAAAAAAAAm/ZtjyfSAwAAAAAep9MDAAAAAAAAAGDrfq/ySikiPQAAAADgKe+9BwAAAAAAAAAAgP60eQAAAABAzH16AAAAAAAAAAAAAAAAAJDT6QEAAAAAAAAAAAAAAABATqcHAAAAAAAAAAAAAAAAADmdHgAAAAAAAAAAAAAAAADkdHoAAAAAAAAAAAAAAAAAkNPpAQAAAAAAAAAAAAAAAEBOpwcAAAAAAAAAAAAAAAAAOZ0eAAAAAAAAAAAAAAAAAOR0egAAAAAAAAAAAAAAAACQ0+kBAAAAAAAAAAAAAAAAQE6nBwAAAAAAAAAAAAAAAAA5nR4AAAAAAAAAAAAAAAAA5HR6AAAAAAAAAAAAAAAAAJDT6QEAAAAAAAAAAAAAAABATqcHAAAAAAAAAAAAAAAAADmdHgAAAAAAAAAAAAAAAADkdHoAAAAAAAAAAAAAAAAAkNPpAQAAAAAAAAAAAAAAAEBOpwcAAAAAAAAAAAAAAAAAOZ0eAAAAAAAAAAAAAAAAAOR0egAAAAAAAAAAAAAAAACQ0+kBAAAAAAAAAAAAAAAAQE6nBwAAAAAAAAAAAAAAAAA5nR4AAAAAAAAAAAAAAAAA5HR6AAAAAAAAAAAAAAAAAJDT6QEAAAAAAAAAAAAAAABATqcHAAAAAAAAAAAAAAAAADmdHgAAAAAAAAAAAAAAAADkdHoAAAAAAAAAAAAAAAAAkNPpAQAAAAAAAAAAAAAAAEBOpwcAAAAAAAAAAAAAAAAAOZ0eAAAAAAAAAAAAAAAAAOR0egAAAAAAAAAAAAAAAACQ0+kBAAAAAAAAAAAAAAAAQE6nBwAAAAAAAAAAAAAAAAA5nR4AAAAAAAAAAAAAAAAA5HR6AAAAAAAAAAAAAAAAAJDT6QEAAAAAAAAAAAAAAABA7r33AMCX4/FYv8jhcKhfBAAAAHxLBYAm7h6pl8vl7iL7/b7ROACwVKfTqX4RRyoAOFIBoIlHjtTr9Xr7AX5LBYBVcp8eAAAAAAAAAAAAAAAAAOR0egAAAAAAAAAAAAAAAACQ0+kBAAAAAAAAAAAAAAAAQE6nBwAAAAAAAAAAAAAAAAA5nR4AAAAAAAAAAAAAAAAA5HR6AAAAAAAAAAAAAAAAAJDT6QEAAAAAAAAAAAAAAABATqcHAAAAAAAAAAAAAAAAADmdHgAAAAAAAAAAAAAAAADkdHoAAAAAAAAAAAAAAAAAkNPpAQAAAAAAAAAAAAAAAEBOpwcAAAAAAAAAAAAAAAAAOZ0eAAAAAAAAAAAAAAAAAOR0egAAAAAAAAAAAAAAAACQ0+kBAAAAAAAAAAAAAAAAQE6nBwAAAAAAAAAAAAAAAAA5nR4AAAAAAAAAAAAAAAAA5HR6AAAAAAAAAAAAAAAAAJDT6QEAAAAAAAAAAAAAAABATqcHAAAAAAAAAAAAAAAAADmdHgAAAAAAAAAAAAAAAADkdHoAAAAAAAAAAAAAAAAAkBvGcew9AwAANDMMQ/0iPiQDAAAwjfP53HsEAAAAAAAa2+12vUcAADpwnx4AAAAAAAAAAAAAAAAA5HR6AAAAAAAAAAAAAAAAAJDT6QEAAAAAAAAAAAAAAABATqcHAAAAAAAAAAAAAAAAADmdHgAAAAAAAAAAAAAAAADkdHoAAAAAAAAAAAAAAAAAkNPpAQAAAAAAAAAAAAAAAEBOpwcAAAAAAAAAAAAAAAAAOZ0eAAAAAAAAAAAAAAAAAOR0egAAAAAAAAAAAAAAAACQ0+kBAAAAAAAAAAAAAAAAQE6nBwAAAAAAAAAAAAAAAAA5nR4AAAAAAAAAAAAAAAAA5HR6AAAAAAAAAAAAAAAAAJDT6QEAAAAAAAAAAAAAAABATqcHAAAAAAAAAAAAAAAAADmdHgAAAAAAAAAAAAAAAADkdHoAAAAAAAAAAAAAAAAAkNPpAQAAAAAAAAAAAAAAAEBOpwcAAAAAAAAAAAAAAAAAOZ0eAAAAAAAAAAAAAAAAAOR0egAAAAAAAAAAAAAAAACQ0+kBAAAAAAAAAAAAAAAAQE6nBwAAAAAAAAAAAAAAAAA5nR4AAAAAAAAAAAAAAAAA5HR6AAAAAAAAAAAAAAAAAJDT6QEAAAAAAAAAAAAAAABATqcHAAAAAAAAAAAAAAAAADmdHgAAAAAAAAAAAAAAAADkdHoAAAAAAAAAAAAAAAAAkNPpAQAAAAAAAAAAAAAAAEBOpwcAAAAAAAAAAAAAAAAAOZ0eAAAAAAAAAAAAAAAAAOR0egAAAAAAAAAAAAAAAACQ0+kBAAAAAAAAAAAAAAAAQE6nBwAAAAAAAAAAAAAAAAA5nR4AAAAAAAAAAAAAAAAA5HR6AAAAAAAAAAAAAAAAAJDT6QEAAAAAAAAAAAAAAABATqcHAAAAAAAAAAAAAAAAADmdHgAAAAAAAAAAAAAAAADkdHoAAAAAAAAAAAAAAAAAkNPpAQAAAAAAAAAAAAAAAEBOpwcAAAAAAAAAAAAAAAAAOZ0eAAAAAAAAAAAAAAAAAOR0egAAAAAAAAAAAAAAAACQ0+kBAAAAAAAAAAAAAAAAQE6nBwAAAAAAAAAAAAAAAAA5nR4AAAAAAAAAAAAAAAAA5HR6AAAAAAAAAAAAAAAAAJDT6QEAAAAAAAAAAAAAAABATqcHAAAAAAAAAAAAAAAAADmdHgAAAAAAAAAAAAAAAADk3nsPAHw5Ho/1ixwOh/pFAAAAwLdUAGji7pF6uVzuLrLf7xuNAwBLdTqd6hdxpAKAIxUAmnjkSL1er7cf4LdUAFgl9+kBAAAAAAAAAAAAAAAAQE6nBwAAAAAAAAAAAAAAAAA5nR4AAAAAAAAAAAAAAAAA5HR6AAAAAAAAAAAAAAAAAJDT6QEAAAAAAAAAAAAAAABATqcHAAAAAAAAAAAAAAAAADmdHgAAAAAAAAAAAAAAAADkdHoAAAAAAAAAAAAAAAAAkNPpAQAAAAAAAAAAAAAAAEBOpwcAAAAAAAAAAAAAAAAAOZ0eAAAAAAAAAAAAAAAAAOR0egAAAAAAAAAAAAAAAACQ0+kBAAAAAAAAAAAAAAAAQE6nBwAAAAAAAAAAAAAAAAA5nR4AAAAAAAAAAAAAAAAA5HR6AAAAAAAAAAAAAAAAAJDT6QEAAAAAAAAAAAAAAABATqcHAAAAAAAAAAAAAAAAADmdHgAAAAAAAAAAAAAAAADkdHoAAAAAAAAAAAAAAAAAkNPpAQAAAAAAAAAAAAAAAEBOpwcAAAAAAAAAAAAAAAAAuWEcx94zAABAM8Mw1C/iQzIAAADTOJ/PvUcAAAAAAKCx3W7XewQAoAP36QEAAAAAAAAAAAAAAABATqcHAAAAAAAAAAAAAAAAADmdHgAAAAAAAAAAAAAAAADkdHoAAAAAAAAAAAAAAAAAkNPpAQAAAAAAAAAAAAAAAEBOpwcAAAAAAAAAAAAAAAAAOZ0eAAAAAAAAAAAAAAAAAOR0egAAAAAAAAAAAAAAAACQ0+kBAAAAAAAAAAAAAAAAQE6nBwAAAAAAAAAAAAAAAAA5nR4AAAAAAAAAAAAAAAAA5HR6AAAAAAAAAAAAAAAAAJDT6QEAAAAAAAAAAAAAAABATqcHAAAAAAAAAAAAAAAAADmdHgAAAAAAAAAAAAAAAADkdHoAAAAAAAAAAAAAAAAAkNPpAQAAAAAAAAAAAAAAAEBOpwcAAAAAAAAAAAAAAAAAOZ0eAAAAAAAAAAAAAAAAAOR0egAAAAAAAAAAAAAAAACQ0+kBAAAAAAAAAAAAAAAAQE6nBwAAAAAAAAAAAAAAAAA5nR4AAAAAAAAAAAAAAAAA5HR6AAAAAAAAAAAAAAAAAJDT6QEAAAAAAAAAAAAAAABATqcHAAAAAAAAAAAAAAAAADmdHgAAAAAAAAAAAAAAAADkdHoAAAAAAAAAAAAAAAAAkNPpAQAAAAAAAAAAAAAAAEBOpwcAAAAAAAAAAAAAAAAAOZ0eAAAAAAAAAAAAAAAAAOR0egAAAAAAAAAAAAAAAACQ0+kBAAAAAAAAAAAAAAAAQE6nBwAAAAAAAAAAAAAAAAA5nR4AAAAAAAAAAAAAAAAA5HR6AAAAAAAAAAAAAAAAAJDT6QEAAAAAAAAAAAAAAABATqcHAAAAAAAAAAAAAAAAADmdHgAAAAAAAAAAAAAAAADkdHoAAAAAAAAAAAAAAAAAkNPpAQAAAAAAAAAAAAAAAEBOpwcAAAAAAAAAAAAAAAAAOZ0eAAAAAAAAAAAAAAAAAOR0egAAAAAAAAAAAAAAAACQ0+kBAAAAAAAAAAAAAAAAQE6nBwAAAAAAAAAAAAAAAAA5nR4AAAAAAAAAAAAAAAAA5HR6AAAAAAAAAAAAAAAAAJDT6QEAAAAAAAAAAAAAAABATqcHAAAAAAAAAAAAAAAAADmdHgAAAAAAAAAAAAAAAADkdHoAAAAAAAAAAAAAAAAAkNPpAQAAAAAAAAAAAAAAAEDuvfcAwJfj8Vi/yOFwqF8EAAAAfEsFgCbuHqmXy+XuIvv9vtE4ALBUp9OpfhFHKgA4UgGgiUeO1Ov1evsBfksFgFVynx4AAAAAAAAAAAAAAAAA5HR6AAAAAAAAAAAAAAAAAJDT6QEAAAAAAAAAAAAAAABATqcHAAAAAAAAAAAAAAAAADmdHgAAAAAAAAAAAAAAAADkdHoAAAAAAAAAAAAAAAAAkNPpAQAAAAAAAAAAAAAAAEBOpwcAAAAAAAAAAAAAAAAAOZ0eAAAAAAAAAAAAAAAAAOR0egAAAAAAAAAAAAAAAACQ0+kBAAAAAAAAAAAAAAAAQE6nBwAAAAAAAAAAAAAAAAA5nR4AAAAAAAAAAAAAAAAA5HR6AAAAAAAAAAAAAAAAAJDT6QEAAAAAAAAAAAAAAABATqcHAAAAAAAAAAAAAAAAADmdHgAAAAAAAAAAAAAAAADkdHoAAAAAAAAAAAAAAAAAkNPpAQAAAAAAAAAAAAAAAEBOpwcAAAAAAAAAAAAAAAAAOZ0eAAAAAAAAAAAAAAAAAOR0egAAAAAAAAAAAAAAAACQG8Zx7D0DAAA0MwxD/SI+JAMAADCN8/ncewQAAAAAABrb7Xa9RwAAOnCfHgAAAAAAAAAAAAAAAADkdHoAAAAAAAAAAAAAAAAAkNPpAQAAAAAAAAAAAAAAAEBOpwcAAAAAAAAAAAAAAAAAOZ0eAAAAAAAAAAAAAAAAAOR0egAAAAAAAAAAAAAAAACQ0+kBAAAAAAAAAAAAAAAAQE6nBwAAAAAAAAAAAAAAAAA5nR4AAAAAAAAAAAAAAAAA5HR6AAAAAAAAAAAAAAAAAJDT6QEAAAAAAAAAAAAAAABATqcHAAAAAAAAAAAAAAAAADmdHgAAAAAAAAAAAAAAAADkdHoAAAAAAAAAAAAAAAAAkNPpAQAAAAAAAAAAAAAAAEBOpwcAAAAAAAAAAAAAAAAAOZ0eAAAAAAAAAAAAAAAAAOR0egAAAAAAAAAAAAAAAACQ0+kBAAAAAAAAAAAAAAAAQE6nBwAAAAAAAAAAAAAAAAA5nR4AAAAAAAAAAAAAAAAA5HR6AAAAwC/27t62kbNrwLBGUK7IUAeEsLESZu7BmXrYAlSBCnAPztTDZkwUGwI7MBYKVMF8Af3qk1fUcHjm5/m7ruiFwR2eZzgyd7G+3wMAAAAAAAAAAADE6fQAAAAAAAAAAAAAAAAAIE6nBwAAAAAAAAAAAAAAAABxOj0AAAAAAAAAAAAAAAAAiNPpAQAAAAAAAAAAAAAAAECcTg8AAAAAAAAAAAAAAAAA4nR6AAAAAAAAAAAAAAAAABCn0wMAAAAAAAAAAAAAAACAOJ0eAAAAAAAAAAAAAAAAAMTp9AAAAAAAAAAAAAAAAAAgTqcHAAAAAAAAAAAAAAAAAHE6PQAAAAAAAAAAAAAAAACI0+kBAAAAAAAAAAAAAAAAQJxODwAAAAAAAAAAAAAAAADidHoAAAAAAAAAAAAAAAAAEKfTAwAAAAAAAAAAAAAAAIA4nR4AAAAAAAAAAAAAAAAAxOn0AAAAAAAAAAAAAAAAACBOpwcAAAAAAAAAAAAAAAAAcTo9AAAAAAAAAAAAAAAAAIjT6QEAAAAAAAAAAAAAAABAnE4PAAAAAAAAAAAAAAAAAOJ0egAAAAAAAAAAAAAAAAAQp9MDAAAAAAAAAAAAAAAAgDidHgAAAAAAAAAAAAAAAADE6fQAAAAAAAAAAAAAAAAAIE6nBwAAAAAAAAAAAAAAAABxOj0AAAAAAAAAAAAAAAAAiNPpAQAAAAAAAAAAAAAAAECcTg8AAAAAAAAAAAAAAAAA4nR6AAAAAAAAAAAAAAAAABCn0wMAAAAAAABamvBCAAAgAElEQVQAAAAAAACAuKvUAwD/2u120y+y3W6nXwQAAAD8KRUAZnHyK/Xnz58nL3J7ezvTOABQqpeXl+kX8ZUKAL5SAWAWY75SX19fh1/g71IBoEr26QEAAAAAAAAAAAAAAABAnE4PAAAAAAAAAAAAAAAAAOJ0egAAAAAAAAAAAAAAAAAQp9MDAAAAAAAAAAAAAAAAgDidHgAAAAAAAAAAAAAAAADE6fQAAAAAAAAAAAAAAAAAIE6nBwAAAAAAAAAAAAAAAABxOj0AAAAAAAAAAAAAAAAAiNPpAQAAAAAAAAAAAAAAAECcTg8AAAAAAAAAAAAAAAAA4nR6AAAAAAAAAAAAAAAAABCn0wMAAAAAAAAAAAAAAACAOJ0eAAAAAAAAAAAAAAAAAMTp9AAAAAAAAAAAAAAAAAAgTqcHAAAAAAAAAAAAAAAAAHE6PQAAAAAAAAAAAAAAAACI0+kBAAAAAAAAAAAAAAAAQJxODwAAAAAAAAAAAAAAAADidHoAAAAAAAAAAAAAAAAAEKfTAwAAAAAAAAAAAAAAAIA4nR4AAAAAAAAAAAAAAAAAxOn0AAAAAAAAAAAAAAAAACCu6/s+9QwAADCbruumX8RvkgEAAFjHfr9PPQIAAAAAADPbbDapRwAAErBPDwAAAAAAAAAAAAAAAADidHoAAAAAAAAAAAAAAAAAEKfTAwAAAAAAAAAAAAAAAIA4nR4AAAAAAAAAAAAAAAAAxOn0AAAAAAAAAAAAAAAAACBOpwcAAAAAAAAAAAAAAAAAcTo9AAAAAAAAAAAAAAAAAIjT6QEAAAAAAAAAAAAAAABAnE4PAAAAAAAAAAAAAAAAAOJ0egAAAAAAAAAAAAAAAAAQp9MDAAAAAAAAAAAAAAAAgDidHgAAAAAAAAAAAAAAAADE6fQAAAAAAAAAAAAAAAAAIE6nBwAAAAAAAAAAAAAAAABxOj0AAAAAAAAAAAAAAAAAiNPpAQAAAAAAAAAAAAAAAECcTg8AAAAAAAAAAAAAAAAA4nR6AAAAAAAAAAAAAAAAABCn0wMAAAAAAAAAAAAAAACAOJ0eAAAAAAAAAAAAAAAAAMTp9AAAAAAAAAAAAAAAAAAgTqcHAAAAAAAAAAAAAAAAAHE6PQAAAAAAAAAAAAAAAACI0+kBAAAAAAAAAAAAAAAAQJxODwAAAAAAAAAAAAAAAADidHoAAAAAAAAAAAAAAAAAEKfTAwAAAAAAAAAAAAAAAIA4nR4AAAAAAAAAAAAAAAAAxOn0AAAAAAAAAAAAAAAAACBOpwcAAAAAAAAAAAAAAAAAcTo9AAAAAAAAAAAAAAAAAIjT6QEAAAAAAAAAAAAAAABAnE4PAAAAAAAAAAAAAAAAAOJ0egAAAAAAAAAAAAAAAAAQp9MDAAAAAAAAAAAAAAAAgDidHgAAAAAAAAAAAAAAAADE6fQAAAAAAAAAAAAAAAAAIE6nBwAAAAAAAAAAAAAAAABxOj0AAAAAAAAAAAAAAAAAiNPpAQAAAAAAAAAAAAAAAECcTg8AAAAAAAAAAAAAAAAA4nR6AAAAAAAAAAAAAAAAABCn0wMAAAAAAAAAAAAAAACAOJ0eAAAAAAAAAAAAAAAAAMTp9AAAAAAAAAAAAAAAAAAgTqcHAAAAAAAAAAAAAAAAAHE6PQAAAAAAAAAAAAAAAACI0+kBAAAAAAAAAAAAAAAAQJxODwAAAAAAAAAAAAAAAADidHoAAAAAAAAAAAAAAAAAEKfTAwAAAAAAAAAAAAAAAIA4nR4AAAAAAAAAAAAAAAAAxOn0AAAAAAAAAAAAAAAAACBOpwcAAAAAAAAAAAAAAAAAcVepBwD+tdvtpl9ku91OvwgAAAD4UyoAzOLkV+rPnz9PXuT29namcQCgVC8vL9Mv4isVAHylAsAsxnylvr6+Dr/A36UCQJXs0wMAAAAAAAAAAAAAAACAOJ0eAAAAAAAAAAAAAAAAAMTp9AAAAAAAAAAAAAAAAAAgTqcHAAAAAAAAAAAAAAAAAHE6PQAAAAAAAAAAAAAAAACI0+kBAAAAAAAAAAAAAAAAQJxODwAAAAAAAAAAAAAAAADidHoAAAAAAAAAAAAAAAAAEKfTAwAAAAAAAAAAAAAAAIA4nR4AAAAAAAAAAAAAAAAAxOn0AAAAAAAAAAAAAAAAACBOpwcAAAAAAAAAAAAAAAAAcTo9AAAAAAAAAAAAAAAAAIjT6QEAAAAAAAAAAAAAAABAnE4PAAAAAAAAAAAAAAAAAOJ0egAAAAAAAAAAAAAAAAAQp9MDAAAAAAAAAAAAAAAAgDidHgAAAAAAAAAAAAAAAADE6fQAAAAAAAAAAAAAAAAAIE6nBwAAAAAAAAAAAAAAAABxOj0AAAAAAAAAAAAAAAAAiNPpAQAAAAAAAAAAAAAAAEBc1/d96hkAAGA2XddNv4jfJAMAALCO/X6fegQAAAAAAGa22WxSjwAAJGCfHgAAAAAAAAAAAAAAAADE6fQAAAAAAAAAAAAAAAAAIE6nBwAAAAAAAAAAAAAAAABxOj0AAAAAAP7f2+Pd2+Nd6ila51MAAAAAAAAAgLJ0fd+nngEAAGbTdd30i/hNMgAAbfolDLt+eE41SeN8EE3Z7/epRwAAAAAAYGabzSb1CABAAlepBwAAAAAAIDGr23J2+HTUegAAAAAAAACQs8vUAwAAAAAAkJJIrwg+JgAAAAAAAADIWdf3feoZAABgNl3XTb+I3yQDANCIgfTL9rbkvvp0fDSV2e/3qUcAAAAAAGBmm80m9QgAQAL26QEAAAAAtEikl7mvPgWL9QAAAAAAAAAgQzo9AAAAAIDmiPSKINUDAAAAAAAAgFLo9AAAAAAA2vJV5XX98CzSy41UDwAAAAAAAACKoNMDAAAAAGjIQKS38iSMJNUDAAAAAAAAgPzp9AAAAAAAWiHSK5RUDwAAAAAAAAAyp9MDAAAAAGiCSK9oUj0AAAAAAAAAyJlODwAAAACgfiK9Ckj1AAAAAAAAACBbOj0AAAAAgMqJ9Koh1QMAAAAAAACAPF2lHgAAAAAAgAU1UnAdPWaVIeL1w/PRw7493lV5XgAAAAAAAAAogk4PAAAAAKBaA5Fe0U3XyPiwtUWCUj0AAAAAAAAASKXr+z71DAAAMJuu66ZfxG+SAQCoQ2WR3nKLASu7GyUep2X7/T71CAAAAAAAzGyz2aQeAQBIQKcHAEBVdHoAAHBQU8e1XKH3UU23pbiztEynBwAAAABQH50eALRJpwcAQFV0egAAcFFLwbVOnvdZHbeooFM0TqcHAAAAAFAfnR4AtOky9QAAAAAAAMwpVd42o7fHu4SnSPvuZxmI8Uo5AgAAAAAAAADU4Sr1AAAAAAAArKSIHWtnBWbLhWqHX17EHQMAAAAAAAAAkuv6vk89AwAAzKbruukX8ZtkAADKNRCn5Z+cjSzrAgeZ0uwVfd/yH579fp96BAAAAAAAZrbZbFKPAAAkoNMDAKAqOj0AAFpWdK91MqWb5QjhYC/zG1j0R984nR4AAAAAQH10egDQpsvUAwAAAAAAMIMpK+OSGx7++uF5rtgsfKlyb2+5kwMAAAAAAABAQXR6AAAAAACVy3yj2vAuuCWGj1025+At848YAAAAAAAAAKqn0wMAAAAAKN5w6rbmJOdKOHk7qV7OYwMAAAAAAABAHXR6AAAAAABlK7fC+mryhdboHX2jc39JoXe70LEBAAAAAAAAoBQ6PQAAAACAauW8TG8g0ltzjJpSvZw/bgAAAAAAAACom04PAAAAAKBg2TZjwzKJ9MJvWuJtL3FmAAAAAAAAACiFTg8AAAAAoFTD5VVx29USDlxNqjd8kDxnBgAAAAAAAIAK6PQAAAAAAFjV0VoseVWYfAAAAAAAAAAAoFw6PQAAAACAIhW6TC/nlW7n3rQ8z2KlHgAAAAAAAACs7yr1AAAAAAAAtC7bqvCkt8e7codnBSfDyJsRF/nnj79mGQYAAAAAAACA5XR936eeAQAAZtN13fSL+E0yAAD5q2mZXm7TnrtxLrf5Dwp9Qkq35rpC8R4AAAAAQLY2m03qEQCABOzTAwAAAACAOCv1Grdmm/fRzdP9+//W7AEAAAAAAAAkZ58eAABVsU8PAIAWFLoqraCxrdRjWKo2bwzNHgAAAABAcvbpAUCb7NMDAAAAACC99/BJP0a2cs7z3r3v2RPsAQAAAAAAAKzJPj0AAKpinx4AANUrd0na+MYph1NYqce7IvK8AYI9AAAAAICV2acHAG26TD0AAAAAAAD8R+lZFNV4e7yr4Gm8ebp/X7IHAAAAAAAAwEJ0egAAAAAAxSg3GTp38nJPWhA3+SuHPK+y+6PWAwAAAAAAAFiUTg8AAAAAoBLXD8+pRyAvHolz1Zfn/UKtBwAAAAAAALAQnR4AAAAAQBnqzoc+S3veRgq31h6qAdUXeh+p9QAAAAAAAABmp9MDAAAAAICpsk28GgkOp2iq0PtIrQcAAAAAAAAwI50eAAAAAEAN5FgQ0Gah95FaDwAAAAAAAGAWOj0AAAAAgAKoiVhIs49Ws2v0jlLrAQAAAAAAAEyk0wMAAAAAKJ5legzwePxCofcVqR4AAAAAAABAmE4PAOBs3QipZwQAAKqiKWJRTT1gTR02wGI9AAAAAAAAgBidHgDACbEGT7kHAADwUWClmy1wzMsavfGkegAAAAAAAADnuko9AABApmYv6z5esO/7eS8OAAAADFDoneuQ6v3zx1+pBwEAAAAAAAAog316AAD/sc76O0v2AACA8U72RaXsnTtrzlIOVYqT97PujK3u0y3KYj0AAAAAAACAkezTAwD4V5Jq7v1NbdgDAABacP3wPKaYEukxF4XedBbrAQAAAAAAAIyh04Nc7Ha76RfZbrfTLwLQoBz22h1mUOsBAJnwp1RgOSdTPZEecxHpzejm6V6qB0BCLy8v0y9ye3s7/SIAUDRfqQAwizFfqa+vr8Mv8HepAFCly9QDAACk1HVdDpHeu9zmAQAAkqsyNLp+eP4c4x3+YT6R3rl3Pp/Jv3JywsoetsqOk4PDYj0AAAAAAAAAjrJPDwBoVCyHG953N1diZ7ceAAAwXv552FfKnZz8ifQWYqseAAAAAAAAwFd0egBAi84K6sb3ch9fOb3Z67pOqgcAAABnUegtTaoHAAAAAAAAcNRl6gEAANY2sqDr/yf2LhN/+UHXdXPt6AMAAIDqifTWcfN0n3oEAAAAAAAAgOzo9ACAhozJ3mbp6z5fcMoVpHoAANAs0VEq597564fnhSZZWdGPXNHDF0eqBwAAAAAAAPALnR4A0IqRhd5C7z7x4hbrAQAAR1WTh7GOih8Ykd76pHoAAAAAAAAAH+n0AIAmjIn0VhjDYj0AAACYnUgvFakeAAAAAAAAwDudHgBQv+G8bdE1erO/nVQPAABgaedGXxUvqSuCSC8tqR4AAAAAAADAgU4PAKjcyUhvtUnmel+pHgAANEJ9RBJlPXhlTVsrqR4AAAAAAADAhU4PAKhbnpHe9HeX6gEAACzEMj0IkOoBAAAAAAAA6PQAgGrlHOlNn0GqBwAAKMQIqOmxsUwvK1I9AAAAAAAAoHE6PQCgRTlEegf5TAIAAIBlegUR6WVIqgcAAAAAAAC0TKcHANRpYN1cNWmclXoAAAC0SaSXLakeAAAAAAAA0CydHgBQobIivSkjSfUAAKBWMqT1Wab3LvPHL/PxkOoBAAAAAAAAbdLpAQANyTDSO8h2MAAAgEaI9Eoh0gMAAAAAAAAgTzo9AKA2ra2Ya+28AAAAyYn0YJiVegAAAAAAAECDdHoAQCsy31k3ZTypHgAAwBRWtJXCJ1UQqR4AAAAAAADQGp0eAFCVr4q1zCO9gyKGBAAAqMy56ZdleqmI9Ioj1QMAAAAAAACaotMDAKiBlXoAANAatVgSbjsAAAAAAAAAcJRODwCoR9HL9AAAAFjfWSvaqon0SjyIZXqFslIPAAAAAAAAaIdODwAgI1OSQiv1AAAAztJmpFcikV7RpHoAAAAAAABAI3R6AEAlLNMDAACqoUpagUhvmIcQAAAAAAAAAM7S+S/XAYA61NTphTfjlXjY2c2yV9CdBAAgrTGJVIPl2IxEegU9Y4rBOvzzx1+pRwAAAAAAWM9ms0k9AgCQwFXqAQAAlvWx2qo+vuo6/y8MAAAAJ4j0CiLSAwAAAAAAAKAUl6kHAACYwcgVat3/LD0PAAAAeRLpQRI3T/epRwAAAAAAAABYln16AECLDqme1XMAAAAcpdDLgWV6AAAAAAAAABTEPj0AoF3ZLtabEhBmeygAAIDkRnZfIj1YgpV6AAAAAAAAQN10egBA01RtAAAAjRDplcUyvSpJ9QAAAAAAAICKXaUeAAAAAAAAFqTQAwAAAAAAAACWZp8eAFC8iTvxrNQDAAComEivRJbpVcxKPQAAAAAAAKBWOj0AgBz1fZ96BAAAgOKJ9AAAAAAAAACAdej0AABqW6lX2XEAAABiRHqFskwPAAAAAAAAgBLp9AAAAAAAqM2Y1uv64VmkB+u7ebpPPQIAAAAAAADA/HR6AAAAAABUZWSkt8IknMsyPQAAAAAAAAAKpdMDAAAAAKAeIj3In5V6AAAAAAAAQH2uUg8AAAAAAADzOBnpKfQAAAAAAAAAgCXYpwcAAAAAQA1EeqUbswuRalipBwAAAAAAAFRGpwcAAAAAQPFEegAAAAAAAABAQjo9AKB4fd8nvwIAAAAJifQqYJkeAAAAAAAAAEXT6QEAAAAAULDhvuv64VmkB3m6ebpPPQIAAAAAAADAbHR6AEANpizEs0wPAACgXCcjvdUmAQAAAAAAAABadpV6AAAAAAAA/uP64Xk4P+PiVKF3sXyk93mAmrLAlc/igQcAAAAAAACgdPbpAQCViK3Fs0wPAACgRMkjPWAWN0/3qUcAAAAAAAAAmId9egBAPfq+77rurNcvN0xCtZ4LAADgYDjSU+gBAAAAAAAAAOuzTw8AqErf92MqtZEvS+is4BAAAGjQyYVytco20iuoD2z24QEAAAAAAACA5dinBwBU6NDgHU3dMs/zAAAAGJBPpCd1m5GbCQAAAAAAAEAF7NMDAKrVH5N6KAAAAILyifSAGd083aceAQAAAAAAAGAG9ukBAAAAAJC7gUhPoQcAAAAAAAAAJGefHgBAVewMBAAA6iPSAwAAAAAAAAAyp9MDAMhO13WpRwAAABKTn70T6a1vzRs78PkCAAAAAAAAQEF0egAAAAAAZCrPSO/zVIpBmOLm6T71CAAAAAAAAABT6fQAAAAAAMhRnpFe6eyvAwAAAAAAAIAlXKUeAACA/+i6Lvxr+76fcRIAAAg4mgBJqhby9nhX8b39Kier+MgAAAAAAAAAQLl0egAAAADAJCfXc318gciKkzJfo2cfHQAAAAAAAADwmU4PAKASlukBALC+QLB0+CU51FbjpeoMrx+eG0zCMo/0WuA+AwAAAAAAAECATg8AICNd16UeAQAARpnYj5VS630+5vs/yX/4EuUf6TVYTi7K/QQAAAAAAACgGpepBwAAYAaW6QEAsJq3x7u50pqcE52Tx8x5+EKJ9KBlN0/3qUcAAAAAAAAAmMQ+PSjGbrebfpHtdjv9IotyzPEcMxOOOZ5jnrTOMr3kxyzCbrfL/4yNfJSOOZ5jZsIxx3PMTLRwzBbOeLHiMWfvlM5arJfbMd8e75boxz4e89s5L/6ouIf224/vAy/OPJAbeAxy+1fQQncyfMyTTzgs4eXlZfpFbm9vp19kUY45nmNmwjHHc8wctHDGC8c8h2NmwjHHc8xMtHDMFs544ZjncMxMOOZ4jpmJRo4JAFRApwcAUDzL9AAAWMfJwudzrZR5XlWBbz++//37n6mnmGo40mNNmawuBAAAAAAAAIDiXKYeAACAi4u1lukBAEDYcHF3/fB8NO/56p+fdfGVZTVMBQ3eSSI9AAAAAAAAAKACOj0AgLJZpgcAwAoG0rWRJd6Ut1hTJmO0Q6QHAAAAAAAAANRBpwcAkJ5legAA5Gw40htzhZEv08jFlJu6lTt5ofyIAQAAAAAAAMBydHoAAAWzTA8AgKV9FfbMtUaPk/7+/c/UIyxCpJchP9QAAAAAAAAAEKbTAwBILLxMT6QHAMDSBiK9ld9xHbaNraamW61tAwAAAAAAAAAudHoAAIUS6QEAkIoqiYlqivQAAAAAAAAAAA50egAAKYWX6QEAwNLEVPn4+/c/h1/w7cf3dSaZznOVysk7L8EFAAAAAAAAgCl0egAAyYQjPcv0AABY2ldJzwolT0Edl67pXAV9uAAAAAAAAAAAZ9HpAQAURqQHAMDSEkZ6CUnIluYOAwAAAAAAAAAV0+kBAKQRW6Yn0gMAIJW6I738/f37n6lHoGZ+wAEAAAAAAABgoqvUAwAAtEikBwBAtiw9K9S3H9+1fOsrJW/zc00RNpvNOm/0+vo6/SKrTRvmmOONOeZ+v5/+RgAAAAAAANTNPj0AAAAA4ISJMVKVjVApgRYAAAAAAAAAACvQ6QEArM0yPQAAslVlUDdGEQe3Lo+Yk4+36BQAAAAAAAAAprtKPQAAQFtEegAAFEfDU4pvP77n3PL98iDtdrvp19xut9MvAgAAAAAAAAAwnX16AADrEekBAJCzo0u3RHpZyTnDo1B+xgEAAAAAAABgFjo9AICsifQAACjd0fyvdNmmTd9+fE89Anmp8gcQAAAAAAAAADKk0wMAWElgmZ5IDwCA1eTTd62fwJUVMlmpx4yyLU4BAAAAAAAAoDhXqQcA/rXb7VKPAMCCRHoAQMW++iPtdrtdeRJmp+EBAABy8PLyMv0it7e30y8CAEXzlQoAsxjzlfr6+jr8An+XCgBVsk8PAGBxIj0AADK33DK9slbVlWJ4pV4+qxFJbvgHUIgLAAAAAAAAADPS6QEALEukBwBAoZI0PEWEQ0UMCQAAAAAAAADAmnR6AAALEukBAEDmCt34Z6UeJ1mmBwAAAAAAAABr6vyH4JCJ3W43/SLb7Xb6RQCYi0gvicBt/8wHAQD+lNqUr2Ke6RlPIIFbvx0qYsijVFgMK+IJKTSUZQmZPJPwlf1+n3oEaN3Ly8v0i9ze3k6/CAAUzVcqAMxizFfqb7/9NvwCf5cKAFWyTw8AIBfaMAAA8pGklxBpnGX4dsmfGldEpAcAAAAAAAAANdHpAQAs4qytbn3fi/QAAKhMrZ2YwAlm5AcKAAAAAAAAgGro9AAA5ndupLfcJAAAMKzWmm6k0o9vpR5HWaYHAAAAAAAAAOvT6QEAzEykBwBA6ZJkPNohAAAAAAAAAADKpdMDAJiTSA8AAC5scluRlXr8wjI9AAAAAAAAAEhCpwcAMBuRHgAAxJTSDuU5Z55TkSGPCtnycAIAAAAAAAAV0OkBAMxjfKTX971IDwCATHxOI9qJJRrZNdfIMTko8eNu5985AAD/x97947aRbAscZgvKFd0tEMKLDRjKXjazBhtawluAIsuR0wHeEgxpHS8TDCi+MLgHB15Bv4ADXY1ENtnVf6pO1ffBkcfTOl1NUfQMfjgAAAAAANTtMvcAAAA1GBXpLToJAACMNXskE7EUiu7q7tmxM0wOBwAAAAAAAACLsk8PAGAqkR4AAEwhH5rFwDFK+Box8KB9lwEAAAAAAADA0nR6AACTiPQAAOC1ipOw0KVTxc+FPY8YAAAAAAAAAPLS6QEApBPpAQBAUFVGTaFLQpbjhUHhvEQBAAAAAACAOuj0AACW1fe9SA8AAI6RZ8xr4DyrTBPZG3i4Ib7FQgwJAAAAAAAAAMN0egAAic5ZpqfQAwCgKUqwEkj1WhM90gMAAAAAAACAOuj0AABSiPQAAKApeieAJXh3BQAAAAAAAKqh0wMAGE2kBwAAs8iVZ1S/Vs5KvXZUs0wv1rQAAAAAAAAA8J5ODwBgHJEeAAAcJAArilSvBdVEegAAAAAAAABQAZ0eAMAIIj0AACAKqV7dRHpUwGsVAAAAAAAAqIlODwDgXCI9AACYUaA8I9Cob0j1alVlpBd3cgAAAAAAAADYbDaXuQcA/nZzc5N7BACGnIz0FHoAQE38LZWxAkVfgUadxdXdc2u33DKpGwBQq+vr69wjAEAN/EgFgFmc8yN1u92uMAkAUBr79AAAThPpAQAAcR1rt/R7QR17cCI9YvGKBQAAAAAAACqj0wMAOKHwSK87JOM8AABwDnlGIaR64dQd6dVxFwAAAAAAAAC0SacHADCk8EgPAABKUHfrVUc4NHAXdT++ytQd6QEAAAAAAABAaDo9AICjRHoAAFCZlpu0q7vnYzVXy8cSSCORXmW3wzEeNAAAAAAAAFAfnR4AwGFxI71iBwMAgD15RkZSvaAaifQAAAAAAAAAIC6dHgDAAXEjPQAAWJm+KxypXjitRXq13hcvPGIAAAAAAACgSjo9AIC3RHoAAMBerTGJVC+Q1iI9AAAAAAAAAAhKpwcA8A+xIr2T0wIAQGnERYWQ6oXQbKRX/Q22zMMFAAAAAAAAaqXTAwD4j1iRHgAAMIoC7Y2BVM9ZlaDZSA8AAAAAAAAAItLpAQD8bTjS6/tepAcAAG+ouaK7unu2WK9MB89/4HnVp507bYrHCgAAAAAAAFRMpwcAsNmcEemtNslEgUYFAKBBsQqNWNNO0c6dRnEs0lt/EgAAAAAAAADgTDo9AIB6Ij0AAIA0TS1qC6fZp9PmXVfMAwUAAAAAAADqptMDAFoXN9IbnhwAAHjt4IIy3nhd0ShqMvIgAAAAAAAAACCcy9wDAADkFDfSAwCA7JRvVVKFFcKD2Lu6e/ZWUwcvaQAAAAAAAKB69ukBAO0S6QEAAMdISgDm4h0VAAAAAAAAaIFODwBolEgPAABWptMAEnjrAAAAAAAAACAEnR4A0KIKIr3hWwAAAF77/e1D7hGAdFK90Dw+AAAAAAAAoBE6PQCgORVEeseEHh4AAACojEgPAAAAAAAAaIdODwBoy5KenokAACAASURBVECk1/e9zg0AANgIS6A8visBAAAAAAAAKJxODwBoyHCkt+YkEw2vBAQAgBX8/vYh9whAW6R64XhkAAAAAAAAQFN0egBAK0R6AACQUcZaQ1IIsD6RHgAAAAAAANAanR4A0ITokV73Su5ZAAAAIA/pFwAAAAAAAADF0ukBAK3rIsh9SAAA0BAhEJTMd2gIHhMAAAAAAADQIJ0eAFC/Rjq3EIsBAQAAYCINWOE8IAAAAAAAAKBNOj0AoHKNRHoAAMBBv799yD0CQENEegAAAAAAAECzdHoAQM1EegAAAFAfMViZPBcAAAAAAACgZTo9AKBaIj0AAGAskQlE4bsVAAAAAAAAgKLo9ACAOon0AACA398+5B4BWJBUrygeBwAAAAAAANA4nR4AUCGRHgAALE2PAZTAe1EhPAgAAAAAAAAAnR4AUJs2I72+73OPAAAAZbFMDxqhEMvOIwAAAAAAAADY6PQAgMq0GekBAABvpEV6UhMIyjdvRg4fAAAAAAAAYE+nBwDUQ6QHAAAAbVKLZeHYAQAAAAAAAF7o9ACASoj0AACAvbRlekB0mrGVOXAAAAAAAACA13R6AEANRHoAALC+MgsNkR60rMz3pSo5agAAAAAAAIA3dHoAQHgiPQAAKN86+dyUr6I5gTr4Xl6BQwYAAAAAAAB4T6cHAAAAANTAJj1gT0W2nKu7Z8cLAAAAAAAAcJBODwAgvL7vc48AAECjyqk1RHrAa+W8O9XEqQIAAAAAAAAM0OkBAAAAAGtYLqUT6QHv2fw2L4cJAAAAAAAAMEynBwAAAACky15uzBLpZb8LYCG+u2fhGAEAAAAAAABO0ukBAAAAACuZffGdTXrASRqzKawlBAAAAAAAADhT1/d97hkAAGA2XddNv4gPyQAAY43q5WZJPuYt9FQo0AJl71jeG+HFbrfLPQIAAAAAkWy329wjAAAZ2KcHAAAAAEy1csshtgESqM5GcVwAAAAAAAAAo9inBwBAVezTAwDIaIWteie/xNXd89iKT4sCrdH6DvOuCO/ZpwcAAADAKPbpAUCb7NMDAAAAAOYxKu0Y1cn8/vZh/2vGAYBmea8Y4HAAAAAAAAAA0tinBwBAVezTAwDILmFR1bEs5PxLvVxhxq8OVM9ivde8GcIA+/QAAAAAGMU+PQBo02XuAQAAAACAqlzdPY9NXyamMtoSIM3+3UOt510UAAAAAAAAYDqdHgAAAAAws9XSl+ltiToFSKiLq+E9EAAAAAAAAGAuOj0AAAAAYBGLpi8H25JmSxtgogYX6yn0AAAAAAAAAOal0wMAAAAAlvLSgcxYv2hLgIUs8ZZVIO+iAAAAAAAAAEvQ6QEAAAAAi5tevwhLgNXUul7PGykAAAAAAADAcnR6AAAAAMB63lQiwxnM0kmJZAUYUFOt5+0OAAAAAAAAYGk6PQAAAAAgmxnTkTpaGqA009eBZiTPAwAAAAAAAFiNTg9K8fT0NP0iNzc30y8CAAAA/pYKAG8ECvbkeQDU5+fPn9Mvcn19Pf0iABCaH6kAMItzfqT++vVr+A/4f6kAUCWdHgAAAAAAwLmKDfbkeQAAAAAAAAAZ6fQAAAAAgPASahlBCzDR67eRLM2e9zEAAAAAAACAcuj0AAAAAAAAJnmfzC1R7gnzAAAAAAAAAIql0wMAAAAAmqN1AZa2f595eno6+E//6//+5+Dv//u///f9b97c3Mw4GAAAAAAAAABL0OkBAAAAALEtsbQKYFEHezwAAAAAAAAA4rrIPQAAAAAAAAAAAAAAAAAABKbTAwAAAAACS1imd3X3vMQkAAAAAAAAAAA06zL3AAAAAABAGO+jOM0bAAAAAAAAAADo9AAAAACA046trdv/fq5azzI9AAAAAAAAAABKoNMDAAAAAIac08LlrfXOV/6EAAAAAAAAAABEdJF7AAAAAACgXKMW1iVst5ti5S8HAAAAAAAAAADH6PQAAAAAgMMqC+Es0wMAAAAAAAAAYCE6PQAAAADggLRIb7W0r7KGEAAAAAAAAACA0HR6AAAAAED9LNMDAAAAAAAAAGA5Oj0AAAAA4K3Ct9WNHU+kBwAAAAAAAADAonR6AAAAAEAkhTeEAAAAAAAAAAA0SKcHAAAAANTMMj0AAAAAAAAAAJam0wMAAAAA/qHkhXVjZxPpAQAAAAAAAACwAp0eAAAAADCbRbs4kR4AAAAAAAAAAGXS6QEAAAAAAYj0AAAAAAAAAAAolk4PAAAAAJiHNA4AAAAAAAAAgDbp9AAAAACA0lmmBwAAAAAAAABAybq+73PPAAAAs+m6bvpFfEgGABo3NorbWy6NE+kBAHntdrvcIwAAAAAQyXa7zT0CAJCBfXoAAAAAwFQiPQAAAAAAAAAAWqbTAwAAAAAmEekBAAAAAAAAANA4nR4AAAAA8A/n125Xd88iPQAAAAAAAAAAuMw9AAAAAAAQzApFnEgPAAAAAAAAAIBAdHoAAAAAwLnWyeFGRXoKPQAAAAAAAAAAsrvIPQAAAAAAUJxj8dvYNXdj/f72QaQHAAAAAAAAAEA4Oj0AAAAAYITlUr2xVxbpAQAAAAAAAABQCJ0eAAAAAHDAQAW3RKo3do2eSA8AAAAAAAAAgHLo9AAAAACA0WZM9X5/+zA20pvrSwMAAAAAAAAAwCx0egAAAADAYcNF3PRUb2yhtxHpAQAAAAAAAABQpK7v+9wzAADAbLqum34RH5IBAF47J6Ubm88lNH4KPQAgl91ul3sEAAAAACLZbre5RwAAMtDpAQBQFZ0eAMASzs/qBmq65P17Cj0AIC+dHgAAAACj6PQAoE06PQAAqqLTAwBYSHJlN4VCDwAogU4PAAAAgFF0egDQpsvcAwAAAAAAAeyTudVqPYUeAAAAAAAAAACBXOQeAAAAAAAIY4V87uruWaQHAAAAAAAAAEAs9ukBAAAAACMstFhPmwcAAAAAAAAAQFw6PQAAAABgtJesbmKwJ88DAAAAAAAAAKACOj0AAAAAIN2b0G4421PlAQAAAAAAAABQJZ0eAAAAADAbJR4AAAAAAAAAAA26yD0AAAAAAAAAAAAAAAAAAASm0wMAAAAAAAAAAAAAAACAdDo9AAAAAAAAAAAAAAAAAEin0wMAAAAAAAAAAAAAAACAdDo9AAAAAAAAAAAAAAAAAEin0wMAAAAAAAAAAAAAAACAdDo9AAAAAAAAAAAAAAAAAEin0wMAAAAAAAAAAAAAAACAdDo9AAAAAAAAAAAAAAAAAEin0wMAAAAAAAAAAAAAAACAdDo9AAAAAAAAAAAAAAAAAEin0wMAAAAAAAAAAAAAAACAdDo9AAAAAAAAAAAAAAAAAEin0wMAAAAAAAAAAAAAAACAdDo9AAAAAAAAAAAAAAAAAEin0wMAAAAAAAAAAAAAAACAdDo9AAAAAAAAAAAAAAAAAEin0wMAAAAAAAAAAAAAAACAdDo9AAAAAAAAAAAAAAAAAEin0wMAAAAAAAAAAAAAAACAdDo9AAAAAAAAAAAAAAAAAEin0wMAAAAAAAAAAAAAAACAdDo9AAAAAAAAAAAAAAAAAEin0wMAAAAAAAAAAAAAAACAdDo9AAAAAAAAAAAAAAAAAEin0wMAAAAAAAAAAAAAAACAdDo9AAAAAAAAAAAAAAAAAEin0wMAAAAAAAAAAAAAAACAdDo9AAAAAAAAAAAAAAAAAEin0wMAAAAAAAAAAAAAAACAdDo9AAAAAAAAAAAAAAAAAEin0wMAAAAAAAAAAAAAAACAdDo9AAAAAAAAAAAAAAAAAEin0wMAAAAAAAAAAAAAAACAdJe5BwD+9vT0NP0iNzc30y8CAAAA/pYKALPwIxUAZvHz58/pF7m+vp5+EQAIzY9UAJjFOT9Sf/36NfwH/IdfAKiSfXoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpur7vc88AAACz6bpu+kV8SAYAAADgxW63yz0CAAAAAJFst9vcIwAAGdinBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAAAAAAAAkE6nBwAAAAAAAAAAAAAAAADpdHoAAAAAAADBfPxy//HLfe4pmuYRAAAAAAAAAK91fd/nngEAAGbTdd30i/iQDAAAQLHetGE/vt4f/nMsyVNozW63yz0CAAAAAJFst9vcIwAAGVzmHgAAAAAAAIDTbG8r1v7RqPUAAAAAAACgZRe5BwAAAAAAAOAEkV75PCMAAAAAAABoWdf3fe4ZAABgNl3XTb+ID8kAAACUY6D+ssAtr2OPxnOpz263yz0CAAAAAJFst9vcIwAAGdinBwAAAAAAUCiRXsmOPQKL9QAAAAAAAKBBOj0AAAAAAIASifTKJ9UDAAAAAAAA9rq+73PPAAAAs+m6bvpFfEgGAAAgu2Ohl0KvQB5W9Xa7Xe4RAAAAAIhku93mHgEAyMA+PQAAAAAAgLLovmKxVQ8AAAAAAADQ6QEAAAAAABREpBeRVA8AAAAAAAAap9MDAAAAAAAohUgvLqkeAAAAAAAAtEynBwAAAAAAUASRXnRSPQAAAAAAAGiWTg8AAAAAACA/kV4dpHoAAAAAAADQpq7v+9wzAADAbLqum34RH5IBAABY2UDEVU2nNxyqVXObe6rLyux2u9wjAAAAABDJdrvNPQIAkIFODwCAquj0AAAACKfKSG+W9XFV3n7cm2qZTg8AAACAUXR6ANAmnR4AAFXR6QEAABBLTUHXLG3eMTWdRrh7QacHAAAAwCg6PQBok04PAICq6PQAAAAIpI6Ua9E87706TibQXbDR6QEAAAAwkk4PANqk0wMAoCo6PQAAAKKoIOJaudB7rYIjinILbHR6AAAAAIyk0wOANun0AACoik4PAACAEIYLt/ILroRCb+Cmknu/8g9qI9Wrgk4PAAAAgFF0egDQpsvcAwAAAAAAAPAfhbdb5zd159/I6z85qtnb/+HCTwwAAAAAAABogX16AABUxT49AAAAyhd3wdo5Ed0stzB2w17ccyt8cvbs0wMAAABgFPv0AKBNOj0AAKqi0wMAAKBwcZOt4XZuieFrqvXiPnc2Oj0AAAAARtLpAUCbLnIPAAAAAAAA0Iqx4Vk5hjOzhUqzsZcNerxBxwYAAAAAAABe0+kBAAAAAADkV/JStYy74KpJ9Up+vgAAAAAAAMB0Xd/3uWcAAIDZdF03/SI+JAMAALCEjLXbFMfGXnPmsfVdsecZ9DXAbrfLPQIAAAAAkWy329wjAAAZ2KcHAAAAAACwuGL3vA0rIdJL+HIRTzvizAAAAAAAAMALnR4AAAAAAEBO4RapZRk43CkdVMddAAAAAAAAAO/p9AAAAAAAAJYVdFXawbGjlGYRzzzizAAAAAAAAMCeTg8AAAAAAGBBw/FVlOztxccv97lysrFnVWb2NnwXZc4MAAAAAAAAnKTTAwAAAAAA4K3hYCxjrQcAAAAAAABQoK7v+9wzAADAbLqum34RH5IBAACYS9xleudneGveRUIcWOYhx31htOCcl9n3z5+WHwQAAACAqLbbbe4RAIAMLnMPAAAAAAAAAGf58dUeP2Yz5bV0+/B47B9J+AAAAAAAANpknx4AAFWxTw8AAIByxN2ZNrZfKnmlXrHnHPflEVSuwlO2BwAAANAg+/QAoE326QEAAAAAAAAVKmH74uvNe5o9AAAAAACAitmnBwBAVezTAwAAoBCht6Ul1E2r3VHJs40V+kVSshLyvJM0ewAAAAAVs08PANpknx4AAAAAAAAQXog878XLnj3BHgAAAAAAQB0ucg8AAAAAAABQG3vSOMfwKyFWdZbRxy/3+1+5B0l0+/D40uwBAAAAAAAQl316AAAAAAAAQDxx27z3rNcDAAAAAACIzj49AAAAAACAOdXUDpGX19IxoRfoDbNeDwAAAAAAICidHgAAAAAAwHp+fL3PPcJpY4cMcVNlcnRjVVzovabWAwAAAAAACEenBwAAAAAAMJsWCqJYoodwXlEvGin0XlPrAQAAAAAABKLTAwAAAAAA4K3z87boIVx2DvCkBgu919R6AAAAAAAAIVzmHgAAAAAAAKAV9RVZ9d0RRWk5z3vj9uHx++dPuacAAAAAAADgKPv0AAAAAAAA5lFZU/Tj6/1whifSW0dlr6vzNXvjx1isBwAAAAAAULKu7/vcMwCbzWbz9PQ0/SI3NzfTLwIAoXVdN/0iPiQDgL+lAkCa4azorz//SLhmIT9S39xarkJvbLgVqCQcvrVANzILhd5JduvRmp8/f06/yPX19fSLAEBofqQCwCzO+ZH6r3/9a/gPFPIffgGAeV3mHgAAAAAAAKAGdZdFrXVipfn45cRuw5rU/a00l9uHR6keAAAAAABAUXR6AAAAAAAAQH4KvVFuHx43FusBAAAAAAAU4yL3AAAAAAAAAHDa2IirnQV0dRDppdnXegAAAAAAAGSn0wMAAAAAAJjqZGL0159/rDIIUZ2sCivO2D5+ua/47lYg1QMAAAAAACiBTg8AAAAAAIDSWaZXK4XeLG4fHtV6AAAAAAAAeen0AAAAAAAAgAxEevOS6gEAAAAAAGSk0wMAAAAAAJhEa7S0RpbpnRy7sldaZbdTCKkeAAAAAABALjo9AAAAAACAZf315x+5R2hI0EivNSK95Uj1AAAAAAAAsrjMPQAAAAAAAAAcJeiqjAe6gtuHx++fP+WeAgAAAAAAoC326QEAAAAAAFCosU2XZXqFE+mtxlY9AAAAAACAlen0AAAAAAAA0umOliPSey/06y308BFJ9QAAAAAAANak0wMAAAAAAFjQX3/+kXuEJtQR6dVxFweJ9LKQ6gEAAAAAAKzmMvcAAAAAAAAA8A826VVGpJfR7cPj98+fck8BAAAAAABQP50eAAAAAAAABRnVdCn0yifSy06qBwAAAAAAsIKL3AMAAAAAAABEJUCanUjvpFivuljTVuz24TH3CAAAAAAAAJWzTw8AAAAAAID8xgZdbUZ6kMxWPQAAAAAAgEXp9AAAAAAAAJby159/5B6hdAn71uou9H58va9mB101N1INqR4AAAAAAMBydHoAAAAAAACsZ0q7VXehVxmRXpmkegAAAAAAAAvR6QEAAAAAADCP5dIshV4sIr2SSfUAAAAAAACWoNMDAAAAAABIoUR6Y4kDkecd9PHLfckn41sDAAAAAACABl3kHgAAAAAAAAAO+/jlXvQFs7t9eMw9AgAAAAAAQG3s0wMAAAAAAKBoL6leyUvk2NNVRnH78Pj986fcUwAAAAAAANSj6/s+9wwAADCbruumX8SHZAAAAM5xTo/UWle2TqNV/anGfWmJ9MKR6gEAAAAsYbvd5h4BAMjAPj0AAAAAAADmkRyPjeq7rNcrk0gPAAAAAACAlun0AAAAAAAAFqEiO9/LWSUEe84Zkt0+PFqpBwAAAAAAMIuL3AMAAAAAAADA3358vd//Ov9fqW+NW8TysL6n0I7bh8fcIwAAAAAAANRApwcAAAAAAEBxxqZ6OrGMHD4AAAAAAADo9AAAAAAAAEYTJq3AYr0BTd0sS7NSDwAAAAAAYDqdHgAAAAAAAOWyWK9wDhwAAAAAAAA2Oj0AAAAAAAAKNyrV2yjHYDwr9QAAAAAAACbS6QEAAAAAAFA6qV6ZnHNNpHoAAAAAAABT6PQAAAAAAAAIQKoHAAAAAAAAFEunBwAAAAAAQAxSvaI43vpYqQcAAAAAAJBMpwcAAAAAAACMI9IDAAAAAACA13R6AAAAAAAAhGGlHizKSj0AAAAAAIA0Oj0AAAAAAABqJtWbnSMFAAAAAACAN3R6AAAAAAAARDJ2pR4wipV6AAAAAAAACXR6AAAAAAAAVM7+NwAAAAAAAGBROj0AAAAAAADgXKLHFlipBwAAAAAAMJZODwAAAAAAgGB+fL0f+6+oywAAAAAAAIDl6PQAAAAAAACAs8gdAQAAAAAA4CCdHgAAAAAAAE3QmMH5bh8ec48AAAAAAAAQiU4PAAAAAAAAAAAAAAAAANLp9AAAAAAAAIjnx9f73CM0x0LC1lipBwAAAAAAcD6dHgAAAAAAAAAAAAAAAACk0+kBAAAAAADQChvhkjk6AAAAAAAAGHCZewAAAAAAAACK8z7K+vH17e8A1bt9ePz++VPuKQAAAAAAAAKwTw8AAAAAAGC0iqO1j1/uD25OO/b7ZFHxKxAAAAAAAAAi0ukBAAAAAADwt5MlnlQPAAAAAAAA4D2dHgAAAAAAAJvN2Q2eVK9BHjoAAAAAAAAM0+kBAAAAAAAsIlbaNGraWLcWjuOlKLcPj7lHAAAAAAAACECnBwAAAAAAAAAAAAAAAADpdHoAAAAAAACtS1jgZudbOzxrAAAAAAAAOEmnBwAAAAAAAAAAAAAAAADpdHoAAAAAAAC04sfX+9wjQDy3D4+5RwAAAAAAACjd/7N3/8htJFcAhzkqRjqDY4g3UPEEduIL2OU77A1E3sBHUJXLvsAmuxcQi6EyirFSpkrhADKNJYDBoKdnuvv194USNXzzBwBZpV89nR4AAAAAAEAKxRelePYAAAAAAACgNjo9AAAAAAAA2vPx013pEQAAAAAAAAB+ui49AAAAAAAAsKqjdZP1XFCJ2vrD2uYBAAAAAACAOun0AAAAAAAgvrOlzf4XaPYy+vjpzvWsh3sBAAAAAAAALESnBwAAAAAAkSXswtr9k7aKJp3h+lxn6Mo//v2ff/39b6WnAAAAAAAAqJdODwAAAAAAYkoo9A7/ef0t1uFpvv7JCsM/3t/NvM6kSbjs9T/ME4U5EQAAAAAAAIjkXekBAAAAAACAzD5+yhaP1RyhnT3NmoevzaXpl1QMAAAAAAAAYJ9ODwAAAAAAQskep2Ws/jKaOFKFkwfQYqTX4swAAAAAAABAQ65LDwAAAAAAAGRzNks7rJWUbFykhuAt8EMb+NQAAAAAAAAgNvv0AAAAAAAgiPHC5/H+7mhhderPLzr4yqoa5qxWph1/DHbPSQ2RXoJGxz5q5XNp5ekFAAAAAACA4nR6AAAAAAAQwUhOkyuvqqTYqWSMV5EasFOqOsdLH4CqhgcAAAAAAACi0ukBAAAAAEDzxiO9KUeY+GW1NXLkdeoxqOe+1zMJAAAAAAAAwD6dHgAAAAAAtO1UuZRrjR7zBajLGj2Ftl4CjV5k+vGPf/+n9AgAAAAAAAD10ukBAAAAAEDDRiK9lb/jOuoMmdqKwcaNnEvxi3/pAJHuy068MwIAAAAAAIAwdHoAAAAAABCNmIc56kz1RHoAAAAAAABAzXR6AAAAAADQquL7zYhqPNVb/8ET6QEAAAAAAACV0+kBAAAAAECTTpVLKxRKDfWBq/VaZ79RQxdtZ/yM1qz1LvpGj/d3jUZ6Z0+z0fMCAAAAAACATuj0AAAAAACgPQUjvYKaS91aNyU+XPSmXHr82M8/AAAAAAAAULPr0gMAAAAAAAB5iJTIbvdQjcdyr3+b8Qm8NP/z8AMA1O/79++lRwAAgJVsNpvSIwAABej0AAAAAACgMdbK1enxftnlcgVNPLUswV7CNewh0uvhHGmC/2EGAAAAAABwik4PAAAAAAAimJnxhAzMakubPn66q22k6aYs1nt1+GVnTzztCWz3er4R8gUIAAAAAAAAXdHpQS0eHh7mH+T29nb+QQAAAMBvqQA167bniXHiCR+yVX2kXlTr7ct++8IUegBM4bdUAMji6elp/kFubm7mHwQAmjblI/Xl5WX8C/yWCgAh6fQAAAAAAKB5mqVKPN7fxegJx70+b0VONt7TfvYyxjtlAAAAAAAAiEenBwAAAAAAzTja82h4GvLLb7//8y9/Lj1FNmsGe55zAAAAAAAAoGY6PQAAAAAA6F3IFXClsq5OVuq9sX+1M56+Nu/KRQAAAAAAAIBG6PQAAAAAAKAN9dRf64dD9Zz7fMFW6h06+nhMuYN9BmmRnm3C6/NFCgAAAAAAMJFODwAAAAAAGqaaqFCfK/XGeVDTuG4AAAAAAADQinelBwAAAAAAAM5brvtSlAEAAAAAAADATDo9AAAAAABoVZFdW00s+Co+5PgAv/z2+1qDULXxSrb4YwwAAAAAAABMp9MDAAAAAACqZuMflKIVBAAAAAAAgIl0egAAAAAAULvlQjUJ3HKs1GOcZXoAAAAAAAAQiU4PAAAAAACaVCTj0Q4BAAAAAAAAwCGdHgAAAAAAdCrqMr16YsJ//uXPI39rpV7PLNMDAAAAAACAYHR6AAAAAABQtag13USdnz4AAAAAAAAATdDpAQAAAABAe4qs27LjK4GVehyyTI8WeTIBAAAAAADG6fQAAAAAAKBH9tQBU6izAAAAAAAAYAqdHgAAAAAAcF4rrU6Fc1qpxz7L9AAAAAAAACAknR4AAAAAAFTtsNvpp+QJs/RvPNWDnX5e2gAAXTj+/wAAIABJREFUAAAAABDPdekBAAAAAACAM7LXO2H6txh++e13IV8nvPQAAAAAAAAgKvv0AAAAAACAM6z5mk+JxzivMmrm+QQAAAAAADhLpwcAAAAAAH0JvNGr8pJkJNX75bff15yEIkZeepU/upWPBwAAAAAAADXQ6QEAAAAAADUK3BMeJdWLrbfnGQAAAAAAAHqj0wMAAAAAAMZYpZXRyEo9uuUlBgAAAAAAAAHo9AAAAAAAoCOWehU3kupZqRfVyOtOpEf9PKUAAAAAAABTDNvttvQMAACQzTAM8w/ih2QAACCwhE6vVKFx6ahtlSTCrX6Eudcq32619aACULPn5+fSIwAAwEo2m03pEQCAAuzTAwAAAAAATmol0gMAAAAAAACAgnR6AAAAAADQC/FbPUYCSLcpkjDL9OiWBxUAAAAAAGAinR4AAAAAAEABUr3wgkV6Lc4MAAAAAAAAq9HpAQAAAAAAxzWU5TQ06j6pXmDBIj0AAAAAAABgnE4PAAAAAAC60FD31dCo80n1QhLpEYPHFQAAAAAAYDqdHgAAAAAAQElKmH60fq9bnx8AAAAAAACWo9MDAAAAAACOEOSs6dTVtlKvRafumtcUAAAAAAAABKbTAwAAAACA+GLnXrHzp9j3Lp7wkV6YE+Es9xoAAAAAAOAiOj0AAAAAAKAi3WZpI0lMt9ekOeEjPQAAAAAAAOAUnR4AAAAAAPCWrKiIx/u7U1deqlc/kR6ReG4BAAAAAAAupdMDAAAAAIDgJF5tkeq1qKtIL+RJAQAAAAAAwEw6PQAAAAAAoGEhkyGpXlu6ivTogUcXAAAAAAAggU4PAAAAAAD4A4VGDaR6regz0ot9dgAAAAAAAJBApwcAAAAAANRChLZPqle/PiM9YvP0AgAAAAAApNHpAQAAAABAZJqupo2keu5scZ1Hep2cJgAAAAAAAEyk0wMAAAAAAP6vrfamrWnTPN7fWaxXoaMXf+RmQRM8wAAAAAAAAMl0egAAAAAAALUTz1TlVKS39hyldXjKAAAAAAAAcMp16QEAAAAAAACurmyHO2fXRLlKFZKrEYMnGQAAAAAAYA779AAAAAAAICxNVzz7IY2ophR34VXnpw8AAAAAAACv7NMDAAAAAACa1G0g1O2JV8VdePV4fycJDsAjDQAAAAAAMJN9egAAAAAAwE86DQAAAAAAAABIoNMDAAAAAADKs48L2iXxbZ07CAAAAAAAMJ9ODwAAAAAAAKBTIj0AAAAAAIAsdHoAAAAAAEB7hCVQFS9JAAAAAAAAOqfTAwAAAACAmD5+uis9AtARqV6L3DUAAAAAAIBcdHoAAAAAAMDVVdFaQ1IIsD6RHgAAAAAAQEY6PQAAAAAAACAD3VdD3CwAAAAAAIC8dHoAAAAAAEBj5CVQLS9PAAAAAAAA+qTTAwAAAAAAALKR6tXPPQIAAAAAAMhOpwcAAAAAAJT08dNd6RGAzGRgNXN3AAAAAAAAlqDTAwAAAAAAAOiCSA8AAAAAAGAhOj0AAAAAAKAlIhNogpdqhdwUAAAAAACA5ej0AAAAAACAYj5+uis9ArAUVRgAAAAAAAD90OkBAAAAAEBMChmgOG9E9XAvAAAAAAAAFqXTAwAAAAAAyrBMD3ogD6uBuwAAAAAAALA0nR4AAAAAAFBAWqQnNYEWeeWW5foDAAAAAACsQKcHAAAAAAAALEsqVoorDwAAAAAAsA6dHgAAAAAAsLa0ZXpA0wRj63PNAQAAAAAAVqPTAwAAAACAsOosNER60K0635SicrUBAAAAAADWpNMDAAAAAACurtbK5+Z8F80JBOCFvA7XGQAAAAAAYGU6PQAAAAAAYCU26QFXErLlucIAAAAAAADr0+kBAAAAAEBk9dQaIj3gVT1vTcE83t+5tgAAAAAAAEXo9AAAAAAAgJ+WS+lEesAbirLsXE8AAAAAAICCdHoAAAAAABBc8XIjS6RX/CyAJXhp5+JKAgAAAAAAlKXTAwAAAAAA/i/74jub9IBxArP5XEMAAAAAAIDihu12W3oGAADIZhiG+QfxQzIAABDSRb1cluQjb6GnQoHYNL1pvDcC0JDn5+fSIwAAwEo2m03pEQCAAuzTAwAAAACALqzcckhugIs83t9Jzi7ligEAAAAAANTDPj0AAEKxTw8AAGDcClv1zn6Lx/u7Sys+LQr0Q+U7hXdFAFpknx4AAP2wTw8A+qTTAwAgFJ0eAADAWQulehMPuzugTg8Yp9Yb4S0RgEbp9AAA6IdODwD6pNMDACAUnR4AAMAUCQHMqSxk+qFej5DxuwOBSfUOeTMEoGk6PQAA+qHTA4A+6fQAAAhFpwcAADDRygHMflui0wOmU+u98k4IQOt0egAA9EOnBwB90ukBABCKTg8AAOAiKwQwh2HJpd9UmgJ0Xut5GwQgBp0eAAD90OkBQJ90egAAhKLTAwAAuNRy9cvRsMQyPSBZh7WeN0AAItHpAQDQD50eAPTpuvQAwE8PDw/zD3J7ezv/IAAAAOC3VICuvEYgGQMYYcmOj1TIa/fe0kmt540U9vlIBYAsnp6e5h/k5uZm/kEAoGlTPlJfXl7Gv8BvqQAQkk4PAAAAAAC4usoR7KlKgBWEr/W8lwIAAAAAALRIpwcAAAAAAPzBm0RkPIZZuifRqwBHxav1vN0BAAAAAAA0TacHAAAAAACMyZiORCpqgBrMXwRaA4UeAAAAAABAADo9AAAAAAAAoG0tBnvyPAAAAAAAgEh0egAAAAAAAEAQ9Qd78jwAAAAAAICQdHoAAAAAAMAaEpoZNQuQrKpgz7sZAAAAAABAeDo9AAAAAAAAIKw3jdxq2Z42DwAAAAAAoCs6PQAAAAAAoEYSF2AJh+8t88s971cAAAAAAADo9AAAAAAAgMWttsAK4FIqOwAAAAAAAOZ7V3oAAAAAAAAAAAAAAAAAAGiYTg8AAAAAAFhWwjI9660AAAAAAAAAaMh16QEAAAAAAICcDqM4zRsAAAAAAAAALEqnBwAAAAAAQZxaW7f781K1nmV6AAAAAAAAAISn0wMAAAAAgOZNaeHK1nrT1T8hAAAAAAAAALzxrvQAAAAAAADALBctrEvYbjfHyt8OAAAAAAAAAIrQ6QEAAAAAQMOChXCW6QEAAAAAAADQIp0eAAAAAAC0Ki3SWy3tC9YQAgAAAAAAAMApOj0AAAAAAKAKlukBAAAAAAAA0CidHgAAAAAANKnybXWXjifSAwAAAAAAAKBdOj0AAAAAACCzyhtCAAAAAAAAAMhLpwcAAAAAABRmmR4AAAAAAAAATdPpAQAAAABAe2peWHfpbCI9AAAAAAAAAFo3bLfb0jMAAEA2wzDMP4gfkgEAgPrN6fQW7eJEegAAwFHPz8+lRwAAgJVsNpvSIwAABdinBwAAAAAA5CHSAwAAAAAAAKBPOj0AAAAAAOiINA4AAAAAAAAAstPpAQAAAAAAGVimBwAAAAAAAEC3dHoAAAAAANCL5dI4kR4AAAAAAAAAPdPpAQAAAABAF0R6AAAAAAAAALAQnR4AAAAAAMQn0gMAAAAAAACA5Qzb7bb0DAAAkM0wDPMP4odkAACgCRMDuUW7OJEeAAAw0fPzc+kRAABgJZvNpvQIAEAB16UHAAAAAAAA8luhiBPpAQAAAAAAAMCOTg8AAAAAAEJZJ4e7KNJT6AEAAAAAAAAQ27DdbkvPAAAA2QzDMP8gfkgGAABacSqWW7SLs0YPAABI8Pz8XHoEAABYyWazKT0CAFDAu9IDAAAAAAAAmV2a0i13ZJEeAAAAAAAAAD2wTw8AgFDs0wMAAHozEs5lb+QuivQUegAAwD779AAA6Id9egDQJ/v0AAAAAAAgpoxb9T5+uhPpAQAAAAAAAMAp9ukBABCKfXoAAECHxgu6mclcQuwn0gMAAA7ZpwcAQD/s0wOAPun0AAAIRacHAAD0aUpNd2k+p9ADAAAy0ukBANAPnR4A9EmnBwBAKDo9AACgW9OzupGaLqHNO3tMAACAK50eAAA90ekBQJ90egAAhKLTAwAAepZc2c2h0AMAAKbQ6QEA0A+dHgD0SacHAEAoOj0AAIDVaj2FHgAAMJ1ODwCAfuj0AKBPOj0AAELR6QEAAFwtn+op9AAAgEvp9AAA6IdODwD6pNMDACAUnR4AAMCr7LWePA8AAEim0wMAoB86PQDok04PAIBQdHoAAACHZgZ78jwAAGA+nR4AAP3Q6QFAn3R6AACEotMDAAA4azzbU+UBAABL0OkBANAPnR4A9EmnBwBAKDo9AAAAAACACun0AADoh04PAPr0rvQAAAAAAAAAAAAAAAAAANAwnR4AAAAAAAAAAAAAAAAApNPpAQAAAAAAAAAAAAAAAEA6nR4AAAAAAAAAAAAAAAAApNPpAQAAAAAAAAAAAAAAAEA6nR4AAAAAAAAAAAAAAAAApNPpAQAAAAAAAAAAAAAAAEA6nR4AAAAAAAAAAAAAAAAApNPpAQAAAAAAAAAAAAAAAEA6nR4AAAAAAAAAAAAAAAAApNPpAQAAAAAAAAAAAAAAAEA6nR4AAAAAAAAAAAAAAAAApNPpAQAAAAAAAAAAAAAAAEA6nR4AAAAAAAAAAAAAAAAApNPpAQAAAAAAAAAAAAAAAEA6nR4AAAAAAAAAAAAAAAAApNPpAQAAAAAAAAAAAAAAAEA6nR4AAAAAAAAAAAAAAAAApNPpAQAAAAAAAAAAAAAAAEA6nR4AAAAAAAAAAAAAAAAApNPpAQAAAAAAAAAAAAAAAEA6nR4AAAAAAAAAAAAAAAAApNPpAQAAAAAAAAAAAAAAAEA6nR4AAAAAAAAAAAAAAAAApNPpAQAAAAAAAAAAAAAAAEA6nR4AAAAAAAAAAAAAAAAApNPpAQAAAAAAAAAAAAAAAEA6nR4AAAAAAAAAAAAAAAAApNPpAQAAAAAAAAAAAAAAAEA6nR4AAAAAAAAAAAAAAAAApLsuPQDw08PDw/yD3N7ezj8IAAAA+C0VALLwkQoAWfhIBYAsnp6e5h/k5uZm/kEAoGlTPlJfXl7Gv8BvqQAQkn16AAAAAAAAAAAAAAAAAJBOpwcAAAAAAAAAAAAAAAAA6XR6AAAAAAAAAAAAAAAAAJBOpwcAAAAAAAAAAAAAAAAA6XR6AAAAAAAAAAAAAAAAAJBOpwcAAAAAAAAAAAAAAAAA6XR6AAAAAAAAAAAAAAAAAJBOpwcAAAAAAAAAAAAAAAAA6XR6AAAAAAAAAAAAAAAAAJBOpwcAAAAAAAAAAAAAAAAA6XR6AAAAAAAAAAAAAAAAAJBOpwcAAAAAAAAAAAAAAAAA6XR6AAAAAAAAAAAAAAAAAJBOpwcAAAAAAAAAAAAAAAAA6XR6AAAAAAAAAAAAAAAAAJBOpwcAAAAAAAAAAAAAAAAA6XR6AAAAAAAAAAAAAAAAAJBOpwcAAAAAAAAAAAAAAAAA6XR6AAAAAAAAAAAAAAAAAJBOpwcAAAAAAAAAAAAAAAAA6XR6AAAAAAAAAAAAAAAAAJBOpwcAAAAAAAAAAAAAAAAA6Ybtdlt6BgAAyGYYhvkH8UMyAAAAAABAXs/Pz6VHAACAlWw2m9IjAAAF2KcHAAAAAAAAAAAAAAAAAOl0egAAAAAAAAAAAAAAAACQTqcHAAAAAAAAAAAAAAAAAOl0egAAAAAAAAAAAAAAAACQTqcHAAAAAAAAAAAAAAAAAOl0egAAAAAAAAAAAAAAAACQTqcHAAAAAAAAAAAAAAAAAOl0egAAAAAAAAAAAAAAAACQTqcHAAAAAAAAAAAAAAAAAOl0egAAAAAAAAAAAAAAAACQTqcHAAAAAAAAAAAAAAAAAOl0egAAAAAAAAAAAAAAAACQTqcHAAAAAAAAAAAAAAAAAOl0egAAAAAAAABAj4YPP4YPP0pP0TW3AAAAAAAIQ6cHAAAAAAAAAPRlPw/TiZWyfwvcBQAAAACgddelBwAAAAAAAAAAWIkerFq7W7P99r70IAAAAAAAKezTAwAAAAAAAAC6INKrn3sEAAAAADTKPj0AAAAAAAAAILiR+ssCt1J2V/7w1lisBwAAAAC0yD49AAAAAAAAACAykV7NTt0Ci/UAAAAAgLbo9AAAAAAAAACAsER69ZPqAQAAAAAB6PQAAAAAAAAAgJhOhV7bb+9FelWR6gEAAAAArdPpAQAAAAAAAAABjUR6K0/CFFI9AAAAAKBpOj0AAAAAAAAAIBqRXoukegAAAABAu3R6AAAAAAAAAEAoIr12SfUAAAAAgEZdlx4AAAAAAAAAACAbkd5Zby5RbVdm++390Zs4fPhR26gAAAAAAK/s0wMAAAAAAAAAghDpnXV4iSpcVWerHgAAAADQHJ0eAAAAAAAAABCBiOusU5eowksn1QMAAAAA2qLTAwAAAAAAAACaN5JvWaa3E6ZwC3MiAAAAAEAkOj0AAAAAAAAAoG0ivbNabNtG7l2LpwMAAAAAxKbTAwAAAAAAAAAaJtILTKoHAAAAALRCpwcAAAAAAAAAtEqkN0XTSZtUDwAAAABogk4PAAAAAAAAAGiSTGuKAFdJqgcAAAAA1E+nBwAAAAAAAABEY5nejowNAAAAAGAdOj0AAAAAAAAAoD0jBZpILx4r9QAAAACAyun0AAAAAAAAAIDGiPSmCBawSfUAAAAAgJrp9AAAAAAAAACAloiypujtKvV2vgAAAABAbXR6AAAAAAAAAEAQluntRI3W3F8AAAAAoFo6PQAAAAAAAACgGSMFmoirByN3OWqdCAAAAAA0QacHAAAAAAAAALRBiDVFz1ep53MHAAAAAMrS6QEAAAAAAAAAzbNMb6eHUM29BgAAAAAqpNMDAAAAAAAAABrQQ4E2k0t05SIAAAAAAIXo9AAAAAAAAACA2o3HVxas9Wb8jkv1AAAAAID16fQAAAAAAAAAAJonTgMAAAAAKEinBwAAAAAAAABUzTK9s45eothXxko9AAAAAKAq16UHAAAAAAAAAAAgXYeRHnU6l0f+afyff/v1e8ZhAAAAAGBlOj0AAAAAAAAAoF6W6XHK9tv7kcdj+PDD47GcJTYWfvjrkZBPvAcAAABAK3R6AAAAAAAAAACtskyP1SzR5p21H+9p9gAAAACo2bDdbkvPAAAA2QzDMP8gfkgGAAAAAKiEZXrjzkZ608Oqdi+mh2RRRdq8KTR7AADUbLPZlB4BACjAPj0AAAAAAAAAgPbYpMdyqs3zXr3u2RPsAQAAAFAJnR4AAAAAAAAAUCN70phi++39yKMyfPjhUZmu/jzvkGAPAAAAgEro9AAAAAAAAAAAGmOZHhm1mOcd2gV7aj0AAAAAStHpAQAAAAAAAADViREOLUSkdxEr9UbEe6FZrwcAAABAKe9KDwAAAAAAAAAAcJmesyuR3qHOTz/N8OFHvEhv34e//um12QMAAACAFdinB7V4eHiYf5Db29v5BwEAAAC/pQJAFj5SASDZ2Xzo0s9ZH6mds1JvX+w8741dqme3Huw8PT3NP8jNzc38gwBA06Z8pL68vIx/gd9SASAk+/QAAAAAAAAAANpgmd4pLsIU4XfonWK3HgAAAAAr0OkBAAAAAAAAAC358vlr6RHKEOmRrNtCb59UDwAAAIBF6fQAAAAAAAAAgIqoiY4S6c3U83PV87m/YbEeAAAAAMvR6QEAAAAAAAAAzeh2mR5nqRYPWaN3lFoPAAAAgCXo9AAAFjH8UelxAAAAAACgDZqioyzTy6Krp0uhd5ZUDwAAAIC8dHoAAPkdhnlSPQAAAAAAII1Ij0sp9CayWA8AAACAjHR6AACZnUrypHoAAAAAAMClRHpcxBq9BFI9AAAAALLQ6QEA5CTGAwAAAACAZGf7oi+fv64zCY06WzDGbthin92iLNYDAAAAYD6dHgBANiI9AAAAAAAgI8v0mE6kN59UDwAAAIA5dHoAABkMwyDSAwAAAAAAMhLpMZ1ILxepHgAAAADJdHoAAHMp9AAAAAAAYD6h0VkivSnOXqVgT9rw4UewMypOqgcAAABAmuvSAwAANEyhBwAAAAAAq/ny+WvpEdajvGIKz8lCdqnet1+/lx4EAAAAgJbYpwcAkGIYBpEeAAAAAACwhKPxlWV6vCHSW5rFegAAAABcRKcHAHAZhR4AAAAAALAckR5TiPTWIdUDAAAAYDqdHgDAJMP/lB4EAAAAAAACEh2xptaft9bnb4tUDwAAAICJdHoAAGPkeQAAAAAAUIMvn7+WHmENlullEfuKifTWJ9UDAAAAYAqdHgDAW8Oe0rMAAAAAAAC9EOlxlkivFKkeAAAAAGfp9ACArg3HlB4KAAAAAADojkiPs0R6ZUn1AAAAABin0wMAgjta4knyAAAAAACgHuoj1tfcU9fcwCFJ9QAAAAAYodMDAAAAAAAAACjJMj3GifTqIdUDAAAA4BSdHgDAZbb/U3oQAAAAAADoxZfPX0uPsCCR3hIiXUCRHgAAAAA0QacHADCJPA8AAAAAAMhOpMc4kV6FrNQDAAAA4KjB/zUHAGIbhmHOPx/5YSnhyH70WsHMO77jTgEAAAAArOlsiRS4W1u605teecW7yDGeK51etb79+r30CAAA1Guz2ZQeAQAowD49AOC/7N07UhvpGoDhboqI3BmxROYY78F78Comm2iyWYX3cPZgxc6Q4skop6R9AlwMg6S+/H35b89TE/lA8/VFEpyqtz4+6t6JPQsAAAAAABSu5gzJMr240n/20p+wZrbqAQAAAPCBTg8AqFp3SeyhAAAAAACA8on06CfSS59UDwAAAID3bmMPAACwLt0dAAAAAACQGpEe/UR6AAAAAJAd+/QAAAAAAAAAACAVIr2MWKkHAAAAwBudHgAAAAAAAADAdizTg5JI9QAAAAB4pdMDAAAAAAAAANJVWMAm0qOfZXo5kuoBAAAA0Oj0AAAAAAAAAAC2IdLbUo4XVqQHAAAAAPnS6QEAAAAAAAAAAISzUg8AAAAAnR4AAAAAAAAAEEdV28Ms00tQUk9gUsMQQKoHAAAAUDmdHgAAAAAAAADAukR6AAAAAABl0+kBAAAAAAAAAKxIpMcgy/TKYKUeAAAAQM10egAAAAAAAAAAEI1IDwAAAAAKoNMDAAAAAAAAAFiLZXpQFSv1AAAAAKql0wMAAAAAAAAAWIVIj0GW6QEAAABAGXR6AAAAAAAAAADLE+lBnazUAwAAAKiTTg8AAAAAAAAAACKwTA8AAAAAiqHTAwAAAAAAAABYmGV6UDMr9QAAAAAqpNMDAAAAAAAAAFiSSI8xLNMDAAAAgJLo9AAAAAAAAAAAFiPSAxor9QAAAADqo9MDAAAAAAAAAIBNWaYHAAAAAIXR6QEAAAAAAAAALMMyPeCNlXoAAAAAVdHpAQAAAAAAAAAsQKTHSJbpAQAAAEB5dHoAAAAAAAAAAHOJ9IBzVuoBAAAA1EOnBwAAAAAAAAAAAAAAAADhdHoAAAAAAAAAALNYpsd4F58WAAAAACB3Oj0AAAAAAAAAgHAiPaDH/ut97BEAAAAA2MJt7AEAAAAAAAAAAEqT3c604IEViQAAAAAAjX16AAAAAAAAAACwjewCTgAAAABgJJ0eAAAAAAAAABCHVWzE5QlkG/uv97FHAAAAAGB1Oj0AAAAAAAAAAAAAAAAACKfTAwAAAAAAAACA1bX7l9gjAAAAAABr0ekBAAAAAAAAAOmSNhHGk0NS9l/vY48AAAAAwLpuYw8AAAAAAAAAAJCx7ngXe4TLJoVqyZ4FAAAAAEAW7NMDAAAAAAAAAAAAAAAAgHA6PQAAAAAAAAAAWNek9YYAAAAAQHZ0egAAAAAAAAAAAOvaf72PPQIAAAAAK9LpAQAAAAAAAADRdMe72CNQKc8eAAAAALAgnR4AAAAAAAAAAAAAAAAAhNPpAQAAAAAAAABQlHb/EnuE/0htHgAAAABgcbexBwAAAAAAAACA/Fysbrrj3faT1KDdv7i2AAAAAACkTKcHAAAAAAAAAKMMbsR6/wW6MgA+2H+9P/7vn9hTAAAAALAKnR4AAAAAAAAADBgs9K59S161XqzOsDveBVxhmCOv1yYAAAAAkD6dHgAAAAAAAABcNbMfy6XWOz/Nt39Jf3gAAAAAAIjuJvYAAAAAAAAAAJCidv+y1JK3lJfFDZ5mysMDAAAAAEAi7NODbBwOh/kHeXx8nH+QVTnN8ZxmIpzmeJWcZvoquZszHQ6H9M+xklvpNMdzmolwmuM5zUTUcJo1nGPjNKdwmolwmuM5zUTUcJo1nGPjNKdwmolwmuMtfpqLx2mvB/zx/eecg8Q6zXb/MnKr3oy7+Tn0G7eW5hO7uKxPc/zrN+vTpE5PT0/zD/Lw8DD/IKtymuMlfpo1nGPjNKdwmolwmuM5zURUcpoAQAF0egAAAAAAAADwH4ORz3m0Zunc2sa3gjBo42fJ+wMAAAAA1OAm9gAAAAAAAAAAkJD+oqY73l0sfK79+wdfviW0NS6pdmjmpkEAAAAAAIhLpwcAAAAAAAAAv/WkayNLvEGJpHpJRXoAAAAAAJA7nR4AAAAAAAAANM1QpDfmCCO/LJFULzvaQsbwnJC4/df72CMAAAAAsAqdHgAAAAAAAABcbXuWWqPHoB/ff8YegSp4RQMAAAAAa9DpAQAAAAAAAFC7nkhvpZ8Yd6WehWM1mHqXPRUAAAAAAHPo9AAAAAAAAADgAku3yFdYdCfVAwAAAAAIptMDAAAAAAAAoGrapHT8+P6z/wvcrB7t/uXtv/kHibvyMdjguetvAQAAAICV3MYeAPjtcDjEHgEAAABCXPuT9vHxceNJACBxYf8/sI9UgLVdq3o2iHm+fPs8mKUlIqm0qcKP1Fh14phUL5dnGICmaZ6enuYf5OHhYf5BACBrYz5Sf/361f8FWf+VCgBcY58eAAAAAAAAAJWKGOlFZCUdAAAAAAAsTqcHAAAAAAAAAP8qO9JLn/1srMerGwAAAABYz23sAQAAAAAAAAAgAmvlMvU6UjP/AAAgAElEQVTl22ctHxd5UZOL3W4X/L2/fv2KO8A2nOZ4k05z8Cc+Pz/PGwcAAACqZp8eAAAAAAAAAPw2c91WkZmQFWQAAAAAADDIPj0AAAAAAAAAqlNkUDdGFifeHe+ymDOutfvJw+Fw/o9fvn1e9YfOMfjMKE4BAAAAgFXp9AAAAAAAAACgaWQ8+fjy7fOP7z9jT7GddJ7Mqi47AAAAAMAkN7EHAAAAAAAAAIBNXdy7lU4KReN2sDRPFAAAAACwNp0eAAAAAAAAACzgYv6Xu2Trpi/fPscegYQU+eoDAAAAAPKi0wMAAAAAAACgIun0PD++/9z4J6Zz7mMkmwiSHc8SSfFAAgAAAJRKpwcAAAAAAABA7VQTAAAAAADAHDo9AAAAAAAAAGqx3kK5vFbV5aK/n/zy7fNmk5Cy/lefChcAAAAA2IZODwAAAAAAAICqRcl4fnz/uf0PnUrgBIvwUgIAAACAGuj0AAAAAAAAAKB8mW78s1KPfpbpAQAAAACJaLuuiz0D0DRNczgc5h/k8fFx/kEAGKlt26nf4levDQTcl3PuFAD4KxUAFuEjFSA113qe+SVPQAK3fT6UxZAX9U8+cjOhj9RS5dLpZRrKsoZ0HksqNPhX6vPz8+BBHh4eFhoHAHL19PQ0+DWfPn3q/wJ/pQJAkezTAwAAAAAAAKBeUXoJkcYk/SWelXo1yyXSAwAAAABqoNMDAAAAAAAAgHClrsnSOAEAAAAAwHg6PQAAAAAAAADKV2pNN1Lup2+lHucs0yNHnkwAAACAgun0AAAAAAAAAKhUlF5CpAEAAAAAAOXR6QEAAAAAAABAoNz31GXESj3ey26ZXoIjAQAAAADL0ukBAAAAAAAAwEZyaXXSnLM/1YNXaT69AAAAAEDxdHoAAAAAAAAAlO883akn5qlk6Z+VevWo5JEGAAAAAPKi0wMAAAAAAACgCt3x7v1/8w8oFtqelXr0q6e/JUeeTwAAAICytV3XxZ4BACBLbdtO/Ra/em0g4L6cc6cAAAAAgDGmdnqxCo2AnjDxmKTnjBKfnPnyvfvKXhJ/RKFpmtPpFHsEACjEbreLPQIAEIF9egAAAAAAAAAwWcHJTdYlScH3hSbz+5v1KwsAAAAAGKTTAwAAAAAAAIBiZd01XaN34pynAgAAAACIS6cHAAAAAAAAAKsTES2r53oWmSbS9N5Zry/S5ykFAAAAKJ5ODwAAAAAAAACmUYKlQKpXlTIivYxGBQAAAACm0ukBAAAAAAAAAL/piAAAAAAAIIBODwAAAAAAAADWFSt+K36tnJV6lShjmR4AAAAAUDadHgAAAAAAAABMIABLilSveCI9CuBZBQAAAKiBTg8AAAAAAAAAyJhUr2DlRXqZjg0AAAAADNLpAQAAAAAAAMCKMspyMhr1A6lekcqL9AAAAACAgun0AAAAAAAAAGCsjKKvjEZdhHCrHrnf69znZyp3HAAAAKASOj0AAAAAAAAAoATXYpjaksUyXLtrkicAAAAAIE06PQAAAAAAAABYi6YoEVK9vIj0KIaHFgAAAKAeOj0AAAAAAAAAGKXs1quMmKTnLMq+fSWpIdIr6VwAAAAAgFc6PQAAAAAAAAAoTc1NWne8uxZB1XxZclFDpAcAAAAAFEmnBwAAAAAAAACrUBZFJNXLUVWRXpEnxQfuMgAAAEBVdHoAAAAAAAAAMEzflR2pXl6qivQAAAAAgPLo9AAAAAAAAACgdqWmUFK9XIj0KI+nFwAAAKA2Oj0AAAAAAAAAWJ5CIxFSvfRVG+kVf4IAAAAAUBWdHgAAAAAAAAAURYH2QU+q51pFV22kR9k8wAAAAAAV0ukBAAAAAAAAwAA1V+66453Fegm6ePF7blZ56jlTAAAAACieTg8AAAAAAAAAFpZXe5PXtHPUc6ZZuBbpbT9JXBWecvHcUwAAAIA63cYeAAAAAAAAAABgI6/9jB16CZI2AQAAAABZs08PAAAAAAAAAMqhQBvjfRImD4vFXXhT+ekXxt0EAAAAqJZ9egAAAAAAAADQR/lWJC1NCtwFCuORBgAAAKiZfXoAAAAAAAAAUC9VCaTAKxEAAAAAcqfTAwAAAAAAAIAl6W0AKuTNHwAAAKByOj0AAAAAAAAAKES7f4k9AhBI5QUAAAAAWdPpAQAAAAAAAABAfFK9fLl3AAAAAOj0AAAAAAAAAKBSwhKA+byXAgAAANDo9AAAAAAAAACgR7t/iT0CUBHFFwAAAABkSqcHAAAAAAAAAIuJ2NhICqEMUr28uF8AAAAAvNLpAQAAAAAAAABAQqRfuXCnAAAAAHij0wMAAAAAAACAGslLAObwLgoAAADAezo9AAAAAAAAAABIiwYMAAAAAPKi0wMAAAAAAACA7LX7l9gjAAuT6qXM3QEAAADgA50eAAAAAAAAAACkSAyWJvcFAAAAgHM6PQAAAAAAAACojsgEcuHVmhp3BAAAAICLdHoAAAAAAAAAkLd2/xJ7BGBFwrB0uBcAAAAAXKPTAwAI0bbtZt8FAAAAAEBEkgwAXvlEAAAAAKCHTg8AYLI5uZ1UDwAAAACAZVmmBzVQiEXnFgAAAADQT6cHADDN/NBOqgcAAAAAwFLCIj21CeTIKzciFx8AAACAQTo9AICx2rZdKrFb8FAAAAAAAABUQi0WhcsOAAAAwBg6PQCAq9r/yu74AAAAAACULWyZHpA1zdjGXHAAAAAARrqNPQAAwOpySeCC5+y6btlJAAAAAAB4rzveJVjEJTgSsI0035SKJNIDAAAAYDz79AAAAAAAAABgMdvEM3N+iuwECtAd77yW1+YKAwAAADCJTg8AAAAAAAAAcmKPFvBKSLYe1xYAAACAqXR6AAAAAAAAADAgnWBDpAe8l867U0lcVQAAAAAC6PQAAAAAAAAAYEnrpXQiPeCcqGxZricAAAAAYXR6AAAAAAAAADAsermxSKQX/SyANXhpL6I73rmSAAAAAAS7jT0AAEAcXdfFHiFE27axRwAAAAAAYFi7f1k29rBJD+j3+p7jvSKYQg8AAACAmezTAwDK110Se6hAJZ0LAAAAAEB2JlUcS9Uy7f5FeAOMJDYL47oBAAAAMJ9ODwAAAAAAAADG2rjlUOgBU3XHO9XZeC4XAAAAAEvR6QEAAAAAAADABOOLjjmr8Aa/NyAs0aJAPbzex3CVAAAAAFhQ23Vd7BmApmmaw+Ew/yCPj4/zDwIAWWvbdv5B/JIMAP5KBYBF+EgFKNukAG9S2jf+gFMjwEyLFB+pMIe1nBdl+n4IMw1+pD4/Pw8e5OHhYaFxACBXT09Pg1/z6dOn/i/wVyoAFOk29gAAAAAAAAAAkJ/ueDe+fnn7ymtlyPhDvR1BewOMMenNqgYKPQAAAABWotMDAAAAAAAAgBAB9cvMWkZeAgQI28BZJO+iAAAAAKxHpwcAAAAAAAAAgTarX+a3JeoUqFzltZ73QAAAAADWptMDAAAAAAAAgFkCFutNOvj5P1Zb2gAzVVjrKfQAAAAA2IZODwAAAAAAAADmeutAFqxftCXASiqp9byLAgAAALAlnR4AAAAAAAAALGZ+sCcsAbZRcK3njRQAAACA7en0AAAAAAAAAGB5HyqR/hJm7aREsgJcs8Y60Fi81wEAAAAQkU4PAAAAAAAAAFa3YD1SQEsDJCjr9XoKPQAAAACi0+kBAAAAAAAAAABNk9t6PXkeAAAAAOnQ6QEAAAAAAAAAAP+RbLCnzQMAAAAgTTo9AAAAAAAAAMhGQDCjaQHmeP8eEqvZ8z4GAAAAQPp0egAAAAAAAAAAwLDzXm6lck+YBwAAAEB2dHoAAAAAAAAAUCytC7CqnjeZwYTPGxQAAAAAJdHpAQAAAAAAAEAeVtpbBbAGGR4AAAAAVbmJPQAAAAAAAAAAAAAAAAAAZEynBwAAAAAAAAAZCFimZ5kVAAAAAABs4zb2AAAAAAAAAACQnPMoTvMGAAAAAABco9MDAAAAAAAAgH9dW1v3+u+xaj3L9AAAAAAAIGU6PQAAAAAAAABomnEtXNxab7z0JwQAAAAAgJLcxB4AAAAAAAAAAOKbtLAuYLvdHBv/OAAAAAAAYCqdHgAAAAAAAAC1KyyEs0wPAAAAAAA2ptMDAAAAAAAAoGphkd5maV9hDSEAAAAAABSp7bou9gwAALCYtm3nH8QvyQAAAABQleAQbpu1dVPHs0wPAAhzOp1ijwAAhdjtdrFHAAAisE8PAAAAAAAAgHolvq1OpAcAAAAAAFnQ6QEAAAAAAABAihJvCAEAAAAAgDc6PQAAAAAAAAAogWV6AAAAAAAQi04PAAAAAAAAgEqlvLBu6mwiPQAAAAAAiEinBwAAAAAAAACTrdrFifQAAAAAACAvOj0AAAAAAAAASIhIDwAAAAAAsqPTAwAAAAAAAIBppHEAAAAAAMB7Oj0AAAAAAAAASIVlegAAAAAAkCOdHgAAAAAAAABMsF4aJ9IDAAAAAIBM6fQAAAAAAAAAYCyRHgAAAAAAcE6nBwAAAAAAAACjiPQAAAAAAICLdHoAAAAAAAAAVGp87dYd70R6AAAAAADANbexBwAAAAAAAACARG1QxIn0AAAAAACgADo9AAAAAAAAAPhomxxuUqSn0AMAAAAAgGTdxB4AAAAAAAAAAKK5Fr9NXXM3Vbt/EekBAAAAAEAxdHoAAAAAAAAAcMF6qd7UI4v0AAAAAAAgcTo9AAAAAAAAAKrWU8GtkepNXaMn0gMAAAAAgPTp9AAAAAAAAADgqgVTvXb/MjXSW+pHAwAAAAAAq9LpAQAAAAAAAFC7/iJufqo3tdBrRHoAAAAAAJCV29gDAAAAAAAAAEB83fGuJ6V7+5+m5nMBjZ9CDwAAAAAAsqPTAwAAAAAAAICmGUr1Xo0J9oL37yn0AAAAAAAgUzo9AAAAAAAAAPhtTKr3KjjGu/ZzFzwaAAAAAACwMZ0eAAAAAAAAAPzrNZlbNsMb/HEAAAAAAEDWbmIPAAAAAAAAAADJ2SCf6453Ij0AAAAAACiDfXoAAAAAAAAAcMFKi/W0eQAAAAAAUB6dHgAAAAAAAABc9ZbVzQz25HkAAAAAAFAwnR4AAAAAAAAADPsQ2vVne6o8AAAAAACoik4PAAAAAAAAACZT4gEAAAAAAG9uYg8AAAAAAAAAAAAAAAAAABnT6QEAAAAAAAAAAAAAAABAOJ0eAAAAAAAAAAAAAAAAAITT6QEAAAAAAAAAAAAAAABAOJ0eAAAAAAAAAAAAAAAAAITT6QEAAAAAAAAAAAAAAABAOJ0eAAAAAAAAAAAAAAAAAITT6QEAAAAAAAAAAAAAAABAOJ0eAAAAAAAAAAAAAAAAAITT6QEAAAAAAAAAAAAAAABAOJ0eAAAAAAAAAAAAAAAAAITT6QEAAAAAAAAAAAAAAABAOJ0eAAAAAAAAAAAAAAAAAITT6QEAAAAAAAAAAAAAAABAOJ0eAAAAAAAAAAAAAAAAAITT6QEAAAAAAAAAAAAAAABAOJ0eAAAAAAAAAAAAAAAAAITT6QEAAAAAAAAAAAAAAABAOJ0eAAAAAAAAAAAAAAAAAITT6QEAAAAAAAAAAAAAAABAOJ0eAAAAAAAAAAAAAAAAAITT6QEAAAAAAAAAAAAAAABAOJ0eAAAAAAAAAAAAAAAAAITT6QEAAAAAAAAAAAAAAABAuNvYAwC/HQ6H+Qd5fHycfxAAAADwVyoALMJHKgAswkcqACxi8CP1+fl58CAPDw8LjQMAuXp6ehr8ml+/fvV/gb9SAaBI9ukBAAAAAAAAAAAAAAAAQDidHgAAAAAAAAAAAAAAAACE0+kBAAAAAAAAAAAAAAAAQDidHgAAAAAAAAAAAAAAAACE0+kBAAAAAAAAAAAAAAAAQDidHgAAAAAAAAAAAAAAAACE0+kBAAAAAAAAAAAAAAAAQDidHgAAAAAAAAAAAAAAAACE0+kBAAAAAAAAAAAAAAAAQDidHgAAAAAAAAAAAAAAAACE0+kBAAAAAAAAAAAAAAAAQDidHgAAAAAAAAAAAAAAAACE0+kBAAAAAAAAAAAAAAAAQDidHgAAAAAAAAAAAAAAAACE0+kBAAAAAAAAAAAAAAAAQDidHgAAAAAAAAAAAAAAAACE0+kBAAAAAAAAAAAAAAAAQDidHgAAAAAAAAAAAAAAAACE0+kBAAAAAAAAAAAAAAAAQDidHgAAAAAAAAAAAAAAAACE0+kBAAAAAAAAAAAAAAAAQDidHgAAAAAAAAAAAAAAAACEa7uuiz0DAAAspm3b+QfxSzIAAAAAAABQm9PpFHsEACjEbreLPQIAEIF9egAAAAAAAAAAAAAAAAAQTqcHAAAAAAAAAAAAAAAAAOF0egAAAAAAAAAAAAAAAAAQTqcHAAAAAAAAAAAAAAAAAOF0egAAAAAAAAAAAAAAAAAQTqcHAAAAAAAAAAAAAAAAAOF0egAAAAAAAAAAAAAAAAAQTqcHAAAAAAAAAAAAAAAAAOF0egAAAAAAAAAAAAAAAAAQTqcHAAAAAAAAAAAAAAAAAOF0egAAAAAAAAAAAAAAAAAQTqcHAAAAAAAAAAAAAAAAAOF0egAAAAAAAAAAAAAAAAAQTqcHAAAAAAAAAAAAAAAAAOF0egAAAAAAAAAAAAAAAAAQTqcHAAAAAAAAAAAAAAAAAOF0egAAAAAAAAAAAAAAAAAQTqcHAAAAAAAAAAAAAAAAAOF0egAAAAAAAAAAAAAAAAAQTqcHAAAAAAAAAACk6I/7P/+4/zP2FLVzFwAAAADGaLuuiz0DAAAspm3b+QfxSzIAAAAAAEBcH8Kwv//5K9YklXMjqnI6nWKPAACF2O12sUcAACK4jT0AAAAAAAAAAADAb1a3pez17qj1AAAAAM7dxB4AAAAAAAAAAACgaUR6mXCbAAAAAM61XdfFngEAABbTtu38g/glGQAAAAAAYGM96ZftbdFduztuTWFOp1PsEQCgELvdLvYIAEAE9ukBAAAAAAAAAAAxifQSd+0uWKwHAAAA8EanBwAAAAAAAAAARCPSy4JUDwAAAKBf23Vd7BkAAGAxbdvOP4hfkgEAAAAAALZxrfJS6KXJ/Srb6XSKPQIAFGK328UeAQCIwD49AAAAAAAAAAAgAtFXdmzVAwAAALhGpwcAAAAAAAAAAGxNpJcpqR4AAADARTo9AAAAAAAAAABgUyK9rEn1AAAAAM7p9AAAAAAAAAAAgO2I9Aog1QMAAAD4QKcHAAAAAAAAAABsRKRXDKkeAAAAwHs6PQAAAAAAAAAAYAu5FFx/3P+Z+KiJTCjVAwAAAHjTdl0XewYAAFhM27bzD+KXZAAAAAAAgMX1tFtJLdM7nzOd8RKcLZfbyhin0yn2CABQiN1uF3sEACACnR4AAEXR6QEAAAAAACQoo5orwVH719NFv4AJXjHC6PQAYCk6PQCok04PAICi6PQAAAAAAABSk1fH1R/Fvdpm7HQmGZTXLeYanR4ALEWnBwB10ukBAFAUnR4AAAAAAEBSsiu4xtRx7y17FnF/+hzZ3WjO6fQAYCk6PQCok04PAICi6PQAAAAAAADS0V+dpZlvTS3lzk06rzk/LrULKNXLnU4PAJai0wOAOt3GHgAAAAAAAAAAAKhOweHW/NIPAAAAgOzcxB4AAAAAAAAAAAAokO1qq0rwGvaMpF0EAAAAiqfTAwAAAAAAAAAAFibSW1Wy11CqBwAAAFRLpwcAAAAAAAAAACxJkbWqZCO9QR4MAAAAoGA6PQAAAAAAAAAAYCP5NmaJSP8Cpj8hAAAAwBp0egAAAAAAAAAAwGJ6dqYpuOb4+5+/crmAPXNaqQcAAACUSqcHAAAAAAAAAAAsQ4W1klwKvTE8JAAAAECRdHoA/J+9u0VuZOkSMGx1eAsfE+64WzA1HDZgYLNeg5iQmNZgZjhg2MCm3kIvQLTX4AHq8KexpVJVVlZl5snniYv62uVTP5Js8MYBAAAAAAAAgMVFKs1W1uKla3FmAAAAgDl0egAAAAAAAAAAQAb2pGV3PB1CBm8eFQAAACAenR4AAAAAAAAAADDXcHkVMjZbVIBCb3h+qR4AAAAQzGPpAQAAAAAAAAAAAPir9TwPAAAAoE+b9/f30jMAAEA2m81m/kH8kgwAAAAAADBJpGV6Bfe8tXWhRor0bIQ0fIN+/vqx2iQAEMn3799LjwAAFGCfHgAAAAAAAAAAQElyNZYzJz19eX699b8kfAAAAPCJfXoAAIRinx4AAAAAAMDKgi1M+3o6H6eQd9Vec1cmWbAnpH5FdkLK9gDgkn16ANAn+/QAAAAAAAAAAADu+1qUTQqiBGksp0ibd+nT5j3ZHgAAAB2yTw9q8fb2Nv8gT09P8w8CAE2zTw8AsvBXKgBk4SMVALLwkQqVi7cqbWCfHsniPSeVKJ7n3SXYAyCe379/3/2af/3rX8Nf4K9UAAjJPj0AAAAAAAAAAABoRv153oePPXuCPQAAAMLT6QEAAAAAAAAAACksSWOk4+kw8LTstntPyxgN5XlfCfYAAAAIT6cHAAAAAAAAAAAA9Wq60PvkHOyp9QAAAIhHpwcAAAAAAAAAAEwWKRyiOCv1rgr8KlPrAQAAEM+30gMAAAAAAAAAAADRaK74xCMxyW67DxzpfXh5fj0HewAAABCATg8AAAAAAAAAAJimh4KIlXmozjop9C6p9QAAAIhBpwcAAAAAAAAAAMDirNS7q7dC75JaDwAAgNY9lh4AAAAAAAAAAAAIRY4FU/Vc6F06p3o/f/0oPQgAAABMZp8eAAAAAAAAAAAwgaCIhfT5aO22+z5PfIDFegAAALRIpwcAAAAAAAAAAGRjmR4DPB6fKPRueXl+VesBAADQFp0eAAAAAAAAAAAwlqyIRfXzgFmjN4ZaDwAAgIbo9AAAAAAAAAAAAGA9Cr1JpHoAAAA04bH0AAAAAAAAAAAAANAFhV6al+fXn79+lJ4CAAAAhtinBwAAAAAAAAAAjHI3MTqeDutMQrvuPiSBS7bAp7aCl+dXi/UAAAComU4PAAAAAAAAAAAAliXSy0KqBwAAQLUeSw8AAAAAAAAAAAAAYSn08np5fv3560fpKQAAAOAz+/QAAAAAAAAAAID7tEbkcjwdhr8g0sMW6VzqYaseAAAAFdLpAQAAAAAAAAAAGdyNr6A3Ir3lvDy/qvUAAACoik4PAAAAAAAAAAAAMhPprUCqBwAAQD0eSw8AAAAAAAAAAAAQzZhGywbCwER6q3l5fv3560fpKQAAAECnBwAAAAAAAAAA3CM6uivhEl1+i2bvk9123+418XpZmVQPAACAGuj0AAAAAAAAAACAudpNqubImGN9HKqTK3k8HaLGbFHPq3JSPQAAAIrT6UEtnp6eSo8AAAAAf/krFQCy8JEKAFn4SAXqtFyL1VuwF4xIryCpHgDr+Oeff+5+zffv31eYBACozbfSAwAAAAAAAAAAADRjt92v02IpvprjlhX38vxaegQAAAD6ZZ8eAAAAAAAAAAAwRH10Nuk6DG/DG3mo85d1u1hvt903dO5eJpWwVQ8AAIBSdHoAAAAAAAAAAAB33K2wJhVll19898id13pNEOkBAAAA30oPAAAAAAAAAAAAtC12Qrbb7ocrrOPpMOcKjPzeeCVYmMcm3q1p3cvza+kRAAAA6JF9egAAAAAAAAAAAJNlzMzOhxqzWC9M2xaGSK9OL8+vP3/9KD0FAAAAfbFPDwAAAAAAAAAAYJolerkxx1SFwUi26gEAALAynR4AAAAAAAAAAHCTMOyT4+mw3FK7kalePzel8jOtfDykegAAAKxJpwcAAAAAAAAAADDKcoXemj+CLER6TZDqAQAAsBqdHgAAAAAAAAAAwH2rFXQjt+qtMAm3uP4AAADAJzo9AAAAAAAAAACAOypccycVgzGs1AMAAGAdOj0AAAAAAAAAAIAh60d6I3+iVK8Il705Uj0AAABWoNMDAAAAAAAAAADSVbhoLq/KT1AztjIXHAAAALhKpwcAAAAAAAAAAHBdwUiv8j4wix7OkUpYqQcAAMDSdHoAAAAAAAAAAAB/XZZjrVRkNrytxqVumlQPAACARen0AAAAAAAAAACA6/qsko6nw/m/0oM0Ewouqp6HsJ5JAAAAgArp9AAAAAAAAAAAANomIYMxrNQDAABgOTo9AAAAAAAAAAAAGKKEBAAAAIbp9AAAAAAAAAAAAJonJIMxrNQDAABgITo9AAAAAAAAAACASh1Ph9IjoIGMRqoHAADAEnR6AAAAAAAAAAAAEcjJluCqAgAAAGPo9AAAAAAAAAAAAICOWKkHAABAdjo9AAAAAAAAAAAAuMIyPQAAAGAknR4AAAAAAAAAAEAQujIYyUo9AAAA8tLpAQAAAAAAAAAA1Ot4OpQeoVOiRwAAAGA8nR4AAAAAAAAAAADQHSv1AAAAyEinBwAAAAAAAAAAAAAAAADpdHoAAAAAAAAAAADw/+y2+9IjAAAAAC3R6QEAAAAAAAAAAMQhMIPxXp5fS48AAABAEDo9AAAAAAAAAAAA+DetIwAAADCVTg8AAAAAAAAAAADolJV6AAAAZPFYegAAAAAAAAAAAIBirm5OO54O608CAAAAQLvs0wMAAAAAAAAAADp1NdIb+Hd64O4DAAAACXR6AAAAAAAAAABAj4ZzrN12r9eCTrw8v5YeAQAAgObp9AAAAAAAAAAAgO5o8AAAAADISKcHAAAAAAAAAABcdzwdSo+wiPGRnpyvuJUfQnccAAAASKPTAwAAAAAAAAAAALr28vxaegQAAADaptMDAAAAAAAAAAAAAAAAgHQ6PQAAAAAAAAAAIN1uuy89wjRTB27uBI+nQ+kRxqrt2tY2DwAAANAQnR4AAAAAAAAAAAAAAAAApNPpAQAAAAAAAAAAAL17eX4tPQIAAAAN0+kBAAAAAAAAAADcdDwdyg6w2+7LDgAAAADAXTo9AAAAAAAAAAAAeqeHBAAAAObQ6QEAAAAAAAAAADcV3wPTlyMAACAASURBVCaXXbwzuhTs7IKdDgAAABCYTg8AAAAAAAAAAOA6nRh05eX5tfQIAAAAtOqx9AAAAAAAAAAAAJDfbrv/+o+aKyZp7oFpa+CrL1IAAACARun0AAAAAAAAAAAI4m72c/kFbRVNldtt9/GuZyVnJGYDAAAAaIJODwAAAAAAAACA5iW0TOdvqaTFGklnmMvxdBh4ZlxbAAAAAKbS6QEAAAAAAAAA0LCZ28ZaqfW+nubHv6ww/HDVFkn9T8KApoe/as0z6uQJBwAAAJbzrfQAAAAAAAAAAACQYrfd50prak507p5mzcMz0/ibGy/SAwAAAGiLTg8AAAAAAAAAgPZkj9MyVn8ZjRypwsnrdzVscyUBAAAASPNYegAAAAAAAAAAAJjmbkz1NcHSX9Gc2Mv0vCSp1svz689fP0pPAQAAQHvs0wMAAAAAAAAAoCXDec/xdLjaLN3690kHX1lVw9zV1rRnVurVrMX4EAAAAOiZTg8AAAAAAAAAgGYMNFQjS7w5P2JNlYzxoatoqoaLH3uZHgAAAEA8j6UHAP56e3ubf5Cnp6f5BwEAAAB/pQJAFj5SASALH6lcGo70xhzheDqMyZ922732qRMjH4mVifQAAKr1+/fvu1/z58+f4S/wVyoAhGSfHgAAAAAAAAAADbhVLuVao8d8FQZvY1x9fpo4l3af/CYuLwAAAMAkOj0AAAAAAAAAAGo3EOmt/BPXUWfF1G4VlqbUXRj5c2PfjthnBwAAAISk0wMAAAAAAAAAoElKHnK59SzttvuVaz2RHgAAAECjdHoAAAAAAAAAAFStzuVyBDNQvq3zBI5vAkV62XmTAQAAAObT6QEAAAAAAAAAUK9b/cwKqVJD6c5q4dbdH9TQRfuqYKo3/vgBIr27JxvgHAEAAIAO6fQAAAAAAAAAAKhUwUivoKZTt9YNp3oL3Zrxa/RiP/kAAAAATXssPQAAAAAAAAAAAEwgVWJR5wfsVjt3/vdcD2FXa/QAAAAAYtPpAQAAAAAAAABQI2vl6nQ8HXq4NcOn+fG/0vK5SRewt0Kvt/OlTt+/fy89AgD1+vPnT+kRAIBK6fQAAAAAAAAAAGjGzIYnZGBWW9e02+5rGynN8GK9s8v/O3zWac9ejCt5KeRrEAAAAOBBpwcAAAAAAAAAQIW6jXm6PfFqjan1zjLeu3h5HgAAAEB430oPAAAAAAAAAAAAo4iXKtHhjTieDuuc9Wo/qIi7KWOpcw98zQEAAIDV6PQAAAAAAAAAAKjL1ZhHSNOQqFsBF43oYhd6AAAAAOE9lh4AAAAAAAAAAADWEDIeK7h/LOT1HOPyms+8CMK8S64GAAAA0DSdHgAAAAAAAAAAFamn/lq/Gqrn3Ofbbfc9ZFefznH4DvZwQQZEerwBAAAAvtLpAQAAAAAAAABQu84Dpzr1vFLvFg9qMpcOAAAAaN230gMAAAAAAAAAAMBfy3VfijIAAAAAYDk6PQAAAAAAAAAAqlZk0VYT272KDzk8gDaSD8MPQ/EnGQAAAGA+nR4AAAAAAAAAAJSnagMAAACAdun0AAAAAAAAAACownKhmgRuOVbqcZdlerTFMwkAAEAanR4AAAAAAAAAAPUq0kuINAAAAACASXR6AAAAAAAAAABEFnWlWz0xoZV6DLBMDwAAAOiETg8AAAAAAAAAgPI6r7k6P30oTjEIAAAAzPRYegDgr6enp9IjAAAAwF/+SgWALHykAkAWPlI7V6SckeskOJ4OA6nhbrt3VftkmR4AEI+/UgGAW+zTAwAAAAAAAAAgLHvqAAAAAIAV6PQAAAAAAAAAAOCvVhZ8VTjn8EiCyQ5ZpkeLPJkAAAAk0+kBAAAAAAAAAFDe1zSin1giTMPWzy1jJo8KAAAAEM9j6QEAAAAAAAAAAODhYYF0J0z/FsNuu1dn9aPFV9/xdGhxbAAAAKAS9ukBAAAAAAAAAMDDgx1fObiG3OUhAQAAAELS6QEAAAAAAAAAEFDgvViVZ04D4wW+KVwauNGVP70AAAAAyXR6AAAAAAAAAABQTG/pWm/n2yG3mHbpSAEAAJhDpwcAAAAAAAAAAPKMnFxMrqr/wah/QgAAAKBaOj0AAAAAAAAAAKKx0au4gd7J3Qls4OZK4AAAAIDYdHoAAAAAAAAAANCMhmInqV5vRHo0zVMKAADATDo9AAAAAAAAAAB6VyrPkKsBAAAAQAw6PQAAAAAAAAAAQhG/1cNKvX6EWabX1rQAAABAPXR6AAAAAAAAAADAUqR6PQgT6QEAAAAk0+kBAAAAAAAAANC1hjqihka9JNWLTaRHAJ5VAAAA5tPpAQAAAAAAAAAQR0PdV0OjzifViypkpNfu5AAAAEBBOj0AAAAAAAAAAGBx2qeuuN00xOMKAABAFjo9AAAAAAAAAAD6Jc9Y062rbaVeo27duAAvqwCnAAAAAKxMpwcAAAAAAAAAQBCxc6/Y4VDsexdS4EgPAAAAIIFODwAAAAAAAAAA1tZtljYQcXV7TVok0iMMDy0AAAC56PQAAAAAAAAAAOiUPKOI4+lw68pL9ZrQSaQX7HQAAACApen0AAAAAAAAAACIQOLVFqleozqJ9OiE5xYAAICMdHoAAAAAAAAAAFC7kDGJVK85vUV6Uc8LAAAAWIJODwAAAAAAAACAHilwaiDVa0hvkR7heXQBAADIS6cHAAAAAAAAAACrEqFdkuo1odtIL/wJAgAAALno9AAAAAAAAAAAaJ6mq2kDqZ47W4NuIz0C8/QCAACQnU4PAAAAAAAAAIDutFVotDVtmuPpYLFena5e/4H7FU8/ZwoAAADModMDAAAAAAAAAACqIIiqza1Ib/1JICPPMAAAAEvQ6QEAAAAAAAAAwHpshxvW1aK25nR7d/o8awAAAGASnR4AAAAAAAAAAG1TvsVzmUVJpApyI4jHkwwAAMBCHksPAAAAAAAAAAAA3NRtUtLtidfGjTg7ng6SYAAAAGCAfXoAAAAAAAAAAPRFdwQk8NYRgJsIAADAcnR6AAAAAAAAAACwEvu4AEoR6QEAALAonR4AAAAAAAAAAADcJ/QCAAAAbtHpAQAAAAAAAABApURBUBuvyka5cQAAACxNpwcAAAAAAAAAQMN2233pEQComkgPAACAFej0AAAAAAAAAADoSMFaQ1IIMYi+AAAAgK90egAAAAAAAAAAADCBVK8hbhYAAADr0OkBAAAAAAAAAECNtCUAM3kjBQAAYDU6PQAAAAAAAAAAAJhGAFY/9wgAAIA16fQAAAAAAAAAAGBxu+2+9AhAZjIwAAAA4INODwAAAAAAAAAAAFJI9arl1gAAALAynR4AAAAAAAAAAFRHYQKt8GqtkJsCAADA+nR6AAAAAAAAAACwrN12X3oEgF6I9AAAAChCpwcAAAAAAAAAQMP0GEBx3ojq4V4AAABQik4PAAAAAAAAAAAWZJke9EAeVgN3AQAAgIJ0egAAAAAAAAAAsJS0SE9qAi3yyi3L9QcAAKAsnR4AAAAAAAAAAABkIBUrxZUHAACgOJ0eAAAAAAAAAAAsIm2ZHtA0wdj6XHMAAABqoNMDAAAAAAAAAKBtdRYaIj3oVp1vSlG52gAAAFRCpwcAAAAAAAAAQEfWyefm/BTNCQTghbwO1xkAAIB66PQAAAAAAAAAACAnm/SAh4eH4+mgIluUywsAAEBVdHoAAAAAAAAAADSvnlpDpAdcqufdKRgXFgAAgNro9AAAAAAAAAAA6MtyKZ1ID/hKUZadSwoAAECFNu/v76VnAB4eHh7e3t7mH+Tp6Wn+QQCgaZvNZv5B/JIMAP5KBYAsfKQCQBY+UplkfCa3ROORJdITn0BUOt4svEkCUJy/UgGAW+zTAwAAAAAAAACgO9mDGQUOMExgNp9rCAAAQM10egAAAAAAAAAABDEp4chV1u22e5EeMMbxdFCaJXPpAAAAqJxODwAAAAAAAACAOFYOORR6wFR6s6n0jQAAADRBpwcAAAAAAAAAQCjjc445q/Dufm9CVSJEgU4Iz8ZzoQAAAGiFTg8AAAAAAAAAgGgmdR2TUr1znnf3W4QlwF3eKIapGQEAAGjLY+kBAAAAAAAAAAAgv+PpMD7A+/jKW03I+EN9HCF5Ux/Qj/M7hreLrxR6AAAANEenBwAAAAAAAABATJNSvbOZtYywBEig1rvkjRQAAIBG6fQAAAAAAAAAAAhrtfplflgiTYHOJaTFwXgbBAAAoGk6PQAAAAAAAAAAglu0frkalnQe2wBpul2sp9ADAAAgAJ0eAAAAAAAAAADxfUQgGQMYYQmwhK5qPW+kAAAAhKHTAwAAAAAAAACgI/ODPVUJsILwtZ73UgAAAILR6QEAAAAAAAAA0KNPichwDLN0T6JXAa5aYhdocd7xAAAACEmnBwAAAAAAAAAAObuRSDkNUIkA6/XkeQAAAMSm0wMAAAAAAAAAAIAGNLpeT6EHAABAD3R6AAAAAAAAAAAA0JL6gz1tHgAAAL3R6QEAAAAAAAAAQDYJzYyaBUh2+QZSQ7PnDQ0AAIBu6fQAAAAAAAAAAACgeUWaPWEeAAAAnOn0AAAAAAAAAACgGIkLsISv7y1vb2//81//m/2wAAAAwJlODwAAAAAAAAAA8lhtgRVAgv/87/8oPQIAAACE9a30AAAAAAAAAAAAAAAAAADQMJ0eAAAAAAAAAABkkLBM73g6LDEJAAAAALCyx9IDAAAAAAAAAADAZF+jOM0bAAAAAFDK5v39vfQMAACQzWazmX8QvyQDAAAAAEDNhtfWlar1LNMDAAAAgJ7ZpwcAAAAAAAAAQBvGtHDnr6k/gat/QgAAAABgvG+lBwAAAAAAAAAAgPsmLaxL2G43x8o/DgAAAACojU4PAAAAAAAAAIDaBQvhLNMDAAAAgGB0egAAAAAAAAAAVC0t0lst7QvWEAIAAAAACXR6AAAAAAAAAACwHsv0AAAAACAenR4AAAAAAAAAAPWqfFvd1PFEegAAAAAQkk4PAAAAAAAAAABSVN4QAgAAAACr0ekBAAAAAAAAAMAaLNMDAAAAgKh0egAAAAAAAAAAVKrmhXVTZxPpAQAAAEBgOj0AAAAAAAAAAAJatIsT6QEAAAAAl3R6AAAAAAAAAAAwgUgPAAAAAPhEpwcAAAAAAAAAQDTSOAAAAABgTTo9AAAAAAAAAAAYyzI9AAAAAOArnR4AAAAAAAAAAKEsl8aJ9AAAAACAq3R6AAAAAAAAAADEIdIDAAAAANan0wMAAAAAAAAAIAiRHgAAAABQxOb9/b30DAAAkM1ms5l/EL8kAwAAAABAPUYGcot2cSI9AAAAAGDYY+kBAAAAAAAAAAAg0QpFnEgPAAAAALhLpwcAAAAAAAAAQHvWyeEmRXoKPQAAAADo1ub9/b30DAAAkM1ms5l/EL8kAwAAAABAVW7Fcot2cdboAQAAAADjfSs9AAAAAAAAAAAApJia0i13ZJEeAAAAAHTOPj0AAEKxTw8AAAAAAEIaCOeyN3KTIj2FHgAAAADwYJ8eAAAAAAAAAABNy7hVb7fdi/QAAAAAgAT26QEAEIp9egAAAAAAENVwQTczmUuI/UR6AAAAAMAHnR4AAKHo9AAAAAAAILAxNd3UfE6hBwAAAADMp9MDACAUnR4AAAAAAMQ2PqsbqOkS2ry7xwQAAAAAeqbTAwAgFJ0eAAAAAACEl1zZzaHQAwAAAAAG6PQAAAhFpwcAAAAAAJ1YrdZT6AEAAAAAd+n0AAAIRacHAAAAAAD9WDrVU+gBAAAAACPp9AAACEWnBwAAAAAAvcle68nzAAAAAICpdHoAAISi0wMAAAAAgG7NDPbkeQAAAABAMp0eAACh6PQAAAAAAICz4WxPlQcAAAAAZKTTAwAgFJ0eAAAAAAAAAAAAALCyb6UHAAAAAAAAAAAAAAAAAICG6fQAAAAAAAAAAAAAAAAAIJ1ODwAAAAAAAAAAAAAAAADS6fQAAAAAAAAAAAAAAAAAIJ1ODwAAAAAAAAAAAAAAAADS6fQAAAAAAAAAAAAAAAAAIJ1ODwAAAAAAAAAAAAAAAADS6fQAAAAAAAAAAAAAAAAAIJ1ODwAAAAAAAAAAAAAAAADS6fQAAAAAAAAAAAAAAAAAIJ1ODwAAAAAAAAAAAAAAAADS6fQAAAAAAAAAAAAAAAAAIJ1ODwAAAAAAAAAAAAAAAADS6fQAAAAAAAAAAAAAAAAAIJ1ODwAAAAAAAAAAAAAAAADS6fQAAAAAAAAAAAAAAAAAIJ1ODwAAAAAAAAAAAAAAAADS6fQAAAAAAAAAAAAAAAAAIJ1ODwAAAAAAAAAAAAAAAADS6fQAAAAAAAAAAAAAAAAAIN1j6QGAv97e3uYf5Onpaf5BAAAAwF+pAJCFj1QAyMJHKgBk4SMVALLwkQoA3GKfHgAAAAAAAAAAAAAAAACk0+kBAAAAAAAAAAAAAAAAQDqdHgAAAAAAAAAAAAAAAACk0+kBAAAAAAAAAAAAAAAAQDqdHgAAAAAAAAAAAAAAAACk0+kBAAAAAAAAAAAAAAAAQDqdHgAAAAAAAAAAAAAAAACk0+kBAAAAAAAAAAAAAAAAQDqdHgAAAAAAAAAAAAAAAACk0+kBAAAAAAAAAAAAAAAAQDqdHgAAAAAAAAAAAAAAAACk0+kBAAAAAAAAAAAAAAAAQDqdHgAAAAAAAAAAAAAAAACk0+kBAAAAAAAAAAAAAAAAQDqdHgAAAAAAAAAAAAAAAACk0+kBAAAAAAAAAAAAAAAAQDqdHgAAAAAAAAAAAAAAAACk0+kBAAAAAAAAAAAAAAAAQDqdHgAAAAAAAAAAAAAAAACk0+kBAAAAAAAAAAAAAAAAQDqdHgAAAAAAAAAAAAAAAACk0+kBAAAAAAAAAAAAAAAAQLrN+/t76RkAACCbzWYz/yB+SQYAAAAAAAAAAAAAxrNPDwAAAAAAAAAAAAAAAADS6fQAAAAAAAAAAAAAAAAAIJ1ODwAAAAAAAAAAAAAAAADS6fQAAAAAAAAAAAAAAAAAIJ1ODwAAAAAAAAAAAAAAAADS6fQAAAAAAAAAAAAAAAAAIJ1ODwAAAAAAAAAAAAAAAADS6fQAAAAAAAAAAAAAAAAAIJ1ODwAAAAAAAAAAAAAAAADS6fQAAAAAAAAAAAAAAAAAIJ1ODwAAAAAAAAAAAAAAAADS6fQAAAAAAAAAAAAAAAAAIJ1ODwAAAAAAAAAAAAAAAADS6fQAAAAA/o+9O8puHEUDMBpyvKlk/6ezLOYhPRlPYssSAvED977NdMpBtsqUkT4DAAAAAAAAAAAA5XR6AAAAAAAAAAAAAAAAAFBOpwcAAAAAAAAAAAAAAAAA5XR6AAAAAAAAAAAAAAAAAFBOpwcAAAAAAAAAAAAAAAAA5XR6AAAAAAAAAAAAAAAAAFBOpwcAAAAAAAAAAAAAAAAA5XR6AAAAAAAAAAAAAAAAAFBOpwcAAAAAAAAAAAAAAAAA5XR6AAAAAAAAAAAAAAAAAFBOpwcAAAAAAAAAAAAAAAAA5XR6AAAAAAAAAAAAAAAAAFBOpwcAAAAAAAAAAAAAAAAA5XR6AAAAAAAAAAAAAAAAAFBOpwcAAAAAAAAAAAAAAAAA5XR6AAAAAAAAAAAAAAAAAFBOpwcAAAAAAAAAAAAAAAAA5XR6AAAAAAAAAAAAAAAAAFBOpwcAAAAAAAAAAAAAAAAA5XR6AAAAAAAAAAAAAAAAAFBOpwcAAAAAAAAAAAAAAAAA5XR6AAAAAAAAAAAAAAAAAFBOpwcAAAAAAAAAAAAAAAAA5XR6AAAAAAAAAAAAAAAAAFBOpwcAAAAAAAAAAAAAAAAA5XR6AAAAAAAAAAAAAAAAAFBOpwcAAAAAAAAAAAAAAAAA5XR6AAAAAAAAAAAAAAAAAFBOpwcAAAAAAAAAAAAAAAAA5XR6AAAAAAAAAAAAAAAAAFBOpwcAAAAAAAAAAAAAAAAA5W69BwAAAAAAAAAAAAAAAAAQWkrp2X/KOV85EmLS6QEAAAAAAAAAAAAAAAD8n40wb+MnNXvL0ukBAAAAAAAAAAAAAAAA/Gt/obfxZwV7q9HpAQAAAAAAAAAAAAAAAJwq9B4+lFpvHe+9BwAAAAAAAAAAAAAAAADQU0qpYqR3/7DVH5OYdHoAAAAAAAAAAAAAAADAuprWdFK9Rdx6DwAAAAAAAAAAAAAAAACgg0MRXc657EG+f+DZH2cOOj0AAAAAAAAAAAAAAABgOfsjve3E7ue/2jpvZe+9BwAAAAAAAAAAAAAAAABwqVqR3q+f3PhhFd/c7KcHUXx9fZ1/kI+Pj/MPAgAAAD6lAkAVplQAqMKUCgBVmFIBoApTKsA0diZz+wu9nY+ZUjr0mAxEpwcAAAAAAAAAAAAAAADwf/YHdTbK4+3t7b33AAAAAAAAAAAAAAAAAAAuUjerE+nxTacHAAAAAAAAAAAAAAAALGFnVrdzM72CSE/XNyudHgAAAAAAAAAAAAAAADC/7pEeE9PpAQAAAAAAAAAAAAAAAEA5nR4AAAAAAAAAAAAAAAAwubrb39lMj190egAAAAAAAAAAAAAAAABQTqcHAAAAAAAAAAAAAAAAzGz/9nc554qPxjp0egAAAAAAAAAAAAAAAMC0QmV1ezpARqTTAwAAAAAAAAAAAAAAAIByOj0AAAAAAAAAAAAAAAAAKKfTAwAAAAAAAAAAAAAAAOaUUtr/wznndiO54PHpSKcHAAAAAAAAAAAAAAAAsJfcjr90egAAAAAAAAAAAAAAAMCEDm2m15q6b246PQAAAAAAAAAAAAAAAIADjkZ3Ir3p6fQAAAAAAAAAAAAAAAAAWhHpreDWewAAAAAAAAAAAAAAAAAAlaWUDv182RZ5279FobcOnR4AAAAAAAAAAAAAAABAiWe1nkJvNTo9AAAAAAAAAAAAAAAAgHKqPN57DwAAAAAAAAAAAAAAAACgpr8b3EFTOj0AAAAAAAAAAAAAAAAAKKfTAwAAAAAAAAAAAAAAAJaWc+49BMaWnEMAAMykyh7l/pEMAAAAAAAAAAAAfz27Sc99dwR09J5SpzEn2U8PAAAAAAAAAAAAAACALSmljeqpypfsQ0XOSa6n0wMAAAAAAAAAAAAAAOCpPcnTdsgHMD2dHgAAAAAAAAAAAAAAAI+p7wD20OkBAAAAAAAAAAAAAABQgagPWJZODwAAAAAAAAAAAAAAgAcKujupHiPKOfceAsPT6QEAAAAAAAAAAAAAAABAOZ0eAAAAAAAAAAAAAAAAMAmbOtKFTg8AAAAAAAAAAAAAAAAAyun0AAAAAAAAAAAAAAAAqMZuZsCCdHoAAAAAAAAAAAAAAADAonLOvYfADHR6AAAAAAAAAAAAAAAAAFBOpwcAAAAAAAAAAAAAAEBNKaXeQ2BRzj160ekBAAAAAAAAAAAAAAAAQDmdHgAAAAAAAAAAAAAAAA/knIv/rG3NgKXo9AAAAAAAAAAAAAAAAIAVnYlR4Z5ODwAAAAAAAAAAAAAAgPpsqQesQ6cHAAAAAAAAAAAAAABAE1I9ruR8oyOdHgAAAAAAAAAAAAAAAI/lnHsPAWAAOj0AAAAAAAAAAAAAAABascUZsAKdHgAAAAAAAAAAAAAAAE+d31JPqgdMT6cHAAAAAAAAAAAAAAAALOd8gwo/dHoAAAAAAAAAAAAAAABssaUewDadHgAAAAAAAAAAAAAAAM1J9WjKCUZfOj0AAAAAAAAAAAAAAABeOL+lHsDEdHoAAAAAAAAAAAAAAABcwY5nwKx0egAAAAAAAAAAAAAAALxWZUs9qR4wpVvvAQAAAAAAAAAAAAAAALCQlFKV5I+ZdAk4a/1S5zNv9tMDAAAAAAAAAAAAAABgp1o9kl31uDf6+TD6+KlCpwcAAAAAAAAAAAAAAMBeUj3qciYwB50eAAAAAAAAAAAAAAAAHQi0mIaTGZ0eAAAAAAAAAAAAAAAAB9TaUu9N3cQsKv6lYFA6PQAAAAAAAAAAAAAAAI6R6gHc0+kBAAAAAAAAAAAAAABwmA3EqCLnPPq5NPr4qeLWewAAAAAAAAAAAAAAAAAsLaWkdFrcmROgYEtG5xvV2U8PAAAAAAAAAAAAAACAEhVjp4LUCiAOnR4AAAAAAAAAAAAAAACFpHoMx2Z6tKDTAwAAAAAAAAAAAAAAoJxUD0CnBwAAAAAAAAAAAAAAQBQpJbUeMBydHgAAAAAAAAAAAAAAAKdU3FLvm1SPnZwqBKHTAwAAAAAAAAAAAAAA4CypHrAynR4AAAAAAAAAAAAAAAAVSPWAZen0AAAAAAAAAAAAAAAAqEOqR3DVT9FRpDu9xzInnR4AAAAAAAAAAAAAAADVSPUgml9/ifydakGnBwAAAAAAAAAAAAAAQE1SPa7hxNjj4bPkqatOpwcAAAAAAAAAAAAAAEBlUj2IwF+cy+j0AAAAAAAAAAAAAAAAqK9Fqic6gp38fbmYTg8AAAAAAAAAAAAAAIAmqqd6b/YH44QWJ2RACr0udHoAAAAAAAAAAAAAAAC0ItWDK/nb0YtODwAAAAAAAAAAAAAAgIakerTgHLiX/qv3QNal0wMAAAAAAAAAAAAAAKCtRqmeKgn8RQji1nsAAAAAAAAAAAAAAAAAzC/n3KImSim1iAAhMmFeQDo9AAAAAAAAAAAAAAAAriDVgwKqvCHo9AAAAAAAAAAAAAAAALhIu1Tv+8GrPzLTiHx6KPEmoNODKL6+vs4/yMfHx/kHAQAAAJ9SAaAKUyoAVGFKBYAqTKkAUIUpFWpplOq92VgP6EenB8P4/PzsPQQAWIWvJAEAAAAAAAAAAIBB2VhvEe72/Ov7tPfM9KLTAwAAAAAAAAAAAAAAYCpqPdbhPA9CpwcAAAAAAAAAAAAAAMCE1HrMylkdkE4PAAAAAAAAAAAAAACAaan1eBv8BBh68OvQ6QEAAAAAAAAAAAAAADC5lJLYibCcnBN47z0AAAAAAAAAAAAAAAAAaO57Yz0m4KUkIJ0ehdH+uAAAIABJREFUAAAAAAAAAAAAAAAAS9B3AY3o9AAAAAAAAAAAAAAAAACgnE4PAAAAAAAAAAAAAAAAAMrp9AAAAAAAAAAAAAAAAFhFSqn3ELhazrn3EJifTg8AAAAAAAAAAAAAAAAAyun0AAAAAAAAAAAAAAAAgDHYEZGYdHoAAAAAAAAAAAAAAAAAUE6nBwAAAAAAAAAAAAAAAADldHoAAAAAAAAAAAAAAACsIufcewhcyivONXR6AAAAAAAAAAAAAAAAAFBOpwcAAAAAAAAAAAAAAMASbK02upRS7yHAYzo9AAAAAAAAAAAAAAAAACin0wMAAAAAAAAAAAAAAGB+NtMD2rn1HgAAAAAAAAAAAAAAAAA0pNADWtPpAQAAAAAAAAAAAAAAMCeF3uKcAFxGpwcAAAAAAAAAAAAAAMBsBFrzSSn1HgI8lbzpwChMJwAAAAAAAAAAAAAA8JJYZlYFYcWCJ8P+Z2nBJ6cp++nBMLz9AcAeVcp20y4AAAAAAAAAAAC003QbGzcBAl3o9AAAAAAAAAAAAAAAALhIu0hPoQd09N57AAAAAAAAAAAAAAAAACxBpMeVnBVcSacHAAAAAAAAAAAAAABAcyI9YGK33gMAAAAAAAAAAAAAAABgco0iPYXeOtp1nlCF/fQAAAAAAAAAAAAAAABoSKQHTE+nBwAAAAAAAAAAAAAAQCsiPWAFt94DAAAAAAAAAAAAAAAAYE4tIj2FHhCQ/fQAAAAAAAAAAAAAAACoT6RHR04VLqbTAwAAAAAAAAAAAAAAoDKRHhW1OJ2gLp0eAAAAAAAAAAAAAAAANYn0gNXo9AAAAAAAAAAAAAAAAKhGpAcs6NZ7AAAAAAAAAAAAAAAAAPCYQg8Ygv30AAAAAAAAAAAAAAAAqKPuZnoiPco4c7ieTg8AAAAAAAAAAAAAAIAKRHrAsnR6AAAAAAAAAAAAAAAAnCXSo5G6pxY0otMDAAAAAAAAAAAAAADgFJEesDidHgAAAAAAAAAAAAAAAOVEegA6PQAAAAAAAAAAAAAAAEIQ6QGD0ukBAAAAAAAAAAAAAABQqOJmeiI9qnAi0YVODwAAAAAAAAAAAAAAgBIiPVqreI5BUzo9AAAAAAAAAAAAAAAADhPpAfzQ6QEAAAAAAAAAAAAAANCNSA+YgE4PAAAAAAAAAAAAAACAY2ptpifSA+ag0wMAAAAAAAAAAAAAAOAAkR5hOanoRacHAAAAAAAAAAAAAADAXiI9LlPrZIML6PQAAAAAAAAAAAAAAAAAoJxODwAAAAAAAAAAAAAAgF1spgfwkE4PAAAAAAAAAAAAAACA64j0gPno9AAAAAAAAAAAAAAAAHitymZ6Ij3acXbRkU4PAAAAAAAAAAAAAACAF0R6ABt0egAAAAAAAAAAAAAAADQn0uOQKmkoXEanBwAAAAAAAAAAAAAAwBbFFMA2nR4AAAAAAAAAAAAAAABt2UwPmJtODwAAAAAAAAAAAAAAgIZEelzAaUZfOj0AAAAAAAAAAAAAAACeSin1HgJAdDo9AAAAAAAAAAAAAAAAWrHLGQXUoQxHpwcAAAAAAAAAAAAAAMBjJ3MpkR6wCJ0eAAAAAAAAAAAAAAAAAJTT6QEAAAAAAAAAAAAAAFCfzfS4jJON7nR6AAAAAAAAAAAAAAAAPJBS6j0EgDHo9AAAAAAAAAAAAAAAAKjM/mbAUnR6AAAAAAAAAAAAAAAAQBQ2cmREOj0AAAAAAAAAAAAAAABqspkeV3K+EYFODwAAAAAAAAAAAAAAAADK6fQAAAAAAAAAAAAAAAAAoJxODwAAAAAAAAAAAAAAgGpyzr2HwEKcbwSh0wMAAAAAAAAAAAAAAABCSCn1HgKU0OkBAAAAAAAAAAAAAAAAQDmdHgAAAAAAAAAAAAAAAHXknHsPAaADnR4AAAAAAAAAAAAAAAAPiO4IzilKHDo9AAAAAAAAAAAAAAAAHjvUQYmmgGXp9AAAAAAAAAAAAAAAAHhqZ30n0uO8lFLvIUChW+8BAP/6+vo6/yAfHx/nHwQAAAB8SgWAKkypAFCFKRUAqjClAkAVplRWlnPeDqhEelzPWUcoOj0AAAAAAAAAAAAAAABe+G6iftV6QimAbzo9AAAAAAAAAAAAAAAAdhHmATz03nsAAAAAAAAAAAAAAAAAAAdIRolGpwcAAAAAAAAAAAAAAAB0llLqPQQop9MDAAAAAAAAAAAAAAAAhmEzPQLS6QEAAAAAAAAAAAAAAABAuVvvAQAAAAAAAAAAAAAAAACDSSn9+n9sc8fKdHoAAAAAAAAAAAAAAADAXn8Lvfv/v6zWe/aYf6kBiUmnBwAAAAAAAAAAAAAAALy2p6Y7U+vBuN57DwAAAAAAAAAAAAAAAACIbv+Wd7AgnR4AAAAAAAAAAAAAAACw5Wik1yjqs00fYen0AAAAAAAAAAAAAAAAgKda76Rnp75aDj2Tnva6dHoAAAAAAAAAAAAAAABAZdUzMJvpbUgpFTzhZX+Kh269BwAAAAAAAAAAAAAAAAAEpeOKqeLr8uuh9JBldHoAAAAAnPL5+Xn/P//5559eIwGAsH5Nlw+ZQwHgpT1T6g9zKwAAAACMYmdvNn08FqeHPDqS6V+anXR6AAAAAJT7e4vk5+enWyEBWFzZ9bO/s6opFYDFnbwl5dfc6jYRAAAAAACa0ukBAAAAUOjZPgZSPQDWVP3rLe+nWmkBAIto93XRvx7Z3AoAAAAAOwXZ5M2aHvHp9AAAAAAo8SzSA4DVXHNh8ue3uAAJwJSuv9Hn+zeaWAEAAACgqT1LcHuWBy3lMQSdHgAAAACHifQA4K3TV4cK9gCYTN+v4jaxAgAAAABQi04PmIeraEAt3k8AADYo9ADgrXdRcD8GyxcAjCvCfPrDxAoAAAAA1dVacFt24S7ygYda4I1DpwfM4NdbfEop8oQEBHf/luKqPADALyI9AIh2wcnyBQAjKphP//nnn/0/XPzp1cQKAAAAABeLdvWtr4EWJwca6pV0esDwHk7MUj2gIm8pAABvCj0AKL1GuB0V1JphRQUAjGL/fHo/r319fR36LT/zb9lUa2IFAAAAgPNspseC3HQODGzjMp43N6CY95bRVfliFa81ANwrm17NpwBM5tCEWDYP+kgLwPT2THYt5rIzk6y5FQAAAAAKVth2Lqy9fGQLdIxFpweMSkgDtOMdZmhuagSAitzICADfds6Jtaa/859tTcQARNOr0Ds6hodMrAAAAADQ4kstRXrM59Z7AAAlJDRAUznnZ+8zKfmaAwBgflW6dwCYQ5eo4PsBz8zIVjAACCXI3TbFM6yJFQAAAAB2spLG4qwmA+MR6QHX8G4zKPvpAUCxunme+RSACUSICk5O0GZkALrbnsu6TFVl06tZFQAAAIDF1V3ri3AlDqp77z0AgGNkM8BlNt5V7DADAEwj3ek9FgCIJcilwZO/xRQPQF8BI73i3+uzMwAAAADUEuRKHFRnPz1gJCI94HreeYZjPz0AeObiuwnNpwAMLWBUcGYqNy8D0EXwBfbiuTXC4AEAAACgi/N93Z51OUtwjEunB4wh4G0xwDqC30nALzo9AFYW6nv9zacAjCvsaqRUD4CBxF9a1+kBAAAAQIGdC2t/l9GK/yAMRKcHDCDsbTHAOuLfT8APnR4AK9PpAcB5wVcjpXoAjOLZnBVqPpLqAQAAAECBdjeoWHljdO+9BwDwQvDbYoBFbLzbpJRC3RAPAFBR/q/eAwGAi8RfjTwzBisYAFxmiEjv7cR4zKoAAAAArKzFQp8bVJiDTg8ILf5tMQAAAPOR5wHAX3FmxjgjAYCHRon0TpLqAQAAALCyust9ky0esjKdHjAqkzFwse23HdfjAYAJyPMAWNzGp/tp5kcrGAB0lFIyEwEAAADANKrcZOJOFSaTnNBAWCvcFgMMxz6f8VW5z8NLCcCgCubBnbNeu0cGgCCGW4088/k35hEBMIf9M1Sc+cisCgAAAADnHVpns7DGrG69BwDwmG/TBGLKOW+8QaXkSxAAgLj8QwUACoSdQLfXKAAgPivqAAAAADCT++W+Z5exLAkyPZ0eEJHtqoDIpHoAQFj+HQIAZVYL3ixfANDI0Sn1++eHnpXMqgAAAADwl0UzlvXeewAAv4n0gPi234tWu7cPAAAAZhV8NfLM8CxfABBH91kp+IwPAAAAAMAodHpALCI9YA7d7yoAAAAAdnr2KX6I1cghBgkAAAAAAACwglvvAQD8j6zl3stnwy04dOHM/JFz3n42UkrrPBsAAADAcKxdABDH0LPS0IMHAAAAAKAinR4wjLmvbxU0in//yNxPEV04M7dJ9QAAAGB0Q2+mBwCh+EZOAAAAAAAWp9MDoti+dDflbTHVr1b+POCUTxeXcWYe8jLVAwAAAGjqzOqE7xgCIA6zEgAAAAAAo9PpASGsFum1rnrmzqJox5nZghsLAAAAICyb6QEAAAAAAABQy3vvAQA0T4NCSSldebwX/zrG5cw84+WtezMdLAAAABCQsBAAAAAAAACgO/vpAZ29zFemucWkY6jz/auneSapy5lZRc55+5m0qx4AAAAM5P5j/vSf6K1aAAAAAAAAAFSh0wNCm+MGkeIOauPwCx5zpiaKKpyZAAAAwMp2rmP8/JjlCwAAAAAAAAA26PSAnjpu5HWNggPcebvP/Y8d+i2aKN6cmW3YUg8AAADmNsHyBQAAAAAAAADtvPceALCulw3P6Le8HIqU8n8V/KKCPzt9IckGZ2Y7Lw929AMEAAAAwn66P7OaGvagAAAAAAAAAAai0wNoYv+tLcUR1MmHcvPNmpyZ3U1/gAAAADA9n+4B4KGTlxVG/wZPAAAAAADQ6QF9TLyZXkrpUApVfQCHgig3Fa3DmXmNcd+7AAAAAAAAAAAAAAAoptMDOpg70tv5kxU3Kzv54OMGUeznzAxl4kMDAACAUZz8eO7TPQA8VHyJYdyLgwAAAAAA8EOnB1BN383KzvwW9xXNzZl5sT0HOOihAQAAAJEpHAAAAAAAAAA60ukBV5t4M72drjzA6YMoKnJmVjT9+xgAAAAw6KrFM5MdDgAdFayQj76oPvr4AQAAAACoRacHUMfOG1muv1A3fRDFNmdmWLMeFwAAAAAAizt00UHkBgAAAADANHR6wKVm3UwvbAp19PcKhybjzOxo0HczAAAAAAA4L+f8cp18z89cY8TLEAAAAAAABKTTA64z6yWu4ClUhN9OF87M+GZ9VwQAAAAAgLfnJV6cQg8AAAAAACq69R4AwP+MeEFuvswmpTTiC8EvzswIcs4vX4gRjwsAAAAAAPabexl87qMDAAAAAOAQ++kBF5mvGno7clARLtHtH8OUL9ZSnJkAAAAAAAAAAAAAAHAlnR4QRYReqJE4hxZnJEQQ53yIM5Lq9hya/hAAAAAAAHqxSg8AAAAAQC06PeAKU17fmvKgfsx9dHOb+7Wb++gAAACAy5z/2qCJv3gIANjJvwcAAAAAALin0wNCGO4i1v5YKNqh7R+PIGpEzsyAbKkHAAAAAAAAAAAAADA9nR7QnP4EAAAAAIjmzNcYRfsKJACgzJnrmP49AAAAAADALzo9oL/hLmKNu2XZt4k3LlucMzOsmE84AAAAAAAAAAAAAAC16PSAtobLaQC68G4JAAAA1yv7bh3fyAMA+PcAAAAAAAB/6fQAjlmtpVnteMe12iu12vECAAAAjRy9yX7Wm/JnPS4A2FB8rcG8CQAAAADAQzo9oKE9F7cmvo4V+dAij43WIr/6kcd20p5DEx8CAABAFznnPZ/cd/5YR9YWAAAAAAAAADrS6QEcsOadLmse9VjWfI3WPGoAAACgkY0ML36hBwAcZTM9AAAAAACqu/UeADCtxTfTA/gl5/zyjTGl5I0RAAAAOvLBHADY4J8KAAAAAABssJ8ewF4rb9618rHHt/Krs/KxAwAAAAAAZVxfAAAAAACgBZ0e0ISLW/G/TTP+CGkh/usef4Stef8EAAAALmZBBoClFK/DmzEBAAAAANim0wO6GetSlnKGmJyZYxnrfQ8AAAAYiGUiAGjKCj8AAAAAAC/p9ADYxY0+xOTMBAAAAAAAdiq7rCDSAwAAAABgD50eUJ9sBuAM76IAAAAAAFCdSA8AAAAAgKZ0ekAfY13Q0sx88zxE4xX5NtbzMNa7HwAAADCEM8sjFisAWIRIDwAAAACA1nR6AOtyZZGYnJlvo8WHAAAAAAAQmUgPAAAAAIAL6PSAyrQlby7aEZUzEwAAAIB71osAWIFIDwAAAACAa+j0gA7GuqylPLzn2YjDa3FvrGdjrPdAAAAAILixFkYA4GIFE2XO2Uo+AAAAAAAFbr0HAPzr6+vr/IN8fHycf5Az3BECUEtKyX0AAEBH5z+lfn19df+UCgDdRV74tfIAwEAKptTPz8+CX2R+BGBukT+lAsBATKkAwDM6PQAAAAAAgCH56jQA+EuhBwAAAABAFzo94GoucQHknN1FBwAAAHRknRaAKZUVem9mRgAAAAAAatDpAdVM2ZxMeVAnpZRcquzOmfnXlGfmlAcFAAAA1GKNCIDFFVd596zDAwAAAABQi04PAAAAAABgIYIEAOK7IEc3IQIAAAAAUJdODwAAAAAAYDA20wNgStdMcAo9AAAAAABa0OkBl3LRC+BbztntdAAA/Ie9O0pqXOcWMIq7mBSZf5Fh+X/IuVwKiGNvy9KWtNZTVzWdlo3KIrE/BAD1+ZAWgLSu/tjcIggAAAAAwKX+tR4AMAi1yZcZ7vD5dvfIzOzUkAcFAAAAnBT+xGCGz4gA4JllWXzqDgAAAADAdXR6AE/NcKPOczk9MjMBAAAACPCRCwC8/V+tp9kDAAAAAKA4nR4AAAAAAEA3RAUAjKp+Ui7YAwAAAACgIJ0eUMDOe1d+WzPAdzuvip4PAAAAAL6EPyjw8SwAXWi1YKn1AAAAAAA47731AAAAAAAAALiQSA+Ajvy5bN3v9/2vcLvdYv/1I9WzbgIAAAAAEKPTAwAAAAAA6EBsnx+xAQCz+fz8fPwhFuyp9QAAAAAAiNHpAQAAAAAAZCfSA4CjzgR7aj0AAAAAAI7613oAQPdiT4fkN+pxleL8tOLMb+vu/Oy8wd/dcQEAAAAAQB5fwd5RPp8HAAAAAGA/nR5QiV82CQAAAAAQYzM9ADjp8/MztjIuy6LWAwAAAABgD50eAAAAAABAXiI9AChlXddwrVd8MAAAAAAADEanBwAAAAAAkNTtdgv8K5EeAGyQ6gEAAAAAcAWdHnCK21EAdbjeAgAAADuJ9ADgJakeAAAAAADF6fQAAAAAAAAyCmymJ9IDgJ2kegAAAAAAlKXTA2rwaAjAM66QAAAAwJ9EegBwNakeAAAAAAAF6fQAAAAAAAByEekBQGbLsqj1AAAAAAD4YXHXFjhj5/2nHi814Vtr3R3sPEc6hnm+X/Mc6dvQ19Imijwb4WwDwA+BFdZ6CgBhVl4AqGmqWxIAAAAAAFzHfnoAAAAAAABZiPQAoBe21AMAAAAA4DudHhDnzhNATa66AAAAMDyRHgDUd2Yx9dE9AAAAAABfdHoAf3BHbQ9nqT7nfA9nCQAAAJiHSA8AipDqAQAAAABw3nvrAQAAAAAAAHDsKX+FHgAAAAAAAEAq9tMDLud5EYBtrpMAAACASA8A+mVLPQAAAAAA3nR6AAAAAAAAbYn0AKC5kyusVA8AAAAAAJ0eAAAAAABAMyI9AAAAAAAAgAHo9IAgvxISoD7XXgAAABiMSA8A8rClHgAAAAAAZ7y3HgAAAAAAAMCM9j/Nr9ADAAAAAAAASM5+egAAAAAAALWJ9ABgPLbUAwAAAACYmU4PAAAAAACgKpEeAAAAAAAAwGB0egAAAAAAAPWI9AAgrfOLry31AAAAAACmpdMDAAAAAACoRKQHAAAAAAAAMKT31gMAAAAAAADg/yn0AAAAAAAAALpjPz0AAAAAAIAa9mymJ9IDgN7t3z4XAAAAAICR6PSAa3mmBGAPV0sAAAAYnkgPALpgOQYAAAAAIEanBwAAAAAAcC2RHgAAAAAAAMDYdHoAAAAAAAAXEukBAAAAAAAADE+nB0TseawEgCu4AgMAAEBfRHoAAAAAAAAAM3hvPQAAAAAAAIAxifQAmM2fa9+Ei92yLBMeNQAAAADA5HR6AAAAAAAA5b2M9Dy+D8Awtle9x99a+AAAAAAAGNu/1gMAAAAAAAAYjUgPgHns2T/28WU7vxIAAAAAAHpkPz0AAAAAAICSkkd6fw5PNwhAzNH0blkWiw4AAAAAAEOynx4AAAAAAEAxySM9ACgotj+eXfUAAAAAABiSTg8AAAAAAKAMkR4A85DbAQAAAADAdzo9AAAAAACAAvqN9NIODIBRafwAAAAAABiPTg8AAAAAAOCsfiM9AAgQ2gEAAAAAwA86PQAAAAAAgFNEegBwlNIPAAAAAIDB6PQA/uChmT2cpfqc8z2cJQAAAKCyviI9UQQAAAAAAADAFXR6AAAAAAAAQX1FegBAHX4AAAAAAACY0HvrAQAAAAAAAHRpO9LzgD4AAAAAAADAPOynBwAAAAAAcNgwkV5HQwUgiZfbyQIAAAAAwIR0egAAAAAAAMcME+kBQMDYK50KEQAAAACAGJ0eAAAAAADAAf1GesIDAKgg8w8DAAAAAABcR6cHAAAAAACwV7+RHgAAAAAAAADX0ekBAAAAAADsItIDgFKsmwAAAAAADEanBwAAAAAA8JpIDwB4yY8EAAAAAADT0ukBAAAAAAC8MECkt30IAFBT2qXTcgkAAAAAQJhOD+Bvae8OMjkzEwAAAKC+ASK9Z7oePAAAAAAAAEAeOj0AIjy+Q05mJgAAAFDcRqS3rquPIwCY05kVcODVc+BDAwAAAADgJZ0eQGHbv1o7m75Gyxl9fa/7Gi0AAAAwsO1Ir+ZITvJ5CwAZJE/cLZcAAAAAAJyh0wMiMt8/AxibKzAAAABUI9IDgIL6Wj0Dhj9AAAAAAAC2vbceAAAAAAAAQDq9R3raPACutq7rnuWmi3XzvEkOEwAAAACADTo9AAAAAACAAyRwAPBSd92a9R0AAAAAgJP+tR4AQF7d3T5kEmbmkNz+BwAAgFQmeavugyYATrKUPDgPAAAAAAC86fSAq03yOMts3GskJzMTAAAAKMKnmgBwXl/r6ZnRuj0BAAAAAMCDTg8AAAAAAOA/fUUFANDcRqVmVQUAAAAAYCo6PQAAAAAAgLc3OQEAhPSe6tlMDwAAAACAInR6AAAAAAAAfYQEAJBTv6meSA8AAAAAgFJ0egBb3F37zTnJwHfhN+cEAOA6sWcWkz+ICQA/WLkA4Dpp11mRHgAAAAAABen0AAAAAHjqzDOLaR/EBIAf5lyz1AUAlLW9sgy22lpGAQAAAAD4TacHMK/BbogyDDMTACCP8z+b+ekOgPysVgBQystUL9WyGx6MSA8AAAAAgD/p9ICgee4/BY401S1GRmVmzmmeay8A0FzBpyezPYgJAN9ZpACgrJefYyd5kyjSAwAAAACguPfWAwD+c7/fz7/Ix8fH+ReBDW49kpOZCQBw3tVPSf54fT/CAZBBhkgAAMazruvLRXZZlkNvDAveSz3zA4A3swD0zuNJAFCEJRUAeEanBwAAADCOXnoDGxcA0FwviyYA9Ojx3m17tf3625pv9LwbBQAAAADgOv9aDwAYn+ddALa5TgIAAEBl3owDQAU727ZlWSoszbfbTaQHAAAAAMCl7KcH8Nq6rh7ceXMPMh8z88HMBAAAAACAnPZsrPdw3fZ6t9st/G/dgwAAAAAAYD+dHsAllmVJft9O3zUnMxMAAACAN9UBAHXtr/V+fNnJBetMoXf+fwcAAAAAYDY6PSBuqr28pjpYOmJmTsUDAQAAAAAA9OtQrffw44s/Pz9f/pOTbd6DD+QBAAAAAAjQ6QGwi/uR5GRmAgAAAABAR878CsIiDd429x0AAAAAAAjT6QEAAAAMLvCU4f1+P///fnx8nPnn9o4GAAAY0te71FTv+xR6AAAAAACcpNMD2Ovob/dcliXt/byjdz0zHMizMWcYW1tmJgAA3430M9JIxwJANtVWmQzpOwCklSHY894TAAAAAIBSdHpADZm7IPLbvjX7+FsTjH6l+m3BAAAAAABQX/1gz60lAAAAAACK0+kBHHB047IxtL1PufOET17rmZkAAAAAAMAAfnz4X/b2hzsLAAAAAABcSqcHnDJnHbRfzo0Ee/mWBcaZ84QnlPNE9TIzW0n4LQMAAAAAgEt9fTZ+v98ff7jdbnv+4efn51VjAgAAAACAJ3R6AMfMliZ2lwblLNAqMDMBAAAAAIDhCfAAAAAAAEjrX+sBAMAfziRnU+VqAAAAAAAAAAAAAABAczo9gMMObeSVrRk7NJ5WW5ZlO2m9MDN7lO0bAQAAAAAAAAAAAABAgE4POGtnMKNF6U7XKZT5NrCuZ2bYnEcNAAAAAAAAAAAAANALnR5ARKcbl+UZCRcxMwEAAAAAAAAAAAAAoD6dHkBQd0HUoTE03Lyr1LnKcM6bMDMBAAAAAAAAAAAAAKAynR4AP0mhyMnMBAAAAAAAAAAAAAAgJ50eUMC08UxHG5dl2DaNaszMXuw8/GmvsQAAAAAAAAAAAAAAvdDpAfUMGeR0EUQd+n9HKoKGnHI7mZkAAAAAAAAAAAAAAFCNTg/grC6CqJ2kUCMxMwEAAAAAAAAAAAAAoA6dHkABmSOi/f1VkqNIMowxZD6Z3c1MAAAAAAAAAAAAAAB4ZvHsO1DKnupm7GvOoR3J6pyKTlOognu7pTquVszMnHaehIHPwHWKXEOceQAAAAAAAAAAAABgP/vpAVUV7K8SOhR1XH0qlmWRQvFgZgIAAAAAAAAAAAAAwKV0egAlJQmiEu6fdkjBIY2dhu5nZgIAAAAAAAAAAAAAwHV0ekAxopqHo0FU2Sbq6Av6rs3DzOyR8wAAAAAAAAAAAAAA0IXF89+xtnr6AAAgAElEQVRAQTs7nEmuPEczp/OnZbAOqlQnlv9IKzMzM3C1vFSRq4eTDwAAAAAAAAAAAADs9956AADDWtf1UCvy+OJAGRIoUrroT46eQHYyMwEAAAAAAAAAAAAAoCz76QGF7SlzprrynCnNNk5U+GW7O/lHt2L7/fXdHXIdZmZbLpWXsp8eAAAAAAAAAAAAAFCZ/fQArvUoPWLRSNnd5DptTnaewE6PriEzsyEbRQIAAAAAAAAAAAAADEanBzSwLNNt5nmmiSo4gH59jf/7Oez9oDIwMwEAAAAAAAAAAAAA4DydHlDYuq62inrmz9iszv84jPGOKAMzMyGnCAAAAAAAAAAAAACgIzo9gAYqbGIm8iHAzKxAyQwAAAAAAAAAAAAAMB6dHlDeni31lmWR63w/A0XSHaeUIszM5pwxAAAAAAAAAAAAAIC+6PQAUvid5bzso5Q8VGBmAgAAAAAAAAAAAADASzo9gKTETuRkZp5RZH9CAAAAAAAAAAAAAACy+dd6AMCY9pQ8ehWA35SQAAAAAAAAAAAAAADd0ekBMI7f8afkCQAAAAAAAAAAAAAAuJpOD7iKLfUAvttzxVOWAgAAAAAAAAAAAAD0SKcHAAAAAAAAAAAAAAAAAHE6PeBCNoYC2M81EwAAAAAAAAAAAACgUzo9oLFlWVoPAeByrnUAAAAAAAAAAAAAAAPT6QHXsj0U1fzuoEw/OmK6AgAAAAAAAAAAAAD0S6cHtGebKWBsrnIAAAAAAAAAAAAAAGPT6QGXs0kUwDbXSQAAAAAAAAAAAACArun0gBRsNgWMyvUNAAAAAAAAAAAAAGB4Oj2gBltFcbXfKZRZRy/MVQAAAAAAAAAAAACA3un0gCxsOQWMx5UNAAAAAAAAAAAAAGAGOj2gEhtGAfzm2ggAAAAAAAAAAAAAMACdHgDds2UZOZmZAAAAAAAAAAAAAACT0OkB9bzcNkrTQin2KKMLJioAAAAAAAAAAAAAwBh0ekAuUj2OMmfIycwEAAAAAAAAAAAAAJiHTg+oyuZRVGCa0QUTFQAAAAAAAAAAAABgGDo9IB2bULGf2UJOL2emSA8AAAAAAAAAAAAAYCQ6PaA2dQoAAAAAAAAAAAAAAAAj0ekBDbxM9WySxh5/zhMhKM3ZTA8AAAAAAAAAAAAAYDY6PQCAekR6AAAAAAAAAAAAAADj0ekBbdhSj5NspkdOrl0AAAAAAAAAAAAAABPS6QHNSPWAwby8aklJAQAAAAAAAAAAAACGpNMDoD8206NHpigAAAAAAAAAAAAAwKh0ekBLttQjQKRHTq5XAAAAAAAAAAAAAADT0ukBjUn1OMR8IKeXM1NKCgAAAAAAAAAAAAAwMJ0e0J58hZNMIZIzRQEAAAAAAAAAAAAAxqbTAzpgCzUezARy2p6ZIj0AAAAAAAAAAAAAgOHp9IAUXnYsAi2ezQERFG25OgEAAAAAAAAAAAAAoNMDslBbsUGkR6dMUQAAAAAAAAAAAACAGej0gES2gxabVk1LpEda29clUxQAAAAAAAAAAAAAYBI6PSAXqR4/+KaTlkgPAAAAAAAAAAAAAIAHnR7QGdXWVDa+3SIo2hLpAQAAAAAAAAAAAADwRacHpPOyb5HqTUKkR6fMTwAAAAAAAAAAAACA2ej0gIxULmwwPWhOLQwAAAAAAAAAAAAAwHc6PSCp7RZLJDMtkR7NbV9/TFEAAAAAAAAAAAAAgAnp9IC8pHqT+z0BFFA0J9IDAAAAAAAAAAAAAOA3nR6QmlRvcl8TYF1XBRTNifQAAAAAAAAAAAAAAPiTTg/ITqo3OYUeSYj0AAAAAAAAAAAAAAB4RqcHdECqB7Ql0gMAAAAAAAAAAAAAYMN76wEA/7nf7+df5OPj4/yL5LSu60YnsyyLTga4iEgPAJiTd6kAUIQlFQCKsKQCQBGWVAAowpIKADxjPz2gG3bVA+oT6QEAAAAAAAAAAAAA8JJOD+iJVA+oSaQHAAAAAAAAAAAAAMAeOj2gM1I9oA6RHgAAAAAAAAAAAAAAO+n0gP5I9YCrifQAAAAAAAAAAAAAANhPpwd0aV3XjU5GqgecsXEN2b74AAAAAAAAAAAAAAAwJ50e0DG1DFCTaw4AAAAAAAAAAAAAAH/S6QF9e5bN2FIPKEukBwAAAAAAAAAAAADAMzo9oHt/xjOKGqAglxQAAAAAAAAAAAAAADbo9IARrOv6vaJR1ABn/LieuKQAAAAAAAAAAAAAALDtvfUAAIrR0gCluJ4AAAAAAAAAAAAAALCf/fQAAAAAAAAAAAAAAAAAIE6nBwAAAAAAAAAAAAAAAABxOj0AAAAAAAAAAAAAAAAAiNPpAQAAAAAAAAAAAAAAAECcTg8AAAAAAAAAAAAAAAAA4nR6AAAAAAAAAAAAAAAAABCn0wMAAAAAAAAAAAAAAACAOJ0eAAAAAAAAAAAAAAAAAMTp9AAAAAAAAAAAAAAAAAAgTqcHAAAAAAAAAAAAAAAAAHE6PQAAAAAAAAAAAAAAAACI0+kBAAAAAAAAAAAAAAAAQNyyrmvrMQAAQDHLspx/ET8kAwAAAAAAAAAAAAD72U8PAAAAAAAAAAAAAAAAAOJ0egAAAAAAAAAAAAAAAAAQp9MDAAAAAAAAAAAAAAAAgDidHgAAAAAAAAAAAAAAAADE6fQAAAAAAAAAAAAAAAAAIE6nBwAAAAAAAAAAAAAAAABxOj0AAAAAAAAAAAAAAAAAiNPpAQAAAAAAAAAAAAAAAECcTg8AAAAAAAAAAAAAAAAA4nR6AAAAAAAAAAAAAAAAABCn0wMAAAAAAAAAAAAAAACAOJ0eAAAAAAAAAAAAAAAAAMTp9AAAAAAAAAAAAAAAAAAgTqcHAAAAAAAAAAAAAAAAAHE6PQAAAAAAAAAAAAAAAACI0+kBAAAAAAAAAAAAAAAAQJxODwAAAAAAAAAAAAAAAADidHoAAAAAAAAAAAAAAAAAEKfTAwAAAAAAAAAAAAAAAIA4nR4AAAAAAAAAAAAAAAAAxOn0AAAAAAAAAAAAAAAAACBOpwcAAAAAAAAAAAAAAAAAcTo9AAAAAAAAAAAAAAAAAIjT6QEAAAAAAAAAAAAAAABAnE4PAAAAAAAAAAAAAAAAAOJ0egAAAAAAAAAAAAAAAAAQp9MDAAAAAAAAAAAAAAAAgDidHgAAAAAAAAAAAAAAAADE6fQAAAAAAAAAAAAAAAAAIE6nBwAAAAAAAAAAAAAAAABxOj0AAAAAAAAAAAAAAAAAiNPpAQAAAAAAAAAAAAAAAECcTg8AAAAAAAAAAAAAAAAA4nR6AAAAAAAAAAAAAAAAABCn0wMAAAAAAAAAAAAAAACAOJ0eAAAAAAAAAAAAAAAAAMTp9AAAAAAAAAAAAAAAAAAgTqcHAAAAAAAAAAAAAAAAAHE6PQAAAAAAAAAAAAAAAACI0+kBAAAAAAAAAAAAAAAAQJxODwAAAAAAAAAAAAAAAADidHoAAAAAAAAAAAAAAAAAEKfTAwAAAAAAAAAAAAAAAIA4nR4AAAAAAAAAAAAAAAAAxOn0AAAAAAAAAAAAAAAAACBOpwcAAAAAAAAAAAAAAAAAcTo9AAAAAAAAAAAAAAAAAIjT6QEAAAAAAAAAAAAAAABAnE4PAAAAAAAAAAAAAAAAAOJ0egAAAAAAAAAAAAAAAAAQp9MDAAAAAAAAAAAAAAAAgDidHgAAAAAAAAAAAAAAAADE6fQAAAAAAAAAAAAAAAAAIE6nBwAAAAAAAAAAAAAAAABx760HAPznfr+ff5GPj4/zLwIAAADepQJAEZZUACjCkgoARVhSAaAISyoA8Iz99AAAAAAAAAAAAAAAAAAgTqcHAAAAAAAAAAAAAAAAAHE6PQAAAAAAAAAAAAAAAACI0+kBAAAAAAAAAAAAAAAAQJxODwAAAAAAAAAAAAAAAADidHoAAAAAAAAAAAAAAAAAEKfTAwAAAAAAAAAAAAAAAIA4nR4AAAAAAAAAAAAAAAAAxOn0AAAAAAAAAAAAAAAAACBOpwcAAAAAAAAAAAAAAAAAcTo9AAAAAAAAAAAAAAAAAIjT6QEAAAAAAAAAAAAAAABAnE4PAAAAAAAAAAAAAAAAAOJ0egAAAAAAAAAAAAAAAAAQp9MDAAAAAAAAAAAAAAAAgDidHgAAAAAAAAAAAAAAAADE6fQAAAAAAAAAAAAAAAAAIE6nBwAAAAAAAAAAAAAAAABxOj0AAAAAAAAAAAAAAAAAiNPpAQAAAAAAAAAAAAAAAECcTg8AAAAAAAAAAAAAAAAA4nR6AAAAAAAAAAAAAAAAABC3rOvaegwAAFDMsiznX8QPyQAAAAAAAAAAAADAfvbTAwAAAAAAAAAAAAAAAIA4nR4AAAAAAAAAAAAAAAAAxOn0AAAAAAAAAAAAAAAAACBOpwcAAAAAAAAAAAAAAAAAcTo9AAAAAAAAAAAAAAAAAIjT6QEAAAAAAAAAAAAAAABAnE4PAAAAAAAAAAAAAAAAAOJ0egAAAAAAAAAAAAAAAAAQp9MDAAAAAAAAAAAAAAAAgDidHgAAAAAAAAAAAAAAAADE6fQAAAAAAAAAAAAAAAAAIE6nBwAAAAAAAAAAAAAAAABxOj0AAAAAAAAAAAAAAAAAiNPpAQAAAAAAAAAAAAAAAECcTg8AAAAAAAAAAAAAAAAA4nR6AAAAAAAAAAAAAAAAABCn0wMAAAAAAAAAAAAAAACAOJ0eAAAAAAAAAAAAAAAAAMTp9AAAAAAAAAAAAAAAAAAgTqcHAAAAAAAAAAAAAAAAAHE6PQAAAAAAAAAAAAAAAACI0+kBAAAAAAAAAAAAAAAAQJxODwAAAAAAAAAAAAAAAADidHoAAAAAAAAAAAAAAAAAEKfTAwAAAAAAAAAAAAAAAIA4nR4AAAAAAAAAAAAAAAAAxOn0AAAAAAAAAAAAAAAAACBOpwcAAAAAAAAAAAAAAAAAcTo9AAAAAAAAAAAAAAAAAIjT6QEAAAAAAAAAAAAAAABAnE4PAAAAAAAAAAAAAAAAAOJ0egAAAAAAAAAAAAAAAAAQp9MDAAAAAAAAAAAAAAAAgDidHvyPvTvGbR2GAiAYAb6U7l/wWPrFd+tEWRERE8/UBsEHF88uFgQAAAAAAAAAAAAAAADodHoAAAAAAAAAAAAAAAAA0On0AAAAAAAAAAAAAAAAAKDT6QEAAAAAAAAAAAAAAABAp9MDAAAAAAAAAAAAAAAAgE6nBwAAAAAAAAAAAAAAAACdTg8AAAAAAAAAAAAAAAAAOp0eAAAAAAAAAAAAAAAAAHQ6PQAAAAAAAAAAAAAAAADodHoAAAAAAAAAAAAAAAAA0On0AAAAAAAAAAAAAAAAAKDT6QEAAAAAAAAAAAAAAABAp9MDAAAAAAAAAAAAAAAAgE6nBwAAAAAAAAAAAAAAAACdTg8AAAAAAAAAAAAAAAAAOp0eAAAAAAAAAAAAAAAAAHQ6PQAAAAAAAAAAAAAAAADodHoAAAAAAAAAAAAAAAAA0On0AAAAAAAAAAAAAAAAAKDT6QEAAAAAAAAAAAAAAABA97j7AsDTGOP6Ifu+Xz8EAAAA/EsFgCmsVACYwkoFgCmsVACYwkoFAF7xnh4AAAAAAAAAAAAAAAAAdDo9AAAAAAAAAAAAAAAAAOh0egAAAAAAAAAAAAAAAADQ6fQAAAAAAAAAAAAAAAAAoNPpAQAAAAAAAAAAAAAAAECn0wMAAAAAAAAAAAAAAACATqcHAAAAAAAAAAAAAAAAAJ1ODwAAAAAAAAAAAAAAAAA6nR4AAAAAAAAAAAAAAAAAdDo9AAAAAAAAAAAAAAAAAOh0egAAAAAAAAAAAAAAAADQ6fQAAAAAAAAAAAAAAAAAoNPpAQAAAAAAAAAAAAAAAECn0wMAAAAAAAAAAAAAAACATqcHAAAAAAAAAAAAAAAAAJ1ODwAAAAAAAAAAAAAAAAA6nR4AAAAAAAAAAAAAAAAAdDo9AAAAAAAAAAAAAAAAAOh0egAAAAAAAAAAAAAAAADQ6fQAAAAAAAAAAAAAAAAAoNPpAQAAAAAAAAAAAAAAAECn0wMAAAAAAAAAAAAAAACAbjuO4+47AADANNu2XT/Ej2QAAAAAAAAAAAAA4Dzv6QEAAAAAAAAAAAAAAABAp9MDAAAAAAAAAAAAAAAAgE6nBwAAAAAAAAAAAAAAAACdTg8AAAAAAAAAAAAAAAAAOp0eAAAAAAAAAAAAAAAAAHQ6PQAAAAAAAAAAAAAAAADodHoAAAAAAAAAAAAAAAAA0On0AAAAAAAAAAAAAAAAAKDT6QEAAAAAAAAAAAAAAABAp9MDAAAAAAAAAAAAAAAAgE6nBwAAAAAAAAAAAAAAAACdTg8AAAAAAAAAAAAAAAAAOp0eAAAAAAAAAAAAAAAAAHQ6PQAAAAAAAAAAAAAAAADodHoAAAAAAAAAAAAAAAAA0On0AAAAAAAAAAAAAAAAAKDT6QEAAAAAAAAAAAAAAABAp9MDAAAAAAAAAAAAAAAAgE6nBwAAAAAAAAAAAAAAAACdTg8AAAAAAAAAAAAAAAAAOp0eAAAAAAAAAAAAAAAAAHQ6PQAAAAAAAAAAAAAAAADodHoAAAAAAAAAAAAAAAAA0On0AAAAAAAAAAAAAAAAAKDT6QEAAAAAAAAAAAAAAABAp9MDAAAAAAAAAAAAAAAAgE6nBwAAAAAAAAAAAAAAAACdTg8AAAAAAAAAAAAAAAAAOp0eAAAAAAAAAAAAAAAAAHQ6PQAAAAAAAAAAAAAAAADodHoAAAAAAAAAAAAAAAAA0On0AAAAAAAAAAAAAAAAAKDT6QEAAAAAAAAAAAAAAABAp9MDAAAAAAAAAAAAAAAAgE6nBwAAAAAAAAAAAAAAAACdTg8AAAAAAAAAAAAAAAAAOp0eAAAAAAAAAAAAAAAAAHQ6PQAAAAAAAAAAAAAAAADodHoAAAAAAAAAAAAAAAAA0On0AAAAAAAAAAAAAAAAAKDT6QEAAAAAAAAAAAAAAABAp9MDAAAAAAAAAAAAAAAAgE6nBwAAAAAAAAAAAAAAAACdTg8AAAAAAAAAAAAAAAAAOp0eAAAAAAAAAAAAAAAAAHQ6PQAAAAAAAAAAAAAAAADodHoAAAAAAAAAAAAAAAAA0On0AAAAAAAAAAAAAAAAAKDT6QEAAAAAAAAAAAAAAABAp9MDAAAAAAAAAAAAAAAAgE6nBwAAAAAAAAAAAAAAAACdTg8AAAAAAAAAAAAAAAAAOp0eAAAAAAAAAAAAAAAAAHSPuy8API0xrh+y7/v1QwAAAMC/VACYwkoFgCmsVACYwkoFgCmsVADgFe/pAQAAAAAAAAAAAAAAAECn0wMAAAAAAAAAAAAAAACATqcHAAAAAAAAAAAAAAAAAJ1ODwAAAAAAAAAAAAAAAAA6nR4AAAAAAAAAAAAAAAAAdDo9AAAAAAAAAAAAAAAAAOh0egAAAAAAAAAAAAAAAADQ6fQAAAAAAAAAAAAAAAAAoNPpAQAAAAAAAAAAAAAAAECn0wMAAAAAAAAAAAAAAACATqcHAAAAAAAAAAAAAAAAAJ1ODwAAAAAAAAAAAAAAAAA6nR4AAAAAAAAAAAAAAAAAdDo9AAAAAAAAAAAAAAAAAOh0egAAAAAAAAAAAAAAAADQ6fQAAAAAAAAAAAAAAAAAoNPpAQAAAAAAAAAAAAAAAECn0wMAAAAAAAAAAAAAAACATqcHAAAAAAAAAAAAAAAAAJ1ODwAAAAAAAAAAAAAAAAA6nR4AAAAAAAAAAAAAAAAAdDo9AAAAAAAAAAAAAAAAAOi24zjuvgMAAEyzbdv1Q/xIBgAAAAAAAAAAAADO854eAAAAAAAAAAAAAAAAAHQ6PQAAAAAAAAAAAAAAAADodHoAAAAAAAAAAAAAAAAA0On0AAAAAAAAAAAAAAAAAKDT6QEAAAAAAAAAAAAAAABAp9MDAAAAAAAAAAAAAAAAgE6nBwAAAAAAAAAAAAAAAACdTg8AAAAAAAAAAAAAAAAAOp0eAAAAAAAAAAAAAAAAAHQ6PQAAAAAAAAAAAAAAAADodHoAAAAAAAAAAAAAAAAA0On0AAAAAAAAAAAAAAAAAKDT6QEAAAAAAAAAAAAAAABAp9MDAAAAAAAAAAAAAAAAgE6nBwAAAAAAAAAAAAAAAACdTg8AAAAAAAAAAAAAAAAAOp0eAAAAAAAAAAAAAAAAAHQ6PQAAAAAAAAAAAAAAAADodHoAAAAAAAAAAAAAAAAA0On0AAAAAAAAAAAAAAAAAKDT6QEAAAAAAAAAAAAAAABAp9MDAAAAAAAAAAAAAAAAgE6nBwAAAAAAAAAAAAAAAACdTg8AAAAAAAAAAAAAAAAAOp0eAAAAAAAAAAAAAAAAAHQ6PQAAAAAAAAAAAAAAAADodHoAAAAAAAAAAAAAAAAA0On0AAAAAAAAAAAAAAAAAKDT6QEAAAAAAAAAAAAAAABAp9MDAAAAAAAAAAAAAAAAgE6nBwAAAAAAAAAAAAAAAACdTg8AAAAAAAAAAAAAAAAAOp0eAAAAAAAAAAAAAAAAAHQ6PQAAAAAAAAAAAAAAAADodHoAAAAAAAAAAAAAAAAA0On0AAAAAAAAAAAAAAAAAKDT6QEAAAAAAAAAAAAAAABAp9MDAAAAAAAAAAAAAAAAgE6nBwAAAAAAAAAAAAAAAACdTg8AAAAAAAAAAAAAAAAAOp0eAAAAAAAAAAAAAAAAAHQ6PQAAAAAAAAAAAAAAAADodHoAAAAAAAAAAAAAAAAA0On0AAAAAAAAAAAAAAAAAKDT6QEAAAAAAAAAAAAAAABAp9MDAAAAAAAAAAAAAAAAgE6nBwAAAAAAAAAAAAAAAACdTg8AAAAAAAAAAAAAAAAAOp0eAAAAAAAAAAAAAAAAAHQ6PQAAAAAAAAAAAAAAAADodHoAAAAAAAAAAAAAAAAA0On0AAAAAAAAAAAAAAAAAKDT6QEAAAAAAAAAAAAAAABA97j7AsDTGOP6Ifu+Xz8EAAAA/EsFgCmsVACYwkoFgCmsVACYwkoFAF7xnh4AAAAAAAAAAAAAAAAAdDo9AAAAAAAAAAAAAAAAAOh0egAAAAAAAAAAAAAAAADQ6fQAAAAAAAAAAAAAAAAAoNPpAQAAAAAAAAAAAAAAAECn0wMAAAAAAAAAAAAAAACATqcHAAAAAAAAAAAAAAAAAJ1ODwAAAAAAAAAAAAAAAAA6nR4AAAAAAAAAAAAAAAAAdDo9AAAAAAAAAAAAAAAAAOged18AmGmM8fkH9n3/mZtkX45whjEXYczzjLkIY563/pgXjTHWn/FNvkpjnmfMRRjzPGMuYsqYi/NVnmfMRRjzPGMuwph/hq/yPGMuwpjnGXMRxjxv8THfYcYPY36HMRdhzPOMuYh3GPMdZvww5ncYcxHGPM+Yi3iTMQGAP8B7egAAAAAAAAAAAAAAAADQ6fQAAAAAAAAAAAAAAAAAoNPpAQAAAAAAAAAAAAAAAECn0wMAAAAAAAAAAAAAAACATqcHAAAAAAAAAAAAAAAAAJ1ODwAAAAAAAAAAAAAAAAA6nR4AAAAAAAAAAAAAAAAAdDo9AAAAAAAAAAAAAAAAAOh0egAAAAAAAAAAAAAAAADQ6fQAAAAAAAAAAAAAAAAAoNPpAQAAAAAAAAAAAAAAAED3uPsCwNO+759/YIzxMzcBgF/tOI4PexMAftaXf2kBgP8sTQBo7FAAmMJKBYAprFQA4BXv6QEAAAAAAAAAAAAAAABAp9MDAAAAAAAAAAAAAAAAgE6nBwAAAAAAAAAAAAAAAACdTg8AAAAAAAAAAAAAAAAAOp0eAAAAAAAAAAAAAAAAAHQ6PQAAAAAAAAAAAAAAAADodHoAAAAAAAAAAAAAAAAA0On0AAAAAAAAAAAAAAAAAKDT6QEAAAAAAAAAAAAAAABAp9MDAAAAAAAAAAAAAAAAgG47juPuOwAAAAAAAAAAAAAAAADAb+U9PQAAAAAAAAAAAAAAAADodHoAAAAAAAAAAAAAAAAA0On0AAAAAAAAAAAAAAAAAKDT6QEAAAAAAAAAAAAAAABAp9MDAAAAAAAAAAAAAAAAgE6nBwAAAAAAAAAAAAAAAACdTg8AAAAAAAAAAAAAAAAAOp0eAAAAAAAAAAAAAAAAAHQ6PQAAAAAAAAAAAAAAAADodHoAAAAAAAAAAAAAAAAA0On0AAAAAAAAAAAAAAAAAKDT6QEAAAAAAAAAAAAAAABAp9MDAAAAAAAAAAAAAAAAgE6nBwAAAAAAAAAAAAAAAACdTg8AAAAAAAAAAAAAAAAAOp0eAAAAAAAAAAAAAAAAAHQ6PQAAAAAAAAAAAAAAAADodHoAAAAAAAAAAAAAAAAA0On0AAAAAAAAAAAAAAAAAKDT6QEAAAAAAAAAAAAAAABAp9MDAAAAAAAAAAAAAAAAgE6nBwAAAAAAAAAAAAAAAACdTg8AAAAAAAAAAAAAAAAAOp0eAAAAAAAAAAAAAAAAAHQ6PQAAAAAAAAAAAAAAAADodHoAAAAAAAAAAAAAAAAA0On0AAAAAAAAAAAAAAAAAKDT6QEAAAAAAAAAAAAAAABAp9MDAAAAAAAAAAAAAAAAgE6nBwAAAAAAAAAAAAAAAACdTg8AAAAAAAAAAAAAAAAAOp0eAAAAAAAAAAAAAAAAAHQ6PQAAAAAAAAAAAAAAAADodHoAAAAAAAAAAAAAAAAA0On0AAAAAAAAAAAAAAAAAKDT6QEAAAAAAAAAAAAAAABAp9MDAAAAAAAAAAAAAAAAgE6nBwAAAAAAAAAAAAAAAACdTg8AAAAAAAAAAAAAAAAAOp0eAAAAAAAAAAAAAAAAAHQ6PQAAAAAAAAAAAAAAAADodHoAAAAAAAAAAAAAAAAA0On0AAAAAAAAAAAAAAAAAKDT6QEAAAAAAAAAAAAAAABAp9MDAAAAAAAAAAAAAAAAgE6nBwAAAAAAAAAAAAAAAACdTg8AAAAAAAAAAAAAAKBD41sAABGaSURBVAAAOp0eAAAAAAAAAAAAAAAAAHQ6PQAAAAAAAAAAAAAAAADodHoAAAAAAAAAAAAAAAAA0On0AAAAAAAAAAAAAAAAAKDT6QEAAAAAAAAAAAAAAABAp9MDAAAAAAAAAAAAAAAAgE6nBwAAAAAAAAAAAAAAAACdTg8AAAAAAAAAAAAAAAAAOp0eAAAAAAAAAAAAAAAAAHQ6PQAAAAAAAAAAAAAAAADodHoAAAAAAAAAAAAAAAAA0On0AAAAAAAAAAAAAAAAAKDT6QEAAAAAAAAAAAAAAABAp9MDAAAAAAAAAAAAAAAAgE6nBwAAAAAAAAAAAAAAAACdTg8AAAAAAAAAAAAAAAAAOp0eAAAAAAAAAAAAAAAAAHQ6PQAAAAAAAAAAAAAAAADodHoAAAAAAAAAAAAAAAAA0On0AAAAAAAAAAAAAAAAAKDT6QEAAAAAAAAAAAAAAABAp9MDAAAAAAAAAAAAAAAAgE6nBwAAAAAAAAAAAAAAAACdTg8AAAAAAAAAAAAAAAAAOp0eAAAAAAAAAAAAAAAAAHQ6PQAAAAAAAAAAAAAAAADodHoAAAAAAAAAAAAAAAAA0On0AAAAAAAAAAAAAAAAAKDT6QEAAAAAAAAAAAAAAABAp9MDAAAAAAAAAAAAAAAAgE6nBwAAAAAAAAAAAAAAAACdTg8AAAAAAAAAAAAAAAAAOp0eAAAAAAAAAAAAAAAAAHQ6PQAAAAAAAAAAAAAAAADodHoAAAAAAAAA/9q7g9sKYSiKgkRKU/S/oCzSgjlfMU48U4DFXbzlEQAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA6HR6AAAAAAAAAAAAAAAAANDp9AAAAAAAAAAAAAAAAACg0+kBAAAAAAAAAAAAAAAAQKfTAwAAAAAAAAAAAAAAAIBOpwcAAAAAAAAAAAAAAAAAnU4PAAAAAAAAAAAAAAAAADqdHgAAAAAAAAAAAAAAAAB0Oj0AAAAAAAAAAAAAAAAA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" - } - }, - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "cefa89be-ef41-40d9-9458-d6faed3c6c91", - "showInput": false - }, - "source": [ - "### Evaluating the Quality of a Pareto Front (Hypervolume)\n", - "\n", - "Given a reference point $ r \\in \\mathbb R^M$, which we represent as a list of M `ObjectiveThreshold`s, one for each coordinate, the hypervolume (HV) of a Pareto set $\\mathcal P = \\{ f(x_i)\\}_{i=1}^{|\\mathcal P|}$ is the volume of the space dominated (superior in every one of our M objectives) by $\\mathcal P$ and bounded from above by a point $ r$. The reference point should be set to be slightly worse (10% is reasonable) than the worst value of each objective that a decision maker would tolerate. In the figure below, the grey area is the hypervolume in this 2-objective problem.\n", - "![hv_figure](attachment:hv_figure%20%281%29.png)" - ] - }, - { - "attachments": { - "objective_thresholds_comparison.png": { - "image/png": "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Hgw1OCBqOHupVwQIECBAgACByRUQ2J/csbfkBAgQIECAAAECJySQO02zXb16Nc6fP19lQsqIOqHB8LYECBAgQIAAAQIECBAgQIAAAQIERkBAYH8EBkkXCRAgQIAAAQIExk9ARtT4jaklIkCAAAECBAgQIECAAAECBAgQIHBUAk6MdFSy5kuAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBA5BQGD/EBDNggABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIHJWAwP5RyZovAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBA4BAGB/UNANAsCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIHBUAgL7RyVrvgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBA4BAEBPYPAdEsCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIDAUQkI7B+VrPkSIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIFDEBDYPwREsyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAkclILB/VLLmS4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEDkGgeQjzMAsCBAgQIECAAAECBAgMtUCntxedXie2u9vlei/6/X7USo9rtXpMNdrlMhXteivq5b5GgAABAgQIECBAgAABAgQIECBAYNgEBPaHbUT0hwABAgQIECBAgACBQxfIgP7q7lrc33oQT3aexF4J7mcQv1lvxtnZM3Fm6nQstReiXYL8GgECBAgQIECAAAECBAgQIECAAIFhExDYH7YR0R8CBAgQIEDgyAT60Y9erxe7ve7TbN1aLVr1RgnsNY7sPc2YAIGTFeiW7/tubzcebj+KO5v3YqOzWbL2d6LX71UZ+1WG/mZEp9sp2fu1WIz5aDVa5bnM59cIECBAgAABAgQIECBAgAABAgQIDIeAwP5wjINeECBAgAABAscgkKW3t0vw7uFWZut2o1EC+svTc7HQmqkCesfQBW9BgMAxC3T6e7G+uxEPth/G3RLYzwN8+vv70O/Go53V2CnB/tnmTCnH36yy+DPIrxEgQIAAAQIECBAgQIAAAQIECBAYFgGB/WEZCf0gQIAAAQIEjkxgc28n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IECAAAECBAgQIECAAAECBAgQIECAwCQJCOxP0mhbVgIERkig5OLXmpHZ+1PlEqUwf5bcf1p0X+n9ERpIXSVAgAABAgQIECBAgAABAgQIECBAgAABAgQIvLWAwP5bE5oBAQIEjlJAMP8odc2bAAECBAgQIECAAAECBAgQIECAAAECBAgQIDAKAk7OPAqjpI8ECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgMLECAvsTO/QWnAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRGQUBgfxRGSR8JECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAYGIFBPYndugtOAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAiMgoDA/iiMkj4SIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAwMQKCOxP7NBbcAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAYBQGB/VEYJX0kQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgYkVENif2KG34AQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECAwCgIC+6MwSvpIgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAhMrILA/sUNvwQkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEBgFAQE9kdhlPSRAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBCZWQGB/YofeghMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIDAKAgI7I/CKOkjAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECEysgMD+xA69BSdAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBURAQ2B+FUdJHAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEJhYAYH9iR16C06AAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECoyDQHIVOHkcf+/1+9Hq9ePLkSXz55Zfx6NGjWF9fj+np6VhYWIhr167FqVOnYmpqKmq12nF0yXsQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIEQ2N/3Idjd3Y27d+/Gr3/96/jqq69idXU1ZmZm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gACBIRYQ2B/iwdE1AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECAgsO8zQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEhlhAYH+IB0fXCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQICAwL7PAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQGGIBgf0hHhxdI0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECAvs+AwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAYIgFBPaHeHB0jQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQINBEQIECAAAECBCZFoNftRWd3LzaebEav2496ox4z89MxPdOOWq32HcPjra14tLkZq5tbsbm7G/1+P9rNZsy0W3F+YTFOz81GvUy//zXfvdgNAgQIECBAgAABAgQIECBAgAABAgQIECBwyAIC+4cManYECBAgQIDA8AlkYL7X68fudifWVzfi9o37sdfpRrME6lcunYrGykI0SuC+Vq9VQfz76+vxyZ07cf3e/bj3ZL167fz0VJxdmI+/uno15srrplqtaOw7GGD4llqPCBAgQIAAAQIECBAgQIAAAQIECBAgQGBcBAT2x2UkLQcBAgQIECDwUoHVB0/i7s2H8fnHN+KbL+7G43K/W7L3G41GLJ9diPNXTseP/837MX1mLu5ub8Snd+/Gp7fvxJOdndje7US/zHlzd6dk8G/GbmevCvb//OqVOLe48NL39AQBAgQIECBAgAABAgQIECBAgAABAgQIEDgsAYH9w5I0HwIECBAgQGDoBDJTv/wX9289io//vz/G7359PW58fjt2NneqLPx6rZTiX5iOc5dOR7NVSu1fW4qvehtx/cGD+OL+/arUfim4Xy3XZjWvfmyVQP/Gzm5cPrUcS7Mz0S4HByjJP3RDr0MECBAgQIAAAQIECBAgQIAAAQIECBAYKwGB/bEaTgtDgAABAgQI7BfI8vud3b24cf1O/OYffh9rj9ajW0rw1+v1cnk6ZWenEw/urMa//OqTaN5ciMdX2rHW3Y0M+u9vg+D91u5uPNxYjztra3Fmfi7Ozs9HU0n+/VRuEyBAgAABAgQIECBAgAABAgQIECBAgMAhCwjsHzKo2REg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" - } - }, - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "1819970e-9b48-4b57-b280-35bf2c4919d2", - "showInput": false - }, - "source": [ - "### Set Objective Thresholds to focus candidate generation in a region of interest\n", - "\n", - "The below plots show three different sets of points generated by the qNEHVI [1] algorithm with different objective thresholds (aka reference points). Note that here we use absolute thresholds, but thresholds can also be relative to a status_quo arm.\n", - "\n", - "The first plot shows the points without the `ObjectiveThreshold`s visible (they're set far below the origin of the graph).\n", - "\n", - "The second shows the points generated with (-18, -6) as thresholds. The regions violating the thresholds are greyed out. Only the white region in the upper right exceeds both threshold, points in this region dominate the intersection of these thresholds (this intersection is the reference point). Only points in this region contribute to the hypervolume objective. A few exploration points are not in the valid region, but almost all the rest of the points are.\n", - "\n", - "The third shows points generated with a very strict pair of thresholds, (-18, -2). Only the white region in the upper right exceeds both thresholds. Many points do not lie in the dominating region, but there are still more focused there than in the second examples.\n", - "![objective_thresholds_comparison.png](attachment:objective_thresholds_comparison.png)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "f2f39a8f-279f-49a1-b645-d51caed24d9c" - }, - "source": [ - "### Further Information\n", - "A deeper explanation of our the qNEHVI [1] and qNParEGO [2] algorithms this notebook explores can be found at \n", - "\n", - "[1] [S. Daulton, M. Balandat, and E. Bakshy. Parallel Bayesian Optimization of Multiple Noisy Objectives with Expected Hypervolume Improvement. Advances in Neural Information Processing Systems 34, 2021.](https://arxiv.org/abs/2105.08195)\n", - "\n", - "[2] [S. Daulton, M. Balandat, and E. Bakshy. Differentiable Expected Hypervolume Improvement for Parallel Multi-Objective Bayesian Optimization. Advances in Neural Information Processing Systems 33, 2020.](https://arxiv.org/abs/2006.05078)\n", - "\n", - "In addition, the underlying BoTorch implementation has a researcher-oriented tutorial at https://botorch.org/tutorials/multi_objective_bo." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "0ac396dd-8040-4f87-8abe-472127734aef" - }, - "source": [ - "## Setup" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "executionStartTime": 1628191302514, - "executionStopTime": 1628191302546, - "hidden_ranges": [], - "originalKey": "500597fc-a996-48f4-a8fe-defd429162b8", - "requestMsgId": "07dd11c9-cd20-4bfa-b2d9-9a7bf70b2e44" - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "import pandas as pd\n", - "from ax.core.data import Data\n", - "from ax.core.experiment import Experiment\n", - "from ax.core.metric import Metric\n", - "from ax.core.objective import MultiObjective, Objective\n", - "from ax.core.optimization_config import (\n", - " MultiObjectiveOptimizationConfig,\n", - " ObjectiveThreshold,\n", - ")\n", - "\n", - "from ax.core.parameter import ParameterType, RangeParameter\n", - "from ax.core.search_space import SearchSpace\n", - "from ax.metrics.noisy_function import NoisyFunctionMetric\n", - "\n", - "# Analysis utilities, including a method to evaluate hypervolumes\n", - "from ax.modelbridge.modelbridge_utils import observed_hypervolume\n", - "from ax.modelbridge.registry import Generators\n", - "from ax.runners.synthetic import SyntheticRunner\n", - "from ax.service.utils.report_utils import exp_to_df\n", - "\n", - "# BoTorch acquisition class for ParEGO\n", - "from botorch.acquisition.multi_objective.parego import qLogNParEGO" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "0b43c263-41da-4aa8-99f3-4a2a7fc49e4b" - }, - "source": [ - "## Define experiment configurations" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "963a036d-a250-4e3c-9570-afe6f2192f9a" - }, - "source": [ - "### Search Space" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "executionStartTime": 1628191313915, - "executionStopTime": 1628191313944, - "hidden_ranges": [], - "originalKey": "90637eb4-730f-4f3d-8712-875bf88d6c2d", - "requestMsgId": "fbb9db8e-5414-4add-ad10-0bd00583ebf5" - }, - "outputs": [], - "source": [ - "x1 = RangeParameter(name=\"x1\", lower=0, upper=1, parameter_type=ParameterType.FLOAT)\n", - "x2 = RangeParameter(name=\"x2\", lower=0, upper=1, parameter_type=ParameterType.FLOAT)\n", - "\n", - "search_space = SearchSpace(parameters=[x1, x2])" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "ac3cf1fe-d39d-48bb-a31d-e3ee0d70418b", - "showInput": false - }, - "source": [ - "### MultiObjectiveOptimizationConfig\n", - "\n", - "To optimize multiple objective we must create a `MultiObjective` containing the metrics we'll optimize and `MultiObjectiveOptimizationConfig` (which contains `ObjectiveThreshold`s) instead of our more typical `Objective` and `OptimizationConfig`\n", - "\n", - "We define `NoisyFunctionMetric`s to wrap our synthetic Branin-Currin problem's outputs. Add noise to see how robust our different optimization algorithms are." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "executionStartTime": 1628191319191, - "executionStopTime": 1628191319220, - "hidden_ranges": [], - "originalKey": "9fdb11b6-7845-4f06-90fd-527fee088d76", - "requestMsgId": "febe0d60-fe60-4d55-ba6f-724c8ce7601d" - }, - "outputs": [], - "source": [ - "class MetricA(NoisyFunctionMetric):\n", - " def f(self, x: np.ndarray) -> float:\n", - " return float(branin_currin(torch.tensor(x))[0])\n", - "\n", - "\n", - "class MetricB(NoisyFunctionMetric):\n", - " def f(self, x: np.ndarray) -> float:\n", - " return float(branin_currin(torch.tensor(x))[1])\n", - "\n", - "\n", - "metric_a = MetricA(\"a\", [\"x1\", \"x2\"], noise_sd=0.0, lower_is_better=False)\n", - "metric_b = MetricB(\"b\", [\"x1\", \"x2\"], noise_sd=0.0, lower_is_better=False)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "executionStartTime": 1628191321755, - "executionStopTime": 1628191321791, - "hidden_ranges": [], - "originalKey": "27065b03-7234-49c1-b3ae-f6442ec4e3d6", - "requestMsgId": "d4010fca-5cbd-4a41-a779-cfa97ec15cc3" - }, - "outputs": [], - "source": [ - "mo = MultiObjective(\n", - " objectives=[Objective(metric=metric_a), Objective(metric=metric_b)],\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "executionStartTime": 1628191323464, - "executionStopTime": 1628191323491, - "originalKey": "c58b70de-06b5-4e03-8958-c3c55d4c295a", - "requestMsgId": "27e7efe5-d29e-4211-944e-41e6de065299" - }, - "outputs": [], - "source": [ - "objective_thresholds = [\n", - " ObjectiveThreshold(metric=metric, bound=val, relative=False)\n", - " for metric, val in zip(mo.metrics, branin_currin.ref_point)\n", - "]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "executionStartTime": 1628191325491, - "executionStopTime": 1628191325519, - "hidden_ranges": [], - "originalKey": "4b1ce9ba-e2e5-4a8a-9c15-5d01a2940a55", - "requestMsgId": "314ea591-0d2e-4fb5-b091-2aa2ea27f0eb" - }, - "outputs": [], - "source": [ - "optimization_config = MultiObjectiveOptimizationConfig(\n", - " objective=mo,\n", - " objective_thresholds=objective_thresholds,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "3b7b797c-2478-48d6-84ea-c62a886db31f", - "showInput": false - }, - "source": [ - "## Define experiment creation utilities\n", - "\n", - "These construct our experiment, then initialize with Sobol points before we fit a Gaussian Process model to those initial points." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "executionStartTime": 1628191328765, - "executionStopTime": 1628191328792, - "originalKey": "a52ace6c-8144-446b-97d5-2f27879ca187", - "requestMsgId": "6a222fb5-231e-4476-86a6-c29ca5113332" - }, - "outputs": [], - "source": [ - "# Reasonable defaults for number of quasi-random initialization points and for subsequent model-generated trials.\n", - "N_INIT = 6\n", - "N_BATCH = 25" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "executionStartTime": 1628191330913, - "executionStopTime": 1628191330991, - "hidden_ranges": [], - "originalKey": "9fd6ec68-4c53-4276-a98a-61431cdc05d5", - "requestMsgId": "8f659995-6b8f-4544-8392-03daaf8220b8" - }, - "outputs": [], - "source": [ - "def build_experiment():\n", - " experiment = Experiment(\n", - " name=\"pareto_experiment\",\n", - " search_space=search_space,\n", - " optimization_config=optimization_config,\n", - " runner=SyntheticRunner(),\n", - " )\n", - " return experiment" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "executionStartTime": 1628191334273, - "executionStopTime": 1628191334299, - "hidden_ranges": [], - "originalKey": "a8eef6a6-1d53-494a-907f-10ca35492a8c", - "requestMsgId": "b207dbd4-0a53-4efd-bbb9-9dee8835d60b" - }, - "outputs": [], - "source": [ - "## Initialize with Sobol samples\n", - "def initialize_experiment(experiment):\n", - " sobol = Generators.SOBOL(search_space=experiment.search_space, seed=1234)\n", - " for _ in range(N_INIT):\n", - " experiment.new_trial(sobol.gen(1)).run()\n", - " return experiment.fetch_data()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "0c918735-9fda-4c36-90b5-163443e66c72", - "showInput": false - }, - "source": [ - "# Sobol\n", - "We use quasirandom points as a fast baseline for evaluating the quality of our multi-objective optimization algorithms." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "executionStartTime": 1628191356513, - "executionStopTime": 1628191356896, - "hidden_ranges": [], - "originalKey": "5ee13832-804a-413f-a6bc-1f8f96a817d8", - "requestMsgId": "5b40f1e6-45b9-40e4-8569-9d459e98ca57" - }, - "outputs": [], - "source": [ - "sobol_experiment = build_experiment()\n", - "sobol_data = initialize_experiment(sobol_experiment)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "executionStartTime": 1628191362562, - "executionStopTime": 1628191408255, - "hidden_ranges": [], - "originalKey": "0c6a6d44-29db-43dd-982d-dc664d00b009", - "requestMsgId": "8aca7b5b-aab8-4a39-9a49-d7b1e0c714c5" - }, - "outputs": [], - "source": [ - "sobol_model = Generators.SOBOL(\n", - " experiment=sobol_experiment,\n", - " data=sobol_data,\n", - ")\n", - "sobol_hv_list = []\n", - "for i in range(N_BATCH):\n", - " generator_run = sobol_model.gen(1)\n", - " trial = sobol_experiment.new_trial(generator_run=generator_run)\n", - " trial.run()\n", - " exp_df = exp_to_df(sobol_experiment)\n", - " outcomes = np.array(exp_df[[\"a\", \"b\"]], dtype=np.double)\n", - " # Fit a GP-based model in order to calculate hypervolume.\n", - " # We will not use this model to generate new points.\n", - " dummy_model = Generators.BOTORCH_MODULAR(\n", - " experiment=sobol_experiment,\n", - " data=sobol_experiment.fetch_data(),\n", - " )\n", - " try:\n", - " hv = observed_hypervolume(modelbridge=dummy_model)\n", - " except:\n", - " hv = 0\n", - " print(\"Failed to compute hv\")\n", - " sobol_hv_list.append(hv)\n", - " print(f\"Iteration: {i}, HV: {hv}\")\n", - "\n", - "sobol_outcomes = np.array(exp_to_df(sobol_experiment)[[\"a\", \"b\"]], dtype=np.double)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "767a7e9b-8902-424e-bfc4-f7afdba47302" - }, - "source": [ - "## qNEHVI\n", - "Noisy Expected Hypervolume Improvement. This is our current recommended algorithm for multi-objective optimization." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "executionStartTime": 1628191422463, - "executionStopTime": 1628191422803, - "hidden_ranges": [], - "originalKey": "8fc6bfb4-3012-4ce2-99ed-288378098c50", - "requestMsgId": "0fd945a2-ac45-4a74-82cc-7173e15ced85" - }, - "outputs": [], - "source": [ - "ehvi_experiment = build_experiment()\n", - "ehvi_data = initialize_experiment(ehvi_experiment)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "executionStartTime": 1628191425090, - "executionStopTime": 1628191500240, - "hidden_ranges": [], - "originalKey": "27dd9425-b77e-4027-8412-30dd40c5abf1", - "requestMsgId": "65430b82-de1e-4946-9d8d-4a75762354c1" - }, - "outputs": [], - "source": [ - "ehvi_hv_list = []\n", - "ehvi_model = None\n", - "for i in range(N_BATCH):\n", - " ehvi_model = Generators.BOTORCH_MODULAR(\n", - " experiment=ehvi_experiment,\n", - " data=ehvi_data,\n", - " )\n", - " generator_run = ehvi_model.gen(1)\n", - " trial = ehvi_experiment.new_trial(generator_run=generator_run)\n", - " trial.run()\n", - " ehvi_data = Data.from_multiple_data([ehvi_data, trial.fetch_data()])\n", - "\n", - " exp_df = exp_to_df(ehvi_experiment)\n", - " outcomes = np.array(exp_df[[\"a\", \"b\"]], dtype=np.double)\n", - " try:\n", - " hv = observed_hypervolume(modelbridge=ehvi_model)\n", - " except:\n", - " hv = 0\n", - " print(\"Failed to compute hv\")\n", - " ehvi_hv_list.append(hv)\n", - " print(f\"Iteration: {i}, HV: {hv}\")\n", - "\n", - "ehvi_outcomes = np.array(exp_to_df(ehvi_experiment)[[\"a\", \"b\"]], dtype=np.double)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "e93178b6-5ba4-4c01-b8a2-e05971b7326f", - "showInput": false - }, - "source": [ - "## Plot qNEHVI Pareto Frontier based on model posterior \n", - "\n", - "The plotted points are samples from the fitted model's posterior, not observed samples." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "executionStartTime": 1628191505148, - "executionStopTime": 1628191521900, - "hidden_ranges": [], - "originalKey": "71e013c5-638f-4ba4-bb9a-3e4a7d3eb9fa", - "requestMsgId": "681433c5-fc21-4699-9fe1-8e444c671153" - }, - "outputs": [], - "source": [ - "frontier = compute_posterior_pareto_frontier(\n", - " experiment=ehvi_experiment,\n", - " data=ehvi_experiment.fetch_data(),\n", - " primary_objective=metric_b,\n", - " secondary_objective=metric_a,\n", - " absolute_metrics=[\"a\", \"b\"],\n", - " num_points=20,\n", - ")\n", - "\n", - "render(plot_pareto_frontier(frontier, CI_level=0.90))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "77b2dbce-f1e4-443a-8f81-2e1cbe207301" - }, - "source": [ - "## qNParEGO\n", - "This is a good alternative algorithm for multi-objective optimization when qNEHVI runs too slowly. We use `qLogNParEGO` acquisition function with Modular BoTorch Model." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "2f796182-558b-47aa-8072-4dbf40123133" - }, - "outputs": [], - "source": [ - "parego_experiment = build_experiment()\n", - "parego_data = initialize_experiment(parego_experiment)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "72999188-90f5-43e0-b1d9-d468e7d51191" - }, - "outputs": [], - "source": [ - "parego_hv_list = []\n", - "parego_model = None\n", - "for i in range(N_BATCH):\n", - " parego_model = Generators.BOTORCH_MODULAR(\n", - " experiment=parego_experiment,\n", - " data=parego_data,\n", - " botorch_acqf_class=qLogNParEGO,\n", - " )\n", - " generator_run = parego_model.gen(1)\n", - " trial = parego_experiment.new_trial(generator_run=generator_run)\n", - " trial.run()\n", - " parego_data = Data.from_multiple_data([parego_data, trial.fetch_data()])\n", - "\n", - " exp_df = exp_to_df(parego_experiment)\n", - " outcomes = np.array(exp_df[[\"a\", \"b\"]], dtype=np.double)\n", - " try:\n", - " hv = observed_hypervolume(modelbridge=parego_model)\n", - " except:\n", - " hv = 0\n", - " print(\"Failed to compute hv\")\n", - " parego_hv_list.append(hv)\n", - " print(f\"Iteration: {i}, HV: {hv}\")\n", - "\n", - "parego_outcomes = np.array(exp_to_df(parego_experiment)[[\"a\", \"b\"]], dtype=np.double)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "67ded85f-7c58-4c31-8df5-b0d8d07e4299", - "showInput": false - }, - "source": [ - "## Plot qNParEGO Pareto Frontier based on model posterior \n", - "\n", - "The plotted points are samples from the fitted model's posterior, not observed samples." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "3b1f39fd-ef75-4ea4-865b-f7b54b90da07" - }, - "outputs": [], - "source": [ - "frontier = compute_posterior_pareto_frontier(\n", - " experiment=parego_experiment,\n", - " data=parego_experiment.fetch_data(),\n", - " primary_objective=metric_b,\n", - " secondary_objective=metric_a,\n", - " absolute_metrics=[\"a\", \"b\"],\n", - " num_points=20,\n", - ")\n", - "\n", - "render(plot_pareto_frontier(frontier, CI_level=0.90))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "collapsed": true, - "hidden_ranges": [], - "jupyter": { - "outputs_hidden": true - }, - "originalKey": "a67f7345-1777-4372-8704-bb80c4c4e783" - }, - "source": [ - "## Plot empirical data" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "collapsed": true, - "hidden_ranges": [], - "jupyter": { - "outputs_hidden": true - }, - "originalKey": "de878adc-0eb2-4599-8c1b-e0adbc0c0765", - "showInput": false - }, - "source": [ - "#### Plot observed hypervolume, with color representing the iteration that a point was generated on.\n", - "\n", - "To examine optimization process from another perspective, we plot the collected observations under each algorithm where the color corresponds to the BO iteration at which the point was collected. The plot on the right for $q$NEHVI shows that the $q$NEHVI quickly identifies the Pareto frontier and most of its evaluations are very close to the Pareto frontier. $q$NParEGO also identifies has many observations close to the Pareto frontier, but relies on optimizing random scalarizations, which is a less principled way of optimizing the Pareto front compared to $q$NEHVI, which explicitly attempts focuses on improving the Pareto front. Sobol generates random points and has few points close to the Pareto front." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "c6296697-ef07-422d-b965-35e4e5104a12" - }, - "outputs": [], - "source": [ - "import matplotlib\n", - "import numpy as np\n", - "from matplotlib import pyplot as plt\n", - "from matplotlib.cm import ScalarMappable\n", - "\n", - "%matplotlib inline\n", - "\n", - "\n", - "fig, axes = plt.subplots(1, 3, figsize=(20, 6))\n", - "algos = [\"Sobol\", \"qNParEGO\", \"qNEHVI\"]\n", - "outcomes_list = [sobol_outcomes, parego_outcomes, ehvi_outcomes]\n", - "cm = matplotlib.colormaps[\"viridis\"]\n", - "BATCH_SIZE = 1\n", - "\n", - "n_results = N_BATCH * BATCH_SIZE + N_INIT\n", - "batch_number = torch.cat(\n", - " [\n", - " torch.zeros(N_INIT),\n", - " torch.arange(1, N_BATCH + 1).repeat(BATCH_SIZE, 1).t().reshape(-1),\n", - " ]\n", - ").numpy()\n", - "for i, train_obj in enumerate(outcomes_list):\n", - " x = i\n", - " sc = axes[x].scatter(\n", - " train_obj[:n_results, 0],\n", - " train_obj[:n_results, 1],\n", - " c=batch_number[:n_results],\n", - " alpha=0.8,\n", - " )\n", - " axes[x].set_title(algos[i])\n", - " axes[x].set_xlabel(\"Objective 1\")\n", - " axes[x].set_xlim(-150, 5)\n", - " axes[x].set_ylim(-15, 0)\n", - "axes[0].set_ylabel(\"Objective 2\")\n", - "norm = plt.Normalize(batch_number.min(), batch_number.max())\n", - "sm = ScalarMappable(norm=norm, cmap=cm)\n", - "sm.set_array([])\n", - "fig.subplots_adjust(right=0.9)\n", - "cbar_ax = fig.add_axes([0.93, 0.15, 0.01, 0.7])\n", - "cbar = fig.colorbar(sm, cax=cbar_ax)\n", - "cbar.ax.set_title(\"Iteration\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "ca12287f-c7b8-4ef8-8eb9-57760eda5fed", - "showInput": true - }, - "source": [ - "# Hypervolume statistics\n", - "The hypervolume of the space dominated by points that dominate the reference point." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "ec8b764b-c27d-4722-9e3d-d81cebb3624a" - }, - "source": [ - "#### Plot the results\n", - "The plot below shows a common metric of multi-objective optimization performance when the true Pareto frontier is known: the log difference between the hypervolume of the true Pareto front and the hypervolume of the approximate Pareto front identified by each algorithm. The log hypervolume difference is plotted at each step of the optimization for each of the algorithms.\n", - "\n", - "The plot show that $q$NEHVI vastly outperforms $q$NParEGO which outperforms the Sobol baseline." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "d50b98bc-5ab1-4826-a5b2-474a13f4bae0" - }, - "outputs": [], - "source": [ - "iters = np.arange(1, N_BATCH + 1)\n", - "log_hv_difference_sobol = np.log10(branin_currin.max_hv - np.asarray(sobol_hv_list))[\n", - " : N_BATCH + 1\n", - "]\n", - "log_hv_difference_parego = np.log10(branin_currin.max_hv - np.asarray(parego_hv_list))[\n", - " : N_BATCH + 1\n", - "]\n", - "log_hv_difference_ehvi = np.log10(branin_currin.max_hv - np.asarray(ehvi_hv_list))[\n", - " : N_BATCH + 1\n", - "]\n", - "\n", - "fig, ax = plt.subplots(1, 1, figsize=(8, 6))\n", - "ax.plot(iters, log_hv_difference_sobol, label=\"Sobol\", linewidth=1.5)\n", - "ax.plot(iters, log_hv_difference_parego, label=\"qNParEGO\", linewidth=1.5)\n", - "ax.plot(iters, log_hv_difference_ehvi, label=\"qNEHVI\", linewidth=1.5)\n", - "ax.set(\n", - " xlabel=\"number of observations (beyond initial points)\",\n", - " ylabel=\"Log Hypervolume Difference\",\n", - ")\n", - "ax.legend(loc=\"lower right\")" - ] - } - ], - "metadata": { - "fileHeader": "", - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.16" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/tutorials/raytune_pytorch_cnn/raytune_pytorch_cnn.ipynb b/tutorials/raytune_pytorch_cnn/raytune_pytorch_cnn.ipynb deleted file mode 100644 index c71b9537c9b..00000000000 --- a/tutorials/raytune_pytorch_cnn/raytune_pytorch_cnn.ipynb +++ /dev/null @@ -1,345 +0,0 @@ -{ - "cells": [ - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "originalKey": "6dba2bea-d97e-4545-9803-4242850e1807" - }, - "source": [ - "# Ax Service API with RayTune on PyTorch CNN\n", - "\n", - "Ax integrates easily with different scheduling frameworks and distributed training frameworks. In this example, Ax-driven optimization is executed in a distributed fashion using [RayTune](https://ray.readthedocs.io/en/latest/tune.html). \n", - "\n", - "RayTune is a scalable framework for hyperparameter tuning that provides many state-of-the-art hyperparameter tuning algorithms and seamlessly scales from laptop to distributed cluster with fault tolerance. RayTune leverages [Ray](https://ray.readthedocs.io/)'s Actor API to provide asynchronous parallel and distributed execution.\n", - "\n", - "Ray 'Actors' are a simple and clean abstraction for replicating your Python classes across multiple workers and nodes. Each hyperparameter evaluation is asynchronously executed on a separate Ray actor and reports intermediate training progress back to RayTune. Upon reporting, RayTune then uses this information to performs actions such as early termination, re-prioritization, or checkpointing." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import sys\n", - "in_colab = 'google.colab' in sys.modules\n", - "if in_colab:\n", - " %pip install ax-platform" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "originalKey": "fe7a9417-4bde-46d2-9de3-af1bc73bde45" - }, - "outputs": [], - "source": [ - "import logging\n", - "\n", - "from ray import tune\n", - "from ray.train import report\n", - "from ray.tune.search.ax import AxSearch\n", - "\n", - "logger = logging.getLogger(tune.__name__)\n", - "logger.setLevel(\n", - " level=logging.CRITICAL\n", - ") # Reduce the number of Ray warnings that are not relevant here." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "originalKey": "19956234-25ae-4e72-9d72-dbcd1b90e530" - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "import torch\n", - "from ax.plot.contour import plot_contour\n", - "from ax.plot.trace import optimization_trace_single_method\n", - "from ax.service.ax_client import AxClient\n", - "from ax.utils.notebook.plotting import init_notebook_plotting, render\n", - "from ax.utils.tutorials.cnn_utils import CNN, evaluate, load_mnist, train\n", - "import plotly.io as pio\n", - "\n", - "init_notebook_plotting()\n", - "if in_colab:\n", - " pio.renderers.default = \"colab\"" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "originalKey": "a26e18f8-caa7-411d-809a-61a9229cd6c6" - }, - "source": [ - "## 1. Initialize client\n", - "We specify `enforce_sequential_optimization` as False, because Ray runs many trials in parallel. With the sequential optimization enforcement, `AxClient` would expect the first few trials to be completed with data before generating more trials.\n", - "\n", - "When high parallelism is not required, it is best to enforce sequential optimization, as it allows for achieving optimal results in fewer (but sequential) trials. In cases where parallelism is important, such as with distributed training using Ray, we choose to forego minimizing resource utilization and run more trials in parallel." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "originalKey": "a91e1cb2-999a-4b88-a2d2-85d0acaa8854" - }, - "outputs": [], - "source": [ - "ax = AxClient(enforce_sequential_optimization=False)" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "originalKey": "1766919c-fb6f-4271-a8e1-6f972eee78f3" - }, - "source": [ - "## 2. Set up experiment\n", - "Here we set up the search space and specify the objective; refer to the Ax API tutorials for more detail." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "originalKey": "37e367d4-d09d-425b-98f7-c8849d9be4b7" - }, - "outputs": [], - "source": [ - "MINIMIZE = False # Whether we should be minimizing or maximizing the objective" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "originalKey": "777c8d33-2cd1-4425-b45f-2a44922dce7d" - }, - "outputs": [], - "source": [ - "ax.create_experiment(\n", - " name=\"mnist_experiment\",\n", - " parameters=[\n", - " {\"name\": \"lr\", \"type\": \"range\", \"bounds\": [1e-6, 0.4], \"log_scale\": True},\n", - " {\"name\": \"momentum\", \"type\": \"range\", \"bounds\": [0.0, 1.0]},\n", - " ],\n", - " objective_name=\"mean_accuracy\",\n", - " minimize=MINIMIZE,\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "originalKey": "589e4d80-02ae-461d-babc-0f96718f623e" - }, - "outputs": [], - "source": [ - "ax.experiment.optimization_config.objective.minimize" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "originalKey": "773a2c32-4ff3-4e92-8996-325504ce953e" - }, - "outputs": [], - "source": [ - "load_mnist(\n", - " data_path=\"~/.data\"\n", - ") # Pre-load the dataset before the initial evaluations are executed." - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "originalKey": "5fec848a-3538-489c-bcdd-a74051f48140" - }, - "source": [ - "## 3. Define how to evaluate trials\n", - "Since we use the Ax Service API here, we evaluate the parameterizations that Ax suggests, using RayTune. The evaluation function follows its usual pattern, taking in a parameterization and outputting an objective value. For detail on evaluation functions, see [Trial Evaluation](https://ax.dev/docs/runner.html). " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "originalKey": "75fce84d-35bd-45b5-b55e-f52baf26db03" - }, - "outputs": [], - "source": [ - "def train_evaluate(parameterization):\n", - " device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")\n", - " train_loader, valid_loader, test_loader = load_mnist(data_path=\"~/.data\")\n", - " net = train(\n", - " net=CNN(),\n", - " train_loader=train_loader,\n", - " parameters=parameterization,\n", - " dtype=torch.float,\n", - " device=device,\n", - " )\n", - " report(\n", - " {\n", - " \"mean_accuracy\": evaluate(\n", - " net=net,\n", - " data_loader=valid_loader,\n", - " dtype=torch.float,\n", - " device=device,\n", - " )\n", - " }\n", - " )" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "originalKey": "dda3574c-5967-43ea-8d23-7a151dc59ec9" - }, - "source": [ - "## 4. Run optimization\n", - "Execute the Ax optimization and trial evaluation in RayTune using [AxSearch algorithm](https://ray.readthedocs.io/en/latest/tune-searchalg.html#ax-search). \n", - "We only run 10 trials for demonstration. It is generally recommended to run more trials for best results." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "1d768bb2-d46b-4c4c-879e-3242af7555f4" - }, - "outputs": [], - "source": [ - "# Set up AxSearcher in RayTune\n", - "algo = AxSearch(ax_client=ax)\n", - "# Wrap AxSearcher in a concurrently limiter, to ensure that Bayesian optimization receives the\n", - "# data for completed trials before creating more trials\n", - "algo = tune.search.ConcurrencyLimiter(algo, max_concurrent=3)\n", - "tune.run(\n", - " train_evaluate,\n", - " num_samples=10,\n", - " search_alg=algo,\n", - " verbose=0, # Set this level to 1 to see status updates and to 2 to also see trial results.\n", - " # To use GPU, specify: resources_per_trial={\"gpu\": 1}.\n", - ")" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "originalKey": "cb00f812-e9e5-4208-a680-adf6619d74c4" - }, - "source": [ - "## 5. Retrieve the optimization results" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "originalKey": "2ec54675-d0ad-4eac-aaf3-66b593037cce" - }, - "outputs": [], - "source": [ - "best_parameters, values = ax.get_best_parameters()\n", - "best_parameters" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "originalKey": "50c764a6-a630-4935-9c07-ea84045e0ecc" - }, - "outputs": [], - "source": [ - "means, covariances = values\n", - "means" - ] - }, - { - "attachments": {}, - "cell_type": "markdown", - "metadata": { - "originalKey": "12a87817-4409-4f07-a912-8d60eff71d68" - }, - "source": [ - "## 6. Plot the response surface and optimization trace" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "originalKey": "3742f35b-6b28-49ae-a606-a138459f4964", - "scrolled": false - }, - "outputs": [], - "source": [ - "render(\n", - " plot_contour(\n", - " model=ax.generation_strategy.model,\n", - " param_x=\"lr\",\n", - " param_y=\"momentum\",\n", - " metric_name=\"mean_accuracy\",\n", - " )\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "originalKey": "6dfd23ca-1c93-4846-8e85-4560f9e40304" - }, - "outputs": [], - "source": [ - "# `plot_single_method` expects a 2-d array of means, because it expects to average means from multiple\n", - "# optimization runs, so we wrap out best objectives array in another array.\n", - "best_objectives = np.array(\n", - " [[trial.objective_mean * 100 for trial in ax.experiment.trials.values()]]\n", - ")\n", - "best_objective_plot = optimization_trace_single_method(\n", - " y=np.maximum.accumulate(best_objectives, axis=1),\n", - " title=\"Model performance vs. # of iterations\",\n", - " ylabel=\"Accuracy\",\n", - ")\n", - "render(best_objective_plot)" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "python3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.15" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/tutorials/saasbo/saasbo.ipynb b/tutorials/saasbo/saasbo.ipynb deleted file mode 100644 index 49ae9c4b4c7..00000000000 --- a/tutorials/saasbo/saasbo.ipynb +++ /dev/null @@ -1,385 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "originalKey": "1f779465-f9cc-4b17-9b5a-5960cf602273" - }, - "source": [ - "# High-Dimensional Bayesian Optimization with SAASBO\n", - "\n", - "This tutorial shows how to use the Sparse Axis-Aligned Subspace Bayesian Optimization (SAASBO) method for high-dimensional Bayesian optimization [1]. SAASBO places strong priors on the inverse lengthscales to avoid overfitting in high-dimensional spaces. Specifically, SAASBO uses a hierarchical sparsity prior consisting of a global shrinkage parameter $\\tau \\sim \\mathcal{HC}(\\beta)$ and inverse lengthscales $\\rho_d \\sim \\mathcal{HC}(\\tau)$ for $d=1, ..., D$, where $\\mathcal{HC}$ is the half-Cauchy distribution. While half-Cauchy priors favor values near zero they also have heavy tails, which allows the inverse lengthscales of the most important parameters to escape zero. To do inference in the SAAS model we use Hamiltonian Monte Carlo (HMC) as we found that to outperform MAP inference.\n", - "\n", - "We find that SAASBO performs well on problems with hundreds of dimensions. As we rely on HMC and in particular the No-U-Turn-Sampler (NUTS) for inference, the overhead of SAASBO scales cubically with the number of datapoints. Depending on the problem, using more than $100$ evaluations may not be feasible as SAASBO is designed for problems with a limited evaluation budget.\n", - "\n", - "[1] D. Eriksson, M. Jankowiak. High-Dimensional Bayesian Optimization with Sparse Axis-Aligned Subspaces. Proceedings of the Thirty-Seventh Conference on Uncertainty in Artificial Intelligence, 2021." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import sys\n", - "import plotly.io as pio\n", - "if 'google.colab' in sys.modules:\n", - " pio.renderers.default = \"colab\"\n", - " %pip install ax-platform" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "originalKey": "36a4c036-4075-4b15-87b2-a399c318f7b6" - }, - "outputs": [], - "source": [ - "import os\n", - "\n", - "import matplotlib\n", - "import matplotlib.pyplot as plt\n", - "import numpy as np\n", - "import torch\n", - "\n", - "from ax import Data, Experiment, ParameterType, RangeParameter, SearchSpace\n", - "from ax.core.metric import Metric\n", - "from ax.core.objective import Objective\n", - "from ax.core.optimization_config import OptimizationConfig\n", - "from ax.metrics.branin import BraninMetric\n", - "from ax.modelbridge.cross_validation import cross_validate\n", - "from ax.modelbridge.registry import Generators\n", - "from ax.models.torch.botorch_modular.surrogate import Surrogate\n", - "from ax.runners.synthetic import SyntheticRunner\n", - "from botorch.models.fully_bayesian import SaasFullyBayesianSingleTaskGP" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "SMOKE_TEST = os.environ.get(\"SMOKE_TEST\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "originalKey": "08bf2c1e-5909-4bde-8829-0fb0d0a29a25" - }, - "outputs": [], - "source": [ - "torch.manual_seed(12345) # To always get the same Sobol points\n", - "tkwargs = {\n", - " \"dtype\": torch.double,\n", - " \"device\": torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\"),\n", - "}" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "2f9bd4f6-87d6-42d9-b575-f92cf94de7b0" - }, - "source": [ - "## Setup search space and metric\n", - "In this simple experiment we use the Branin function embedded in a 30-dimensional space. Additional resources:\n", - "- To set up a custom metric for your problem, refer to the dedicated section of the Developer API tutorial: https://ax.dev/tutorials/gpei_hartmann_developer.html#8.-Defining-custom-metrics.\n", - "- To avoid needing to setup up custom metrics by Ax Service API: https://ax.dev/tutorials/gpei_hartmann_service.html." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "originalKey": "7697c80d-ab0c-4884-b4c7-c75d24a07e1a" - }, - "outputs": [], - "source": [ - "search_space = SearchSpace(\n", - " parameters=[\n", - " RangeParameter(\n", - " name=f\"x{i}\", parameter_type=ParameterType.FLOAT, lower=-5.0, upper=10.0\n", - " )\n", - " for i in range(25)\n", - " ]\n", - " + [\n", - " RangeParameter(\n", - " name=f\"x{i + 25}\",\n", - " parameter_type=ParameterType.FLOAT,\n", - " lower=0.0,\n", - " upper=15.0,\n", - " )\n", - " for i in range(25)\n", - " ]\n", - ")\n", - "\n", - "optimization_config = OptimizationConfig(\n", - " objective=Objective(\n", - " metric=BraninMetric(\n", - " name=\"objective\",\n", - " param_names=[\"x19\", \"x34\"],\n", - " # Set noise_sd=None if you want to learn the noise, set to 0.0 for no noise\n", - " noise_sd=1e-4, \n", - " ),\n", - " minimize=True,\n", - " )\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "379571df-a141-48f7-84de-f75bc6e8e760" - }, - "source": [ - "## Run benchmark" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "N_INIT = 10\n", - "BATCH_SIZE = 3\n", - "N_BATCHES = 1 if SMOKE_TEST else 10\n", - "\n", - "print(f\"Doing {N_INIT + N_BATCHES * BATCH_SIZE} evaluations\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Experiment\n", - "experiment = Experiment(\n", - " name=\"saasbo_experiment\",\n", - " search_space=search_space,\n", - " optimization_config=optimization_config,\n", - " runner=SyntheticRunner(),\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Initial Sobol points\n", - "sobol = Generators.SOBOL(search_space=experiment.search_space)\n", - "for _ in range(N_INIT):\n", - " experiment.new_trial(sobol.gen(1)).run()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "originalKey": "bdfeea50-c4e6-4ff1-91ae-c8f6c3160d7c" - }, - "outputs": [], - "source": [ - "%%time\n", - "# Run SAASBO\n", - "data = experiment.fetch_data()\n", - "for i in range(N_BATCHES):\n", - " model = Generators.SAASBO(experiment=experiment, data=data)\n", - " generator_run = model.gen(BATCH_SIZE)\n", - " trial = experiment.new_batch_trial(generator_run=generator_run)\n", - " trial.run()\n", - " data = Data.from_multiple_data([data, trial.fetch_data()])\n", - "\n", - " new_value = trial.fetch_data().df[\"mean\"].min()\n", - " print(\n", - " f\"Iteration: {i}, Best in iteration {new_value:.3f}, Best so far: {data.df['mean'].min():.3f}\"\n", - " )" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Plot results\n", - "SAASBO is able to find a solution close to the global optimal value of 0.398" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "originalKey": "5a9b9706-2653-4320-96f3-4bc9fe88bceb" - }, - "outputs": [], - "source": [ - "%matplotlib inline\n", - "matplotlib.rcParams.update({\"font.size\": 16})\n", - "\n", - "\n", - "fig, ax = plt.subplots(figsize=(8, 6))\n", - "res_saasbo = data.df[\"mean\"]\n", - "ax.plot(np.minimum.accumulate(res_saasbo), color=\"b\", label=\"SAASBO\")\n", - "ax.plot([0, len(res_saasbo)], [0.398, 0.398], \"--\", c=\"g\", lw=3, label=\"Optimal value\")\n", - "ax.grid(True)\n", - "ax.set_title(\"Branin, D=50\", fontsize=20)\n", - "ax.set_xlabel(\"Number of evaluations\", fontsize=20)\n", - "ax.set_xlim([0, len(res_saasbo)])\n", - "ax.set_ylabel(\"Best value found\", fontsize=20)\n", - "ax.set_ylim([0, 8])\n", - "ax.legend(fontsize=18)\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## SAAS model fit" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can also instantiate a SAAS model via `Generators.BOTORCH_MODULAR` by specifying a `SaasFullyBayesianSingleTaskGP` as the `botorch_model_class`. This also gives us the option to change several Pyro-specific parameters such as `num_samples` and `warmup_steps`." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "model = Generators.BOTORCH_MODULAR(\n", - " experiment=experiment,\n", - " data=data,\n", - " surrogate=Surrogate(\n", - " botorch_model_class=SaasFullyBayesianSingleTaskGP,\n", - " mll_options={\n", - " \"num_samples\": 256, # Increasing this may result in better model fits\n", - " \"warmup_steps\": 512, # Increasing this may result in better model fits\n", - " },\n", - " )\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Cross-validation plot \n", - "We have tools for cross-validation in Ax, but plotly doesn't render on Github so we make a simple plot using Matplotlib here. To use the built-in cross-validation functionality, you can do something like this:\n", - "\n", - "```\n", - "from ax.modelbridge.cross_validation import cross_validate, compute_diagnostics\n", - "from ax.plot.diagnostic import interact_cross_validation\n", - "from ax.utils.notebook.plotting import render, init_notebook_plotting\n", - "\n", - "\n", - "cv = cross_validate(model)\n", - "diagnostics = compute_diagnostics(cv)\n", - "init_notebook_plotting()\n", - "plotconfig = interact_cross_validation(cv)\n", - "render(plotconfig)\n", - "```" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Cross-validate model\n", - "cv = cross_validate(model)\n", - "y_true = np.stack([cv_.observed.data.means for cv_ in cv]).ravel()\n", - "y_saas_mean = np.stack([cv_.predicted.means for cv_ in cv]).ravel()\n", - "y_saas_std = np.stack(\n", - " [np.sqrt(np.diag(cv_.predicted.covariance)) for cv_ in cv]\n", - ").ravel()\n", - "\n", - "# Cross-validation plot\n", - "fig, ax = plt.subplots(1, 1, figsize=(6, 6))\n", - "min_val, max_val = -5, 120\n", - "ax.plot([min_val, max_val], [min_val, max_val], \"b--\", lw=2)\n", - "markers, caps, bars = ax.errorbar(\n", - " y_true,\n", - " y_saas_mean,\n", - " yerr=1.96 * y_saas_std,\n", - " fmt=\".\",\n", - " capsize=4,\n", - " elinewidth=2.0,\n", - " ms=14,\n", - " c=\"k\",\n", - " ecolor=\"gray\",\n", - ")\n", - "[bar.set_alpha(0.8) for bar in bars]\n", - "[cap.set_alpha(0.8) for cap in caps]\n", - "ax.set_xlim([min_val, max_val])\n", - "ax.set_ylim([min_val, max_val])\n", - "ax.set_xlabel(\"True value\", fontsize=20)\n", - "ax.set_ylabel(\"Predicted value\", fontsize=20)\n", - "ax.grid(True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Lengthscales\n", - "As SAASBO places strong priors on the inverse lengthscales, we only expect parameters 19 and 44 to be identified as important by the model since the other parameters have no effect. We can confirm that this is the case below as the lengthscales of parameters 19 and 44 are close to 1 with all other lengthscales being larger than 1000. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "median_lengthscales = (\n", - " model.model.surrogate.model\n", - " .covar_module.base_kernel.lengthscale.squeeze()\n", - " .median(axis=0)\n", - " .values\n", - ")\n", - "for i in median_lengthscales.argsort()[:10]:\n", - " print(f\"Parameter {i:2}) Median lengthscale = {median_lengthscales[i]:.2e}\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.16" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/tutorials/saasbo_nehvi/saasbo_nehvi.ipynb b/tutorials/saasbo_nehvi/saasbo_nehvi.ipynb deleted file mode 100644 index 1dcbccf1456..00000000000 --- a/tutorials/saasbo_nehvi/saasbo_nehvi.ipynb +++ /dev/null @@ -1,709 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "f2c99ee2-a85b-4cad-a5ff-1e2976bbc306", - "showInput": false - }, - "source": [ - "# Fully Bayesian Multi-Objective Optimization using qNEHVI + SAASBO\n", - "\n", - "### This Tutorial\n", - "\n", - "This tutorial will show how to use qNEHVI with fully bayesian inference for multi-objective \n", - "optimization.\n", - "\n", - "Multi-objective optimization (MOO) covers the case where we care about multiple\n", - "outcomes in our experiment but we do not know before hand a specific weighting of those\n", - "objectives (covered by `ScalarizedObjective`) or a specific constraint on one objective \n", - "(covered by `OutcomeConstraint`s) that will produce the best result.\n", - "\n", - "The solution in this case is to find a whole Pareto frontier, a surface in outcome-space\n", - "containing points that can't be improved on in every outcome. This shows us the\n", - "tradeoffs between objectives that we can choose to make." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "0aaae64b-d420-45d5-9597-52c09429d562", - "showInput": true - }, - "source": [ - "### Problem Statement\n", - "\n", - "Optimize a list of M objective functions $ \\bigl(f^{(1)}( x),..., f^{(M)}( x) \\bigr)$ over a bounded search space $\\mathcal X \\subset \\mathbb R^d$.\n", - "\n", - "We assume $f^{(i)}$ are expensive-to-evaluate black-box functions with no known analytical expression, and no observed gradients. For instance, a machine learning model where we're interested in maximizing accuracy and minimizing inference time, with $\\mathcal X$ the set of possible configuration spaces" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "470d5165-7f9d-4fbc-99fd-39d1015c7be0", - "showInput": false - }, - "source": [ - "### Fully Bayesian Inference\n", - "\n", - "Previous work, has shown that using a fully Bayesian treatment of GP model hyperparameters $\\boldsymbol \\theta$ can lead to improved closed loop Bayesian optimization performance [1]. Snoek et al [1] propose to use an integrated acquisition function $\\alpha_{MCMC}$ where the base acquisition function $\\alpha(\\mathbf{x} | \\boldsymbol \\theta, \\mathcal D)$ is integrated over the the posterior distribution over the hyperparameters $p({\\boldsymbol{\\theta}} | \\mathcal{D})$, where $ \\mathcal{D} = \\{{\\mathbf{x}}_i, y_i\\}_{i=1}^n$:\n", - "\n", - "$\\alpha_{MCMC}(\\mathbf{x}, \\mathcal D) = \\int \\alpha(\\mathbf{x} | \\boldsymbol \\theta, \\mathcal D) p(\\boldsymbol \\theta | \\mathcal D) d\\boldsymbol \\theta$\n", - "\n", - "\n", - "Since $p({\\boldsymbol{\\theta}} | \\mathcal{D})$ typically cannot be expressed in closed-form, Markov Chain Monte-Carlo (MCMC) methods are used to draw samples from $p({\\boldsymbol{\\theta}} | \\mathcal{D})$. In this tutorial we use the NUTS sampler from the pyro package for automatic, robust fully Bayesian inference.\n", - "\n", - "[1] J. Snoek, H. Larochelle, R. P. Adams, Practical Bayesian Optimization of Machine Learning Algorithms. Advances in Neural Information Processing Systems 26, 2012." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### SAAS Priors (SAASBO)\n", - "\n", - "Recently Eriksson et al [2] propose using sparse axis-aligned subspace priors for Bayesian optimization over high-dimensional search spaces. Specifically, the authors propose using a hierarchical sparsity prior consisting of a global shrinkage parameter with a Half-Cauchy prior $\\tau \\sim \\mathcal{HC}(\\beta)$, and ARD lengthscales $\\rho_d \\sim \\mathcal{HC}(\\tau)$ for $d=1, ..., D$. See [2] for details. \n", - "\n", - "[2] D. Eriksson, M. Jankowiak. High-Dimensional Bayesian Optimization with Sparse Axis-Aligned Subspaces. Proceedings of the Thirty-Seventh Conference on Uncertainty in Artificial Intelligence, 2021." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "213ff269-6109-408a-89b3-e92393e3c31f", - "showInput": false - }, - "source": [ - "### qNEHVI \n", - "\n", - "In this tutorial, we use qNEHVI [3] as our acquisition function for multi-objective optimization. We integrate qNEHVI over the posterior distribution of the GP hyperparameters as proposed in [4].\n", - "\n", - "[3] S. Daulton, M. Balandat, E. Bakshy. Parallel Bayesian Optimization of Multiple Noisy Objectives with Expected Hypervolume Improvement. Arxiv, 2021.\n", - "\n", - "[4] D. Eriksson, P. Chuang, S. Daulton, P. Xia, A. Shrivastava, A. Babu, S. Zhao, A. Aly, G. Venkatesh, M. Balandat. Latency-Aware Neural Architecture Search with Multi-Objective Bayesian Optimization. ICML AutoML Workshop, 2021." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "47e79bce-564d-40a6-84a6-0003ebdda93d" - }, - "source": [ - "### Further Information\n", - "\n", - "For a deeper explanation of multi-objective optimization, please refer to the dedicated multi-objective optimization tutorial: https://ax.dev/tutorials/multiobjective_optimization.html." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "dabdd6f6-34b3-4103-b599-bc909fe9faab" - }, - "source": [ - "## Setup\n", - "\n", - "In this tutorial, we use Ax Developer API. Additional resources:\n", - "- To learn more about the developer API, refer to the dedicated tutorial: https://ax.dev/tutorials/gpei_hartmann_developer.html. \n", - "- To set up a `GenerationStrategy` with multi-objective SAASBO (and use it in Ax Service API), follow the generation strategy tutorial: https://ax.dev/tutorials/generation_strategy.html and use `Generators.SAASBO` for the Bayesian optimization generation step.\n", - "- To learn about multi-objective optimization in Ax Service API: https://ax.dev/tutorials/multiobjective_optimization.html#Using-the-Service-API." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import sys\n", - "in_colab = 'google.colab' in sys.modules\n", - "if in_colab:\n", - " %pip install ax-platform" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "03b8cd70-54f4-4d4d-8445-60439ba00e27" - }, - "outputs": [], - "source": [ - "import os\n", - "\n", - "import matplotlib\n", - "\n", - "import numpy as np\n", - "\n", - "import pandas as pd\n", - "import torch\n", - "from ax.core.data import Data\n", - "from ax.core.experiment import Experiment\n", - "from ax.core.metric import Metric\n", - "from ax.core.objective import MultiObjective, Objective\n", - "from ax.core.optimization_config import (\n", - " MultiObjectiveOptimizationConfig,\n", - " ObjectiveThreshold,\n", - ")\n", - "from ax.core.parameter import ParameterType, RangeParameter\n", - "from ax.core.search_space import SearchSpace\n", - "from ax.metrics.noisy_function import GenericNoisyFunctionMetric\n", - "from ax.modelbridge.cross_validation import compute_diagnostics, cross_validate\n", - "\n", - "# Analysis utilities, including a method to evaluate hypervolumes\n", - "from ax.modelbridge.modelbridge_utils import observed_hypervolume\n", - "\n", - "# Model registry for creating multi-objective optimization models.\n", - "from ax.modelbridge.registry import Generators\n", - "from ax.models.torch.botorch_modular.surrogate import Surrogate\n", - "from ax.plot.contour import plot_contour\n", - "from ax.plot.diagnostic import tile_cross_validation\n", - "from ax.plot.pareto_frontier import plot_pareto_frontier\n", - "from ax.plot.pareto_utils import compute_posterior_pareto_frontier\n", - "from ax.runners.synthetic import SyntheticRunner\n", - "from ax.service.utils.report_utils import exp_to_df\n", - "\n", - "# Plotting imports and initialization\n", - "from ax.utils.notebook.plotting import init_notebook_plotting, render\n", - "from botorch.models.fully_bayesian import SaasFullyBayesianSingleTaskGP\n", - "from botorch.test_functions.multi_objective import DTLZ2\n", - "from botorch.utils.multi_objective.box_decompositions.dominated import (\n", - " DominatedPartitioning,\n", - ")\n", - "from matplotlib import pyplot as plt\n", - "from matplotlib.cm import ScalarMappable" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import plotly.io as pio\n", - "init_notebook_plotting()\n", - "if in_colab:\n", - " pio.renderers.default = \"colab\"" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "SMOKE_TEST = os.environ.get(\"SMOKE_TEST\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "122d77fa-21b8-4b01-9522-eae5990aba86" - }, - "source": [ - "### Load our sample 2-objective problem" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "744782ab-028f-4bbf-ba0a-eec8520c2fcf" - }, - "outputs": [], - "source": [ - "d = 10\n", - "tkwargs = {\n", - " \"dtype\": torch.double,\n", - " \"device\": torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\"),\n", - "}\n", - "problem = DTLZ2(num_objectives=2, dim=d, negate=True).to(**tkwargs)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "02a84443-ed1c-4e63-b2f8-9f1a77d530ec" - }, - "source": [ - "## Define experiment configurations" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "5dd66dc9-86a3-44a0-8109-418de66edfdb" - }, - "source": [ - "### Search Space" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "6060bdaf-be41-4d1d-9407-463a1e0c17f3" - }, - "outputs": [], - "source": [ - "search_space = SearchSpace(\n", - " parameters=[\n", - " RangeParameter(\n", - " name=f\"x{i}\", lower=0, upper=1, parameter_type=ParameterType.FLOAT\n", - " )\n", - " for i in range(d)\n", - " ],\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "4d5ffaaa-6aca-4502-9aac-047806c4a550", - "showInput": false - }, - "source": [ - "### MultiObjectiveOptimizationConfig\n", - "\n", - "To optimize multiple objective we must create a `MultiObjective` containing the metrics we'll optimize and `MultiObjectiveOptimizationConfig` (which contains `ObjectiveThreshold`s) instead of our more typical `Objective` and `OptimizationConfig`. Additional resources:\n", - "- To set up a custom metric for your problem, refer to the dedicated section of the Developer API tutorial: https://ax.dev/tutorials/gpei_hartmann_developer.html#8.-Defining-custom-metrics.\n", - "- To avoid needing to setup up custom metrics by using multi-objective optimization in Ax Service API: https://ax.dev/tutorials/multiobjective_optimization.html#Using-the-Service-API.\n", - "\n", - "We define `GenericNoisyFunctionMetric`s to wrap our synthetic Branin-Currin problem's outputs." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "param_names = [f\"x{i}\" for i in range(d)]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "fbf29141-2d4b-4dc9-aca7-e13e93369c36" - }, - "outputs": [], - "source": [ - "def f1(x) -> float:\n", - " x_sorted = [x[p_name] for p_name in param_names]\n", - " return float(problem(torch.tensor(x_sorted, **tkwargs).clamp(0.0, 1.0))[0])\n", - "\n", - "\n", - "def f2(x) -> float:\n", - " x_sorted = [x[p_name] for p_name in param_names]\n", - " return float(problem(torch.tensor(x_sorted, **tkwargs).clamp(0.0, 1.0))[1])\n", - "\n", - "\n", - "metric_a = GenericNoisyFunctionMetric(\"a\", f=f1, noise_sd=0.0, lower_is_better=False)\n", - "metric_b = GenericNoisyFunctionMetric(\"b\", f=f2, noise_sd=0.0, lower_is_better=False)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "a248dc3d-d053-439c-a4ff-c226105a0bfb" - }, - "outputs": [], - "source": [ - "mo = MultiObjective(\n", - " objectives=[Objective(metric=metric_a), Objective(metric=metric_b)],\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "originalKey": "cefa9d16-a23a-4222-82fb-e33ce89ddb58" - }, - "outputs": [], - "source": [ - "objective_thresholds = [\n", - " ObjectiveThreshold(metric=metric, bound=val, relative=False)\n", - " for metric, val in zip(mo.metrics, problem.ref_point)\n", - "]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "2512e114-8693-4ea1-8938-db0899a4f929" - }, - "outputs": [], - "source": [ - "optimization_config = MultiObjectiveOptimizationConfig(\n", - " objective=mo,\n", - " objective_thresholds=objective_thresholds,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "b689c7a9-28f8-47ae-a5da-c3a93674e72d", - "showInput": false - }, - "source": [ - "## Define experiment creation utilities\n", - "\n", - "These construct our experiment, then initialize with Sobol points before we fit a Gaussian Process model to those initial points." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "originalKey": "fb09ef7d-e744-472b-9290-ec24eb40d3fe" - }, - "outputs": [], - "source": [ - "N_INIT = 2 * (d + 1)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "b9b934cb-3afe-4a39-812b-c4d3bca194b6" - }, - "outputs": [], - "source": [ - "def build_experiment():\n", - " experiment = Experiment(\n", - " name=\"pareto_experiment\",\n", - " search_space=search_space,\n", - " optimization_config=optimization_config,\n", - " runner=SyntheticRunner(),\n", - " )\n", - " return experiment" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "cf05b5ca-ee87-45be-a028-51952fb4a2ee" - }, - "outputs": [], - "source": [ - "def initialize_experiment(experiment):\n", - " sobol = Generators.SOBOL(search_space=experiment.search_space)\n", - " experiment.new_batch_trial(sobol.gen(N_INIT)).run()\n", - " return experiment.fetch_data()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "96a350f9-5fa1-45a9-aac2-42d942e939f6" - }, - "source": [ - "## qNEHVI + SAASBO\n", - "Noisy expected hypervolume improvement + fully Bayesian inference with SAAS priors." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "02a0d667-9e8e-43b9-b2ef-09ff2b2d85ba" - }, - "outputs": [], - "source": [ - "experiment = build_experiment()\n", - "data = initialize_experiment(experiment)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "BATCH_SIZE = 4\n", - "\n", - "if SMOKE_TEST:\n", - " N_BATCH = 1\n", - " num_samples = 128\n", - " warmup_steps = 256\n", - "else:\n", - " N_BATCH = 10\n", - " BATCH_SIZE = 4\n", - " num_samples = 256\n", - " warmup_steps = 512" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "8ec2a5a3-bb79-435d-834c-55510ec52b15" - }, - "outputs": [], - "source": [ - "hv_list = []\n", - "model = None\n", - "for i in range(N_BATCH):\n", - " model = Generators.BOTORCH_MODULAR(\n", - " experiment=experiment,\n", - " data=data,\n", - " surrogate=Surrogate(\n", - " botorch_model_class=SaasFullyBayesianSingleTaskGP,\n", - " mll_options={\n", - " \"num_samples\": num_samples, # Increasing this may result in better model fits\n", - " \"warmup_steps\": warmup_steps, # Increasing this may result in better model fits\n", - " },\n", - " )\n", - " )\n", - " generator_run = model.gen(BATCH_SIZE)\n", - " trial = experiment.new_batch_trial(generator_run=generator_run)\n", - " trial.run()\n", - " data = Data.from_multiple_data([data, trial.fetch_data()])\n", - "\n", - " exp_df = exp_to_df(experiment)\n", - " outcomes = torch.tensor(exp_df[[\"a\", \"b\"]].values, **tkwargs)\n", - " partitioning = DominatedPartitioning(ref_point=problem.ref_point, Y=outcomes)\n", - " try:\n", - " hv = partitioning.compute_hypervolume().item()\n", - " except:\n", - " hv = 0\n", - " print(\"Failed to compute hv\")\n", - " hv_list.append(hv)\n", - " print(f\"Iteration: {i}, HV: {hv}\")\n", - "\n", - "df = exp_to_df(experiment).sort_values(by=[\"trial_index\"])\n", - "outcomes = df[[\"a\", \"b\"]].values" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "bafe189b-88cb-4a9e-aeff-2d2945d497da" - }, - "source": [ - "## Plot empirical data" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "5cc39663-a778-4600-bf39-57e63a7c2f39", - "showInput": false - }, - "source": [ - "#### Plot observed hypervolume, with color representing the iteration that a point was generated on." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "94ba246d-6adb-42bc-8f24-c10266b165d8" - }, - "outputs": [], - "source": [ - "%matplotlib inline\n", - "matplotlib.rcParams.update({\"font.size\": 16})\n", - "\n", - "\n", - "fig, axes = plt.subplots(1, 1, figsize=(8, 6))\n", - "algos = [\"qNEHVI\"]\n", - "train_obj = outcomes\n", - "cm = matplotlib.colormaps[\"viridis\"]\n", - "\n", - "n_results = N_INIT + N_BATCH * BATCH_SIZE\n", - "\n", - "batch_number = df.trial_index.values\n", - "sc = axes.scatter(train_obj[:, 0], train_obj[:, 1], c=batch_number, alpha=0.8)\n", - "axes.set_title(algos[0])\n", - "axes.set_xlabel(\"Objective 1\")\n", - "axes.set_ylabel(\"Objective 2\")\n", - "norm = plt.Normalize(batch_number.min(), batch_number.max())\n", - "sm = ScalarMappable(norm=norm, cmap=cm)\n", - "sm.set_array([])\n", - "fig.subplots_adjust(right=0.9)\n", - "cbar_ax = fig.add_axes([0.93, 0.15, 0.01, 0.7])\n", - "cbar = fig.colorbar(sm, cax=cbar_ax)\n", - "cbar.ax.set_title(\"Iteration\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "87e98991-aa2d-497b-925c-ee4cc82cf2f9" - }, - "source": [ - "# Hypervolume statistics\n", - "The hypervolume of the space dominated by points that dominate the reference point." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "2401a7cb-e825-489a-994f-c252050310f3" - }, - "source": [ - "#### Plot the results\n", - "The plot below shows a common metric of multi-objective optimization performance when the true Pareto frontier is known: the log difference between the hypervolume of the true Pareto front and the hypervolume of the approximate Pareto front identified by qNEHVI." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "05bf3b39-9cce-4a58-bc22-ed6a59a8c531" - }, - "outputs": [], - "source": [ - "iters = np.arange(1, N_BATCH + 1)\n", - "log_hv_difference = np.log10(problem.max_hv - np.asarray(hv_list))[: N_BATCH + 1]\n", - "\n", - "fig, ax = plt.subplots(1, 1, figsize=(8, 6))\n", - "ax.plot(iters, log_hv_difference, label=\"qNEHVI+SAASBO\", linewidth=1.5)\n", - "ax.set(xlabel=\"Batch Iterations\", ylabel=\"Log Hypervolume Difference\")\n", - "ax.legend(loc=\"lower right\")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Inspect Model fits\n", - "\n", - "Here, we examine the GP model fits using the fully bayesian inference with SAAS priors. We plot the leave-one-out cross-validation below. Note: model hyperparameters are not re-sampled on each fold to reduce the runtime." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "saas_model = Generators.SAASBO(experiment=experiment, data=data)\n", - "cv = cross_validate(model)\n", - "render(tile_cross_validation(cv))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# compute out-of-sample log likelihood\n", - "compute_diagnostics(cv)[\"Log likelihood\"]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Finally, we examine the GP model fits using MAP estimation for comparison. The fully bayesian model has a higher log-likelihood than the MAP model. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "map_model = Generators.BOTORCH_MODULAR(experiment=experiment, data=data)\n", - "map_cv = cross_validate(map_model)\n", - "render(tile_cross_validation(map_cv))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# compute out-of-sample log likelihood\n", - "compute_diagnostics(map_cv)[\"Log likelihood\"]" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.10.16" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/tutorials/scheduler/scheduler.ipynb b/tutorials/scheduler/scheduler.ipynb deleted file mode 100644 index c1031ff7d43..00000000000 --- a/tutorials/scheduler/scheduler.ipynb +++ /dev/null @@ -1,933 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "originalKey": "977ca50b-324e-4994-97cd-c6c17e723435" - }, - "source": [ - "# Configurable closed-loop optimization with Ax `Scheduler`\n", - "\n", - "*We recommend reading through the [\"Developer API\" tutorial](https://ax.dev/tutorials/gpei_hartmann_developer.html) before getting started with the `Scheduler`, as using it in this tutorial will require an Ax `Experiment` and an understanding of the experiment's subcomponents like the search space and the runner.*\n", - "\n", - "### Contents:\n", - "1. **Scheduler and external systems for trial evalution** –– overview of how scheduler works with an external system to run a closed-loop optimization.\n", - "2. **Set up a mock external system** –– creating a dummy external system client, which will be used to illustrate a scheduler setup in this tutorial.\n", - "3. **Set up an experiment according to the mock external system** –– set up a runner that deploys trials to the dummy external system from part 2 and a metric that fetches trial results from that system, then leverage those runner and metric and set up an experiment.\n", - "4. **Set up a scheduler**, given an experiment.\n", - " 1. Create a scheduler subclass to poll trial status.\n", - " 2. Set up a generation strategy using an auto-selection utility.\n", - "5. **Running the optimization** via `Scheduler.run_n_trials`.\n", - "6. **Leveraging SQL storage and experiment resumption** –– resuming an experiment in one line of code.\n", - "7. **Configuring the scheduler** –– overview of the many options scheduler provides to configure the closed-loop down to granular detail.\n", - "8. **Advanced functionality**:\n", - " 1. Reporting results to an external system during the optimization.\n", - " 2. Using `Scheduler.run_trials_and_yield_results` to run the optimization via a generator method." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "99721805-f4f5-48e4-940c-bc2d0c73c61a" - }, - "source": [ - "## 1. `Scheduler` and external systems for trial evaluation\n", - "\n", - "`Scheduler` is a closed-loop manager class in Ax that continuously deploys trial runs to an arbitrary external system in an asynchronous fashion, polls their status from that system, and leverages known trial results to generate more trials.\n", - "\n", - "Key features of the `Scheduler`:\n", - "- Maintains user-set concurrency limits for trials run in parallel, keep track of tolerated level of failed trial runs, and 'oversee' the optimization in other ways,\n", - "- Leverages an Ax `Experiment` for optimization setup (an optimization config with metrics, a search space, a runner for trial evaluations),\n", - "- Uses an Ax `GenerationStrategy` for flexible specification of an optimization algorithm used to generate new trials to run,\n", - "- Supports SQL storage and allows for easy resumption of stored experiments." - ] - }, - { - "attachments": { - "image-2.png": { - "image/png": "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rrvuOt/z5dYvcusNCd9Yh7Qtvtx1112+51jtZSJoIW0G3ZpE2vn1r3+ttmzZYvOw+jhnzpyEn9mHH35oFbUfCVrYKHgCAaMJ6L5wMRoOnYMABCAAAQhAAAIFRkD33JD2WVjBARzAARzAARzAARww3QHTLxEIWhC0MN1R+ldABGQR/Ec/+lHCBXBrITydRwkILFiwIJDoq6++mrRtuUXIfffdp7761a8mLPu1r31NnTx5Mq6tXActpAOJdlawOMoOID/96U9j/INug2KVbdGiRdy4rBeefvrphFykjptuukn927/9m7r55puTlrXalEe/oIW0W6dOnYT1SDvi1fe//33fW3E427CeZypoceDAgaRtSnhI+nf//fcn9ep3v/udhdr1SNDChYNvIGAsAd0XLsaCoWMQgAAEIAABCECgAAnonhvSPgsrOIADOIADOIADOIADpjtlP+HyAAAgAElEQVRg+mUCQQuCFqY7Sv8KjEBxcXFsQdxa8M7U47XXXqumTJmSkObly5fVD3/4w4SL9mH6I7flWLVqlW9bOoIW0pH69etXeVwydtmVQnbJCDr279+fdFeRMAz9ygQFLWQ3Egkr+J2T7muZCloIp+7duye9LUqYfv7yl79U4qjfQdDCjwqvQcA8ArovXMwjQo8gAAEIQAACEIBA4RLQPTekfRZWcAAHcAAHcAAHcAAHTHfA9KsFghYELUx3lP4VIIFTp04pue1GottQhFmYtspIyGLYsGGhSF65ckW1bNky7bYlZNG/f//AtnQFLaRDI0eOVJ/97GfTDiTIbTDkdh/JjjNnzqj/+q//SqsduRXLo48+6ntuUNBC+tO+fXvfcywH/B7Fi969e/uel8mghfRPbnNz6623+rbl1zfva7LbyIULFwLRE7QIRMMbEDCKgO4LF6Ng0BkIQAACEIAABCBQ4AR0zw1pn4UVHMABHMABHMABHMAB0x0w/ZKBoAVBC9MdpX8FTGDnzp2qWrVq6rrrrktrgfpzn/uckttcyO0bUj0WLlyobrvttpTaffzxx5X0OdGhM2gh/ZIdJ372s5+lNK677rpLjRo1SsmtXcIesuvFa6+9piTM4A0NBH3/xBNPqKNHj6onn3zS95xEQQvp19ChQ0PfjkRCD0uWLInx8OtPpoMW0j+5lczvf/9737H59UFeEwfffvttdenSpYToCVokxMOb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sWXLlqr5JmW0UL203Modd9zhK79bF/texotJkyaZvr6+quWrxqvW43kzJuStPrW2J+en0yfCFa550UDWH0woHwQgAAEIQAACECgSgbyMMakHz0toAA2gATSABtAAGkADaWkg688HGC0wWjR9Yjetm410k+vIg0aLDRs2xNbJ8OHDPWPBjTfe6F3nfn/rrbd631drt507d3rpyZgwYcIE79pajRZbt271ro3KN0mjhfIYGBgw06dPj2W4uOqqq8yiRYuqljGq7PV8nzdjQt7qU0+bck1yfSEsYZk3DWT9wYTyQQACEIAABCAAgSIRyNtYk/rw/IQG0AAaQANoAA2gATSQtAay/nyA0QKjRVMndZO+wUgvnU47aLTQEhdxWbtGhZEjR3rX3XXXXZ5hYtiwYd731dJdu3atd52MFvPnz/eubQejhVu/np4es3DhQvPkk08a13hiI1tor6VXVq9e7dXRvT6N93kzJuStPmm0OWmm02/CFa7toIGsP5hQPghAAAIQgAAEIFAkAu0wfqSMPOegATSABtAAGkADaAANtFIDWX8+wGiB0aJpE7qtvBHJu7Y/BEGjxZQpU2LppL+/32eKeOKJJ7zr9N41FMgkEadd5s6d67vOja7RbkaLYH337Nljxo0bZxTJwmVzzz33xGITTK+ez3kzJuStPvW0KdfU1t/BC15F0kDWH0woHwQgAAEIQAACECgSgSKNQ6krz11oAA2gATSABtAAGkAD9Wgg688HGC0wWjRtQreeG4hrWtPxBo0WWupjaGioqlYWL17sMwxMmzbNu2bGjBm+Y0uXLvWOVWrnMWPG+K7bv3+/d11WjRYynGgJEPvat2+fV+awuuq4GwnkyiuvLC05EnZu0t/lzZiQt/ok3d6k15o+Fe5wz4oGsv5gQvkgAAEIQAACEIBAkQhkZYxIOXheQQNoAA2gATSABtAAGsiqBrL+fIDRAqNFxQngrN5YlCvdTj9otFC0hTjLWdx9990+U8S6des8fSkShRu14aabbjIyJFRqS13vXnPjjTeaY8eOeddk1WgxODjoi1IxduxYr8xR9X388cd9de3r66t6TVRatXyfN2NC3upTS1tybrr9InzhmwcNZP3BhPJBAAIQgAAEIACBIhHIw/iSOvCchAbQABpAA2gADaABNJCmBrL+fIDRAqNFUyZz07zJSDv5TjzMaCGT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xh0KF2owuIH48Jt2KR5c8D9FLmixdPmSBtyw7x+3aEISbnm2/cs/bl5c8/D/a+nNvMVPJfNYXuKJj/xHS16+PPvy08WYWacWO1zx5Wg5W43bsPjtzXs0+tRWQMYODPkYJw855JDiwAMPbBqDMQz/8pe/bOzn2JFHHhksDeMnhuvf//73xV577dWSf8899yxOOumkgslPjPyxgCGaOuwzf/6fgBiMtaeddlqxww47NMvFMFol+KDFwmtOawEmFk44Kau4hdf+W2s+r5xegRYvv/xycfnllxcjRowodt9992a/OR877rhjQ6Obbropy+hMx+66665i1KhRxW9+85sWHXfeeefGOb3wwgsbEEtKBFzm2rnBbS4BYOPcc88t9t9//5Y2HnTQQcUFF1xQvPDC6wAQBmzO40477dSSlj4dddRRjTbG6j/11FObdTOOCNdff31xwgknFL/4xS9ayqMt9BU3vqlQBbQAaJg4cWKwPsblKaec0gCA/PpYLsM0O+CAA1ra6V5XpIldG2g4ZsyYxnn66U9/2lIGY+OSSy4p7Frx68/5/oc//KHZRv/aPfjgg5vHOJ8WgESsX5wDC7fddlujnQaUHH744Y1DgAuWnviee+6xLG0xMBXj0R/3Vuauu+5anHXWWQ3QpS3zn3fkgBbAIFdffXXb2LV6qP+iiy5qACOxerR/8CiQem7r5TGBFgItBFpUu+5dI7hAi3LtQsY2gRZp3dwxJtAirRVHbYwJtCjXylIItDAl8mOBFvlakdKuS4EWAi2qjRyllgJSQApIASkgBaSAFJACNSnQywn1UFk1NVvF9kiB5SuXF2NmnRYFElyoge1Tbz24JW0IdACyOPjGHVvS+eX43//9f0c2e1QFtMDrhhvwxvHj/944u27S3vtc2sDslm/bGITNwJiKf/azn1mWZoxXgsMOOywrP4ZbDKmhwBvlbt14DcBw6xuXSdMtaLFk9rRizohvNaGJp373lWLl8vSb8itXrCjmHLdJS56lj85sfn/ioPWKXoAWeALYb7/9WrRwdXG3991336ieaIy3CIz0bp7YNueWtYZjAYjG8mJ0x1hOHtsXioEJAAWAZX7+858n05IfI0wo7LPPPs28gB1nn31283uoXtvHpFXM60MuaLFgwYLiuOOOK60P4OLmm29uaT6wh7WlLF6yZElLXr5g1PXhh1A56AOo1EnI1fL4449vFn/dddc1+8U5JmB89NtmoEWuNw8AHr+M2HeAHe4PoVAGWnDP2nvvvbPrmjZtWqga7RtECoSe1+rYJ9BCoIVAi2oXvmsEF2hRrl3I2CbQIq2bO8YEWqS14qiNMYEW5VpZCjQDOMcIzrMqHuAmTZrU+N8EfMzz/p133lnMmjWr8ezeyfMHzxfkHypBoEW1M2nXpUALgRbVRo5SSwEpIAWkgBSQAlJACkiBmhTo5I9tlTw1NVvF9kiB46btkw0l+HAE333QYsXKFQXLe4TSsm/7//5iseW4zwSPA0kQqoAWk5+4sqnEM4vnFD+7cpNg2Vv85wbFT/77S8Fje1z7/WYZuRudghZMKu2yyy5Bg2UIkMBoinE+ZCD1QYtbbrmlxfuCa3DtGrR4cHqxaOIZLZDEK/femJQLOAOYwj4LJpxYLH387ub3XoAWM2bMKPAy4fbVtmNQw69+9ati0aJFbW0HcHANzlYOMUZq10OIewxvEKHgghYY9n3PFLHzffTRRxd4IXDrIC2eOdx9bNOmhx56qK16F7Tw81i+WH8ABELeInJAC5ar8D1mWH1+/23/lClTmu2vAlr4Y/qqq65q04c6Yjp3Clvkghau5woftMAzBG3zP1VAixtuuKEtv5UHpBPSmzHEciJ+cMf96aef3nKYayU0nih/jz32CNbDMZ4TFAavAlWe47pJK9BCoIVAi2r3AdcILtCiXLuQsU2gRVo3d4wJtEhrxVEbYwItyrWyFAItTIn8WKBFvlaktOtSoIVAi2ojR6mlgBSQAlJACkgBKSAFpEBNCnQzgZ6Tt6Zmq9geKHDHvKlt4AFLedz0xFWN5TdeW7GseGjBvcV/zb6o2Pa/Pt+WNgRakN6HLM6+43fFtKf+WMx/5dlGq5e89koBIAF04aa96qH/r3F86WuvFLc/Pbn52Xrchs10O034WnP/nfOmFitXrmwqMfZ//q2ZjnJ/OuHrxR/uG13MevbWgjoJLCtywd0ntaQj7YIlzzXLydnAtT/QBB/XiIqhE0OsHWMJCgsYhv237XG3f+ONNzaNnxhBWeLCN1Zj0HzllT/1wcrzQQvXOI8RnSUHRo4cWYwbN65Yvny5ZcuK/aVDljw4vXjt+SdaIInnxvwqWdbz/35AS/pX587uKWiBHr5OLOOClwTzVgAwwJtTeLIwIzQxS1f4geUX3DRss+/RRx9tLDlCfQA2xxxzTFu6W2+91S+usSyMXx4GaN7qwksJY5dxdOmll7aVZ/mon2Vq8DLBcjP33XdfAShix4lZysIPIcM4aSmP+zZjEY8QbIfAAUAAP5SBFrTxiCOOaGkbni1mz57dADcYg3gfGT16dEsaxqoZYzHq27XjgwR45rBjDzzwQEvznn766RaDP2XyJh060y7OHXW4QAF6oFMIKmkp3PtCH6wdtMk9FwBRdszGINn9e4QLAbHNUjCUxbVPKPNoQZt9gIRlOxiHCxcubJTBeOH+gwcNt40hbxOuLj5owf3JzY+XHcaN3VPQl++//e1vW9Kx7I3C4FWAc9aPj13bg1eJ/JbZpD7LVPGGLvdJlkjiuuV35vbbb29cc7xhy6dTfYfSG7qmmb3VDBDHMlZ4g9JbzeGx5xrBBVqENXL3umOM513GmEALV6H2bXeMCbRo18ffY2NMoIWvTPw7msmjRVyf0BGBFiFV4vvsuhRoIdAiPkp0RApIASkgBaSAFJACUkAK9FGBTieCc/P1sSuqqqICB0zargU4OOiG7YsXX21/059iH1zwP0FvEb5Hi/+ePaalzP9379nRVt0654aWtCxLEgrbjv9cMx3eMmLh4Bt3aKYDzjAPGaH0p912SDMtoMX0OdeHkmXte+6551oMjFOnTg3mYyLANVhi3Ay9XU7m+fPnF7zd7qbnrVA3+KCFpWUZjZCXAzdv2XYItCDPM6N2fB2eOGT9YvniPxl1/fJWLHmxePLQzzTTzj19q0aSXnq08JdNwFgNuBAK6GH6EGOkdpeewCDveozAS0bIiwhlY1hm8tAtD80xbLvB9WhBWkAYHxCw9H5a0mPgDgX/vJ988sltyXzQAvAAg2AsAH+4/QHs8T1GlIEWPhgBQOKCUG7deCJx6wuBL2WwgVse3iOsPGAWgJRQ4BzhgcTSEvvLl4Tyxfb5uhl84Kf3QQurH+8hLLXih7K++x51ODexwNi2+oiBbfyQAi3OPPPMlvyh9lIe8Id7zwKCip1/v359778Cuc9w3aYTaFEdaBFoUU0zxthQ0sw1ggu0KL83hoxtAi3SurljTKBFWiuO2hgTaFGulaUQaGFK5McCLfK1IqVdlwItBFpUGzlKLQWkgBSQAlJACkgBKSAFalKg20n0svw1NVvFdqnA3c9MbwENABMWLZ2fLPWOuTe35AFQ8EGLk6bv35JmwZI/ebEIFbxo6YKWtCxjEgo5oAXeN1zPFwffuGOoqOa+CQ9e0lL3DY/HDZXNTJGNHNCCZSnct9gxfPNmfCqEjP/2tjr5fIM7RtQjjzyyBSBIlZ86FgMtXrptXBOeYOmPF6deGizmpRmXB9P1CrR4+eWXi912261pAEbbxYsXB9tiO88444xmerRyQQrevneN0YAUqYABGa3dPD7I4MMTKWM4XgbcsvCakQp4K7H0bPvBBy0uuOACP0nbdx9A8NubAi0AGFzvIng98METv8Lzzz+/2QeuB9+AXwYbWHkY2EwL4pCHD0tLDGDjejjBE0OnoRvQAuAhBiKU9d2HtmKAkfXLPTe+xwrSpEALlrJx9eW+FAtcA7lpY2Vof38UKHt269VxgRbVoAF0H0rQgGsIAY6UR4vy69s1ggu0KNfLHWPyaFGuFyncMSbQolwzG2MCLcq1shRoJo8WpkZeLNAiTydLZdelQAuBFjYmFEsBKSAFpIAUkAJSQApIgQFVoFeT6bFyBrRzqjyqAMuBAErY55QZB0XTugf2/eMWzTwh0OLplx4v/vjIfzQ+ZfDCFQ+ObSmrG9CCNt41b1qz7nufm+k2u2WbpUmOnvLzlrrL2tpSgPclB7S4++67WwyQLJ+QEzDGuobLmTNf71cItLjnnntyii1NEwMtVixdXDx52GebEIV5qvALnDdyu2aaJxzPF70CLTDeubqw7EJZePbZZxuTfhdffHHBhyUeLLiG6NAyLZbOjVkSw22Db8B2QQu8LKSWqMDThVsWE9+p4JadA1qwtEZZ8McT3hbckAIt/LxTpkxxswa38eaS6nMZbGCFutABwIa/xI6lc2Nc/rt15+jj5rftTkELwKAXX3zRimmLy/pOe/EgwqfMI4fv0cIfp1SeAi18jxaMt2495rR1WDv6rkDsma3X+wVaCLTAGxf3aYEWeZe5awQXaFGuWcjYJo8Wad3cMSbQIq0VR22MCbQo18pSCLQwJfJjgRb5WpHSrkuBFgItqo0cpZYCUkAKSAEpIAWkgBSQAjUp0OtJdb+8mpqtYrtU4Ow7ftcCGtz+9OSsEsc/cGFLPt+jRayQZSuWFU+88HAx7ak/Fv/+v2cWB076cUs5QBvdghaxuhcve7GYPf+e4rpHxxXn3XV8sfOV32iru27Q4tprr20x7N51112x5rbs94ECDLsWfOM2bvt7FWKgBeU/f9khr0MUB61XLJs7u6XaZc880nL8uTG/ah7vFWjBGu+uoZz7TqcBbwBuWRiWc8Nee+3VzOsDD2UwhFsH3k3cNtx6663u4bZt1zuHXy+JXY8WeN7IDe7SD7/61evnjfwp0GL69Okt7We8A7KUfdw+41XEDWWwgaUFHLByAC3K6uS4C2eQF48inYROQYtLLrkkWV1u30OF4CUD+OuOO+4oWL5ll112aepDX6uCFnh+MX3d+LDDDmt4D+Hac5fhCbVJ+wafAv6zWl3fBVoItBBoUe36d43gAi3KtQsZ2wRapHVzx5hAi7RWHLUxJtCiXCtLIdDClMiPBVrka0VKuy4FWgi0qDZylFoKSAEpIAWkgBSQAlJACtSkQF2T61ZuTc1WsV0qcNSU3VtggydeeCirxFueuq4lXwy0WL7itQZUcfadxxR4wdhy3Gda8pknDTfuFWjBkiQsDcIyJrte9a3SemlD3aCF75kCQ2pO8N/6P++885rZfNCCOnoVUqDFkodmtIAUCyec1FLtwqtPbTn+yr03No/3CrRgcsU1+mJY7jQ8+OCDLWUxYZMbWOLD2oGXAncpCBe0OOqoo5JF+qAFMEAqVAEtqoAjbrlAC+7yHynQgsln06HT2F/CIxc2OOigg7qu+5prrknJHT3WKWgBmJIKuX2njPnz5xc33XRTgZcc4Ad3iaLQuagKWlAH7p8ZD6Hy2McxgB6WbXniiSdSXdOxQaKAPaPVHQu0EGgh0KLaRe8awQValGsXMrYJtEjr5o4xgRZprThqY0ygRblWlgLNtHSIqZEXC7TI08lS2XUp0EKghY0JxVJACkgBKSAFpIAUkAJSYEAVqHuSfUA7p8qjCvzyjz9qARBeWLogmtY9cN/zd7bkC4EWU564uvj5NZu1pHOBCtveatyGLWm6BS3wmnH+3ScW247/XEu5Vl8qrhu0cN+6xzC5YsUKV9boNoZ7lp0wA+eIESOaaX3QAkN4r0IKtKBNc0Z8uwlTPPW7rxYrl7/WqHrliuXFU8d83Tn2leYxEvQKtPi3f/u3piZo4wIBVTVgORbTl/i6667LLuKcc85pybtw4cJm3sECWjARlRsuuOCClv7MnTu3mTUFWvjLS7h65m7vv//+zbrYyIUN3Osjty4/3eWXX95Sd+6XTkELlp1JhZy+k2bUqFHFjjvu2HLO/L753zsBLWjrfffdV3CO/PJC30899dQCSExh8CpQ97OflS/QQqCFQItq9wHXCC7Qoly7kLFNoEVaN3eMCbRIa8VRG2MCLcq1shRoJtDC1MiLBVrk6WSp7LoUaCHQwsaEYikgBaSAFJACUkAKSAEpMKAK2GR4XfGAdk6VRxU44qZdW2CEuS/lvYU8c+6Ulnw+aDF9zvXFFv+5QUsaAIdtxm9UHHTD9sWptx5cXHbvqGLaUxOLhUueL7b9r88303YLWvzbbYc2y3Khip9O+Hpx5E27FaPu+F1xxYNji7vmTStmzJnUkrZu0MI3RLNcRU545ZVXWgybrpHUBy2mTp2aU2RWmhRoQQGLJo5swhRPHLReYV4rXrl/Sst+39tFr0CLkSNHtuiydOnSrH6FErGMi2ssZtmL3HDKKae05H311VebWQcLaOF6QWk2LrJx7rnntvRn0aJFzZQp0GLs2LEt+Q488MDi4IMPrvTBO4gbcmAD0rvLpOy8886V6rQ2jh8/3q06e7tT0KIMQijrO14s3H7b+KX/eE8566yzinHjxhUzZsxoeLw49NBDm+fHvYdYR8uOWzpi7jsTJkwojjvuuKT3DKCMF154wc2q7UGkQF3PfH65Ai0EWgi0qHbhu0ZwgRbl2oWMbQIt0rq5Y0ygRVorjtoYE2hRrpWlEGhhSuTHAi3ytSKlXZcCLQRaVBs5Si0FpIAUkAJSQApIASkgBWpSwJ8U7/X3mpqtYrtUAOjAhRHueuaWrBKvefj/teRzQYtly19tAScof89rv1/c/vTkYunyJcHyewVa+OAEdf9+xgHFIwvva1nOwRpxx9ybW/pRN2iB0dOMocQsV5ETHnnkkZZ87pv3PmiBZ4ZehTLQ4rX5T7YAFc+N+VWj6ucu2a9l/7K5rW/u9wq0YIkCV885c+ZkdR1PIvaxZT6eeeaZlrKqLMECUGDt2HfffVvaMFhAi+OPP76lXakvJ5xwQrM/u+yyS0vSFGhxww03NPOhx7PPPtuSt5MvZbCBlem2maUz+hk6BS0WL16cbGZZ390la9CbcQgw5II+bgVlIEXZcbcsdxtPMg899FCB8WGPPfZoGQO0Cw8pCoNTgV4/68XKE2gh0EKgRbV7gGsEF2hRrl3I2CbQIq2bO8YEWqS14qiNMYEW5VpZCoEWpkR+LNAiXytS2nUp0EKgRbWRo9RSQApIASkgBaSAFJACUqAmBWKT473aX1OzVWyXCox/4MIW0OC8u/KMsUdP+XlLPhe0mD1/VsuxPa79fvHysrjnBo653i+68Whx8axTW+o+585jkwpNeuy/WtLXDVrccsstLUbIiRMnJttnBydNmtSSb8qUKXao8Wa5GfmJ+wla0IhnRu34OlRxyPrFsuceL544ZIPmvrmnb9Vsq230CrS4+eabW3S56aabrIpojBeRHXbYoZnv4osvbqQFvHCXnzjyyCOjZbgHMJa7+XygYbCAFrvvvnuR4/GDNLvuumtTn0MOOcTtbpECLR544IFmPsbirFmzWvLGvuAxA+8MfHz4oAw2sDJdbxr0NWdZnuXLlzfrpe5ly5ZZcZXigQAtgCnc5UKALJYsCYNs1pn99tuveX6qeLRAS64bPpwfg5OsXDdGQ4yC7j3poIMOcpNoexAp0KtnvLJyBFoItBBoUe3Cd43gAi3KtQsZ2wRapHVzx5hAi7RWHLUxJtCiXCtLIdDClMiPBVrka0VKuy4FWgi0qDZylFoKSAEpIAWkgBSQAlJACtSkQNkkebfHa2q2iu1SgTvmTW0BDbYd/7li0dIFyVIff+HBljx4jXBBi6sfvqzleBm8MfXJa1vSdwNa+Euh/O9zae8OeLtwPXrUDVo8/vjjLQZI3P6XGb8xqOIlwTVc4uHCwkB6tKANL902rglVsHzI0yf/S8v3F6deak1txr0CLfAI4uqS48nAh11cMIUlJNzy7rzzzmabYxuXXHJJSx4M/m4YLKAF/brmmmvcpgW3fa8UZ5xxRku6FGiBId7V7+STT27JG/qC4Z6lLiyf662F9Lmghd9uF0YK1cs+H9R57LHHYkmT+wcCtJg9e3ZTM7RjDexUACQxjYmrgBa+t5ecZXUAldz68HqhMPgU6PbZLje/QAuBFgItql3/rhFcoEW5diFjm0CLtG7uGBNokdaKozbGBFqUa2UpBFqYEvmxQIt8rUhp16VAC4EW1UaOUksBKSAFpIAUkAJSQApIgZoUyJ0s7zRdTc1WsV0qsGLliuJX123ZAhuMuGXf6BIfLy5dWBx0w09a0vugxX/Nvqjl+Oi7RkRbuWDJs8VPJ3y9Jf1vb94jmB4IxKCIo2/+RTCN37b/efb2YDp23uwBHpT9x0f/M5q+7MBzzz3XYlicOnVqMAseD1wDZJmB1F8eg+UC3DDQoMWKpS8XTx722Ra4AuCi8Tlk/WL5y4vc5ja2ewVa4JHggAMOaNHz/2/vXH/kqNIzDv9QPiRR8iFSoo0iZSNZ+ZDdXJRESWC5CQGxglithBaHYBDCbAIogL1AzGUTBZlgE+yxDb5fx14ztsfcNjYXD9gYx3fA1zEVPb15Z9+qrntXzZya+rXUqp7uU6fe8zvPOVNd79OnsrjrwDK1+Nt83HzzzTGji5Lzvm9U9uLFi0Px2xtTU1Ox1Sy0soWMAf4RktHinnvuGYrPx3r27NnIr3ogFlqlwj/yjBYq9+yzz8YYTk5O+t2HXuvivmeuW1D4R9JokdW/6id/2wqZk2T8yHoo8e/NAAsXLsxdqSGrHr2fNFpk3bpjw4YNsbYmV+9IHiPZ9vHx8ZkiExMTsbp0gTHroRUolixZEiv/xBNPDBXPu3XI3XffPbP/Qw89VLhiyH333TdTXq95hEmg7jld1f0wWmC0wGhRbQ7wSXCMFsXs0pJtGC3yuXmNYbTIZ6VPTWMYLYpZWQmMFkai/BajRXlWKmnjEqMFRotqyqE0BCAAAQhAAAIQgAAEWiJQ9aJ51fIthU21DRDYc2zTjIHBjAwyLEydPzKTeJz+djrSLUH+/u0/GSqbNFoc/HI8VuYvVv12tPfY5lik165fjd7++L+im1b/fqys6rp3w/CtJrSzL66Z2KkAACAASURBVPs3//270eSXe6JTF09E5y6fjq5MXx7Uv2xicay+hW9/P/ry62OxY2vFjmX7H47drsTaveKDn8bKVvmjrNFCq1r4W1coyfzMM88MJfR1G4Bly5bNJCstGf3JJ5/Ewppro4WCOfXq/alGi/995R9isdofTRktVJ9WpDA22oqtEtrJx6lTp6LHH388Vja5WoMS0loVw9cn44FfQcTqlSnj1ltvjZXV6hbJR0hGC7XrzjvvHDJPKGYl9ZMmi8ceeyzZnNxbh6jwyZMnY+YT3d5C5ozk7SZ0O4qNGzfGxkJaQl7mD98fzz//fJS1OoJuxePLasWYDz/8cKgNMmBoRQdfVknAuo+kgWLfvnSDV7LcKEYL6dnHLyNE0uSj9nzxxReR+tGX1eukYUtl84wWGiu+Ds1NaSYk9fOqVatiZV944YW6aNmvZQJVz+XqlsdogdECo0W1weyT4BgtitmlJdswWuRz8xrDaJHPSp+axjBaFLOyEhgtjET5LUaL8qxU0sYlRguMFtWUQ2kIQAACEIAABCAAAQi0RKDuxfOy+7UUNtU2RODHW38QMyiY8eBv3/y96L6Nfxn99Ru/k/q5lfO3Dvnqyvnoz17/zaHyd63/4+gft98+MGv8+crfGvrc6tL2znULIt2CxD9+uOmvMvdZ//Frg6IbP1k1VOZPX/+NwSocD2y7Jbpt7LtDn/vjqqyOI5NJ1UdZo4XqXb58eSwRqQTm7bffHmm1i5deemmQGL3jjjuGyjz33HNDYYVgtLh0ZE+q0eLi+1uG4tUbTRotVN/ixYuHWGl1gyeffDJ6+eWXI5kdbrnlllgZJeHTVjz44IMPYsl/9Y3MGzJgKGEsU0zSkKAyOl5a4jw0o4Uly7WCg5Ln0pRf5cM+l0EizWBStKKF+iN5OxXjo4S/bq2iYyYZ6ngHDx4c0osS91p5xOLSVn+L91133RVbkUQGjGS9Ki8Dh9qquGSwSBpktM+FCxeGjl32Dd1ixsen17fddtsgPm/madJoodj8KhPG5amnnhpcdFy6dGn0wAMPxEwvPkbxfvrpp6M9e/bMNDPPaKH/9drH16FbvmhlDHFVElXmC+nKl9HrAwcOzByDF2ERKHsON2o5jBYYLTBaVBv7PgmO0aKYXVqyDaNFPjevMYwW+az0qWkMo0UxKyuB0cJIlN9itCjPSiVtXGK0wGhRTTmUhgAEIAABCEAAAhCAQEsERr2IXrR/S2FTbUMELk9fip7ce3+uCcEbEm5f+0exst5ooZDePPyz2Od+3+Tr28b+MFr49veGyj/7zj/FWvezd58aKmN1mdFCK2U8sO3WzHJW3raLd96VWnb/ifTbfsQCSvxRxWihX/PrV9/JxGUyQWl/K9GvW4hov+QjBKOFkuHHHv1uzGzx+eLvRN9OX0uGO/i7aaOFDBNK+Bqvoq0S7WkrHViw+iwtYZxVr1YH0AoDaY9QjBaPPvroYDWLrDb495XAT94yxNpWxmghneqCV3LlFn+M5OvNm+Or3tjxtPUMk/tp5Rf/0AoYamuyXNbfWuFDqz6M8jh//vzAKJV2DJmn7NG00UIGj7KMdSuV5CoeilfGLnvkGS1UZuvWraW5GgutWsIjXAJF525NfY7RAqMFRotq84BPgmO0KGaXlmzDaJHPzWsMo0U+K31qGsNoUczKSmC0MBLltxgtyrNSSRuXGC0wWlRTDqUhAAEIQAACEIAABCDQEoGmLqZn1dNS2FTbMAEZJP5u9XdSzQcyJ+g2IKsP/3s0eXJPrMzWo2uGIln5i+W5dWlVC93qQ7f+2PnZ+lh9OlbSaHH52sWBGSRtNYwtR1fPHP/85TPRv+z5UeqqGmaw+MGaPxismKFbovxkzw+Hjl3HaHH69OlYEnL37t0zMWW9OHz4cOpqApak1Fa/xtcqC1mPY8eOxY6r5GtTj7Nj/xwzT1w6PJ5Z9bm3no6VPbv68cyyV47/Ilb29IofZ5at8oGS9VpJwPNLvtav7pWML3podQqtRnDTTTdl1ifDxsqVK1MNMFa/Nwk8+OCD9nbqNmmaKVoJQPFZ++6///6hOrVqh33+4osvDm4tkWdIUdJeq07k8fFGC5VPM/9YINLtvffeOxODxeK3jzzySK6+VZdMLGm3v1A9ly//8rZBdkxtFZPiTK5i4o+rfhUTjdsmHhMTE4Ox6o+h10uWLJmpftOmTTEWabfemCn8/7dz8fX51Ses3I4dOyKZKHw5/1rtlJlCK3botkNJY0aW0cKvxGHH0lbtlLHIHyPttbS+d+9evyuvAySQdc7W9PsYLTBaYLSoNgH4JDhGi2J2ack2jBb53LzGMFrks9KnpjGMFsWsrARGCyNRfovRojwrlbRxidECo0U15VAaAhCAAAQgAAEIQAACLRFo+qJ6sr6Wwqbalgh88dVUtH1qbfTi5E+ifzu4JNr46RvRx2c/jLRihB7fXP0qOnzm3ZnnlenhZKfKyRyx6/O3Ipkuntv/aLT84OODuj46+350dfpKLPrjXx2NVnzw0+iFA49Fmz59Izr5zfHY5/bHxatfD27tceTMe9H/nD40eKYd/8uvj0W6lch/vv9stHRi8WA7fmxjdOLrzyKtwGCP699eHxhH1M7/eO9fo73Ht0QXr31jH1fa6lYLR44cGTzTEsBZlWlFBiWi1qxZM7itiLaHDh2K9Ev5oofa8tFHH80c98qVONei/fM+v37xfHR5anLmef3SV5nFr1+6MFNO+2jfvMeVz96dKX/t9Gd5RSt9piS7VihQUlqrgCiZvnbt2kGC+OTJk5XqUuGrV68OEtT6Nb9ue6Fk0fj4+OAYeSYDO5BiUf/oKVNM3iPZlzp23uPEiRMzdcukkXwkjRb2uVZfkSlFF/N0G5t169YNVrAoo1mZMKw9R48etSpzt+fOnYsmJyej1atXD44nc8rOnTujTz/9NHe/5IcaJ1NTU4Pja5wV7a/+OX78+KC/1G8yFYyNjUX79u2Lzpw5k6x+5L/Vf2KruGwe8CudyFhh7xfFrmDU/8Za26yxPT09HclgJZ1Lo7qVx7Zt2wZx6HYq/qH+U7lXXnkl2r59e2wlFmnIjldkQFFZmTyUABRX1afXGifSJY9uEEieq7X1N0YLjBYYLarNCT4JjtGimF1asg2jRT43rzGMFvms9KlpDKNFMSsrgdHCSJTfYrQoz0olbVxitMBoUU05lIYABCAAAQhAAAIQgEBLBNq6uG71thQ21UIAAhCAQAaBLKNFRnHehgAEekbAztHa3mK0wGiB0aLa5OKT4BgtitmlJdswWuRz8xrDaJHPSp+axjBaFLOyEhgtjET5LUaL8qxU0sYlRguMFtWUQ2kIQAACEIAABCAAAQi0RKDti+wthU21IxC4cPlsdPbSKZ4pDC5duzgC2W7v+u316Wj6wqk5e347Hf8Ffrdpzm30GC3mlj9Hh0DoBNo+97P6MVpgtMBoUW028ElwjBbF7NKSbRgt8rl5jWG0yGelT01jGC2KWVkJjBZGovwWo0V5Vipp4xKjBUaLasqhNAQgAAEIQAACEIAABFoiYBfD29q2FDbVjkBg4dvfi77/+q/zTGGgW4j09XH1y4+jqR/92pw9r3z+fl/RN95ujBaNI6VCCMwrAm2d8yXrxWiB0QKjRbWpwyfBMVoUs0tLtmG0yOfmNYbRIp+VPjWNYbQoZmUlMFoYifJbjBblWamkjUuMFhgtqimH0hCAAAQgAAEIQAACEGiJQPKieNN/txQ21Y5AYNn+h6OHd97NM4XBlqOrRyDb7V2vnTsRnVx+55w9r52a6jbAgKLHaBFQZxAKBAIk0PS5XlZ9GC0wWmC0qDYB+CQ4RotidmnJNowW+dy8xjBa5LPSp6YxjBbFrKwERgsjUX6L0aI8K5W0cYnRAqNFNeVQGgIQgAAEIAABCEAAAi0RyLo43tT7LYVNtRCAAAQgkEEAo0UGGN6GAAQGBJo6xyuqB6MFRguMFtUmHZ8Ex2hRzC4t2YbRIp+b1xhGi3xW+tQ0htGimJWVwGhhJMpvMVqUZ6WSNi4xWmC0qKYcSkMAAhCAAAQgAAEIQKAlAkUXyUf9vKWwqRYCEIAABDIIYLTIAMPbEIDAgMCo53Zl98dogdECo0W1SccnwTFaFLNLS7ZhtMjn5jWG0SKflT41jWG0KGZlJTBaGInyW4wW5VmppI1LjBYYLaoph9IQgAAEIAABCEAAAhBoiUDZi+V1y7UUNtVCAAIQgEAGgUOHDkUTExOD59QUt2TJwMTbEOgtgbrndFX3w2iB0QKjRbVpxifBMVoUs0tLtmG0yOfmNYbRIp+VPjWNYbQoZmUlMFoYifJbjBblWamkjUuMFhgtqimH0hCAAAQgAAEIQAACEGiJQNWL5lXLtxR20NXu27cvGhsbCzpGgoMABCAAAQhAoJ8Eqp7L1S2P0QKjBUaLanOMT4JjtChml5Zsw2iRz81rDKNFPit9ahrDaFHMykpgtDAS5bcYLcqzUkkblxgtMFpUUw6lIQABCEAAAhCAAAQg0BKBuhfPy+7XUthBViuDxYIFC6IbbrghWrRoUZAxEhQEIAABCEAAAv0mUPYcbtRyGC0wWmC0qDbX+CQ4RotidmnJNowW+dy8xjBa5LPSp6YxjBbFrKwERgsjUX6L0aI8K5W0cYnRAqNFNeVQGgIQgAAEIAABCEAAAi0RGPUietH+LYUdVLXeYCGTBUaLoLqHYCAAAQhAAAIQcASKzt2a+hyjBUYLjBZu4JV46ZPgGC2KgaUl2zBa5HPzGsNokc9Kn5rGMFoUs7ISGC2MRPktRovyrFTSxiVGC4wW1ZRDaQhAAAIQgAAEIAABCLREoKmL6Vn1tBR2ENWmGSwwWgTRNQQBAQhAAAIQgEAGgaxztqbfx2iB0QKjRcYgzHjbJ8ExWmRAcm+nJdswWjhAKS+9xjBapABKvGUaw2iRAJPzJ0aLHDgZH2G0yACT8baNS4wWPTVaNP2Fhfqqf2GBGczQABpAA2gADaABNDC7Gsj4btTpt/MMFhgtOt21BA8BCEAAAhCY9wRm61x4PhktfBJk1apV0bp16yIldLdv3x7t2bMn0rnhgQMHokOHDg2edRlr//nyMGZKhIjZ2NhYtHHjxmjr1q3R+Ph49M4770T79+8f8JJW6jDTfvON2auvvhopqSujxZo1awbMpLNdu3bN6GxycrIWLzGeT+PSJ9uksbVr10YbNmyY0ZjGpWlMOqmjMe0z3zRmBiiMFsWzrc1jGC2KWVkJY+bn/k2bNs2MS+Z+I/WrrTGzuX/16tWxuV/MdI4xytw/n+ax5Nyv8wuvsabmfs3/oT9uCDXAuv9w2W92L9jDG95oAA2gATSABtAAGuiGBkI9768TVxmDBUaLOmTZBwIQgAAEIACB2SIwW+fQlgRXckBJAiXXlTDWxXAlRJVIXrlyZaSkn5LLSjTo4nmIT8W3YsWKQQJcyck2jRZKhoiZzjtl4hAzJY91TDFTIkaxhMxMfan41LfqYzFTn6vvt23b1rjRQswOHjwY05kxe/PNNyMl/MRM8YSqM0u0WRJccXujxe7duwftUztHSbYlx6VpTCYYaUx9Zby6qDG1wzSmMdSUAcrGpeYyYyaNrV+/vrPjUvOJJSg1z5jGLKErrdT5f2Eak8mly3O/zWOaOzQmZmvuF7O9e/fOzP1pGgvx/6RiMmZ+7jeN2bhU+8wANarGNBcm536by5j749cLNYcl5zH1ifHq+tzvzy8wWszWN4qc49T558E+8UELD3igATSABtAAGkADaAANmAZyTr0781EVg4UZLdjeEMEABmgADaABNDAfNdCZE5iMQO0cre2tJdvMaGHJyc2bNw+Sk/rFpr+wb4lwJWhCe1qiTaYBxa3El5ITSk4qIdZ0QtcSR6p7x44dg2O99dZbg2MrBkuEh8bJ4hEvY6Y+NmZKhIiZrWhhSfBRk23eaCGdiZmOpX6SWUGrHYjZa6+9Fpy2jJm2is9+Oa+4ZXxQO9QeY9a00cISusZLfWW8rB99jKG8ttgsAZ7UmHSghO6oGtM8aQnK5LgUs+S47IrGbFxKY5qT2xiX82nu15gwjc3G3P/zn/980Cc6VlJj0n4o4zAZh41LzWOmMc3DbWnMGy005nfu3NnZuV9zmenMjIlNzv02j9m4LJr7k30byt+mseTcbxpLzv1q9yjnuxmn0sG8zYoW73HxfRSBsy/6QQNoAA2gATSABtBANzQQzDeQmoEsXbo0uvHGGzEN3ECycD4mC2kTukYDaAANVNdAzVOKYHabrXNob7SYmJgYGBKUNNiyZcsgcaREsn5xasYBJWaUpAzxqdhsZQbFrduGWAJcyQoldJWEtURGXca2vyV0lWyzxJGOqWMreRU6M/FSEkRx2soMSrap75XQTSZCmjRaqD+MmRKU+jW1rZ6imELUl8VkzGylAUtQqj1tGi00LpWkMo15XqGOyzSNqb81Ls0A1ZbRIjkupTGNSzOoWH+GtvXMvMY0Ln1Cd1RzSpm5vwsaU/+JmeYxxTvbc7/6RHq2cenn/tC0ZfF4jfm5X7eMmq253+Yy5v749UI7v/BGi/k092dpDKPFHH39qHsizH7xgQsPeKABNIAG0AAaQANoAA1IA/PhwYoW1ZNQJO5ghgbQABpAA/NVA10/t5mtc3RLtsk0IKOFkpO7du2a+ZWuksj61aZ+JawkliUqlawM7an4FKcSbYpbyS8lJ7XUvs4T2zJaqG4dQwkEHVPHVgyhM1NfGjMluxS3fpmtZcplGpAWpAkzp4xitDCd6ZfNprMuM1Ny0pjp1hRipvbInKL2qZ2jJI6Ml41LaUzjUsfpssZs9Q+NFdOYH5d1Nab50hKUYq86uz4ukxpTAlwakEmpqXEpZkro2pi0ud80Jo13cR6zuV/t0TzmNTbKuPQaEzMbl12d+73GbAUQjUvTWBNmHpvL5svc788x2pj7TWPzce73GkuOy1Hm/i5cz2RFC1a0GGnJltn6UshxSBChATSABtAAGkADaGA0DXQ9GeHj1wWPBQsWlFrdYtGiRX5XXkMAAhCAAAQgAIEgCMzWua1PgtgvKPWrfJ/UtWXRlYjXU8nSEJ+KTb+Wt5UslJjUL0FtZQbdb94S4KMk2zwz1akkno6hBJWOqSSfEjCKJWRmFpviVB8rbiXy1fe2MoM0YczqJkK0XxozW9VCx9Svmz2zEPVlMRk3xau4lWQVM7VH30O8zuqO4zRe80VjGiMaK6Yxz6uuxsQ5i5nmAB2zKxozfWlr49I0Jg1IY02NS82DSugm536bx7o292tMah5T/LMx98tskTcubc4IbWsaS879MovZuJQmmjTZSWv2/9Lm/i6NS/WhuImZn/vNmJIcl3XnfjNa6P+uH5dZ5xehacviSdOY+ttrrKm5X6xDf2C0wGiB0QINoAE0gAbQABpAA2igBxoI/YtJnfjKGC4wWtQhyz4QgAAEIAABCLRNoO5F+qr7+eSkLuorcaQkiJItSlQpwacEpRJuSi7oKSNDiE9LsinRprgVvy7q28oMat+opgHxFTPjZsx0DB3LmCkGPUNmZrGpb80woPjV99KADCRNMPO8lERKY2YrNYiZaS1UjSk+Y6a4lTwSM/uFrtpnybKq49HKm74s2ZY1LruiMcXpNaaxIo2pXU1ozMalcU9qTEnKrmpMc5lprOlxKV7zVWNmfmpaYzY20zSmvpLWbVyGOIcpJub+6ucwYqZ53+Yym/vtHMP+X9ocZHN51a39vyw7LvuuMePb9jn5qPVjtOjBRXUTI9vRfgUKP/ihATSABtAAGkADXdbAqF8cQt4/z3CB0SLkniM2CEAAAhCAQH8JzNZ5pSWNfMJNCQOdPyl5rCSC/ZJSyb7QnzIKmMFCvzT2iUn/61y1uy5jS4SImf81uBLtOqYZLhRH6LwsPvWx4k4aBsyYorbWZeZ5JXUmZl5nXWamhK7/ha7a2oTGLOGmcek1pj7rMi9LTJrGTCdNMMsal11mpjlZzJIaa2Jceo0l5/6uaExx2jw2G3O/Z+bHpeLoCjPN/2Jmqxi1qTE/92uu9My6PC7VjrRx2cQ8lqWxLvMyjSUNdnXnMeMc+rcFjBYYLWqfEJrI2ZJ0QgNoAA2gATSABtBA+BoI/YtJE/HpS13yliIYLZogSx0QgAAEIAABCDRNYLbOny25qSSIT4TYEt86f9JThgV7KokV2tNi01aJD7uYn/w1s9poba7L2Pb3zJTY1bH01LEVg48pNF6WiLQYrZ8tYeSTIKMyM17aemY6hulMxxUzzy10ZopVcRszacBMA8asSY15Xqax0HmZzhRnmxoTZ9NZUmMak9ZPisOYhagv4+XHpcWusdLGuEzysjFp/WWxaBsiMx+fxSxmszX3q0+Y+9Ovd9mYrDr3h6Y1rzGbQ/y41Nyvp40ltbeNud+fX9g8FhorP0cYNz8um57HjHPT5+BN14fRAqNF7UnBRM42/R8NXOCCBtAAGkADaAANhKSBpr9IhFyfvuiZ4QKjRcg9RWwQgAAEIACB/hKYrfNES4RYgkBbJYuVNNAFcZ+ktMSCXTQPbWvxWZIt74J+E4mQrORRV5h5XklmPmkkTZhO6ujS9rWtac1+rdslnaUxU39bArwto4WYqU/MbIHGhq8lmL60LaOx0OYviydNY23MZcbLWGnbxbm/LC+1z9pcZx7TPrb/fNWY5pgQ5n71qY2HULZpOmPu/6URN62P0nhpHmtaYzaWQ/+2gNECowVGCzSABtAAGkADaAANoIEeaCD0LyZtxKcvhGNjY21UTZ0QgAAEIAABCEBgJAJ28bjtrU8c+eSRJd0s8WZJXiV6Q33aBXxtFbdPevskm7W5Llvb37aq2552XB9LqLwsLovVYre2NMlMrI2Xtv4YdlyLQ1uLLcStj9Ni9+3x7WxCY75uvbZj+jhCZZaM0WJPtmkumIWoLYvJc0tj5nnpdR2dJevwfWLHtDgsrlC3Fqe2FrtvT7KtdXgl5zDV6Y9hx/WxhMrL4rJYLXbfnqaYJbn5Y9hxLQ5tLbYQtz5Oi923xzObLY2Fysyz0us0XmLXBDOxDv2B0aIHF9XrDnr2G3bOwgQmaAANoAE0gAbQQFc1EPoXE+KDAAQgAAEIQAACfSIw2+eU/mK3XvvkwXx47dvXFFtf53xg5Nvg26bXTTFTPb5uf8yuv/btaoqXr7PrfNLi9+1rg5nqTztuV9/zvPS6CWbJOrvKJitu374meKkOX2fWcbv6vm+bXjfFbD5z88ya4uXr7KqW8uL27WuCWejfDzBaYLRodDJtYtBQBwksNIAG0AAaQANoAA00r4HQv5gQHwQgAAEIQAACEOgTgdk+3/UXvf3rvAvloX/m2+FfN8XW1+lfh84lLz7fDv+6KWaqx9er13nxdOWzZJua4pWs1/7uCpe0OK0NyS3MfrUyTlluTTBL9oP9nRZDV96zNiS3TfBSHcl67e+u8EmL09qQ3DbFLI1bWhxde68tXsl67e+u8fHxWhuS2yY0Fvr3A4wWGC0wWqABNIAG0AAaQANoAA30QAOhfzEhPghAAAIQgAAEINAnAk1ceKaO5s3JMIUpGkADaAANoAE0gAbC0UDo3w8wWvTgojoTQjgTAn1BX6ABNIAG0AAaQANzpYHQv5gQHwQgAAEIQAACEOgTgbk6J+S4fB9BA2gADaABNIAG0AAa6IoGQv9+gNECowW/YEUDaAANoAE0gAbQABrogQZC/2JCfBCAAAQgAAEIQKBPBLpycZs4ScSgATSABtAAGkADaAANzJUGQv9+gNGiBxfV50r8HJeJFw2gATSABtAAGkAD4Wgg9C8mxAcBCEAAAhCAAAT6RIDz5HDOk+kL+gINoAE0gAbQABpAA2FqIPTvBxgtMFrwC1Y0gAbQABpAA2gADaCBHmgg9C8mxAcBCEAAAhCAAAT6RICL+WFezKdf6Bc0gAbQABpAA2gADYSjgdC/H2C06MFFdSaEcCYE+oK+QANoAA2gATSABuZKA6F/MSE+CEAAAhCAAAQg0CcCc3VOyHH5PoIG0AAaQANoAA2gATTQFQ2E/v0AowVGC37BigbQABpAA2gADaABNNADDYT+xYT4IAABCEAAAhCAQJ8IdOXiNnGSiEEDaAANoAE0gAbQABqYKw2E/v0Ao0UPLqrPlfg5LhMvGkADaAANoAE0gAbC0UDoX0yIDwIQgAAEIAABCPSJAOfJ4Zwn0xf0BRpAA2gADaABNIAGwtRA6N8PgjVahA6O+CAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQ6B8BjBb963NaDAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIBATQIYLWqCYzcIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABPpHAKNF//qcFkMAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgUJMARoua4NgNAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAIH+EcBo0b8+p8UQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCNQkgNGiJjh2gwAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCECgfwQwWvSvz2kxBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAI1CWC0qAmO3SAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQ6B8BjBb963NaDAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIBATQIYLWqCYzcIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgNBHeZAAAAaJJREFUAAEIQAACEIAABPpHAKNF//qcFkMAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgUJMARoua4NgNAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAIH+EcBo0b8+p8UQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCNQkgNGiJjh2gwAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCECgfwQwWvSvz2kxBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAI1CWC0qAmO3SAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQ6B8BjBb963NaDAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIBATQIYLWqCYzcIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABPpH4P8AfRSnb99X85oAAAAASUVORK5CYII=" - } - }, - "cell_type": "markdown", - "metadata": { - "originalKey": "f85ac1dc-8678-4b68-a31b-33623c95fd89" - }, - "source": [ - "This scheme summarizes how the scheduler interacts with any external system used to run trial evaluations:\n", - "\n", - "![image-2.png](attachment:image-2.png)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "72643e42-f7e8-4aec-a371-efa5d1991899" - }, - "source": [ - "## 2. Set up a mock external execution system " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "d8e139e3-c453-43f3-8211-0a85453bab54" - }, - "source": [ - "An example of an 'external system' running trial evaluations could be a remote server executing scheduled jobs, a subprocess conducting ML training runs, an engine running physics simulations, etc. For the sake of example here, let us assume a dummy external system with the following client:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import sys\n", - "in_colab = 'google.colab' in sys.modules\n", - "if in_colab:\n", - " %pip install ax-platform" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "executionStartTime": 1646325042150, - "executionStopTime": 1646325042183, - "hidden_ranges": [], - "originalKey": "1dd579d5-2afa-4cad-b6c0-a54343863579", - "requestMsgId": "1dd579d5-2afa-4cad-b6c0-a54343863579" - }, - "outputs": [], - "source": [ - "from random import randint\n", - "from time import time\n", - "from typing import Any, Dict, NamedTuple, Union\n", - "\n", - "from ax.core.base_trial import TrialStatus\n", - "from ax.utils.measurement.synthetic_functions import branin\n", - "\n", - "\n", - "class MockJob(NamedTuple):\n", - " \"\"\"Dummy class to represent a job scheduled on `MockJobQueue`.\"\"\"\n", - "\n", - " id: int\n", - " parameters: Dict[str, Union[str, float, int, bool]]\n", - "\n", - "\n", - "class MockJobQueueClient:\n", - " \"\"\"Dummy class to represent a job queue where the Ax `Scheduler` will\n", - " deploy trial evaluation runs during optimization.\n", - " \"\"\"\n", - "\n", - " jobs: Dict[str, MockJob] = {}\n", - "\n", - " def schedule_job_with_parameters(\n", - " self, parameters: Dict[str, Union[str, float, int, bool]]\n", - " ) -> int:\n", - " \"\"\"Schedules an evaluation job with given parameters and returns job ID.\"\"\"\n", - " # Code to actually schedule the job and produce an ID would go here;\n", - " # using timestamp in microseconds as dummy ID for this example.\n", - " job_id = int(time() * 1e6)\n", - " self.jobs[job_id] = MockJob(job_id, parameters)\n", - " return job_id\n", - "\n", - " def get_job_status(self, job_id: int) -> TrialStatus:\n", - " \"\"\" \"Get status of the job by a given ID. For simplicity of the example,\n", - " return an Ax `TrialStatus`.\n", - " \"\"\"\n", - " job = self.jobs[job_id]\n", - " # Instead of randomizing trial status, code to check actual job status\n", - " # would go here.\n", - " if randint(0, 3) > 0:\n", - " return TrialStatus.COMPLETED\n", - " return TrialStatus.RUNNING\n", - "\n", - " def get_outcome_value_for_completed_job(self, job_id: int) -> Dict[str, float]:\n", - " \"\"\"Get evaluation results for a given completed job.\"\"\"\n", - " job = self.jobs[job_id]\n", - " # In a real external system, this would retrieve real relevant outcomes and\n", - " # not a synthetic function value.\n", - " return {\"branin\": branin(job.parameters.get(\"x1\"), job.parameters.get(\"x2\"))}\n", - "\n", - "\n", - "MOCK_JOB_QUEUE_CLIENT = MockJobQueueClient()\n", - "\n", - "\n", - "def get_mock_job_queue_client() -> MockJobQueueClient:\n", - " \"\"\"Obtain the singleton job queue instance.\"\"\"\n", - " return MOCK_JOB_QUEUE_CLIENT" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "d3127829-507d-46ff-bd4f-81ea1bd21066", - "showInput": false - }, - "source": [ - "## 3. Set up an experiment according to the mock external system\n", - "\n", - "As mentioned above, using a `Scheduler` requires a fully set up experiment with metrics and a runner. Refer to the \"Building Blocks of Ax\" tutorial to learn more about those components, as here we assume familiarity with them. \n", - "\n", - "The following runner and metric set up intractions between the `Scheduler` and the mock external system we assume:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "executionStartTime": 1646325042214, - "executionStopTime": 1646325042307, - "hidden_ranges": [], - "originalKey": "62b96030-89c2-45a6-9250-0f1b529bbd38", - "requestMsgId": "62b96030-89c2-45a6-9250-0f1b529bbd38" - }, - "outputs": [], - "source": [ - "from collections import defaultdict\n", - "from typing import Iterable, Set\n", - "\n", - "from ax.core.base_trial import BaseTrial\n", - "from ax.core.runner import Runner\n", - "from ax.core.trial import Trial\n", - "\n", - "\n", - "class MockJobRunner(Runner): # Deploys trials to external system.\n", - " def run(self, trial: BaseTrial) -> Dict[str, Any]:\n", - " \"\"\"Deploys a trial based on custom runner subclass implementation.\n", - "\n", - " Args:\n", - " trial: The trial to deploy.\n", - "\n", - " Returns:\n", - " Dict of run metadata from the deployment process.\n", - " \"\"\"\n", - " if not isinstance(trial, Trial):\n", - " raise ValueError(\"This runner only handles `Trial`.\")\n", - "\n", - " mock_job_queue = get_mock_job_queue_client()\n", - " job_id = mock_job_queue.schedule_job_with_parameters(\n", - " parameters=trial.arm.parameters\n", - " )\n", - " # This run metadata will be attached to trial as `trial.run_metadata`\n", - " # by the base `Scheduler`.\n", - " return {\"job_id\": job_id}\n", - "\n", - " def poll_trial_status(\n", - " self, trials: Iterable[BaseTrial]\n", - " ) -> Dict[TrialStatus, Set[int]]:\n", - " \"\"\"Checks the status of any non-terminal trials and returns their\n", - " indices as a mapping from TrialStatus to a list of indices. Required\n", - " for runners used with Ax ``Scheduler``.\n", - "\n", - " NOTE: Does not need to handle waiting between polling calls while trials\n", - " are running; this function should just perform a single poll.\n", - "\n", - " Args:\n", - " trials: Trials to poll.\n", - "\n", - " Returns:\n", - " A dictionary mapping TrialStatus to a list of trial indices that have\n", - " the respective status at the time of the polling. This does not need to\n", - " include trials that at the time of polling already have a terminal\n", - " (ABANDONED, FAILED, COMPLETED) status (but it may).\n", - " \"\"\"\n", - " status_dict = defaultdict(set)\n", - " for trial in trials:\n", - " mock_job_queue = get_mock_job_queue_client()\n", - " status = mock_job_queue.get_job_status(\n", - " job_id=trial.run_metadata.get(\"job_id\")\n", - " )\n", - " status_dict[status].add(trial.index)\n", - "\n", - " return status_dict" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "executionStartTime": 1646325042364, - "executionStopTime": 1646325042596, - "originalKey": "66cfd1c1-541a-4206-964c-25dbfafecd2a", - "requestMsgId": "66cfd1c1-541a-4206-964c-25dbfafecd2a" - }, - "outputs": [], - "source": [ - "import pandas as pd\n", - "\n", - "from ax.core.metric import Metric, MetricFetchResult, MetricFetchE\n", - "from ax.core.base_trial import BaseTrial\n", - "from ax.core.data import Data\n", - "from ax.utils.common.result import Ok, Err\n", - "\n", - "\n", - "class BraninForMockJobMetric(Metric): # Pulls data for trial from external system.\n", - " def fetch_trial_data(self, trial: BaseTrial) -> MetricFetchResult:\n", - " \"\"\"Obtains data via fetching it from ` for a given trial.\"\"\"\n", - " if not isinstance(trial, Trial):\n", - " raise ValueError(\"This metric only handles `Trial`.\")\n", - "\n", - " try:\n", - " mock_job_queue = get_mock_job_queue_client()\n", - "\n", - " # Here we leverage the \"job_id\" metadata created by `MockJobRunner.run`.\n", - " branin_data = mock_job_queue.get_outcome_value_for_completed_job(\n", - " job_id=trial.run_metadata.get(\"job_id\")\n", - " )\n", - " df_dict = {\n", - " \"trial_index\": trial.index,\n", - " \"metric_name\": \"branin\",\n", - " \"arm_name\": trial.arm.name,\n", - " \"mean\": branin_data.get(\"branin\"),\n", - " # Can be set to 0.0 if function is known to be noiseless\n", - " # or to an actual value when SEM is known. Setting SEM to\n", - " # `None` results in Ax assuming unknown noise and inferring\n", - " # noise level from data.\n", - " \"sem\": None,\n", - " }\n", - " return Ok(value=Data(df=pd.DataFrame.from_records([df_dict])))\n", - " except Exception as e:\n", - " return Err(\n", - " MetricFetchE(message=f\"Failed to fetch {self.name}\", exception=e)\n", - " )" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "98c546ac-4e5d-4cee-9ea0-68b4d061c65f", - "showInput": false - }, - "source": [ - "Now we can set up the experiment using the runner and metric we defined. This experiment will have a single-objective optimization config, minimizing the Branin function, and the search space that corresponds to that function." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "executionStartTime": 1646325042616, - "executionStopTime": 1646325042623, - "originalKey": "d2d49a52-1b22-469b-8e09-0e68f59000d5", - "requestMsgId": "d2d49a52-1b22-469b-8e09-0e68f59000d5" - }, - "outputs": [], - "source": [ - "from ax import *\n", - "\n", - "\n", - "def make_branin_experiment_with_runner_and_metric() -> Experiment:\n", - " parameters = [\n", - " RangeParameter(\n", - " name=\"x1\",\n", - " parameter_type=ParameterType.FLOAT,\n", - " lower=-5,\n", - " upper=10,\n", - " ),\n", - " RangeParameter(\n", - " name=\"x2\",\n", - " parameter_type=ParameterType.FLOAT,\n", - " lower=0,\n", - " upper=15,\n", - " ),\n", - " ]\n", - "\n", - " objective = Objective(metric=BraninForMockJobMetric(name=\"branin\"), minimize=True)\n", - "\n", - " return Experiment(\n", - " name=\"branin_test_experiment\",\n", - " search_space=SearchSpace(parameters=parameters),\n", - " optimization_config=OptimizationConfig(objective=objective),\n", - " runner=MockJobRunner(),\n", - " is_test=True, # Marking this experiment as a test experiment.\n", - " )\n", - "\n", - "\n", - "experiment = make_branin_experiment_with_runner_and_metric()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "d28afea7-6c3f-4813-af4e-253692718015", - "showInput": false - }, - "source": [ - "## 4. Setting up a `Scheduler`" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "db14819c-a219-483d-ba06-60d30294ad94", - "showInput": false - }, - "source": [ - "### 4A. Auto-selecting a generation strategy\n", - "\n", - "A `Scheduler` requires an Ax `GenerationStrategy` specifying the algorithm to use for the optimization. Here we use the `choose_generation_strategy` utility that auto-picks a generation strategy based on the search space properties. To construct a custom generation strategy instead, refer to the [\"Generation Strategy\" tutorial](https://ax.dev/tutorials/generation_strategy.html).\n", - "\n", - "Importantly, a generation strategy in Ax limits allowed parallelism levels for each generation step it contains. If you would like the `Scheduler` to ensure parallelism limitations, set `max_examples` on each generation step in your generation strategy." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "executionStartTime": 1646325042632, - "executionStopTime": 1646325042699, - "originalKey": "d699d3e9-85d3-40f3-822f-ece6a6cc58e3", - "requestMsgId": "d699d3e9-85d3-40f3-822f-ece6a6cc58e3", - "scrolled": true - }, - "outputs": [], - "source": [ - "from ax.generation_strategy.dispatch_utils import choose_generation_strategy\n", - "\n", - "generation_strategy = choose_generation_strategy(\n", - " search_space=experiment.search_space,\n", - " max_parallelism_cap=3,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "452f36d1-c7d8-477a-87d9-1b9767ace072", - "showInput": false - }, - "source": [ - "Now we have all the components needed to start the scheduler:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "executionStartTime": 1646325042718, - "executionStopTime": 1646325042829, - "hidden_ranges": [], - "originalKey": "139e2f4d-ee86-425b-bece-697ed21c2316", - "requestMsgId": "139e2f4d-ee86-425b-bece-697ed21c2316" - }, - "outputs": [], - "source": [ - "from ax.service.scheduler import Scheduler, SchedulerOptions\n", - "\n", - "\n", - "scheduler = Scheduler(\n", - " experiment=experiment,\n", - " generation_strategy=generation_strategy,\n", - " options=SchedulerOptions(),\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 4B. Optional: Defining a plotting function" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "from ax.plot.trace import optimization_trace_single_method\n", - "from ax.utils.notebook.plotting import render, init_notebook_plotting\n", - "import plotly.io as pio\n", - "\n", - "init_notebook_plotting()\n", - "if in_colab:\n", - " pio.renderers.default = \"colab\"\n", - "\n", - "\n", - "def get_plot():\n", - " best_objectives = np.array(\n", - " [[trial.objective_mean for trial in scheduler.experiment.trials.values()]]\n", - " )\n", - " best_objective_plot = optimization_trace_single_method(\n", - " y=np.minimum.accumulate(best_objectives, axis=1),\n", - " title=\"Model performance vs. # of iterations\",\n", - " ylabel=\"Y\",\n", - " )\n", - " return best_objective_plot" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "f8a2cc5b-f289-497b-80b5-6807d85137b5", - "showInput": false - }, - "source": [ - "## 5. Running the optimization\n", - "\n", - "Once the `Scheduler` instance is set up, user can execute `run_n_trials` as many times as needed, and each execution will add up to the specified `max_trials` trials to the experiment. The number of trials actually run might be less than `max_trials` if the optimization was concluded (e.g. there are no more points in the search space)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "scheduler.run_n_trials(max_trials=3)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "best_objective_plot = get_plot()\n", - "render(best_objective_plot)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "e3740875-5b3c-456d-a674-c2c78dab0e0d", - "showInput": false - }, - "source": [ - "We can examine `experiment` to see that it now has three trials:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "executionStartTime": 1646325045492, - "executionStopTime": 1646325045752, - "originalKey": "0ff23f6f-3011-4962-a691-9187f3e8b222", - "requestMsgId": "0ff23f6f-3011-4962-a691-9187f3e8b222" - }, - "outputs": [], - "source": [ - "from ax.service.utils.report_utils import exp_to_df\n", - "\n", - "exp_to_df(experiment)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "c2888bcc-0c82-4f24-bcb6-105c7e9c4e77", - "showInput": false - }, - "source": [ - "Now we can run `run_n_trials` again to add three more trials to the experiment (this time, without plotting)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "executionStartTime": 1646325045788, - "executionStopTime": 1646325048325, - "originalKey": "e76eb807-0a6c-45bc-a00f-e753ae8ef6db", - "requestMsgId": "e76eb807-0a6c-45bc-a00f-e753ae8ef6db", - "scrolled": true - }, - "outputs": [], - "source": [ - "scheduler.run_n_trials(max_trials=3)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "best_objective_plot = get_plot()\n", - "render(best_objective_plot)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "bee52b5d-a5fe-4554-b294-da9b83e8ff02", - "showInput": false - }, - "source": [ - "Examiniming the experiment, we now see 6 trials, one of which is produced by Bayesian optimization (GPEI):" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "executionStartTime": 1646325048364, - "executionStopTime": 1646325048529, - "originalKey": "39204bbb-757b-4dfb-a685-5d540e621ec9", - "requestMsgId": "39204bbb-757b-4dfb-a685-5d540e621ec9" - }, - "outputs": [], - "source": [ - "exp_to_df(experiment)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "bf89e55c-08cf-480c-914a-2f0c682f74fd", - "showInput": false - }, - "source": [ - "For each call to `run_n_trials`, one can specify a timeout; if `run_n_trials` has been running for too long without finishing its `max_trials`, the operation will exit gracefully:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "executionStartTime": 1646325048565, - "executionStopTime": 1646325049269, - "originalKey": "5b07d1f4-af03-4652-8ed2-bb772b077305", - "requestMsgId": "5b07d1f4-af03-4652-8ed2-bb772b077305" - }, - "outputs": [], - "source": [ - "scheduler.run_n_trials(max_trials=3, timeout_hours=0.00001)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "best_objective_plot = get_plot()\n", - "render(best_objective_plot)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "6363db46-3b18-4a8b-8c0f-3e290806592b", - "showInput": false - }, - "source": [ - "## 6. Leveraging SQL storage and experiment resumption\n", - "\n", - "When a scheduler is SQL-enabled, it will automatically save all updates it makes to the experiment in the course of the optimization. The experiment can then be resumed in the event of a crash or after a pause. The scheduler should be stateless and therefore, the scheduler itself is not saved in the database.\n", - "\n", - "To store state of optimization to an SQL backend, first follow [setup instructions](https://ax.dev/docs/storage.html#sql) on Ax website. Having set up the SQL backend, pass `DBSettings` to the `Scheduler` on instantiation (note that SQLAlchemy dependency will have to be installed – for installation, refer to [optional dependencies](https://ax.dev/docs/installation.html#optional-dependencies) on Ax website):" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "executionStartTime": 1646325049292, - "executionStopTime": 1646325049522, - "hidden_ranges": [], - "originalKey": "c89a6d00-b660-4370-93a6-b46edfc58e07", - "requestMsgId": "c89a6d00-b660-4370-93a6-b46edfc58e07" - }, - "outputs": [], - "source": [ - "from ax.storage.registry_bundle import RegistryBundle\n", - "from ax.storage.sqa_store.db import (\n", - " create_all_tables,\n", - " get_engine,\n", - " init_engine_and_session_factory,\n", - ")\n", - "from ax.storage.sqa_store.decoder import Decoder\n", - "from ax.storage.sqa_store.encoder import Encoder\n", - "from ax.storage.sqa_store.sqa_config import SQAConfig\n", - "from ax.storage.sqa_store.structs import DBSettings\n", - "\n", - "bundle = RegistryBundle(\n", - " metric_clss={BraninForMockJobMetric: None}, runner_clss={MockJobRunner: None}\n", - ")\n", - "\n", - "# URL is of the form \"dialect+driver://username:password@host:port/database\".\n", - "# Instead of URL, can provide a `creator function`; can specify custom encoders/decoders if necessary.\n", - "db_settings = DBSettings(\n", - " url=\"sqlite:///foo.db\",\n", - " encoder=bundle.encoder,\n", - " decoder=bundle.decoder,\n", - ")\n", - "\n", - "# The following lines are only necessary because it is the first time we are using this database\n", - "# in practice, you will not need to run these lines every time you initialize your scheduler\n", - "init_engine_and_session_factory(url=db_settings.url)\n", - "engine = get_engine()\n", - "create_all_tables(engine)\n", - "\n", - "stored_experiment = make_branin_experiment_with_runner_and_metric()\n", - "generation_strategy = choose_generation_strategy(search_space=experiment.search_space)\n", - "\n", - "scheduler_with_storage = Scheduler(\n", - " experiment=stored_experiment,\n", - " generation_strategy=generation_strategy,\n", - " options=SchedulerOptions(),\n", - " db_settings=db_settings,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "6939cf6e-5f6b-4a61-a807-f2fea1c7f5ea", - "showInput": false - }, - "source": [ - "To resume a stored experiment:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "executionStartTime": 1646325049666, - "executionStopTime": 1646325049932, - "hidden_ranges": [], - "originalKey": "351e7fca-4332-41ec-ad7d-6a143e0000ef", - "requestMsgId": "351e7fca-4332-41ec-ad7d-6a143e0000ef" - }, - "outputs": [], - "source": [ - "reloaded_experiment_scheduler = Scheduler.from_stored_experiment(\n", - " experiment_name=\"branin_test_experiment\",\n", - " options=SchedulerOptions(),\n", - " # `DBSettings` are also required here so scheduler has access to the\n", - " # database, from which it needs to load the experiment.\n", - " db_settings=db_settings,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "e4064b5c-3dc0-4be5-bd34-63804ab19047", - "showInput": false - }, - "source": [ - "With the newly reloaded experiment, the `Scheduler` can continue the optimization:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "executionStartTime": 1646325049943, - "executionStopTime": 1646325050416, - "originalKey": "6dddf6e6-1fd3-4e23-a88b-7b964db9b20d", - "requestMsgId": "6dddf6e6-1fd3-4e23-a88b-7b964db9b20d" - }, - "outputs": [], - "source": [ - "reloaded_experiment_scheduler.run_n_trials(max_trials=3)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "e3f24c9e-3da1-4ee0-ab1c-741f624a6014", - "showInput": false - }, - "source": [ - "## 7. Configuring the scheduler with `SchedulerOptions`, like early stopping\n", - "\n", - "`Scheduler` exposes many options to configure the exact settings of the closed-loop optimization to perform. A few notable ones are:\n", - "- `trial_type` –– currently only `Trial` and not `BatchTrial` is supported, but support for `BatchTrial`-s will follow,\n", - "- `tolerated_trial_failure_rate` and `min_failed_trials_for_failure_rate_check` –– together these two settings control how the scheduler monitors the failure rate among trial runs it deploys. Once `min_failed_trials_for_failure_rate_check` is deployed, the scheduler will start checking whether the ratio of failed to total trials is greater than `tolerated_trial_failure_rate`, and if it is, scheduler will exit the optimization with a `FailureRateExceededError`,\n", - "- `ttl_seconds_for_trials` –– sometimes a failure in a trial run means that it will be difficult to query its status (e.g. due to a crash). If this setting is specified, the Ax `Experiment` will automatically mark trials that have been running for too long (more than their 'time-to-live' (TTL) seconds) as failed,\n", - "- `run_trials_in_batches` –– if `True`, the scheduler will attempt to run trials not by calling `Scheduler.run_trial` in a loop, but by calling `Scheduler.run_trials` on all ready-to-deploy trials at once. This could allow for saving compute in cases where the deployment operation has large overhead and deploying many trials at once saves compute. Note that using this option successfully will require your scheduler subclass to implement `MySchedulerSubclass.run_trials` and `MySchedulerSubclass.poll_available_capacity`.\n", - "- `early_stopping_strategy` -- determines whether a trial should be stopped given the current state of the experiment, so that less promising trials can be terminated quickly. For more on this, see the Trial-Level Early Stopping tutorial: https://ax.dev/tutorials/early_stopping/early_stopping.html\n", - "- `global_stopping_strategy` -- determines whether the full optimization should be stopped or not, so that the run terminates when little progress is being made. A `global_stopping_strategy` instance can be passed to `SchedulerOptions` just as it is passed to `AxClient`, as illustrated in the tutorial on Global Stopping Strategy with AxClient: https://ax.dev/tutorials/gss.html\n", - "\n", - "The rest of the options are described in the docstring below:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "executionStartTime": 1646325050451, - "executionStopTime": 1646325050569, - "originalKey": "b9645271-88cd-43f1-9e07-83afe722696d", - "requestMsgId": "b9645271-88cd-43f1-9e07-83afe722696d" - }, - "outputs": [], - "source": [ - "print(SchedulerOptions.__doc__)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "eef1a121-1eee-4302-b586-85958f177b04", - "showInput": false - }, - "source": [ - "## 8. Advanced functionality\n", - "\n", - "### 8a. Reporting results to an external system\n", - "\n", - "The `Scheduler` can report the optimization result to an external system each time there are new completed trials if the user-implemented subclass implements `MySchedulerSubclass.report_results` to do so. For example, the folliwing method:\n", - "\n", - "```\n", - "class MySchedulerSubclass(Scheduler):\n", - " ...\n", - " \n", - " def report_results(self, force_refit: bool = False):\n", - " write_to_external_database(len(self.experiment.trials))\n", - " return (True, {}) # Returns optimization success status and optional dict of outputs.\n", - "```\n", - "could be used to record number of trials in experiment so far in an external database.\n", - "\n", - "Since `report_results` is an instance method, it has access to `self.experiment` and `self.generation_strategy`, which contain all the information about the state of the optimization thus far." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "12b60db0-52d8-4337-ad1c-77fdc3c2452b", - "showInput": false - }, - "source": [ - "### 8b. Using `run_trials_and_yield_results` generator method\n", - "\n", - "In some systems it's beneficial to have greater control over `Scheduler.run_n_trials` instead of just starting it and needing to wait for it to run all the way to completion before having access to its output. For this purpose, the `Scheduler` implements a generator method `run_trials_and_yield_results`, which yields the output of `Scheduler.report_results` each time there are new completed trials and can be used like so:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "executionStartTime": 1646325050601, - "executionStopTime": 1646325050672, - "hidden_ranges": [], - "originalKey": "77bf9ea5-5ec2-4d65-a723-3c0dfeea144b", - "requestMsgId": "77bf9ea5-5ec2-4d65-a723-3c0dfeea144b" - }, - "outputs": [], - "source": [ - "class ResultReportingScheduler(Scheduler):\n", - " def report_results(self, force_refit: bool = False):\n", - " return True, {\n", - " \"trials so far\": len(self.experiment.trials),\n", - " \"currently producing trials from generation step\": self.generation_strategy._curr.model_name,\n", - " \"running trials\": [t.index for t in self.running_trials],\n", - " }" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "executionStartTime": 1646325050680, - "executionStopTime": 1646325057409, - "originalKey": "c037044e-79d8-4c36-92e9-d9f360a9f5fe", - "requestMsgId": "c037044e-79d8-4c36-92e9-d9f360a9f5fe" - }, - "outputs": [], - "source": [ - "experiment = make_branin_experiment_with_runner_and_metric()\n", - "scheduler = ResultReportingScheduler(\n", - " experiment=experiment,\n", - " generation_strategy=choose_generation_strategy(\n", - " search_space=experiment.search_space,\n", - " max_parallelism_cap=3,\n", - " ),\n", - " options=SchedulerOptions(),\n", - ")\n", - "\n", - "for reported_result in scheduler.run_trials_and_yield_results(max_trials=6):\n", - " print(\"Reported result: \", reported_result)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "# Clean up to enable running the tutorial repeatedly with\n", - "# the same results. You wouldn't do this if you wanted to\n", - "# keep adding data to the same experiment.\n", - "from ax.storage.sqa_store.delete import delete_experiment\n", - "\n", - "delete_experiment(\"branin_test_experiment\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "custom": { - "cells": [], - "metadata": { - "fileHeader": "", - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.9.15" - } - }, - "nbformat": 4, - "nbformat_minor": 2 - }, - "indentAmount": 2, - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.4" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/tutorials/sebo/sebo.ipynb b/tutorials/sebo/sebo.ipynb deleted file mode 100644 index ec8cc8c0bbc..00000000000 --- a/tutorials/sebo/sebo.ipynb +++ /dev/null @@ -1,661 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "collapsed": true, - "customInput": null, - "jupyter": { - "outputs_hidden": true - }, - "originalKey": "d3a0136e-94fa-477c-a839-20e5b7f1cdd2", - "showInput": false - }, - "source": [ - "# Sparsity Exploration Bayesian Optimization (SEBO) Ax API \n", - "\n", - "This tutorial introduces the Sparsity Exploration Bayesian Optimization (SEBO) method and demonstrates how to utilize it using the Ax API. SEBO is designed to enhance Bayesian Optimization (BO) by taking the interpretability and simplicity of configurations into consideration. In essence, SEBO incorporates sparsity, modeled as the $L_0$ norm, as an additional objective in BO. By employing multi-objective optimization techniques such as Expected Hyper-Volume Improvement, SEBO enables the joint optimization of objectives while simultaneously incorporating feature-level sparsity. This allows users to efficiently explore different trade-offs between objectives and sparsity.\n", - "\n", - "\n", - "For a more detailed understanding of the SEBO algorithm, please refer to the following publication:\n", - "\n", - "[1] [S. Liu, Q. Feng, D. Eriksson, B. Letham and E. Bakshy. Sparse Bayesian Optimization. International Conference on Artificial Intelligence and Statistics, 2023.](https://proceedings.mlr.press/v206/liu23b/liu23b.pdf)\n", - "\n", - "By following this tutorial, you will learn how to leverage the SEBO method through the Ax API, empowering you to effectively balance objectives and sparsity in your optimization tasks. Let's get started!" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import sys\n", - "import plotly.io as pio\n", - "if 'google.colab' in sys.modules:\n", - " pio.renderers.default = \"colab\"\n", - " %pip install ax-platform" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "customOutput": null, - "executionStartTime": 1689117385062, - "executionStopTime": 1689117389874, - "jupyter": { - "outputs_hidden": false - }, - "originalKey": "cea96143-019a-41c1-a388-545f48992db9", - "requestMsgId": "c2c22a5d-aee0-4a1e-98d9-b360aa1851ff", - "showInput": true - }, - "outputs": [], - "source": [ - "import math\n", - "import os\n", - "import warnings\n", - "\n", - "import matplotlib\n", - "import matplotlib.pyplot as plt\n", - "\n", - "import numpy as np\n", - "import torch\n", - "from ax import Data, Experiment, ParameterType, RangeParameter, SearchSpace\n", - "from ax.core.objective import Objective\n", - "from ax.core.optimization_config import OptimizationConfig\n", - "from ax.metrics.noisy_function import NoisyFunctionMetric\n", - "from ax.generation_strategy.generation_strategy import GenerationStep, GenerationStrategy\n", - "from ax.modelbridge.registry import Generators\n", - "from ax.models.torch.botorch_modular.sebo import SEBOAcquisition\n", - "from ax.models.torch.botorch_modular.surrogate import Surrogate\n", - "from ax.runners.synthetic import SyntheticRunner\n", - "from ax.service.ax_client import AxClient, ObjectiveProperties\n", - "from botorch.acquisition.multi_objective import qNoisyExpectedHypervolumeImprovement\n", - "from botorch.models import SaasFullyBayesianSingleTaskGP, SingleTaskGP\n", - "from pyre_extensions import assert_is_instance" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "%matplotlib inline\n", - "matplotlib.rcParams.update({\"font.size\": 16})\n", - "\n", - "warnings.filterwarnings('ignore')\n", - "SMOKE_TEST = os.environ.get(\"SMOKE_TEST\")\n", - "\n", - "torch.manual_seed(12345) # To always get the same Sobol points\n", - "tkwargs = {\n", - " \"dtype\": torch.double,\n", - " \"device\": torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\"),\n", - "}" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "7f07af01-ad58-4cfb-beca-f624310d278d", - "showInput": false - }, - "source": [ - "# Demo of using Developer API" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "c8a27a2f-1120-4894-9302-48bfde402268", - "showInput": false - }, - "source": [ - "## Problem Setup \n", - "\n", - "In this simple experiment we use the Branin function embedded in a 10-dimensional space. Additional resources:\n", - "- To set up a custom metric for your problem, refer to the dedicated section of the Developer API tutorial: https://ax.dev/tutorials/gpei_hartmann_developer.html#8.-Defining-custom-metrics.\n", - "- To avoid needing to setup up custom metrics by Ax Service API: https://ax.dev/tutorials/gpei_hartmann_service.html." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "customInput": null, - "executionStartTime": 1689117390036, - "executionStopTime": 1689117390038, - "jupyter": { - "outputs_hidden": false - }, - "originalKey": "e91fc838-9f47-44f1-99ac-4477df208566", - "requestMsgId": "1591e6b0-fa9b-4b9f-be72-683dccbe923a", - "showInput": true - }, - "outputs": [], - "source": [ - "aug_dim = 8 \n", - "\n", - "# evaluation function \n", - "def branin_augment(x_vec, augment_dim):\n", - " assert len(x_vec) == augment_dim\n", - " x1, x2 = (\n", - " 15 * x_vec[0] - 5,\n", - " 15 * x_vec[1],\n", - " ) # Only dimensions 0 and augment_dim-1 affect the value of the function\n", - " t1 = x2 - 5.1 / (4 * math.pi**2) * x1**2 + 5 / math.pi * x1 - 6\n", - " t2 = 10 * (1 - 1 / (8 * math.pi)) * np.cos(x1)\n", - " return t1**2 + t2 + 10" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "customInput": null, - "customOutput": null, - "executionStartTime": 1689117390518, - "executionStopTime": 1689117390540, - "jupyter": { - "outputs_hidden": false - }, - "originalKey": "850830c6-509f-4087-bce8-da0be4fd48ef", - "requestMsgId": "56726053-205d-4d7e-b1b5-1a76324188ee", - "showInput": true - }, - "outputs": [], - "source": [ - "class AugBraninMetric(NoisyFunctionMetric):\n", - " def f(self, x: np.ndarray) -> float:\n", - " return assert_is_instance(branin_augment(x_vec=x, augment_dim=aug_dim), float)\n", - "\n", - "\n", - "# Create search space in Ax \n", - "search_space = SearchSpace(\n", - " parameters=[\n", - " RangeParameter(\n", - " name=f\"x{i}\",\n", - " parameter_type=ParameterType.FLOAT, \n", - " lower=0.0, upper=1.0\n", - " )\n", - " for i in range(aug_dim)\n", - " ]\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "customInput": null, - "executionStartTime": 1689117391899, - "executionStopTime": 1689117391915, - "jupyter": { - "outputs_hidden": false - }, - "originalKey": "d039b709-67c6-475a-96ce-290f869e0f88", - "requestMsgId": "3e23ed64-7d10-430b-b790-91a0c7cf72fe", - "showInput": true - }, - "outputs": [], - "source": [ - "# Create optimization goals \n", - "optimization_config = OptimizationConfig(\n", - " objective=Objective(\n", - " metric=AugBraninMetric(\n", - " name=\"objective\",\n", - " param_names=[f\"x{i}\" for i in range(aug_dim)],\n", - " noise_sd=None, # Set noise_sd=None if you want to learn the noise, otherwise it defaults to 1e-6\n", - " ),\n", - " minimize=True,\n", - " )\n", - ")\n", - "\n", - "# Experiment\n", - "experiment = Experiment(\n", - " name=\"sebo_experiment\",\n", - " search_space=search_space,\n", - " optimization_config=optimization_config,\n", - " runner=SyntheticRunner(),\n", - ")\n", - "\n", - "# target sparse point to regularize towards to. Here we set target sparse value being zero for all the parameters. \n", - "target_point = torch.tensor([0 for _ in range(aug_dim)], **tkwargs)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "e57edb00-eafc-4d07-bdb9-e8cf073b4caa", - "showInput": false - }, - "source": [ - "## Run optimization loop" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "customInput": null, - "customOutput": null, - "executionStartTime": 1689117395051, - "executionStopTime": 1689117395069, - "jupyter": { - "outputs_hidden": false - }, - "originalKey": "c4848148-bff5-44a7-9ad5-41e78ccb413c", - "requestMsgId": "8aa87d22-bf89-471f-be9f-7c31f7b8bd62", - "showInput": true - }, - "outputs": [], - "source": [ - "N_INIT = 10\n", - "\n", - "if SMOKE_TEST:\n", - " N_BATCHES = 1\n", - " BATCH_SIZE = 1\n", - " SURROGATE_CLASS = None # Auto-pick SingleTaskGP\n", - "else:\n", - " N_BATCHES = 4\n", - " BATCH_SIZE = 5\n", - " SURROGATE_CLASS = SaasFullyBayesianSingleTaskGP\n", - "\n", - "print(f\"Doing {N_INIT + N_BATCHES * BATCH_SIZE} evaluations\")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "customInput": null, - "customOutput": null, - "executionStartTime": 1689117396326, - "executionStopTime": 1689117396376, - "jupyter": { - "outputs_hidden": false - }, - "originalKey": "b260d85f-2797-44e3-840a-86587534b589", - "requestMsgId": "2cc516e3-b16e-40ca-805f-dcd792c92fa6", - "showInput": true - }, - "outputs": [], - "source": [ - "# Initial Sobol points\n", - "sobol = Generators.SOBOL(search_space=experiment.search_space)\n", - "for _ in range(N_INIT):\n", - " experiment.new_trial(sobol.gen(1)).run()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "customInput": null, - "customOutput": null, - "executionStartTime": 1689117396900, - "executionStopTime": 1689124188959, - "jupyter": { - "outputs_hidden": false - }, - "originalKey": "7c198035-add2-4717-be27-4fb67c4d1782", - "requestMsgId": "d844fa20-0adf-4ba3-ace5-7253ba678db2", - "showInput": true - }, - "outputs": [], - "source": [ - "data = experiment.fetch_data()\n", - "\n", - "for i in range(N_BATCHES):\n", - "\n", - " model = Generators.BOTORCH_MODULAR(\n", - " experiment=experiment, \n", - " data=data,\n", - " surrogate=Surrogate(botorch_model_class=SURROGATE_CLASS), # can use SAASGP (i.e. SaasFullyBayesianSingleTaskGP) for high-dim cases\n", - " search_space=experiment.search_space,\n", - " botorch_acqf_class=qNoisyExpectedHypervolumeImprovement,\n", - " acquisition_class=SEBOAcquisition,\n", - " acquisition_options={\n", - " \"penalty\": \"L0_norm\", # it can be L0_norm or L1_norm. \n", - " \"target_point\": target_point, \n", - " \"sparsity_threshold\": aug_dim,\n", - " },\n", - " torch_device=tkwargs['device'],\n", - " )\n", - "\n", - " generator_run = model.gen(BATCH_SIZE)\n", - " trial = experiment.new_batch_trial(generator_run=generator_run)\n", - " trial.run()\n", - "\n", - " new_data = trial.fetch_data(metrics=list(experiment.metrics.values()))\n", - " data = Data.from_multiple_data([data, new_data])\n", - " print(f\"Iteration: {i}, Best so far: {data.df['mean'].min():.3f}\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "7998635d-6750-4825-b93d-c7b61f74c3c5", - "showInput": false - }, - "source": [ - "## Plot sparisty vs objective \n", - "\n", - "Visualize the objective and sparsity trade-offs using SEBO. Each point represent designs along the Pareto frontier found by SEBO. The x-axis corresponds to the number of active parameters used, i.e.\n", - "non-sparse parameters, and the y-axis corresponds the best identified objective values. Based on this, decision-makers balance both simplicity/interpretability of generated policies and optimization performance when deciding which configuration to use." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "customInput": null, - "customOutput": null, - "executionStartTime": 1689124189044, - "executionStopTime": 1689124189182, - "jupyter": { - "outputs_hidden": false - }, - "originalKey": "416ccd12-51a1-4bfe-9e10-436cd88ec6be", - "requestMsgId": "5143ae57-1d0d-4f9d-bc9d-9d151f3e9af0", - "showInput": true - }, - "outputs": [], - "source": [ - "def nnz_exact(x, sparse_point):\n", - " return len(x) - (np.array(x) == np.array(sparse_point)).sum()\n", - "\n", - " \n", - "df = data.df\n", - "df['L0_norm'] = df['arm_name'].apply(lambda d: nnz_exact(list(experiment.arms_by_name[d].parameters.values()), [0 for _ in range(aug_dim)]) )" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "customInput": null, - "customOutput": null, - "executionStartTime": 1689124189219, - "executionStopTime": 1689124189321, - "jupyter": { - "outputs_hidden": false - }, - "originalKey": "97b96822-7d7f-4a5d-8458-01ff890d2fde", - "requestMsgId": "34abdf8d-6f0c-48a1-8700-8e2c3075a085", - "showInput": true - }, - "outputs": [], - "source": [ - "result_by_sparsity = {l: df[df.L0_norm <= l]['mean'].min() for l in range(1, aug_dim+1)}\n", - "result_by_sparsity" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "customInput": null, - "customOutput": null, - "executionStartTime": 1689134836494, - "executionStopTime": 1689134837813, - "jupyter": { - "outputs_hidden": false - }, - "originalKey": "7193e2b0-e192-439a-b0d0-08a2029f64ca", - "requestMsgId": "f095d820-55e0-4201-8e3a-77f17b2155f1", - "showInput": true - }, - "outputs": [], - "source": [ - "fig, ax = plt.subplots(figsize=(8, 6))\n", - "ax.plot(list(result_by_sparsity.keys()), list(result_by_sparsity.values()), '.b-', label=\"sebo\", markersize=10)\n", - "ax.grid(True)\n", - "ax.set_title(f\"Branin, D={aug_dim}\", fontsize=20)\n", - "ax.set_xlabel(\"Number of active parameters\", fontsize=20)\n", - "ax.set_ylabel(\"Best value found\", fontsize=20)\n", - "# ax.legend(fontsize=18)\n", - "plt.show()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "1ba68dc9-d60b-4b39-8e58-ea9bdc06b44c", - "showInput": false - }, - "source": [ - "# Demo of Using GenerationStrategy and Service API \n", - "\n", - "Please check [Service API tutorial](https://ax.dev/tutorials/gpei_hartmann_service.html) for more detailed information. " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "45e5586c-55eb-4908-aa73-bca4ee883b56", - "showInput": false - }, - "source": [ - "## Create `GenerationStrategy`" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "customInput": null, - "executionStartTime": 1689124192972, - "executionStopTime": 1689124192975, - "jupyter": { - "outputs_hidden": false - }, - "originalKey": "7c0bfe37-8f1f-4999-8833-42ffb2569c04", - "requestMsgId": "bbd9058a-709e-4262-abe1-720d37e8786f", - "showInput": true - }, - "outputs": [], - "source": [ - "gs = GenerationStrategy(\n", - " name=\"SEBO_L0\",\n", - " steps=[\n", - " GenerationStep( # Initialization step\n", - " model=Generators.SOBOL, \n", - " num_trials=N_INIT,\n", - " ),\n", - " GenerationStep( # BayesOpt step\n", - " model=Generators.BOTORCH_MODULAR,\n", - " # No limit on how many generator runs will be produced\n", - " num_trials=-1,\n", - " model_kwargs={ # Kwargs to pass to `BoTorchModel.__init__`\n", - " \"surrogate\": Surrogate(botorch_model_class=SURROGATE_CLASS),\n", - " \"acquisition_class\": SEBOAcquisition,\n", - " \"botorch_acqf_class\": qNoisyExpectedHypervolumeImprovement,\n", - " \"acquisition_options\": {\n", - " \"penalty\": \"L0_norm\", # it can be L0_norm or L1_norm.\n", - " \"target_point\": target_point, \n", - " \"sparsity_threshold\": aug_dim,\n", - " },\n", - " },\n", - " )\n", - " ]\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "e4911bc6-32cb-42a5-908f-57f3f04e58e5", - "showInput": false - }, - "source": [ - "## Initialize client and set up experiment" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "customInput": null, - "executionStartTime": 1689124192979, - "executionStopTime": 1689124192984, - "jupyter": { - "outputs_hidden": false - }, - "originalKey": "47938102-0613-4b37-acb2-9f1f5f3fe6b1", - "requestMsgId": "38b4b17c-6aae-43b8-aa58-2df045f522fe", - "showInput": true - }, - "outputs": [], - "source": [ - "ax_client = AxClient(generation_strategy=gs)\n", - "\n", - "experiment_parameters = [\n", - " {\n", - " \"name\": f\"x{i}\",\n", - " \"type\": \"range\",\n", - " \"bounds\": [0, 1],\n", - " \"value_type\": \"float\",\n", - " \"log_scale\": False,\n", - " }\n", - " for i in range(aug_dim)\n", - "]\n", - "\n", - "objective_metrics = {\n", - " \"objective\": ObjectiveProperties(minimize=False, threshold=-10),\n", - "}\n", - "\n", - "ax_client.create_experiment(\n", - " name=\"branin_augment_sebo_experiment\",\n", - " parameters=experiment_parameters,\n", - " objectives=objective_metrics,\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "6a7942e4-9727-43d9-8d8d-c327d38c2373", - "showInput": false - }, - "source": [ - "## Define evaluation function " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "customInput": null, - "executionStartTime": 1689124192990, - "executionStopTime": 1689124192992, - "jupyter": { - "outputs_hidden": false - }, - "originalKey": "4e2994ff-36ac-4d48-a789-3d0398e1e856", - "requestMsgId": "8f74a775-a8ce-462d-993c-5c9291c748b9", - "showInput": true - }, - "outputs": [], - "source": [ - "def evaluation(parameters):\n", - " # put parameters into 1-D array\n", - " x = [parameters.get(param[\"name\"]) for param in experiment_parameters]\n", - " res = branin_augment(x_vec=x, augment_dim=aug_dim)\n", - " eval_res = {\n", - " # flip the sign to maximize\n", - " \"objective\": (res * -1, 0.0),\n", - " }\n", - " return eval_res" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "4597531b-7ac8-4dd0-94c4-836672e0f4c4", - "showInput": false - }, - "source": [ - "## Run optimization loop\n", - "\n", - "Running only 1 BO trial for demonstration. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": false, - "customInput": null, - "executionStartTime": 1689124193044, - "executionStopTime": 1689130398208, - "jupyter": { - "outputs_hidden": false - }, - "originalKey": "bc7accb2-48a2-4c88-a932-7c79ec81075a", - "requestMsgId": "f054e5b1-12eb-459b-a508-6944baf82dfb", - "showInput": true - }, - "outputs": [], - "source": [ - "for _ in range(N_INIT + 1): \n", - " parameters, trial_index = ax_client.get_next_trial()\n", - " res = evaluation(parameters)\n", - " ax_client.complete_trial(trial_index=trial_index, raw_data=res)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "fileHeader": "", - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.4" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/tutorials/submitit/submitit.ipynb b/tutorials/submitit/submitit.ipynb deleted file mode 100644 index d671326c11c..00000000000 --- a/tutorials/submitit/submitit.ipynb +++ /dev/null @@ -1,7624 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Hyperparameter Optimization on Slurm via SubmitIt\n", - "\n", - "This notebook serves as a quickstart guide for using the Ax library with the SubmitIt library in an ask-tell loop. [SubmitIt](https://github.com/facebookincubator/submitit/) is a Python toolbox for submitting jobs to [Slurm](https://slurm.schedmd.com/quickstart.html). \n", - "\n", - "The notebook demonstrates how to use the Ax client in an ask-tell loop where each trial is scheduled to run on a Slurm cluster asynchronously.\n", - "\n", - "To use this script, run it on a slurm node either as an interactive notebook or export it as a Python script and run it as a Slurm job.\n", - "\n", - "## Importing Necessary Libraries\n", - "Let's start by importing the necessary libraries." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import sys\n", - "import plotly.io as pio\n", - "if 'google.colab' in sys.modules:\n", - " pio.renderers.default = \"colab\"\n", - " %pip install ax-platform" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import time\n", - "from ax.service.ax_client import AxClient, ObjectiveProperties\n", - "from ax.utils.notebook.plotting import render\n", - "from ax.service.utils.report_utils import exp_to_df\n", - "from submitit import AutoExecutor, LocalJob, DebugJob" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Defining the Function to Optimize\n", - "We'll define a simple function to optimize. This function takes two parameters, and returns a single metric." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "def evaluate(parameters):\n", - " x = parameters[\"x\"]\n", - " y = parameters[\"y\"]\n", - " return {\"result\": (x - 3)**2 + (y - 4)**2}" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Note: SubmitIt's [CommandFunction](https://github.com/facebookincubator/submitit/blob/main/docs/examples.md#working-with-commands) allows you to define commands to run on the node and then redirects the standard output.\n", - "\n", - "## Setting up Ax\n", - "We'll use Ax's Service API for this example. We start by initializing an AxClient and creating an experiment." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[INFO 01-11 17:57:00] ax.service.ax_client: Starting optimization with verbose logging. To disable logging, set the `verbose_logging` argument to `False`. Note that float values in the logs are rounded to 6 decimal points.\n", - "[INFO 01-11 17:57:00] ax.service.utils.instantiation: Inferred value type of ParameterType.FLOAT for parameter x. If that is not the expected value type, you can explicitly specify 'value_type' ('int', 'float', 'bool' or 'str') in parameter dict.\n", - "[INFO 01-11 17:57:00] ax.service.utils.instantiation: Inferred value type of ParameterType.FLOAT for parameter y. If that is not the expected value type, you can explicitly specify 'value_type' ('int', 'float', 'bool' or 'str') in parameter dict.\n", - "[INFO 01-11 17:57:00] ax.service.utils.instantiation: Created search space: SearchSpace(parameters=[RangeParameter(name='x', parameter_type=FLOAT, range=[-10.0, 10.0]), RangeParameter(name='y', parameter_type=FLOAT, range=[-10.0, 10.0])], parameter_constraints=[ParameterConstraint(1.0*x + 1.0*y <= 2.0)]).\n", - "[INFO 01-11 17:57:00] ax.modelbridge.dispatch_utils: Using Models.BOTORCH_MODULAR since there are more ordered parameters than there are categories for the unordered categorical parameters.\n", - "[INFO 01-11 17:57:00] ax.modelbridge.dispatch_utils: Calculating the number of remaining initialization trials based on num_initialization_trials=None max_initialization_trials=None num_tunable_parameters=2 num_trials=None use_batch_trials=False\n", - "[INFO 01-11 17:57:00] ax.modelbridge.dispatch_utils: calculated num_initialization_trials=5\n", - "[INFO 01-11 17:57:00] ax.modelbridge.dispatch_utils: num_completed_initialization_trials=0 num_remaining_initialization_trials=5\n", - "[INFO 01-11 17:57:00] ax.modelbridge.dispatch_utils: `verbose`, `disable_progbar`, and `jit_compile` are not yet supported when using `choose_generation_strategy` with ModularBoTorchModel, dropping these arguments.\n", - "[INFO 01-11 17:57:00] ax.modelbridge.dispatch_utils: Using Bayesian Optimization generation strategy: GenerationStrategy(name='Sobol+BoTorch', steps=[Sobol for 5 trials, BoTorch for subsequent trials]). Iterations after 5 will take longer to generate due to model-fitting.\n" - ] - } - ], - "source": [ - "ax_client = AxClient()\n", - "ax_client.create_experiment(\n", - " name=\"my_experiment\",\n", - " parameters=[\n", - " {\"name\": \"x\", \"type\": \"range\", \"bounds\": [-10.0, 10.0]},\n", - " {\"name\": \"y\", \"type\": \"range\", \"bounds\": [-10.0, 10.0]},\n", - " ],\n", - " objectives={\"result\": ObjectiveProperties(minimize=True)},\n", - " parameter_constraints=[\"x + y <= 2.0\"], # Optional.\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Other commonly used [parameters types](https://ax.dev/docs/glossary.html#parameter) include `choice` parameters and `fixed` parameters. \n", - "\n", - "Tip 1: you can specify additional information for parameters such as `log_scale`, if a parameter operates at a log-scale and `is_ordered` for choice parameters that have a meaningful ordering.\n", - "\n", - "Tip 2: Ax is an excellent choice for multi-objective optimization problems when there are multiple competing objectives and the goal is to find all Pareto-optimal solutions.\n", - "\n", - "Tip 3: One can define constraints on both the parameters and the outcome.\n", - "\n", - "## Setting up SubmitIt\n", - "We'll use SubmitIt's `AutoExecutor` for this example. We start by initializing an `AutoExecutor`, and setting a few commonly used parameters." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "# Log folder and cluster. Specify cluster='local' or cluster='debug' to run the jobs locally during development.\n", - "# When we're are ready for deployment, switch to cluster='slurm' \n", - "executor = AutoExecutor(folder=\"/tmp/submitit_runs\", cluster='debug') \n", - "executor.update_parameters(timeout_min=60) # Timeout of the slurm job. Not including slurm scheduling delay.\n", - "executor.update_parameters(cpus_per_task=2)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Other commonly used Slurm parameters include `partition`, `ntasks_per_node`, `cpus_per_task`, `cpus_per_gpu`, `gpus_per_node`, `gpus_per_task`, `qos`, `mem`, `mem_per_gpu`, `mem_per_cpu`, `account`.\n", - "\n", - "## Running the Optimization Loop\n", - "Now, we're ready to run the optimization loop. We'll use an ask-tell loop, where we ask Ax for a suggestion, evaluate it using our function, and then tell Ax the result.\n", - "\n", - "The example loop schedules new jobs whenever there is availability. For tasks that take a similar amount of time regardless of the parameters, it may make more sense to wait for the whole batch to finish before scheduling the next (so ax can make better informed parameter choices).\n", - "\n", - "Note that `get_next_trials` may not use all available `num_parallel_jobs` if it doesn't have good parameter candidates to run." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[INFO 01-11 17:57:00] ax.service.ax_client: Generated new trial 0 with parameters {'x': -1.756784, 'y': -4.021679}.\n", - "[INFO 01-11 17:57:00] ax.service.ax_client: Generated new trial 1 with parameters {'x': -9.300127, 'y': -4.654682}.\n", - "[INFO 01-11 17:57:00] ax.service.ax_client: Generated new trial 2 with parameters {'x': 4.881288, 'y': -7.929573}.\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[WARNING 01-11 17:57:03] ax.service.utils.report_utils: Column reason missing for all trials. Not appending column.\n", - "[INFO 01-11 17:57:03] ax.service.utils.report_utils: No results present for the specified metrics `[Metric('result')]`. Returning arm parameters and metadata only.\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
trial_indexarm_nametrial_statusgeneration_methodxy
000_0RUNNINGSobol-1.756784-4.021679
111_0RUNNINGSobol-9.300127-4.654682
222_0RUNNINGSobol4.881288-7.929573
\n", - "
" - ], - "text/plain": [ - " trial_index arm_name trial_status generation_method x y\n", - "0 0 0_0 RUNNING Sobol -1.756784 -4.021679\n", - "1 1 1_0 RUNNING Sobol -9.300127 -4.654682\n", - "2 2 2_0 RUNNING Sobol 4.881288 -7.929573" - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[INFO 01-11 17:57:33] ax.service.ax_client: Completed trial 0 with data: {'result': (86.974325, None)}.\n", - "[INFO 01-11 17:57:33] ax.service.ax_client: Completed trial 1 with data: {'result': (226.196643, None)}.\n", - "[INFO 01-11 17:57:33] ax.service.ax_client: Completed trial 2 with data: {'result': (145.853961, None)}.\n", - "[INFO 01-11 17:57:33] ax.service.ax_client: Generated new trial 3 with parameters {'x': 2.752141, 'y': -8.223596}.\n", - "/private/home/marton/miniconda3/envs/axenv/lib/python3.10/site-packages/ax/core/data.py:284: FutureWarning:\n", - "\n", - "The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", - "\n", - "[INFO 01-11 17:57:33] ax.service.ax_client: Generated new trial 4 with parameters {'x': 9.275037, 'y': -7.347285}.\n", - "/private/home/marton/miniconda3/envs/axenv/lib/python3.10/site-packages/ax/core/data.py:284: FutureWarning:\n", - "\n", - "The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", - "\n", - "[WARNING 01-11 17:57:35] ax.service.utils.report_utils: Column reason missing for all trials. Not appending column.\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
trial_indexarm_nametrial_statusgeneration_methodresultxy
000_0COMPLETEDSobol86.974325-1.756784-4.021679
111_0COMPLETEDSobol226.196643-9.300127-4.654682
222_0COMPLETEDSobol145.8539614.881288-7.929573
333_0RUNNINGSobolNaN2.752141-8.223596
444_0RUNNINGSobolNaN9.275037-7.347285
\n", - "
" - ], - "text/plain": [ - " trial_index arm_name trial_status generation_method result x \\\n", - "0 0 0_0 COMPLETED Sobol 86.974325 -1.756784 \n", - "1 1 1_0 COMPLETED Sobol 226.196643 -9.300127 \n", - "2 2 2_0 COMPLETED Sobol 145.853961 4.881288 \n", - "3 3 3_0 RUNNING Sobol NaN 2.752141 \n", - "4 4 4_0 RUNNING Sobol NaN 9.275037 \n", - "\n", - " y \n", - "0 -4.021679 \n", - "1 -4.654682 \n", - "2 -7.929573 \n", - "3 -8.223596 \n", - "4 -7.347285 " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[INFO 01-11 17:58:05] ax.service.ax_client: Completed trial 3 with data: {'result': (149.477736, None)}.\n", - "[INFO 01-11 17:58:05] ax.service.ax_client: Completed trial 4 with data: {'result': (168.136982, None)}.\n", - "[INFO 01-11 17:58:11] ax.service.ax_client: Generated new trial 5 with parameters {'x': 0.590279, 'y': -1.398661}.\n", - "/private/home/marton/miniconda3/envs/axenv/lib/python3.10/site-packages/ax/core/data.py:284: FutureWarning:\n", - "\n", - "The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", - "\n", - "[INFO 01-11 17:58:11] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.\n", - "[INFO 01-11 17:58:17] ax.service.ax_client: Generated new trial 6 with parameters {'x': -2.248477, 'y': 1.686329}.\n", - "/private/home/marton/miniconda3/envs/axenv/lib/python3.10/site-packages/ax/core/data.py:284: FutureWarning:\n", - "\n", - "The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", - "\n", - "[INFO 01-11 17:58:17] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.\n", - "[INFO 01-11 17:58:23] ax.service.ax_client: Generated new trial 7 with parameters {'x': 1.439472, 'y': -3.621688}.\n", - "/private/home/marton/miniconda3/envs/axenv/lib/python3.10/site-packages/ax/core/data.py:284: FutureWarning:\n", - "\n", - "The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", - "\n", - "[WARNING 01-11 17:58:26] ax.service.utils.report_utils: Column reason missing for all trials. Not appending column.\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
trial_indexarm_nametrial_statusgeneration_methodresultxy
000_0COMPLETEDSobol86.974325-1.756784-4.021679
111_0COMPLETEDSobol226.196643-9.300127-4.654682
222_0COMPLETEDSobol145.8539614.881288-7.929573
333_0COMPLETEDSobol149.4777362.752141-8.223596
444_0COMPLETEDSobol168.1369829.275037-7.347285
555_0RUNNINGBoTorchNaN0.590279-1.398661
666_0RUNNINGBoTorchNaN-2.2484771.686329
777_0RUNNINGBoTorchNaN1.439472-3.621688
\n", - "
" - ], - "text/plain": [ - " trial_index arm_name trial_status generation_method result x \\\n", - "0 0 0_0 COMPLETED Sobol 86.974325 -1.756784 \n", - "1 1 1_0 COMPLETED Sobol 226.196643 -9.300127 \n", - "2 2 2_0 COMPLETED Sobol 145.853961 4.881288 \n", - "3 3 3_0 COMPLETED Sobol 149.477736 2.752141 \n", - "4 4 4_0 COMPLETED Sobol 168.136982 9.275037 \n", - "5 5 5_0 RUNNING BoTorch NaN 0.590279 \n", - "6 6 6_0 RUNNING BoTorch NaN -2.248477 \n", - "7 7 7_0 RUNNING BoTorch NaN 1.439472 \n", - "\n", - " y \n", - "0 -4.021679 \n", - "1 -4.654682 \n", - "2 -7.929573 \n", - "3 -8.223596 \n", - "4 -7.347285 \n", - "5 -1.398661 \n", - "6 1.686329 \n", - "7 -3.621688 " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[INFO 01-11 17:58:56] ax.service.ax_client: Completed trial 5 with data: {'result': (34.952299, None)}.\n", - "[INFO 01-11 17:58:56] ax.service.ax_client: Completed trial 6 with data: {'result': (32.899584, None)}.\n", - "[INFO 01-11 17:58:56] ax.service.ax_client: Completed trial 7 with data: {'result': (60.525376, None)}.\n", - "[INFO 01-11 17:59:03] ax.service.ax_client: Generated new trial 8 with parameters {'x': 0.308729, 'y': 1.691271}.\n", - "/private/home/marton/miniconda3/envs/axenv/lib/python3.10/site-packages/ax/core/data.py:284: FutureWarning:\n", - "\n", - "The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", - "\n", - "[INFO 01-11 17:59:03] ax.modelbridge.torch: The observations are identical to the last set of observations used to fit the model. Skipping model fitting.\n", - "[INFO 01-11 17:59:09] ax.service.ax_client: Generated new trial 9 with parameters {'x': 0.3043, 'y': 1.6957}.\n", - "/private/home/marton/miniconda3/envs/axenv/lib/python3.10/site-packages/ax/core/data.py:284: FutureWarning:\n", - "\n", - "The behavior of DataFrame concatenation with empty or all-NA entries is deprecated. In a future version, this will no longer exclude empty or all-NA columns when determining the result dtypes. To retain the old behavior, exclude the relevant entries before the concat operation.\n", - "\n", - "[WARNING 01-11 17:59:11] ax.service.utils.report_utils: Column reason missing for all trials. Not appending column.\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
trial_indexarm_nametrial_statusgeneration_methodresultxy
000_0COMPLETEDSobol86.974325-1.756784-4.021679
111_0COMPLETEDSobol226.196643-9.300127-4.654682
222_0COMPLETEDSobol145.8539614.881288-7.929573
333_0COMPLETEDSobol149.4777362.752141-8.223596
444_0COMPLETEDSobol168.1369829.275037-7.347285
555_0COMPLETEDBoTorch34.9522990.590279-1.398661
666_0COMPLETEDBoTorch32.899584-2.2484771.686329
777_0COMPLETEDBoTorch60.5253761.439472-3.621688
888_0RUNNINGBoTorchNaN0.3087291.691271
999_0RUNNINGBoTorchNaN0.3043001.695700
\n", - "
" - ], - "text/plain": [ - " trial_index arm_name trial_status generation_method result x \\\n", - "0 0 0_0 COMPLETED Sobol 86.974325 -1.756784 \n", - "1 1 1_0 COMPLETED Sobol 226.196643 -9.300127 \n", - "2 2 2_0 COMPLETED Sobol 145.853961 4.881288 \n", - "3 3 3_0 COMPLETED Sobol 149.477736 2.752141 \n", - "4 4 4_0 COMPLETED Sobol 168.136982 9.275037 \n", - "5 5 5_0 COMPLETED BoTorch 34.952299 0.590279 \n", - "6 6 6_0 COMPLETED BoTorch 32.899584 -2.248477 \n", - "7 7 7_0 COMPLETED BoTorch 60.525376 1.439472 \n", - "8 8 8_0 RUNNING BoTorch NaN 0.308729 \n", - "9 9 9_0 RUNNING BoTorch NaN 0.304300 \n", - "\n", - " y \n", - "0 -4.021679 \n", - "1 -4.654682 \n", - "2 -7.929573 \n", - "3 -8.223596 \n", - "4 -7.347285 \n", - "5 -1.398661 \n", - "6 1.686329 \n", - "7 -3.621688 \n", - "8 1.691271 \n", - "9 1.695700 " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[INFO 01-11 17:59:41] ax.service.ax_client: Completed trial 8 with data: {'result': (12.573169, None)}.\n", - "[INFO 01-11 17:59:41] ax.service.ax_client: Completed trial 9 with data: {'result': (12.576597, None)}.\n", - "[WARNING 01-11 17:59:41] ax.service.utils.report_utils: Column reason missing for all trials. Not appending column.\n" - ] - }, - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
trial_indexarm_nametrial_statusgeneration_methodresultxy
000_0COMPLETEDSobol86.974325-1.756784-4.021679
111_0COMPLETEDSobol226.196643-9.300127-4.654682
222_0COMPLETEDSobol145.8539614.881288-7.929573
333_0COMPLETEDSobol149.4777362.752141-8.223596
444_0COMPLETEDSobol168.1369829.275037-7.347285
555_0COMPLETEDBoTorch34.9522990.590279-1.398661
666_0COMPLETEDBoTorch32.899584-2.2484771.686329
777_0COMPLETEDBoTorch60.5253761.439472-3.621688
888_0COMPLETEDBoTorch12.5731690.3087291.691271
999_0COMPLETEDBoTorch12.5765970.3043001.695700
\n", - "
" - ], - "text/plain": [ - " trial_index arm_name trial_status generation_method result x \\\n", - "0 0 0_0 COMPLETED Sobol 86.974325 -1.756784 \n", - "1 1 1_0 COMPLETED Sobol 226.196643 -9.300127 \n", - "2 2 2_0 COMPLETED Sobol 145.853961 4.881288 \n", - "3 3 3_0 COMPLETED Sobol 149.477736 2.752141 \n", - "4 4 4_0 COMPLETED Sobol 168.136982 9.275037 \n", - "5 5 5_0 COMPLETED BoTorch 34.952299 0.590279 \n", - "6 6 6_0 COMPLETED BoTorch 32.899584 -2.248477 \n", - "7 7 7_0 COMPLETED BoTorch 60.525376 1.439472 \n", - "8 8 8_0 COMPLETED BoTorch 12.573169 0.308729 \n", - "9 9 9_0 COMPLETED BoTorch 12.576597 0.304300 \n", - "\n", - " y \n", - "0 -4.021679 \n", - "1 -4.654682 \n", - "2 -7.929573 \n", - "3 -8.223596 \n", - "4 -7.347285 \n", - "5 -1.398661 \n", - "6 1.686329 \n", - "7 -3.621688 \n", - "8 1.691271 \n", - "9 1.695700 " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "total_budget = 10\n", - "num_parallel_jobs = 3\n", - "\n", - "jobs = []\n", - "submitted_jobs = 0\n", - "# Run until all the jobs have finished and our budget is used up.\n", - "while submitted_jobs < total_budget or jobs:\n", - " for job, trial_index in jobs[:]:\n", - " # Poll if any jobs completed\n", - " # Local and debug jobs don't run until .result() is called.\n", - " if job.done() or type(job) in [LocalJob, DebugJob]:\n", - " result = job.result()\n", - " ax_client.complete_trial(trial_index=trial_index, raw_data=result)\n", - " jobs.remove((job, trial_index))\n", - " \n", - " # Schedule new jobs if there is availablity\n", - " trial_index_to_param, _ = ax_client.get_next_trials(\n", - " max_trials=min(num_parallel_jobs - len(jobs), total_budget - submitted_jobs))\n", - " for trial_index, parameters in trial_index_to_param.items():\n", - " job = executor.submit(evaluate, parameters)\n", - " submitted_jobs += 1\n", - " jobs.append((job, trial_index))\n", - " time.sleep(1)\n", - " \n", - " # Display the current trials.\n", - " display(exp_to_df(ax_client.experiment))\n", - "\n", - " # Sleep for a bit before checking the jobs again to avoid overloading the cluster. \n", - " # If you have a large number of jobs, consider adding a sleep statement in the job polling loop aswell.\n", - " time.sleep(30)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "\n", - "## Finally\n", - "\n", - "We can retrieve the best parameters and render the response surface." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "[INFO 01-11 18:00:11] ax.service.ax_client: Retrieving contour plot with parameter 'x' on X-axis and 'y' on Y-axis, for metric 'result'. Remaining parameters are affixed to the middle of their range.\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Best set of parameters: {'x': -2.2484768683250875, 'y': 1.6863286966529074}\n", - "Mean objective value: {'result': 32.90128530853501}\n" - ] - }, - { - "data": { - "text/html": [ - " \n", - " " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "linkText": "Export to plot.ly", - "plotlyServerURL": "https://plot.ly", - "showLink": false - }, - "data": [ - { - "autocolorscale": false, - "autocontour": true, - "colorbar": { - "tickfont": { - "size": 8 - }, - "ticksuffix": "", - "x": 0.45, - "y": 0.5 - }, - "colorscale": [ - [ - 0, - "rgb(247,252,253)" - ], - [ - 0.125, - "rgb(229,245,249)" - ], - [ - 0.25, - "rgb(204,236,230)" - ], - [ - 0.375, - "rgb(153,216,201)" - ], - [ - 0.5, - "rgb(102,194,164)" - ], - [ - 0.625, - "rgb(65,174,118)" - ], - [ - 0.75, - "rgb(35,139,69)" - ], - [ - 0.875, - "rgb(0,109,44)" - ], - [ - 1, - "rgb(0,68,27)" - ] - ], - "contours": { - "coloring": "heatmap" - }, - "hoverinfo": "x+y+z", - "ncontours": 25, - "type": "contour", - "x": [ - -10, - -9.591836734693878, - -9.183673469387756, - -8.775510204081632, - -8.36734693877551, - -7.959183673469388, - -7.551020408163265, - -7.142857142857142, - -6.73469387755102, - -6.326530612244898, - -5.918367346938775, - -5.5102040816326525, - -5.1020408163265305, - -4.6938775510204085, - -4.285714285714286, - -3.8775510204081627, - -3.4693877551020407, - -3.0612244897959187, - -2.6530612244897958, - -2.244897959183673, - -1.8367346938775508, - -1.4285714285714288, - -1.020408163265305, - -0.612244897959183, - -0.204081632653061, - 0.204081632653061, - 0.612244897959183, - 1.0204081632653068, - 1.4285714285714288, - 1.8367346938775508, - 2.2448979591836746, - 2.6530612244897966, - 3.0612244897959187, - 3.4693877551020407, - 3.8775510204081627, - 4.2857142857142865, - 4.6938775510204085, - 5.1020408163265305, - 5.510204081632654, - 5.918367346938776, - 6.326530612244898, - 6.73469387755102, - 7.142857142857142, - 7.551020408163264, - 7.95918367346939, - 8.367346938775512, - 8.775510204081634, - 9.183673469387756, - 9.591836734693878, - 10 - ], - "xaxis": "x", - "y": [ - -10, - -9.591836734693878, - -9.183673469387756, - -8.775510204081632, - -8.36734693877551, - -7.959183673469388, - -7.551020408163265, - -7.142857142857142, - -6.73469387755102, - -6.326530612244898, - -5.918367346938775, - -5.5102040816326525, - -5.1020408163265305, - -4.6938775510204085, - -4.285714285714286, - -3.8775510204081627, - -3.4693877551020407, - -3.0612244897959187, - -2.6530612244897958, - -2.244897959183673, - -1.8367346938775508, - -1.4285714285714288, - -1.020408163265305, - -0.612244897959183, - -0.204081632653061, - 0.204081632653061, - 0.612244897959183, - 1.0204081632653068, - 1.4285714285714288, - 1.8367346938775508, - 2.2448979591836746, - 2.6530612244897966, - 3.0612244897959187, - 3.4693877551020407, - 3.8775510204081627, - 4.2857142857142865, - 4.6938775510204085, - 5.1020408163265305, - 5.510204081632654, - 5.918367346938776, - 6.326530612244898, - 6.73469387755102, - 7.142857142857142, - 7.551020408163264, - 7.95918367346939, - 8.367346938775512, - 8.775510204081634, - 9.183673469387756, - 9.591836734693878, - 10 - ], - "yaxis": "y", - "z": [ - [ - 269.278867722867, - 266.66307665070457, - 263.810649551369, - 260.7369172060047, - 257.46038590601313, - 254.00254368480972, - 250.3875750971642, - 246.64199267863637, - 242.79419705177145, - 238.87398013071822, - 234.9119870333042, - 230.93915241011211, - 226.98612634728758, - 223.0827042094827, - 219.25727409884274, - 215.53629522571217, - 211.94382048878668, - 208.5010768964983, - 205.2261179886575, - 202.13356295539836, - 199.23443752259988, - 196.53613175139225, - 194.04248962667822, - 191.75404468005507, - 189.66841487322736, - 187.78086833459832, - 186.08506857138565, - 184.57400165809605, - 183.24107455830617, - 182.08134486782043, - 181.09278387454816, - 180.27737395619914, - 179.64171774167812, - 179.19678979799056, - 178.95662707725774, - 178.93610800157262, - 179.14828244821274, - 179.60181991162156, - 180.29906451592592, - 181.23498903325353, - 182.39708440335534, - 183.7660082930508, - 185.31673036801942, - 187.01993958153275, - 188.84354796057187, - 190.7541825205459, - 192.71858677906525, - 194.70486274632154, - 196.68348801771958, - 198.62805578430073 - ], - [ - 268.4671169100186, - 265.63763103224755, - 262.5553483185915, - 259.23643651560667, - 255.70057777664874, - 251.97076487825785, - 248.072992657775, - 244.0358550768819, - 239.89006288178973, - 235.6678994193581, - 231.40263290558244, - 227.12790281374578, - 222.87709669215286, - 218.68273224030992, - 214.57585831896952, - 210.58548799407538, - 206.738076769915, - 203.05705974014205, - 199.5624622479086, - 196.27059951479066, - 193.19388130672016, - 190.34073787785542, - 187.71568313539166, - 185.31953030897438, - 183.14977457344673, - 181.20115618015944, - 179.4664165090354, - 177.9372571244225, - 176.60550566924974, - 175.46447486785647, - 174.51045306229514, - 173.7441476836815, - 173.17168625121099, - 172.8045856924115, - 172.65827950507466, - 172.74940154794987, - 173.09251213076737, - 173.69701845178423, - 174.56490727459914, - 175.68966332370485, - 177.05637054600692, - 178.6426757218457, - 180.42022484387547, - 182.3562915836033, - 184.41544295396773, - 186.561160198474, - 188.7573559469493, - 190.96972209905366, - 193.1668291600855, - 195.32090202846837 - ], - [ - 267.40222831723617, - 264.35316612500486, - 261.0346252921401, - 257.46358690746223, - 253.66091031043356, - 249.65111794851623, - 245.4620598426572, - 241.1244713319996, - 236.67144321523938, - 232.13782592743087, - 227.5595893356345, - 222.97315795607193, - 218.41473888068066, - 213.9196573033991, - 209.52171282883253, - 205.25256899876916, - 201.14118869033018, - 197.21332901826352, - 193.49111075870942, - 189.99267867305227, - 186.73197003949628, - 183.71860892261822, - 180.9579431861547, - 178.45124020577745, - 176.196056081873, - 174.18679231634596, - 172.41545361642676, - 170.87262048496774, - 169.54864946735498, - 168.43510891860376, - 167.52643628862782, - 166.82171534821964, - 166.32618480513378, - 166.0515847824408, - 166.01451295857817, - 166.23311810887716, - 166.72319635794344, - 167.4945702404709, - 168.5484718300089, - 169.87647301578534, - 171.46091447194468, - 173.27625798199836, - 175.29080725971545, - 177.4685089233626, - 179.77072709144454, - 182.1579533746559, - 184.59141989080257, - 187.03455511325, - 189.45418138602895, - 191.8213370769897 - ], - [ - 266.0721452130021, - 262.7987872321677, - 259.23889244395826, - 255.41022582696536, - 251.33482000272875, - 247.0387465873374, - 242.55174864715173, - 237.90675268014144, - 233.13928500811798, - 228.2868195638535, - 223.38808259978487, - 218.4823363068246, - 213.60865921687304, - 208.8052377127865, - 204.10868065051204, - 199.55336825240207, - 195.17084697710175, - 190.9892836858411, - 187.03299459876172, - 183.32206664277436, - 179.8720902088096, - 176.69402261042856, - 173.79420057700827, - 171.17451828877464, - 168.83278549768997, - 166.76327898157086, - 164.9575004572296, - 163.40515508960988, - 162.09536627132417, - 161.0181433391678, - 160.1661168166572, - 159.5365331694974, - 159.13329756106265, - 158.96791078272938, - 159.0576131785102, - 159.42142719195473, - 160.07577366041744, - 161.03038081722545, - 162.28524245152911, - 163.82959608292992, - 165.64282660506797, - 167.69623728475094, - 169.95498287178813, - 172.37996115194858, - 174.92963447075564, - 177.56178617468805, - 180.2352065718046, - 182.91126042105003, - 185.5552109361609, - 188.13711193252024 - ], - [ - 264.46512980327105, - 260.96405653775645, - 257.1591930593155, - 253.0690542129778, - 248.71683809365788, - 244.1301806108287, - 239.3407489587876, - 234.38369942015981, - 229.29703245836288, - 224.12087901925884, - 218.89674812009747, - 213.66675967678486, - 208.47288030761246, - 203.35617496357952, - 198.35608432656338, - 193.5097371096664, - 188.8513074790107, - 184.4114303459159, - 180.2166905867192, - 176.28920547001633, - 172.64632176025154, - 169.3004493546735, - 166.2590516625948, - 163.52480979993268, - 161.09597429309576, - 158.96691580431957, - 157.12888633597373, - 155.57100436849493, - 154.28148037990357, - 153.24910169793236, - 152.464996494246, - 151.9246956493843, - 151.63048014637008, - 151.59298226534986, - 151.82908272140097, - 152.35748460208367, - 153.19419851346782, - 154.34815152809108, - 155.8175873915172, - 157.58911004247233, - 159.63919943962821, - 161.936296016616, - 164.44281428815373, - 167.11704958543055, - 169.91500249040328, - 172.79214738620678, - 175.70516217410326, - 178.6135997924481, - 181.4813742667102, - 184.27776573653202 - ], - [ - 262.5699134629136, - 258.83912411812463, - 254.78731603282785, - 250.43371685496606, - 245.80268006872888, - 240.92341787630653, - 235.8295460349776, - 230.558476587296, - 225.15070276291675, - 219.64901876835677, - 214.09770940903235, - 208.54173472309168, - 203.0259260586082, - 197.5942037796147, - 192.28882344870982, - 187.14965676702536, - 182.21351539199603, - 177.51352947908197, - 173.07859764067177, - 168.93292986846345, - 165.0957084115111, - 161.5808922976716, - 158.39718852037248, - 155.54820762239754, - 153.0328156005471, - 150.84569034122478, - 148.97809091701458, - 147.41885188540974, - 146.1556202445354, - 145.17635713662244, - 144.47112757701802, - 144.0341979817753, - 143.86639259156627, - 143.9765973168144, - 144.3797938960864, - 145.0927931973236, - 146.1297702201598, - 147.4978230480531, - 149.19296416938852, - 151.19922042821784, - 153.49057414230813, - 156.0331203037687, - 158.78707841103866, - 161.70868873988485, - 164.75202475962067, - 167.87075349176848, - 171.019874228354, - 174.1574542848739, - 177.2462922222256, - 180.25510319794722 - ], - [ - 260.37591018755256, - 256.4149155503777, - 252.11595955070288, - 247.49894425075706, - 242.58936797644918, - 237.41802927422896, - 232.02050977336512, - 226.4364879761885, - 220.70894407683204, - 214.883309150231, - 209.00659804924027, - 203.12655084349075, - 197.29079623408342, - 191.54604309660158, - 185.93730289391436, - 180.50714560282142, - 175.29499452726623, - 170.33647047441866, - 165.66280255569205, - 161.30033005486476, - 157.27012533909027, - 153.58776930172502, - 150.2633067975852, - 147.30140073815235, - 144.70169348644177, - 142.45937773443598, - 140.56597947045597, - 139.01036266464206, - 137.77997504399806, - 136.86236093680375, - 136.24696256025257, - 135.92718556042456, - 135.9024453465737, - 136.17908153256016, - 136.76874883521808, - 137.68479274352055, - 138.93799022602101, - 140.53222655616986, - 142.46085870363106, - 144.70579442172055, - 147.2391060014448, - 150.02513581100587, - 153.02249830654478, - 156.18596564726852, - 159.46826753311277, - 162.8218381613978, - 166.20054348375467, - 169.56142203840432, - 172.8664553598877, - 176.0839793873941 - ], - [ - 257.8735160408623, - 253.68339907849492, - 249.13896724261355, - 244.2607590757014, - 239.07540852215303, - 233.61530919700607, - 227.918016832141, - 222.02546708059893, - 215.9830904768288, - 209.83888944602035, - 203.64251897853998, - 197.44439271939913, - 191.2948228204516, - 185.2431944296328, - 179.3371727500303, - 173.62194113887196, - 168.13947225228713, - 162.92784064204375, - 158.0205941833123, - 153.44621207786176, - 149.22768619496046, - 145.3822660546293, - 141.9214022265598, - 138.85090849924413, - 136.1713456873977, - 133.87861836619555, - 131.96477644583962, - 130.41902545842106, - 129.22896451740067, - 128.3820754972591, - 127.86745877033714, - 127.67769850490876, - 127.81044690615498, - 128.26890397198548, - 129.06047408725655, - 130.19379729657496, - 131.6749625423484, - 133.50365173714252, - 135.67016609399508, - 138.15448128707132, - 140.92725789264435, - 143.9516641572953, - 147.18530476461626, - 150.58208213600008, - 154.0939821768367, - 157.67280955342886, - 161.2719040982731, - 164.8478713624421, - 168.36234325731456, - 171.78338009882896 - ], - [ - 255.05452203554825, - 250.63796037957007, - 245.85166544212706, - 240.71677647111053, - 235.26105654993677, - 229.51850089795403, - 223.5286335535684, - 217.33560974582053, - 210.98723395902698, - 204.53396812558032, - 198.02796895826205, - 191.52216922880552, - 185.06940430258737, - 178.72157892907563, - 172.52886739020428, - 166.5389412461147, - 160.79622283530082, - 155.3411698436952, - 150.2096072317218, - 145.432137179988, - 141.03367239366207, - 137.03314631396958, - 133.44344744372222, - 130.2716017092093, - 127.51919589832843, - 125.18301391813877, - 123.25585797705779, - 121.72754629941372, - 120.58610151201817, - 119.81914513104923, - 119.41546348202952, - 119.36657570592583, - 119.66791396500521, - 120.31905508922785, - 121.32259576143437, - 122.6817587187477, - 124.39725203509876, - 126.46409226266354, - 128.869215042988, - 131.5905527969497, - 134.5975808670178, - 137.85273666040104, - 141.31315232941927, - 144.93243497304263, - 148.6624168988111, - 152.4548723679014, - 156.26322006252178, - 160.04422636582595, - 163.75963861961492, - 167.3773427875005 - ], - [ - 251.91267273345096, - 247.2739182985481, - 242.25133605310037, - 236.8666338427516, - 231.14870058071648, - 225.13313324077888, - 218.86139379481602, - 212.379777786522, - 205.73833620435585, - 198.98982597452869, - 192.1887173509799, - 185.39026222401543, - 178.649616875861, - 172.02100892757136, - 165.55693765316911, - 159.30739825960455, - 153.31912427950544, - 147.6348490381908, - 142.29259909544697, - 137.32505110040452, - 132.75900669493674, - 128.61505824418876, - 124.90751422905551, - 121.64461643840697, - 118.8290259097992, - 116.45851533244813, - 114.52680600659019, - 113.02452069329901, - 111.94026143540218, - 111.26182907450328, - 110.97754775140626, - 111.07753248506718, - 111.5545823350291, - 112.40430906045196, - 113.62424153218322, - 115.21195748517471, - 117.16261390993692, - 119.46644943465242, - 122.10688438204686, - 125.05967056253792, - 128.29314288783726, - 131.7692694403281, - 135.44512157304374, - 139.2745061566951, - 143.20963765377087, - 147.2028083378573, - 151.2080447005211, - 155.1827185226432, - 159.08898018993028, - 162.89471665706458 - ], - [ - 248.4444076675744, - 243.58922030754377, - 238.33786545923965, - 232.71259245252753, - 226.74341395600496, - 220.467510965533, - 213.9282083129217, - 207.17380179800728, - 200.25639938745633, - 193.23083380301432, - 186.15365547548285, - 179.08219802941184, - 172.07370358212808, - 165.18449425911945, - 158.46917682481273, - 151.97986858364175, - 145.76543512362693, - 139.8707355231243, - 134.3358813414558, - 129.1955366305864, - 124.47832012270449, - 120.20640810659388, - 116.39544485180578, - 113.05481220452076, - 110.18820983363527, - 107.79442651783141, - 105.86818767906253, - 104.40102395803163, - 103.38217205853697, - 102.79954962040125, - 102.64080612249055, - 102.89433620334712, - 103.55000697045561, - 104.59930049740363, - 106.03467641039059, - 107.84818532149728, - 110.02960558042449, - 112.56453716227885, - 115.43291319970304, - 118.60825720805637, - 122.05776711006116, - 125.74308079671997, - 129.62148507773028, - 133.6473604737993, - 137.77372903580022, - 141.95383238909875, - 146.1426906847904, - 150.29857172590272, - 154.38423381521002, - 158.36774826095154 - ], - [ - 244.6498269758033, - 239.58536168452957, - 234.11461566862275, - 228.26035937507686, - 222.05372021963024, - 215.53340020497956, - 208.74443419083812, - 201.73689750795188, - 194.56469995682818, - 187.2844834728462, - 179.95461255053272, - 172.63424175842357, - 165.38244473827066, - 158.25739003784156, - 151.31555010754627, - 144.61093066175383, - 138.19430865642872, - 132.11246945600527, - 126.40744039958629, - 121.11573616305036, - 116.26767328884864, - 111.88688007577262, - 107.99017448675124, - 104.58790784886325, - 101.68468492588359, - 99.28024553506081, - 97.3703201700808, - 95.94737710489488, - 95.0012843206093, - 94.51998112273115, - 94.49024513448961, - 94.89851725596623, - 95.73157830409062, - 96.97679975495919, - 98.62178381603391, - 100.6534033886514, - 103.05644745674817, - 105.81219946521418, - 108.89729167866511, - 112.28308685454417, - 115.9356802427201, - 119.81646344599133, - 123.88310711066268, - 128.09080900522684, - 132.39368442084248, - 136.7462094810879, - 141.10464203785872, - 145.42833173106393, - 149.6808011266451, - 153.83047112528044 - ], - [ - 240.53392397590596, - 235.26857725716428, - 229.58956916939144, - 223.52018335983968, - 217.09261785353473, - 210.346929916864, - 203.32959762613322, - 196.09217125660527, - 188.69005577583326, - 181.18140717278024, - 173.62612334134607, - 166.08491188214757, - 158.61841895347413, - 151.2864048314369, - 144.1469530067459, - 137.2557003544451, - 130.66507613542342, - 124.42353761073602, - 118.57479138417563, - 113.1569982711073, - 108.20199554140622, - 103.73467315269227, - 99.77278162325032, - 96.32737801715996, - 93.40374792654087, - 91.00243079985665, - 89.12008368291558, - 87.75008386715103, - 86.88290433206761, - 86.50642677850446, - 86.60641690580836, - 87.16723594720908, - 88.17257804527296, - 89.60589984883347, - 91.45033306567817, - 93.68808175788104, - 96.29947380151359, - 99.26192353306838, - 102.54906842129914, - 106.13027828127001, - 109.9706301127737, - 114.03133665780281, - 118.27054625956161, - 122.64440491045147, - 127.10827514975426, - 131.61801967058227, - 136.13126419895355, - 140.60854952676434, - 145.01427528144987, - 149.31734823115275 - ], - [ - 236.10810579801068, - 230.6513579925379, - 224.77680351973834, - 218.50827290424127, - 211.87886151317443, - 204.92964521547242, - 197.70817351159943, - 190.26711632822156, - 182.66304562678297, - 174.95532966005754, - 167.2051200790815, - 159.47441430320163, - 151.8251775918572, - 144.31851103609978, - 137.01385311426395, - 129.9682033725724, - 123.23535699224253, - 116.86513827001346, - 110.90261932647904, - 105.3873090276939, - 100.35230791669596, - 95.82351974259124, - 91.81932228448781, - 88.3511545361401, - 85.42470766838065, - 83.04110097414508, - 81.19775342981482, - 79.88885356455339, - 79.10543735037524, - 78.83528614992728, - 79.06308576702678, - 79.7711106474503, - 80.94013206902603, - 82.55006055422932, - 84.58009118432595, - 87.00837872556464, - 89.81140213601427, - 92.96322859941432, - 96.434882649434, - 100.19397872340403, - 104.20470300967469, - 108.42815597764165, - 112.82301031873443, - 117.34640806131755, - 121.9550107903061, - 126.60611755122576, - 131.25876691584833, - 135.87473994604443, - 140.41938426274186, - 144.86219532414538 - ], - [ - 231.39182131670105, - 225.7542774209353, - 219.69831993493062, - 213.24843757988043, - 206.4382566171725, - 199.30942992033505, - 191.9101731719532, - 184.29391063570569, - 176.5180516340492, - 168.64287744265596, - 160.73051879015526, - 152.8440063292138, - 145.04637863814034, - 137.39983435022086, - 129.9649167676577, - 122.79972062082645, - 115.95911123054958, - 109.49394589064197, - 103.45028540020338, - 97.86857986309467, - 92.78280699904174, - 88.2195608951466, - 84.19751681269764, - 80.72820011393017, - 77.81744902155923, - 75.46669042198344, - 73.67382922580593, - 72.43364801942485, - 71.73765018558365, - 71.57350491992972, - 71.92482770829817, - 72.77194464950401, - 74.09305973866627, - 75.86507557305345, - 78.06389880761938, - 80.66431877594044, - 83.63961342916883, - 86.96105391164917, - 90.59746850268318, - 94.51499180375603, - 98.67707439135637, - 103.04477457433325, - 107.5773092397034, - 112.23281109956775, - 116.96922427070743, - 121.74526429426177, - 126.52136770555175, - 131.26055840672797, - 135.92916541047174, - 140.49734253821708 - ], - [ - 226.4133728950045, - 220.60713360766707, - 214.38526914659712, - 207.77297278667714, - 200.80418205243615, - 193.52075521122734, - 185.97118713684927, - 178.20929479585868, - 170.29299477944798, - 162.28318085023977, - 154.24268737185918, - 146.2353221324695, - 138.32495338154453, - 130.57463791105704, - 123.04577903769743, - 115.79730505930893, - 108.88485985007814, - 102.35999733672355, - 96.26937019012274, - 90.65389962410165, - 85.5479070988798, - 80.97819335528752, - 76.96346787603723, - 73.51519247776604, - 70.6391358305788, - 68.33671247701028, - 66.60592101710805, - 65.4417497406991, - 64.83592182593526, - 64.77596705296713, - 65.24454717572107, - 66.22040299546961, - 67.67974341408174, - 69.59713423059537, - 71.94590028129463, - 74.69816146212494, - 77.82463513814108, - 81.29434050104392, - 85.07432996440343, - 89.1295474939414, - 93.42287797831783, - 97.91541274785165, - 102.56692149900914, - 107.33649474362348, - 112.18330438838018, - 117.06742153773287, - 121.95062797535535, - 126.79716004137795, - 131.57433131480036, - 136.25299450793452 - ], - [ - 221.20890430430472, - 215.24765034960467, - 208.87654880077133, - 202.12148621434602, - 195.01664479342628, - 187.6038851986653, - 179.93168337711487, - 172.0539243629323, - 164.0287141479721, - 155.91725934984825, - 147.7828184860035, - 139.6897146720132, - 131.70239667761533, - 123.88453596164189, - 116.29814910696398, - 109.00273705141745, - 102.05443410667088, - 95.50516047201923, - 89.4017713284915, - 83.78519383800977, - 78.68954730230088, - 74.14131853915103, - 70.15902860813688, - 66.75397034064585, - 63.931629933646796, - 61.69306775223847, - 60.03593216293805, - 58.95491578401257, - 58.44148722581295, - 58.48284493629462, - 59.061045035024655, - 60.153897759403854, - 61.73632937530849, - 63.7812817287756, - 66.2601963270298, - 69.14318885679582, - 72.39902125200109, - 75.99497767596506, - 79.89674226663692, - 84.06835838809661, - 88.4723235019778, - 93.0698450307041, - 97.82125547689469, - 102.68656302250314, - 107.626098314218, - 112.601209020446, - 117.5749502669271, - 122.51272068508442, - 127.3828004195688, - 132.15675882014855 - ], - [ - 215.820322546481, - 209.71910228126933, - 203.216366297047, - 196.3386627063994, - 189.12039142694738, - 181.60332296212545, - 173.83572639991627, - 165.87130238809016, - 157.7680662551098, - 149.58725294793706, - 141.39226726465884, - 133.24767999843792, - 125.21826193851643, - 117.36804557495773, - 109.75940512047312, - 102.45214739348447, - 95.5026083209161, - 88.9627518657844, - 82.87927053199626, - 77.29269356881767, - 72.23653993607877, - 67.73666058712209, - 63.81109745213158, - 60.47072727798401, - 57.72049145659935, - 55.560743204673756, - 53.9883368319844, - 52.99717366296989, - 52.57798234189485, - 52.71741299253364, - 53.39734412297344, - 54.595358614163914, - 56.285807159903214, - 58.44069034416136, - 61.03022249648342, - 64.02313450837968, - 67.38679672497317, - 71.08724495062222, - 75.08918691505048, - 79.35605364713876, - 83.85014157281914, - 88.53286966766633, - 93.3651548732276, - 98.30789082795835, - 103.32250127842254, - 108.37153082832147, - 113.4192318677653, - 118.43210733526344, - 123.37937407383627, - 128.2333203734766 - ], - [ - 210.29323957972792, - 204.06820857189268, - 197.4521375080763, - 190.47219022512348, - 183.16295925253098, - 175.56607634721735, - 167.7294899807303, - 159.70653460418214, - 151.55490495260037, - 143.33560815618506, - 135.11192871289379, - 126.94841714847608, - 118.90990074277377, - 111.060509764316, - 103.46271202354284, - 96.17635038009504, - 89.25768121799915, - 82.75841682348296, - 76.72478290307379, - 71.19662068243967, - 66.20660571893066, - 61.779733538924916, - 57.93328507630613, - 54.677399992469496, - 52.01614640224872, - 49.94879767675732, - 48.4709934416305, - 47.57544911737966, - 47.25192554134951, - 47.486558075490095, - 48.26125218721663, - 49.553791976345366, - 51.338515841510635, - 53.5870805381862, - 56.26906717115891, - 59.352391455696, - 62.80355713013073, - 66.58781182521392, - 70.66926581433714, - 75.01102606958854, - 79.57538461388148, - 84.32408396403491, - 89.21866596252224, - 94.2208955262504, - 99.29323917201785, - 104.39937031892501, - 109.50466952739158, - 114.57668790942782, - 119.58554559927512, - 124.50424379160702 - ], - [ - 204.67521841899423, - 198.34338741990288, - 191.63275706399412, - 184.57104779536104, - 177.1930094532079, - 169.5400961050471, - 161.65985772177422, - 153.60512897786796, - 145.43309837929786, - 137.20432100724366, - 128.98171268532482, - 120.82954270151684, - 112.81242908811669, - 104.99433392960488, - 97.43755454936695, - 90.20170849182367, - 83.34271545613124, - 76.91178815283857, - 70.954458326423, - 65.50968786447015, - 60.60915162564358, - 56.2768197758242, - 52.52897535649027, - 49.37473103626831, - 46.81697647526188, - 44.853583662831085, - 43.47865264449803, - 42.683488752190655, - 42.456868471761965, - 42.78451122437741, - 43.64842329690319, - 45.02674450007564, - 46.89411914171026, - 49.22229578823179, - 51.9807134819629, - 55.13697454703224, - 58.65719559075504, - 62.50626779190525, - 66.64806927446273, - 71.0456706366259, - 75.66156616893863, - 80.45795148047365, - 85.39705554333187, - 90.44152333379019, - 95.55483553289596, - 100.70174489420359, - 105.848705218362, - 110.96426839284773, - 116.01942738762259, - 120.98788791038524 - ], - [ - 199.01432276540174, - 192.59332562331568, - 185.80718972749193, - 178.6841202791106, - 171.258975155619, - 163.5729862856108, - 155.67323870482375, - 147.61195951479527, - 139.44567623314995, - 131.2342953431248, - 123.04013597583125, - 114.9269380031432, - 106.95885214891463, - 99.19941305089003, - 91.7104943651406, - 84.55124773271851, - 77.77703479856274, - 71.43837396785776, - 65.57994186200457, - 60.239693355437694, - 55.448189866717414, - 51.22824113923991, - 47.59495061887043, - 44.556196341587224, - 42.11349815384929, - 40.26316484709899, - 38.997607866727435, - 38.30664180363429, - 38.178110091156285, - 38.59734879772829, - 39.546411240135626, - 41.00376763407547, - 42.94448067504264, - 45.34065083881755, - 48.16193719378644, - 51.376040373827365, - 54.94910802695032, - 58.84606709403756, - 63.03090696643259, - 67.46694236083411, - 72.11708128556921, - 76.94411580611444, - 81.91104402454047, - 86.98142251581359, - 92.119740605278, - 97.29180207541894, - 102.4650965369106, - 107.6091418622027, - 112.69578057127545, - 117.699416462479 - ], - [ - 193.35793297702853, - 186.86581792694096, - 180.02333435180034, - 172.85908898556644, - 165.40798443654953, - 157.71097504535325, - 149.81461343769283, - 141.77042196597182, - 133.6341309743811, - 125.46482284042317, - 117.3240113508873, - 109.27467491078542, - 101.38025271871096, - 93.70360716667732, - 86.30595421245147, - 79.2457669548574, - 72.57766680208036, - 66.35133196405508, - 60.61047391682528, - 55.391955647843126, - 50.72514323292245, - 46.63158309327197, - 43.125071199142084, - 40.21212924317658, - 37.8928457976658, - 36.162006201641816, - 35.01044270941402, - 34.42654819573042, - 34.397218654853035, - 34.907267338100155, - 35.93861669239004, - 37.46994144351244, - 39.47671393915424, - 41.93151406242393, - 44.80446134166965, - 48.063666739322656, - 51.67565104106523, - 55.60571476273575, - 59.81826661472419, - 64.27712694929022, - 68.94582364592715, - 73.7878940963244, - 78.76720084280727, - 83.84826174011974, - 88.99658943347231, - 94.17903023665211, - 99.36408957211017, - 104.52223013636683, - 109.62612977675352, - 114.6508884106056 - ], - [ - 187.75179005468297, - 181.2068343493209, - 174.32711541439699, - 167.14154921932274, - 159.68500783691536, - 151.99810121733844, - 144.1267764338526, - 136.12175676892093, - 128.03784991181826, - 119.9331542836426, - 111.868187178634, - 103.90495091999388, - 96.10594615903834, - 88.53313668006528, - 81.2468689872726, - 74.30475379665566, - 67.7605266382669, - 61.66292202570493, - 56.05461920764543, - 50.97134239225709, - 46.441213975626894, - 42.484452758093425, - 39.11347439780988, - 36.33339824431492, - 34.14291625244863, - 32.535457735265624, - 31.50059169642536, - 31.025538438618952, - 31.096084238432567, - 31.69625233722867, - 32.807609877663964, - 34.40887437441084, - 36.47585730415041, - 38.98165572457246, - 41.89698843584003, - 45.19059115061037, - 48.82961569658795, - 52.780007007626025, - 57.00685200133435, - 61.47470573787235, - 66.14790441126263, - 70.99087412635009, - 75.9684411256444, - 81.04614472774215, - 86.19054985212546, - 91.36955238953755, - 96.55266827957449, - 101.71129616733938, - 106.81894390582892, - 111.85141075627665 - ], - [ - 182.23923289419488, - 175.65977834256552, - 168.76176217708925, - 161.5743112715527, - 154.13218331939112, - 146.47556820915656, - 138.649728802605, - 130.704495599854, - 122.69363554034197, - 114.67411615018922, - 106.70528339468282, - 98.84796667254376, - 91.16351923978995, - 83.71279859758715, - 76.55509046476371, - 69.74698341105298, - 63.341210909979935, - 57.38549545835552, - 51.921456096020215, - 46.983671696955014, - 42.59901411983415, - 38.78635762823377, - 35.5567242427843, - 32.913856870366004, - 30.855158522284185, - 29.372915033633305, - 28.45569975838069, - 28.089726686926383, - 28.259652549800336, - 28.94853834956048, - 30.137395062448064, - 31.804813917169284, - 33.926838570649736, - 36.47705649715479, - 39.426841346945864, - 42.74567876492007, - 46.40152486454045, - 50.361166427297924, - 54.590568510989364, - 59.05520623935746, - 63.72038330182986, - 68.5515413418478, - 73.51456338593057, - 78.5760720312227, - 83.70372025911527, - 88.86647018453864, - 94.03485323493871, - 99.18120440731911, - 104.27986341775795, - 109.30733662897167 - ], - [ - 176.86059884892532, - 170.26490421167557, - 163.3672418969529, - 156.19684873020466, - 148.78827961695538, - 141.18122374669403, - 133.42017837429285, - 125.55398935210738, - 117.63527228280388, - 109.71972961095719, - 101.86537761966213, - 94.13169417672052, - 86.57869442816718, - 79.26593869487218, - 72.25147579821109, - 65.59072733460906, - 59.33532609960081, - 53.53193815147486, - 48.221126847954, - 43.43635882778342, - 39.20329153470837, - 35.539482877751965, - 32.454596828477236, - 29.95107370877676, - 28.025159498581118, - 26.66816608586683, - 25.86781161033319, - 25.609407284784098, - 25.876589090778623, - 26.651466494783506, - 27.914399609797897, - 29.6437237048751, - 31.815602281998636, - 34.404047883640914, - 37.3810827289723, - 40.716993189773746, - 44.38063593147311, - 48.339765021840634, - 52.56136139038334, - 57.01195554265688, - 61.657940502505255, - 66.46587487817311, - 71.40277652574025, - 76.43640640678646, - 81.53554069571962, - 86.67022759871483, - 91.81202412265701, - 96.93420742163391, - 102.01195543755684, - 107.0224923014672 - ], - [ - 171.65276289100396, - 165.0588683313125, - 158.17982069208574, - 151.04486653348513, - 143.6882690256989, - 136.14913533263766, - 128.4711168134444, - 120.70198761578416, - 112.89311104220097, - 105.09880466489949, - 97.37561473195481, - 89.78150855051427, - 82.37499105596683, - 75.21414952470208, - 68.35562919649873, - 61.85354340818763, - 55.75832630621777, - 50.11554779489292, - 44.96473665657841, - 40.338309870624286, - 36.2607799432498, - 32.7484455453415, - 29.809672870393612, - 27.445689751012665, - 25.65170701020159, - 24.418186492127873, - 23.732093179083236, - 23.577950977885124, - 23.938529253462818, - 24.795103241363236, - 26.12740490652095, - 27.913461926653284, - 30.12947738400662, - 32.749817279455, - 35.747111429565734, - 39.092444730297416, - 42.755608773026566, - 46.70538734664741, - 50.90985652506433, - 55.33668712721984, - 59.953442736486025, - 64.72786979693103, - 69.62817782263178, - 74.62330797844544, - 79.68318777152743, - 84.77896881524822, - 89.88324395458311, - 94.9702397076645, - 100.01598009323467, - 104.99841848598221 - ], - [ - 166.64879587932413, - 160.0743948264098, - 153.23173295898826, - 146.14996998623806, - 138.862991350645, - 131.4092440123297, - 123.83145797099148, - 116.17625665151637, - 108.49366237691653, - 100.83650473490562, - 93.25973977506533, - 85.81968700146027, - 78.57318956181078, - 71.57670142802777, - 64.88530422150093, - 58.55165613865294, - 52.624876876768795, - 47.149377532092885, - 42.16366033648367, - 37.699162514362015, - 33.779337551146824, - 30.419292228837406, - 27.626165954630167, - 25.40007872412417, - 23.73533556002218, - 22.621675198593962, - 22.0454299646438, - 21.99047928118459, - 22.438901454033243, - 23.3713001413916, - 24.766876438816908, - 26.603371862507373, - 28.856997601642007, - 31.502419857705362, - 34.512826013230224, - 37.86006751852483, - 41.51486240858762, - 45.44703774116431, - 49.62579480965354, - 54.01998426407322, - 58.598382354020984, - 63.329962563786914, - 68.18415877951514, - 73.13111699695418, - 78.14193276936942, - 83.1888714453973, - 88.24556803972989, - 93.28720351758653, - 98.29065447158315, - 103.23461366183105 - ], - [ - 161.87772719120684, - 155.34004195796118, - 148.55094688388488, - 141.5394239931193, - 134.33890051581187, - 126.9870909873924, - 119.52573614815537, - 112.0002400994499, - 104.45920970856235, - 96.95390174804771, - 89.5375837128804, - 82.2648138817027, - 75.19064529890363, - 68.36975730727391, - 61.855517365581335, - 55.69897535086478, - 49.947792480330115, - 44.64510762131809, - 39.82834709681286, - 35.528006341903364, - 31.76656202604761, - 28.557998595608254, - 25.90832664720979, - 23.81671071102963, - 22.276722371247132, - 21.27753929350864, - 20.80501458680881, - 20.842549055369233, - 21.371714636028614, - 22.372620934340063, - 23.82407140797585, - 25.70359152149183, - 27.987413280513408, - 30.650477786530814, - 33.66648789805238, - 37.00801923385028, - 40.64668340602044, - 44.55333115619224, - 48.698282087638006, - 53.05156933370318, - 57.58318999684896, - 62.263354534080726, - 67.06273002901665, - 71.95267341227037, - 76.90545129288971, - 81.89444333900659, - 86.89432629055634, - 91.88123585723413, - 96.8329040523704, - 101.72876998336558 - ], - [ - 157.36440086215447, - 150.88005995599977, - 144.16101888777183, - 137.2359980977618, - 130.13789302736754, - 122.90362099266156, - 115.57387441538815, - 108.19278072578771, - 100.80747133825486, - 93.46756346468932, - 86.22455915102918, - 79.13116591144514, - 72.24054289041808, - 65.60547583105179, - 59.27748346138118, - 53.305857337448856, - 47.73663668697006, - 42.611519216896454, - 37.966707882831116, - 33.83169266994372, - 30.228018114653267, - 27.16863766746104, - 24.65861777602865, - 22.696406499190886, - 21.27506891253067, - 20.383417689519774, - 20.00700359458382, - 20.128925970151883, - 20.730434653284703, - 21.791322539682696, - 23.2901414058817, - 25.20429737494007, - 27.510087767012152, - 30.182730245117682, - 33.196416803897066, - 36.52440735918697, - 40.13916468584543, - 44.01252492223938, - 48.11589468852385, - 52.42046546052544, - 56.89743682974462, - 61.51824172395959, - 66.25476803436067, - 71.07957217294862, - 75.96608084071494, - 80.88877779683895, - 85.82337279158885, - 90.7469501656297, - 95.63809500383462, - 100.47699520521876 - ], - [ - 153.12941712843804, - 146.7143340940219, - 140.0810332838724, - 133.25789685535423, - 126.27722206511729, - 119.17507177617105, - 111.99103963675928, - 104.76792946114091, - 97.55135006372316, - 90.38922801107196, - 83.33124142788878, - 76.42817817775094, - 69.73122155165004, - 63.29116617085892, - 57.15756625534953, - 51.37781777134617, - 45.99617520333399, - 41.05270263316672, - 36.58215716522575, - 32.61280019478558, - 29.165163361169846, - 26.251367827112702, - 23.87586148453383, - 22.036679685080628, - 20.726633717524848, - 19.934381322714387, - 19.64535695748907, - 19.84253788747783, - 20.50703111934743, - 21.618484392545128, - 23.155345631327435, - 25.095011226905868, - 27.413909018657463, - 30.087556989362298, - 33.09062755047482, - 36.39703471245495, - 39.9800507747493, - 43.81245179421853, - 47.866686914494565, - 52.11506489289166, - 56.529950948345046, - 61.083967628055134, - 65.75019424507337, - 70.50236028869188, - 75.31502893460333, - 80.16376736736783, - 85.02530111234479, - 89.8776500135107, - 94.70024393721857, - 99.47401676212131 - ], - [ - 149.18915277044735, - 142.85840825094428, - 136.3256247936816, - 129.61877630410294, - 122.76950202664801, - 115.81295980444655, - 108.78760127346861, - 101.73486797574319, - 94.69880879430859, - 87.72562016530458, - 80.86311117050423, - 74.16009587465842, - 67.66571520374893, - 61.42869033241087, - 55.496509013958004, - 49.914545555153246, - 44.72511417518972, - 39.966454316188674, - 35.6716460818175, - 31.867465629664025, - 28.57330595748462, - 25.800681052283068, - 23.553763810095674, - 21.830482258685365, - 20.623648268477666, - 19.92197935718896, - 19.710984610063406, - 19.97369970576179, - 20.691264287154254, - 21.843347245906998, - 23.408439305517135, - 25.36404311936697, - 27.686795765494495, - 30.352556553949256, - 33.33648634606091, - 36.61313590743556, - 40.156552548766214, - 43.94040780165655, - 47.938144514697484, - 52.123139303570206, - 56.46887525116316, - 60.94911961290952, - 65.53810162239735, - 70.21068603101955, - 74.9425385929442, - 79.71028025320223, - 84.49162729879434, - 89.26551520513496, - 94.01220437541207, - 98.71336644654217 - ], - [ - 145.55585398826074, - 139.323584163047, - 132.90508100433732, - 126.3278460224699, - 119.6228060878899, - 112.82416870759477, - 105.96920558646978, - 99.09796306874338, - 92.25289921623347, - 85.47844817119916, - 78.82051303083506, - 72.32588872423855, - 66.04161635543048, - 60.01427019701962, - 54.28917803826182, - 48.909575006264305, - 43.91569063460278, - 39.34377031215054, - 35.2250415910227, - 31.5846770698205, - 28.440931086095333, - 25.80479144285175, - 23.680351652203683, - 22.065678316609407, - 20.953819476175553, - 20.333764465281405, - 20.191290155040903, - 20.509672280174385, - 21.27025668798703, - 22.452896395108453, - 24.036270278278693, - 25.998106866367564, - 28.31534043611623, - 30.964226008669257, - 33.92043577598106, - 37.1591535476059, - 40.65517757792168, - 44.383036716877015, - 48.317120745124726, - 52.431823062787124, - 56.70169238520194, - 61.10158944435121, - 65.60684459765156, - 70.19341246685245, - 74.83802010630863, - 79.51830563683654, - 84.21294473322985, - 88.90176280530626, - 93.56583116403156, - 98.18754591962019 - ], - [ - 142.2377949532763, - 136.11709037012432, - 129.82551982530134, - 123.39005311226188, - 116.84085466855807, - 110.21114021071456, - 103.53696720577757, - 96.85695748982025, - 90.21195128858525, - 83.64459263651665, - 77.19884669024765, - 70.91944968372113, - 64.85129229865774, - 59.038737093472115, - 53.524870507064705, - 48.35069025214132, - 43.554230814090104, - 39.16963657614001, - 35.22621218300284, - 31.747528469889545, - 28.750743492182863, - 26.246345227730046, - 24.23841497516321, - 22.725296079791107, - 21.70044811142442, - 21.153315733188876, - 21.070124027766326, - 21.4345637097354, - 22.228355117015795, - 23.431693772577347, - 25.023589561494703, - 26.982117836463914, - 29.284603979859014, - 31.90776307730262, - 34.82781391778079, - 38.0205824822615, - 41.46160545781126, - 45.12623995455249, - 48.989782011929464, - 53.02759384360336, - 57.215238045130945, - 61.52861601292137, - 65.94410739810412, - 70.43870736210046, - 74.99015856904379, - 79.57707514510128, - 84.1790561955345, - 88.77678686372212, - 93.35212532593201, - 97.88817453325441 - ], - [ - 139.23949403655624, - 133.2423130080256, - 127.0891342071907, - 120.80634039337059, - 114.42328694807786, - 107.97215927698825, - 101.48776891335973, - 95.00728642984781, - 88.56991003645165, - 82.21646936475037, - 75.98896438924632, - 69.93003972616106, - 64.08239474068307, - 58.48813014210001, - 53.18803240872976, - 48.22079926024823, - 43.62221422842674, - 39.42428964806079, - 35.654420547799916, - 32.334630397418564, - 29.481031043963384, - 27.10362214481981, - 25.206481581195234, - 23.788281723075087, - 22.842994257478082, - 22.36065133667485, - 22.328074381886864, - 22.72952343851061, - 23.54724752272756, - 24.76193300020732, - 26.353057257499515, - 28.299161215883913, - 30.57805752879517, - 33.166992039754746, - 36.042774756592905, - 39.18189388480339, - 42.56062307966566, - 46.15512864967937, - 49.941580408233676, - 53.896267451966175, - 57.99571839595096, - 62.21682445789272, - 66.536963141214, - 70.93411999347276, - 75.38700589865721, - 79.87516751053826, - 84.37908868611476, - 88.88028109127332, - 93.36136249883525, - 97.80612166539042 - ], - [ - 136.561978420673, - 130.69907864170708, - 124.69449356723933, - 118.57396716223768, - 112.36600219636256, - 106.10171792477944, - 99.81465077120336, - 93.54049599786433, - 87.31678899327754, - 81.18252536346826, - 75.17771947659531, - 69.34290153097375, - 63.718553714973424, - 58.344486863623565, - 53.25916070161648, - 48.49895424809259, - 44.097399868725944, - 40.08440706916008, - 36.48552218184638, - 33.3212950903458, - 30.60684177426178, - 28.351680904560226, - 26.55987307080234, - 25.23042267790514, - 24.357854030282567, - 23.932864389397295, - 23.94297672636013, - 24.373142802372215, - 25.206270907058084, - 26.423669308909183, - 28.00540742677758, - 29.9306035412024, - 32.17765161933818, - 34.724401213134186, - 37.54830396113029, - 40.6265385337277, - 43.93612345994234, - 47.45402464604466, - 51.15726190953932, - 55.02301673233994, - 59.02874178421625, - 63.15227158619866, - 67.37193292038732, - 71.66665316847198, - 76.01606459385832, - 80.40060259879299, - 84.80159613007885, - 89.2013486316696, - 93.58320821874733, - 97.93162605412932 - ], - [ - 134.20308672075421, - 128.48397774750438, - 122.63688915770064, - 116.68687789569887, - 110.66155379174764, - 104.5909371943266, - 98.50726347417688, - 92.44473235366651, - 86.43920059044106, - 80.52781709089822, - 74.74860007684808, - 69.13995656311826, - 63.740145299645, - 58.58668580751361, - 53.71571873221105, - 49.16132727539539, - 44.95483701986396, - 41.12412292325743, - 37.69296713346492, - 34.68052569661877, - 32.10096775924005, - 29.96333780989299, - 28.271657689650013, - 27.025242222859376, - 26.21916936854106, - 25.8448342906147, - 25.89052436839826, - 26.341969172755796, - 27.182837328965803, - 28.395166891057443, - 29.959726512044085, - 31.85631178298017, - 34.06398534804846, - 36.561271415231275, - 39.326315611819695, - 42.33702027218155, - 45.5711636455152, - 49.00650956954516, - 52.620912183862714, - 56.392418467418565, - 60.299369898068356, - 64.32050339069588, - 68.43505086360008, - 72.62283626889622, - 76.86436864734848, - 81.14092967641353, - 85.43465422365999, - 89.7286025562287, - 94.00682305952373, - 98.25440456122539 - ], - [ - 132.15779863187944, - 126.59071656378171, - 120.90870941470544, - 115.13610276154927, - 109.29957697731581, - 103.42802470013152, - 97.55235874162189, - 91.70526845647203, - 85.92092314932557, - 80.23462168526613, - 74.68238815133084, - 69.30051430147124, - 64.12505080270532, - 59.191251297912, - 54.53297645890567, - 50.18207007406753, - 46.16772627741737, - 42.51587623955115, - 39.248632676988905, - 36.38383804135442, - 33.9347621540433, - 31.909983046295693, - 30.313461231642364, - 29.14478946067605, - 28.399577171800374, - 28.069918150862435, - 28.144891619111917, - 28.611056676067662, - 29.45291254572649, - 30.653308873218222, - 32.193799810106455, - 34.05494248700438, - 36.21654494188978, - 38.657871063396186, - 41.35781105449085, - 44.295025737775546, - 47.448072089684274, - 50.79551603887564, - 54.31603706256806, - 57.988527659855805, - 61.7921894986696, - 65.70662698705783, - 69.71193822728046, - 73.7888027590275, - 77.91856515496997, - 82.08331336001397, - 86.26595062744326, - 90.45025996670273, - 94.62096015043576, - 98.7637525092926 - ], - [ - 130.4185806106007, - 125.0104849679296, - 119.4998312605198, - 113.91017381750663, - 108.26723166274324, - 102.59874594316196, - 96.9342911728788, - 91.30503847976192, - 85.74346961233282, - 80.28304112996278, - 74.95779902905477, - 69.8019451727913, - 64.84935847649166, - 60.13307610868173, - 55.684743302938074, - 51.53404500895799, - 47.70813859547732, - 44.23111366698964, - 41.12351137905043, - 38.40193901140158, - 36.07881311553864, - 34.16225447748408, - 32.6561413874508, - 31.560308450238324, - 30.870861989919177, - 30.580574108798046, - 30.679316526495413, - 31.15450053143941, - 31.991497731450295, - 33.174025211864176, - 34.68448661585316, - 36.50426686846026, - 38.61398265863417, - 40.99369354214545, - 43.62307991748233, - 46.48159447268735, - 49.54859331076154, - 52.80345211056172, - 56.225671599486255, - 59.79497548102882, - 63.49140289791048, - 67.29539659470889, - 71.18788720767115, - 75.15037355984109, - 79.16499846409249, - 83.2146193123469, - 87.28287262939271, - 91.35423176769811, - 95.41405699107811, - 99.44863731900816 - ], - [ - 128.97573718630701, - 123.73232876285563, - 118.39801429003666, - 112.99554211246044, - 107.54964349137214, - 102.08689034365257, - 96.635510061623, - 91.22515584696906, - 85.88663160115084, - 80.6515711622424, - 75.55207263802494, - 70.62028986775606, - 65.88798479866833, - 61.386046962061, - 57.143989437690294, - 53.18943476380287, - 49.54760899973195, - 46.24086697102902, - 43.28827546621555, - 40.705282201075676, - 38.50349515298775, - 36.69058870444097, - 35.27034086183376, - 34.242792229503166, - 33.60450571006335, - 33.34889862711469, - 33.46661699458208, - 33.94592420584172, - 34.773081804837446, - 35.93270648934626, - 37.408093779153376, - 39.181504106872254, - 41.23441115233848, - 43.54771502755689, - 46.101924569477106, - 48.87731372445862, - 51.85405704257563, - 55.01234886298088, - 58.33251005660725, - 61.79508535571257, - 65.3809334571749, - 69.07131131595929, - 72.8479533919162, - 76.69314609638711, - 80.5897973061517, - 84.5215005604076, - 88.47259341489897, - 92.42820937659651, - 96.37432286313326, - 100.29778670557702 - ], - [ - 127.81775858402939, - 122.74351610259376, - 117.58928648941428, - 112.37698313970132, - 107.13032934199802, - 101.87471686912971, - 96.63702484925304, - 91.44539765433845, - 86.32898119501148, - 81.31761782787814, - 76.44150113103869, - 71.73079317391671, - 67.21520870161439, - 62.92357296836476, - 58.88336283727857, - 55.12024414486392, - 51.65762193087345, - 48.51622338917112, - 45.71373543638954, - 43.264518601055315, - 41.17941567284336, - 39.46566702643075, - 38.126935519752365, - 37.163434028811466, - 36.572140043579765, - 36.34707594728502, - 36.479631349422576, - 36.958904868883224, - 37.77204613810619, - 38.90458339231948, - 40.34072683820705, - 42.063642387086375, - 44.055693921898225, - 46.29865491844784, - 48.77389199049392, - 51.46252389520248, - 54.34555987996725, - 57.404021141468945, - 60.619048759217584, - 63.97200089168307, - 67.44454138818662, - 71.01872134986472, - 74.6770546177371, - 78.40258770277967, - 82.1789643126691, - 85.99048437147775, - 89.82215726344499, - 93.65974894739884, - 97.4898225700954, - 101.29977224033011 - ], - [ - 126.93165676944938, - 122.02988953036387, - 117.0583122917727, - 112.03798078389632, - 106.99159680690178, - 101.94336834756169, - 96.91883312407873, - 91.94464462984597, - 87.0483204329536, - 82.25795334963742, - 77.60188720016538, - 73.10836023685675, - 68.80512106525651, - 64.7190239955444, - 60.87561323671797, - 57.298708048553145, - 54.01000360784146, - 51.028704457422585, - 48.37120837516716, - 46.05085769443447, - 44.07777209890712, - 42.45877171824334, - 41.19739256382542, - 40.29398906430164, - 39.7459119780693, - 39.54774534783553, - 39.691583971021146, - 40.167333039082834, - 40.963013641122245, - 42.06506101399944, - 43.45860604886197, - 45.12773408059445, - 47.055718036436545, - 49.225225426502284, - 51.61850038168232, - 54.21752303200314, - 57.00414906954815, - 59.96023247384944, - 63.06773421468809, - 66.30881939648492, - 69.6659448607143, - 73.12193878812391, - 76.66007339066323, - 80.26413138564844, - 83.91846661875928, - 87.60805895384073, - 91.31856337417946, - 95.03635313506321, - 98.74855676133339, - 102.44308868556303 - ], - [ - 126.30328363060322, - 121.57619701670401, - 116.78873607272538, - 111.96108266587301, - 107.11491049746238, - 102.27324748739456, - 97.46030467493192, - 92.70127104289725, - 88.02207437719146, - 83.44910914909546, - 79.00893349216864, - 74.72793867537749, - 70.63199607303616, - 66.74608849197017, - 63.093934771410744, - 59.69761867022048, - 56.57723494140619, - 53.75056680401757, - 51.23280933708871, - 49.036352257167124, - 47.17063289155681, - 45.64206601686554, - 44.45405204739916, - 43.607059571613206, - 43.09877329470689, - 42.92429477291023, - 43.07638133276885, - 43.54570829712752, - 44.3211408161619, - 45.39000377458119, - 46.738340924069576, - 48.351157146896185, - 50.212640282134984, - 52.306361054272045, - 54.615451256011, - 57.12276145277149, - 59.81100014664713, - 62.662856640865236, - 65.66110987024537, - 68.78872529443015, - 72.02894166451901, - 75.3653491319426, - 78.78195981798864, - 82.26327163596142, - 85.79432587596902, - 89.3607588352257, - 92.94884760749315, - 96.54555003165805, - 100.13853873582731, - 103.7162291923425 - ], - [ - 125.91762663681699, - 121.36639727918144, - 116.76349639367493, - 112.12822234562678, - 107.48122096536841, - 102.84435095059388, - 98.24051879051599, - 93.69348293663704, - 89.2276276500067, - 84.8677078160745, - 80.63856705869028, - 76.56483272013045, - 72.67059270230301, - 68.97906075156129, - 65.51223843356053, - 62.290583639904625, - 59.332696781527964, - 56.6550365868578, - 54.27167735416876, - 52.194118379967065, - 50.43115400795054, - 48.98880942962731, - 47.87034335534787, - 47.076314474344784, - 46.604704806190796, - 46.45109010907818, - 46.60884575945211, - 47.06937602396066, - 47.822355266708016, - 48.85597108950836, - 50.15716135303347, - 51.71183915369264, - 53.50510188018449, - 55.52142227192009, - 57.744820854761535, - 60.15902020821759, - 62.74758223943572, - 65.49403004915028, - 68.38195613399719, - 71.39511864266133, - 74.51752725089773, - 77.73351999501014, - 81.02783214702407, - 84.38565795911, - 87.79270587134386, - 91.23524757885326, - 94.70016119810155, - 98.17496865889164, - 101.64786737630317, - 105.10775622080425 - ], - [ - 125.75907884576758, - 121.38393640125761, - 116.9651082598851, - 112.52100603381214, - 108.0712544397156, - 103.6365604270917, - 99.23855472279126, - 94.89960580054907, - 90.64260697198198, - 86.49073811902933, - 82.46720455743446, - 78.59495663668058, - 74.89639492551476, - 71.39306715725232, - 68.10536443122058, - 65.05222535808414, - 62.250857728580954, - 59.71648768381332, - 57.46214608481452, - 55.498500687562185, - 53.83374079791304, - 52.47351841867843, - 51.4209467607287, - 50.67665373059966, - 50.238885023342064, - 50.103649087691416, - 50.264894719397496, - 50.71471145362813, - 51.443543199196306, - 52.44040650987379, - 53.69310629148203, - 55.188443364277084, - 56.912409937027846, - 58.85037055199472, - 60.98722733408793, - 63.30756937828767, - 65.79580683176246, - 68.43629069345252, - 71.21341960296786, - 74.11173496865996, - 77.11600573841382, - 80.21130398890016, - 83.38307233614269, - 86.61718398103983, - 89.89999601918683, - 93.21839647927008, - 96.55984541691303, - 99.91241028497045, - 103.2647957272297, - 106.60636789821368 - ], - [ - 125.81168148587142, - 121.611994264015, - 117.37591229449922, - 113.12096322098708, - 108.86576343531765, - 104.62989156123311, - 100.43373710986212, - 96.29832455722192, - 92.24511374974972, - 88.2957783127233, - 84.47196461902858, - 80.79503486165892, - 77.2857988353403, - 73.96424012040092, - 70.84924339738657, - 67.95833049718027, - 65.30741337898431, - 62.9105723899346, - 60.77986777425893, - 58.92519139247724, - 57.35416398420542, - 56.072081158455035, - 55.0819088124702, - 54.384326120694595, - 53.97781187732577, - 53.85876806568933, - 54.02167323581601, - 54.45925766822053, - 55.16269235694349, - 56.121784449396515, - 57.32517277868139, - 58.76051834680875, - 60.41468590916503, - 62.27391404687446, - 64.32397220728976, - 66.5503040937624, - 68.93815747594596, - 71.47270097711467, - 74.139128697523, - 76.92275368386692, - 79.80909128907024, - 82.78393341761674, - 85.83341454976909, - 88.94407030848242, - 92.10288919535357, - 95.2973579908726, - 98.51550119904047, - 101.74591482250077, - 104.97779468391875, - 108.20095946224001 - ], - [ - 126.05933848217305, - 122.03370052571704, - 117.97829101776902, - 113.9097619651488, - 109.84573962592073, - 105.80470287644454, - 101.805839343496, - 97.86887974750564, - 94.01391151601301, - 90.26117343017607, - 86.63083385544594, - 83.14275596373624, - 79.81625424764772, - 76.66984750876202, - 73.72101430342715, - 70.98595746467723, - 68.47938469046201, - 66.21431219972862, - 64.20189803116803, - 62.45131065509287, - 60.96963720351857, - 59.76183387882074, - 58.83071912050804, - 58.17700807882181, - 57.79938506216447, - 57.69460907105248, - 57.85764643244759, - 58.281823965683465, - 58.958996036002695, - 59.87971921703256, - 61.033428984062574, - 62.40861377426638, - 63.9929827599066, - 65.77362468523364, - 67.73715604118838, - 69.86985764482976, - 72.15779932792157, - 74.58695291674238, - 77.1432940130749, - 79.81289328411312, - 82.5819980610652, - 85.43710505825743, - 88.36502498081705, - 91.35293971091528, - 94.38845266762164, - 97.45963283720015, - 100.55505287883352, - 103.66382163156653, - 106.77561128517672, - 109.88067943186834 - ], - [ - 126.48600320780291, - 122.63232083034804, - 118.75485338044417, - 114.86939052472026, - 110.99259127469332, - 107.14186765245505, - 103.33524853572547, - 99.59122427918054, - 95.92857327253124, - 92.36617222949441, - 88.92279269517397, - 85.6168869928774, - 82.46636757389936, - 79.48838444095412, - 76.69910593024477, - 74.1135085906538, - 71.74518211887721, - 69.60615522943115, - 67.70674790890334, - 66.0554547057587, - 64.6588625626089, - 63.521605274671785, - 62.64635506494882, - 62.03385014032622, - 61.68295557827535, - 61.59075362178457, - 61.752658527493935, - 62.162550569732694, - 62.81292365348052, - 63.69504119175964, - 64.79909538653095, - 66.11436572996288, - 67.62937332604483, - 69.33202844104767, - 71.20976946110369, - 73.2496921207562, - 75.43866844080907, - 77.7634552663948, - 80.21079262887537, - 82.76749237887731, - 85.42051766877982, - 88.15705392008029, - 90.96457191318315, - 93.83088360175535, - 96.74419119598417, - 99.69312999104979, - 102.66680534820959, - 105.65482417262204, - 108.64732117854399, - 111.63498019099632 - ], - [ - 127.0758384392353, - 123.39141461952933, - 119.6885893710095, - 115.98230764762826, - 112.28828806125, - 108.62291214719372, - 105.00309603459391, - 101.44614522790387, - 97.9695937166259, - 94.59102919329288, - 91.32790676219344, - 88.19735414299484, - 85.21597198501763, - 82.39963347071941, - 79.76328785377322, - 77.32077289520544, - 75.08464127719893, - 73.0660059421329, - 71.27440889346752, - 69.71771729838733, - 68.40204977289821, - 67.33173456343951, - 66.5093000482496, - 65.93549666858482, - 65.60934817140546, - 65.52822899833853, - 65.6879638644955, - 66.08294507711238, - 66.706262955581, - 67.54984480732271, - 68.60459824035289, - 69.86055509125876, - 71.30701285028101, - 72.93267111069937, - 74.72576120491816, - 76.67416777445169, - 78.7655415289448, - 80.98740286657625, - 83.32723635138915, - 85.77257627698269, - 88.3110837006852, - 90.93061542092403, - 93.61928540726396, - 96.36551919137021, - 99.15810170054338, - 101.98621897411715, - 104.83949415545935, - 107.70801810494581, - 110.58237493653226, - 113.45366274513748 - ], - [ - 127.81335099409488, - 124.29496639656455, - 120.76299694685736, - 117.23156419300489, - 113.71547642346277, - 110.2301237250303, - 106.79135747884631, - 103.41535507376524, - 100.11847107381959, - 96.91707657110385, - 93.82738897374868, - 90.86529500109374, - 88.0461701583184, - 85.38469840782335, - 82.89469610650428, - 80.58894449618982, - 78.4790350801475, - 76.57523206001814, - 74.88635562628602, - 73.41968929137539, - 72.18091364970601, - 71.17406798823038, - 70.40154011815854, - 69.86408373049088, - 69.56086157451266, - 69.4895118924789, - 69.64623487204683, - 70.02589543506923, - 70.62213847679749, - 71.42751268989124, - 72.43359932082558, - 73.63114256815535, - 75.01017879322708, - 76.56016222584148, - 78.27008536721465, - 80.12859278602816, - 82.124087445873, - 84.24482907907546, - 86.47902442635201, - 88.81490939447474, - 91.24082335059543, - 93.74527588078749, - 96.31700640201065, - 98.9450370418031, - 101.61871919871831, - 104.32777417786264, - 107.06232826741855, - 109.81294258970365, - 112.57063802853492, - 115.32691550642394 - ], - [ - 128.68350286367013, - 125.32749258510057, - 121.96218377891194, - 118.60089893146551, - 115.25756861605404, - 111.94663243690178, - 108.68292625443671, - 105.4815565133144, - 102.35776290023756, - 99.32677098931215, - 96.4036369751282, - 93.60308702986322, - 90.93935422741511, - 88.42601632755841, - 86.07583797606424, - 83.90062102177431, - 81.91106665061096, - 80.11665286797282, - 78.5255305142241, - 77.14444047659279, - 75.97865408463629, - 75.03193788157319, - 74.3065430999145, - 73.80321929526873, - 73.52125076734217, - 73.45851367734674, - 73.6115512001783, - 73.97566365590168, - 74.54501035840009, - 75.3127198925223, - 76.27100566329386, - 77.41128382032, - 78.72429101074565, - 80.20019981770173, - 81.82873016369814, - 83.59925537116223, - 85.5009019533305, - 87.52264254337385, - 89.65338164996234, - 91.882034151255, - 94.1975966087038, - 96.58921160238106, - 99.04622536792596, - 101.55823905967898, - 104.11515398306604, - 106.70721113930553, - 109.32502541344725, - 111.9596147180354, - 114.60242438341982, - 117.24534706502834 - ] - ], - "zauto": true, - "zmax": 269.278867722867, - "zmin": -269.278867722867 - }, - { - "autocolorscale": false, - "autocontour": true, - "colorbar": { - "tickfont": { - "size": 8 - }, - "ticksuffix": "", - "x": 1, - "y": 0.5 - }, - "colorscale": [ - [ - 0, - "rgb(255,247,251)" - ], - [ - 0.14285714285714285, - "rgb(236,231,242)" - ], - [ - 0.2857142857142857, - "rgb(208,209,230)" - ], - [ - 0.42857142857142855, - "rgb(166,189,219)" - ], - [ - 0.5714285714285714, - "rgb(116,169,207)" - ], - [ - 0.7142857142857143, - "rgb(54,144,192)" - ], - [ - 0.8571428571428571, - "rgb(5,112,176)" - ], - [ - 1, - "rgb(3,78,123)" - ] - ], - "contours": { - "coloring": "heatmap" - }, - "hoverinfo": "x+y+z", - "ncontours": 25, - "type": "contour", - "x": [ - -10, - -9.591836734693878, - -9.183673469387756, - -8.775510204081632, - -8.36734693877551, - -7.959183673469388, - -7.551020408163265, - -7.142857142857142, - -6.73469387755102, - -6.326530612244898, - -5.918367346938775, - -5.5102040816326525, - -5.1020408163265305, - -4.6938775510204085, - -4.285714285714286, - -3.8775510204081627, - -3.4693877551020407, - -3.0612244897959187, - -2.6530612244897958, - -2.244897959183673, - -1.8367346938775508, - -1.4285714285714288, - -1.020408163265305, - -0.612244897959183, - -0.204081632653061, - 0.204081632653061, - 0.612244897959183, - 1.0204081632653068, - 1.4285714285714288, - 1.8367346938775508, - 2.2448979591836746, - 2.6530612244897966, - 3.0612244897959187, - 3.4693877551020407, - 3.8775510204081627, - 4.2857142857142865, - 4.6938775510204085, - 5.1020408163265305, - 5.510204081632654, - 5.918367346938776, - 6.326530612244898, - 6.73469387755102, - 7.142857142857142, - 7.551020408163264, - 7.95918367346939, - 8.367346938775512, - 8.775510204081634, - 9.183673469387756, - 9.591836734693878, - 10 - ], - "xaxis": "x2", - "y": [ - -10, - -9.591836734693878, - -9.183673469387756, - -8.775510204081632, - -8.36734693877551, - -7.959183673469388, - -7.551020408163265, - -7.142857142857142, - -6.73469387755102, - -6.326530612244898, - -5.918367346938775, - -5.5102040816326525, - -5.1020408163265305, - -4.6938775510204085, - -4.285714285714286, - -3.8775510204081627, - -3.4693877551020407, - -3.0612244897959187, - -2.6530612244897958, - -2.244897959183673, - -1.8367346938775508, - -1.4285714285714288, - -1.020408163265305, - -0.612244897959183, - -0.204081632653061, - 0.204081632653061, - 0.612244897959183, - 1.0204081632653068, - 1.4285714285714288, - 1.8367346938775508, - 2.2448979591836746, - 2.6530612244897966, - 3.0612244897959187, - 3.4693877551020407, - 3.8775510204081627, - 4.2857142857142865, - 4.6938775510204085, - 5.1020408163265305, - 5.510204081632654, - 5.918367346938776, - 6.326530612244898, - 6.73469387755102, - 7.142857142857142, - 7.551020408163264, - 7.95918367346939, - 8.367346938775512, - 8.775510204081634, - 9.183673469387756, - 9.591836734693878, - 10 - ], - "yaxis": "y2", - "z": [ - [ - 50.97410920147869, - 50.26007326464553, - 49.60280409800354, - 48.98419879637283, - 48.38430105979118, - 47.78219743795591, - 47.156927834961145, - 46.488341222227525, - 45.757843093129516, - 44.94900058602679, - 44.04799068005432, - 43.04389396062646, - 41.928850076825526, - 40.69810116159964, - 39.34995673168439, - 37.88571862909534, - 36.309607931731335, - 34.628737650791685, - 32.853175328194475, - 30.996137942334247, - 29.074357030375683, - 27.108642859870503, - 25.124658314759486, - 23.153874623969216, - 21.234596552506407, - 19.412764316906635, - 17.741890930428326, - 16.280949723275384, - 15.088551257082452, - 14.212310286560436, - 13.675329055362731, - 13.46654909060166, - 13.542875050446407, - 13.843794572695268, - 14.30985831139062, - 14.89512010243302, - 15.569916579078809, - 16.316459685869535, - 17.12193122648076, - 17.973024083365907, - 18.853855203828505, - 19.747149222317553, - 20.637391790531122, - 21.514434460585264, - 22.376399273174094, - 23.231219110490613, - 24.09653813862569, - 24.997984350131954, - 25.96608585732669, - 27.032360265365753 - ], - [ - 47.77330575802335, - 47.07592053931779, - 46.45246172398714, - 45.88232915903082, - 45.34259104358969, - 44.80912312433718, - 44.257758416346604, - 43.665350385076074, - 43.010677832958756, - 42.27514937593245, - 41.44329320070843, - 40.503040247193454, - 39.445825131810324, - 38.26653983658841, - 36.963382003770164, - 35.537644115865, - 33.99349292067472, - 32.3377905558749, - 30.580009804600795, - 28.732295440963757, - 26.809721550697596, - 24.830791246772932, - 22.81822030004819, - 20.800036780219077, - 18.81100059526535, - 16.89425459455945, - 15.102847089960836, - 13.50008662028781, - 12.156381660992183, - 11.138871321213577, - 10.491916335136434, - 10.215746169099512, - 10.261060919859077, - 10.549283250184228, - 11.003957271683584, - 11.571284569320703, - 12.222578803219708, - 12.944922665695056, - 13.729214276217101, - 14.562095279851679, - 15.424081786974256, - 16.292686613659082, - 17.147823482824016, - 17.977129809828604, - 18.779829364084137, - 19.568521041186933, - 20.36867319457425, - 21.215843215635296, - 22.150969774638362, - 23.214554433779806 - ], - [ - 44.439893107417674, - 43.76093733461724, - 43.17630122577249, - 42.662411550378444, - 42.192737107715075, - 41.73926570105003, - 41.2739827918314, - 40.77021285759874, - 40.20372724307377, - 39.553569025133086, - 38.802585719613035, - 37.937689784977614, - 36.9498848443639, - 35.834105081803365, - 34.58891982345693, - 33.21615775487735, - 31.72050721962177, - 30.10915098202708, - 28.391495099598547, - 26.579051072033625, - 24.685527523034757, - 22.727183015879323, - 20.7234881857506, - 18.69814859788308, - 16.680554901778475, - 14.707747935671856, - 12.826957283792387, - 11.09846873034596, - 9.597344424978347, - 8.409191768252397, - 7.610653832631581, - 7.23116933898925, - 7.223337594167482, - 7.483802709864967, - 7.910157110682773, - 8.43879109320528, - 9.045695327869984, - 9.727198922878639, - 10.479399852209122, - 11.286907909232912, - 12.122887540952561, - 12.956144138670444, - 13.759923843297942, - 14.51924901488585, - 15.235674704825694, - 15.929202187530592, - 16.63713855334299, - 17.40967794430605, - 18.302468702373147, - 19.367520716076296 - ], - [ - 40.9762458865404, - 40.316454367484184, - 39.775329335395995, - 39.32569783609153, - 38.93658461439765, - 38.57517092646144, - 38.208734847472535, - 37.80636933567714, - 37.34034966211859, - 36.78709783843039, - 36.12775073519795, - 35.34837513263558, - 34.43989011356929, - 33.39776187139443, - 32.22153503258884, - 30.914262943185676, - 29.481899550121753, - 27.93271773829184, - 26.27682165087914, - 24.52582090131067, - 22.6927299474724, - 20.792145073897142, - 18.840736733975316, - 16.85808421430397, - 14.86788771225759, - 12.899643589859764, - 10.990991160014593, - 9.19113387169976, - 7.565761296600384, - 6.202318781068969, - 5.206399668820954, - 4.663073768607261, - 4.558067829666954, - 4.761289673940381, - 5.128752428950028, - 5.584389630142802, - 6.116597297749742, - 6.738181379043319, - 7.450581222303871, - 8.230156978229623, - 9.035136976292478, - 9.82030288896771, - 10.549958593849585, - 11.206759032631467, - 11.796968637314347, - 12.35258997948614, - 12.929665683743929, - 13.60132660097434, - 14.445136200606107, - 15.527473314618334 - ], - [ - 37.38706185105953, - 36.745707882681025, - 36.25234180565772, - 35.87535320555561, - 35.57815338952891, - 35.32184481738818, - 35.06782669016219, - 34.78002905066649, - 34.426606613284086, - 33.98105105669857, - 33.422766991071114, - 32.73719890355521, - 31.91560588043371, - 30.95457327156875, - 29.855338316941545, - 28.622997877724163, - 27.265664121321166, - 25.79363807066782, - 24.218678313147734, - 22.553447733048657, - 20.811218785525902, - 19.005902582898813, - 17.152437917902823, - 15.267539144553371, - 13.370771127831047, - 11.485919888575976, - 9.642698389029025, - 7.879036337866584, - 6.244661203953934, - 4.807339638839434, - 3.6618043359630477, - 2.9241980694927734, - 2.6499185231069817, - 2.7186399897404896, - 2.9439598917350187, - 3.243868560515689, - 3.6381121809169596, - 4.168328084497642, - 4.833924398819414, - 5.5844674033775075, - 6.348813950910312, - 7.061337528426652, - 7.676076154434779, - 8.174358579745917, - 8.570325087064251, - 8.91506426843651, - 9.296365091712762, - 9.827866201349188, - 10.623365011056972, - 11.764496307598835 - ], - [ - 33.68004669996077, - 33.05430905394684, - 32.61236149281607, - 32.317014963139634, - 32.1244003104617, - 31.987732243141895, - 31.860907150329993, - 31.701453181526833, - 31.472620142512145, - 31.14461670518937, - 30.695125675908475, - 30.109265304335185, - 29.37915010888502, - 28.503170762770363, - 27.485080224325404, - 26.332952831151275, - 25.058077710765, - 23.673856372124686, - 22.1947921139779, - 20.635677971029992, - 19.011099624788752, - 17.335359163949484, - 15.62288875436796, - 13.889164782674099, - 12.152071360448431, - 10.433627630890436, - 8.762021638272408, - 7.174010090971229, - 5.717888584267348, - 4.456830526721523, - 3.4684703733979823, - 2.8219545667440413, - 2.5079444030994273, - 2.3978412897750396, - 2.3508167817461825, - 2.3328192998549446, - 2.425574047320256, - 2.7346472517955025, - 3.2627846888662315, - 3.910763663509721, - 4.561773115703101, - 5.122956830182638, - 5.533383453442952, - 5.767075516047836, - 5.840635635992466, - 5.827459556656755, - 5.872886949555074, - 6.183274943154297, - 6.95008975389559, - 8.25101435712435 - ], - [ - 29.866903253655877, - 29.25083503206272, - 28.863159585045313, - 28.659516259789775, - 28.58628212495408, - 28.586120154716284, - 28.603123989969315, - 28.586772748878666, - 28.49446255958368, - 28.292768688844745, - 27.957751358741724, - 27.474615632300676, - 26.836961080333644, - 26.04577244926769, - 25.108237504729747, - 24.03644139582192, - 22.8459781712646, - 21.55453632064011, - 20.180550888397256, - 18.742059776988658, - 17.2559397432158, - 15.737707012050526, - 14.202030810739029, - 12.664024461801601, - 11.141271198522343, - 9.656446369948412, - 8.240314823537764, - 6.934653530235612, - 5.793659204628691, - 4.879268266016947, - 4.240837659164548, - 3.8762183880095114, - 3.708431226609598, - 3.6235361713783814, - 3.5399383699303213, - 3.4477654683855854, - 3.406120100259934, - 3.4990435682871457, - 3.7601253171708584, - 4.135877990575668, - 4.5226920553640735, - 4.815488594330024, - 4.930931752683408, - 4.815153570793423, - 4.4517905490297, - 3.8859280402459615, - 3.2967816669570196, - 3.133699320243466, - 3.9050991779753566, - 5.53857843422303 - ], - [ - 25.964931873914686, - 25.34765246383736, - 25.01592468874877, - 24.915922106620705, - 24.980389405976368, - 25.13732402306338, - 25.317672684870136, - 25.460697232743147, - 25.516883541057542, - 25.448947923067692, - 25.231632891839727, - 24.850838760074435, - 24.302428453109453, - 23.59087203069291, - 22.727788081425096, - 21.730384304161188, - 20.619788408651168, - 19.41928686438095, - 18.15254989053722, - 16.84200879708167, - 15.507644625690737, - 14.166504571847197, - 12.833236520997817, - 11.52179398291595, - 10.248228974766063, - 9.034192790199391, - 7.9103508781516405, - 6.918092126364528, - 6.106229010200215, - 5.5177600784038905, - 5.166050011936273, - 5.015796454389588, - 4.992662134974439, - 5.01946968234555, - 5.050252124726378, - 5.08303314202381, - 5.149856758558888, - 5.288391940676991, - 5.508032033264359, - 5.773832919647004, - 6.017440850836099, - 6.15961946205996, - 6.128691752488571, - 5.872152179043108, - 5.366672870390749, - 4.637096450982413, - 3.8113206113892026, - 3.26623874229142, - 3.648969549712436, - 5.104875392383389 - ], - [ - 22.000000818018083, - 21.362265118106844, - 21.086257333215062, - 21.105255794468835, - 21.33180240205648, - 21.672461150115996, - 22.040029215718725, - 22.360803441803824, - 22.57742616947208, - 22.648940717938014, - 22.549503817301005, - 22.266638414142523, - 21.79943519845376, - 21.15682171312907, - 20.355870505877007, - 19.42005553497598, - 18.377355632575682, - 17.258137164901743, - 16.092833801667002, - 14.909589637082961, - 13.732228427298093, - 12.579088198282767, - 11.463293693935274, - 10.394813831517038, - 9.384157791466595, - 8.446907702958244, - 7.607539183238828, - 6.900064373466178, - 6.362213044940765, - 6.021257319654588, - 5.8766847444343435, - 5.893720518029377, - 6.016762489694691, - 6.193571094703785, - 6.393588652302226, - 6.612057640273466, - 6.86051125541313, - 7.149058263990115, - 7.469744602951202, - 7.790302221156824, - 8.06019081600382, - 8.22307867765416, - 8.229601636860169, - 8.048556657199187, - 7.678528523458636, - 7.1644332137713365, - 6.624212314695005, - 6.279506794210225, - 6.431961918641719, - 7.30036402597464 - ], - [ - 18.012964957384742, - 17.320040454128034, - 17.096021546066748, - 17.25598340469741, - 17.67986307810486, - 18.240710328371605, - 18.825561389435375, - 19.344717496997863, - 19.73287619696007, - 19.94662486001514, - 19.96107257664451, - 19.766770879372412, - 19.367194918198845, - 18.776696855469048, - 18.01872542328324, - 17.124074737511997, - 16.12892112433464, - 15.07242569649317, - 13.9937606399616, - 12.92862524992589, - 11.905703504562593, - 10.944004948192152, - 10.05232675545924, - 9.231763770125255, - 8.4811477444177, - 7.803941011938521, - 7.214044989393451, - 6.737422139241741, - 6.406592743394632, - 6.247507037874878, - 6.264658177110062, - 6.435685240924559, - 6.720949486802385, - 7.080434936749016, - 7.486096864052369, - 7.924166231216339, - 8.388819105976918, - 8.872064073265985, - 9.355559926569631, - 9.808371873231158, - 10.19101695304052, - 10.463292617406202, - 10.593200830237238, - 10.565800799519439, - 10.392282840731289, - 10.119986257167016, - 9.842510664214863, - 9.703441830906376, - 9.87796639040029, - 10.520018673514645 - ], - [ - 14.076008851232306, - 13.261257121008375, - 13.077909284438869, - 13.414720601040326, - 14.091735983143863, - 14.92475884354285, - 15.764057257651057, - 16.50246211428687, - 17.069371395394995, - 17.42233858331287, - 17.540273978358933, - 17.41873377886954, - 17.06679963494675, - 16.504971773864543, - 15.763602230997282, - 14.881469834623301, - 13.904101284860449, - 12.881386196050387, - 11.863991584333627, - 10.898240867985972, - 10.019791819083785, - 9.247773386992867, - 8.58235260777031, - 8.008395647673916, - 7.505153836497998, - 7.058555322193407, - 6.671322159822706, - 6.36683635874525, - 6.183850453404721, - 6.161473526151867, - 6.320210603999547, - 6.65157025130514, - 7.123950711526123, - 7.697993444649826, - 8.339002505667397, - 9.020843732371974, - 9.72304641332345, - 10.425354196534027, - 11.103499087761719, - 11.728302806193673, - 12.2682903138055, - 12.694719526603603, - 12.987706087223616, - 13.142577569046457, - 13.176047810768287, - 13.131733281280157, - 13.083578533640713, - 13.133875075874405, - 13.401116768206562, - 13.995850586784655 - ], - [ - 10.342290684601199, - 9.265303756917808, - 9.090989242858539, - 9.673805807204536, - 10.699308379044911, - 11.875984088078356, - 13.007484211254967, - 13.976526258750171, - 14.716684253258178, - 15.193491543939167, - 15.393901344689278, - 15.320641459059406, - 14.989192289487718, - 14.426156705500272, - 13.668350209227519, - 12.762171680756621, - 11.762813564215543, - 10.732642746817303, - 9.737632655508556, - 8.840320265412291, - 8.088440165410075, - 7.501805508795809, - 7.065280658711965, - 6.735951859613767, - 6.463268025753185, - 6.2115995339367, - 5.975746130741214, - 5.78594087538066, - 5.70074420129258, - 5.785814064284007, - 6.083949932209969, - 6.595764485944554, - 7.2858747186365775, - 8.104241326058764, - 9.003272638456748, - 9.943993839168167, - 10.89484707665479, - 11.82806762815197, - 12.716785677863813, - 13.534241410173872, - 14.255263228373288, - 14.859447642739557, - 15.33525874942871, - 15.684348868428543, - 15.925510199727807, - 16.097569499251758, - 16.260147310764548, - 16.490706302082017, - 16.8763661934352, - 17.500551951413655 - ], - [ - 7.219902879637654, - 5.5712639073826615, - 5.302061073228606, - 6.286250224823966, - 7.809941676272938, - 9.390577510471703, - 10.814042154957603, - 11.985321947022374, - 12.860422876329666, - 13.421316518538847, - 13.666258870160371, - 13.605770957164074, - 13.26094360247671, - 12.662845512402635, - 11.852568342027958, - 10.88171908411101, - 9.813192190527179, - 8.721721235087387, - 7.692587780608902, - 6.814410550600717, - 6.159746753831276, - 5.753965833206778, - 5.554846967077733, - 5.471216684756969, - 5.409432998787558, - 5.311436381411949, - 5.1714941806006, - 5.038749192994647, - 5.0072436095925905, - 5.183712068665523, - 5.635595872288152, - 6.3594114907877515, - 7.299123396175185, - 8.384277184130527, - 9.552688859651653, - 10.755569746514592, - 11.954951497504, - 13.11976755859934, - 14.223053312237406, - 15.240935813820245, - 16.153331220964365, - 16.945918781383572, - 17.612828269294965, - 18.15947076570603, - 18.60495772983244, - 18.983509007416068, - 19.344144371650824, - 19.747911222807495, - 20.262180838440813, - 20.95238983449086 - ], - [ - 5.815135093129896, - 3.402910087371471, - 2.7364475636246866, - 4.208620905517483, - 6.162961376736938, - 7.995715889067021, - 9.562294324925778, - 10.812007764859864, - 11.724049588749553, - 12.292762163924623, - 12.523214250690634, - 12.429684675384806, - 12.035212828164509, - 11.371700629965469, - 10.480482623545706, - 9.413516224143589, - 8.235570047374095, - 7.027961188037633, - 5.893752871560528, - 4.959396602658609, - 4.351629742648302, - 4.121426720739709, - 4.175178222253942, - 4.3348289968914475, - 4.451837495602597, - 4.4538093063277, - 4.345935849146983, - 4.2087450502599655, - 4.190560721779415, - 4.457580940373392, - 5.09547851664709, - 6.068465348981694, - 7.280666674762976, - 8.638801346585554, - 10.071102985117733, - 11.524919106849854, - 12.960684754206545, - 14.347224095515958, - 15.658989191770535, - 16.87500172797831, - 17.97914065087407, - 18.961372284970015, - 19.81948645046904, - 20.56089129471596, - 21.204019609961335, - 21.778896114416742, - 22.32642419217534, - 22.896034464251187, - 23.54158705877983, - 24.315881885862314 - ], - [ - 7.146338893992843, - 5.144705583181452, - 4.441137345579836, - 5.201649551044686, - 6.653836261168105, - 8.191035869940388, - 9.564594806490584, - 10.673655416430107, - 11.473909887641502, - 11.947578061836674, - 12.092724732773522, - 11.919029669669985, - 11.446017376902027, - 10.70240876847081, - 9.726178790788733, - 8.565367644652316, - 7.280187690743422, - 5.947927933043294, - 4.674126779416923, - 3.6142018052380736, - 2.9804811886480294, - 2.8987962925073143, - 3.1853480887527303, - 3.5327684518657043, - 3.7514405897599947, - 3.7739037584577124, - 3.6234226997523935, - 3.417255461672821, - 3.3793550097918756, - 3.757874349815636, - 4.626405716783289, - 5.872573296953074, - 7.354325816676901, - 8.966619972390117, - 10.637767152161699, - 12.316981917533795, - 13.966242683250151, - 15.555797505220212, - 17.061889774195436, - 18.46591102226548, - 19.75453513465362, - 20.92049654750156, - 21.963688504103445, - 22.89225100729032, - 23.7233178280481, - 24.483106803916716, - 25.206081872960173, - 25.933015370358536, - 26.707961983081777, - 27.57441930677999 - ], - [ - 10.086532809064959, - 8.572953016014756, - 7.911088613903055, - 8.082555377254558, - 8.81352185649504, - 9.77363793850269, - 10.723493097665619, - 11.52054237937543, - 12.085664378675862, - 12.377891514316762, - 12.3803599616296, - 12.09299341762607, - 11.52872330435137, - 10.711598407738052, - 9.676051839804535, - 8.467161172052506, - 7.142309214981554, - 5.775705844346469, - 4.469607740046846, - 3.3787430226116233, - 2.727332151567935, - 2.656401400124974, - 2.9551311423006625, - 3.2868513199492524, - 3.456367971506571, - 3.396448471985768, - 3.133967751760108, - 2.813079194242774, - 2.750183202959438, - 3.284212818366051, - 4.407904931071981, - 5.90780162442929, - 7.619440747642823, - 9.4428609715628, - 11.312780155451744, - 13.182248952106983, - 15.015298564865228, - 16.78351123479816, - 18.46441745379514, - 20.040912077680247, - 21.501321892235804, - 22.839880220168364, - 24.057381801111628, - 25.161784906432473, - 26.168528000753337, - 27.100347643336224, - 27.98643172194857, - 28.86082683480163, - 29.760144909110018, - 30.7207701990019 - ], - [ - 13.514364393152132, - 12.224240664072138, - 11.525894608021952, - 11.373294925918213, - 11.623721453097065, - 12.093039313128733, - 12.613412488124828, - 13.058376992332546, - 13.342874616770859, - 13.414952211307615, - 13.247599501001968, - 12.83285401737679, - 12.178028837190118, - 11.303523975135253, - 10.241841878895903, - 9.037717594537408, - 7.749641782701607, - 6.453505481780641, - 5.249070341838539, - 4.265454259020269, - 3.6397195101929287, - 3.419855362675991, - 3.4711931880230225, - 3.5700068922342085, - 3.5469455993627594, - 3.325099071581466, - 2.9233707441082983, - 2.5065463440590876, - 2.4792890888660772, - 3.2079350268626263, - 4.550464834785133, - 6.24004978419372, - 8.120849807786744, - 10.1036154742394, - 12.12867266806365, - 14.151547342189444, - 16.137307223769184, - 18.058083487621353, - 19.89193615652637, - 21.62241951381955, - 23.238572731830214, - 24.735161736479913, - 26.11301384790962, - 27.37928276022715, - 28.547483449917472, - 29.637155245519107, - 30.673051714858545, - 31.683820366598994, - 32.700220695474826, - 33.75302471933962 - ], - [ - 17.02491953274796, - 15.821961302602235, - 15.052984743642842, - 14.672724095512608, - 14.588944787034817, - 14.684502357560008, - 14.842865473995534, - 14.965142061991786, - 14.976592193982082, - 14.82647862294939, - 14.485288615613793, - 13.941618638109391, - 13.199624662887599, - 12.277260958657234, - 11.20529856821534, - 10.027073704110373, - 8.79887334392884, - 7.590529202900048, - 6.4844337892983805, - 5.567514587163888, - 4.9060947311568635, - 4.503079485964613, - 4.274491086560622, - 4.085907940685443, - 3.8170101416076334, - 3.4052275446534583, - 2.880813978749522, - 2.45057760521465, - 2.5760378202888408, - 3.5164981220583136, - 5.023495136582365, - 6.845386279953286, - 8.846943285742679, - 10.948024244524037, - 13.092573655631437, - 15.237463830605547, - 17.348197403159315, - 19.397044619006415, - 21.36218004269227, - 23.22731501135126, - 24.981613088297006, - 26.619759241648303, - 28.14206974260394, - 29.55452964887434, - 30.86864850814553, - 32.10104103370507, - 33.27267105532058, - 34.4077436684769, - 35.532288172658006, - 36.6725346821691 - ], - [ - 20.46977559889392, - 19.283510419057812, - 18.426177075484578, - 17.858428942065025, - 17.51434650037531, - 17.312460673800928, - 17.168928498128434, - 17.00819865494191, - 16.769245002993102, - 16.407929303810555, - 15.896978902066717, - 15.224886987731946, - 14.394541142560747, - 13.42196162241655, - 12.335254823705078, - 11.173687083054135, - 9.986532425596184, - 8.830874804907578, - 7.76670937340685, - 6.846854768727265, - 6.100417551835381, - 5.515235790436665, - 5.033641931618385, - 4.57165163885657, - 4.053304892556473, - 3.4484006465060753, - 2.8283903833930926, - 2.4823296134729125, - 2.878335686191976, - 4.059361032598349, - 5.721083473638424, - 7.657588362282523, - 9.759115759073453, - 11.956076213929798, - 14.197028816859689, - 16.440981959654703, - 18.65445237159517, - 20.81020291381888, - 22.88665321371006, - 24.86760671269511, - 26.742144407320986, - 28.504596383615173, - 30.15451491850599, - 31.696573632460183, - 33.14032071206375, - 34.49972668050023, - 35.792490352316534, - 37.03909937458242, - 38.261680521340345, - 39.482713714357665 - ], - [ - 23.782864056774773, - 22.572528565556954, - 21.615684187420456, - 20.87931587520802, - 20.313949847208423, - 19.859998308551578, - 19.45541200496926, - 19.042568818161577, - 18.57319031165086, - 18.011110375729167, - 17.333346419981122, - 16.53007997597408, - 15.60403627541, - 14.569547679624048, - 13.451379433931605, - 12.28319292463855, - 11.105290661247086, - 9.961020353355975, - 8.89104150391323, - 7.925028703616352, - 7.0720472766787505, - 6.3137923770357, - 5.606623795468335, - 4.895534183973935, - 4.138740495355457, - 3.3467210329363644, - 2.667410577708555, - 2.524226723877372, - 3.291869129214739, - 4.742949899543185, - 6.572714103933284, - 8.628028072541442, - 10.825749062007274, - 13.10889369876328, - 15.432584355815722, - 17.759505388284317, - 20.058315139761497, - 22.303038264921636, - 24.47281077447916, - 26.55176486860413, - 28.52896977767418, - 30.39838030044223, - 32.15874987090662, - 33.813463418368244, - 35.37024669311316, - 36.84071697685497, - 38.23975599185009, - 39.584708121779265, - 40.8944328865625, - 42.1882658322653 - ], - [ - 26.93111707954388, - 25.67079918953806, - 24.60650615889508, - 23.71089838741067, - 22.945906765455803, - 22.26675063534066, - 21.626776829806673, - 20.982098843785238, - 20.29531077911354, - 19.537991802528314, - 18.692065773794713, - 17.750244542890066, - 16.71578924293621, - 15.601737427437874, - 14.429616336064376, - 13.227521465468987, - 12.02730962357418, - 10.860599639063206, - 9.753441706114936, - 8.72013528890064, - 7.75782948820719, - 6.844714555261632, - 5.944692241843399, - 5.020249419918482, - 4.056421925615748, - 3.1133200302556903, - 2.468080907675034, - 2.6933648474313463, - 3.8727996279970207, - 5.581871088833185, - 7.575913828776498, - 9.748502714409017, - 12.038400394272209, - 14.400185261034903, - 16.79588572983977, - 19.192594459630982, - 21.561855444591583, - 23.879573528408045, - 26.126056133748172, - 28.286064966322016, - 30.34883805102607, - 32.308063049056535, - 34.16178346536177, - 35.912216122843205, - 37.56545773932929, - 39.131063116427384, - 40.6214876749597, - 42.05140174435095, - 43.43690097043447, - 44.794653582941706 - ], - [ - 29.898296180291666, - 28.570469291212905, - 27.39279803132695, - 26.3427558573217, - 25.39065026571541, - 24.50235291212381, - 23.642560329911735, - 22.77803880037125, - 21.88041126490305, - 20.92823703917481, - 19.90831712007944, - 18.81626938818232, - 17.65644800113647, - 16.44124781821604, - 15.189764830563929, - 13.925707760749146, - 12.674418494080887, - 11.45893573209672, - 10.295334810552594, - 9.188167595950436, - 8.127578534794548, - 7.09015431899089, - 6.045453727632319, - 4.970536045659426, - 3.8808502982856776, - 2.914541067229381, - 2.529445970341055, - 3.236723485783351, - 4.743698037536251, - 6.645315441149159, - 8.770202064364216, - 11.040807641842886, - 13.408833279714045, - 15.836509265629255, - 18.291163691380735, - 20.74376050723478, - 23.168676968472457, - 25.543838748267728, - 27.850914340728906, - 30.07547035372016, - 32.207057887248, - 34.23922043998531, - 36.16941670510772, - 37.998850017984964, - 39.73219567713477, - 41.37722012147592, - 42.94429243896636, - 44.4457981800349, - 45.89547646057372, - 47.30771192520972 - ], - [ - 32.67866767703578, - 31.271194742739105, - 29.975863501597573, - 28.77411258915022, - 27.642576750428656, - 26.5550489763078, - 25.484792858730838, - 24.406891502299327, - 23.300354998234557, - 22.149793540490318, - 20.946554731692082, - 19.689288424141154, - 18.383926508929033, - 17.043051175053943, - 15.68458825496238, - 14.32972989757106, - 13.000010385676951, - 11.713603665603411, - 10.481260551375883, - 9.302867187093765, - 8.166218825131278, - 7.049990941615021, - 5.933269084683591, - 4.816572923719776, - 3.7714155144942025, - 3.060045447204375, - 3.187276358329114, - 4.28644808149037, - 5.9793126519000435, - 7.9913291723308095, - 10.197866996140165, - 12.53389946597456, - 14.95615493510965, - 17.4303146436127, - 19.926684427263588, - 22.41883652512086, - 24.88333270400014, - 27.299820011085217, - 29.65121815113427, - 31.923886552289044, - 34.1077281633997, - 36.19621404161654, - 38.186322063645804, - 40.07838575782794, - 41.87585066188929, - 43.584938213412066, - 45.21422177441427, - 46.77412574546398, - 48.27636595568379, - 49.73335638769911 - ], - [ - 35.274049561159444, - 33.778761811206905, - 32.3631664144758, - 31.01189193085303, - 29.70639089715167, - 28.42641723682446, - 27.15173929692257, - 25.863897351897275, - 24.54782496396215, - 23.19319109984771, - 21.795364766829376, - 20.355938354246366, - 18.88275935786167, - 17.389411214746303, - 15.89406096938154, - 14.417576693723476, - 12.980855756377698, - 11.601470524489919, - 10.29011910542361, - 9.04800038925388, - 7.867012406095846, - 6.735486639397291, - 5.653613277482702, - 4.667111327939492, - 3.932861400161103, - 3.7686555267488453, - 4.4248046507934635, - 5.776335329714565, - 7.567966785422528, - 9.632609911731414, - 11.877309854904299, - 14.244707372818247, - 16.693726391475714, - 19.19137194111341, - 21.709337530398688, - 24.22267995187192, - 26.709397443798174, - 29.15038934609073, - 31.529552145386887, - 33.833894786115025, - 36.053617751345456, - 38.18213012630974, - 40.21599284029709, - 42.154782917457005, - 44.00087738150049, - 45.75915881915013, - 47.43664853894026, - 49.04207791911531, - 50.585413515464445, - 52.07735608198204 - ], - [ - 37.69213378069395, - 36.10417869397372, - 34.567612497171076, - 33.069569165166875, - 31.59514858973616, - 30.1285716707856, - 28.65449736841348, - 27.159379513119806, - 25.63274317607539, - 24.06827747922702, - 22.4646644715104, - 20.826082492234928, - 19.162330304106984, - 17.488512524407685, - 15.824210954972395, - 14.192054551736668, - 12.615628796087677, - 11.116808131735857, - 9.712980398131359, - 8.415412602062558, - 7.231256308249694, - 6.173285472188718, - 5.282741023427848, - 4.666082069873564, - 4.509860292792668, - 4.976641713381771, - 6.050073964223236, - 7.586915614111351, - 9.44937106264249, - 11.541410382787294, - 13.797605500160165, - 16.17025085073521, - 18.621784041163764, - 21.12083062730173, - 23.64022388149896, - 26.156072742875246, - 28.647382343918867, - 31.09595350311168, - 33.486405594352206, - 35.80623371313634, - 38.045849804058925, - 40.198580043045794, - 42.26060386498394, - 44.23082773160957, - 46.110691719183684, - 47.903910910105864, - 49.616157256729785, - 51.254691324844075, - 52.82795698462878, - 54.345155319252086 - ], - [ - 39.945306499920676, - 38.26288049032992, - 36.60683252681188, - 34.9662198523841, - 33.328866884261245, - 31.682293283428987, - 30.014755557122385, - 28.316321239108845, - 26.5798946791874, - 24.80212273610633, - 22.98412284193405, - 21.131990315760508, - 19.257052992806248, - 17.375848106105444, - 15.509801513105813, - 13.684602256702311, - 11.92931087046529, - 10.275378118253473, - 8.756114756293854, - 7.407956335346428, - 6.276069145353958, - 5.426392364597946, - 4.956195147471695, - 4.970922674803099, - 5.512955202615041, - 6.529808428930384, - 7.928353642972752, - 9.625189042659315, - 11.556180034700226, - 13.670918665364917, - 15.92758709266536, - 18.290147635856634, - 20.72686908777063, - 23.20948973244292, - 25.712727044433855, - 28.214012877590594, - 30.6933818369664, - 33.13345491999221, - 35.51947006164753, - 37.839321656666286, - 40.08358158294258, - 42.245483311645486, - 44.32085781859726, - 46.3080154054974, - 48.207571726862746, - 50.022219833681284, - 51.75645325178602, - 53.41624814749877, - 55.00871542253759, - 56.54173590747046 - ], - [ - 42.04964738752123, - 40.273905093871946, - 38.50235625793839, - 36.72551431193512, - 34.933216409098584, - 33.11538140495115, - 31.262847736921962, - 29.368235708091888, - 27.426778821408362, - 25.437075553456364, - 23.401724894591332, - 21.327825189868886, - 19.227337448988557, - 17.117346998046884, - 15.020315869962497, - 12.964536705224676, - 10.985252712237283, - 9.12745264169986, - 7.452398801284421, - 6.050973243270421, - 5.061239391544482, - 4.651276064458649, - 4.898592034794919, - 5.697138904250244, - 6.877724648340314, - 8.32668122979539, - 9.9872344739389, - 11.829628493560389, - 13.831991482236123, - 15.972592058355856, - 18.228070069421637, - 20.573957953201607, - 22.98570135977603, - 25.439530276851634, - 27.91306055168923, - 30.385681662661288, - 32.83880918219955, - 35.25605667406227, - 37.62335502818037, - 39.92902925232864, - 42.16383349447024, - 44.32094165517008, - 46.395890727867425, - 48.386475298035855, - 50.2925935693267, - 52.11604747730361, - 53.86030172561749, - 55.53020881227518, - 57.13170915817184, - 58.671517123484776 - ], - [ - 44.023972629742815, - 42.158985964344105, - 40.27863685250627, - 38.37455550311684, - 36.438080777150404, - 34.46088472021627, - 32.43565200022867, - 30.356774304944768, - 28.22102007513808, - 26.028145257890444, - 23.781421246836594, - 21.488073335811997, - 19.159652114828535, - 16.812415915450522, - 14.46792357282784, - 12.154330584334136, - 9.909663366871762, - 7.790593999341339, - 5.896801537433429, - 4.434120791322951, - 3.786478701841376, - 4.208479934325255, - 5.373251759951533, - 6.877578628609515, - 8.54350383598004, - 10.317298920399331, - 12.189397107015738, - 14.161710159400096, - 16.23501237513591, - 18.40476433837199, - 20.66076978917669, - 22.988421992981568, - 25.37035158216869, - 27.78791953103447, - 30.222375139996302, - 32.655684083834714, - 35.071095679649915, - 37.45352260149697, - 39.78978914013349, - 42.06878469788735, - 44.28154423245226, - 46.42126776312583, - 48.483285752480704, - 50.46497479230957, - 52.36562744768134, - 54.18628059565179, - 55.929507651008315, - 57.59918137342662, - 59.20021525115985, - 60.73829254878752 - ], - [ - 45.88887204489546, - 43.94155542386031, - 41.96193001660007, - 39.94253906261764, - 37.875910124025, - 35.75507510672235, - 33.574126912821555, - 31.32878250287379, - 29.016922244811145, - 26.63907910055749, - 24.19885908197318, - 21.703288585166426, - 19.163110931856043, - 16.593111500834546, - 14.012690897012522, - 11.447300611750528, - 8.932651075510991, - 6.528684818295232, - 4.374541743196363, - 2.922458813465489, - 3.1182172180480268, - 4.627059711114815, - 6.514025672743509, - 8.48364299233387, - 10.47330484231877, - 12.479929031812402, - 14.516673945174956, - 16.598548788465404, - 18.736493894233863, - 20.935177503984548, - 23.192860433386656, - 25.502382417035435, - 27.852605124524203, - 30.229883170746827, - 32.61934192884229, - 35.00588861400452, - 37.3749655236684, - 39.71308763756189, - 42.00821182074914, - 44.24997760768634, - 46.42984926004145, - 48.541179697699114, - 50.57921028892671, - 52.54101629296803, - 54.425405460592835, - 56.23277634851916, - 57.96494281202473, - 59.62493153144312, - 61.21676001277121, - 62.74520305374542 - ], - [ - 47.66573730915744, - 45.64568439123348, - 43.57906764203373, - 41.45927349317258, - 39.27989409376206, - 37.03517220000721, - 34.720472717808555, - 32.33275878322559, - 29.87105111968383, - 27.33685358498876, - 24.73453680708981, - 22.071689480927734, - 19.35948376623211, - 16.613187201222622, - 13.853181593058915, - 11.107547478506806, - 8.419808811934493, - 5.8768163575165815, - 3.7341956582277223, - 2.883040886058898, - 4.055666258855374, - 6.076090699421348, - 8.26566925188758, - 10.46617410305419, - 12.64514283468525, - 14.805378085311622, - 16.960814494150025, - 19.12721099226398, - 21.317649965286115, - 23.540407321323165, - 25.798334982696474, - 28.0892283453504, - 30.40674749344718, - 32.74155315154385, - 35.08242907373451, - 37.417266482532256, - 39.73386341121632, - 42.02053831278798, - 44.2665792280745, - 46.46255616660302, - 48.60052277366906, - 50.67412882994878, - 52.67866033942782, - 54.611020051053494, - 56.469658520120504, - 58.25446414160823, - 59.966619731443735, - 61.608432922126205, - 63.18314763029148, - 64.69474393930068 - ], - [ - 49.37580639031069, - 47.29500807521078, - 45.15619505037965, - 42.95364569349815, - 40.68205666987593, - 38.336945660364144, - 35.9150819677536, - 33.41493332063982, - 30.837121901915353, - 28.184893411274317, - 25.46462500180778, - 22.686443502155875, - 19.865125617503207, - 17.0216917169479, - 14.186736225514968, - 11.40838014905074, - 8.773653602682225, - 6.47125580906316, - 4.950647472371064, - 4.903698770371952, - 6.263213979119569, - 8.276698285058025, - 10.501718129489747, - 12.77492633930036, - 15.041383782719182, - 17.287708743921286, - 19.51742829158502, - 21.740208736161197, - 23.966373656271017, - 26.203993919075966, - 28.457531725857926, - 30.727512684195673, - 33.010853245110816, - 35.30154945507877, - 37.59150648497123, - 39.87136193856172, - 42.131219670479645, - 44.36125787375752, - 46.55220488547847, - 48.69569189922167, - 50.78449815768546, - 52.81270526078671, - 54.77577581223731, - 56.67056945258373, - 58.49530726144941, - 60.249493901175065, - 61.9338057722314, - 63.54995277236154, - 65.10052085877355, - 66.58880236173202 - ], - [ - 51.03926562174461, - 48.91170232530781, - 46.71756106283307, - 44.452149875032376, - 42.11143010758438, - 39.6924114820145, - 37.1935886347776, - 34.61542195924221, - 31.960877732574378, - 29.23606643108261, - 26.451064943981155, - 23.621102730923557, - 20.768490842036496, - 17.92611221738092, - 15.144296412386206, - 12.505158008392758, - 10.152491930163837, - 8.343043358063285, - 7.459459634026559, - 7.76748175390745, - 9.075568874142958, - 10.959583439064591, - 13.10918401814771, - 15.362081914205204, - 17.642617785918993, - 19.919143640077273, - 22.182001796273113, - 24.43205380928072, - 26.674306993481643, - 28.914249325861693, - 31.15582380340953, - 33.40048666636542, - 35.64699149908563, - 37.891631566652435, - 40.12873440605482, - 42.351258017836955, - 44.5513881763936, - 46.72107777921891, - 48.85249964687381, - 50.93840418297415, - 52.972384868943195, - 54.9490602457311, - 56.86418309086666, - 58.714687618077164, - 60.49868480033895, - 62.21541496733943, - 63.86516595353618, - 65.44916437360702, - 66.96944706962822, - 68.42871934995306 - ], - [ - 52.67445733167985, - 50.51558040755504, - 48.284456825190304, - 45.97761015214374, - 43.59248787899317, - 41.12787897911533, - 38.58439596491871, - 35.965040914332725, - 33.2758953594795, - 30.52701113382865, - 27.733647337393748, - 24.91812451529227, - 22.1128006766408, - 19.365092076986436, - 16.746103732746242, - 14.364829840920104, - 12.386945354885393, - 11.04038350064512, - 10.553331604476258, - 11.000755492331573, - 12.226314058872738, - 13.967728823352763, - 16.001476979083616, - 18.182046082497074, - 20.425666412778927, - 22.68790379680445, - 24.947633926683494, - 27.19689548614913, - 29.434541080790957, - 31.662252003604156, - 33.882094485638476, - 36.09513426222005, - 38.300790746391954, - 40.49669469513186, - 42.67886507557644, - 44.84206316316366, - 46.98022024757988, - 49.0868690204478, - 51.15553608642261, - 53.18007337441548, - 55.154920035900915, - 57.07529495572368, - 58.937324732637784, - 60.738114232100145, - 62.47576759073883, - 64.14936755830686, - 65.75892072765113, - 67.30527575818601, - 68.79002124565757, - 70.21536945572616 - ], - [ - 54.29723824312131, - 52.123373740437586, - 49.87438982423946, - 47.54821414039225, - 45.1439988730657, - 42.662579796062815, - 40.10702528490654, - 37.48330858911474, - 34.80116147793912, - 32.0752085992386, - 29.32654893649869, - 26.585054828965024, - 23.892801271300026, - 21.30915767900435, - 18.9178683762922, - 16.83489855325859, - 15.210643019256583, - 14.210364206233987, - 13.956583927301315, - 14.45838050872506, - 15.600132664434206, - 17.20615859765378, - 19.111290875124265, - 21.191448301065943, - 23.363992523765077, - 25.577984423079766, - 27.804166422006425, - 30.027186259878206, - 32.24004632433423, - 34.44027229612623, - 36.627349158227624, - 38.80109323961181, - 40.96071570212924, - 43.10438643843686, - 45.22914366524796, - 47.33102440662042, - 49.40531874767147, - 51.446876399280406, - 53.45041658193953, - 55.410810512087, - 57.32331956562012, - 59.1837818671298, - 60.9887463594605, - 62.73555720596283, - 64.42239345275267, - 66.04826985536707, - 67.61300510092626, - 69.11716362510316, - 70.56197700504877, - 71.94925059435838 - ], - [ - 55.920523118779435, - 53.74824327830739, - 51.50055451369083, - 49.17693785565149, - 46.77840881647309, - 44.30802141313847, - 41.77148149571637, - 39.177908668615736, - 36.540808178579674, - 33.87934557067738, - 31.220056681339642, - 28.59916121500611, - 26.0656319391396, - 23.684962566627917, - 21.54283865387875, - 19.74608105610943, - 18.415173972482908, - 17.661310560147225, - 17.549231768641757, - 18.066825434334273, - 19.128266495895403, - 20.608961242438774, - 22.38389704249974, - 24.349471180167058, - 26.429034157430436, - 28.569980479883473, - 30.738290089340055, - 32.91319464293506, - 35.082792332313225, - 37.24070200667421, - 39.38363012985595, - 41.50968654529738, - 43.61729501564037, - 45.70456200971975, - 47.7689843893079, - 49.80739378790108, - 51.81605323988317, - 53.79083956849178, - 55.72746206769788, - 57.62168302688538, - 59.46951797698169, - 61.26740301274075, - 63.01232339049034, - 64.70190225605862, - 66.33445133297364, - 67.9089871705378, - 69.42521750316023, - 70.88350269523461, - 72.28479733805285, - 73.63057695268564 - ], - [ - 57.5540315849221, - 55.399543773511624, - 53.17162516109853, - 50.87138915354952, - 48.50177426012305, - 46.0680810815366, - 43.57862520872546, - 41.04554132602922, - 38.485786623745696, - 35.922403345286284, - 33.386100467624814, - 30.91717605857758, - 28.567663539609494, - 26.40323022182129, - 24.503628241731708, - 22.959390782539977, - 21.861713072362534, - 21.284181630406863, - 21.261194286011147, - 21.77489133453676, - 22.76025656728161, - 24.1252178462054, - 25.773155959067086, - 27.6181927646526, - 29.591619742818065, - 31.642298615164716, - 33.734202999565696, - 35.843112712679165, - 37.95342576845425, - 40.055452677524215, - 42.14327896638711, - 44.21316849387346, - 46.26243865021017, - 48.28872580765616, - 50.289558604251326, - 52.26216182695008, - 54.203422470863146, - 56.1099604945951, - 57.97825852406187, - 59.80481610717221, - 61.586304237177394, - 63.31970427503866, - 65.00242198699033, - 66.63237229455392, - 68.20803376856468, - 69.72847419005916, - 71.19334993862354, - 72.60288279693253, - 73.95781816698725, - 75.25936881447727 - ], - [ - 59.204236944358684, - 57.08283587509704, - 54.89185762649714, - 52.63404083093675, - 50.31419204442187, - 47.939732492889256, - 45.521352297752586, - 43.07379520410984, - 40.616797563694085, - 38.176196161576044, - 35.7851863935131, - 33.48562875498671, - 31.329124910866334, - 29.377267218677908, - 27.700015626638535, - 26.37079276076295, - 25.457234551781486, - 25.00841865585005, - 25.042623040041356, - 25.541637271252473, - 26.455168188255616, - 27.713068335876603, - 29.239329910523935, - 30.96282058326844, - 32.823128218742326, - 34.77236128831266, - 36.77448533073714, - 38.80350909448459, - 40.84133893334792, - 42.87572915323289, - 44.89851798261594, - 46.90421091036078, - 48.88890854546251, - 50.84954476841475, - 52.783386860620205, - 54.68774483509564, - 56.55983854857015, - 58.39677614045644, - 60.19560433824874, - 61.95339895531513, - 63.66737155534506, - 65.3349751496242, - 66.95399759979793, - 68.52263602266352, - 70.03954899590143, - 71.50388589383572, - 72.91529442265576, - 74.27390855385744, - 75.58031972829107, - 76.83553454553258 - ], - [ - 60.87449762044613, - 58.80011621462975, - 56.6614530345926, - 54.462778589733375, - 52.21060471817393, - 49.91421329476517, - 47.58627116177638, - 45.24353801591618, - 42.90766411902552, - 40.60605082190142, - 38.37269726119541, - 36.24886473001357, - 34.283240661685326, - 32.53108339160259, - 31.05165216423627, - 29.903278289787103, - 29.136027068136897, - 28.783186303749105, - 28.85426710661337, - 29.332527753644772, - 30.17834668313721, - 31.337019846492407, - 32.74785821676883, - 34.35180709156674, - 36.096325594478586, - 37.93762199357396, - 39.84097468472631, - 41.779928597369626, - 43.73497021295249, - 45.692066687944696, - 47.64128634222847, - 49.57560748490258, - 51.48995578419281, - 53.38047164384847, - 55.24398746350607, - 57.07768368931052, - 58.87888838732328, - 60.64498533199052, - 62.373398659499074, - 64.06162676185215, - 65.70730335807524, - 67.30826890238276, - 68.86264024237224, - 70.36887049255624, - 71.82579436327404, - 73.23265670935497, - 74.58912392278943, - 75.89527909952484, - 77.15160277430674, - 78.35894153976133 - ], - [ - 62.565337686593686, - 60.55021757880195, - 58.477113899566774, - 56.351662287777614, - 54.18183260591119, - 51.97841370352124, - 49.75555542360361, - 47.53135884600113, - 45.328489437611466, - 43.17475801471641, - 41.10356453978382, - 39.154024485604154, - 37.37050074055617, - 35.801174658073215, - 34.49528186956767, - 33.49883330704677, - 32.849144402151886, - 32.56923461365253, - 32.663745072498614, - 33.117897755617165, - 33.899995675308034, - 34.96659179813254, - 36.268618394912764, - 37.7568667648864, - 39.385914113714634, - 41.11633976744568, - 42.91552818542923, - 44.75750419889509, - 46.622209634487525, - 48.49452752887249, - 50.363256014117695, - 52.22015206979298, - 54.05910787703817, - 55.87548457277002, - 57.66560422224325, - 59.42638648923746, - 61.1551087988656, - 62.84926570534431, - 64.50650321453509, - 66.12460584247448, - 67.70151734493611, - 69.23537967159827, - 70.7245783155391, - 72.16778554610008, - 73.56399586913729, - 74.91255039407675, - 76.21314861143506, - 77.46584744697017, - 78.6710484271011, - 79.82947443598731 - ], - [ - 64.27483457150109, - 62.32932221150195, - 60.33271472546876, - 58.291793529507466, - 56.21568643991803, - 54.11628902779403, - 52.00871229235182, - 49.91173564455907, - 47.84822597849924, - 45.84545536614695, - 43.93520979039605, - 42.15353158615357, - 40.539891005110746, - 39.13556689347909, - 37.98108222550604, - 37.112740822892384, - 36.55865667676556, - 36.335055915119035, - 36.44383879027207, - 36.872191512983356, - 37.59443049779171, - 38.57554102309973, - 39.77542931786617, - 41.15291823923919, - 42.668856489921744, - 44.288124897758415, - 45.98062775948724, - 47.72150421401519, - 49.49082125038208, - 51.272973522469705, - 53.055958454374334, - 54.83064066427443, - 56.59007572008631, - 58.32893066758731, - 60.043015987458816, - 61.7289284953329, - 63.3837953098494, - 65.00510387584045, - 66.59060096203189, - 68.13824361259086, - 69.64618646300258, - 71.11279203692418, - 72.53665317162695, - 73.91661925727755, - 75.25182031525672, - 76.54168497008637, - 77.78595004341283, - 78.9846608178585, - 80.13816201202471, - 81.24708021773246 - ], - [ - 65.99906988598443, - 64.13153114626112, - 62.22001321082502, - 60.27219490395287, - 58.29804150777188, - 56.31015166809505, - 54.32410247936447, - 52.35876473430101, - 50.43654369568631, - 48.583478273890634, - 46.82910446079281, - 45.20596276778181, - 43.748616810786146, - 42.49207231824438, - 41.469568614816716, - 40.709873599430885, - 40.23442766887585, - 40.05487449564872, - 40.17157008624381, - 40.57349146086624, - 41.23960424188321, - 42.14135130282762, - 43.2456753342747, - 44.5179716390438, - 45.92453443023732, - 47.434292262846434, - 49.019825636260734, - 50.657779357645026, - 52.32882856830731, - 54.01735523356552, - 55.71096612751987, - 57.3999506714363, - 59.076746176485635, - 60.73545253115297, - 62.371418795266564, - 63.98090997539726, - 65.56085256498375, - 67.10865132376334, - 68.62206642012698, - 70.0991387506011, - 71.5381513737131, - 72.93761604629971, - 74.29627542632856, - 75.61311330261587, - 76.8873670124821, - 78.1185378736286, - 79.30639690752204, - 80.45098433490301, - 81.55260227728516, - 82.61180081832501 - ], - [ - 67.73260252629079, - 65.9494393483182, - 64.12934117049906, - 62.28062897121681, - 60.413792276080834, - 58.54175875665767, - 56.680139537649055, - 54.84741988382118, - 53.0650517769894, - 51.35738947122876, - 49.75139408526287, - 48.27602441480243, - 46.96123809413771, - 45.83656255987242, - 44.92926953215919, - 44.262298788931226, - 43.85220284154074, - 43.70747412369932, - 43.82761271517725, - 44.20316597131253, - 44.81675188408452, - 45.644849464773365, - 46.65999209571339, - 47.83297728128155, - 49.13478929701016, - 50.53806345651303, - 52.01804701578159, - 53.55310119228437, - 55.12483562472816, - 56.71797977164162, - 58.32008821542151, - 59.92115956553582, - 61.51322881231153, - 63.08997442759599, - 64.64636589457535, - 66.17836510177105, - 67.68268598816432, - 69.15661056533168, - 70.59785548052754, - 72.00448113447636, - 73.37483457705126, - 74.70751757360003, - 76.00137202723138, - 77.25547608685551, - 78.46914556111733, - 79.64193654797242, - 80.77364638283142, - 81.8643110499758, - 82.91419806787401, - 83.92379454584004 - ], - [ - 69.46893012448002, - 67.77467754694545, - 66.05023154800206, - 64.30431109748577, - 62.5476442409519, - 60.79316407648822, - 59.05616469838518, - 57.35438800099507, - 55.70800304782152, - 54.13943071429652, - 52.67296030844635, - 51.33410650208342, - 50.14867040130921, - 49.141504123145566, - 48.33503626527546, - 47.74768972721967, - 47.3923944015072, - 47.275436030019094, - 47.395861378815546, - 47.74557034454643, - 48.31008960842006, - 49.06988581278042, - 50.00198556227393, - 51.08164850785237, - 52.28388114938027, - 53.58465512645439, - 54.96177422393451, - 56.395398506683925, - 57.86827426695531, - 59.36573663328993, - 60.87555385319188, - 62.38767495946675, - 63.89393089683851, - 65.38772657463744, - 66.86374960227097, - 68.3177115347768, - 69.74612958368358, - 71.14615088357367, - 72.51541733305557, - 73.85196646488684, - 75.15416243882635, - 76.42065079825844, - 77.6503308222748, - 78.84233991230641, - 79.99604529365564, - 81.11103924781224, - 82.1871350214928, - 83.22436141725463, - 84.22295482006075, - 85.18334803672312 - ], - [ - 71.20091367156284, - 69.5983941723107, - 67.97195540365064, - 66.33049393819273, - 64.68473043332725, - 63.047340038860156, - 61.43303346592916, - 59.85856300271484, - 58.34262217679854, - 56.90560372061571, - 55.56918033266546, - 54.355679640049246, - 53.287242228213366, - 52.38478192883053, - 51.6668096571253, - 51.14822915808915, - 50.839251883162106, - 50.74459232693823, - 50.86308163076892, - 51.18777509469022, - 51.70654308652227, - 52.40305033852618, - 53.257970911544604, - 54.25026859601177, - 55.35839283179822, - 56.56128451449981, - 57.83913732961457, - 59.17390528802667, - 60.54957921226434, - 61.95227305673192, - 63.37016754310008, - 64.79335723601321, - 66.2136412381099, - 67.62428971108058, - 69.01981012829555, - 70.39572952532788, - 71.74840253083953, - 73.0748498054306, - 74.37262767174283, - 75.63972705922995, - 76.87449823169041, - 78.0755969159023, - 79.24194720966693, - 80.37271683876179, - 81.46730080166385, - 82.5253100644091, - 83.54656265069124, - 84.53107514615346, - 85.4790532556752, - 86.39088059175529 - ], - [ - 72.92114909502827, - 71.41166260522543, - 69.88395783332705, - 68.3469197952656, - 66.81106106826171, - 65.2885969618205, - 63.79346741575732, - 62.34128428840661, - 60.949179946494645, - 59.63553238418258, - 58.419545178578495, - 57.320669378832015, - 56.35787054917989, - 55.548767958244554, - 54.90870213003517, - 54.44981609318095, - 54.18025617755892, - 54.103600984055966, - 54.21860638521895, - 54.51931138943813, - 54.99549391168351, - 55.63341166571879, - 56.41672560163291, - 57.32748944598162, - 58.3470984750266, - 59.45711661574791, - 60.63993373912858, - 61.87923622466596, - 63.160298381799876, - 64.47011829923571, - 65.79742973029852, - 67.13262348373652, - 68.46760952312705, - 69.79564638649289, - 71.11115898147114, - 72.40956020657171, - 73.68708674787759, - 74.94065508836083, - 76.16774034752797, - 77.36627802947565, - 78.53458701488985, - 79.67131106735167, - 80.77537560256346, - 81.84595635813432, - 82.8824567800311, - 83.884491305508, - 84.85187218670085, - 85.78459799928558, - 86.682842469983, - 87.54694270421942 - ], - [ - 74.62227756662324, - 73.2058086874724, - 71.77619313070633, - 70.34214945097423, - 68.91382682918344, - 67.50283595473661, - 66.12222672355155, - 64.78639592971504, - 63.51090737331621, - 62.312208132394765, - 61.207229258367, - 60.212867893436915, - 59.345361316161885, - 58.619581141285636, - 58.04829561347198, - 57.64146558151181, - 57.405650028869445, - 57.34359501259247, - 57.45406304271944, - 57.73193003124539, - 58.168540051037446, - 58.752272945588984, - 59.469254473472084, - 60.304127942385556, - 61.24081038732317, - 62.263171646732665, - 63.355595718595225, - 64.50340528551578, - 65.6931485682876, - 66.91276088112541, - 68.15162117576854, - 69.40052721463809, - 70.65161296296439, - 71.89822952269385, - 73.13480745569328, - 74.35671442064367, - 75.56011819622212, - 76.74186170152126, - 77.8993537199596, - 79.03047674394905, - 80.13351167072342, - 81.20707793654957, - 82.25008699428139, - 83.26170672571762, - 84.24133434438642, - 85.18857550295448, - 86.10322760100725, - 86.98526563548249, - 87.83482930308034, - 88.65221041948301 - ], - [ - 76.29723271419228, - 74.97266060666875, - 73.6393670020394, - 72.30578304483814, - 70.98158126601557, - 69.67767259816094, - 68.40615300893741, - 67.18018707074137, - 66.01381629465241, - 64.92168239873172, - 63.91866050455242, - 63.01940502278948, - 62.237821679762156, - 61.58649192781146, - 61.07608902242697, - 60.71483553568904, - 60.50805678838726, - 60.45788096597814, - 60.56312358572653, - 60.81937303563426, - 61.21926903622103, - 61.7529423195132, - 62.408566443279895, - 63.17296444492799, - 64.0322143861701, - 64.9722068674212, - 65.97912114310543, - 67.03980125275477, - 68.14202700381975, - 69.27468516017026, - 70.42785326674475, - 71.5928123646266, - 72.76200601636795, - 73.92896230392819, - 75.08819348579551, - 76.23508539302553, - 77.36578584865073, - 78.4770987156002, - 79.56638780284318, - 80.63149288519206, - 81.6706585500262, - 82.68247545962672, - 83.66583286771723, - 84.619880794537, - 85.54400008190848, - 86.4377785550478, - 87.30099165372458, - 88.13358611251329, - 88.93566552833265, - 89.70747692262402 - ], - [ - 77.93942752536496, - 76.70472792462508, - 75.46509780110792, - 74.22859138563398, - 73.00432811029617, - 71.8024649894358, - 70.63412303213931, - 69.5112585242003, - 68.44647123225721, - 67.4527442854042, - 66.54311501613473, - 65.73028251790215, - 65.02616583768098, - 64.44143575854615, - 63.985051627058894, - 63.66384077198715, - 63.48215981002186, - 63.44167313695773, - 63.54127389152009, - 63.77715786467451, - 64.1430437576258, - 64.63051709976189, - 65.2294630089988, - 65.92854671371194, - 66.71570076436478, - 67.5785831722804, - 68.50497948300092, - 69.48313195219856, - 70.50198876390226, - 71.55137440765263, - 72.62208832638487, - 73.70594268299756, - 74.79575182907507, - 75.88528622056451, - 76.96920257994915, - 78.04296048240968, - 79.10273359786318, - 80.14532181712627, - 81.16806861128671, - 82.16878633054309, - 83.14569079823677, - 84.09734551196217, - 85.0226150121241, - 85.92062648658285, - 86.79073840584162, - 87.63251488104919, - 88.44570446259064, - 89.23022221014568, - 89.9861340315827, - 90.71364248030174 - ], - [ - 79.54288668041976, - 78.39531905525119, - 77.24601037816977, - 76.1025761397024, - 74.97353698547428, - 73.86827421468631, - 72.79694449363092, - 71.77034745542029, - 70.79974138577339, - 69.89660486626202, - 69.07234619920202, - 68.33796762306363, - 67.70369740823762, - 67.17860921210426, - 66.77025354387736, - 66.48432961894382, - 66.32442611721312, - 66.2918556733055, - 66.38560033610428, - 66.6023746495171, - 66.93680109604794, - 67.38168144930323, - 67.92833897685938, - 68.56700165967801, - 69.28719600076876, - 70.07812408720578, - 70.92900226426956, - 71.82934677165241, - 72.76919877039236, - 73.73928744978654, - 74.7311348155061, - 75.73710913690644, - 76.75043594320795, - 77.76517613099305, - 78.7761804741875, - 79.77902891299763, - 80.76996170849633, - 81.74580810249431, - 82.70391668063732, - 83.6420903112516, - 84.55852738996896, - 85.45177019196852, - 86.3206604247538, - 87.16430157141616, - 87.9820272925291, - 88.77337498344885, - 89.53806353038371, - 90.27597434188932, - 90.98713482437785, - 91.67170359695079 - ], - [ - 81.10233162271201, - 80.03860743634793, - 78.97577604943791, - 77.92097576603747, - 76.88210747513936, - 75.86777949778782, - 74.88721701386241, - 73.95013192411831, - 73.06655059566502, - 72.24659937334178, - 71.50025103937661, - 70.83703944400388, - 70.26575398568463, - 69.79412994840688, - 69.42855418213163, - 69.17380744900225, - 69.03286427076719, - 69.00676793773678, - 69.09459259815084, - 69.29349670360185, - 69.59886364988563, - 70.0045175354016, - 70.50299576582769, - 71.0858565856699, - 71.74399879897732, - 72.46797270586418, - 73.24826498786521, - 74.07554509454881, - 74.94086579832593, - 75.83581533044752, - 76.75262244830617, - 77.68421869819828, - 78.62426400155651, - 79.56714260892895, - 80.50793660994323, - 81.44238376083467, - 82.36682558956187, - 83.27815073274564, - 84.1737373853681, - 85.05139770434552, - 85.90932606856055, - 86.74605230017036, - 87.56040031182043, - 88.35145216170291, - 89.11851716145361, - 89.86110547174563, - 90.57890551461381, - 91.27176450673745, - 91.93967145196129, - 92.58274200449986 - ] - ] - }, - { - "hoverinfo": "text", - "legendgroup": "In-sample", - "marker": { - "color": "black", - "opacity": 0.5, - "symbol": 1 - }, - "mode": "markers", - "name": "In-sample", - "text": [ - "Arm 0_0
result: 86.9743 (SEM: None)
x: -1.75678
y: -4.02168", - "Arm 1_0
result: 226.197 (SEM: None)
x: -9.30013
y: -4.65468", - "Arm 2_0
result: 145.854 (SEM: None)
x: 4.88129
y: -7.92957", - "Arm 3_0
result: 149.478 (SEM: None)
x: 2.75214
y: -8.2236", - "Arm 4_0
result: 168.137 (SEM: None)
x: 9.27504
y: -7.34729", - "Arm 5_0
result: 34.9523 (SEM: None)
x: 0.590279
y: -1.39866", - "Arm 6_0
result: 32.8996 (SEM: None)
x: -2.24848
y: 1.68633", - "Arm 7_0
result: 60.5254 (SEM: None)
x: 1.43947
y: -3.62169" - ], - "type": "scatter", - "x": [ - -1.756784152239561, - -9.30012697353959, - 4.881288334727287, - 2.752141449600458, - 9.275037422776222, - 0.590278666557456, - -2.2484768683250875, - 1.4394719125089814 - ], - "xaxis": "x", - "y": [ - -4.021678697317839, - -4.654681961983442, - -7.929573114961386, - -8.22359612211585, - -7.347285468131304, - -1.3986611527486303, - 1.6863286966529074, - -3.6216880101600566 - ], - "yaxis": "y" - }, - { - "hoverinfo": "text", - "legendgroup": "In-sample", - "marker": { - "color": "black", - "opacity": 0.5, - "symbol": 1 - }, - "mode": "markers", - "name": "In-sample", - "showlegend": false, - "text": [ - "Arm 0_0
result: 86.9743 (SEM: None)
x: -1.75678
y: -4.02168", - "Arm 1_0
result: 226.197 (SEM: None)
x: -9.30013
y: -4.65468", - "Arm 2_0
result: 145.854 (SEM: None)
x: 4.88129
y: -7.92957", - "Arm 3_0
result: 149.478 (SEM: None)
x: 2.75214
y: -8.2236", - "Arm 4_0
result: 168.137 (SEM: None)
x: 9.27504
y: -7.34729", - "Arm 5_0
result: 34.9523 (SEM: None)
x: 0.590279
y: -1.39866", - "Arm 6_0
result: 32.8996 (SEM: None)
x: -2.24848
y: 1.68633", - "Arm 7_0
result: 60.5254 (SEM: None)
x: 1.43947
y: -3.62169" - ], - "type": "scatter", - "x": [ - -1.756784152239561, - -9.30012697353959, - 4.881288334727287, - 2.752141449600458, - 9.275037422776222, - 0.590278666557456, - -2.2484768683250875, - 1.4394719125089814 - ], - "xaxis": "x2", - "y": [ - -4.021678697317839, - -4.654681961983442, - -7.929573114961386, - -8.22359612211585, - -7.347285468131304, - -1.3986611527486303, - 1.6863286966529074, - -3.6216880101600566 - ], - "yaxis": "y2" - } - ], - "layout": { - "annotations": [ - { - "font": { - "size": 14 - }, - "showarrow": false, - "text": "Mean", - "x": 0.25, - "xanchor": "center", - "xref": "paper", - "y": 1, - "yanchor": "bottom", - "yref": "paper" - }, - { - "font": { - "size": 14 - }, - "showarrow": false, - "text": "Standard Error", - "x": 0.8, - "xanchor": "center", - "xref": "paper", - "y": 1, - "yanchor": "bottom", - "yref": "paper" - } - ], - "autosize": false, - "height": 450, - "hovermode": "closest", - "legend": { - "orientation": "h", - "x": 0, - "y": -0.25 - }, - "margin": { - "b": 100, - "l": 35, - "pad": 0, - "r": 35, - "t": 35 - }, - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "result" - }, - "width": 950, - "xaxis": { - "anchor": "y", - "autorange": false, - "domain": [ - 0.05, - 0.45 - ], - "exponentformat": "e", - "range": [ - -10, - 10 - ], - "tickfont": { - "size": 11 - }, - "tickmode": "auto", - "title": { - "text": "x" - }, - "type": "linear" - }, - "xaxis2": { - "anchor": "y2", - "autorange": false, - "domain": [ - 0.6, - 1 - ], - "exponentformat": "e", - "range": [ - -10, - 10 - ], - "tickfont": { - "size": 11 - }, - "tickmode": "auto", - "title": { - "text": "x" - }, - "type": "linear" - }, - "yaxis": { - "anchor": "x", - "autorange": false, - "domain": [ - 0, - 1 - ], - "exponentformat": "e", - "range": [ - -10, - 10 - ], - "tickfont": { - "size": 11 - }, - "tickmode": "auto", - "title": { - "text": "y" - }, - "type": "linear" - }, - "yaxis2": { - "anchor": "x2", - "autorange": false, - "domain": [ - 0, - 1 - ], - "exponentformat": "e", - "range": [ - -10, - 10 - ], - "tickfont": { - "size": 11 - }, - "tickmode": "auto", - "type": "linear" - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "best_parameters, (means, covariances) = ax_client.get_best_parameters()\n", - "print(f'Best set of parameters: {best_parameters}')\n", - "print(f'Mean objective value: {means}')\n", - "# The covariance is only meaningful when multiple objectives are present.\n", - "\n", - "render(ax_client.get_contour_plot())\n" - ] - } - ], - "metadata": { - "fileHeader": "", - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.5" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/tutorials/tune_cnn_service/tune_cnn_service.ipynb b/tutorials/tune_cnn_service/tune_cnn_service.ipynb deleted file mode 100644 index eecbf4e09c0..00000000000 --- a/tutorials/tune_cnn_service/tune_cnn_service.ipynb +++ /dev/null @@ -1,921 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "collapsed": true, - "customInput": null, - "originalKey": "ac61b043-8ebf-43b9-9fa5-ed9a42a184ce", - "showInput": false - }, - "source": [ - "# Tune a CNN on MNIST\n", - "\n", - "This tutorial walks through using Ax to tune two hyperparameters (learning rate and momentum) for a PyTorch CNN on the MNIST dataset trained using SGD with momentum." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import sys\n", - "in_colab = 'google.colab' in sys.modules\n", - "if in_colab:\n", - " %pip install ax-platform" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1690415246079, - "executionStopTime": 1690415266324, - "originalKey": "c2b37f0f-3644-4367-912f-f775082f6676", - "requestMsgId": "0b481630-f0f4-436a-a205-a25aa163a364", - "showInput": true - }, - "outputs": [], - "source": [ - "import torch\n", - "\n", - "import torch.nn as nn\n", - "import torch.nn.functional as F\n", - "\n", - "from ax.service.ax_client import AxClient, ObjectiveProperties\n", - "from ax.service.utils.report_utils import exp_to_df\n", - "from ax.utils.notebook.plotting import init_notebook_plotting, render\n", - "from ax.utils.tutorials.cnn_utils import evaluate, load_mnist, train\n", - "from torch._tensor import Tensor\n", - "from torch.utils.data import DataLoader\n", - "import plotly.io as pio\n", - "\n", - "init_notebook_plotting()\n", - "if in_colab:\n", - " pio.renderers.default = \"colab\"" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1690415266521, - "executionStopTime": 1690415266529, - "originalKey": "4d0a27c4-a6ce-4b7d-97eb-1c229aabb375", - "requestMsgId": "fd975d25-a185-4b09-a50f-7b2bcd89f93f", - "showInput": true - }, - "outputs": [], - "source": [ - "torch.manual_seed(42)\n", - "dtype = torch.float\n", - "device = torch.device(\"cuda\" if torch.cuda.is_available() else \"cpu\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "10384e51-444c-4265-b56d-ad078d05d2a1", - "showInput": false - }, - "source": [ - "## 1. Load MNIST data\n", - "First, we need to load the MNIST data and partition it into training, validation, and test sets.\n", - "\n", - "Note: this will download the dataset if necessary." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1690415266733, - "executionStopTime": 1690415266902, - "originalKey": "6f0949e2-1064-44b8-99c0-f6ce23df7c63", - "requestMsgId": "8ce7dd21-9afb-4379-ad11-4112b4d27f8a", - "showInput": true - }, - "outputs": [], - "source": [ - "BATCH_SIZE = 512\n", - "train_loader, valid_loader, test_loader = load_mnist(batch_size=BATCH_SIZE)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "be39e4d6-f4b1-418b-b8e1-8461db582e0c", - "showInput": false - }, - "source": [ - "## 2. Initialize Client\n", - "Create a client object to interface with Ax APIs. By default this runs locally without storage.\n", - "\n", - " " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1690415267018, - "executionStopTime": 1690415267023, - "originalKey": "14f154fc-8109-4115-b94a-016daf85bc6f", - "requestMsgId": "7e1cd1ff-dc6e-423c-89b1-05762a7bcce2", - "showInput": true - }, - "outputs": [], - "source": [ - "ax_client = AxClient()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "f30a11d8-e7e8-4815-93a4-99b4aa531a17", - "showInput": false - }, - "source": [ - "## 3. Set up experiment\n", - "An experiment consists of a **search space** (parameters and parameter constraints) and **optimization configuration** (objective name, minimization setting, and outcome constraints)." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "executionStartTime": 1690415267155, - "executionStopTime": 1690415267171, - "originalKey": "c6b4fe1b-692a-499e-88c9-50dbefdcfc15", - "requestMsgId": "86409a5b-e66a-424e-8ac7-c0623a9c9ccf", - "showInput": true - }, - "outputs": [], - "source": [ - "# Create an experiment with required arguments: name, parameters, and objective_name.\n", - "ax_client.create_experiment(\n", - " name=\"tune_cnn_on_mnist\", # The name of the experiment.\n", - " parameters=[\n", - " {\n", - " \"name\": \"lr\", # The name of the parameter.\n", - " \"type\": \"range\", # The type of the parameter (\"range\", \"choice\" or \"fixed\").\n", - " \"bounds\": [1e-6, 0.4], # The bounds for range parameters. \n", - " # \"values\" The possible values for choice parameters .\n", - " # \"value\" The fixed value for fixed parameters.\n", - " \"value_type\": \"float\", # Optional, the value type (\"int\", \"float\", \"bool\" or \"str\"). Defaults to inference from type of \"bounds\".\n", - " \"log_scale\": True, # Optional, whether to use a log scale for range parameters. Defaults to False.\n", - " # \"is_ordered\" Optional, a flag for choice parameters.\n", - " },\n", - " {\n", - " \"name\": \"momentum\", \n", - " \"type\": \"range\", \n", - " \"bounds\": [0.0, 1.0], \n", - " },\n", - " ],\n", - " objectives={\"accuracy\": ObjectiveProperties(minimize=False)}, # The objective name and minimization setting.\n", - " # parameter_constraints: Optional, a list of strings of form \"p1 >= p2\" or \"p1 + p2 <= some_bound\".\n", - " # outcome_constraints: Optional, a list of strings of form \"constrained_metric <= some_bound\".\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "af441a83-50fd-4385-a380-d8ebc570c0e5", - "showInput": false - }, - "source": [ - "## 4. Define how to evaluate trials\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "c7630dfd-548b-408a-badf-b6abf79275e2", - "showInput": false - }, - "source": [ - "First we define a simple CNN class to classify the MNIST images" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1690415267282, - "executionStopTime": 1690415267286, - "originalKey": "e41fea0a-ae71-4e6f-8c0a-6eb6ae143fb0", - "requestMsgId": "60f14ec9-eb1b-4e88-95c5-15c91f999c90", - "showInput": true - }, - "outputs": [], - "source": [ - "class CNN(nn.Module):\n", - " \n", - " def __init__(self) -> None:\n", - " super().__init__()\n", - " self.conv1 = nn.Conv2d(1, 20, kernel_size=5, stride=1)\n", - " self.fc1 = nn.Linear(8 * 8 * 20, 64)\n", - " self.fc2 = nn.Linear(64, 10)\n", - "\n", - " def forward(self, x: Tensor) -> Tensor:\n", - " x = F.relu(self.conv1(x))\n", - " x = F.max_pool2d(x, 3, 3)\n", - " x = x.view(-1, 8 * 8 * 20)\n", - " x = F.relu(self.fc1(x))\n", - " x = self.fc2(x)\n", - " return F.log_softmax(x, dim=-1)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "8ef6bcb9-c492-4874-b8c7-a07f7e6291ad", - "showInput": false - }, - "source": [ - "In this tutorial, we want to optimize classification accuracy on the validation set as a function of the learning rate and momentum. The `train_evaluate` function takes in a parameterization (set of parameter values), computes the classification accuracy, and returns that metric. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1690415267388, - "executionStopTime": 1690415267395, - "originalKey": "a7e4bcc4-7494-429b-bb93-7ad84d0985af", - "requestMsgId": "5d486dbf-60cb-453d-8f24-8605f974b0a7", - "showInput": true - }, - "outputs": [], - "source": [ - "def train_evaluate(parameterization):\n", - " \"\"\"\n", - " Train the model and then compute an evaluation metric.\n", - "\n", - " In this tutorial, the CNN utils package is doing a lot of work\n", - " under the hood:\n", - " - `train` initializes the network, defines the loss function\n", - " and optimizer, performs the training loop, and returns the\n", - " trained model.\n", - " - `evaluate` computes the accuracy of the model on the\n", - " evaluation dataset and returns the metric.\n", - "\n", - " For your use case, you can define training and evaluation functions\n", - " of your choosing.\n", - "\n", - " \"\"\"\n", - " net = CNN()\n", - " net = train(\n", - " net=net,\n", - " train_loader=train_loader,\n", - " parameters=parameterization,\n", - " dtype=dtype,\n", - " device=device,\n", - " )\n", - "\n", - " return evaluate(\n", - " net=net, \n", - " data_loader=valid_loader, \n", - " dtype=dtype, \n", - " device=device,\n", - " )\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "9ab127a8-021f-4ec8-9f4e-f4256a2e322a", - "showInput": false - }, - "source": [ - "## 5. Run optimization loop\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "411a2fb4-e8a3-4414-bc17-09f0b5ba3e74", - "showInput": false - }, - "source": [ - "First we use `attach_trial` to attach a custom trial with manually-chosen parameters. This step is optional, but we include it here to demonstrate adding manual trials and to serve as a baseline model with decent performance. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "executionStartTime": 1690415267533, - "executionStopTime": 1690415287786, - "originalKey": "1388ef55-5642-46ab-b297-c76a73a48aca", - "requestMsgId": "b32a4981-ad59-46e1-b701-fa5a5f118d8b", - "showInput": true - }, - "outputs": [], - "source": [ - "# Attach the trial\n", - "ax_client.attach_trial(\n", - " parameters={\"lr\": 0.000026, \"momentum\": 0.58}\n", - ")\n", - "\n", - "# Get the parameters and run the trial \n", - "baseline_parameters = ax_client.get_trial_parameters(trial_index=0)\n", - "ax_client.complete_trial(trial_index=0, raw_data=train_evaluate(baseline_parameters))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "f0f886a1-c5c8-44bb-b2fd-9fa3f140357a", - "showInput": false - }, - "source": [ - "Now we start the optimization loop.\n", - "\n", - "At each step, the user queries the client for a new trial then submits the evaluation of that trial back to the client.\n", - "\n", - "Note that Ax auto-selects an appropriate optimization algorithm based on the search space. For more advanced use cases that require a specific optimization algorithm, pass a `generation_strategy` argument into the `AxClient` constructor. Note that when Bayesian Optimization is used, generating new trials may take a few minutes." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1690415287908, - "executionStopTime": 1690415945107, - "originalKey": "bff5d714-1ab3-43d3-b9b3-8c3a53c81dcb", - "requestMsgId": "a203534f-85dd-4dfa-9fa6-6aa46a0200a3", - "showInput": true - }, - "outputs": [], - "source": [ - "for i in range(25):\n", - " parameters, trial_index = ax_client.get_next_trial()\n", - " # Local evaluation here can be replaced with deployment to external system.\n", - " ax_client.complete_trial(trial_index=trial_index, raw_data=train_evaluate(parameters))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "ccd16059-db9f-475b-b527-75afb320e0f4", - "showInput": false - }, - "source": [ - "### How many trials can run in parallel?\n", - "By default, Ax restricts number of trials that can run in parallel for some optimization stages, in order to improve the optimization performance and reduce the number of trials that the optimization will require. To check the maximum parallelism for each optimization stage:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1690415945269, - "executionStopTime": 1690415945336, - "originalKey": "7182d2f9-912c-464c-b5ad-f65ce6f00017", - "requestMsgId": "4cb4ff79-e45b-4c7d-86a1-7f8007eb2c81", - "showInput": true - }, - "outputs": [], - "source": [ - "ax_client.get_max_parallelism()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "e2f429e6-2ec8-4af2-906b-52a36a53d329", - "showInput": false - }, - "source": [ - "The output of this function is a list of tuples of form (number of trials, max parallelism), so the example above means \"the max parallelism is 5 for the first 5 trials and 3 for all subsequent trials.\" This is because the first 5 trials are produced quasi-randomly and can all be evaluated at once, and subsequent trials are produced via Bayesian optimization, which converges on optimal point in fewer trials when parallelism is limited. MaxParallelismReachedException indicates that the parallelism limit has been reached –– refer to the 'Service API Exceptions Meaning and Handling' section at the end of the tutorial for handling.\n", - "\n" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "86c7aef9-993a-411e-add5-05839b00d3cf", - "showInput": false - }, - "source": [ - "### How to view all existing trials during optimization?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "executionStartTime": 1690415945532, - "executionStopTime": 1690415946199, - "originalKey": "3fbad5dc-863a-494e-b04f-d7dc1e47936c", - "requestMsgId": "905ea8b6-add0-473e-8516-5be6ad7d7658", - "showInput": true - }, - "outputs": [], - "source": [ - "ax_client.get_trials_data_frame()" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "9f1ebc55-e6f2-498f-9185-569227c2f3d5", - "showInput": false - }, - "source": [ - "## 6. Retrieve best parameters\n", - "\n", - "Once it's complete, we can access the best parameters found, as well as the corresponding metric values. Note that these parameters may not necessarily be the set that yielded the highest _observed_ accuracy because Ax uses the highest model _predicted_ accuracy to choose the best parameters (see [here](https://ax.dev/api/service.html#module-ax.service.utils.best_point_mixin) for more details). Due to randomness in the data or the algorithm itself, using observed accuracy may result in choosing an outlier for the best set of parameters. Using the model predicted best will use the model to regularize the observations and reduce the likelihood of picking some outlier in the data." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1690415946312, - "executionStopTime": 1690415949198, - "originalKey": "8fdf0023-2bf5-4cdd-93ea-a8a708dc6845", - "requestMsgId": "c0b8c25d-c6ae-476e-be23-f1b963df296b", - "showInput": true - }, - "outputs": [], - "source": [ - "best_parameters, values = ax_client.get_best_parameters()\n", - "best_parameters" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1690415949308, - "executionStopTime": 1690415949313, - "originalKey": "f3eb18fc-be99-494a-aeac-e9b05a3bc182", - "requestMsgId": "ac214ea0-ea8c-46f2-a988-b42893ef6d6d", - "showInput": true - }, - "outputs": [], - "source": [ - "mean, covariance = values\n", - "mean" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "6be3b006-d090-4c73-a64a-12901d1af817", - "showInput": false - }, - "source": [ - "## 7. Plot the response surface and optimization trace\n", - "\n", - "Contour plot showing classification accuracy as a function of the two hyperparameters.\n", - "\n", - "The black squares show points that we have actually run; notice how they are clustered in the optimal region." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1690415949431, - "executionStopTime": 1690415953540, - "originalKey": "1beca759-2fa5-48d1-bfed-c9b13a054733", - "requestMsgId": "fa48963e-b43c-4079-81a4-079d347fe9ba", - "showInput": true - }, - "outputs": [], - "source": [ - "render(ax_client.get_contour_plot(param_x=\"lr\", param_y=\"momentum\", metric_name=\"accuracy\"))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "5c91d83a-9a90-4ea0-8df9-9d242d998cb3", - "showInput": false - }, - "source": [ - "Here we plot the optimization trace, showing the progression of finding the point with the optimal objective:\n", - "\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1690415953760, - "executionStopTime": 1690415954260, - "originalKey": "3a767bdf-7ef3-48e7-b853-6fae5e9e02ff", - "requestMsgId": "043de459-6a28-4796-b237-808385c9e54c", - "showInput": true - }, - "outputs": [], - "source": [ - "render(\n", - " ax_client.get_optimization_trace()\n", - ") " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "executionStartTime": 1689617061294, - "executionStopTime": 1689617061325, - "originalKey": "09aaec9d-c178-42e2-b549-663cd17f8c3d", - "requestMsgId": "09aaec9d-c178-42e2-b549-663cd17f8c3d", - "showInput": false - }, - "source": [ - "## 8. Train CNN with best hyperparameters and evaluate on test set\n", - "Note that the resulting accuracy on the test set generally won't be the same as the maximum accuracy achieved on the evaluation set throughout optimization. " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1690415954397, - "executionStopTime": 1690415954452, - "originalKey": "27f92d16-93c4-43bb-a37f-e7a1aeecd856", - "requestMsgId": "07eba5ce-bebe-4588-8dbb-07553efeb2b0", - "showInput": true - }, - "outputs": [], - "source": [ - "df = ax_client.get_trials_data_frame()\n", - "best_arm_idx = df.trial_index[df[\"accuracy\"] == df[\"accuracy\"].max()].values[0]\n", - "best_arm = ax_client.get_trial_parameters(best_arm_idx)\n", - "best_arm" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1690415954677, - "executionStopTime": 1690415954681, - "originalKey": "d0c7c645-c230-4654-a3b5-a01c61a09393", - "requestMsgId": "0a962cef-65a1-4f95-9410-37a9a8e5c5ac", - "showInput": true - }, - "outputs": [], - "source": [ - "combined_train_valid_set = torch.utils.data.ConcatDataset(\n", - " [\n", - " train_loader.dataset.dataset,\n", - " valid_loader.dataset.dataset,\n", - " ]\n", - ")\n", - "combined_train_valid_loader = torch.utils.data.DataLoader(\n", - " combined_train_valid_set,\n", - " batch_size=BATCH_SIZE,\n", - " shuffle=True,\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1690415954791, - "executionStopTime": 1690416061340, - "originalKey": "5695c78b-4c6e-4d35-ab08-6c60781bd8f1", - "requestMsgId": "e22fa0c7-88cc-4d8a-bb7d-4f96fbae9a42", - "showInput": true - }, - "outputs": [], - "source": [ - "net = train(\n", - " net=CNN(),\n", - " train_loader=combined_train_valid_loader,\n", - " parameters=best_arm,\n", - " dtype=dtype,\n", - " device=device,\n", - ")\n", - "test_accuracy = evaluate(\n", - " net=net,\n", - " data_loader=test_loader,\n", - " dtype=dtype,\n", - " device=device,\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1690416061460, - "executionStopTime": 1690416061467, - "originalKey": "7522e229-9641-4383-a892-12c3f0a8011c", - "requestMsgId": "5552d77d-9c9d-4712-9256-2cb3da836f2c", - "showInput": true - }, - "outputs": [], - "source": [ - "print(f\"Classification Accuracy (test set): {round(test_accuracy*100, 2)}%\")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "c8232211-4837-4677-b86c-bce730635fff", - "showInput": false - }, - "source": [ - "## 9. Save / reload optimization to JSON / SQL\n", - "We can serialize the state of optimization to JSON and save it to a `.json` file or save it to the SQL backend. For the former:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1690416061571, - "executionStopTime": 1690416061657, - "originalKey": "6afddb45-c980-4b14-b5e9-927747ea98ea", - "requestMsgId": "bab02be8-706c-4422-b97b-c222b5084bba", - "showInput": true - }, - "outputs": [], - "source": [ - "ax_client.save_to_json_file() # For custom filepath, pass `filepath` argument." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1690416061758, - "executionStopTime": 1690416062132, - "originalKey": "31e6f7b4-cf6b-4967-95ff-f76d03657fb2", - "requestMsgId": "f2d10848-f995-420d-88e7-9036894d7b1b", - "showInput": true - }, - "outputs": [], - "source": [ - "restored_ax_client = (\n", - " AxClient.load_from_json_file()\n", - ") # For custom filepath, pass `filepath` argument." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "122510f5-5b9e-4b1c-9f5e-8c8ea2e08848", - "showInput": false - }, - "source": [ - "To store state of optimization to an SQL backend, first follow [setup instructions](https://ax.dev/docs/storage.html#sql) on Ax website." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "bd80e639-aa0f-4dc1-8542-0caf0d674fda", - "showInput": false - }, - "source": [ - "Having set up the SQL backend, pass `DBSettings` to `AxClient` on instantiation (note that `SQLAlchemy` dependency will have to be installed – for installation, refer to [optional dependencies](https://ax.dev/docs/installation.html#optional-dependencies) on Ax website):" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1690416062222, - "executionStopTime": 1690416062314, - "originalKey": "80eb6a2e-6564-405e-b5d4-d448e32dbf60", - "requestMsgId": "65f2307f-b800-4415-b9e7-11734a2a6889", - "showInput": true - }, - "outputs": [], - "source": [ - "from ax.storage.sqa_store.structs import DBSettings\n", - "\n", - "# URL is of the form \"dialect+driver://username:password@host:port/database\".\n", - "db_settings = DBSettings(url=\"sqlite:///foo.db\")\n", - "# Instead of URL, can provide a `creator function`; can specify custom encoders/decoders if necessary.\n", - "new_ax = AxClient(db_settings=db_settings)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "adafd3aa-b84e-4e86-9694-a29f94c6d5f3", - "showInput": false - }, - "source": [ - "When valid `DBSettings` are passed into `AxClient`, a unique experiment name is a required argument (`name`) to `ax_client.create_experiment`. The **state of the optimization is auto-saved** any time it changes (i.e. a new trial is added or completed, etc). \n", - "\n", - "To reload an optimization state later, instantiate `AxClient` with the same `DBSettings` and use `ax_client.load_experiment_from_database(experiment_name=\"my_experiment\")`." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "2f4a875b-1e18-4352-955d-576d6b01c5ed", - "showInput": false - }, - "source": [ - "# Special Cases" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "0d49e448-4768-401d-ac1d-810aee633c9a", - "showInput": false - }, - "source": [ - "**Evaluation failure**: should any optimization iterations fail during evaluation, `log_trial_failure` will ensure that the same trial is not proposed again." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1690416062420, - "executionStopTime": 1690416064316, - "originalKey": "faa83f1d-31da-481a-96e4-ccbc12f30b91", - "requestMsgId": "80a40c3a-76ed-4e1d-aa77-3652fadbe69f", - "showInput": true - }, - "outputs": [], - "source": [ - "_, trial_index = ax_client.get_next_trial()\n", - "ax_client.log_trial_failure(trial_index=trial_index)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "c826a96e-9431-49bd-87d7-62b517537a15", - "showInput": false - }, - "source": [ - "**Need to run many trials in parallel**: for optimal results and optimization efficiency, we strongly recommend sequential optimization (generating a few trials, then waiting for them to be completed with evaluation data). However, if your use case needs to dispatch many trials in parallel before they are updated with data and you are running into the *\"All trials for current model have been generated, but not enough data has been observed to fit next model\"* error, instantiate `AxClient` as `AxClient(enforce_sequential_optimization=False)`." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "683378e0-893b-49a1-b090-084dc394da1a", - "showInput": false - }, - "source": [ - "# Service API Exceptions Meaning and Handling\n", - "[**`DataRequiredError`**](https://ax.dev/api/exceptions.html#ax.exceptions.core.DataRequiredError): Ax generation strategy needs to be updated with more data to proceed to the next optimization model. When the optimization moves from initialization stage to the Bayesian optimization stage, the underlying BayesOpt model needs sufficient data to train. For optimal results and optimization efficiency (finding the optimal point in the least number of trials), we recommend sequential optimization (generating a few trials, then waiting for them to be completed with evaluation data). Therefore, the correct way to handle this exception is to wait until more trial evaluations complete and log their data via `ax_client.complete_trial(...)`. \n", - "\n", - "However, if there is strong need to generate more trials before more data is available, instantiate `AxClient` as `AxClient(enforce_sequential_optimization=False)`. With this setting, as many trials will be generated from the initialization stage as requested, and the optimization will move to the BayesOpt stage whenever enough trials are completed." - ] - }, - { - "cell_type": "markdown", - "metadata": { - "customInput": null, - "originalKey": "4602d41d-43aa-46d2-9ca6-392c414d0b5f", - "showInput": false - }, - "source": [ - "[**`MaxParallelismReachedException`**](https://ax.dev/api/modelbridge.html#ax.modelbridge.generation_strategy.MaxParallelismReachedException): generation strategy restricts the number of trials that can be run simultaneously (to encourage sequential optimization), and the parallelism limit has been reached. The correct way to handle this exception is the same as `DataRequiredError` – to wait until more trial evluations complete and log their data via `ax_client.complete_trial(...)`.\n", - " \n", - "In some cases higher parallelism is important, so `enforce_sequential_optimization=False` kwarg to AxClient allows the user to suppress limiting of parallelism. It's also possible to override the default parallelism setting for all stages of the optimization by passing `choose_generation_strategy_kwargs` to `ax_client.create_experiment`:" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1690416064534, - "executionStopTime": 1690416064564, - "originalKey": "d62e6cfd-5127-450e-80b7-d0edcaf97d6c", - "requestMsgId": "cb9a17f9-5734-41c6-9018-c0635c61d8b3", - "showInput": true - }, - "outputs": [], - "source": [ - "ax_client = AxClient()\n", - "ax_client.create_experiment(\n", - " parameters=[\n", - " {\"name\": \"x\", \"type\": \"range\", \"bounds\": [-5.0, 10.0]},\n", - " {\"name\": \"y\", \"type\": \"range\", \"bounds\": [0.0, 15.0]},\n", - " ],\n", - " # Sets max parallelism to 10 for all steps of the generation strategy.\n", - " choose_generation_strategy_kwargs={\"max_parallelism_override\": 10},\n", - ")" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "customInput": null, - "customOutput": null, - "executionStartTime": 1690416064679, - "executionStopTime": 1690416064702, - "originalKey": "bc15d2cf-8ddc-4d66-83b6-7469cd15aa4d", - "requestMsgId": "996c4bd3-b296-4cf9-8f95-cbf488639c2f", - "showInput": true - }, - "outputs": [], - "source": [ - "ax_client.get_max_parallelism() # Max parallelism is now 10 for all stages of the optimization." - ] - } - ], - "metadata": { - "fileHeader": "", - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.5" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/tutorials/visualizations/visualizations.ipynb b/tutorials/visualizations/visualizations.ipynb deleted file mode 100644 index 80d23f712ef..00000000000 --- a/tutorials/visualizations/visualizations.ipynb +++ /dev/null @@ -1,410 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "originalKey": "e23719d9-8a24-4208-8439-34e7b8270c79" - }, - "source": [ - "# Visualizations\n", - "\n", - "This tutorial illustrates the core visualization utilities available in Ax." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import sys\n", - "in_colab = 'google.colab' in sys.modules\n", - "if in_colab:\n", - " %pip install ax-platform" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "executionStartTime": 1627652821316, - "executionStopTime": 1627652822868, - "hidden_ranges": [], - "originalKey": "101b0e96-5b3d-48c5-bf3c-677b4ddf90c7", - "requestMsgId": "c0dd9aaf-896d-4ea9-912f-1e58d301d114" - }, - "outputs": [], - "source": [ - "import numpy as np\n", - "\n", - "from ax.modelbridge.cross_validation import cross_validate\n", - "from ax.plot.contour import interact_contour\n", - "from ax.plot.diagnostic import interact_cross_validation\n", - "from ax.plot.scatter import interact_fitted, plot_objective_vs_constraints, tile_fitted\n", - "from ax.plot.slice import plot_slice\n", - "from ax.service.ax_client import AxClient, ObjectiveProperties\n", - "from ax.utils.measurement.synthetic_functions import hartmann6\n", - "from ax.utils.notebook.plotting import init_notebook_plotting, render\n", - "import plotly.io as pio\n", - "\n", - "init_notebook_plotting()\n", - "if in_colab:\n", - " pio.renderers.default = \"colab\"" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "8449378f-890e-4e76-8d73-ce2aa4120a69", - "showInput": true - }, - "source": [ - "## 1. Create experiment and run optimization\n", - "\n", - "The vizualizations require an experiment object and a model fit on the evaluated data. The routine below is a copy of the Service API tutorial, so the explanation here is omitted. Retrieving the experiment and model objects for each API paradigm is shown in the respective tutorials" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "f7544e06-6c6a-4841-b659-3be6a198a948" - }, - "source": [ - "#### 1a. Define search space and evaluation function" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "executionStartTime": 1627652824829, - "executionStopTime": 1627652824877, - "hidden_ranges": [], - "originalKey": "28f6cb76-828f-445d-bdda-ba057c87dcd0", - "requestMsgId": "7495e7e2-1025-4292-b3aa-e953739cef3e" - }, - "outputs": [], - "source": [ - "noise_sd = 0.1\n", - "param_names = [f\"x{i+1}\" for i in range(6)] # x1, x2, ..., x6\n", - "\n", - "\n", - "def noisy_hartmann_evaluation_function(parameterization):\n", - " x = np.array([parameterization.get(p_name) for p_name in param_names])\n", - " noise1, noise2 = np.random.normal(0, noise_sd, 2)\n", - "\n", - " return {\n", - " \"hartmann6\": (hartmann6(x) + noise1, noise_sd),\n", - " \"l2norm\": (np.sqrt((x**2).sum()) + noise2, noise_sd),\n", - " }" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "17a51543-298e-47d4-bcd9-33459fe1169e" - }, - "source": [ - "#### 1b. Create Experiment" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "executionStartTime": 1627654956712, - "executionStopTime": 1627654956823, - "hidden_ranges": [], - "originalKey": "6fca889c-a4ff-42ef-a669-6eb8803de89c", - "requestMsgId": "905eff52-e649-4bd5-abf0-ff69c1549852" - }, - "outputs": [], - "source": [ - "ax_client = AxClient()\n", - "ax_client.create_experiment(\n", - " name=\"test_visualizations\",\n", - " parameters=[\n", - " {\n", - " \"name\": p_name,\n", - " \"type\": \"range\",\n", - " \"bounds\": [0.0, 1.0],\n", - " }\n", - " for p_name in param_names\n", - " ],\n", - " objectives={\"hartmann6\": ObjectiveProperties(minimize=True)},\n", - " outcome_constraints=[\"l2norm <= 1.25\"],\n", - ")" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "code_folding": [], - "hidden_ranges": [], - "originalKey": "ab892f7c-4830-4c1d-b476-ec1078ec3faf", - "showInput": false - }, - "source": [ - "#### 1c. Run the optimization and fit a GP on all data" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "executionStartTime": 1627654642967, - "executionStopTime": 1627654862819, - "hidden_ranges": [], - "originalKey": "7269a5ba-45c8-4acf-ac83-a5ea8a52d6c1", - "requestMsgId": "c7a4dea8-fd6d-4e1a-84de-ad973ede0cd7" - }, - "outputs": [], - "source": [ - "for i in range(20):\n", - " parameters, trial_index = ax_client.get_next_trial()\n", - " # Local evaluation here can be replaced with deployment to external system.\n", - " ax_client.complete_trial(\n", - " trial_index=trial_index, raw_data=noisy_hartmann_evaluation_function(parameters)\n", - " )" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "72f4d3e7-fa04-43d0-8451-ded292e705df" - }, - "source": [ - "## 2. Contour plots\n", - "\n", - "The plot below shows the response surface for `hartmann6` metric as a function of the `x1`, `x2` parameters.\n", - "\n", - "The other parameters are fixed in the middle of their respective ranges, which in this example is 0.5 for all of them." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "executionStartTime": 1627654870209, - "executionStopTime": 1627654871972, - "hidden_ranges": [], - "originalKey": "843df85c-965d-4a83-9fe1-696225d81c0f", - "requestMsgId": "4a643541-867c-46b6-868d-64337920c2a3" - }, - "outputs": [], - "source": [ - "# this could alternately be done with `ax.plot.contour.plot_contour`\n", - "render(ax_client.get_contour_plot(param_x=\"x1\", param_y=\"x2\", metric_name=\"hartmann6\"))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "1de0991a-d99b-4d07-acec-4a2eb4a20a73" - }, - "source": [ - "#### 2a. Interactive contour plot\n", - "\n", - "The plot below allows toggling between different pairs of parameters to view the contours." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "code_folding": [], - "executionStartTime": 1627652959076, - "executionStopTime": 1627652982911, - "hidden_ranges": [], - "originalKey": "4af9f166-0163-4ff5-9ecb-f534a69efe3d", - "requestMsgId": "2de6919e-92e1-4425-8d90-b117e9f41855" - }, - "outputs": [], - "source": [ - "model = ax_client.generation_strategy.model\n", - "render(interact_contour(model=model, metric_name=\"hartmann6\"))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "1ff470bb-5daf-4179-b814-01cc80dafe3e" - }, - "source": [ - "## 3. Tradeoff plots\n", - "This plot illustrates the tradeoffs achievable for 2 different metrics. The plot takes the x-axis metric as input (usually the objective) and allows toggling among all other metrics for the y-axis.\n", - "\n", - "This is useful to get a sense of the pareto frontier (i.e. what is the best objective value achievable for different bounds on the constraint)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "executionStartTime": 1627652996903, - "executionStopTime": 1627652997294, - "originalKey": "57023556-0293-44ef-91d6-81b911ff41d3", - "requestMsgId": "10b72ecc-a019-42a1-8358-18f14927ef75" - }, - "outputs": [], - "source": [ - "render(plot_objective_vs_constraints(model, \"hartmann6\", rel=False))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "f2d4fae3-2140-45d0-8142-49b91548ca59" - }, - "source": [ - "## 4. Cross-validation plots\n", - "\n", - "CV plots are useful to check how well the model predictions calibrate against the actual measurements. If all points are close to the dashed line, then the model is a good predictor of the real data." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "executionStartTime": 1627397871181, - "executionStopTime": 1627397871526, - "originalKey": "f770f8a9-466c-4fd2-b268-3a0d166482f3", - "requestMsgId": "d6242810-a316-4e2b-b9dd-dd4c56b725b7" - }, - "outputs": [], - "source": [ - "cv_results = cross_validate(model)\n", - "render(interact_cross_validation(cv_results))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "40f8ee99-fee8-4fd9-9cff-a7aa230dd5ae" - }, - "source": [ - "## 5. Slice plots\n", - "\n", - "Slice plots show the metric outcome as a function of one parameter while fixing the others. They serve a similar function as contour plots." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "executionStartTime": 1627397880415, - "executionStopTime": 1627397880572, - "originalKey": "aed7c789-a024-48c6-86f7-502e571e298f", - "requestMsgId": "a7238d82-f6bb-441d-badc-673dedaa101e" - }, - "outputs": [], - "source": [ - "render(plot_slice(model, \"x2\", \"hartmann6\"))" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "originalKey": "4975848f-31d4-4ed0-976c-39e3b7474fb7" - }, - "source": [ - "## 6. Tile plots\n", - "\n", - "Tile plots are useful for viewing the effect of each arm." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "executionStartTime": 1627397890236, - "executionStopTime": 1627397890496, - "originalKey": "2ed10008-8adf-4ce2-8334-04a4f2a3e895", - "requestMsgId": "33b593e6-2ec8-4bc4-b6e3-6586ddfb15c5" - }, - "outputs": [], - "source": [ - "render(interact_fitted(model, rel=False))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Fix for plots that are not rendering\n", - "\n", - "In certain environments like Google Colab or remote setups, plots may not render. If this is the case, we recommend using the below workaround which overrides the default renderer in plotly. The below cell changes the renderer to \"jupyterlab\" for this tutorial, but you can find the right renderer for your use case by calling `pio.renderers`" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import plotly.io as pio\n", - "pio.renderers.default = \"jupyterlab\"\n", - "\n", - "render(ax_client.get_contour_plot(param_x=\"x1\", param_y=\"x2\", metric_name=\"hartmann6\"))" - ] - } - ], - "metadata": { - "custom": { - "cells": [], - "metadata": { - "custom": { - "cells": [], - "metadata": { - "fileHeader": "", - "fileUid": "05c52a71-d835-47cc-a717-85b584211970", - "isAdHoc": false, - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.5" - } - }, - "nbformat": 4, - "nbformat_minor": 2 - }, - "fileHeader": "", - "fileUid": "ca754573-88fc-4f06-9300-97ea8ea25f89", - "indentAmount": 2, - "isAdHoc": false, - "kernelspec": { - "display_name": "python3", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 2 - }, - "indentAmount": 2, - "kernelspec": { - "display_name": "python3", - "name": "python3" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/website/sidebars.js b/website/sidebars.js index 59391b7c014..8d7d88454e1 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -9,18 +9,20 @@ const tutorials = () => { const allTutorialMetadata = require('./tutorials.json'); - const tutorialsSidebar = [{ - type: 'category', - label: 'Tutorials', - collapsed: false, - items: [ - { - type: 'doc', - id: 'tutorials/index', - label: 'Overview', - }, - ], - },]; + const tutorialsSidebar = [ + { + type: 'category', + label: 'Tutorials', + collapsed: false, + items: [ + { + type: 'doc', + id: 'tutorials/index', + label: 'Overview', + }, + ], + }, + ]; for (var category in allTutorialMetadata) { const categoryItems = allTutorialMetadata[category]; const items = []; @@ -43,10 +45,7 @@ const tutorials = () => { export default { docs: { - "Introduction": ["why-ax"], - "Getting Started": ["installation", "api", "glossary"], - "Algorithms": ["bayesopt", "banditopt"], - "Components": ["core", "trial-evaluation", "data", "models", "storage"], + Introduction: ['why-ax', 'intro-to-ae', 'intro-to-bo'], }, tutorials: tutorials(), }; diff --git a/website/tutorials.json b/website/tutorials.json index 353fd4505f6..2c63c085104 100644 --- a/website/tutorials.json +++ b/website/tutorials.json @@ -1,88 +1,2 @@ { - "API Comparison": [ - { - "id": "gpei_hartmann_service", - "title": "[RECOMMENDED] Service API" - }, - { - "id": "gpei_hartmann_loop", - "title": "Loop API" - }, - { - "id": "gpei_hartmann_developer", - "title": "Developer API" - } - ], - "Deep Dives": [ - { - "id": "visualizations", - "title": "Visualizations" - }, - { - "id": "generation_strategy", - "title": "Generation Strategy" - }, - { - "id": "scheduler", - "title": "Scheduler" - }, - { - "id": "modular_botax", - "title": "Modular `BoTorchGenerator`" - } - ], - "Bayesian Optimization": [ - { - "id": "tune_cnn_service", - "title": "Hyperparameter Optimization for PyTorch" - }, - { - "id": "submitit", - "title": "Hyperparameter Optimization on SLURM via SubmitIt" - }, - { - "id": "multi_task", - "title": "Multi-Task Modeling" - }, - { - "id": "multiobjective_optimization", - "title": "Multi-Objective Optimization" - }, - { - "id": "saasbo", - "title": "High-Dimensional Bayesian Optimization with Sparse Axis-Aligned Subspaces (SAASBO)" - }, - { - "id": "saasbo_nehvi", - "title": "Fully Bayesian, High-Dimensional, Multi-Objective Optimization" - }, - { - "id": "sebo", - "title": "Sparsity Exploration Bayesian Optimization (SEBO)" - }, - { - "id": "early_stopping", - "title": "Trial-Level Early Stopping" - }, - { - "id": "gss", - "title": "Global Stopping (Experiment-Level Early Stopping)" - } - ], - "Field Experiments": [ - { - "id": "factorial", - "title": "Bandit Optimization" - }, - { - "id": "human_in_the_loop", - "title": "Human-in-the-Loop Optimization" - } - ], - "Integrating External Strategies": [ - { - "id": "external_generation_node", - "title": "RandomForest with ExternalGenerationNode" - } - ] }